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