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