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