..%%88ttSS@@8888888@@SStt88%%.                                             
                                          @@;888888888888888888888888888888;;@@                                         
                                    ::@@8888888....:::::::::::::::::::....8888888@@::                                   
                                ..@@888888..:::::::..@@88@@@@@@@88@@..:::::::..888888@@..                               
                              @@888888..:::::8888@@SStttttttttttttttSS@@888::::::..888888@                              
                              @@888888..:::::8888@@SStttttttttttttttSS@@888::::::..888888@                              
                             %8888..::::XXXXX%%tt%%tt%%%%tt%%%tt%%%%tt%%tt%XXXXXX::::..888%%                            
                         ::SS888::::..SSSS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SSSS..::::888SS::                        
                       tt8888.::::88@@%%%%SSSSSSS%%%%%%%%%%%%%%%%%%%%%%%SSSSSSS%%%%@@88:::..8888tt                      
                     tt8888:::..XXSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXX.::::8888tt                    
                   ;;8888::::.SSXXSSXXXXXXXXSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXXXXXXXXSSXXS..::::8888;;                  
                 ..SS88::::..SXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSS..::::88SS..                
               ..%%88..::..@@X888888888888888888888888888888888888888888888888888888888888XX@@..::..88%%.               
              .@@88..::..88888888888888888888888888888888888888888888888888888888888888888888888..::..88@..             
              .@@88..::..88888888888888888888888888888888888888888888888888888888888888888888888..::..88@..             
            ..:8888::....88888888888888888888888888888888888888888888888888888888888888888888888....::888::..           
          ....X88::::..888888888888888888888888888888888888888888888888888888888888888888888888888..::::8XX....         
          ..tt@88::....XXSSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSSXX....::8@@tt..         
        ..::SS8::SSSSXX888888888@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@888888888XXSSSS:88SS::..       
        ..;;888%%888888888888888@@@@@@8888@@888888888888888888888888888888888@@8888@@@@@@888888888888888%8888;;..       
      ..::8888:tt::::::::..;;S;;;;;;;;;;XX@@888SS88888888888888888888888SS888@@XX;;;;;;;;;SS;;..::::::::t::8888::..     
      ..::  88:XX::::::..88       ..::ttXX888XXSSXX88@@@@SS888SS@@@@88XXSSX8888XXtt::..       88..::::::@::88  ::..     
      ::tt88..:SS::::::%%::                 .;;SSXX::::;;SSXXXSS;;::::XXSS;..                 ::%%::::::S::..88tt::     
      ::tt88..:SS::::::%%::                 .;;SSXX::::;;SSXXXSS;;::::XXSS;..                 ::%%::::::S::..88tt::     
    ..::@@88:::;;88::::SSXX%%ttttttttt%%%%%%SSSXX88;;:::::::::::::::;;88XXSSSSS%%%%ttttttttt%%XXSS::::88;::::88@@::..   
    ..;;SS88:::..XX::;;%%@@88888888888888888@@@XXSS::;;::::@@@::::;;;;@@888888888888888888@@XXSS;;;;::XX.::::88SS;;..   
    ..;;  88::.::%%%%;;;;;;XX@@@XXXXXXXXXXXXXXXXXSS::%%::;;ttt;;::;;::SSXX@XXXXXXXXXXXXXXXXXXX;;;;;;%%%%:..::88  ;;..   
    ::tt88..::.....88;;;;;;XX@@@@@@@@@@@@@@@@@@@@SS;;SS;;88;;;88;;SS;;;;XX@@@@@@@@@@@@@@@@@@XX;;;;;;88.....::..88tt::   
    ::tt88..::.....@@;;SS;;XX@@@8888888888888@@@@;;SS;;;;%%:::%%;;;;SS;;@@888888888888888@@@XX;;SS;;@@.....::..88tt::   
    ::SS@@::::...::::XXXX;;SS888888888888888888@@;;@@;;88::...::88;;@@;;@@888888888888888888SS;;XXXX::::...::::@@SS::   
    ::SSXX::::.......XX%%XX;;@888888888888888@@;;XXSSttSS::...::SSttSSXX;;@888888888888888@@;;XX%%XX.......::::XXSS::   
  ..::XX88::::.....::ttXX@@@@;XX@@8888888888@;;XX@@;;SS..::...::..SS;;@@XX;@@8888888888@@X;;@@@@XXtt::.....::::88XX;;.. 
  ..::XX88::::.....::ttXX@@@@;XX@@8888888888@;;XX@@;;SS..::...::..SS;;@@XX;@@8888888888@@X;;@@@@XXtt::.....::::88XX;;.. 
    ::XXXX::::.......::@@;;@@8@@SSSSSSSSSSSSS8888;;@@%%::.......::%%@@;;888SSSSSSSSSSSSSS@88@@;;@@::.......::::XXXX::   
    ::@@88..::.......::;;XX88;@@8888888888888XX;;%%XX::...........::XX%%;;X88888888888888@;;88XX;;::.......::..88XX::   
    ::@@88..::.........::ttSSSXX%%;;;;;;;;%%8SSSS%%;;::...........::;;%%SSS88%%;;;;;;;;%%XSSSStt::.........::..88@@::   
    ::@@SS88::...........::;;tSSttSS%%SSSS%%S%%tt::::...............::::tt%SS%%SSSS%%SSttStt;;::.........::::88SS@@::   
    ::XX..88;;:..............:;;tttttttttttt;::::.......................:::;;tttttttttttt;::.............::;;88..XX::   
    ..SS%%88;;:..........................................................................................::;;88%%SS..   
    ..tt88XX:::...................;;tt.............................................%%....................::::XX88tt..   
      ;;8888..:...................XX88%%.........................................tt88....................::..8888;;     
      ;;8888..:...................XX88%%.........................................tt88....................::..8888;;     
      ::88..88:::...................88XXtt%%.................................SS88SSXX...................:::88..88::     
      ..SSXXXX:::...................tt888888%SS...........................@tt8888SS%%...................:::XXXXSS..     
        tt88;;8::...................%%XX88@@888ttSSSS.........tt..::@@%%tt8@@88SSSS.....................:88;;88tt       
        ::88%%8::::...................%%SS%%888888888tt%%tt%%%tt%%88888888@88XXSS.....................:::88%%88::       
          SSXX;88::.....................%%SS@88888888888888888888888888888888%%.......................::8;;XXSS         
          ::88tXX::::.......................t@@XX888888@@@@@@@@@888888tt@@X;;.......................::::Xtt88::         
          ..SSX  88::::......................tt%%XXSSXX%%%%%%%%%SS@@88XXtt%.......................::::88 XXSS..         
            ::8%%@@..::..........................%%;;tt%%XXXXXXX%%tt;;%%..........................::..@@%88::           
            ::8%%@@..::..........................%%;;tt%%XXXXXXX%%tt;;%%..........................::..@@%88::           
              %88;;88..::................................%%%%%%%................................::..88;;8%%             
              .XXXX..XX::::...................................................................::::XX..XXX..             
               ;;@@SS..SS::::...............................................................::::SS..SS@@;               
                 tt88%%..XX:::............................................................::..XX..%%88tt                
                   %%88%%  88.::::.....................................................:::..88  %%88%%                  
                   ..%%88%%..888::::.................................................::::888  %%88%%..                  
                     ..%%88SS.;;XX..::::.........................................::::..XX;..SS88%%..                    
                       ..tt88X;;  XX..::::::...............................::::::::..XX  ;XX88tt..                      
                       ..tt88X;;  XX..::::::...............................::::::::..XX  ;XX88tt..                      
                           tt@88%%....XXXX..:::::::::...............:::::::::..XXXX....%%8@@tt                          
                             ;SS88@@%%..  ;;8....:::::::::::::::::::::::...88;;  ..%%@@88S;;                            
                              ..ttXX88@@SS::.  ::tt8888@@XX...XX@@8888tt:: ..::SS@@88XXtt.                              
                                  ::ttXX8888X%%;;::..               ..::;;%XX8888XXtt::                                 
                                      ::ttSS@8888@@XXSSSS%%%%%%%SSSSXX@@888@@SStt::                                     
                                          ..:tt%%SSXX888888888888888XXSS%%t::..                                         
                                               ....::;;;;;;;;;;;;;;;::....