xxxxxxxxxxxxxxxxxxxxxxxx    #             ############        ##[##       ##  /
xxxxxxxxxxxxxxxxxxxxxxxx  ###            ##         0###      #&##         ##  
xxxxxxxxxxxxxxxxxxxxxxxxx              ###   ### ###   ###    ##.#          #  
xxxxxxxxxxxxxxxxxxxxxxxxx             ##   ### #   ###   ##  ##.##          ###
xxxxxxxxxxxxxxxxxxxxxxxxxx            #  ###   ##   }###  #  #.##             #
xxxxxxxxxxxxxxxxxxxxxxxxxx           ## ##      ##    ### ## ##.#              
xxxxxxxxxxxxxxxxxxxxxxxxxxx          #  # ^   ^  # #### #  # #.##              
xxxxxxxxxxxxxxxxxxxxxxxxxxx       #### ####  (    ! ##  ## ####.#              
xxxxxxxxxxxxxxxxxxxxxxxxxxxx      # %  # ^#+#^      # ~  #  ##.##              
xxxxxxxxxxxxxxxxxxxxxxxxxxxx      #   ##    ####  ^ +{   ## ###.#              
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx     # % #  { ? #### ###  ^  # ##.##            ##
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx     # # #   ^#+#      ##+#### ###.#            # 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    % % ######        #^    # ##.## ###        ##
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   ## # #    ###      # "   # ###.### #%    #####
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    ## #  ^   ##  ^  #  ^  # ####.##..##  #% %# 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  #### ##   _  ##    ##   ## ##........#%##  %##
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  ###  #  ^=  ^     D##  #  ##~#####.###    %%#
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   :## ##   ,  #####  #### ###.#  #  #%      % 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # ##  #    ###   #+#  #  # #~#  ###:         
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   #%% ##  ^#  ^P   # ##   ##?##   ##%        
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx       ### # /    ^###   [  #~##    ###      
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  ##%%   ###     ###     #####.#    # # #  ##
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    ###   ##+####   ###    #@##    #    ###