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