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