# #  #  #   # #  ##  #  #  #     
 ###### ##    ## #   ##    ##       ## ## 
    ##  ######## #  ## #  #  #   #        
    ##    #       ####  #  #   #  # #     
 #  ##  ##  ##      #      ##          #  
 ####   #  #  ##   #      ####   # # ## # 
         ##  ##    ###       # #    #  #  
              #  ### #  # ## ### ## #     
         #  #  # # #  #      ###   #   ###    # ### 
 ##  ## # # # # ##    ## #   ## #  #  ##     #   ## 
 ##  ## #   ### ########     #     ###        ## ## 
 ## ##   ##  #    #         ## ## ## #       #      
 ####   #   ##  ##  ##   # # ## #   #   ##   # ##   
 ###     #  #   #  #  ##  ##  #    ###        ### # 
        #    ##  ##  ##  ### #  #    ##    ## #     
        # # #  #      #           ##     # # # ## #