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