                                 *##%@@@@@@@@@@@%:                                              
     .                         :*@@@@@@@@@@@@@@@@@#*#%. .                                       
                             -#@@@@@@@@@@@@@@@@@@@@@@@.                                         
                           :+@@@@@@@@@@@@@@@@@@@@@@@@%+:      :   .  :.                         
                         .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.   .:.    :+:.  ::.. ..                
                        :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@= .-+..    +: =:--:--:.       .         
                       .%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#+=-      ==-+#+--=-.                   
                      .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@%.      -%+=-:. . .. :.                
                     :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=:@*: .  .-=-:......-*+==:-:.             
                   :+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*@*=+====*=:-..   ::*%-*+-+-              
                 :*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*@%=%%%@%#*-:..    .%@*-:=-:=         :..  
               -%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*@#-:+@%+-+:       .**:...=**=   ..   ==:.. 
              .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%+*@@**#%+..:*:  .:-+**++-::-:=@=  :=: :*=::...
             .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:  #@@@%-   +*=***==-:.::.-+*:.##=*+..-*-. .-*+
           . .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:. +@@@.   =@#*=.           :*+%%++=:=#+:-=#%=.
              =@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*-.-@@@--#%*:.            :===+@%+-*@##+==+=.:-
             :+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+%@@@@=.       :-=*##**+%##+=@#*@%%*#*+===*-
          .=%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@=   -==*#*--+#+++=**-#%@@@#*=--::--=*-
        .*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=%#%+-+:.:: .**-*@@@#+-.           .
        -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@+.-==:    :+#%@%+=:                
       =%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@=-=:#*.-+**#@%%###%=               
       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#=#@@@@: -*@*=::+*+#@@@@@@:              
       =%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*+@@@@%#++%:.+%%##@@@@@@@:             .
        .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*@@@@@+.+@%%*:*@@#%@@@@+               
         *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@# :@@@@@@@%++=:   .-. :%@@@@+              
          #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*  :%@@@@%#%++==--:   :@@@@@@*-            
           =%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**###+=@@@@#  .+#+-..... .%@@@@%@#        .   
             =*%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+    .-+@@@@@:    :=-.      +@@@@@@:            
                 .:..-#@@@@@@%**+*#@@@@@%#+++**=       .@@@@#               *@@@@@@:            
                       ::..::       .::                -@@@@#              .%@@@@%:#*=          
                                                       #@@@@@.             +@@@@@@= *#.         
                                                     .#@@@@@@=            .@@@@@@@@.            
                                                     +@@@@@@@+            :@@@@@@@@#            
                                                     *@@@@@@@=            .==#@@++##            
                                                    .%@@@@@@@.               -@@+               
                                                    -@@@@@@@#                 +@@:              
