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