##############################################################                      
                                                                                                                                                                                                           +##############################################################                      
                                                                                                                                                                                                          +###############################################################                      
                                                                                                                                                                                                         .################################################################                      
                                                                                                                                                                                                         #################################################################                      
                                                                                                                                                                                                        ##################################################################                      
              .####                                                                                                                                                                                    ###################################################################                      
           #############+.  -# ###                                  #  ###-###.                                                                                                                      #####################################################################                      
               #   +#######    ###                                #    ###    +###                                                                                   +                             #######################################################################                      
             ##       #        ###                              ##     ###      ###                                                                                ####.                         ######+##################################################################                      
            +#-     ###        ###                             +#-     ###       ###                                                                                -#                         ######+++++################################################################                      
            ##      ###        ###                             ##      ###        ###                                                                                                        ######+++++++#################################################################                     
            ##-     ###        #########-    ######            ##-     ###        ###-######### ##############  .###     +######  ###+#####  ###   ###-            ###-   -#########      +#+####+++++++++#################################################################                     
            ###     ##.        ###   ###  +##   ##             ###     ##.        ##+###        ###        ###   ###. -##    ###  .###  ###  ###.   ###            ###+   ###            +++++++++++---+++#################################################################                     
            ###+   .##         ###   ###  ### .                ###+   .##         ## ### .####  ### ####-  ###   ###  ###    ###  .##+       ###    ###            ###    ### -####      +++++++------++++#################################################################                     
             ###- .#           ###   ###  ###                   ###- .#          +#  ##     ### ##    +##  ###   ###  ###.   ###  .##-       ###   .###            ###-   ##     ###     +----------++++++#################################################################                     
              -###            -###   +###  ###.                  -###           -#      -+.  #    -+-  ++  #### -####  ###-  ###+  ###       -###   ###            .###      ++.  #      .+--------++++++##################################################################                     
                .###        -  .###   ####  #####                  .###        .    ########   ########     ####  ####  #####-###  ###        ####  ###             #### ########         +-------+++++####################################################################                     
                     ...                                                ...                                                   .                     ###                                     -----+++++#####################################################################                     
                                                                                                                                                    ###                                       +++++########################################################################                     
                                                                                                                                            ####### +                                       +++############################################################################                     
                                                                                                                                            .   ##                                      ++++###############################################################################                     
                                                                                                                                            --                                      ++++#######-   +++#####################################################################                     
                                                                                                                                            .                                   ++--+#######      ++++#####################################################################                     
              .#                                                               ##                             +#                           .                               .++--+#######          +++++#####################################-   ###########################                     
             ###                                                              ###                            ###                                                       ++----+######               +-++############################             ###########################                     
             ###                     ##+                                      ###                       ##-  ###                          .                        ++-..-+######                    -++###################+                     ###########################                     
             ###                    ####.                                     ###                      ####  ###     -##                  .                    ++-...-+#####                          +############                             ############################                    
             ###                      +                                       ###                        -   ###    +###                          .        ++-. ..-+####                               ######+                                  ############################                    
             ###   #          -#      #     #    #.         -#                ###  +-       #      #     #   ###   #######+                     ..-.  -++-   ..--+##                                                                            ############################                    
             ##########    .######  ####  ###########     #######             ##########  ####  .###+  ####  ###    +###                       ..---+-.   ..--++                                                                                 ###########################                    
             ###    ###  ###   ##   ####   ###    ###  ###    ###             ###   -###  +###   ####  ####  ###    +###                      ..--     ..---                                                                                     ###########################                    
             ###    ###  ### .      ###+  .###   -###  ###    ###             ###   +###  +###   ###+  ###-  ###    +###                    ..      ..--                                                                                          ##########################                    
             ###    ###  ###        ####  ####   -###  ###    ###             ###   +###  ####   ###.  ####  ###    -###                   . .-------                                                                                             -#########################                    
             ####   ###  ####       +###  ####    ###- ####   ###             ####  +###  .###   ####  ####  ####    ###-                . .-++#+----                                                                                               ########################                    
              +#### #     ##### #    ####- ###+   ####- ##### ###              #####+#     #####  ####+ ####+ ###+#  ####+. .##       .    ........-                                                                                                  -#####################                    
                +#.         ##        #     #      #      ##  ###                ##         .#     #     #    ##      #-    .##      ..      -..                                                                                                         ###################                    
                                                              ###                                                                    ..                                                                                                                    #################                    
                                                       ###+   ##.                                                                    ...                                                                                                                   #################                    
                                                    +++######-                                                                      -...                                                                                                                   #################                    
                                                          -                                                                         -..                                                                                                                     ################.                   
                                                                                                                                    -..                                                                                                                      ###############.                   
                                                                                                                                   --..                                                                                                                       ###############                   
                                                                                                                                   --...                                                                                                                       ##############                   
                                                                                                                                --...     .-                                                                                                                   ##############                   
                                                                                                                            .-.....                                                                                                                             #############                   
                                                                                                                         ---.........             .                                                                                                              ###########                    
                                                                                                                     +----............              ....                                                                                                          ########                      
                                                                                                                 +++------..............              ....-.                                                                                                       #####                        
                                                                                                             ++++-----------..............             ......--.                                                                                                    #+                          
                         #                                                                               ++++++--------------..............            ..........---                                                                                                                            
                       ###                                                                           .+#+++++-------------------............         ...............----                                                                                                                        
                       ###                                                                       -####+++++----------------------............      ...................-----+                                                                                                                    
                       ###                                                                   .#####+++++++++------------------------.........      ...................--------++            #                                                                      #                            
                       ###                                                                ########++++++++++++-----------------------.........       ..........---------------+++#         ##                                                                     ##                            
            -#   ##-   ###      .##       -##.       #  ##+       ###                     ###########++++++++++++++++----------------------.......---------------------------++++#        ##+                                                                     ##                            
           #### #####  ###    # #####  -#######    ### #####-  +- #####                   ###################+#+++++++++++++++++++++++++++-----------------------++++++++++++++###        ##+                                 -                                   ##                            
            ###   ###  ###  ###   +   ###   ###    ###        ##-  .                      #################################++++++++++++++++++++++++++++++++++++++++++++++++++#####        ##+                                #+                                   ##              #             
            ###   ###  ###  ####      ###   ###    ####+####- ##+.                        ##########################################################+###+#+##+##++##+#############        ##+                               ##+                                   ##             ##             
            ###   ###  ###  ###       ###   ###+   #      +#- ###                         ########################################################################################        ##+                               ##+                                   ##             ##             
            ##### ##.  #### -####   . .#### .###  . ######    +###-  +                    ########################################################################################        ##-             #####   ## ######.##+           ##   ##   ## #####    #####    #####+# ##      ###    
            #####-      #+ #  -##-      ###  ##- ##. -###.      ###                       ########################################################################################        ##            ######   ###-####   ##+          ###  -##  ### ####   # ####   . #####   ##    # ####   
            ###         ####                                                              ########################################################################################        ##          ###  .##   ###        ###           ##   ##   ##   ##  ##   ##  ##   ###   ##. ###  #.    
            ###        #####                                                              ############################## #########################################################        #           ###  .##   ### ###    ###           ##   ##   ##   ##  ##   ##  ##   ###   ##- ### #      
            ##         #####                                                              ############################ -#+ #######################################################       #            ###   ##   ###  ###   ###          .##   ##   ##   ##  ##   ##  ##.  ###   ### ###        
           ##          #####                                                              ##################### --##. #####- #######################################  # ##########      ####+         -##   ##   #     ##   ###          .##  +##   ##+  ##  ##   ### ###  ###   ### +##        
         #             #####                                                              ##################  ###-### ##### ###################################### #### ##########    #########     ## ###  ###    ### .    -##.          ###  ###  ###  ##  ###  ### +##- .##   ###  ###       
                       #####                                                              ################## ####-##### # +###################################### +#### ##########   #      #########   ### #### ######      ###          #### #### ######    ### #### ####-###   ###  ###      
                       #####                                                              ######  #########  ####-     #  ###########   ########  ####  .#######  -####     ######  .         -#####     #-  # -    ##       ##            #+   #   ####       ##  #    -#  ##    #.    #-      
                       #####  #####+.         .####                      ###   ######.    #### +#####-    #######-     ### #######- ##### ### .###   ######+-. ########     ######                                                                  ##                                          
                       ##############-      .########                  ###############+   # -########## #+## ####-## #####+####+ #+########  #####+#########  +## +#### ##########                                                                  ##                                          
                       #####   -#####    ###.   ####-                   #####   -#####.  -###   .#####+ #### ####+### ##### # +### + #####  # ####.#  .+#### #### +#### ##########                                                                  ##                                          
                       #####     ####   ####.    +                      +####     ####.  #### ### ##### #### ####+### ####-##+#### #- +  #### #### ### ##### #### +#### ##########-                                                                 #.                                          
                       #####     ####   ####. #                         +####     ####.  #### ### ##### #### ##### ## #### ##+#### +. #######-#### ### ##### #### +#### ##########-                                                                ##                                           
                       #####     ####   ####-                           +####     ####.  #### ### ##### #### ##### ## ####-##+#### ######### ##### ### ##### ####-.#### ##########-                                                               --                                            
                       -####-    ####   #####                           +#####    ####.  ##### ###+####- ### #####.## ##### #.##### ######## ##### ###++####- #### ##### #########-                                                             #                                               
                        ######   ####    #####+      #                  +######   ####   -#####..# ##### #. # ##### # ######  ###### #### + #-##### ### ##### # .- #####-.# + ####-                                                                                                             
                         +###### #.       ######+ #                     +######## #-       ######. #######  # #######  ######- -###### -- ### ##### ### ####### .##.######- #######                                               #    ###         #####      ####      +###    -               
                           -###.            ####                        +#######-         #. #### + ###  ##### ###  ##+-##- #### -###- ####### ## ###### ### -##### ###- ##########                                                +###### #     # ####    ###### #    # ######                 
                                                                        +####             ###+  ####  #########  ######+ -########. -##########  ########  #########. -############               #                                       -##  .     ##           ## -##                        
                                                                        +####             #########################################################################################              ###                                      ### ##     ##           ## -##                        
                                                                        ####.             #########################################################################################               ##                                      ##. ##     ##          ### -##                        
                                                                        ####              -########################################################################################                                                      ###  ##     ##          ### -##   ###                  
                                                                        ###               -########################################################################################               +             -   #                    ##+  ##     ##         ###  -## .#####                 
                                                                                          -########################################################################################              ###    #####  ########.                ###   ##     ##        ###   -##     ##                 
                                                                                          -########################################################################################              ###  #+ ####  ### ####                ###    ##     ##       +##    -##     ##                 
                                                                                          -########################################################################################              +## ##+  ###  ###  +##               ##      ##     ##      -##     -##     ##                 
                                                                                          -########################################################################################              +## ##+  ###  ##+  ###              #+       ##     ##     .#       -##     ##                 
                                                                                           ########################################################################################              +## ###  ###  ##.  ###             #         ##     ##     -        -##     ##                 
                                                                                           ########################################################################################              +## ###  .##  ###  -##            #          ###    #+               ##     #                  
                                                                                           ########################################################################################              +##  ###  ### ###   ### -        #######     +###  +     ######.   # ###   -                   
                                                                                           ########################################################################################              +##   ### ###  ##   ###         .##########   ####      ###########   ####                     
                                                                                           ########################################################################################              +##    #       -    .                  ###             +      -##-     #                       
                                                                                           ########################################################################################              +##                                                                                            
                                                                                           ########################################################################################              +##                                                                                            
                                                                                           ########################################################################################              ##                                                                                             
                                                                                           ########################################################################################              ##                                                                                             
                                                                                           ########################################################################################              #                                                                                              
                                                                                           ########################################################################################            ..                                                                                               
                                                                                           ########################################################################################                                                                                                             
                                                                                           ########################################################################################                                                                                                             
                                                                                           ########################################################################################                                                                                                             
                                                                                           ########################################################################################+