                                                                                                                                                                                    
                                                                           ilI,;  l!;;I;:l                                                                                          
                                                                    i>:;!,,:;'.``^`'`^^";:,                                                                                         
                                                                  ,^",` ^".."` . ."'^' ."'.^!:,                                                                                     
                                                             :I::,^":,``'     ..  .'.'..  ..''.                                                                                     
                                                          <i:' ^^:;^^`'..  . '   '....  .      .  ."                                                                                
                                                        ;^`.  .":'^l^.. '`.'':'.''. ,`               `                                                                              
                                                       !^....,^''..l^.'^"`''^`.^^.. '          .' .                                                                                 
                                                      ,l^ .`':`'^":,'";!ii>~<I;!"``..`""^'''.  .:,`^.      '                                                                        
                                                     :.;^.  ..^:lii~[)/tfjftf/)]<<!>~>+_~i!i!I:^`^ ...  ...  .`                                                                     
                                                    ~l,`"`::;+/vzXUQ00LCJUYYXzvur/|1}}{[[[[]?-+<I".     .' ..                                                                       
                                                    "l!;`^!l+/QmwwwwwwmO0CJJYYXXXcvnxrjf/||(){{}?+i:^          '                                                                    
                                                  '``,^;l,i]zZmmmqqwwwmO0LCJUUUYXXzvunrjftt\/\(){[?+>:^       .                                                                     
                                                 "',,'':~i}CmmwqppwwwmZO0QCJUYYUUUUYYzvxjf/\|(||1[?_+~i"                                                                            
                                                "":``^":i_X0OmwpdqwwwqqpppmOQCLLQQQQCXcunxf/|(11{]-+~<>I^.                                                                          
                                               "^^i>i>i<~)YLQOpdqwpdbkkkkbdqwZZO0O0CXvnxxrft\\|){]-+~<<i:`.. ..  .                                                                  
                                               ``:~+><+_+)XLQO0XvYUcrt\\\rvJ0ZZZQUcj({-~>!ll!i<>i!i>><>>:^.. .                                                                      
                                              ''^li:`;:"<)YQJnt1{]<;,::;!i?1fQdpCn)?>l"^`'''`''`^"",^;>>I'...   ...                                                                 
                                               ''!` ``^li[UY/rvxucxrrt|111(|fQhhLf]<!l!ll>+?[{}?~i!l;,;il'     .   .                                                                
                                              .^;l'''`,;l_YnzQOwwppOYnt|))\rJwbpLr?<i!ll<])ff/({?___~>Iii'         .                                                                
                                               `<^'.";!i~+cYQQCzXct{<!!~<_\JZqbmz(-~!l!;;!?+l;,;ll!<++~>i^     .   .                                                                
                                               iI"'.,i"I~_YQ0Yt[<}(;":![~<nbwdkZu}__<!i!l~)~,::!I^";i~_+~I                                                                          
                                                ;;I'^II!>/Oww0LUY0OUvrffxUwqpkkZu1-___++?[[)(1[?-+<><+--+<^       .                                                                 
                                                il:":i;!_JZqpko*hdmOO0Owbakdbad0Xf{-+_--[{)(|\||()1}[?__+~!.                                                                        
                                                 !,;!:!i\Omdkooahkkbkkka*hbh#MpQJz\[-++-[1(/fxnnnxj/(}]_+~~,       .                                                                
                                                 "^!,!+!umpkho*#*oaahkkdkhhoMowCct}]?--_?{(tjnvcvux/(1}]_++l                                                                        
                                                 ?[~:<>lUpbkh*#MW#ohdZUYwqJnCQx|{-<li-?~~?}|txnnnrf\(1}]?-+i'    ^:;                                                                
                                                cz1+>~l-Opbdho##*akmUt/Cdpn~]f{_~il:,lii+--?}|/tt\()1}]??-+>"    ,;I<                                                               
                                               /U_<fu}!1Owppkkkkbq0u/nQbaahwCXf]<!l!!!>~+_---]}1)11}[]]--_~>l'   ll:,~                                                              
                                               u\~|k&Z~[QZwwppqwZQcuJJOdpbbdbqv)(//{__~<~~+~~~?][}[]]--__+<>i^."I_<!:l                                                              
                                               rv-uadL{+COmwwwmZ0QYCrjObhhkpm0JJCvt)[?---__+<i~+-[]?--___+~<i;;"<-]~,I                                                              
                                                XxCdnt\1cOZqpwwZZOCx+|zLXr\|1))1{i!!!lIII!ii!l>-][]?-----+~<ii<:l!>_:i                                                              
                                                 vwpcvQpJCZwpqmmmmQn{)txfuXLOQJXvcnjj\]~il;IIl+[{[]?--?-_+~<<iiil;!<!                                                               
                                                  vpZZbomUOmqwmmmZ0CJZhaahhhd0vft/t\)[?-----]]][}?-----__~~<i>~_~<>i+                                                               
                                                   rZboahQLOmwmmZOOZwdkkbddpOJuf|))\|1[]??-?]]][]------_~<<ii++++>i                                                                 
                                                     tzJQJU0OmmmZZmwwqdkkkkkbdqZQCYzvj\1}[?-??]]?---___+~~<I:l!<+                                                                   
                                                          [CQOZZZmmwpdbbkhoooakpmLJYcxf\)}]]]]]?--___+~<<<!                                                                         
                                                           )YC00OOmwqdkkkhaooahp0CUYvf\(1[]]]]]?-___+<>!!l^                                                                         
                                                            1nXJQOZmwpdbkhaddpm0UXcut)[[[]?---___++<<i!I;^                                                                          
                                                             -|fcUJL0ZmmqwmmQJXn/||1]?_++++<<<>><<>!I;:,"                                                                           
                                                              f\)|/rvvzCCXuxf/(}-__<~>i!!!!i!!!l!l;:,:,;;                                                                           
                                                              rCj/{{{1(|\({[-_++_<~~<<~~<i!lIllII::::Ill                                                                            
                                                              (0Ycr/|)[?------?---___+__~<!llllII;;;l!!I                                                                            
                                                               0OCXnjft({]+<<~++++++~+~>>il!lII;;Ill!iil                                                                            
                                                               0mOQUYzczzuf([-+<iii!i>ii!lIIlI;Il!!iiiI-/                                                                           
                                                              C0OO0QLCQQLJJJXnf({?+~<<>ii!!l!!!><>i!!+)uz|                                                                          
                                                             *&UOOZZO000QQLCCJXvx([_~~~<<<>>>iiii~?(rczvur                                                                          
                                                            f$@aOOmmmmZOOQQLLCCUj}?_+~+_~~>i<+])fuzXXzvvnn(l                                                                        
                                                            Z@@$%hwmwwmZO00QLJYx1[[[[]-++])jvXYUYXzccvvvnxr< ^i                                                                     
                                                           )8$@@$$B*dwmOZZO0LUvt()1{1\xUOwwOCUYYXzzccvvunnx)`'."                                                                    
                                                         [-C$@$$$@$$$8aqZOOO0CzurrvCd#8&#kqZ0QCYXccccvvvuxr-'''.',i                                                                 
                                                        }}}M$@$$$$$@@$$$B#dZCCLZbW$$$$8MokpwZLYzccccvvvunj),'''''..^l                                                               
                                                      -]{+r$@$$$$@@$$@%WodOwbOQJXXYJ0wddkhkq0JXzzzccvvxxrf+`^`'''''...':i                                                           
                                                   --_?}]~L$B$@@$$$8a#dLYYJk#dmCXcccvu+~|nYLO0CUXzzccvvvu|I"^```````'`'...'^":li                                                    
                                                ]]??--]]]>w$B@$$Bbc(1dW8@$$@B$$BMdJxf)(f)?_]|xUQOZ0QQLJQj!;,"^^^^^^`'...........''^,;!                                              
                                           _+~<<~_??-]]?->w$$$#0r|{{tzmbkkoM%@$BWbCr)[[][}}[-<<_{tvU0wOc~~l,""^^""^^",^`'`^^^^^^^^``'''^":Ii                                        
                                      _+~~~<~~<i<-?-?]]__|QBbYvrjxvUQCUJ0Qmh#B@MZvt1}1{-~~~+-[)\||/rt)\]_<I,,""",,"":IlI;,,""",",,,,","""^^^^":I!>                                  
                                 +++~~~~++__---?]]???]?<1zm%phB%*oW%BB&k0XJYb$$*X\1[11_~]{|rcJ0wd*Wkz(tc_iI:,,",:::,:;l!lI;:^.'":::::;;:;:;:::,,""",:;l!>                           
                            +++~~~+++++--__----?]????]_itJo@$$$B&M&$$$@BWk0xm&aCf)}{1{)\fjuU0mdoW&hJjX*Y>>l;:,",,:;IlIlii!;,. ^:;;IIIIIII;II;;;;;:::,,,,:,,:;;!                     
                        ~~~~~++___++_++?---_---]]????-~<fCW@@@$@8WW%@@@BB@BZmou]><}|1fttftvQwk#&WkCuc*#[<!I::,,,:;Ill!i<>!:' ^;IIIllllllllllIIlIII;I;;;;;:::":ll;":                 
                    ~<<~~+__++++_____+_]__-_-??]????]->-rL8$$$$@B%8B@B%8&%$*d$L1_i!{tj/\\nLwk#&8h0YXO&z><l;::,,:;II!ii>>iI^ ':Illl!!!!!l!!!!l!!lllllllIII;;:!>l:`'..!               
               <<~<~+++_-________-__++_]__-_-?-?]??]?-i{xJ&$@$$$$@B@%8MW&B$ka%Y)-?+?r//xUOph#&WawCJZhb-<!lI;:,,;;Il!><<il"..,ll!i!!i>iii!!iii!!!!!!!!!llll:i>I:^'''..               
          ~><<><~+_-_+-_____---_-__+_~_]_-?--?-?]??]-+!)fL8$@$$$$@BB&WMW8$Bd%&Y(?_]?|tcZdkoMWMapOLOdWr>>lI;::,:;II!i<<>l:. ^Iliiii>>>>ii!ii!iiii!!ii!llll;i<;,^....'."              
        +~;i++___---_-??_-_---_--__++~_?--?-?--]]?]?-~!)tO%$$$$@@B%%8%WW%@*M@hY/[---]f0dh*WW#*km0Qq*w~~iI;:,,:;;II!><<iI` ':l!ii><<>>>i!!i!!iiiii!ill!l!I!<;,`'....''.              
       _-i:------_----??--_-_-___-__+_-?--?????]]]??_<i{/m@$$$@@B%8&WMWMB%8$%pXf1]-?]1Ua#MWM**hmQOd*)<<il;:,:;III!i>>i!" .:liii>>>><ii!llll!!iii!!ll!l!ll~;"^'......'."             
      _--i,?----__---_?-?----_++___-__-]---?]?-??]]-_<i1/d$@$$@B%&#*a*&B@%@BMmXr|{}[[}\dW&W#*od00w*Y>~ilI;::::Ill!ii>!:. "!i><><<>>>i!lIIIll!!ii!!lII!l:~l"^''.......'.             
      ___~"+-____---__-??---__~_-__?---]---?-??]]]?-_><)j*$@$@B&Woka#8@$@@@8aOXnf\)){{{JM8&#obOQmhk]~>!I;:,::;I!!!i>>I' `li>><<<<ii!lll;;Illll!!!!;Ill,i>;,^'........'.:            
      -__+,l?______-_???-?-_+__------__]?--???]]]]?-_i+)c%$@@B8#ahaWB@$@@@%Wk0Ycxf\\1{{xo%8MhmC0dWn~<!I;::::;II!iii>!" 'I>><>><<i!!!lI;::;Illl!!l;:;;":~I,`'...........,            
     +-+++!^____++---????-__+__----_--_]?---?????]]?_i~{0$@@@%#hkaMB@@$@B%&*dQYXvrft(}}fkB8#pLCm#w+~il;:,,;;;Il!i!>i: 'I>>>>>>iii!lIII;:,:;IllllI:"""`<>:`''.......'...'            
     _?_++<^!-+_+_---??---__---???-?___?]--?]]??]]]?_!>1p$@@BWabk#%@@@@B%W*apQCYcuxr|[{tkB8hZLZb#)<>lI;:::;IIl!iiii;..;>>i>>>!!i!I;;lI::,,;IIll;:,^^.;+l,`'''''.....''. ^           
     _-_~~<I"+~_+_?--?----__------?-_-_?]-_]????]]]?_!>)qBBB8*kk*8@@B%%&M*aodOLCYcux|[[/hB&bZ0qWX><lI;:::;I;l!!>>>l' ,!ii>>!ii!llI;,:;;;,,:;I;::,"^'.>i;,^^`''''.....''. ;          
     _-_<~>!^l____?---_--___-_?-----_-_-]?-???]]]??--<~(0&BBWhko&@@B%&M*hhaadmO0JXcv|?[r*%#bZ0hd_~!I;:,::IIII!>ii!` ^l!!i!l!!lllI;:::,::::;;;::"^^' "~l;,^``'''.......''.'          
     __+~<>iI,~+_---__-_-___??---?---___]]-?]]???????~~|za8%Mkk#B$B%W*kkddkhdmwZQUXc)?[uW%#bZZo|<iI;:,,:;IIll!>il^ `:li!IIll;llIIl;"`^",:;;;:"^^`'' l~I;,`''''.........''           
    ~__~<><>!"l+__-__--____-??_--_----__]??-??-???]??>;)fmM8#ka&@B%MaadppkaakpqqZLCz1?[c&%opZhu<>I;:,,:;IIIlli>l` ^!!i!lIl;::;:::""^^^"""::"^'`'''..ii;:,`'''...........' ,         
    ~~~<>i>>i:^<+__+__-__-_---?-_---_-__-]?----???]?_i"]|Jo&*a*&@B&ddbbpb*##hdbdqm0z[]}X&&kwaY<<l;;,",:;IIl!iil` ':!!llI;;::,,"^````^^^^`'..''''.. ^il;,^''.............'.^         
    ~~<<>iiiil^l_+++_+__---?----_--_-_-__]?----??---+>,<(ck##*#8@%amwOppd#&Whbbddqwc]}}C%#wkQ<>!I:,"":;IIIliil` ',ll!!llII;;:;:,"^"""""^'..''..... ,I;"`'''...............^         
   ~~<<<ii!ii!:"~~~__++-?-??--+-__---_-__-?----?---__~l;{xwoM*M8B&kwOLmZq#8&*hhhdppv]{}0%awd[>!l;:""":;Il!i!I` .":;;I;;;;;;;:,,"^^"^""^`'..''..... ,;:^^''''...............         
   <<<<ii!l!i!;^;~~-___-_--__+_-__??_---_~??__------_+>:+\Ch#W&B&#admmmOdW8&MM&Wokkn?}1wWbbr>>lI;,,,,:;I!!!;' '":;;;II;;;I:::,""^^^```''...''.... .":"^`''''`'''.........'.`        
   ><<<iii!!iil,^i++~____++____-_--___---+_]-__-_----+~l;{xq*W&%o#hdZwppaW&WMW&Moaar-[\pahY<<lI;:,:::;Il!l:' '^:;I;;;;II;:::,",,"^```''....'..... .^"^`````````''.........'.:       
   <<>ii!!!!!il;^,+~~~+++~~_-__-_-_-__-___+-?_-__-__-_~i"_\Jh#WMbWdpwOqbaW8&MW&#*ohf_[fmh0+>!l;:,,::;IIlI,..'",:;;;;;;:::::,""""^^``''..........  '`^^^^^^^^````'.'.........`       
  <<<>!!!!ll!!!l:'I~<~++++_+++_+----_-___--_?-______-+<>;;1rq*#hd&bqwmpaaW8WMMM*oak\~[jwp]>ilI::,,:;;III"..'":::;;::::::,,""""^^^`''''.........   .`^^^^^^``````'............       
  >><i!!!!lllll!:^'i~<<_++++~+_---____+-_-_~~?__++___+~>!^_/Chopb&ahkbh*M&WW###ohab)>-nd1i>lI;:::::;II;^ .'^,,::::;:::,:::,",""`'''''..........   .'^^""^^````^^`'...........^      
  i><ii!!lllllIl:"'^~~<++~~_+__-_-__++++_+~<<_?_+~+___~<!:;)nwkwkW*#**#MWWWM*ooahob)i<nti<lI;::;;;;II:' .'^",:::;;;;:;;:;::,,^`'''............    .'`^"^`````^^^``'...........      
  ><>i!!llllll;I;,"."+<<~+~~+_+____+_~_+__~++<--++~++_~<il^+/UwQkM**#MWWWWW#aahkhhb)<_[<<il;:,;;;;II,' .'^,::;;;;III;III;,""^`'''............     .'^^^^^^`^^^^```''..........`     
  ><i!l!!IlIllIlI,^' ^~<<~~~++~___-_++_++++~<<<__+~~~~+~>l:,{rJzkM####MMM##ohhbddkb1!]~>ilI;:;IlIII". .'^,;I;;;Il;lII;;,,^^'''..............      .'`^^`^``^`'^`^`''...........     
  <<!ll!lIlllll!l;^'. ^<<<~~~+~+++__+_++++~+<><>__~<~~~<<!I^i\uvk**#*#*****ahkppwpb}!->!l;;;;;IlI;^...'"::;II;lIIII;;,""^''.................      ..'```'''````````''...'......`    
  >>!ll!lllIlIIII:,^.. ^<~~<~+~++~~+++++~++<++<>>-_~<<<>>il;^]/jpaaaaoao*oahakmZO0w)~<ill;;IllllI^ ..`",:;IlllllII;,"``'...................        .'````'`````````'''..'.......    
  >illIllll;;lI;;:"`.   '<~<~+<~~<~~<~~~+~~+<~~<i<-+<ii>ii!I"I}(LqdbkkkhhhhkhkmQJJY_>i!IIIIll!!;' ..^,;;Ill!!lI;:,^`''.....................        .''```^^^```^^``'''..''......,   
  >!Illl!lII;I;;;,^`'    ^+~~~~<~<<<<<<<+~~<~~~~<<>+~i!!ii!lI"!]uYLOOmpkhhhhkpOJYX?ii!!;l!!!!l,. ..^,;Il!lllI:,^^'''.......................        .'````^^^^```^'`'''....'.....'   
  illllllIIII;;I;"^`'     ;_+~<<~<<<<<<~<~~<<+<>~<i>_+i!iii!l;^,1xcYJQmkhhkkbp0UY]ii!!lli>i!l^  .'^,;;llII;:,"^``'''......................         ..'```^^^`^^^^```'''....'.....   
  illlll;;II;;;;;,^`'.     !_<>~~~+><<<<<~<<<><<><>>>~+<<+~~~>;`l|uvvcCwbhkbdw0L1iil!!!i>i!;' ..'^,;;;I;;;,""``''.........................         ..'``^^^^^^^^```''''....''....^  
  lIlllII;I;;;:,:"^`'.     .<_<<<~+<<<<<+~<>><<<<>><il<_+~<<~iI"^~tvvnvCqkkdqZm\i<!!!ii>i!:. ..'^,;:;;;:""^`'''..........................           .''``^^^^""^``'''''.....'.....  
 illllI;;;;;:;:,:"^`'.      `_~>><<>><>~~<<><<<<~<><>i!i+<il;;:"^,[nXcvYObkdwpni>!iii>>il^  ..`":;;:;,,^^`'''............................           .''``^^^^""^``'''''......'... , 