`                                                                                                                    
                                                                                               `-`   '-,`                        -',:^;:,,'                                                                              
                                                                                             `,::;;:":;vi|?rr*|r:,'''-```` `,;;|czzzzL|\|;,`                                                                             
                                                                                        ``'':?vzjFL/zvjXf}oSt1Jc\Fi?*r^/vzFSSfyemPhPhkE9q$Xfc>;;;;::,-`                                                                  
                                                                               ``-''',~:^^|1e66PjeFzjSPkZi}ZoZZj2Sjam6qqPemEXk9$$EPaujjZPEEwwUPe1||\cJv^:-                                                               
                                                                          `-,:::;;r?\\7v7cvJ{oemoXPPew69eluPeoSewXUqKOUeE99UqKODO$6EXoaommPwSyaUkXmoF}{v\|;'                                                             
                                                                      `':;?vx]SeeXmoSyojSjxtjewmoX$qmUXqaumqqkkKU$OqH9$9dDdqdDdO$$ef]z/vjjuoeSomoZoeejc;,;=;;-                                                           
                                                               -:^|/c7vJ1ueEXqq$OHHOddK69$PeXP9dKqgW$OXqhXUd8KK9KKPqKHgDDHHdWNHKqEXeeemZZoojjSeXPEeFoPPoz\\^::,                                                          
                                                            `'ritJvFoeXPwk9KdDDgNW&gNd9KUPP$$KKDN&RQQDDKDdDggO6$KkSkH#HKD8ggRRKqOOHDHK9$PekEeeXkkkPXe2ZZeeju{Lr,`                                                        
                                                         `';|xuuSjjooXPekmPKhm9qqUqkKUwmP$d8DDNNN#NNQNDRgggQB9KqHKXg&DHDd#Ng$UkO8gRqkXaXk66$dHqU$OqkmeoeXZoejFjl?:'.``                                                   
                                                      `';Lj]jjjoef}PeheeeemmE69KKO9EPe6RBBM&NQQQQQQNQQgDHNQQ#NKR#D#QDODKRQ#Hqg#gDOOH$qRWDq9KOwo6$9E$PamweoSj]vF}Jv^'   `                                                 
                                                   -,:;Loef}uFZX6khmmwXeekXk6kkKdDdHOR&Rg#BBg#BB#QQ#BQQ#NQQQQB#gNNQ8dUqWQQW8##gDWNDOM&Mg6k9hSjFmmeXyukKEmZZoSFv\=c^;:`                                                   
                                                 `,;;rioefzeeZmmX9q9$U96$hPw6O9dRdHR8g8WRRd9qM#DgQQ#QQQQQQQQQQQB#QNDKDRQQNNQQ#N#BWDH6UHKK2mk9Zo6oaeeEwESeemeeeo}vvLr;"                                                   
                                               `,;;;=1]yZfej}jjSSSeam66PU6keaeEORH&MgWggMDM&8DdH#BBB#NQQQQQQQQQQBBDWDBBQB#QBQBQQNNRKOkKHP99NgMqqeqDEjj2ke}jeeeeUUXo]\r:                                                  
                                              .;;;^\jxuwu1]oowh9q6qkXeS{]aZXqqPjaKDDD8R&W&&D8&$Ek$DBN##BQQQQQQQQQQ#B#QQQQQQQQBQBQNHg#gDHO#DN#NRWN&OoZoP$XPSuyePmhhUkm]i:                                                 
                                             -:;;^?uemweujZmaZm6qq9P$q$Xwk9U9OOKDg&DDDKKdOOKkqK9X6DN#8#BB##QQQQB##BBgQQQQQQQBBBQQNgB#N#NN##Q#NDNNOPm66K$9HDOhmmkPPOhPmS/:-                                               
                                            ':;;>1mq9mmuywqkXXXk9OOKK9qqOOqPXPk6KRRDgNgDROkXmE9KRggNNg##NNgNNNNgN#NNgBB##BBB##NBB#gN#BBNB#BNWNggRq9dDR8ORHqPySh6kq6OHqkZ7*;                                              
                                           ':;^7ekPm6DkaPdd9KHDdKKU9PeaZEPwmmPXmXkKHODDKOKKK9EX6KH&NW8NNN&DDdOHKHDdDD8WgWWNNW&RNNNDR#B#NQNWNNNg8Dg##NgDdkeaSowPeoEODDdqmv/;`                                             
                                         `':;^1ePXEHOKwh9$kqOHDDDO6mahqqOk9kh6kkPXEPo6KKq$UP9dHKKOKHDDDDDDD9qK9hePkPh69KKqOdKU$9dODdDWNgN&NB#N#BB##NgWqqOdD&dUZmoeXKDd6we1?.                                             
                                       `,:;;;|X6mP$6PmehOqDDDROEXk6KDNgNgg##gRMOKKqqPX6kkEkkPkXeePXXhk$$qK6weooZ2ySuFujfaeeeSujmPE9qk9DHDRWgRg###NNMOKdgRRRRDdD$em6ZuuZeejx;                                             
                                      ':;;;;^1eePwmPyyPeEKDRD96$DWHRODWg&RRDK996eSSoSju]F]FFzz777Livlv{F]uuuuu{tv7v7c\\\\iz{Fvv1u{ujufaePkPhKD8RWggRDggMWRDHDgDOEXaoyoyZPmXt~`                                           
                                     ';;;;;^|femPZjayeUk9qKkeeKHO6PP6Dd6Kq9PmZjJxv7L\?>>>rrr*?=**>>r>>=r>rr>rrrrr>>rr*>rr^^>\*r>???|*?\vtF]]2ySPqOHDgggM&8R&RdUUqqKq$whPmeoSc:,`  `                                      
                                     ~;;;^^=xSeEm2SufSooePhP9KOKZj1XhkPZZou]}1vi/|?>>^r^^;^;^;;^;;;;;;;^;;;;;;;;::::;;;;;;;;;;;;;;;^;;;^r>*?\ivz]SeehhqRN##NggNB##&O9EeeSeEeaF|;:>^'                                     
                                    `:;;r^=vooZoayeSuuujP9Pwu2eZyooajojFF17iL\\|=>rr^^;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;^rr>*?|\/7z1uP9HM##gNN#NMDH9Xo2uju]yoSj1>:'                                    
                                   `,;^;;?|1fjewmejj{ueP$6hmeXXj2ou]{xvzzi\\|?*rr^;^^;;;;;;;;;;:::;;;;:::;;::::::::::;;;;;;;;;;;;;;;;;;;;;;;^^^^^r>?|\Lv}j2PdMggNB##NgDKqk2}FooJ\;,',;:-                                 
                                   ,:;;^^rljoePkhaoJZm9KdOdq9$keSySfzzzi/\|??rrrrr^^^;;;;;;;;;:::;;::::::;:::::::;;::::;;;::;;;;;;;;;;;;;;;;;;^^;^^r>=?\Lvz}jZ9dDWgM8WW8RKUhmoFL>,`  `',-`                               
                                  ':;;^>|tehUPeeouFePqqOdOq9heyF]FxliL\|||*>rrr^^^^;;;;;;;;;::::::::::::::::::::::::::::::::::::::;;:::::;;;;;;;;;;^^^r>?|\i7vt2e6dDHWWRR8O6PoFvir"`  ````                               
                                  ,;;^*cSXkkXehXSFmePEq$6PyuFJzvlicl\?|?*=>r^^^^;;;;;;;;;;:;:::::::::::;;::::_:::::::::::::::::::::::::::;;;;;;;;;;;;;;^r>*?|\L7vfoXkUKOKK8D$eFFoS/^:,'-`                                
                                 .:;^|JjemojSemufoZw9K6eZuttzllccc/?>=>rrr^^^^;;;;;;;;;;:::::::::::::::::~"___:__::::_::_::::::::::::::::::::;;;;;;;;;;;;;^r*??|\iztjaeem6E$dOeje9Uf?;:,-`                               
                               `,;^>cSehPu]omeySuoywkkoF{]zv7lLL\|>>rrr^^^^;;;;;:::::__::::::::::::__::::::____:::~,~,,""~~___::::::::::::::::::::::;;;;;;;^^r>>=?\\cvvuuSmoZUOqk999Zv>;'```                             
                              ':;^|7yZeZSywmujSukSyuoeS]]}zvlL\\|=rrr^;;^;;;;;;;;::::::::::::::::::___:::_~"_:_:_~~,,~,~"~~~__:::::::::::::::::::::::;;;;;;;;^^^^>??|/v{jE6U9qKKUqO96F\>^^'-`                            
                            `~;;^>/vuyeZaZoFo]yooSo7FSfzzv7c\||**rrr^^;;;;;;;;;::::::::::::::::::::::::::__:___:__:_"~,~~""_::::::::::::::::::::::::::::;;;;;;;^^rr>?|\zfoPqO9qOK9$UkEo{^r*:`                            
                           `,:;^r^\SXejuS]t]juoouyo}zux77L/\||?=r^r^;;;;;;;;;;;:::::::::::::::::::;;::::::_::::___:::__::::::;:::::::::::::::::::::;;;;;;;;;;;;;^^rr>>?\/xom9OdKOO$ee6PUo\^;,                            
                          `,;^rr^^7ytu]ouz7zfSejvoXF]}z7l|||?=r^^^^;;;;;;;;;;::::::::;;;:::::::::;;;;;::::_::"~__:__:_:::::;;:::::::;;:::::::::::;:;;;;;;;;;;;;;;^^rr>>?|\v{SPKOKKUEZeeePm{*:-                           
                          -";^;^^?{uSuaj]ivvjF1]FoeaFjvz\||*r^^^^^;;;;;;^>r^;;;;;;;;::;;;::::::;;;;;:::::::::_"___:::::___::::::::::::;;;:::::::;;:;;;;:;;;;;;;;;;;^^r>*||Lcv]ae6ewPej2emeke;~'`                         
                          `:;^;r|Fuj2Sej7\\Jj]uSjuZjj]Jc||?r^;^^;;;;;;;;;^;;;;;;;;:;;;;:;:::;;:::::;:;:::::::__::::::::::::::::::;:::;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;^^rr>?|cic]eXhyeUkXwPeX6z'`-'                        
                          ';^r>?xyaowPS1\|/oSeS2oo2t1vi\??>^^^^^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::_:::::::::::::::::::::;;;;;;;;;:::;;;;:;;^;:;;;;;;;;;;;^^^^>*|L7vvtaPkeeXhmemSo2*-``                        
                         `:;^=rcSoZoXm1vziumeSSeoj]v7L\|*=r^^;;;;;;;;;;;;;;;^;;^;;;;;;;;;;;;;;;;;;:;;;:;:;;::::::::::::::::::;::;;;;;;;;;;;^;;:;;:::;;;;;;;;;;;;;;;;;;^^r>?\ivJ]FePkZekXSZajj];                          
                         ';r>>|tvfeoe2{FuzFeeeyu]t1iL\|*=r^^;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;:;;:::::::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;:::;;;:;;;;;;;^;;;;;;;^^^r*|Lz]]uoe9eSoZufFyjv|`                         
                        `:rr;^|\zjeXeuzjjv{ujF{{xvcl/\|>rr^^;;;;;;;;^;;;;;;;;;;;;;;;;;;;;;::::::::::::::::::::::::::::::::;;::;;;;:;;;;;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;^^^r*|\cxf]FaEw2SuozcFa]?'                         
                        '^>^^>/L]ujSaFzSutjjF}F{]1vc\|*>rr^^;;;;^;;;;;;;;;;;;;;;;;;;:::::::::::__::::::::::::::::::::::::::::::::::::;;;;;:;;;::::::::;;;;;;;;;;;;;;;;^^^r>?/vxfffjeXje]oy7Feo7:                         
                        :^^^r\\LJut]]FjSFvjJz]]F{v7/|??>rr^^;;;;;;;;;;;;;;;;;;:::::::::::""::___::""~"::____:::::::::::::::::::::::::::::::::::::::::::::;;;;;;;;;;;;;;^^^r?\z{jZj2jZtZ]FjFyZ27/`                        
                       ';;^^rLLLizvzjuF2uctvtF]FxJvL\\|=rr^^;;;^;;;;;;;;;;;;::::::_~,~,~,,,,~,,,,,,,,~"_,,,,~,~~~~"__::_:::______:::::_:::_:_:::::::::::;;;::;;;;;;;^^^^^^>?/v]SmeZoyFoZ]uj{uf/{;                        
                       ,;^^r*Lvii/z/ujiuz/vv]x]fv}{L||=rrr^^;;;;;;;;;;;;;:::::::""",,,,,,,,,,'''',',,,,,,,,,,,,,,,,,,"_"__~,,~~~,,"::~,,~_"__~"_~~:::::::::::;;;;;;;^^;^^^r?L1jZ6P6kmjje1juxv}7j\.                       
                       ,^>>\L7iv/czz7fvvxc7]]Fuuouvi|?>r^^^^^^;;;;;;;;::::::__"~~,,''''''''''''''''''',,,,,,,,'''',,,,,,,,,,,,,,,,,,,,,',,,,,,,~,,,~__"_:::::::;;;;;;;;^^^r*\z2X66Uqmoue}Su71uzoi,                       
                       "^>|vv17Jc|]SLz]vvivtFjjZ2j1\?*>r^^^^^^^;;;;;;::::::::_~,,,,,'''''''''.-.'''''.'',''''....''''''''''''''''',,,'',,',,,,,,,,~~_,,_::::;;;;;;;;;;;^^^^>|lFmqHDd6ySeya}7cfyFx,                       
                      ';^rizF}zzc>t}il17ivl]S2aZ2Fc\?=>r^^^^;;^;;;;;;;;;;:::::",~_:~,,,_:,'.-..''-'..-.'.``-.---.'.''---...-`-`-''','',_',,_::::":::::::::;;;;;;;;;;;;;^^^^r|cFe9DRHPjaFzziy]tjj1,                       
                     `"^^?]FS7uzv>FucLz/\lzujoXojxl|*>>r^^^;^^^;;^^^^;;;;;;;;^||\||>^;;:;;~,',,:_,,'''''````-'...'.-`````--''''...,,',;~~:;;^^||\\|=^;;:;;;;^^^^r^^;;;;;;^^r?/xokddKae{u{vzej}ZSJ"                       
                     ';;*v2S{v2xl|{u7cv|\|FoSeeZfzc|?=>rrr^;;^^>*=|>>r>>>r>|vJ1zlic/?^^^^^;:_;;;;;:""'''--.'..-..''''-.''--.',''''::,;:;;;^>\/\|izt]]vL|?>r^r=***???=r^;;^r>?/1yPESo1}j}oJuZSzZu\'                       
                    `:;^?}eSivj2c?*u17\\|?j2aeeo}vc\?*r>>r^>|/L\\il|||*?/z{xzx7/ciL\v\?*?>|r;;;;_:^;__~,,,'''..'.''''''''''',,,~,,::;;;^r?L|>r>|\LLlvz7v7\||??/L/c/\|\L?>r>>?/zFoPe{1jS\ozehjto2?`                       
                    ';;r?lvic1fe]c?vFv|\/|j2XaZfJvi|=***||lxuoSoemoZmmZewmZeZjjjjuu]]xvci|L/\?^>>rr:",,,,''''''''''''''''''',,,_~_:;;;;>||?>>?||?\7J{]FFuxc\|?\i7vz7||/7/\|?|\zjm6au{mJzS1PPF1uj|-                       
                    '::^r*=/zllj1i>}a]\z7\oSEajFJvi|*?|zow6UXoyuFFu]11z]F{v7ccL|||\|?>^^^^;^^^;;^rr^^;:",',,,,,''''~,''',''',,_::^\?|\/\|\\\\ll//czzvvz{{tuooy2ZZu]FJ1zzvvL||\vSEkOZzF7v{FP$ujof*`                       
                    `.,;^^*\/iv1vz?ojjFuz{jomZjvjUKKOO6fvvf]c|*=*>^;:;;;;;::_:_::::::;;;;;;;;;;;;;;;^^zooyjF{xvi|*>?\\\/\\\\/7v\??>;;^^;;;^^^;;^;;;;;;;;;^^r?\/iJuSoaeemojx\|ivjoZhf{7yvi{ZeSjou^`                       
                      ._rr=?|vvv1v?t{11oJeZee1|iDgH&H9Fc\Lc/?r;;;:__~,,,,,~,,,,,,,~_:::;;;;;;;;;;;;;;;;?oPwwXXmoFvcvuEUq$666k}>;;;;;;;;;;;;;;;:::_"~,,,,,,~:::::::;;^*|zFZmeu7zFjPw}xuXlijSjaje1:                        
                      `'^^rrrc\czv|zzfFjzmaz^;|}6OOeKu/|||?r^;::::_"~,,,,,,~~,"~~::;;;;;;;;;;^;;;;;;;;;;\oL?^;;::::::;^?/zo6c:;;;;;;^^;;;;;;;;;:;:::::_~,,~:___:__:::::;^|\zuPdODDdE}X6FFXSuyS]L;                        
                       '^rrrr|\vvvujjejfi\^^?uXmo{\vmi^;;;;:::::::::::::::;;^*?;:;**::::~,,~_::;;;;;;;;;^=;::::::::::::::;\|;;;;;^;;;:::::::::::^~,_::;;;:;;;;:::::::::;::;rl]Z$ONNgX|ueZkSzfuzL;                        
                       `;r**>||cvvyeamo\;;\ukwji\/\lX|:::::::::;;;;;;;^>LzuuFuuf]}{c77L?^;:~,,,,~_:;;;;^^>^;;:::::::::;;;;L=;:;;;;::::::;;>|\Li]1|c1]zz\|?r;^;;;^^;;;:::::;;^vFwdHDKe=:vm6ovZjc\r                        
                        ,^r>>>\\v]2eeo|*coq6Pot|?\|ce*:__:::;;r?>^^|vti\L]l\L]oE2l{*r*r;^^^;:,''',,_:;;|;\>*r^;;;::::;;^r>i>;:::_:::::;;;;*||*|xF{ooFt]2ojjuv>;;;^=*r;::::::;Lx2KDd$qZr;zk$owz7t|                        
                        '^r>^^\7]]]Sj/edKXk6my7=r?*\j>:__:::;^rr?vSazr:,:|?>?]a6aFj>^r;'-',,,.  ',,~:;?*^=^\*^;;;;;;;;^^=\\|;^__:;;;"'`  `:r^^*Zf*eEF|*\|:^LjaFi|^;^>^;;::::;\lj98#DDDP|:xXojvxtr`                       
                        ,^=>rr|7zju*\U9$eXk6wf|r^=*?]r_~"::;;;>iuSJ|r;:,,^/|?|7F]7|^^^~..''',,` '::::|c;>;?\>^;;;;;;;;^^>|*/:>^::;^;:'   `,^^r?]omXSc*>?;,,~;/jZ}7>^^^;;;::;;;^]jqD&gW89?^ee1clL^                        
                        ,^>*r^|v]aLrdDkXX6Kqev=r^>?*xv_~_::;^>L7|^^>>;;;;:^*=*?||rr>r;::::::::",,,~:?v>^>;L\>^;;;;;;;;;;^r=\rr|?_~:::::_"~:^>=*?*\\\|?|^~~_:;r?||c}vi?r;;::;r7|t\Pq9DDDdKtvZv/z\:                        
                        '^>^^r|7am?a##HOHHqPji*r^^**ij;::;;;;;;::;;;:_;;::r^;=;;;::;;:,,~,,_~,',,',;\\^|;?L|^;;;;;;;;;;;r>?>\^*/;,,,,_:::__::::;;rr^r^r;^r;:;^;;;>/c\|>^;;::?v/}*jUKKKhqHU\StvJ\-                        
                        .^>>r^r}ak]dW#gHRdqw]|r^^;r*|jc;;;;::_"":::,,,,',":~::_,,',,,,,,,,,,,,,,,,:;>;=;;L|=^^;;:::;;;;^r>>??|^;",,',,,,,,,,'''~::~:;_:;:::,,,:_::;;;;;;;;;^7Lx|rzk9qdqH#&1c{Jc:                         
                        -;r|r^>7eRPD8gq$OqUev=^^;;;>\ve\;::___:_:__,,,,'',,,,,''''''''',,,,,,,,~_:;r^?;;|\|r^;;;::::;;;;^rr??\r:,,,,,,,,''''''',,,,_,,,_~,,,,,,,,~"_:::::;;|1/z;^ckKHWOOQNjL{xv,                         
                        `;^^^^rLSEHW#9ek9Emj\^;;;;;^|LxXv;::::::_~,,,,,,'''''''''''''',,,,,,,,~_:;;>\^;*||>^^;;;;:::;;;;;^r=\|/>;:~,,,,,''''''..'''''',,,,',,,,,,~__::::::;iL}^;;|wOHR#8gOZF|v\`                         
                     `':;;;;;^^*LtZ9EjeZwZoz>;;;;;;;;r|/]Zu7*;:_~,,,,''''''''''''''',,,,~,,,,~:;^\i\r*>*??=r^^;;;:::::;;;^^r?|?/\^:::_,','''...------.''''',,,,,,,,~~"_::;*/}^::;^tO$UO9ZUkz;7:                          
                 ``.":::;;;;:;^||czuoeeeeo2/^;;;;;;;:;;;r?\vuS2ftzL?^;:::~,,,,,,,,,":::::;;^*\L7c|rr>rr*?*>^^;;;;;:::;:;;;^^>*=>|iL>;:,,,,'''''.-`---.''''''',,,,,,,,"_::>Jz;::::;\$6aePo2a*|?.                          
               ':;:::;;;;;;;;:;^/7mkZkkwoeF*;;;;;:;;;;::::::;;^^r*\cvJ]]FF]xJ1zvv77lciL/\\\|=;;;^^rrr>>**>r;^;;;:::;;:;;;;;^>>r^^^r\//|>^;:,,,'''-'...'''''',,,,,,~:;>\vzvr:::::;;^ukmeeSFzv\r;;:,-                      
             -:r>::::;::::::;;;:;>2mmUKe2Zcr;;;:::::::::::::_"_:__~~"_"__:"~,,,,,,,,,',,,,,,"::;^^rrr>>>r^^^;;:::::::::;;;;^r>r^^^;;::;r>=*|\\\\\/L/\\\|\\\/Lilvzzv1zi|;::::::::::;cEXmwoz\>;;;;;:::'                    
            ';rr;_~:::~,~::::::;;:rcuZmZju\^;;;::::::::::::_::_",,,,,,,,,,,''''''''''''',,,,::;;^^^r>>rrr^^;;;;::::""::::;;;^rr^^^;;;:~,,,,,,,,~_::::::;;;;;;;::::::::::::::::::::;/EXZPhu|;;::;;;^;:,                   
           .;r=;:,:_,:__::;:~,,,;^^^\]e2fu|^;;:;;::::::::::___~~~,,,,,,,,''''''''''''',,,,,_:;;;^^^^rrrr^^^^^;;::::::::::::;;^^^^;;;;::",,,,,,,,'''',,,,,,,,,~~~,"___::::::::::::::roXPE6jv^;;;;;::;;:'                  
           ;^=r:_~_,'_::;;;:,,:::;r^|1a2oj|^;;:;;::::::::::::_:"~,,,,,,,''''''''''''',,,,~::;;;;^^;^rr^^^;;^^;;:::::::::::::;;^^;;;;;;;::_,,,,,,''''',,,,,,,,"__,,~,~_:::::::::::::^uaPqUair;;;;;:~~::_`                 
          ~^??^:~_"''_::;;;:_~,:;^iLv]eee}|^;;;;;;;;::::::::~_:~,,,,,,,'''''''''''',,~~~~:::;;;;;;^r>r^^^^^^;;:::_:::::::::::;^^^;;;::;;;:""",,,''''''',,,,,,,,~~~~,,_:::::::::::::^tZeXXev\;:;;:~,,,~~,                 
          :r>r^:~:_,':;;;^;::_,,_^/JoXhPjz|r^;;;;;;;;;;:::::__~,,,,,,,,,''''''''',,,~"_:::::;;;;;^r??r^^^^^;::",,,,,,~:::::::;;^^^;;:::;;;:_",,,'''',,,,',,,,,,,,,~"_::::::::::::::rjXFutz::;:;;;:~,,~,,`                
         `^>=^^;::_'':;;^^^;:_~::::^xeeotv\>^;;;;;;;;;:;;;::__~~,,,,,,','''''''',,,,,~""_::;;:;;^^>*>^;^;;::,,''.---.',,~_:::;;;;^^;:::::::~,,,,,,,,','''',,,,,,,,,,~:::;;::::::::;*eey}c?:::;;;;:"~,,,,.                
         `^>=r>;:_:,~:;^^^^;:"~_"~^L]u1z1Jc?^;;;;;;;;;;;;;:::_~~",,,,,,,,,''''',,,,,,"::_:::::;^>?>r^^;^;;;_,,''.`  `'',,__::;;;;;;;;;",~~"~,,,~,,,,,,',,'',,,~~__::::::;;:::;::::;?oojJl\=;:;;^;;:,',_,'                
          ;^*rr;:~:::;;rrr;::,,'',:^\lxv7fv?^;;;;;;;;;;;;;;::::_",,,,~,,,,,'','',,,,"~~::_::::;r>r^;;;;^^;;:~,,,,,'''',,,::::;;;;;;;;;_,,,,,,,,~"~,,,,,,',,,,,,~__::::::;;::;;::::;?]ejv/*;;;;;^^;:,'_:_,                
          ,r?r>^;::;:;;^>^;:,,''''":^\zciJv?^;;;;;;;;;;;;;;::::::~~,~",,,,,,,,,',,,,"~~"_"__::;>r^;;;;^^^^;;::_:_",,,,~_::;;;;;;;;;;;;:~,,,,,,,,,,~,,,,,,,,,,,,,~:::_:::;;;;::;;:;;|zS2i\>;:::;^r;:',:;:'                
          -r>^>>^:_:::;^r^;:,'..'',_;>\=it1\r^;;;;;;;;;;;:::::::::"_",,,,,,,,,,,,,,~"~~~~"~~_:;>^;;;;^?\c7/?r;;:::::;;;;;;r|\L|r;;;;;;:_,,,,,,,,,,~,~~,,,,,~"~~~__::::::;;;;::;::;;\vtF?:",,::;r>;:,_;::-                
           _r^r^>;:::::^r^;:,'..'',:;r?;|v7L>^^;;;;;;;;;;::;:::::_",~,,,,,,,,,,,,,,,,,,,~,~_:::^=^;;;;^;rzjJvL>^;;;;;;;;=\vc?rr^;;;^;:::",,,,,,,,,,,,,,,,,,~,~___::::::::;;;;:;:::;Lv{v;,'.',:;^=^::;;~~                 
           `;^^?|r;::;;;;^;:_,',,~:::;|^^?vi|>^;;;;;;;;;;;:::::::"~,~~,,,,,,,,,,~,,,,,,,~~~~_::;^?>^;;;;^=rr>?>^rr^^^;;;^^rr^;;;^^r;;:::~,,,,,,,,",,,,,,,,,,,,,~~:::::::::;;;;:::;^izJ|:,''',_:;>^;;;:"-                 
            .^r*r^r;::;;;;;;_,',:__:"~^>r*vvL=^^;;;;;;;;;;;:::::::::,,,,~,,,,,,,,,,,~,,,~"~~:::;;;rr^;;^^;;;::;;;;;^^;;;;;;;;^^;;;;:::_~,,,,,,,,,~~,,,,,,,,,,,,,~:::::::::;;;;:;::^1{/^:,,,',:;;>^;;:_'                  
             ,r=r*|^;::;;;;;:,',,~__",:^>*L}/*r^^;;;;;;;;;::;::::::_~,,,~,,,,,,~,,,,,,,"::___::;;;;;^^^r?>^;:_~~"::::::::::;>|/\r;;;:::_~,,,,,,,,,,,,,,,,,,"",,~_::::::::;;;;;;;;;>z/;;:::,',:;^r;;;:'                   
              ;r^*??;;;;;;;:_,,',,_::::;r=>lc?r^;;^^;;;;;;;::::::::~,,,,~,,~~~~,~,~,,,,""""_::;;;;;^>|\lv\>^;;::_~~___:::;^r|\cvv|r^;::::_~,,,,,,,,,,,,,,,~_~,~~:::::;;;;;;;;;;;;;?/>;;;::,'_;;^^;;:,                    
              `;>|?>^;;;;;;::~,,,::;;;;;^^^\c|>^^^;^;;;;;::::::;:___~,,,,,,"_""~,,,,,,,":___:::;;;;>*71}77\|>|^^;:::;;;;;r|/LlJfo1/|;;::_::",,,,,,,,,,~,,~__~,_::::::;;:;;;;;;;;;;||;;;::,',:;;^;;:~                     
               '^?*?^^;;;;;:::_::;;:::::;;^|/|?>^;;;;;;;;;;::::::___"~~,,,,"::_"~,,,,~_::::::;;;;^=>|foj2tv\vc>|r;;r^*\?|?\il}2ePeFcr;;;::::_~,,,,,,,,~,,~~,~~_::::::;;;;;;;;;;;;^|?^;;:~,',::;^;::`                     
                :*|>>*;::;;;;:_:;;:,,,_::;;^/c|r^^;;;;;;;;;;::::::____::__::::_~~~~~"_::::;;;;;;^ivvujSeZFjfJl77v/\^^Lvc7v\z}{FSmmeuir^;;;:::___~~~"~~":___"~"_:::::;;;;;;;;;;;;;>v?::::::::::;;;:-                      
                `^r>*?=^::;;;;;;;;::_::::::rv]\>r^^;;;;;;;;;;;::::_"~_:::::::::_~~":_::::;;;;;;;|7juF2ZZS}}]vl]Jjuv;?\vvzu}]u]]FSouu1|>>;;::::_________:::___:_:::;;;;;^^;;;;;;^^?i|;:",_:::::;;;'                       
                 '^>rr>r^;::;^;;;;::::_~~,~^\z\r>r^^^;;^;;;;;;:::::_:::::::::::_"__::::;;;;;^^rL1]uvxFoyFxvFf1tuytL=>FFjt7vFjS2ySmoo2u/L?>;::;::::_:::::::::_::::::;;;;;;;;;;^r^*\|^^:_,,:::;;;:,                        
                  '^rr=*|r;:;;:;:::_",,,',:^c1\=**^r^^^;;;;;;;;::::::::::::::::_~_::;;;^^rr;^*\vzF{v/FJ7v7|i}vFFFx?||zjfyz/iu]fuyoSf]yjf1/|r^^^;;;::;:::::::::::::;;;;;;;;;^^^r*||>:::::__:;;;::`                        
                   -;r>??^r|=^;;;;:::::;;;r|/1i=?r^^;^^;;;;;;;;::;:::::::::::::_:;;;^??>>r||=\\7jJc\??*\|\r?7vtf}l|^^\z/???r*?\7v}jttzj]vvvL||??r>^;;;;:::::::_::;;;;;;;;;;^^^rr>>>:,"::::::::_-                         
                    `,:^=r??=rrr>?r^r*|???\\\v\||*^^^^;;r;;;;;;;;;::::::::::::;;^^^r\\i/\||*>|\\l|?>^;r^;^;;^^^^rr;;;;;::":::;;r>*|i/L\lcilvi\|||\?*^;:::::::::::;;;^^;;;;^^^^^>^?*^;:::::;;;:-                          
                       `',:;;:::",'',;|??\\??/\**?>^^^;;;;^;;;;;;;;;;;;;;:;;^rr>*>r?\\L\?>*r>r=r^*;r;::::_,~,,,,:____~,,,,,,,"__:::;;^r>>|=**\\\|||=r;::::::::::;;;;;^^;^;;^r^^r^|\\?=r;:,,'`                            
                                    `_>r*|??|Lc=>rr^^;;;;;;;^;;;;;;;;:;;;;;^^^;;^>*?*?|>r>r^;;^;;;;::":_~~~___"~,,,,,,~:::::::::::::::;;;;^>^*/||??=;::::;;;;;::;;;;r^>r^^^^^^^rr\\||=;'                                 
                                     ,^>?||||/v?==>r^r^;^^;>^;;;^^^;;;;;;;^;;;^>^r??=*r^^^;;;;;;;;;;;;;;;;;;^^^^^^^^r^rrrr^^^^^;;;;;;;;;;;^r;r|L/\*^r;:;::;;;;;;;;;;^;r>*^^^^^^^r^"'-`                                   
                                     :>=|?|\L/i|*=>=^^^;^;;^^r^>?r>;;;;;;;;;^^;r***>?=|*^;;;;;;^^^^^>=?||\\|\LLLici\/cLL/\\\||?>*=>>>rrrr^rr>||||*r;r^;;;;;;;;;;:;^^^;rr|=?r^*^^;,                                       
                                    -~;>?||\\\7|*>\*r^;;;;;^|rr*;;^^^;;;;;^^;^>r;;;r|Ll/|*?*??|||\cliiL/\||\\/i/\\/||||\\||??||\\\/LclvvzvvlL\\|>^>^;^^;;;;;;;;^>;^^^;r^rr?=;^r>;`                                       
                                    `,;?/||?|\\|||/?r^^;;;;=\^r|r^>;^;;;;;;rr^;::::;^^>|\cccl77L\\\?=^^;;^;^;;;;;;;;;;;;;;;;;^^^^rr>**??*>rrr;;;;;;;^;^;;;;;;;;^?^^;>^^r**||^^r=;                                        
                                    `,;|||||/Ll/|\\>>^r^^r;?>rr||r*;;;;;;^?|^;;::::_::::;;;;^r^^^^^;;;:;:;::;;::;;;;;;::::;:;;:::;;;;;;;;;;;;;:::::;^^;r;;;;;;;^^r>>^r^^=**r>r>r_                                        
                                    `,;>?||||\c/??|?>r^^r;^r^=?c\?>^^^;;^r>?^r;:~,,,~::::;;;;;:::::::"::~"~~~,"_~~:____"_:::::__:_::::;^;;;;;::_~~":;;;r;;^;;;;^r*||rr*?*=|rr|*;'                                        
                                     '^>*||||\i\?**??=^^^r^>??|\||>^*^;;^^;^;:__,,,,~:::::;;;;:::::::_"~,,,"_~~"~,,__::,,~~~~~"::::::;;^;::::::~,,,"::;;;;^^;;;^^^||>rr??|i||\|;`                                        
                                     ':^=?|?|\i\>?>=*>^r^=r^\|\\*?|r^;;;;;;;:_"_~,,,":::::;;;::;:::::::::::::;;;;;;;:::__:::::::::::::::::;;;::______::::;;^r^r^^>?>r^^**\/L/L|;`                                        
                                     `,r*?\||/\\||>*=r>rrr*>\|r?r?|>^;;;;;;::::::"~"__::::::::::::::;;;;;;;^;;^r>=r;;;^;:;;;;:::::::::::::;;;::::::::::::;;;r^>*>*=^^;^|\\\l/\r,                                         
                                     `,r*|\\\\/7l??\|?*r*>|/|?>**|L?>^r*r;;::::::::::::::::::::::::;r;^^;;r^>?|/||>r>;r>;rrr;;;::;;::::::::::::::::__:::;;;^^;^r>>^^^r?\Liv7*|;.                                         
                                     `';*||||\\LvL\i|>r**\L?|?|\>r>|>^^;;;:::::::::::;::::::::::::;;^^;;;??r|\|??\|\>r>\^>*?^;:::;:__:::::::::::::::::::;;r>^^^r**>r^*|\|cz|>?:-                                         
                                      `_r|\|\L\ivv1L|=*?/\=>\/|L|rr*|r^;^;;;:::::::::;;:::::::::::;::;::^r^>|L||*L\r=^||^>|?;::::""::::::::::::::::::::;;;^=>*>>*|*>^\\|?\\??:-                                          
                                       ,r\|||||\c]zLl//\>|\*L/v\i|>?=rrr^^;;;::::::::::::::_:::::~,,"::;;:;^|*=>\*;;^^?*^>r^~,~:~~":::::::::::::::::::;;;^^^?*|||?>?r\z||\\\;.                                           
                                       -;>|\/\\\c]Fc7i\||7|\LL/|c/?>rr^^^;;;;::::::::::::::::::_"~~,,~::"::;>^^^^;;:;;;r*r^;~,,,,,,_:::::::::::::;;:;;;^;r?>??|?|>*r>>\?ivL\;`                                           
                                       `,;?//|||lv]Fvci\|L\Lc|>|zL*r>r^^^;;;;;;;:::::::__::_::~,,,~~,,,_~::;;;:^^;;;:^:;r;^;_~~,~""""_::::::_:::;;;:;^^*r>|*\*>>=|\/|?|\7z\^.                                            
                                        -,r\|?|\//zFzv7v\/Lzi?>/\|*r>*>^^^^;^r^;;:::::_~_:_::",,~,_::::::^>r^;^||^;;;;;^^r;^;:::::::__:_::::::;;;;;;;^^r>*||?*r^?\lvL/\vv|:'`                                            
                                        `';||=|\Lczu}xFutvcJc|L/|>>>*?==*/\|\?^;;::;:::::::::::::::;;;^;:;|*r^|l|^;r;\|^>*^^^;;;;;;::::::_::::::;;;^=?>r?|\*?r^^=\Lvi7v7c;`                                              
                                        `:|fZ6Dg#Q#Roz]jy]x}77Jz\?|L?*>*\\||?r;^^^^^;;;:::::;;;;;;;;^^^*rr^?Lr^\\?\v|?rr*>>^r=;;;;^:::::::::::;;;;;>r>|>=*?/\rrr|Li]7v]|*'                                               
                                    ';\uhHWNNBQQQQQNFL7uyooj}}F]71cL>=?/i\ci\||??|rr^^;;:;;;:;;^r;;;^^;;^r;;>*;\v1x/|r\\|\*|\*;;^\>;;;;;;;^^;;^>>r>//*|**??|7|\ciFjSFl\^,                                                
                                '^{wKHRRWgN##BQQQQQNv|/z{ZSaeo2oojzvl7vvz]u}c\Lv/?>r??;;;^:;r^>^;;;;*?::;r^r|\\|>*?|>^||?;r>i>^*\?^^*=^;;;r??r>*\/>\l]vc\*\\z7{jyXehj|r-                                                 
                            ';io9OD8&WgNNN#BBQQQQQQgi??|iJxeeSZePSyeouj2j]xjvvuuvL|r?|r>\\?\|*?r^r;;>r;^^^^|/r\>;:;*?*r;;^\\?r*r^:;;??^;r|?^=\|\cJ7/zFuut/7zfow6Pq6Kqqm/;,`                                              
                        `'^xP9KOdDDgNNN###BBBQQBQQQD\**>>|\vFjooPP6keemaZooeSe2uv\|?/v\v/\?\|irr^>^^^;;^^^*?\|/^r;;||*;:;;i=*lL>;;;r|r;r|\=?Lt7iFuvvxJfeS]jow9KUZmOD&g88HO6u?:`                                          
                     ':r\uP99OHD&WgN#####BBQQQQQQQQ6\?>r^r^^r\z1oaZePhUqPPSeeemy]]}z7]Fi**/vv\=^>|;*?rrr>;?7\\i;;:;;;:;;;?c>??\;;|\\^;=|v]?|totz7oSuSeoeEm6K$2jvzoKNQB####NMd62;                                         
                   -;>=\2XkqqDMggNN#B#B##BQQQQQQQQQy\?>r^^;;;^=\z]FaXE6K$h6q$K9mhkwooeF7/JxvxL^*\\>>r>;^|?lv*|?:_:;;;r>Lz/L\*>|^>c/^*|z/i/*72kP{fmwow6m$OO9mz\\||xWQQQQBBBBNDqwSr                                        
                  'r?*iZk96$KDgNN##B##B#BQQQQQQQQQQz\?>r^;;;;;;;|\zuySZXE$OdHDDdRRROkXE22j}j27?/c{/v=*;;vv|*|/|;^::^^Llz\|L=>^>/7}|\L{*?vlvjm$memP9wkqOqhex|^*>=?vNQQQQQQBQ#DqXwS>                                       
                 `;|?LZqKOq9qKDN#####BBBQQQQQQQQQQQ7\?>^^^;;;;;;^?LzJFom9HHHD8R&###N$9kUqXwZuJ7i7z}v\\*^zzr=i?>?*;;;\{z*L7L|^^Lt21cjv]\/xuekK$U9k6qOdOKyzi>^^>r>*cRQQQQQQQQgRd6kwZ?                                      
                 :>||2qOdHKqqKdDNB###BBBQQQQQQQQQQN7/|>^^;;;;;;;;^*?\v]u2m$OHDgggNggN8ORdq$ef22]v]uv1l|LSv|iz7\v/^^?jjxi1zv\iz}jf/]FtaxuZ6KOdKHDO6RD9Zx|r^^^^^r=|/9QQQQQQQBg8Dqk6Xe|`                                    
                '>\|{9dHdDdqqqOOg#####BBQBQQBQQQQQdi\?>r^;;;;;;;;;;;r|/cvxuSw9OORNWNgN#ggNgDKq9euomjez|v{Fvz]2vzl|/]auxuZjf}e21jyZmakUEORRRDDMg8Kq$wfi?^^;^^^r>*|\wQQQQQQQ#M8HK99hXe\`                                   
               `r||76dHDRDDKKKKOHN####BBQQQQBBQQQQeL/|>r^^;;;;;;;;;;;r?\\/iv1FoXwHWMMgWNBBN##ggd9Ddq$jyeeXeoZooa2uumewPEmoojZmm6k6q9DgRNWRMRg&ROwSv||>^;;^^^^r>?|\oQQQQQQQNRDdKq9$kXZ=                                   
               ;?\iZODDDRRH6KKKdDW#BBBBBBBBQQBQQQNuL\|=r^^^;;;;;^^;;;^*?||||\lJuePqHdD&MNggNN#NNd8RDRK&&dd6DH$$EE69O9OK96k9PXKODRHDNg#NNN8HWqmjzi\>^^^;;;;^^^r=?\/y#QQQQQ#8DDHKKKK$hmZ:                                  
              ,>LiF9dD8RWMDq9KOOHdWBQBBQBQQBB##MHE1/||*r^^^^;;;;;;;;;;;^>r=?*|\Lcz}uZhdRW8#NgNMRD9DdDgNNMHDg&DgRHMNNRgDWWKRd&DgDgN##BNNRH9hZt7|?*>^^^^;;^^^^rr=|\ijNQQQQQg&DRDdDHOKUPw1`                                 
             -r\\LPHDR8MWWDdqqOKOd&BBBBBNgWNRqeakZz/|??>r^^^;;;;;;;;;;;;^^;^^^r>*?\i1joX$K&MggggRDddHDDgRHOdKDWMgg#gRNNN&D9NgWDNNNgWHPo]i1li|*r^^;;^;;;^^^^^r>?|/7yMQQQQBW&88DHHOOdKUPe?                                 
             ;||?oKd&M&&ggggDd99OH9jt7\|\{eXojSeP2z/|?*>r^^^;;;;;;;;;;;;;;;;;^;^>||\\/LcJ2o2eXUdHDDHDOdDHUKqqd8&RW8NgNgKKkDgMDO99ej{7/|**?*r^^^;^;;;;^^^^^^r>?|\LvjPkXN#gMM&&DDHOOdKK6Po'                                
            ~?/|vKD&gMWW&gNN&K99KO6rrcyeZSjF]uoemjJ/\|*=r^^^^;;;;;;;;;;;;;:;;;^^^rr^^^^^^rr*\7vvzFjuohPXUOKUq$KKdDKdRDO9kP6SvL*==^r>^^r>?>r^;;^r;;;;;^^^^^^>*?|\7zjoem8#ggggR8RDHdddO96w]'                               
           '|L/vXDR&gggNNNNNgdqOOHOhZSjf{xxt]ySZZu}L\|*>>rr^^;;;;;;;;;;;;;;;;;;^^^^^;;;;^rrrr^;;;;;^>^*/v7lcvzvfy2oZajzxtl|rr^^;;;;;^>>>r^^r^;^^^;;;^^^^^^>=?|\\v}jo2egNgg&MMMRDHHdHdKq6mi`                              
         `,\{ZEhdWgggNNNNNNNNRKHHDH$fxzvvvz{fjjoSFJi\|?*>rr^^;;;;;;;;;;:;;;;;;;;^;;^;;;;;;;;;;;;;;:;;^;;;;;;;;^>?>r=>*;;;^^^;;;;;;;^r^r*>>r^^^;;^^;;^^^^r>**?\\Lv{youZNgWWWgWM8DDDHDHdKq6mr                              
    '^|tZKHDM&OORRMNNNNN#NNN#g9OHDRO}7ciicvx]FuojF1i\\|?*rr^^^;;;;;;;;;;::;;;;;;;;;;r^;;;;;;;;;;;;;;;::::::::::;:;;:::::;;;;;;;;;^;^^rrr^^^;;^^^^^;;^rrr>=>?|\\cz]SjFENggggg&88HHDDDDDdOKho'                             
,^vmOD8gNNNN#gDRRDgNNNNNNNNN#gqdDDRHu///Li7zJ{u2j}ziL\||?>rr^^^;;;;;;;;;;:::;;;;;;;^^;;;;;;;;;;::::::::::::::::::::::::::;;;;;;;;^^^rrrr^^r^;;;;;^^^^^r>*??||\Ll1f2FtKgggNgggg8RDDRDD8DdOKkc,'--                         
qdD&NNN#####QgMg&W&NNNNNNN##BNKDDDRDm\\\\LcvvzFjjJvi//\|?>>rr^^;;;;;;;;;::;:;;;;;;;^^^^;;;;;;;;;::::::::::;;:::::::::;;;;;;;;;;;;^^>>r>>;;;^;;;;^^^^^r>=*?|\\/i7tFu{]DgNggMMMRD8RRRRRMW&HOK6EODH6wS{L^"`                 
D8g####BBB#BBNgNNNNNNNNN#N##QBDDDR8RKz||\\Li7z]uftvcL/|||?=rr^^^;;;;;::::::;;;;;;;;;;;;;;::;;;;;:::::::::::::::;:::::::::;;;;;;;^^^^>rr^^;;;;;;^^^^^^r???|\\L//cz{}zoWgNggWg&&&88&&&WgWWDDHK9ORggggW8DOPv_`              
MN###BBBB####NNNN####NN###N#BQN8MgWWRe\||\\Liv]u}JviL/\\|||*>^^^;;;;;;;:::::::;;;;;;;;;;;;;;;;:;;;::::::::;;:::::::::::;;;;;;;;^^^^r^^^;;;;;;;;;^^r^r>*?|\/\//icv11z9gRNgNNg&88DRWgggNggWM8RHOMggNNNNNggD9ai;,`          
N#BBBBBB###B######B#######NN#QQW8W8WWHu|??|/cvx{tzviL\\\\|??=r^^^;;;;;;;::::::::;;;;;;;;;:;::::::::::::::::::::::::::::::;;;;^;^^^^^^^;;;;;;;;;;;^rrr>??\L/\\\/L71zu8WNNNNNgMRDD8gNNNNNNNggg8dWNNNN###NNNWDKPmol^'       
N####BBBQQBBBBBBN#B#BB####N###Q#R&8&M8du\??\i7zz1v7iLL\\\|?|?>r^^;^;;::;:::::::::::;;;;;;::::::::::::::::::::::::::;:;:::;;;;;;^^^^^;;;;;;;;;;;;^^rr>*?|\//\\\\/lvFKRWNNNNNgggWRRgNNNNNN#NNNg8gNNNNN#####NgWD$h6Uku\^,`  
####BBBBBQQBBBBQQBB###B######NBQ#gWM88RDZ\|\iivvvci/\\\\|||?*rrr^;;^;;;::::::::::;;;:;;::::::::::::::::::::::::::::::::;;;;;;;^^^;;;;;;;;;;;;;;^^rr>>=?||\\\||\\i{K&MNNg8MgMWMg8gNNNNN####NggN#####N#BB####NN&dqKddHHOmv=
##BBBBBQQQQBBBBBBQ####QB######NQQB#gW8RRDXl\LLclcL\\\||||||?*>>r^^^^;;;;;:::::::;::;;:::;;::::::::_:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;^^^r>**??|||||||\F9DWNNNg&gg&8gg8N##N#N####NgNBBBBB###BBB###NNW&DdHHHDDDOK
####BQQQQQQQBBB#BBBB##B#########BQQ#NgggM&6v/Lcc/\\|||||???*>>>rr^^^^;;;;;;:::::::;;;::::::::::::__:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;^;;^^r>>>>*???|||||1ODMNNNNggWWWNNWNNNNNN#####NNBBBBBBB#B#BBBBB##NggDHDRDDHdO
###BQQQQQQQQQBBBBBBB#####BB######BQQBNNgNNgDX]l/\|||*>*?***>>>>rrrr^^;;;;;;:::::::::;;;:::::::::::_::"~"__""__:::::_:::::;;;;;;;;;;;;;;;;;;;^^^^^rrrrr>**==**|z9DgN##NNNgggNNgggNNNN#NN##NN#QBBBQB##BBBBBBB###NgRDDR8&RHd
###BQQQQQQQQQQQQQBBQQBBBB#BBBB#N###QQB#NNN##NWk}\?>>>rr>>>=>>r>>r^r^^r^;;;;;;:::::::;;;;;;;:::::::::_"_",~~"_"___::_::::;;;;;;;;;;;;;;;;;;;;^^^^^rrrrrrrrr>>?7hHWNN##NNNgWNNNgNNNNNNNgN#NNNBBBBBBBB#B#BBBBBBB##Ng&MgWggWD
####BQQQQQQQQQQQQQQQQQBB####BBB##BB#QQQNNN#NN##Wm|r^^^^^r>rrrrrr^rrr^^^^;;;;;;:;:::::;;;;;;::::::::::"_:"_~_____:_:::::;;;;;;;;;;;;;;;;;;;;;^^^^^^^rrr^r^r>>iPdRgNN##NNgRMgNNNNN#NNNgN##NN#QQQBBB#BBBBBBBBB#BB#NNgWgNNNNN
####QQQQQQQQQQQQQQBBBQQB##########BBBQQB##NgNN##NP|^;;;^^rr^^rrr^^rr^^^^;;;;;;;;;:::;;;:;;::::::::::::::______::::::::;;;;;;;;;;;;;;;;;;;;;;^^^^^^rrr^^^^^r?aODg######Ng8DgNNNNNNNNNgNN#NNBQQQBQBBBB#BBQBBBBB####NNgNNNNN
N##BBQQQQQQQQQBBQQQBBBQQB###Ng##BBBBBBQQ#N&MN###NN9>^;;;;;^^^^^^^^^^rrr^^;;;;;;;:::::::::;;:::::::::::::::::::::::::;;;;;;;;;;;;;;:;;;;;;;;;^^^^^^r^^;;;;;\SKDgN#N#####Ng88NNN#NNgNgggNNN#QQQBBBBB##BB###BB#BBBB##NNNNN##
####BQQQQQQQQQQBBBBBBBQQQQ##NN##BQBQQQQQQ&DggNNNNNg};;;;;;;;;;^^^^^^r^rr^^;;;;;;;;::;;;;;;;;:::;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;^^^^^^^^^;;;;;=j9RN####B#N##NNg&ggNNNNN#NgNNNg#BQQQBBBBB#B####BB##BBB##NNNNN##
####BQQQQQQQQQBBBBBBBBBQQQ###N##QBQQQBQQN&WggNN###NH/:::;;;;;;;;;^^^^rrrr^;;;;;;;;;;;;;;;;::::::::::::::::::::::::::;;;;;;;;;;;:;;;;;;;;^^^;;^^;;;;;;;;;*yqRgNNN#######Ngg&RNgNgNNNNN##NNB#BBBBBBBB###BBBBBB#BQBB##NNNNN#
####BQQQQQQQQQBBBBBBBBBBQQQQ#NgN#QQQ#BBgRgggNNggNNNgq>:::::;;:;;;;;;^rrrrr^^;;;;;;;:;;;;;;:;;;;:;::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;^;;;;;;;;;;;;leOMNN###B#####NNgggggNNggN##N###QBBBBBBB##BBBBBBBBBBBBQBBBB#NN###
#####BQQQQQQQQQBBBBBBBBBBQQQ#NgN#BB##Ng&ggNgNNNgNNN&Dmvi=;::::::;;;;^^^rrr^^^;;;;;;;:::::;;;;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;^^;;;;;;;;;;;;;cXdgN####N##N#NNNNNNg8gggNN#####BQQQBBBBBBBBBBBBBB#BBBBBQBBB#######
#####BQQQQQQQQQBBB########B#NgNNNN&&R&gMNNMNgggRRWg&HdH&He/:::::::;;;^^^rr^^^;;;;;;:::::::::::::;:;::::::::::::::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;*}h8NNNNN####NNN##NNNNM8M&gN###BBBQQQQBBBBB#BBBBB##BBBBBBBQBBBB##N###
##B###BQQQQQQQQQBBB###B#BBB#Ng&W8RRNNgN#NNNggRMNQQQQNNDDgR9};:::::::;;;^^^^^^;;;;;:::;;::::::;::::::::::::::;:;:::;;;;;;;;;;:;;;;;;;;;;;;;;:::::::;veK&NNNNNNNN###NNNNNNNNNNWgNNN#BBBQQQBQBQBBB#BB#B###BBBBBBBBBBBB###N##
##B####BQQQQQQQQQ###BBBBB#NNNWgN8gNNN##N#NN8RBQQQQQQQQNDWN8q{r:::::::;;;;^^^^;;;;;;:::::::::;;:::;::::::::::;:::;;;;;;;;;;::;;;;;;;;;;;;;::::::::^xeK&gN#####NN#NNNNNNNNNNNNNNgN##BBQQQQBBBQBQQBBBBBBB#BBBBQQQQQQ########
#B#BB##BQQQQQQQQQQB#BBBBQNN#NNNNN#NN#BBBB#NgQQQQQQQQQQQ#M##DUF^::::::::;;;;;;;;;;;::::::::::::::::::::;;;:;::;::;;:;;;;;::::::::;;;;;;;:::::_"":|2XHgNNNgNNNgNNN#NNNNNNNNNN#NN###BBBQQQQBQBBBBBB#BBBBBBBBBBQBQQQB########
##BBBB#BQQQQQQQQQQB##BBQQNN#N#NNBBBQBQQBNNMBQQQQQQQQQQQQ#N#RK9o;:::_::::;;;;;;;;;;::::::::::::::::::::::::::::::::::::::::::::::::::;;::::_~":;LedDgNNNN#QQB#gMgNNN#NNNNN#####BBBQQQQQQQBBBQQBBBBBBBBQBBBBBBQBQQBBB######
###BBB##BQQQQQQQBBBB#BBBQNN##BBQQQQQQQQQB##QQQQQQQQQQQQQQB#DODDz;:___::::;;;;;;;;;:::::::_:::::::::::::::::::::::::::::_____::::::::::::__"":?vw8WN##QQBQQQQQQQQNNgN###BQQBBBQQQBQQQQQBBQBQQBQQBBBBBBBBBBQBBBQQQBBB######
####BBB#BQQQQQQQQBB###BQQ##QQQQQQQQQQQQQQQQQQQQQQQQQQQQ&NNN&Kd8Kv^::_"__::::::;;::::__:""~""""_"_:::::::::::::::__~~"",,,,~_:::::::::__""~~:/jaD#N#BQQQQQQQQQQQQQQgNBQQQQQQQQQQQQQQQQQQQQBBBBQBBBBBBB#BBBQBBBBQQBBB######
B#BBBB##BBQQQQQQQQQBB#BQQQQQQQQQQQBQQQQBQBBBQQQQQQQQQQqc|e&gKKDdOx:""~~_::::::::::::"~~~~,,,,,,,,"_"~___:_::::__~~~,,~,,,,,"__::::__~,~~_":\XMOD#BBQQBQQQQQQQQQQQQBBBQQQQQQQQQQQQQQQQQQQQBBBQBBBBBBBB#B##QQBBQQQBB#######

Benjamin CHARLIER


I am assistant professor at the Université de Montpellier. Since 2013, I am a member of the Probability and Statitic team in the Institut Montpelliérain Alexander Grothendieck.

From 2016 to 2019 and thanks to the CNRS and INRIA, I was a member of the Brain and Spine Institute in the ARAMIS team.

In 2023, thanks to CNRS, I was an associate member of the Laboratoire Jacques-Louis Lions.

Contact


E-mail : benjamin ..DoT.. charlier ..AT.. umontpellier ..DoT.. fr
Office : 423 in building 9 (4 th floor)
Phone : +33 (0)4 67 14 35 78
Address : Université de Montpellier
Campus Triolet
IMAG (CC 051)
34095 Montpellier cedex 5 - France