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