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