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