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