From 62ecf53f30413213f74d8f714e26d0b979c4615f Mon Sep 17 00:00:00 2001 From: MichaelArbel Date: Tue, 27 Feb 2024 21:02:29 +0000 Subject: [PATCH] deploy: 55c17002bfa4189ad8c45e3b08f13855e5f07d76 --- master/.buildinfo | 4 + master/.doctrees/configuring_mlxp.doctree | Bin 0 -> 20928 bytes master/.doctrees/easy_launching.doctree | Bin 0 -> 50229 bytes master/.doctrees/easy_logging.doctree | Bin 0 -> 33765 bytes master/.doctrees/easy_reading.doctree | Bin 0 -> 36735 bytes master/.doctrees/easy_versioning.doctree | Bin 0 -> 20878 bytes master/.doctrees/environment.pickle | Bin 0 -> 4588743 bytes master/.doctrees/getting_started.doctree | Bin 0 -> 37280 bytes master/.doctrees/guide.doctree | Bin 0 -> 2789 bytes master/.doctrees/index.doctree | Bin 0 -> 32198 bytes master/.doctrees/installing.doctree | Bin 0 -> 10803 bytes master/.doctrees/mlxp.data_structures.doctree | Bin 0 -> 217826 bytes master/.doctrees/mlxp.doctree | Bin 0 -> 2877 bytes master/.doctrees/mlxp.launching.doctree | Bin 0 -> 58887 bytes master/.doctrees/mlxp.logging.doctree | Bin 0 -> 48384 bytes master/.doctrees/mlxp.reading.doctree | Bin 0 -> 40739 bytes master/.doctrees/mlxp.scheduling.doctree | Bin 0 -> 88288 bytes .../.doctrees/mlxp.version_managment.doctree | Bin 0 -> 30905 bytes master/.doctrees/tutorial.doctree | Bin 0 -> 3892 bytes master/.doctrees/tutorial_conclusion.doctree | Bin 0 -> 3012 bytes .../.doctrees/tutorial_introduction.doctree | Bin 0 -> 18664 bytes master/.nojekyll | 0 master/_images/Green-checkmark.png | Bin 0 -> 40057 bytes master/_images/red_checkmark.png | Bin 0 -> 49111 bytes master/_modules/index.html | 264 +++++ .../mlxp/data_structures/artifacts.html | 319 +++++ .../mlxp/data_structures/config_dict.html | 344 ++++++ .../mlxp/data_structures/data_dict.html | 800 +++++++++++++ .../mlxp/data_structures/schemas.html | 607 ++++++++++ master/_modules/mlxp/launcher.html | 718 +++++++++++ master/_modules/mlxp/logger.html | 572 +++++++++ master/_modules/mlxp/mlxpsub.html | 439 +++++++ master/_modules/mlxp/parser.html | 499 ++++++++ master/_modules/mlxp/reader.html | 515 ++++++++ master/_modules/mlxp/scheduler.html | 724 ++++++++++++ master/_modules/mlxp/version_manager.html | 684 +++++++++++ master/_sources/configuring_mlxp.rst.txt | 87 ++ master/_sources/easy_launching.rst.txt | 269 +++++ master/_sources/easy_logging.rst.txt | 239 ++++ master/_sources/easy_reading.rst.txt | 227 ++++ master/_sources/easy_versioning.rst.txt | 137 +++ master/_sources/getting_started.rst.txt | 220 ++++ master/_sources/guide.rst.txt | 16 + master/_sources/index.rst.txt | 114 ++ master/_sources/installing.rst.txt | 73 ++ master/_sources/mlxp.data_structures.rst.txt | 40 + master/_sources/mlxp.launching.rst.txt | 24 + master/_sources/mlxp.logging.rst.txt | 13 + master/_sources/mlxp.reading.rst.txt | 24 + master/_sources/mlxp.rst.txt | 14 + master/_sources/mlxp.scheduling.rst.txt | 14 + .../_sources/mlxp.version_managment.rst.txt | 12 + master/_sources/tutorial.rst.txt | 45 + master/_sources/tutorial_conclusion.rst.txt | 6 + master/_sources/tutorial_introduction.rst.txt | 152 +++ master/_static/basic.css | 925 +++++++++++++++ master/_static/debug.css | 69 ++ master/_static/doctools.js | 156 +++ master/_static/documentation_options.js | 13 + master/_static/file.png | Bin 0 -> 286 bytes master/_static/language_data.js | 199 ++++ master/_static/minus.png | Bin 0 -> 90 bytes master/_static/plus.png | Bin 0 -> 90 bytes master/_static/pygments.css | 258 ++++ master/_static/scripts/furo-extensions.js | 0 master/_static/scripts/furo.js | 3 + master/_static/scripts/furo.js.LICENSE.txt | 7 + master/_static/scripts/furo.js.map | 1 + master/_static/searchtools.js | 574 +++++++++ master/_static/skeleton.css | 296 +++++ master/_static/sphinx_highlight.js | 154 +++ master/_static/styles/furo-extensions.css | 2 + master/_static/styles/furo-extensions.css.map | 1 + master/_static/styles/furo.css | 2 + master/_static/styles/furo.css.map | 1 + master/configuring_mlxp.html | 376 ++++++ master/easy_launching.html | 531 +++++++++ master/easy_logging.html | 521 ++++++++ master/easy_reading.html | 482 ++++++++ master/easy_versioning.html | 403 +++++++ master/genindex.html | 840 +++++++++++++ master/getting_started.html | 487 ++++++++ master/guide.html | 310 +++++ master/index.html | 433 +++++++ master/installing.html | 366 ++++++ master/mlxp.data_structures.html | 1045 +++++++++++++++++ master/mlxp.html | 308 +++++ master/mlxp.launching.html | 510 ++++++++ master/mlxp.logging.html | 476 ++++++++ master/mlxp.reading.html | 441 +++++++ master/mlxp.scheduling.html | 586 +++++++++ master/mlxp.version_managment.html | 412 +++++++ master/objects.inv | Bin 0 -> 1737 bytes master/py-modindex.html | 337 ++++++ master/search.html | 264 +++++ master/searchindex.js | 1 + master/tutorial.html | 311 +++++ master/tutorial_conclusion.html | 277 +++++ master/tutorial_introduction.html | 434 +++++++ 99 files changed, 21027 insertions(+) create mode 100644 master/.buildinfo create mode 100644 master/.doctrees/configuring_mlxp.doctree create mode 100644 master/.doctrees/easy_launching.doctree create mode 100644 master/.doctrees/easy_logging.doctree create mode 100644 master/.doctrees/easy_reading.doctree create mode 100644 master/.doctrees/easy_versioning.doctree create mode 100644 master/.doctrees/environment.pickle create mode 100644 master/.doctrees/getting_started.doctree create mode 100644 master/.doctrees/guide.doctree create mode 100644 master/.doctrees/index.doctree create mode 100644 master/.doctrees/installing.doctree create mode 100644 master/.doctrees/mlxp.data_structures.doctree create mode 100644 master/.doctrees/mlxp.doctree create mode 100644 master/.doctrees/mlxp.launching.doctree create mode 100644 master/.doctrees/mlxp.logging.doctree create mode 100644 master/.doctrees/mlxp.reading.doctree create mode 100644 master/.doctrees/mlxp.scheduling.doctree create mode 100644 master/.doctrees/mlxp.version_managment.doctree create mode 100644 master/.doctrees/tutorial.doctree create mode 100644 master/.doctrees/tutorial_conclusion.doctree create mode 100644 master/.doctrees/tutorial_introduction.doctree create mode 100644 master/.nojekyll create mode 100644 master/_images/Green-checkmark.png create mode 100644 master/_images/red_checkmark.png create mode 100644 master/_modules/index.html create mode 100644 master/_modules/mlxp/data_structures/artifacts.html create mode 100644 master/_modules/mlxp/data_structures/config_dict.html create mode 100644 master/_modules/mlxp/data_structures/data_dict.html create mode 100644 master/_modules/mlxp/data_structures/schemas.html create mode 100644 master/_modules/mlxp/launcher.html create mode 100644 master/_modules/mlxp/logger.html create mode 100644 master/_modules/mlxp/mlxpsub.html create mode 100644 master/_modules/mlxp/parser.html create mode 100644 master/_modules/mlxp/reader.html create mode 100644 master/_modules/mlxp/scheduler.html create mode 100644 master/_modules/mlxp/version_manager.html create mode 100644 master/_sources/configuring_mlxp.rst.txt create mode 100644 master/_sources/easy_launching.rst.txt create mode 100644 master/_sources/easy_logging.rst.txt create mode 100644 master/_sources/easy_reading.rst.txt create mode 100644 master/_sources/easy_versioning.rst.txt create mode 100644 master/_sources/getting_started.rst.txt create mode 100644 master/_sources/guide.rst.txt create mode 100644 master/_sources/index.rst.txt create mode 100644 master/_sources/installing.rst.txt create mode 100644 master/_sources/mlxp.data_structures.rst.txt create mode 100644 master/_sources/mlxp.launching.rst.txt create mode 100644 master/_sources/mlxp.logging.rst.txt create mode 100644 master/_sources/mlxp.reading.rst.txt create mode 100644 master/_sources/mlxp.rst.txt create mode 100644 master/_sources/mlxp.scheduling.rst.txt create mode 100644 master/_sources/mlxp.version_managment.rst.txt create mode 100644 master/_sources/tutorial.rst.txt create mode 100644 master/_sources/tutorial_conclusion.rst.txt create mode 100644 master/_sources/tutorial_introduction.rst.txt create mode 100644 master/_static/basic.css create mode 100644 master/_static/debug.css create mode 100644 master/_static/doctools.js create mode 100644 master/_static/documentation_options.js create mode 100644 master/_static/file.png create mode 100644 master/_static/language_data.js create mode 100644 master/_static/minus.png create mode 100644 master/_static/plus.png create mode 100644 master/_static/pygments.css create mode 100644 master/_static/scripts/furo-extensions.js create mode 100644 master/_static/scripts/furo.js create mode 100644 master/_static/scripts/furo.js.LICENSE.txt create mode 100644 master/_static/scripts/furo.js.map create mode 100644 master/_static/searchtools.js create mode 100644 master/_static/skeleton.css create mode 100644 master/_static/sphinx_highlight.js create mode 100644 master/_static/styles/furo-extensions.css create mode 100644 master/_static/styles/furo-extensions.css.map create mode 100644 master/_static/styles/furo.css create mode 100644 master/_static/styles/furo.css.map create mode 100644 master/configuring_mlxp.html create mode 100644 master/easy_launching.html create mode 100644 master/easy_logging.html create mode 100644 master/easy_reading.html create mode 100644 master/easy_versioning.html create mode 100644 master/genindex.html create mode 100644 master/getting_started.html create mode 100644 master/guide.html create mode 100644 master/index.html create mode 100644 master/installing.html create mode 100644 master/mlxp.data_structures.html create mode 100644 master/mlxp.html create mode 100644 master/mlxp.launching.html create mode 100644 master/mlxp.logging.html create mode 100644 master/mlxp.reading.html create mode 100644 master/mlxp.scheduling.html create mode 100644 master/mlxp.version_managment.html create mode 100644 master/objects.inv create mode 100644 master/py-modindex.html create mode 100644 master/search.html create mode 100644 master/searchindex.js create mode 100644 master/tutorial.html create mode 100644 master/tutorial_conclusion.html create mode 100644 master/tutorial_introduction.html diff --git a/master/.buildinfo b/master/.buildinfo new file mode 100644 index 0000000..d8c10ac --- /dev/null +++ b/master/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 821cba1027435601d1a55d181c1ba901 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/configuring_mlxp.doctree b/master/.doctrees/configuring_mlxp.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2cae63dd1b743226ba4440013caa70676aa73ed4 GIT binary patch literal 20928 zcmeHPO^h7Jbtc9A;SRaWe@d3PR!f%1CB>PgL`Jq(q~afurc7#OM}$PhA!d7~d!~D~ zr+e5x%U#D(NjX8{4h$zwV#7d?obm$;$RXF{5F|!ozy}9N0wh2#IT%4M0dmRr z>ZiN9cV>1p9ECbW07u)^U9alZd-c6nuU^$V)4%=R7x(c0*rBNBxc+9%v@Acc>?mdX zt)Q87Z9h)GnV$V>`c}Hc=0fvc6eMBOPT3xO(R5tT3T;2VgO>~Ree8NsO%j-i&9H6f z)tzZ}qE<8NpAGz$+fG8)Z`ZrtW^W~RX78k|V#aakHj)^PQ)ByFD*|CQ+w{yRLLvU1 z_RX&NYrmEB@`r}mTo3J*_y&KtR>}@H^LDD#PMWaU*lbg+)Tyv3&-Lx}#uS_BncyK# zoqcSso-vK58O7_*EIUEhUJeuAx5MRoLAbt51jP?(M9W%RoTpkC#c9%T=GbgxH)A*O zvr%-Wof%?y2`{H(H}-7p6+5hrj`7OP+h5>=gHNY!*_$+$eZKg5%EjXt&NI#v&OYbK zRp;^5q+vRTF^YT;rr^V;a$DGG+%<|sOVJyscX!abf zQ@4A2_w1p*7;a>^er)@eZ5eT3G;G5(6zgWgvr!m$#yvN749jkri5DBK#OM5*o*TP% zWWxc|whVjIjpAD6Gbk5BaNbZItVunIxaP(q z{G3j*sLpJPWS*M3TC=Gzz-*GQNXf54$*(}MFR;_2sf5;ek)LY<0)b)2BoDgUC@v0Y zg&L_}m>eH(a;+RgL;v-iZx7c|t-pg8^ zfcS#*BnQGd1&kaJ=cN|c8-SE`O_y)~7C_Mp+HE^rsTc-Xl@;S9G2?IYVw4KYQpaa? zpwEg?TgIOeUbF%jQH#HDtresCEXwGsC_BXVrre~Xe($h+U9@#2U@TEJI4LgkJxoi4B zV~x?zx$*0-pc%;^nMB25jUK=)-Zq175B9ts+IJIxFF6yDVhLDZFO!$t(yN?ftq>zb zy)fc1u`6VVLKC)S!>)JXvWQ}-hW{^}52tj*%)|`)^=OEH!sa%+-bw@~0BF9y7s42a z8~AgYPn&d`?e|Q-oj@f4_GIu=w&1vJ$HTw44zH6uNWy<6=k&Zbr=M0xuH3M5s(^9V zLnxVoGrcH>l|LMeV!A<6e%ANJ=Nw+12CQ6GE#7_uAOdH@5c4iF61Y}j<}Zk@tO=*5 zXE)uJ+a$k>oEPpDh!2dQ(Sc{fjRMSr?ODp2rV`)C+_6P-U3siDjrsAGKwShGk! z&}Hf5c78#&F9@$Gg_se~8iBvm35@Hd{D6BY7sn8_){{Z39F(kZbx@2<@r6*X)Bi9z zHa>hPm7dCZqWGQ>&l-XMnH<9x1;e|| zM);iCe9Tp?z{+S|*=Zm+hf(g89cUz;XUBC9OD)YOQ;0st=IBiw3y`k%`u1L+tyGqx zXSTLNOFm!-R*mp?jC+74EM`%p7LBxY1yv9PvV+G8WO~1Oc;QH{834jWsDkC2reC zYjQ~~&`KE%^t>h%Br`#s$1x}(9+6|;$^N6HbZep5(OkzmPZ6l?%T3RGsGhPLa@SYp#l#6gDLT@>g^`|Skp{z*;;&jA)uo zQRQGKZrvq8@HlFYTgnwEvZNGwzEG^`^F}7qev#ABQ7Zx+j#{4>SK3;qh?uU;8r+P@ z=C73~7WI7$Ha|Y59*)N4Q~lMdAjHfqKUKok!dF^*-<|XrTpDM>XdN0N<_TGq_a@D9 zAFDEii;=C$-%Prn7r9k=pD2@?lQK`EnG@`*bOLa)%l^w~=7fDu&H=*GQfv?w1?GW5 zVYK!Y+XvAWwo|%rN-g-JFsK&&X@?;>nLu~L?sCbay^0tKK@6SdY1UN3K#%0XgH z?WN$;%q!liRRp+Z?j-weUh~7*W8UE<4NX;4yWbcq({ZfNOKlSW*MwB}r(AKcU2%0H z!qs|6lm}Roqq)SC4k)%Oxn5|r_CHjlHLe}WxSbI?r!_HpcS$wN-9?#3YjM)uJ=uRM zXib*8KN@tL19beyeL%(!klcWw}zXSfST3P1=SOrdC71GDz5}Ryt z|CpD`NE=GE-Q=fKfK?KuDCdwsYwZ?1+$_XzEWKnS$SZbiBiC=*hTIu2F4Uf@T{x@c z`+lqCSpLPKI#6=;X>Yu|qCc$f=-wm`%t>i&(K;1tvynj?K6}&u3A& zI?iw-2QL7*IQXqn7wyuN>HIR0F*0WN0KfKT&vTn@oW9Fn-!nrW ze^OPMZp1RBA)xyT^-BQVGWwTEeeYRq49XJ8aZn+jj&*9InCK~#NE&$^cAl^^o9b07 z1Gg#%x2goU>V@ia)e9QB)=*DJ#k``?7ZryhFag#O1m>F}3T5T?u9|gy-{n~P7c`^; zV|==_<^EUay{rbu(u+El-u@O$5t)PH7MKKt(hl*Et*{a=liCw2k==cBjPH!Eok!He zMW`6YfP`A2Vl+(JZv!^BUAb*Hc>kWyh7=fP^bB$M&Z9F&GFk0c7AEB4N(TQiBg(|YLpg= zZTeZv5D49!Q3iYD;j?K(O22kh5%%1q|AZkT<%1pBCvA7S!`f%7U%E;s55p>uXu zDwB-lshlFYHz%ySOgPE|5NaFEx9=HLgJ3ZaOow)ygxYRcN&kf?GPk}{rGYPnlof)N zd!@v9sPsaU<8u>|<1*-Q1p9fh8TNq;MQ-1zIo-aGChg}T?PqvLi$GoS2UOf^DQl$P zHVWI2y3j9!3<~jvV`E(-l2RxFCiXx|(iMBN*jF-WGnf=b&qL!;F4$%_RMxpx*%8c& zA4E5}X6XT{Q^R_p^zeAUq0*G`OWAa-2R}%pmmxWd;hBVaj4>Jyqn{x z;$VgEyaY?uxk?^IF^EFipJQE4fE|O1We&gcv-5xoy;k~X*lC;@2N1px06( z4N8s7bfoXgeCB_nG~7dnk4H&pxllkl#=6$?al-e9Sz%#h(catD4oVfYLs&Vd| z^u^>9q(tSFbLWJak%EOV%lXPzuISP>qje!|zLbNWI|$|Ba0<@9AgqT}Bx^bGDZgS&B;c9c>Uxv3iM}>EKT!%lBa}p=N3V37rOnAFcGV@-=Z_3jH?5`rEVVT5?9G^2k+XLURo1#y z9)Qv2>!&cPKjx!aWTPwqnTGSDT|OOXsi~bG?oyeI``^;wiohXN>1zPq)L~i5_8J}7 zfCa!FK!)%eHaEi*4T4+|-$#s}41ado3z>wDx#1%HC1^I2a0KN4=+rVpSo|RbIdQZH<}K8rXZ-!-$8_G#mU~eUzlGpuF}aqT40uN z+<@E^%G064CXl}k(@&|NNXDeYifV1KE7rd~0L(_TMHA_y2KZljklhiW-}z@i0<;_c^siun>yJUAGO6zo0XKKj{63PH5xah0JPjqmGJruZCS3tFd~yrq~c3j zHRBra76+zd6PW_%)o^eUa;>SkSt5mDjnQ;10tU&XnEHDkl{5<6eL-TEMgNt=Ivl!eQ;bMqvi2K>q)onnOoQykWemF_NcUoFfsfVnrc+dY;*27XkQs*_;fQrG|dAxId5#qS)^-oo<(|& z%-CBhT!X_&_e;I8_52pf<=ZEmT5k4d*+-CcgA_EJT@ic}ey2^!W?m=59c95K zHY1MorK`@_RW{eQas7{p8)Q;EShx@d699LRtg-{5K^#Z)*YQ}9k4fm^X+92`b-JL4 z-r`=RY4kAMO4-p?5X3%$k=n}}d)YkQ7vy7NZo={DrYKoJ$jikg4TvJr1qvYfm?*J5 zaiv0?!pC)WO%hs^739517>3a91tE@0+8Z{8?;%!kOfP$!W=C*m4Mr_C<0MiaO|xms zZX|6qw?Ii&&|jI)jgmQvW7@crJvkW{EtN z|oS2G12%YLxh1k#-GI_d{x{VC9W@9M2v{8IEVV8x=oE=4kmG68`={zUB3k#P{44MpaQU3`p)g*Vhl89irGl_oUH@&?QR3O z9mQMdf@9-ewrzHziLch{bf$4ZQV7X5pd9g&xoL0P?)fVFM550}TJIPl2!3phb$ zI8@O^;ws&%RTo(aTyc(|Q&6p#AKZhQ;bOM80C^1@~Q&V1eyi}NdJy)PO zr&{Hejuz;{3WPDu=@VsI@(qkHfUOxI2nr2gxbg}|@%a^RFmAJ-mF3?g&)~}#?;Crg zuctqU$%;G~OnV4Df_jREGn~_ladp^&ILD+)GkdJA&dURoB9RE$2+v=KKtob>L#D?( zsnWES=k=sW&5y;MA>56rN$(%d+mF%LVLl+a7%$+vACV3XySrvuTG_p9O5`q2y}Wwu xRWfzr=0rfRx_XepPJb`xu>;v)@OgCr2MoN#;tO25`LJS<0g_lv&RNo^{V(e&EB62Z literal 0 HcmV?d00001 diff --git a/master/.doctrees/easy_launching.doctree b/master/.doctrees/easy_launching.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cd0c6b35a3174c5710bd1dd893ffb36305976760 GIT binary patch literal 50229 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 F{~tA_PeuR$ literal 0 HcmV?d00001 diff --git a/master/.doctrees/easy_logging.doctree b/master/.doctrees/easy_logging.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6ca75037c9d90294778255bb109586f21d3b6b32 GIT binary patch literal 33765 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 GTKr!<|4Y*V literal 0 HcmV?d00001 diff --git a/master/.doctrees/easy_versioning.doctree b/master/.doctrees/easy_versioning.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ee2295d00b1b120c17c4255fad53d570ed0ccbf4 GIT binary patch literal 20878 zcmeHP-H#ksR*yf%cDKLtVY1jx$^_#vnXaB0Pn>A9LpCJqY;ZCg5@+MUhMwxK+f&t3 zUDc@%kDDb@V9Cm}Dj}rp-6bG_!~-i;r!RzjJQg zs#`TZ?U~te;w-W3c6ZhNI_IA6bMAd_>f2xc%?J2TdNLX~u7BIKY}*fP5slI#cF;-s z!jDJa8eRVV(YvGRv=&i?dTCHQW8J|o%jgAd!;Oq6Y4_bY7PevewtVNt#;S-TL);eFHDQ~^ z4F@gb;lS-!o;NfcYcLRgBwJ?#U|(oRGz&0z$4jDEgvL9GNQ7B`MOgki=t1xrv9Mdh z3kF0#Mh66C^xah_#;~`rY%dg+Jv2Iw<*y2R##nb_$A|!=F$iMxa4pYhC##X+`f(W8 zNk`Zh>TjY^kYF_IcsKEk42?$L@~u@t6U`U^3s5*#Xww?k{9xVa1|bjtoUJ=nwv=@% zGLi`BK%0RapHUZzDDmRRl*D)DGt_?qsLvQ1T-B6Zwd_1byz4v;hIKALC_I6G7xC{B z{#^z$I!`(c=e#omK02tF5&UFIndMB~{0TVdm6vb6N_#yBz~&&{$n6h2&;*!=i1}9F zf*KqV3D8fJphrfULxH*6 zI0%Pm{`wHC(zoJ_xjK&MtWjqo&cyEo{fs{)M>O#)4k2$qqFr!QWR4jk7z|6(cf+91 zR9v1MYx85vC7H@^CBs{708fDX0SOf2Qe<_-CBq9kSYrU$Vi9}b3rQ5ug1jWwp;eNg z$N(mJL2?H2&d6rRqkN1Uua?ia6k!*l%kKc|#O@MQoyB>gkd{TWZW16QyV?R66PeT^ zkXXj$4Exb%JAJpE{^-3wp}qd-y$_0=`n2tKAtRP{E+cB1j5w-fgfdJ{sR!xfa}DE- zh)9e?$EB#EZo*7Qq!&u;R2<=fEkh17D9h?%K^0kL;|F|zuD#TDp4WsJ0>77bUJ{lWxF8tm4$)-V() zPvS_Ha&2gJ5+!5-lqHR6ydYpQ*n~4k4wxY51a?MGsBr;#7Q0aXeKH2H*6inWwiYs! zOs!pu+AZC{N>(l#kdhEoGgwn;D2Q@07iqK(EDADkFl)A202i{I6bsMeRg?{eP#OdP z#13czT4!c2DWgbAHB10w2jbQUx*8s~mXJ&u)6SW630uSzv8zoQ6?F4eoo-+$9`;;9 zsHfS9>DdXJs)+TWF*~kJ)77UbYuxl8k<7@_HE((_3}C}&uSgHuAlk2jP|u|AeC%|j z!BIw+$a(sg?oMk8Q@^-1J!%tuZSN5FH=jBx--0~Fwk)*=m3RZSOpwCol+iyevw`y2cnE4rQ>%5BRS+w!te?I%nw)x;ELkW|TDUYGNnC&aXW3ItDtu3; zGp7(gPfQd)a^DqApB*oMxREy15A~^bE3v=F68ru8g5)&VwnAfLJcVsRmI|R4D+D>d zxi|SUHgw;bZaaVY%f?^`h3&)RaeWh}{*x?!$C%6PlGN+Q^W<>I2!!q%5FN{? zj{ziD?I`dNUTqDm*lEQ<(x6K9NFmP6nzIV!KTjY@GH}lJOi)2IAr_d{Zuh;#Xkbx-;>ZB8IuYK& z*D07Yc(joo@epxN5H6;ef8b+x@a=?y(6mS4>6R6)Qf2@qU~h&fPKFg9)5s_fE2e)3 zH=E+{c92jsjbnP6|H=G7k>;{D$#KPKK&cUOqhXX}^2GJKfjPAL-U{14#`H2m;b;Id zV&6V9VHOZNL%?kY;d1UxwvrLS*7PVkCSy9%s#61-O)prDnhVVp<1$kR**Y)o(c(2J z_k4v#HOof{{sKltrnUT$Hq!OVNV_y_dbA?8ZN9WuDAg9Z4R8z0=iug#w2@Z!8r=QZ z=t6W>7rH$?a7m+iq^7bcvIsS?se)#RM|3O>ENL&(vpJ~9U0JpjTg_sxIlFgea+?Bz zKbVN1itz8fN3A8}{wid~yG#VV2L4llfSZ4YABJg~b&i;kQ?s}OS>22ixJt-T)m2bX zMb8%N2K~{jfJLJ_JKuRmJY`vP)U) zV)KGp^iH*+>;vb#kd5Fu8;0$A-qO;ndBwb{9=+(sud-fSTDoG+nOEl23ukDDR-=Ph z`qC1foAc@ga&W5_xnWC7^X9yHMLi!N9B4(5cWIR7RKQ}u!|CDM5X*jgoOG^vp)8<^pEuU@EeZEb( zUjAe7(tDlcO0+>r9OCR^kt|Gqj39u_iE*YIxn?bWP8N4aVQ7R+ zv{!KGKPM;= z<<^pZ+@8cTW!U@3Tf3Cdu1ZM+{<#@nqSNb6!l@MHz=+FTRXK9{Y1``e=cyS(i#+DiUyuc1Cl#F!(l4$5|LpZT_nF%0)zuYxU{VFhvjwjg9ny1IIKBa%ZD>ix1|=D#Mj$u;C=WeNiLT5{Z7}nu{XIT|vlnM3~_`6S7nIPUTi*LM&n@D1D_Un~bZJ z6HB>8b-yg9!1os>(o@Ab&MW19qlE90cbtCn1}E~!^sOQ*vulbd=VDzs!_BA@x`Wt^ zocgPXOoCS<;UUZ=E7%CFuzMBir^!XO8j(OYgX%UevpjH+wfrKLicsrl%^lu++{bQmOt z=c3XHR440*K#hilAP-k;X5k#xVsIG7)N4l18q>q3f4M$fG~S|WO@Gl?4ou^XO_iM} z(IPjH>O@z4L|;&MJ^kylrcrW>3<|?sla7I^XhwFP7{<>86uu?oyC~hL6sd*)^K$*S zpR0iI_M(xoCVWP4830F#loPn9$z%W&zkP<^dxhUzczE|hc)U?!8BKWnHmeXm`@VE$~#h!u+F6PhJfJ;T9NchbtR~ko5Urm47q9xvW3}2X2vwik_-e$mK|ov zh+cWL!xf}c+zv{GxwsGh^%$;HHF+(BdhXV;q!qAbIll}17gE0p$o34uR*8g5Qa=rz=Mr?1k(roB4BtdDb}lnA+#eOYM$=EiK)ymJWpIXuem5@H6$NuK>fG$?)rAFPvmv7#-;aIXTuS`Ky^s>^ z5{fk`@uzvrh?ud;z={j$9UX>Bs9tN^Rk3W~A#n-M4klqHB*>s)YlhWtrn3FO*L`&M zy>t8feqLfh`ahh=iCfv^z0$rE?2>+t!WVaoU2r3oqE%mha^M0H0d1;t3DvweC~Vb; z8W{;Rvf^+pQbOhN+>{IV#+1iz3YKJt2r$@*hroXp zMA=2pV%Pq4N4rMBm4C^5Fj&6sx!!yMHtJh2ElG(&$F^|_(P$&Jke?$Wdy~%2L^vvk zVs1Jy#D~#bDksQt253%opmYq*^I+a8rc`Q=is^x*A^EtbagFQPT^ti6o0cbL)rm2r zcVCF_$)|1L(nAF-*a;Gg6Ku_=_KY9I=vE26FC zkF=5gt1{AVl{u}5mHD6Fqdi99*`Dlj!G~2O7UF4A1Zkl0BLJ?YM>#dvdM800jaHa& z^HK1nX@b0LA+v{zi$wiY3j|Zbc;Z46tlGqxD2IQ3`MKAOhKCl&mCwQd26s@BZRzUb z>@5CL4{j2}tApd+g|8iJ4^i*jmxo$uv`Up3vrpgsT@jjIxP(EBI zSQ%xv5}#JX62Df!SP0kZTDK=$-z{xIZ$G9`#Z)O=FibRFm}XFB)(6Fg>tjUB=}pZP zn#R1z3G@XlV$Z{`?*Y&+Fapcyuh{H5fl`;T1bX!)%B>;J(m^zQ#^4fa4*#uEiXjY= zRhbd&!n6z4$?l=Rt%|{=yX{`=^=|J4x-rI)Eazol1lytm-B8K*<*A3J9-`vo@a#*fe2zRDs>g2CY4*H` zM*5pFmPFPkS8}L8ER5RByUa^_d+!k9=mL^6>GwYo2((k$JAk6t`Dj-=e+N4sY=ijw zH2T?IFQ0_GA6(MV^YJ8?3+b2XtUuwKVu^4OWuzHlJVYNk08Lka(0i8B^i+lzy8P$F1iB1yI?MJQruA^h>iM;bDJ%Xwq zI%t6FoKENWGa>p$Rf9J6?kkpu%T98MogTuORTP_zmYtK!X>C>D9wQ62&LjLl1vmT~ zIt0F)9+eY98~AJZSG{f= z$`HN(1Xrae{D9+=sJ*0}J;_g)xM}-~ zM}tTtcF@9k9<(|oZqvm*ExjjGNhfaIa{0U!jfFz~h;Ft4AlWJpE7ky;9Rn~Cn1T5W z&5vizT5MC$)n8}m8z#vz2iO}L&Bm4=#l>g&Pmt(o;xAB+zY0S1T-=K@dgaum^u$06 zP^X#Qb3?!!qbGE~N{g5yebkBLLA2Ox;&Fs?W_0Gv48qkWDw?S!F90oDu%oa&2wdP8 zlNdBE&Mp9-C&F&0GCVyghW`~cJRP?nl3hb&!4+|r=YRlcI&t5_WVP68gNy9g8C^e; zo(E0#TRD5?0JP*us*UtiG{hxBw_Eu^DO~zMg|MUaSk%X{H5p`yfT)M~H^*GSS-4IJ zw-*s=&m%QMH-Lyx@*A+sC`4~05^yq$u8-q8;W9a}0qO}lbYi3s3=fj1fL%~&=k{@+ z3zJ!r8|l8cwGn8h--f{&#X~H?5hBJUk95##t%aMIT(5<49}=`!-<|Yyc2^yU)$2;J zwviqX{w=yUE;2KV0Jo*Ue2gL`Zw&IMej#S=Kkcy#AF5AA$Mj!R{OJTAL7y}v}vOrE4k zkLz^83qRg*L2U#%fRRr~9H@2@L;4fh4tN7y_1l4$lO8vHxbiS>T`P@PQ?qiX2TS8a zvWGFLl1HjzWpAKRA*?z9oD7o6IJb-FI_M8!Ky1YG+4FBo7e`?KoD0kDA9gvyasy}(c|GAs1v$=ffV$v>M$XCjxqFt&r+>LkF z^M&k*K+)S8d*9f2sxjm)OV7?WCf!7~oT*i8JDaaG+^wpOdM#f_re@Q%Tp>Tza95>H z*D4R=SL1E?aLH)HU7jl!?S{LuQZJQke7JnBTse<_iiL}_jof;7Ia;maeQJvOr~0*G zq2aDhs@|%NTH_UXU#(=QGyfw;uo7Aa66}(sX{N;jUA|(!W<8mlxh# zR+lf>l}bKqS1~nrMb)m=d2aT_nq8{q%cW}Lag5vp(ZyOaU9Xifn1;Ju!wrS`Qq8W& z?}oc2_+nc39W1?&x92kDEC3N~WF}wB)u(3DGZ>A#M)gyz7mE$sO%NPXwVX}RTRvT{ zlmT=utLDmcscN}i$=HQ_>3rjoJ1|=*J9Y-ExctFWXCH33o2ac!AziJeFdEDZuU7Ey zhC2WN&_q$PFFBqZLrKLh*y*a>$c?!x@nx=zbz1jeK9ft^1?#TLluZkgDbLPV@-sO! zWgXXlTSLe9TI2i1_gkUrTLJ(|6@ftc(hMWh^|@MYwmLC7O6#7Sokwq_WVtdky1y}* zJ39Gv<2&&`cek!psuySH`9127R%_|0f<20w$8^n`bWOak1C^7td?ueRCA0P@0ep6z zYTu=5*WIlO%BiAVoU$vaawSVxxoT=&Alh(m&^7X>&*)a&ip`cx_d zz)t52ShmL-?s{Goqi7u$Ie|*+FcDyAYPwu0rfUp|fhv}a7b0<5{<2;~I|0?|6)gI| zz4@6W7p>rFW0YrT`dpNt$&E}E${B2?#HoC>h5^!>y1Vj1x=_c^uyu38xe<36_IYFS zyBfLuxdXXZ;}3U}!WSTix2D%Ma+|2q!Q3JFV_$BJYv;z*AMOh5gYK_PNfS4?1<_5>s~jXs#VgZY9UQ znF0uADmHBp+9m+kWf@MQn66@L)2d^Ko>X{lAGD~A@ROO2e>I=Js^`kA}uCCXnM~;kC^E0ZOjrPS%p`NvgsA3>Y zkmTcy`BLPKyY$vuH6+(&?df#AP)k+H1zWGl&U7{l*pwL6&}Ie1AZOErFR50kLb05! zV~q&x-iys3A*u2d5tbA_s^tAwFO0rQF~?&cgwQGv*jhd9_V3IGa{oBTTE zS-}X6JL_w9aTaJ|SDANV8#B_o8+3VU3QPisJSpYt&fE5EYA#(VF&$92vZ-31on<8Q z-k>4g3flouMjq_3VzFETzS)E$x}yZ}BxTR$3*{NTQd|VI3>0lg7tIczSWSC;|wghrd#w%n%Yz zF5wa9CUXzT(03Qp7xP8D$9^cKY5SzW8x6rktx!#Y8RnZBWK@FS9jz^DOD2w+$v&=w{nc3nYA zP&x%X&ZVpQD(FQ41J9M^Glik+m|abQxidx0jpUx-MdxBI2;6t)Di#c{bC**&)5-+b z5b-1Tx!mXItId8{DzKsWovNR&VT+;{E?dL(l|TXB!-X;;J>^C&C&j{7(R(3Z1>0@t z>Wbfbdk2PAe+Qwz|<2E zFY~WM<#a(h%oyt8Z)l~O1q>MSk4cq|8 zb0uxQ*d~2JC`r|4v*1|Z<}7h>zanT>fvQt!5DTz3E|!nL*a7%*DP2I5gdO_z7H(4* z2Q6|w!*q;4m4VFK5K~FJAo|ATqI>w|DW0jj6w`|1Vk`E z^sJaJw|pQ)!~}&3iy*z!at`PmSs)tjOSLkX$(E8%H46p#LM2(UYon#v;;5>7=l)T< zdTzC@qTK%F<4Dhnl z-mD8r>s2-w#dB`(UioySmad?bq!M8zJ9Hf=QJ|^)3-OI=WYI{qBN#zcDe{7$Emv}?|bE4_u;!!r|vA|N%_~`tR<2C zB6iCRu`74gY!)&xN`PoI^$qe`6Mhz+a&zt~vNa{CnzoOGjTfifS61%0R(L3>ctY^92^?exd=K4!CK0%moIAN*@At+ zE~J!AfK^`hp5mDmu?NT1# z9G=L+?>EVNwnr$1jP}8*sdD)|3L#6tPE;sYD&@H<@SVR|qrPED%=tOm>s+qJ$1-Mc zxA98_ZF$L?TSHq79g8dmEj{#&M1~;lWzMHOEk!!I(SM@_u^@^>DzQBQ)D60Oz5?x+ z87Gfwz26dvwX_Ym{CdBUM| zO8UUb6_Jn9r3?fb;tbr}PQNGhCglOdUHZgL8po|x^+FkoZ?~7Srd!y~R96 zCM5h-2Fq1dwp6iE3bt@&Ed)9DdF*5pHhsP{T_&py83&ni`GbO@a==-)6ejT(K2)*^ z9<~(_aINyRsy?OIth;DJ7&hv6(S4@hG~d?VxP73wtF-w<;oLUe zL^MMcmhMm6AP2 zfWhnK^%5)?Lio4vJ2D-4A_z6jIu(tKn^qdSA)1KRbrH60SVU?yPxaoAN#(OCn7mkr zKzBeAuDh8eWe5Y!-fhgJL}Wg1&trpRMO_|%8XbFnOLwaEbc-e-XVn=3nR;1pj z6^I+!#1)!Odn>(aIq{q5ZChj5NHrmM)n_n=@_DF~dhhrz7|Y1Dqu&iV=?iI5^xEs? zda{tu2COzy>CAc9VXHYb$y2>aO#Lb1fc4UA!EH%z&!%egv)b;cYTlx1wl%#ysAe9gSKH;p!QJXo>IIGI~26SF3dvCDP@(p6V?iMwfBZ?A6vYix+3JIN#`*T3X(Fm z`meM01u}YxH^nZEfG~K~cKX#+ciP_KE*bNyt@o>m?&viT=;!G&`!lJlKs_uzr+8QHMErGCzrh@uJ@}H^Cbvsm7-^o^C|_vR)stx z`!SdE-Ur4gE&v#Ryq6pN9+Y0bnizWz(%>RN5oI>>7w zaMAwodsnKodch6?w%MyM)~Xj`DRftqU~age70}?jpoB--c`lh7Wy+8{k-JwIy zFb#3Z_{0Q$m}35-4Wk`X60e$ecLX#wu5hDn2W^SxF3^_ZQNAA#9yI8&vmhHj&td;5 zjf4mYeC2rMuJ%mQY8_(O?HBTPMRDKUeQJi+>uThouqzkfffM(TCWyJixg!dqL1!(@-#I1Y zdBUdQ&DDaR(oc2=KUN4%vh%bMUpPnys$e))@a49 zEbrxXnf-mTX5b*=$@K)AZC*tZTa=eT&)MBVP*H{(Qm9E(A??Rs0sWHp4xu|3;H+=7 z34RWj0Ju!e)^g7an!QYsX_<`{o_rpxRt%z_^M0@x8Op9;rN~qv8?mUr+o;998STm= ztW%h-wAEr1K9C!~m57e3^?iQm&1Ut;rT?xgQcHm@g*j=w8 zEj+P&;9(W|pd&nT+j2W{Pv)L_8jKo7d2+LvUfSGK?kY@MT%B)$^14Dy{qTg5nE)z3 z#KIXE6A%(HPyQhamf({0TvABGnF^YKDr==cf3d9wI9Ku@>(~;)u30jWhDnU%uQtj& z>l9Lu;xHI@J9n-60>YKj?DO;-(5fe|iS;s6e&wMxS0GQ@bvOH zHjn{^#(*Wj0#fV^)q#YOFQKR)wYKP%33=dt=FpM1x*M5Uf`1XBuy5%pfO2biYU~bo zzCtS2W)phy=3nW}#vmA_{EL3MnzWREjmo!heSc--)ff0xXioBK$ufMknwMD$K2LR5 zGuxMfuTsH!f8J8MjK16144(4->-5!Te(zz0y!m%}vr*m%dPw=d_~pjDzD(s}rvk<{ zoTb$B7XIE}GHK#EdUXT8iXe>C_%~{7tzI`N`wuGHq00hmDX*7Pqt|<{gZL{IzJ%}V zSar49wD2tXVAXkfodLAq&~iGf=r3A8XEpsrOXei#FIpjI4gEz6;;f|yt%S3V{-Pyt z*3(}Ec4q@U2*A!p`ilVSY@)vigwAIAi-6{Ap}z=R&Q^L5bewJUASgK7=`WhQvxEMk zX*xUULGy90$6ugDxqXDY8x?60jl7!7G)^vacZLgdh;RWrtr5Z65q_Chz9ziW0c2il z2%$T<+6$Z0#f*Z~*7c#bdxui2 zZm%LB+@;W_+;!}*gi5N2;&PHkVZ5fOEZ7u?X}}K*IA3pE64~X~S04E=-eC%&sTlmVr z?8oI7ZTu?(ds83dnzZ?^4E*r-e3E|=0k|^o@xov5FCqe027Z0ZXZROw|0@I2zyFu~ zi%7tgfe*gtv;2$50Ot48@{35pm4WKd%P%4aR|a19H~g#aB9e-%{P4}PaaK<9T~lN=)fo=}j!aAxr^{90k- zTUisKrR@b-fg~}Xof>5qJ8!C2_5dqYqp-_YNF3-b0e}hs>9n_P1{m|=A;_ZbM3d$B zY}b&B3xkzS?*T&eNnQsGkD& zNI``pk7zQ=ZNb zp=akO>G8w#pcy*v$79m@L3-Aw($3rP2SDyTgMZ;keY^bgPWk8i<)3%+KXvB^@UQdZ z^x%g7GyP>Y?EDCoQR62E)Xd%00C0MylAg_ZD8)!|b`~)`>=4dZEpj+PInP?PvNdH} zX-fl>PsfplY|Y_hB|>@lIFzMNKf&Qv1EI5Oxpd9Sq)Ys9)~S#YI7bVdoKF`E=PVAtlseQf-Xpk32QXP_ z8ix0oOhA1|?IkS?p=xv6Rqio^y-edIYZ}adc?94V=B@lRH8YP`_tId^N*8Fu&szw3 zs@9T;yHPG67`F5PlM3_1BA|Li_lO@V$&kdo21Uu+azoC~Vv*c;J(uARn@a$Ve+AvLOakh=_@1?xx5(di#iBu-aQ-v%}wx>9EDVahDUyG}2D9{o^j@GkmI!+D#v% zPIx!b{IF$sNH1;=)6DV40_eBUx{z}r$XgUpf>>&T1qL!AXN*o}N1yB;U>@b&vw)rS znK!&MelM9*>i+py%8W}?w{ea6AQS4Rnj}aZ8u%^?6s-5t}O~0$j@@a9#+7)~YX9sNYOpj)CP*TRo?()H zV77Qm(UNsOu>0CNSQkgo>M2nmU$}WSTYBZsI8X=(!BjM1;cT=GFEa({!K#kX6gnCv z#l|LhevO`+Yb2XocHYM2*IifbNH}y?Bm8$lj(+0|hYC-EM9!NE0Y5YDa+0AawSsrb z8wXFwO{G}jdUP751nXK*f*%FJ2(Yt&IQDfVVy!1=wBY+q z`F%uQz9rglfatvl1n!s3!JmBu)NA$WybDsiSI5S5S)vfukto z#l=`jDb&5m_o^F^GswJ5x)%^!41?(aYTv%(k#dv6loLCAI_=K_>6!H!7X8=A~6}f6#P67OFe8pU}!k^fZmkJ zN;rgO<`{X>!_$zA;JlBpQ|zci5k9oNIo!O)*xIn(oPde^@4vRl|AXjG^QG7Kd3jAh z(8yYeg%P;#ZVGpe8YcL+nc!EI%+CKuOy`Rr9RyclKq0a@ppKxSNv_%%=JZJ#!qzaG zf3|<~ogj&JfqT@Tym27v5#=2c%KIMPG%fHTPB(cMftjt3?~DT6*G=FkaNdmy0gdbI zt9+tt*iAr_?*f6#DnXkq+MaM9Fvv5xC9$4}oAto7CZ=X%v=&Ik0~`MZdzdLZu!Tvw z`ZPq*m4?)O_nA#6t%uM?We!Je0xg>iLYx7bnat}kHr=o>1YZ+(kKAJ5O#UqE-7&L3GQ z%9t~tCfg>^-GXcFiq@SiGPn*ea8q;vty|jJP$sVJ3T=`Y)VryFuspC3D$oTWdo33n z>L2Ku%LN^6!p`M_ll`0TewGV5B;|%c5C@wc2?TqEoBtD2*A{eWaRdVQ2NaDUaW3RB zflL4fPYwdI!--3}Iu93p5sFwA`WNJ_Ed7ZHF;dsktgFFlryTKQ74nRhXdx+IowN8m zzh5dx6X%F+lYD@xzUG!pcmyiMSl##eO*}V;u16kK@U-u-8PxSx;#1zzq>4$&YS(si z&7wOk0-WdxhM3c#_S=>RHv1@`vC9Ns!pA$ao69lXwAg{&2u?w$t&|O5j;EVx)8=VD zZM-qNc~AeQy}kMVHpdqSh8_{yTZPyb7>`>lb#I7mCj)j@ip8zrE*a6TwYQUK9CETN z-7##n3wPxvKuJe{{IFLcu*HZE<9Eunf_F`##c~e|jN(JZ$o18}M=yB>q}_8xTSNEQ za5usN2o{0VQ5oA(9&An-x^J(E&z*j3Fz^p|j`MNr??=)-8*SLvzE6$-JYkmgr>CP+ zWi=KCQ0UC1vPH?E$$%)~2FSY1EYX9T*gh52qX;ORcsWPG0XV51jz~i)Dmvn9xPGag%!RzlfHGi;p$p}rvj@#dq0#(T0*Li(fEPT@@aJh;-ji};=BwAR_zc?wpvjM}W z`#m@r3(lv~INUXO+82?MHJcs+Xm@THjuG6aL+qB&DAbBY=VV|7FIl(| z=xToO@V6@Xg#%gQ!(Uz{xojS!^fGqks$nn+m0HKaY$oB#3^y|O{)y<~w`QF?S}d`N z${W=5B}ont-9Y09V>)a>QM+NKG(XKsZ)+VG6JD`sjFmZyj=MP zV)j@Ua9gL)P4=gWWGlGPY<#YNko(sDQV$aj9U-R6WZ&|w`O;4|G*A=KM}ar z@idA+#st*F0V^z?EKvA4AR?H_XF-(S0X070gAD}GguJuvYt>FrP8b~ut^#I698_`Q zzJ*jrdm=lqMPCs6@qM3?O&2UpIdMZf+FSpSrt16zt#&J~rDhP}aeA$>-*Q9fwTVtY zb8XS-r_h~d5U-X9l|_N4!33$(Rw_%6knWHm-H-9~S}@i)`OuFg_|fQKefh9SEP;DL zVQaIa2|(FLayD!T5@SqG1aa4g@J~Xz5V?Vr--u_17lE?2>jMt#D1elfuV^_fnP}|~ zsP$t!8s(!l{#|jy(VvOpi)4M#(;en^`LpQicmiCDW$#9w`Y7X*jPC4Wt))3b>T;1c z%VF6pALhxmfLd=hODDVA`3=(Nf0K+2a#pvQ-B<1NFmnm_<8Hxr@ziInf`$#iR7vkB z%dfOxOE4*q?Q6+fiI)eC99euDm7yj#uVT>FwF9luWdTd;TXk1Q8}{ko$(LfPAztYo zJClPpDe4za{^ANu=$2(m^1~td3}>3=vmMaj!V~uchnQ*J(RN!b>_l5LfOJE2E?1)( zarocNTHzL=(4U}ZOCnr5P#`w zpdM->!mn&0wJ0tnKvW_*RuI~r9jzmcFr}i*N*;hfR6;B1J{)@K&i8+;VZwE>UqjOS zNafL3iO7?3X(qJ1J6eoRf2;x|njnC=C!gqiPsS0!*HCjDeS0>r`&J6dnLSg5Rw7M= z(A;!YbTub_eM`JH2QeEnh(#btL7+@1lC*#gX3ilFkUb(ocgmWc;WcdmmpHWW6{(kZ z+(cUvpc>$V9k;He%9Df#A+M2Y^Qz4I(I7KbczQ1#rw8|j)7sh$hZ#dghLum zX_7U)OeQ$Rlf%`V2&BfPVf9KUT>ITL{uchf$Y#w*oX0~e+$$FSZ0FlAju!hY`gZ~w zttpG93T;!B#bVK)jv2%vP@f=BZto6dO)44(%pTF6dxZ9Ukk_>ZY~oPEXVbslaT9H^ zX*IwPbliFjn^tXx*>o7B?p8AX1eoy%TUNr>AF35$+1&&Jl1-$2^UnQF=pi)zG!CfDf&dT-KluvAu*s?#@As!pR(o4ODF< zt$V=}`Q8*n&WQ2F* zj*dZ#^Bi63CNi~)d}$9N8Z7A0WYt%VPvSKBIqO2YP`AT&nlp<5ER!q^MiM z{`US&c0kizgJZ_cH7r*w(5(A15!Fl<3fi^7jE8XFd5a}?rND-pFCn?K#bh?=lagbS zx-Wr9bY$Nv0lEp2Yzmx2uZ{~))AI)XK>r(;O*wJK8MFCODphx4^XYMEO5>X=%C39>0#kP zS>JFwbE#S`Ano!Vl*A@`JJo!d!${=bpkyEj6`b68q&ngWb72uRP}d@X2Y$0a-39w8 zA+LppHRQaH0^O0idJJLV#yOcGBOx`9!^}}FR|eY6qNDW*n(v~}chhJUkRJ!!>k<8p zLmK`)R@v0le2Pv^BEz2Zi$pcvf+ni&j;0lnfCJTN22w3LKXXdvP;tpvxsK$S4IUD- zhf2DHo1*!0Do{uHfsz(aw5xqpUjEO0y;hlueUqTyiGR2yQpqWnOre zf?idwq{Mqw0a$4;bW!yN0Vi%O!v$p6e}F{2Ha&8r;qDH-2{qyT4KUDMFYQLZ-etZB zee7=Zt{w*v3K)IExtj)_bGIPeAD6`A9^Am?UX!_M9VQ7d^n(PFIBr`EnP7T4U4x6UazC8`H*>;lg(0Ed*=>}`x1_Lr02Y=;($_{ zXfvoQyK&JR+>4C|Hx4?7PT?7Dezb%q<+Os1s+IIkV z3>@W84$~(`=#$mB*K1@f~w$5H>1b0>Xz7k#=L z_ESpIh?}?hx;sFJhe@}i(LMFfOHm6K*?+v>2olEv;HE_ccmdoJfX7z=Y{Ic0Koi$q;^Y}!k4%IIcl8BJi7Ik2 zTATKM(1{zmcRh5Z4Q*KkH?E6HYFFDlWWp3>$t6|3M1%63Vc!A=s&sJRt?P zIF`qM!O=K}?uQ&$A?{(RXwg0T*qs(*_Q=7_nj|d+jkL2#CHsqDba-{A@|fbP9Bspn z<^yP=vs)kB73$i`CGK*+3XBkK@vhyT*en@7Oi!UK3LJ3G9h1 zQEx@~eCYNR}omjMh8^{M~`!>S0V@G`nS)@7P${#B8`3X2VBp$%{n?Zgb^1GFw2+$xq9D7{=um zqA0Qb4r-E)paM>^$xy8i?19SuMly6#E?7H<+bEE_gYV-WwvgjdV$%4MY%wSXzd0`V zvY*px6U4%79Vo8D$zyxMSdbMsEdg=3uG%;FlI@6ol7Bd`p~Clrc(HNnRPoJiK*-d) zbJ3OaP$FXb^NtKF=$h)^fYMIQ4rXIIXn}LxnEz-#+WdDDAxP}%n?vmg7W$@%Am*6x zSQB_ zPxlWf_p~5Tj5BSMD1!yXfh}x$h*QmjA^^wi%n+EEdn^~R!sJPy3GH)NJ}s&+RN;k* z!_6uf)BL^87p*-``=MyVjz9I)QO4wXVT^IHc4I& z50|>w38#O_Yc`Dxzbefm{q#~j>K55Vl17&MvYcXpCydl0mWz<~9-1{bLzyxY50bZz z4!I+5Wnq4pQssm1$+ay9RNDKnXKZV;nVGxv<56(6W^Zc(P%+ng831KA{FgBeF9KVm zd1$t_Uc*;b%p6xo6Yh>$f4P4kxGaQ;oUZ*wNn_i`LBB`TZH-VjlMVniT19XTMdGYK z@1uDVdkiKS97a1$x5ObSZKdqM@-R}>_ikuMJYL8}7J*#1eCRabtf%DSg);8_L=ZR~ z?@wEFH3|oW!#R$0>0Yus=~i9ohHoUz5gg^gl;nDtVl|@shR*r-X~22Twml*)M0{f9 zY)?!MYqQSI1h_`4Q=CE9odT3e782yTlQ-rr+)d50Rl99Ps~e&B26U&XL;jkrr8#99 zL#ruA6bUU41@XWHZR=~=#$!5K1j-wP?e%nVR#RN<87%l-tx&Q$1q*&xhV~==wnX9P z3zyAKIRBKU(V&C08a^W-(F}$Y7^>6tLd|nddg;*>qe1i(60m^`;F?s932VhaR7bqz za%pLBD-s6?-CC+g7T_MO*}&^*;;q=gM%|R2q)Dk(5fh+snK<|zQCNDC=OU1)H}dLB zT;O9K3!qhCWvyrHU`~>HZJX#X^up42#&ojCkhBbf-vrCL0Efu~JEQwQ)jyDg30xcs z^oYQ15CZoUqj-xIkJFyJAaL2h-Y4x91n#(2OPg!6%B4@Ko+qFZC!zYLYxOGPP08D1 zA^HYEqPcRlMxL@^%dTZwlchhTWp0No@z9!(B`P;j^rP1nbN-0eOvuuiMS-26e^Ga> z=uwZ5aibvPvplhDi;RC9Kt>f@iYq3-2PuiIw(JCN42SKTFa9RNg}??nW>(?q{FHc6`&a(lWw!r*J6tZ&-2RFv{?Moo4 zJB?EtS&Gc%dZ6$Z@)>)=8qCbr2aTg0e6nMouUT@i-r{#B;FUSQ8*}dZn8k9k^|d@> z;fnwUoWm$ghZhcbLWsMqfQ&_zbYX-OCymTi(zA$R#QS$59uDEL#_0)novNMU+Ko%f zXnKhjn_~}66lVlLL?1;Wki|5_yUsqj^t$Wr$92BQldG@mWsYTXD!T8trFnfCc^zn1 z=-4&HBIZlpUVBga? zkh8KphXk0qi3yd*40aMepUamX14tPdOYlM2nyHlQvpfUw{AFQEDe*-dY7V?JkY^n+ zbGn2#2*F0V3E4=jUt&LwF{+9+1i(*0F`mca(Hani27p~w-OIT%^qFNu zEWoxZ;fQ3j#<-vsa|j|t3nhOHTTUHGI}7>qbe`Ngmz&R4($;OcT5YyEF*?dWlbOuu z?dMWFYPIAv$Dmu4&I#x8K-mluv!@Fn>%9Ky3gRBi7^S3=K?ekDmS~2G6i%T-EHE&N zjj!Ca*CPl@4!OTqsAw|1|4y5uh5IuiV(8POg2pBlU%`cDpD?H>fTG@*;;;5u4=ZRrWnRCDgW zFi7YpPMvbK33;SapEjGLpu9SR7VDc4mYxj*!^x z>30fC{Q4Gx3RM_N&=eYb=~cWAM=Mh5Sseh62e#$Re~7{R}-d$$2Ou zmfd`jPKe7HE>iBGTXGYzF`uOUAloKM>&+GBWCDk!a4r6lJ_jU;78Jt<5%U7hup5e!FIc-|FAg4=<1uT|?;n zdHm$C$1Gq@`f~7bkKs-OyN7ME|MnQ%j9BHhnbJSu6f&W-Jo|Ja zrkh0&x@cBf=sLX!3)le+{{yLVf@Xw~juzjO(Uu|4PM{g*HU82|ticT$oj&u1cPNBH zkUyi8Ioc;WUy31TJ-T1uec-R=wP>-(&8;`yec+TCg)jAnqYyiy;pEU*`}cu677cry zv7xlR$G;BTcNnXi&Vtyp6x+`rba5M|M}$rdW1?fgMb7RVj;^(@wl_PwGw0I}6+s*z zh$;q^{EJL5St-T=QJm$$MP71X91-r;P(V+et-#GnN+r;<2yZDg^(wBiAiIYjRvfq( zDC8Pq2KTA zgqp>DsZ0NUN48Zc?(6IvQpPHyCZy3!F2Tp;kunU+DYnjg;Ga50N9keVd#GgJpU-CP z(kaT~n@FfCWZy|7?hKfDhQz$hN6C&2dO>o7dy$U}B%8v7h9J*PaHiIzGCl4cxt;R) zP9%^I*s?OyGuAQ77y7tRu?H!aA5xo-G)dqZzS<{+H(Pht^99b%&pC*PSpesp!^{)N z^#=T;xh1)Iu7&T-c@D7`_810~q%V^EbC^G%fj0ZEB++s-0er>HCcPNCy+&X1vQ{4Q z+viXrsYM!t4EPv0AQmXeCCStG-Gj&)JbQe`|2~DpZfKJ{hsOqaUf3iaZUuVvB^Pwe6G0R0O-T0`?GU+dYbl(w zstsDIR~DUyruQ7jHOI&}2mO=>MY0oL=1C!Y^n)VyCafoExjb+InV#B%cJk9!if5Ec zS;vl9ds3oVruI;#Z?%#`d$qK~?BIDq^gJPYo)FRQ2>$2otmY))c|z11LL?%Y2!5Y{ zoYZx!_)57Xp^a#9Lplq~?-VV5(2pkg83>vS4GlL%_)utgq~Bd>6(@kOhO9jTmOWA@ zBPL%4;15Wm)LpN3II4gILew_GPDH8EIrrm(8_2`oesIGMSUFkN=5ri)0VUx3SVq2ptE(Vn2j$N)|w-mNZiCBLp3ec>H~# zoR_F_>6ruSDaJsD0Hq^w4Ro3W_>$7G3Y`6xMy(7x0aXEK(>CGmre$K?`qo~qh>d)wf@=is z8XBT=Zw$XTyWAGjWedYaHRFhL2c_$)sJID_73L zbfOjcVe1sM#snKe!rO6(3ZV3o3}{$os6f>JV!BjM7jV0Vot4_{8D31KH{9>BaKWP4 zX_84K+E|Ew_&n6Ru#R;C^`J2PD(rx3C=46>E=-(A7(V37p4|w;CZ!4q!w~`OHE;)> z0cX;(jFw@-d*+-R!NVaq75aeFcYHEWT>z?*5<_JnJ{N9{tt{sx@X-_1So|T$2B~FL zCR6&B1TYFb<|F^4BbJfiDc~{_<7<)zh!!6ZAK7%?hBcnbs6mK#T72^^2w=I6d}TOI ziE3o!@kWVHC{WXuJUfB&eYISrJjVf}e8G?eg<^&X1?6dSuL0= zKT~pDcP5A?rd(8tVSnxPgB4=rqGbpf(YgRQ>1f53TZ7c`>_2<>P= zZ%l<_gYUm#a%6V+zWzb&>E{GpG{Mo)rq)Nwn8=$zUruFa)Bml1klqj?_~yVmnsaZo z+z<5+7T?E5GoF)Nt&3&plvw^n{}y1S@arxn+Z!DGLjOSUB7`uvA(R+Kgt%QAmeUt# zM0mP|5g~jaa%VDW;Syma9?6lsSVS0D9yZIWA6;S|ii{hM^IkgcxW#L2#A{8*>(O~g zxyr?DHaISUq2Q46LCTZK+2X4jC_A#DwfVG#xEg0B@-6tcMjH-T z@ZS=(;Jcr`2ghtNAMaKgF{7I&LF;l!U)2+JO_eWrqnuLjB=`2kM>SXljNfrm4d5K}Xy{B`z^lHK;oqlN)@~z_? zwJ|sdEEAbp-|KKZrlS_P(~TXR=A~7g8+Z>iUC=IovCx!pXZr~VvP3jR*De4NjDi)+ zX!k5Zv45Z#?Q}O9gfMQ`gjqx!vsBTj&0;41lki59G6JJRmUH(u+|)5&%OPKwIxCQf zi!$;OgHeXLOScQSvm0~eftiFbMik#`cfh094fdj^t=vBj`T_k!YFdZm(Q zQy+5=m7D;MU}O-Zi<797u2iSZNY_j!t$Sg1qfmQEjYe6~&?!uZU_H76Bdr_R2D27i zw@9#ttJpI&i={01vGqA9iU@>RY^a)^_sp1M_Q<$!EXBuAFosh}l&g+9ge6VVoHZLH z%}jjL#CF5osRoCDQ)9#Xl4E;4=d=Jub58ojp_d42I~Qhg8$wHC(xi995DVuOIJ_B% zBzC*ZUh=+}zFIJ=rh<-ZW-oCv7-n0UOK7s#>|sH@qs%3+?T>{8QWZDiXEk{@gmGj! z@$#1Z7wXvg0TR(!POo6ZI$wzz6dzCft#6jS(E*bE7N8PDGHov6ePxo;|JW(!ZIW=m|A5r_&Lnv@jH)geGPr{5NJd|Ik0E zZP1P*MXb$%bu@o{3f&;|CIr?7-^(8T|ky=DP(?Mi{%OlneHz>p}A^X!?CWG%$!C?Fx0{bFSiM@lRQ?^&h6ASZAHw8A{OD{Ju~vvzqHvj98aeYQ zi(OS_TC(nc__&oRz$7Bc=3r2udQkKwM>^Rc(iR|NRW(dFk9)N~Rm|5o9RPt%rAs$` zU@&n^sbuiTjG}x>gRnHrrl;~qyPtLHM3;mc)fxor^rz_%pMSYIZH_gC1d_{nS6KDbf71k{hUagJALYvuXxZ; z7g{aUE5#&(qL_tUzc`vLXE>uD9~emHYQ+Mwy$@T~xrgq0h5ubSjbn_(^h|QPLfPPl zt#fA{dd16MdBU%eo6U^O<VT=G^USw-+w#)i3P z#!i;(nri;RM*^e97^}%L^2--&9&;u;dg9=beTVm__Kl6^OIciFh=Hpt^@($*PT%W~ zYi@2XnV%}^xmHK*(kR^?4w6InD%FIp>^pzQ^` z*WiK3xpL?h-h-q-78 zq#k4$Aq>j}PVLFfZ7=7Tznty0+G@xmhu)gMAD z4lTqSMZVW7PCdwqkLnd~Q`>2K$;bUAZ?oyvYYt^Ay5>^YV$J8MI-pw6>*hzG{zS8J_|YXD znUeOLHjN@;f-p=9CXToBfnij7Z;!S>#HjSHXu|=c(oaW?N^bp>T^mHY-83vJuow+e zBnz&=gViN$lp*^N9XBJxngNWY^(ahD!N3z`*71TN6KdUbw9HK={N^zRX!ian@Z%bd z!&sJ|j6%<|9dx44t7U1nUw%gL)Lf_NvYh=O0-Vm!5x0B=HxmY~PtG9p6}KP5?4GIQ zafbzLK3-gq6eX)UzGV`tS+VGRH5tVG(AObku7J}B)}o5`EEVTdFci}D-lK>jO0c&G z2LPoxMhjV8?@mY@xfF91of6bRwm=N-lJI2M4}`^uK3pPukt~GzwQqwQrcA(dcA-H3 zQaF_gfzwe{6#Ya_vs#@^l-vM?$LV@%#vTHq3B1D@%0R%C^3PpJ7wRxn>QSnW6cm-; zN=4qm%SH`UGj%%D2_t2tfNLFr`w2f&uxDepFt&09$wsW(yfWWNetRT1>elv`)#RK1 zGX^^&o;V%U>Z63Y2aUN^L=KI)Fhqt@-{15G!vpgp->u-waEM z%fPHv;-#+gH522aGd?QXkBviqZVW8x-jFkF?Hl@{{Q_`wLN-3EN z5@gX%zN-*_*lSq|VzzKb=P6)tpRPd(9F751g2V+4=oa895?4tRPk z!}hL&5ABWUc*CCFPZCJKdDqb7O}EAHrieJ*T{P@HFCEpx|yaH81>FI`Nn`MHZiEwzsW8GWibcS(V`l&1=VRb+wr|-2jAYm z+4>%)Az?@zO;+EltthTJ*OgLgPW2tng{k^8g)=RDjw3jy$olb|!prxQ{hQN?o-j3Y zi8{gnosK8W5KUCr5PEHP_`muGKZAzHqD5!K`cL{drLd@INpDz9w2(lPGN98sD@`2;3w0B5#gdlNLwNWF1E-$kton3*2G^}4;2Rf}Gf2JK zI>|UEaPjh=Q%7Y4pHnz=r6}pxVeCx9Y{XZpBSbw9{hEhhXT;6p56#n1!@=;*U9=uS zgXFI)e4gxk?E6d&bUVKI==R5gZg-%k&TOWNi@b~SH~bKA)444=SbtYGyVI}|dsaZ@ z8D%7?ARY7woRe9cywevNYBPsqG2laZS!H3uH?TTU;#0OQk?o{}e1Cz=_Yp)o>m$-o zBxtS6^aGDa0ka^YvETslSM%a_oqk|{IAG3mvRGLOl2x11BqL71_xrOeJq?2) zU1R|pCx|S_GHsKjb%M(Ms+9breF?3SRJ-XmVy(XDDbkUBngg>(QOZX?Ugg?0WOV|m;a#xYq zSeu`o^V%I>(lh73x!-!w+Vt3vvpGt4QnHR+$4$OE|LgG zls+-S`ostjXN2{MFb{Ee2SxIz_7QtGQoN=_ia`5X(2hq)H9+KvRn76OtaSV^Qw!-o zEo&K=_6NPiG+*=iy=cR}jCJzkQO)P`L(m z->s)3zF_{Kobwd`i;^k|Qz2(nF`>L%;6m{6rocN!g@3>SHpc;Is)8!zeDjE-A_YOR zTzU*hUlb4=bkfpV9R{l|e)78Kh&f?}nx2u9(eJQ2IyUNAFDNww1;i13!y(xUSSL=C zMuyL6umVk-^H`ip>p0&xP@8tjPe$>?6FDPhZFo)L>M06%8e-DNHZ3+L4+0Bdk2ZiM%^O>XRXwupfLCYMP?s6(K zo1W<3M8lqlxLI~0dBy08e=g#c$KRavGlGgfQUe} za~4|+l$;^Rc@C!<3JCR2*K*b2M3r?*NMNu!l*(+bBici`De}|vp7odoG{o7@kfTi- zu6464*3!9$Wa12)HMAP5EEW856{GXjR}5F#5fd;O`to5wFeLFdn?-&TDmMqPZ97)2n7ZcWEA7IFLsZP?k@JIn28X8$WDZh&{)rUI8c!DPT z=rIqn)37LuP3#yo0z>eVp z5z$r4YzoaxaPp!K=6Du5U6A(>N2Tea)NKCS`ZwJNdbYvM zDRl&~g`R+Ud;j2etbOvuo5&?GFt^1~gdR!jpKDKmazFbJl6cDHC1h5^{ge4BWDzi5c5ADwp>j&LK2@+s zkcTaE9^4qVN4mQkLIoM%=3pyY;wiabrx#V`%b?Ixui`>n zRvK6i!+pEnra?K$VV$hD~Lsbw4*IU-Gu2jI^To+Yr&=zBde$u`&)f5%ujx8<%ud%(Jv8q=U8&`# z5jPfU!vFd>F}c|?(ngp=H2Wx|tF;vB)snO4eHiIEDw2b}=S?E?iY!`sRrI($MV{W^ z|J5hB?c2b;=NFl<`kQc(gGRRr?C-9PZp&-1xU_MHkwH_!gqJRAKkR$LySb>{v>&s3 z9$}zAxa_*?5ONpkcRRc0;p83>sbWN&-2PDBi4Sps%no+SH*tn{;f{xQIx?Q!-r4a$ zxV0Bc8X1;fJrH9ZtZt-E661UBVWIBvsi=`@IWoA_-rynwSvxl3AA85!n0`;Mj>rZ9 zm;KVtf-VuN!3lyJ(!_^2S@w|gyZHCybYzWDe?EzSCY`_F=coAjX?n5LxgE`& zT;Y6%eywo+l3#t6pMQntC1(Qfb8mG18b6%Bp~v6SlmroaAy9-pJfKhooF z`Y`AGAN)O;+d1j{6aE0ECsFK-(&L}$jq`ba{tG|9z|Vi>=NI|;C4PPxPXXXp`1ilj z@2}G14m5Ph`5OMjRR10SJh*YtIfTMV=K%F_kRJa*HNQ@eqx|MD6&|6-by(|@t8&j= zc9zhpFQvzEytw4tNw4ps$1)UNc3z4py&b^xA zXIG&1q_Yyw#~aQn{DaKt3HfKO{Ij0_8RF#bs6!dmftxrLfFE>HAYFGhsVXxhR%Pk& zk~Me?(PNO3uHQnBZ^J!N&gqQ`l9d}SRTU!=zismd;TaN>5()&8xN_Vh`5q^Qx? z(Bn_(=SS)BReF4x9=qv`!VUDegC4ihBTbJd=<)6JcmqB7bORq~*hXIV&Gh&XJw8Z} zN2vKTc+{OOfeBsa$z0}%T;@q!<_TQl!C&TqU*`@L#O1p43|8o=#*hG$sSE@2Ll~C;GfA*zVBSH0F)(d{C|J;CofP}l`pBKnKmi)6v{<%f|c`^RMo*1NmfS35kxfKuKI_>h41J$P+ zuV^?)6g>{0@5jG^a}M4Kh;V?nJ9JN-+#eJTs~sU$EsZqmHFj7{SbK8w*-CnkDHpoK zSNrTUZ+I7f_?b7nJCt|tO$3YH9e?47QI5#FLU`X%eiMfYw`Zh*MfF#munFp_xS%k zx7Xs=7Hcg&(D_;rh3j%HB-r0}_H{^+d{QMr&i5lc7a8VCFa`@*+T)3z{-x`C#6Mm` z>OH=xG(%@vf;!G$00y1uIKdDVCNH1p7>u0|7B@gxI>6Hqv__)PQU|}T3Zbub51}tE zDujN*fRODx1jL$j9%l4%Uco;+G7JcQ5g{AScY-xGV}nDHLqD8?6}A*aP|WxTAUjUM zs#?(D;(iL&CBiK>ZP(0?|9U^h=Z=l$%0+t=2dPVTWt4&yMrqOHK{=F1kuh|h!h~sX zNu<1NV1DgKa3{t`tW)x_VccKYjvIvmn&1| zQkbN2IEBo)j}&59}gK# z!FOB-M#Kk*a4Y~lk)u8^qJ%Ly51m8PE8c73m9xUqpmkgM66T8Op~$<;J3WOv9_bi#1{P`0 zF?yFaawAsD7(07#*|?3t--Yln8m-1$195S%02yNQuS>)6>x}>tNn5k|%z2cNC)Q{^ zolS+BmkptsP4l(n2uZ_5U|3hr${swG^$znSxW`C`obVa(KlA;`-)z|CQOOYHaUP`| zFDDU)A`WAnC^oqLyq1{gtO>j_J)uu@PD;8t4DlGc0~O&xeej!vM3?}j8HzgXNfaJ! z4x4T}I=<`E=CwkbA7NN7fdBi)chAUjgm>641a{ar7RmF_KD>e6NXyb{18r+MU#~63 z)^)UnJYbk>{+%&v-eP^a*+kzitH#6n9&-~t7Z{NV8yak@{ScvKItO_FkBs ze1A+Qi@X5gBN=h??a}^UC;R{Pj0P>H7bpK;b^kvW*bhFp?v2>sEogX${xYp$s~x(% z`G~y6crUD{E$WZgM3G;+wkYxeUL0X`Cwd}pnbV>6TWzZzq1k#tvtQ(yEC!k#_ZGDW z@?!{{+`GDNTq9Rh;L<7j3T1QP`U_e14WZZO0{%nH0=58lH$3BS1Ne9=;bVIOx;bWQ zWRa0>gCN~!dxdnJ>;>mHR$zX=iH9<6y`7Qx;K$|}+#Asv@K`;N&} z%^ee0(J+AAvI9V5>ta;MZn1gd7@}_wyD8dmVC}a=Z9->HBkb-Gy2yppd|Dsq)RdA2 z)`bg{|7_U8nWie)7Q_;Oe{nsqvIJ1FMm9Jgd&!6&Fs*VE$VuC1AhpCFa`tWX6sd(W zeOAgm4ws*%v1H2_NvTW+t&o`wBQ4;Pp6qiz1||*I{c4 z$kK`of(>XvqPtvQWc z=aBE}@{}y&a*IvUl-Be8%y8c{*cIijhHEm56fXHv!>ORLPA^YcZ_+I7Ve;=y@$EI+ zM5YODzonpX21kqA7-2cUWb@5}`U1BfMuuUsxF#I!Bj9NFQeGN4AEbDiq_`m?uqRkk ziZxC(L#&TY>nG@FkVW^Z=vv+-W#AWbxCs1VE?VTM1 zz69o0#JMB1gF{DS;H@M9X~Q_KUpYhEn5^t`loZTlt0pg__B>XJBgk~l7fIu$ks_Jd zxtG?*991%L8lxbizCR@bL8hFg)I1e1KLP=JH~6*?WPO4B6HM2nss+bK_hJ|q-6=i- z?pi2dSZWMo{;eG2#w8j1@d7oGHTHsLwsMGE%Uzx$O7YZPaf@tX=bK}8cS}A<+#Cqv zksa32nDVb0DwNgrE%YczrDtTP2as!Ds{Ba*Ah)+|irNE+v`=6DzJCyb7j|)(MGpYkK5Biv ze}G)2`Cu0lUhVNvlO!)0GaKEyvt#o@ulP~q_Lz>yte)U_i0dvHHz&Bae-kwB2T?cV zENG7V!*kqk&hhsC%@Ow?=IV>}{w$p7}eH?_vJ}x;9D3x5eObMD5wAn2R@T6P;G+aO(Wqs!xQ~bTnO0$&oYNA!0nBmdc#$d;2%pW^AXU`RdRFAK%RNUG2Rv=lpa1 zn{znlLfm}A1Y?0Vrkk%RpZRd-u*1Z~B}IEmAJ{ITO@IH#071 zw(9K(oln8cq;TAe1P#77>qN3Gbi~D4~Hbwm*6{2t=G<%hQ{&b-V)Ac2MCU~ z-~{c54eW*?Ut7Hul{x22k(&D|WA<{YY;xY!*SFT&twYL!&Pexax~|UUvGSNtMk_dtY#^L5U4K z+I0bq0g)8g6xodYM2g9&*Z9y-9q}#DqU`N@j(B8a){4J zb&S^L_&WkoSI1EL2dGtw#DpC3aZ_IaA#KJYZx z8#%6~!9l*I^QGuisX8tbpO-xxR;qp+O4XBl=$PN032R?+-~N5$2lpR7a^%3lL;J_~ z9X_;w*xF;ymNPke{Zt}Yb^OTDqeqU89XfjG$l-na#}5Z;j)iI-I&|RZ;lqcH95^&~ zc;A8XgMq5!p{n~29NB;9;P|2Ov4iOTK(Ok5v+CHw=)l;KBS-h|-+$QX|6r)*_&DnBJ2*a$K^!srKV(+jcjU-^^nGOf(EcO)_a7V& zg6eRn>cOM?#}8n%hY#;NI(G2jSYW6}LRI%4-hTwu4;~ml%Ag2TJ&J@UfzY9|&o7<{ zyRql^;ssT)E7*_St73GTw`Jlv-&}3bfG|NNRqQ}-%+)4!y_&iDM@Wsx<+E9cqrT*- z#3r_doFf-EpGija5%e^qxJV2HL$;y8)hO9@l zp>@WLjUDc;U@(}C|5!}piy-{bT(t1_9nXpNFgR!&sKc1vh7Q(Dba;7l(IMQryA2rX zofgn|H1F>$l}C}Pd8Y(|)nXC`Ht_?66vFmZ{TC1dE1bh-5x0+r_wyP7TkHCN5QBgb z?AEfp*OP8vbeJC_b`d57)r%TO@Zbh$K2ADtc4XZUVg|h%gm|R7zFbjT zfW?6BmsI!2GtH-sMv<(+ak9M5QCefyUv2DLU! zENn-9HKvP2*pW0Ny(0&$_R!j7lO4fCA16_$Xws;aQffB8@rKq0&qanu#FyOBRQ3IP zyobz*E~hecnlI|#G*=2KGRL!^sZvI%kPT@$m6=UX^lz#U_LRn&)9MIfYcxp)eKv7p z8A!I-@I(EB*V1Id97{)&?0mCl`#05Ff?T8(TkHZDoson2{sH0+4TuHu`z~Ol5r+7E zdxtFE+&?%aI}>HP0E>3xX)(wo7<6|INk?V}Kh!_KtOLATGKG@HUbD_jr9&M)LM_JlQF)8bShsOl}l$6nIaH>a4=z)vMC@oYLD+5-FIMgeBbzf zE~Jy7s4;eEV&B-r*#5ypre3MQP?4fI1#YoP2kM9*UF1dls!0vJp_{d-LLMU+OQ;KY z`PX6EW_&I-IwmQOj0(lIIyUI>haPiJG639$j*z`*HCJ#=Q32}?wfgm)Pcb(JaD=~8_*rD>UE*`*7CU()hq`80B?k&~-}Z{#*#sr1<6 zD8Tihg+fZ?nZUPFOoVg7V!An%uI3U*6HvuP<*8!2lveYVPVURsUiF|qY@hBVN0ame z#E=GzOuMj$rc}CI$_4<^C4d0kqS;cb7EZp~M95P9bOW`*gHW#^mDrS47nuoCB*92C zCV6{)sV1!F?otKG=%H&#MveX5jEwf`GPS7T8~Ku3UZw_Ri+q4Ap84r8e2T7|fZIta z)AfAwHtH?d3rLQl_Pu~FJc9u!YoB*=prerAM`LJs#0|L66FupeP8Pw;PICenIeSJ+ zM_}BJU`D_#NN@bqpNQ#2;~e~$)z{SfC6savnacQP668ZuxmQVia{n5OLM!^onp62XAWVD$I``Q7Xar8&n=qAd1m z@}cnsQtM;|05m*s&uSjQB={QX*8S<|B<#Zo8KM5DpWvxU55)d~8n`kaE!R0S8zp1o zocPGYKVTVd{}MG$pd}LZTx<+p$w7s8cfvAUZjUB$Lg)(Ty3Z^8Q~jI$mFEtXGmY2RcnN;3e@pOiuL*e@*8qrG)t>H_z^EF^+aHA110(0lmOtZJr`u4O3maT!^#p^W6K!`w@`gpPGr)dF4Bg#u1zEiwMn z^%CC}rj-{yWyPsaDaSvnHEJjsFQoxxCsp~h!J?66UqJz{ZY?14x(-wPB5EMt0vLWY^q+7|I}5_huyM=q@$QvM3^PaGRej>^yK;NApwF5Cw&l?)-s z5PnedE*+;3^NY2;BezeMOZG$po(T9Nre~~U7Ahs>V=e>}p?GO2mmgC5X6p60_}nk#;8KUc;eMsz7kBQq$8jNp3PpK_F7RHzBal-OKx0 zd59{LF)%6dATlX08U(HJ(kHnjdHTM4hU81I4_Kz)w5bm59rgyL<{0^>P&r2Zc+DmY z73qk2Cb;st`PdW~6$PxscMzEY4~G_Aj&kwOS)5s@4NdPkZ6vN%VKYw#fc%uT2e6_U zP)wApDU4{9bZN#O3e+2>ZoSZ(y$UhuJI3IYT_IFdf78L)A%Cv%^Px5v$XBoC0aOi{ zKJ~EGPulS0ARX)-B&QlcLPJaDYj*K!E2pq`LZI-JpZ4L{AUA{^>#cmCS0Dd}o*d+f zpy&1`qtXm8`0+3VmZ#(zPw{XBgvV^0Cey|sUyK0Z$$D>Vs5 ze4aj*{@`NLjc}?+s@NM^1IW}y-y5R{MFI>KVnO`Tm<|>}-KF_x zbr(ivWkKm|@wbv5$yJ=Dzh)fjRv z<4<=>GHIpEyU09qv-398pqkI%-^Uwq=;6GV8dH~=krRYGH2PArH{l(J7oPlhvr(}G z!j}IgZkBbv4o+T+@ExU**D)931+U_dAs9i$#mVVy`<=jd&9nQ&=P-6gEA66Vw1XjURkDa4nCt_FdmHLRai*{CgA8xK+qSRId} zC{qXV!(sZ7T4bP@8#@=Xu_Nl<^(_HvV(z90#LZ4;V>(>~YC?0=)Z{I6dnPpYwwE3; zsEfMz1{I52jUG|4ziF{O+jpyO@w|xsjxyK3X$@ndZ|)oeI(4`HolNw*W%0vAdRSB> z@;uPJNiC0&@oRH-oqZZ4#qYvcx+cZT+dOD(%s-4gWUD*si>lq&>P&tZvekwA9dd6G zNuKXZ=Wrw;_*x*B0~HPDMu5sT#d-7FAhW<)2BN66jIWObHte|LJ@F#RDkU^RDT(R?L(U7fL)ie3$I$!RMK_T{NJDO7e1z?cq%63Uuw#b)iXG%8 zv=)-G1H$lfJ;>jnA#FunZ;&($DTxl!9G3|rcV!jU)C|-(&S&}|p7N0MyZHCybYi>u5dm>zg9SZ$*(@k&%eU+k~4w#xi>n0jUUe6 z(Bp6E@ptt2d#~(&(_jBUkI&KLAL(&7eVB9p5B{Fa?VNP}34h@1SrWz0C_Vm}-Z-D< z=fCjt3;g_7etwakU*hMN@e}}lg@6AW{r)OF?m$DAoUh?eO!eRK&x0EWo&U?;m%zz& z6nE=BR>HD;3ST_S##-4sv!|}LWm}d{B(H@fY+>SPXLo0J=4p0jm_w@toR|b0E#E*6 z)`4&&;Ru9;B!na+{JtEVA%Ot-67Cx(CMFyK118+xzpA_6d-X2OxhomzXZOs$*V9K; zbyanBb=7t}9I=O}k8M=^lxqHrie3C>2R+>KgyQ#R0l5Ac~#SLVJx{itu(v80l zP;rpFkPlF?gI)|#aXJ5t3SNl3_TEW6)5avHW=`x`_6AJF{u-L7jzy@Kp~^*VWiE}4$^5>hNKuHP z&)fSkamgBME64_bD!RV`)W8yI5<){k2q|%C#N$Z;wdS&x0kslMbPiCT6@W_HcL87{ z_5qY2u)Fz>Hxjx?M&t)@$}05~6i z<|;U1okH@bBA%!qlc}kxQhExze|4-mowQV%DDAn7zMVJ)x!KDl+CIHdbL2aSZJ#B# z8Zl2nh1-I}(h3#2jocP!Jjpbp@^W7)xT7Z04vKxSfr#!c40>5toJdet-%v7W`aPVptVVu4@3Dd$6X_81GY*scv8(wk&nV@4V2uN zIv3!ib!lEPqA{kkdH{ zy(DFbK^hem4#K(LXR1k@i|l+(a2l0Ag-#Y&L-R=p2p6YSCv>Dff85dJ9OU|bO$@II zNCtE7Sk7P4@>9f1+1VRoI_rR(pt%`2aZV6Ra%>F&!dxl#VOT=qEcsS;_s+!w#f^Nb zrSs`EMTkN|!~w2N65@i0WnKSSh9hW&n(90i6Z&N1s0lSIXp!e$5p(&}CN-gtDFXEi zx;t5*c(OzH_tM$LBlE9$Wd1??XASuN9@KxERLF7(iYd3bZ7;Kb6tiiW*{`5`X^~Dv z5fJo~nKH;b4mz!zdPuFrck1EaksrPeXWe}4XfQxwp|C~n;Ui*1E2^Xr^{59rE1f9Q z&f=u;))75Poj<#~29Sp<79xZV9FwaEvw+}BB;;_VYK&ZxO$nOmHQy4XRLOjWR;QWlnv z;1;L2(6E#|`X@1rARrrC7YQq$1~rClVs#s$TG>U>?2L4TPsSpVOA8P;Sz477f+963 zf!BFn$&M~sJXkNsa*%^*h|WwHFn1}*Ij?nI$WD3}Z^kQVvCGjkG-XdtCB-P@j48_* zKbKwHym%81?4skQ>la>4?xHtG=tw^0;_%#xB}-_}Jji?Io3rI2?lNo3tY1!ew#7P} zq1qxjyWw0q->n{P?YgU4;YJ75o_xsPKJ9U|r17+C_D*I;J|>UXLSH0*4( z>1uB1ze702>AID3rFCg0Kq5KGq57R)Y`Jb6S76K57FeLST#ta}oD$z|8F5X-O|G-1i4rfWhqg&IDM))AHIJvqMJ@Uxw9QPRT;U*&-s+(>p{P)}cW=Fj zHmPRTKYgc7FFf4<^`2%!YpSd5pgiyFotj?AtC~JIMb$)ndr!~wHMAxI(D)`ERntVL z7Onc*S88#hBcKXBlFV|L+K1_G7HH2>0wP?)5a0#k}aDy8n9zOJwloD*|87z zz-!`GDA%rKfp+ZBhduF{mF`5r$4S*g%;glka_FQ3JOA`?m;gxmGm2TRfIrMBCd4KO ziw?$LCS8ttVhN+PCdV0`EC{&%4A&lLC;GSre@|wQn+?DE0pdCzLKA8%$ozn-)m}$? zJt7tP+8A$@4MLk3n2g!YpQfTG&Y|Hw))9C@s0_O>d?cX}>P)gUfurf!h-0BT!a?gj zhYHWlqfZ@6Wpf1BWYcIH8#uKo~iQEWp!9T%ojZ*!*cOjs8&+}%q=Jg;O&?^rz0Zs$Pb4fAU`{)Xt! z7_S^&FQK%?JeOU3Xz@UlSukNFPTk^w+9ng(?crLLzxCQh#_ubUN+|b{gptPXRT`aY z#;FUnO4W5FH|oY*0hexg>f*V3yhRRb_50D3%0p+(dYIQVwsR2O&h>3ZXR zGuW`l0q6iG>(gv&-@MDD2Qi>0*KtNndZLFlBj***#5H9p_QrLeU0= zjy{wc7H-*gTT#|+baQg+wq>2MZ!3$vGWfu5Tvhu>cQ5Z4J-k-d#jj8M+3d}$LVcsVQT%;A>aeJP#bDb~VT zdk;mZB0in?@HOmR=2#D1)d3NU_^8|RYap~8P_|d{(em0&y$)DPKS^>Hh%Ax@j?;Oi zF<;^qOaW=W%f&*T^H;FdRG-=lbF6Mf8Du^A41;D`Cq2=PN| zXsYHek6ABrvJ^ULGCO7NGk2>+eb?emcL$vXG_jr~z8Zp%u?l*5frL`DOWwrdL24y) zlNRRPtdV(k@#cJ<;j~_E+yV%Uozvmu67S@s#~faE@v_AOzzzcdSJd!r-IEC$Ie~_j zhkGyWaTu*650sDVE)YcdM3`r?iG{Fgie5sJ6V$0sU?mV#nmP5B}v98hv8Wy+wz@9^4{v|W>K zERyR!C6lJQY*L=2+%UTPVclk#y)MxNJ=aW^Y@Wu?5!XgM8>9HIuG3amU!Z0`9&uyO z=}Yzv_6=+s+_7`#(6;S^1ARNT5B2~w{B&Sjf8X|<{X2$s4(_6dbZw=-$;O8I`v!Im z4({k1+PRH;Kx2ZZ96p2ppF8|3R;2jD--9* z$Uotf!xF%8wef}eSKLK&j8O~GE=iZu+Z@FcOl(Vi?t#~(bfsESS5fszR45B^W4~J^ ziryi&cPdT@d73yu3Y>0B>3qf9d{(zv5oBaMV-8#N!N?tI1E+RrIJ3d|NqV|iq39&U zi23XWu}1(FG*_ZMpx*L1hc)CWqb5V)f%Nq?y^DKlBxI%F{78)83~cQhm&>1sX}$wn zI+~5y(rpY7O$#$OH+m((8JMfnsHcdRva_!(9vs$~Wg$n@6yo)glJj1rp33HzTpn#Q z=rH25I;3gmSG=5ZLlABK8r=Dd2VvZogpq3@n3_9NM z`!rt2Rj2b7UAFLx3NkL5LvrsGRU@aw-5nNJ6)1X|WFz9jGW-TA4ZA zsToKDyf20TBdOg?DC}PCQ^ZTzSt_Qp4p2MI%~1QMD8F+#!iK=noLTGG;sIf)&j1}a z+cqubhtyKOhfxuM<2d)6*I;3*CJqMS=K6_I$XY)S_-k50-nEX?E6SOMm<5nmVV4I2 z>)u`MbcuM>axM>03nCPovXF4hpREB>W6r^M5_#8Eu1?a82mZZt@}?RX-J0xjG)>>; zvG$JBb3$f5nz7x~`Yhy{eRYs99EY#~3p3|5;8KiIGdQ)KS*;(-4&D&cK?F&+az;n< zF>LF+Fp`s_YiRoBpwdIG5(4^uCK0mi=5H1c2)zxiC^_(k;A3|CdNoSetWr;9^B-P3 zxGck^9if`VO|?z@{MQsSeg)HL1o5|rpEojK`~52+CjJqH4y^PF5*xl)f?5;>ygGes z_V9U2k(8!vQ9e#`@WoAfwgip*4GwTg6r@T@nh`=nyVd+dgm z(j`FJc_#JJ7ktE{p z#w@4+J8zz!{WzwZ2)b^Csne_sQ$II^1X_SWGa_x{W~`5eiznoreNHG*9VYJvzI>WHYQT*oEn^;yZT$N zozKR982dT#i?Qnm?#?*X_}J4^t?6qsbd#k1Ycm`6OSb64y#K9$_8slTyn9vV)?mZ# z7HHo~F+sm9OGB330aF?*P$Z+&$%#3X(I-K84zU3_M|P0#qh%v_l;9&tN5Ak0Km6Ha z6%o_}adKys)Num4d1W6-CVlpmH-}PA0Bz3Ab~6l&H)Er=AGgmgko}TW6 zLongk33fL~Gu~La5}K|*JC~zr)I4Clo%0WfBHY8F0hgi?*gg-@X=J!C=j>!Bqr2HbfEZoM^0HvXSe2w`+`mctG3{#Ij|okL`!PWXk!LNj{^W!X ze#G8Lip#5zRO&kgor>^Zl72|z#j18`!gF&8o2r=a5spiZw$k;S0p(|L+#1}akJHLX zf#XS+arg|HG*rpWO#WMBG^vHHR@)oFsut4UXg*?*`}MyovB<;r=~8twq-RdIJWEIU z@(9I=mJtHm!-P(EE@p8iUOK8YFkQ{85`XBLEYhK!^ZkHNg-RXY(H{U(*20 zq-gxh7?~BYUKp2nFTBO-udVaEk{$hROh+A1xoBQSb zNy=I8WrMP-v#(fCyPub9VB6mSKNebZ+_Gwu*8KVif$Gr<;;jk(d2Z~f4&UE2q??HugiIW#ad zU_9=Jw)YSA_YVxv|2u}9r~Q3{gMHfv1_yWUbe!`ChqiCqHn@G;;Lwhp+nojmcJ%cP zZtvgK2cLcCVgJs)9lN&g+}^((zW3Wrt9@|!-!?R`YhXLN+@_!Q@7j*>Y}8Dufn*Di^y;41U`;Qi?)e81OU18yPGG4Vf|*d8?es#h%9%nnhv<*U9+6GY7}K4} zH{tcsNLshh$yYj;p4MkklVoCMKljl``25g}X!yO8BwQvJ0H! zBf{rw&H!djBitd`{glm(~gI=e$AEhm1Y5{s$aObRh1F*xYj$I?g|=-4^E?Ae$& z%`D`V9(_nh9m6xhb4Q?3IKa1mZobuZD%0n3zr4sWmjdV77=aVehg)|L-W$_h2ee|E zozaSC7mci1fOu=##Now*cCTS8di9@d-LwEBN6U2AoYc3v+|?+%nO;2j_+9+sDf?t`?KAgg$a`6dCVfr^fmYBw3sxK>rAXEoQ4JN=+>{Mp zW-8Tlxmqk1N(hr@Qak&h2gho7S(A53xu@&S{f7_0SqA5K$dzymt|(;-`4VB}(ao?` z2&16jdCt#FT4*@qSee2ML@_K$l$oIHm~NB@-{+nT6Xlx>VN(_4^|~MxIA?nivM!Fi z!UEyFT`g%zZy+!KuBdmJx^3N0DOj(t=3IiLMg4(v55WmgF}#&35xA_qWygl}aDu`>hJGN1al= z=zn^|>b&6yq9f7DIr#|$jGMSokmMtXkV!}PC*RPeY22p{-kX-ytY(bmxWXPVvHO~B zs$K6X$4wba$F}xbh7Rnd;}@9mGip=rWZ#ZV6#zICa5Y zDkQo`SX}i>-Mje>aW8SGL~I9hy*iG+XIcpTeXsfz%LQF4lMnTQ(9k z=Y~{~9e-}|u=CW&B`$~95Ny_a*Rur13R>f`>2ELI?86Q}o17{5USOvEeR8I&u3XRq z8}BMSKa?rU;Wae#_VA^P7Y`!9J%nTn5NM3b`xbSkh<2c7s&pMfb$KixY}_f;L(aD> z-jopTsu87N!LWSa;(=tf)^=K$YikDN!s5;SdZUInsm=*gOdK2Z+drFh>-<1{JC51` z=NyV7Od*=m)Kn=wrNZ`-QH|A6>_f(JhBl$~RL*r_D#A?XvAp^0Ywd4d0P-b`6GWpn zt$&UHq~E4BWNcb08}eR6@!)iLr1N`0HJvK*=|0E6n=BQkEp`hh0};jgLkyEDj8aJ= zGu)+1dVYF@ermyq4#rb!&#|e4l?k>zk^3sDsn@WQsaM@zcY&=v@*%sqZrKXcnX;X! z49j~o>KV%zwl5_fZpKiN z*ShseaK(kRZv9IHi~RfL@`~gWZos|5H0)c-fRuu_Luv|45*j3esN!U{G=Zzc$Fh6^ zMCSs;Lis+Gv9q|$z}SzpREC^V4j=dx+0L~sOZjbh9;lQ-s^bX@$41(~MPs1e6qh60 zjtL&9E;i_0XQ-V=8P`-mDT;5EFRNn>MbG+^?Hn)o_LPyX zv~P>)rUUjJnw7EdlLq^R2(D6pRIl5} zXsVVnsWj?JrZ0jHF$K~ngpJwdFHp%Q+!f+uX!fIoFcF69g77XSN&Qz0o&zh^I5~O7 zM8lPqptIy#+1)o|y6eEorP-O48)p4#b@l=yZ-jDxM4Qm?_a-o#P(F7vhv93=CEzar*(Y=v{+o4L|N~sMs z)0}Bd3(ieZZAgS)8H4b^>T0Kry(gyQ2;{YL0z&gN>&)-I6$gVh(dL&GZCX5vi0QS5 zHX9jmU6FnCvI@AV_=)yecTGZ%tCq@$K~Tt30B#C4&3?Kde|FNXu;Y=tZ;$ZH#j##0 zkK1b5>Gb7>s+9v$hx!o0`e5UP8Hc$r&!7JY7uJ5%)iyCFfizA))lR@5z_uoskOE$P zPEEgeSSz`3;p-L{(rSvgiV+1y&^4HV_F&${1QM|>3y2t(x$aw59cyHH)K-;2a^vZF z)x-zaELrlve7F5C_}sU|{xE-3bzqejL;Bet!J`rTqg?jTgMY(U9rpC&{FFQaN9<4V z_fK;9DK0Dq=~R`v;QL5s(}?{o ze98Qxoy23imx^!G8~brCzr*Esx%?iNPjLBtF8>#$0^kq$?;q0NKceCWG<3rLF}`A| zKf%YHXK%5$0 z0T=wr?+<*qfV(*d(IN@3GKaUr!RELQ5C>yTE;WlAI+d9;{D~kESQ9XHJ(GFWSDOdC8~$KHtVnRLDe`ro@xlad#c(9N3`|ZCLJ%S8AlHFsGqvwAJ(V2?AXXF3 zAYc&?AeQf&f~%~R<;jV;rclx>2tdr}W2^8(%(j7uwrQj%7 zfhL5$vUCd$)ep{M)gifoUZ>-k^!QO~mR#qm`SHTEUg~Ob_2L-}6yp^3fn!Z3Lz*ZQ zojmv4Js*wHB9@(#Vb$wS=Ska36VDg$lajTioSIB;fe9G-N9lYLHwMr*zEFb*?4E|h zxf-Q14RepmbrEsKa3N6ljz>-#4qQo-2Q1Si_Ls!6WzM0d>g5*PQHk(Dy#{y@vB9x4 zAVv|wDC;-@klCeg?LTq`-&yu0B`}8L`;iA*@3!fdraeoIZaDTdj z83u3JTyEWqV2CQTO+KyUIVafyvC=)2LcU9%8bR6{jSFY>q%V{>Pcjbu)#(?fi)1x{ zD4ltdat~Hk1<44L*3D@sN9>XT#s(D$KLWSGFPS-|5WF60&NQh#U}O5vZao(EIq=jw zLiKhZ!bnE9!t6)Ef_uPCMN^P8q%Bfw-)POysDFy-q64UPkOt=DPr)IYfg38*R>IvtRK$g-I#4A|iT@s?6i4Vsni9j% zY{sZ;KIev1ksW_FrsD`>LMx_3nkUGfjp@&2fwhn%DW~2L%r~E$oF(WliY9zHjBhO- z2Htkstw6!I;}GaKzBT0B=JM!sl<1O-90Xjy=(@yg-QT2&eW44s4PqX`k%G z+%>!L^l>;%;Cd0RG8x?)Bjrtq6NSSF2B^-{Mz-pZ9c1Y^f{MMgTRB20RC<+~e4S|+%*R_IK$>%N!QdYExyCRm|Dyoo+=i+dF%T?t-u8bK- z2Sgst+lagupAwWT!O;+265#|Lu?i%Hp6*)(;Xjgt+qHPOT4UC*98p8yx-cAEKA(yW zKETKhM-~qR1H>vC<5P0%4FPMT2A0d?B>k*)UdT?y7Y{&N3@<$i7nTEV2r4ENr&*lRF zy>(>4>9rcNk-a$UxL&HQO|y*%puD_s?A3Re?y9#JM*zil<)HS#E3M)z&LfbGfPzI} z%X|%s+mP)gZ|%FfEazH+)ZAzdE90(3t_oviq-w3Cj}%jt%#li=H%WRGsa4dxSEK5( z4pu0VA(?*ZDg&As&kS3A=m;LZxir}b*fou6u$dJ8x#DU#bfkW`HOsa0WSW>F9);1@ zfp%JV%!URE{J=qA^9ni=)xH2{;SZI<$|a=BA_&Rv=<*jZVUg`-qEN-{ejJIxobR#i z@XDg|Dru?VBLxb&?A&wFq9U80Ea*(9WbU`RM{uBqH44(=Ks;L09jb7esvZlmeMs}= zx^B2XHoPn4-}rqedvk@Ua_>;@sI}Elj8=(nYts}YtN!zt#U3yK8A<6*-;7bQpS8{l z*~vR&I_ZGsOLH=s@9hfcts_Xzs41|y$n}BEc_BOb$l`%*8OTovg}4c~Nm6c!Sj%(k z!d)7=?U%_nwTm4<;vhdo7tVTJiWGhfu{FiSzuq_!;-ukAF=RgzyIM{BtBP!WGVt)L zVdtQ$bX^?Yi}wD*4al$FN);!XIO*>)XBWmYufsZdl(=DQvTtB~XL?&I)t?#~-_buY zIJC2WsDIngU}~U`%k0BL(idf@* zhFM#lo#=PHGyfbsA{EL+YEQ{!aV($89T|i2aCH8JR*g;&S9!y76mp-zoCXet#%j_894~NqrrnAVhS%$m1a}N>Nkul- zImx6_#R^gxhD+vWq&7QtPjXd&>cq|+bivGZnBe;47(sE5r>nV27P>b(Vfp-sYEOIVqxByP zKb4M!!^a>tNHO(wFjv1_GBH&c!k2CV>~5EbxM_wLd;F7Ak76FcIGEYbKy9Z0q02SmL#TM zB0asXsmVqAP!NENbME=Fn1OUa*3i6-toc=(doDUE#d?Xuil4(Y$-iz>{7WvNkoEG= zty$cOXbM0~)C5?ldL^=>;yd|8%T?i8I#Uyr-A?-nOK$;()RhVGR2h^&+FKf@;5a51 zrhq>q0%<;LQ0*m$*ddX2YJPBQ_1Qh?816F0pWgC#DO;>0%bBhNIGw;Qt&Aix;}zws zPKbdcyg^foAmJtV#cJ4e5{GoIec&tehI<96YfY4 zVqJWo^XuYZ1UP-`;_x9@Nxe%$nKkKj&Isd><>9UmeZ1IpFQ;OfEmRR?=O~s0AkL1! zSORY1Oo(W@{=u36rG7V(-_zR-R`+agerp%P2|OFI&bso$)<_{~Ju7f?1XsT(2^`%+ znaab&i7R5=H>o=lYKfA8giR)D(`znYAzu@%QY3q4zKU;EeW8r?i;y8Dw{|^e4~)Tl zsYOo#$q6(+fL#Sk8xx0*bEc5Roe!SC@chF|mH@Q)=T#5SfV)%R_Oh;zFEHzRR>WHK zv#!VJK0un3SU&G02YGBtDSkkZ>=YYgHG$4w)7X80&J?YaeD2Nvq#`rgC!5B-=tP@C!7c}fnAuC$@GisLMs3!UZ_D@c$dCT3vqcN;H zU|U+N?JBcAhq0xzve9qEG}-~pp5|aQ`vGX36jommPkq=FvMUZCZBoRKM64&D?5Y*^ zvOFP9Zzzw>`?{=tt)Hom6EG$rthozb(UIN@~A!Di2hww@tuwhYvCAaOC<|bM2{QxU0`<$5mOH z`0>z+$qv@5z@RRv(mlfjS)>!?gtk2;^ewu8HIXhR@(q z)`1iqXy;>DXhdT;UUlxF(|&^PUY8NI0f)GBU?Ro{;Jr!Xpb)nmW%5Si+!fPF2NW)vlTo;Sw?h;I z*X*{?j9?0J$nbOCCatVRC2S;@0I>G27T#)yH-RZ2&M{f_6YR7xJWNZE{9B>nSyx=% z3qH|{tNa=M^R7L2TZtTMz}u-G+ZrrQ3Q4nj`*2?${-a-Tl?qG-unSGX6jbp%MD|ET zPbV)4YR%_6&1-i$`@D21nJevvQ*uv#k~VS^=xM;ZMulkyTk+rFR<6~-=19xTCG*wk zBh`GiQbvn?Jp+Ax^*8AdyiT0Wa6BnxlVi!O6h4p7 z1AMhc!7A7e=$PZR)J!(ks+2P?ijgw`YrzKJh$JPiCXE&Yl^xV#I*0&&E7$*NK1PtO zbs;8XM%bFF$t}_Fhfc+oys_i zPG7%jvJpXt?{0i)!~rGju<^waba?H#LU)1Vs0sc3THL+ygcYp4=}?GKR-OuDuQQPz zhy3-qJ~+pgygo+MVXK%s#61#66ErU&XdatMK1r=?7DP=bbmBBSa(ky7Nom&7m}dz29k~t zVCPVWQ?U2q(1FjaD6pZkccrJwIH!Uzy3Wj?MyloPR+V2fN!>yoaTv{>bta|H^{BGR z1VpERxNG3XHTFqx`)ht`dYKqD-#%T`feVWHMi2?kPPGZH8^&Pf6vceC^AyvFWVYW0 z{${_Miua%ZdwVZ^e;*3%el|>hvmd<_7=G36M2G<|sSJ1^9KZE0!S=>f0!m!MA;5r1 zj|^c-!z0=Y*h|Q5FU0|+yiLT!Y>qeb!G7fjU9C%Z3h5RY9R+?BuVZ@V@UPNe-CgC) zM~miLpJ$>)Hy7dRMUFI-*7+Tr*wvMphim z2i`cbQKM^r$@i6T!({wu!UF+vhoE~=eA9$-(DU{_Wfj0dDRDi;cgkSXuXY)TJOB@& zLj?*I4HiEQ(;tp`6Sz_XmS2U355@pTAKG)^cRCQ|c&eBh%i=Z|F5L9saw9wSsm%#1 zI@U14HxG}R!{6)7m+MCzrC1vZUb8rJP)gCsW+ANx`+_KSG#C4)E9DmDsgV$H2z2=> z@e})5)V_CDu*QH*j^o~#aYSfP-S%1NthSu8_taLSOaMRg>A0QSWw0D8W#l0GYc$6K znnxJ)d0yu=gs{P1PL>O0x zSlBM>dnY*Ag9M3AaIy!24cqR7yD&N5hNSjU9m^HLvT2J$+ah8^6nNC#XBxBJ>=B$o z+VBP@TcUd=Xig6}Xoab(qOhn`Vkx>Snh3OqHV{6p>}!l$*`nTYIV(H(&=QfMwiN^Xj*9IitP)goB{V{!rV0acAK!ogBf{R{$W z49YdviyD?+@4YB`(sD6>EoL!CABHu+Ex!}fK?g(z&But0^9{EU2yMswH8J?OrKS%|stwVS3BgFGc!tm=JlA<%$&M~vJeZyrwixB;8Ull(fHXi- z1B*9(|DGpqu5FT-7ew%RpTs;ogB>OEIKX9yeSNyRZuHO(uKkhV%)? ztz8r8NlP!>?(xd;VdW^a7m@&CXlvs75nTNkX745I=4`o$R9VEv>A(g?j7fMwA~6l; ziGX5H?#^!Gx)UXn;b4UPJeBUv=mYUPsQ1lVRkQmGQ%KV~1+xgr6qWHNn@1)TPw*J$ z;0KXM$Vf7*T^~2=pkV!*EjY;Y)*_3BtP*9#qWS2)*pZ3DJ5n|LqgUtwNi68&2ttaL zvg76M=Wpgpn}@RxV02wwxZ8b%192ZYV(s2-Z9ak+B-#9tBbzDMl>wU*%#TkS&mdwE z5#iOw?gX1?SsPoWT*2zl$8;>%fM)B{#|}S;b$ZBEd9Z$>lp4fB!sXFQ3U?J#mUS$J zNN?mztTiN1@F>TUho#3n;}x&hF4QJU9#2CaRp=OS=?Pjuix7C_`ODKq4>OfTD;|)33-upz981 zhcMOVX8CF*O@Q=Uzscc38k|-^z4(xF?fw|C6Rj#XAlK3{9dtldr1=)j$HFP0whD(DkP7qmKV$Ct z;Nqod$Sz?}NWROC9$pr=O35GzxQ3{@5svoR#xc^$w%0q+UvdTXqR3WZQj7y|n>I+- zL~M}!mo=_~;+62|AbM*sI&4{Va>C}WRB1NBmoy7wbZEjlMqt0AwlC&9qX(NI6`mni zK%hgYbF>XgSrj`|#i#a!0_WRb*!$=odk$>WRW4Fp0*5Znc5QSkGLO1qRc~N0fjzWa z!d}MG!)7BLT^K{?32fCk1rasPK9ppTE2oapw2Tr~wz~BWs0U7X2%laoV6%p^XNr!G zoA{OT)}-r+{7UIB8ska&_nyHjsGU~Ob~u$!hqr%5tJ}EGMjbD?yHDRu`!4s5edRXleEIVj~5-?h#Q*~wF5I_ZEW?nT5>Uu^cc z`L>CH_9+JX6B49j5z`A*7qr-QU4VbcP1t^i@>vfXP>gE9d6sVl*N!jNkPHEK2Z+@i zOA~j{P%@R38$0t2^+uBGO$$q|*L(QJ3Pf9$m`NCjb$2urqqgP(zaoa=pG*y}FU@gR@YZ&KK2&L{A=jjpzDW_2W98D00a`;l{P=MC6 z9fg%PfliQarMKyXIAnLj1G1vITBT;Cjw~H@RalM?g)?4rZ>N|llRBy|Y-nxO!-}<% z=s(UqKNKjEDVzvG+jRkI^M3m`V)|-?WSZV@(_}$EE$z2uUIG=#Sg%%h)BRd(sj)YA zcH6&C9ow(NQ#-KR)`Mcr>Tsv1vH_&~6?1ds>ZNGOCy@1yPNtaHWk+vs9OJF*=e?l3 zfUVtuRVT+6OZ|R8G^-YWVDW&^+aOPA0XkkiO!Fg2C6W8L&n+H&{0Gx<^x&80(%=>* zuxuZwb5;pxN?*jVTZzNU{M zD(A4ZWxQD3(naU#9LWQfa!3e;U>*`Co$t?c%8r8DSioUNqN zkyOj7CkR!i(h2md<$}^I{RV1ME)}0J@0(V6NhhpdX`492E*I#;S4F6zpjCWW zLk@-Jda&9P>w{x*b_hcboA+jdgTiG+9RA zE!RF1YqD!KPgyY_`2-*0?lItL*sDR%`C z>1xq_J>t?(z)_YZxr0!Nr^KHH7|pnUs(zaWL@<(k3;{+m-Sqg$!11{RdHRzxry!N=^3A;j6E< zoJbCEN+$rAWOm9&-UxN&l4!gf`8>^-QAixo1uW^o#GXlf=mtl6k35h|U$ekoGa#=H zJnA`a^GVLypPzPfF>Afsz8|5qyjQW#51ostuUPZO0OsVXc~j%7CQkeR1q@Nq+w0M= zkq_AgqZK(h8bg%E7C1o|2o*rFbS6Q4b^R17hxs=#!|Z_M_F~4r^NoX8oA{B==kmKu z9}&}wBQf{D?A1ZIxq5R*%$&pPpf-y&LvG9JR-8GiC&spCVgk3v3wd&=RLqP;Ik^Nt z@K{LMqhEX7Cn>ojc?FQ<2UE%vCdx*?C26HS1V($j4_$A8QLCHs2B?eKX33f>*4Lo{ za`L`jsmO@!PF&OFlhmbA+9}JVCS=nkPf$N|ToS+|U7rLWlRUik44e!-c!L7?`S0eF z(~{&6ml@1z)c8nGa)mDksoU91G_h=4&ir{^c}hGyqkY6KM^By9&3cV(*}G6A{nWvmz=NSZQDtuiv(^g&iy72$Fo^o81ilIS8J{)JJ{1W_S&_+S2BN= z!)a)~=BUV(x(-n*4=U${?Bt%so3mdbjGJ$p6hcjkpJuTX!MEC@5H>R4y8KAAE*sce z`xL6$L#!z{O4=-xw^DVyQZ1!P-@GM-MTa%(d9M#F$!uGKUg!-c0u65%E~wMR;ZZD@ z6rG2-TBXqWR3(STMm;xo{Hn|)aRZb@y9wOZGg5aZl7?T{I1R@k*;QX2K*MHZxvOc| z$-z>ak=jZP=k>J>m24%KM$+_2*t`*WbN=P?-mQ3-iwg;@H3mnr!-r!!Y+?z#oSI{& zeJ^wZ`bq3G+rg~g-1xLwVbY)r3BVp1?kQ zhtP+A16y9OU=EIA;-&Pvky6YfvzpyEDw2wMudJRXl8SmKYtW6$u=h^X6$)uU*B_iH zEv9YF+oQThlG?mNS1dRUYQ$<44(&PVQbBclOi3sYSc*~ z2oDp^1Om_CJVH1jvor-1rC+;A3vlW0eG49E}*t$W_{A+@2+cFJ_0fIbF+cF5F@yx0&1A!WRoM*EO1;uMP@-xNJ%M> zC9i9y0YSg}8()2Ks=mt!?+7;R;e@{&!UpvdH^_Q*~Knn=cxS#q<@yEkp6u^hE=jERfggMS}rX zm8tWhL5Vt!xM-jU#o}$7d(of)>SzF?exrgp>G4vQT&2;s2wv1UI$IHbUN~J6OZ|dL z#1VL#gxm`iFO^&)M9BTNU&zTchkeO@gj6?)3K5$O;na6;@30_5rxM?%>L9(s^7lY_ z3n?srH3GqYefVd0Oe!tb<0j=@Sr+cAA^oJK98)|-TkQ>?>T+B=TstdR`9cL=T-kDk zy&h(ri)SXNlyKBaTC5v~zU#4!6M`5HIf+ddE3<5>qdRr%zKbvmkS&zamvbT;|KMY( zTouj?2<%UaI(uN?l{aRdV<6BDzw5o=kWA{&Vt7YDGjD}S{dG)75i+M0CPnkY%4cT& z)JSx<4Hk-2dhUt9KXPhu@Wau4gj-;GT{ zU>X~pNYM#n?D3D1>^)8`SfrFmD0Uq2_sq#mQ~w?=xh-KGJwN-j` zTnI_|(s&6sk4AqisBJ@UhpbrZgAIH3Zodui_@#E$NkPHd_m&BDVI9*~N%?$W0m%gb z!x`l{^E;$AC+9?#n=E2IdVCOZj)3;e&e%=S$FgG9lP7{lfzbC0G!B85OM}pJwu2Gk zGIWa;bCC5)#RMdt8lu`w*{#-IimOR9Ye=+|Eh5mo*9|GUnwWC3y;F9r2-gG~_E6%h zgOqsqbvX1oL{`u&5-GtaAzdV%4{}pV9p+jdr+Fg1D1RcS?iLCVjLaz|YX;ew2q4Du zbXG?d=DbWs{X>*rovCDWYtp(yXOh*eQUVros#R(ot9gh?inhn0_rX>T?u0~BG#>7d zGCfngFzS?4!tyLaDI6yS(YzK(EX%O-B9w!^`lgeT8$&Q%L7@8z@E9}A=^A=$#)noL zXSHgYo#f+x6Bq&^z(_}>I1Q=%QHI>@vlFG1+Eq^!@>?n@e`YE_%fTaZg+fs|96LkC z_@Drzgr+>6MYIQeouON9$}}AaxB8sA5Ju@!4az91MSVz~M6iHXG-jF=mI8CZKRvx@vIX=sbJ+0g#Y4;kO|CbPdOKE};MZ}>z^{Te zd1~=mC88t)2a)=MFxEa5ll}aP%X`PN`QEV<D}9h`}**oQ>6m-1I|AQj#%+LgozmOpDPG`O|5C(sLx6)X-C2h`=0(JLgAz*(9=Lj zb=S&-OLCR+ZrtPV8R+YCf8wwTpIb)l?P6Ldos_B|req#@C)Ch%{FP5O8D}ocVot{i zDDqb{c^ph&Ax&Sur@E~$myTfnaT;J)WG>xiV0rl!^CF2>l`cnX0nmns<~duX(TQ-a zUTY3%Yp2?|K)O~6l~fLD2?VzZ*QB(0t-(Oep%qD2C7mqA&bf(_MhoA);Bzl)oZZJE zBFv}kk0SV7{Z~={!PS0-6zsv^pfnZ>KnoN_(hHR~tCy`&_>|fRCTJB4h#Wwv0PqSN zQ|Hx#7O8grTBl=mO)G))f1kA*Ki1N;frs6Pj` z#@$Q(`_p@3hUsZb?DT@pM(Raxh@sg&BUET_DJ=vp@YuEm?`ax5@8n1<%LMbGnOi&KK&X(y>J2lVm9gO2~g zMjUL~q^`bIvGLzya*Uw!IMLwV;C)RHZm!89coHRefIKwV=H8lUm_~wO+H&Z`nh?`}bIK!VR z&hSL%IYT1@uInn7W@;zfBpm)X*i1P9Rk>QEd~w(zcup}~+U<-XowKSdNjllE-QYlRL;`S#enqqY{nW;?YkoXD5=%ci2aI!)bQl(^eIyIG? zEKy>p9&7Z_U3Wk8S+}?~GR5)4O!jCtN%stT@mKGmLJ7gMRPBSed8$s~#LL->B$eG2 ztaK`!%%>~5`8)6Rj2dGsCy{A%JeTG%k5Ba8vTbMIj=>{+{k_@zMEW=l96b>$?Hb*G z@K$$RGcz;E?AWxKYq>X_?=2T$fGt(06S?waFI4CLWFLNfKNc3x~{B~M^rjrMF13ffBQW3l}WV_5RH z>tj~E?e}uq(Ij=4F)KB7C6kyO#;q~KXhd#14sfaumD#4pWVWe?n9WsWH|Y(52t3*E z8`tZSOg-&h?*PG{4~Kv4cbu!OG>=7;K{rD0Jv6Ea$2mP>HtQ_M(v+}n2<4Z?E^B8_ zsw;2+*;S^^XkAV{D5Rcekm}_$btCUW7kS>_M_{VqD|YdIRN(=*e7g}Gckj6mxb z>O?E=r@ADp8{)M)n^hEj7>BwkNAaz8W1MRyjc++4ksk71O+~eT17@<2$H9LaKCQqK zyf~Xp=<`-ug-q26L)CsKSSD<@wst9VYYXnENYW%-ieHLEkM%Fb^|u#ha6N+^>Ba``SxO?ozuq*sy1*y(eU;eT1zf>RcR_cui7#a+;=)Mr3kvk7wD>4i^w{m|Dn} z(-m^OORD%i?rFR6`NPWe2BO!OKw!(6HfODFuvHT>-Ll~3!XfE#(;hL@$zCLGtib+5 zG2_7%#%3)ZI~j+}Q2n<_s*5r^slsG}IB^(9;4Jg0+Atr4j3lm&feNzIVoawI+^QAh zJk1fr#kP(cTgIVSD{05m!|DouZ{HdK}~@IX*hPBM+JMPV^Hr&=y^moJa$vIE3PGc?3`K{(*$_!@2dHo`liz5f8F8B6# zsXuSAdP{{ug@hv>(nqpfnZPwC{r;}d_lSa`-^aL)8kb6sQa3%RmtG66tOAr10^H#xQeVdZ~9CR?+Q5g z(;K!zDU0~F@VC^8qn0eLi1h1nuWxAv@G9^893&{=Upta5m*~zzJ zI_ZEcr8yZ{>SwKS^KBDr{dk?!{`-eAX^@(N8DGnxgstkZ7<7ymNS#&9rAr`ey_xC4 z!LqBcInY)vMc5Z%rvr7*=aH%?J3DUtPW6_^aVCvmjsY$1+Iq*!WGqK4>0#YKv=ygq zM0ajXCmkRoaQhIq3Cr3A(6OyU*z&jTz;8eEVHjibNg1>kI-K$?f>9c z|HHTw2-D!xI*H>tRZeweZU2j53Bn?~$! z;R{l#Ch^$rrQ+N4#(td3?{N8DF2Bd+6I_0u%l}2G0Qdv``-k-RkEpl-4V|!mjIWsL zPw;W)*<0-GcsODYQ6Jl=_$k%=85O(u%?^6FlZqv4@xwKlhv)32_+~GoVlQ5tuy3T- zd#G5BhjaF|_&R5=p!!Sg>-dj8dfQLM0RKIR@`SyczGv?W-69Z2$i2veCf61=DdoE zrBwWsUi>08@Ej^GC2ja3Dn{wx_|TNf18kPQF~D9;-xy$jN8cD=U!-pgu%!;b`0R=R zX0tW*B0?UejJCf|$m6)(_63RtHmQ$`@BwPMM15SQJ}mXIS$$loKCZ$CXmJaDEU~-s zVPA~`G)Ajy--_~!=ivgE#H0HGxIuh+qQW~#xC4ic-8WZBDL|M4M?J8>Iw`s=?Rkf- z%^8XZu-Pa3drtPVM;?3)|L~CqUz?QL-%AKSZ^W2wX1#xaZ_bH8g!+6^Da?rjevK$~ ztdS;cqMKB0WiEXzotxjcw6>x$TSUyw{eWI=m6w&*R#05d`F+bY^BzDACF(;mNqgkS z4)BFj7#DxgDO|k1aa_>aY!MeSo}k~&;8#eY=;H-q--VA6`+)l6ZvMj|NuccUWkByk zpv=%URR00#%G+2+5kXe;GohKj-@(H_(6?6CgnK0Vo?yeZt9vtr>2xog3i9bvFKM8? zbaJc;a?|Q%wJC{+D)XEY9aKMN*8q*$8u%R)3y6;*lZUwMh+9cI zI>#MbsU=3(sIA6De!2)X5B4@v>&oV#;pMO>r{*7;AE|8s!=mHZBdqt~>K{EkTZQi9 zwCqP{iu`nqlVj_l`E+f)y5fMad^y#&{S^Y)V^sV%6<F>-zi+jI!6)z_lDQ$bi-LG!rj#lc)8vvY;;h=QMN{`1AFhv4 zz8%&;-@st9i+s|?aq^FBU5KW|0oyp7HVK4Wx{`(&3AQMlv6Ltl95`{0HHM=SSe?q5 zLNzyGA*@6WA>JxoV9Jg;n$GvEQO&#%z%^UKeJb3E@@bn-qIr2w%X)|;8)AF*Wh+3+ zPeY+4#??gH%*waWH)gN=jig8&l3v|;b0z&s5Mcf4&87FIb0B~;AE)6kK~SDAUfbt1T3w>w~jtWs~44MArrzwukAN61JGW@9gmKkhw0|eJ5PPC_4ZCbgGmGiCgKz zkhKU&1cJ^X<}mw>9pG#pTM@B%{Ag;*ILs7^>3l+MD4cvBCG4+A`{JMBN?(dHUb-eV zSZj6T2&a~L!scbGq&Eq6!lvoK+dRw+~J7O@F(g-?|#r>FB*S&iRgQ|}4eaLLS zluaSlXrYo}HIgntnv(&2=lgNyO+QyKl>6TOLCSMTI&cMOPs{K(;8(W#iwOF>>H-Lr zqdXKd%7zrQ6=Xh`uWgE=BYh9y3Ud!3hMJ7t>R!DhSYoOAuU=kNA8|UMksFcPCfXw; z$_X`;giG@QBQw{;>QFU3s{=KK3hds?oS-2`+{@I{VV5@l2~`}~_|@~ct(5NDJ+yGS zUYC*}k~KCY2+rM?MtI0-9>SZF&Lg=zHdA8P8(KrK{9kSp<>`sKEdK?;hCM8Q115Uy zx#2tgZu_+mwH_Nl?Uimesxpj5C3tYq(TUGXS6xYn%W1+4I+H~MCCC)SFa{USPiChO zN)xf=C+NyO_`N=MpFmWQQVPtMR4npIp@?3v(v=}PG|U}t>la`4Z_(^kkXOx#uW4Wo zk~z!=AsNlWE{U7JB#xDADwKV_I;O8?7?JKn-G16=xDI!m93Sru@)(+I2#-0>+FP3pGuW1(l1ru)#WC(FK;D(=M-NG!1_yBh`IyC3OgUi zE8mSIoXQojgq7ZgU=SwjCL_$4r8rWC*5&y06cVRYn5d4c!*^E!j9%RzqDgy0IG;|F z614W=Ao?8M(gaeBt^M;N&{}0LDcKMhWe7;{Zz%g|+BYz}uT~1vpaqU(kGy`c z%Hl5;05Cb`3bS0%{8qc%v(k=GskjP)21zL7aE60D2vib|AC;{{Q_UlOs#%=j3H<+O z=kb58!vB{R0sn&s-JAieFhG*0ECknK1>*TPU2b$nq@o z)YuV3!wN_v8k7C5b20OGQ}G@YI6HeUeSaSc-S05{&6dCT{mn+`uzYrRA^f(=ID*>sr;}tjdQVF+9iD+#Y%3|*XPac=*S^txvP)c6W5lfa+P_UUeUzx z$rG8ct)Q9UPoBqoZIznHd~G>S66fs$%VAmVf-QU^J3%6M{(<@0(yP_;vPRAT(Jdn< zN#FQL&)sidcv3>U0l)HD5_HQwVeN&{0nna6UGL`gPC_kCBLj%Vvm=e7)y3TOBsiw&?0f?!+h;Jag3O+(d z++05!e_r}g91?m&D$>D%t1K@SW+G6j5Y8^45me*XK-S!fyg*f`M9!jPO~8FDB=R2< zt~)D{FITkmhfGUNZ2j0BmdWvriX7h@MUH+@tRQ2x1cQ1cK=7Ug1HnHmJP0=2x&PK2 zywB-Q0UhH?XawF0z`rn6HSY#OezZpvcc?OQIv*8()(S}@Rjqg|kB zL|xSk`t>wRUU|RQ>?mIAG@)gQ=80p4iP=b&_XhkZOx|?cbuax*d)fY8CDV(r(8vW4 zT}`0-;%y!0l2<4|Z$eKe)kTDvS>wv(lIL?1^@D1)-X1uR@hE`W6gfwl)pkPV>*yP+ z!}ZI4`+E8%>A?1lRP3SRCMxz)aWjhAMXY3o?n&l_PIm)l2c3?O_b>FQaZIKI0#8lB zG0f1Yanrl-xLL{i{mC$Mh``tsW`2QwNvf^=i&Pw;Vw8#$6=NuBn>1zuYQMzG{T{qr z?8nQ2j^gFcGkD3Q$B&vlyu{1%7q|>h^Ql^$-@HbyjI$51$%hO5_mb`-@d0SvGQB3qvF>U9P5_ArCZ4Qvstdr}7g<=#y2#Yyp5GCCo(vPffuw zY^S1ebKx1>#B;G*;&8LGqqy021~>7z8IQxwJsri(!FJ*16p=9JdnC+W1R_ADY{XZQ zCa{P)LaICZeHId6aJd9zloz*m3FT_Gt{!m9|G@_hmGj>wc= zB~!lJI{d%QO*~m;%EdclWXf51*@3fqjhl67y(u~6?jjq-&FOQdvde>)z?n)`M|Jyae_oR!8x2DOztzgK+nYjjox~2QT~L@N#`e@p5gu@N$Ysle6zcJgS^^j|xZ? z5G29ZLWZOTtUDq@wka7h);ipea1-^*kke;9%wc9`R}$b;FAz9til>C_N;F<(7alLC zmrv@OJ-7+@q`s=7xOv4H+{Eun-XDjXzv(D${;FNLIYs2iMR(-k(1l2u2-Z%gZ{7oBwkLH}SiccgEr7tsTY9TiS)2Hb|BxnmC(63wYvF zHqu0G1>#+n=l8A9VYBiS=ZM=nif_#@sLUbt``EC(VYwI2J(`|Pn1mlD$%;R<1XXgf zg1D7JB7kKMsBy@&FDw?_yb1d#Jxcuv!B+3jj;Hfwq|o)|BygSzar`wwvMq~aH{Z)+ z!G=8(x)Brd$9=qtb5kJ&)&#P6m9j`&hp_s{a*CKeciwRb3GH}NZa{VpkXi4K#H4=^ z99x@1`Ruz%p;ba5B$elCJ*_};BhQPb$%dd@KiRC?t75YU!*7Z=0+Q!k>)q$Hk$g4; z8}^XTEg|GHf6K8nQL|(rxaI_> z4moO7%P_-JZlCci(r_zU~E$Q3=6Y`F+=J!L+7bJG!3NJAR zJxQQAZxuO%AUB#R%rF6zGhj$)`!-Iw$FFAbYkEZE;|JAJj{Y{8jZ|u~(CmB|xONgfQsR9o7sdp+#z1 z7v{dm$6}SoOW7hqIg?3=LuZ-HFw;yNCNEFYx*ctDrX@(|W9S3&74%>s?-E{U>hSlb z6Eqz}LWPNH4l3k$4*9{7*1Z{|nCG7($=7(g%;{%%G*0j?B>bDoXD5*fDqn$akUmz( zp;u&5o`qbfq^ERVD2RSeECxwaoJAH&C-19J{AYWtJFL_+64oF~#bh^Ne!j##CQKNEV+t|+3wq5-@cJp=Ru%0y%>adIj`?9$FF86xyD5W z>!x&JBW?n{DPgnE2%9$0eo#iep4WFkMvb(0$vI&4iM9>CwHpv@P6gyTrNtec7yTVH zkqEJ-C&}j4`9)s*EED|8UlJA#x5M217Zi8@UB>=`a`(eGk~)7kb7Sky_r4|n-nUGp zs>kE$t;E$6*owgtT0NfFxii&2w4;A;D4NC7o^130GNXgH-&=spC?EA~0gL=1F{583 zCri8&WG+1c$>8i<9Dc9%cvDl59A@vXxVo~mCaptcQBCE_1#FOD^Jl(~M9hT}Ng9(L zbgYWh?8@G1l?#)V8EiSVC?VN_nx@e#_La{iH@FH~rTt|kHI}8nl3iVH&OF}<#Npj% zfUB|?Hw#?Dse-a+tn)-`I@jBsz#@@s;&U-x4XrroNO*^bAS_XZcrV=58^fXxpt>hIgu}SZvn0{an-Pb5*bEePz zZ}9O&Ig+2ojHDU53iPI^>SCkUgz)0JspK+OZiF-wjdfq;0M<9C3NZI7$q|k7v#zTT z=WoJZ16zPoUARb6h$G52?K6K-X(AtEF3<>h>4jGRKC_Vl+wWhA<@k>%bT_XEIgrs? zaZ1f$&^; z_GhAANX{E)mQW<|qh*-ff1DP%j}n~Lkh7qdlgV|it=qdp0gk4@;h99mntr?zsG+(f%5+OT30DGGoC7PI&1q` zXisDR(|GMaj!Uai?xk8|QNaEYewea<2lll4=WSt-(=C6DT2?vaXbv(XstfWkKc0=y z2thoF!eqh_kN>n!SD`%eZk3Q>7#|)<%KjM>+Uuw7bMAn%0?sE`)~TUN;ts1Is5={k zNK+eZ4QiLVCxZ>Upx#$#VYrl@93GuY=i!KvK0fNq(Wjc*FQ88KY57mVSUia) z#k=LJqTjLfUSs-_y!u7KNu3N@-S%1NthT&dL9Xl7C=-|qmQ@VBUWN^ZqSqIqzi7e_ zYl3ai6NT}4o0fKMEjm+Hxq16#Xsosx4=PA?h79R6j@mku>ElKCtz;|nbNm|nrTqK} z+oEB+aL@?;3Gr-Sg6-$3!TwUigVk+@nMQS+&ug|#S7gngiMTay`;ImZwM`db|BR)! zKc$u3yn2QZ4Mk_sI8=^?QIPYHip`C zn{REl&HAaWaRrI8-Rq%;DM)&uNOl|ILU;~{nM6ebhK__56@F1>>UhOTDomu-C(FR( z{nM>&aNRkSmx_N3Ar)eTX}m)${7V7@xMU`s8!t?!*>xvTPJmZd9ruI49_3P9n|*n3 zrXXrx?%%N}G#TJ*8H`~(`&I|X7N@S&R+S6Y(m1?zhpE{Qt|3RJZu?*G2?guJ{880p z@?y&4`w=`Eu|LXX4?XxdeAV*s=DPEBur4&U}IwLh;u zzQAw4$mN%~{4%{*W?zry_N}xZp}$tz|G}^Rlgmd@p0J1UKJ!BREBM3yFDf3R;;U5r zxAW|4^zG|Ze1nQ_QgIXgFk}A@zK>)!jo9D97kH*5@!0OA;@kAbew@qiaQR&>zsKbh zTz;R+|3#?)_yhj?hxGT4sJHVq%+fT&+ z|2>HEguR=-XYQlJyOpRtVy{984R;Mb2=$zEIY}<=oa1+d*+iFm2~EC~P9wTDRU%10 zG0(NC_Ij>hpQS!F>b8CW#%Di4MV_eZC>4*A`|~4I{1yHAb}H7B*#0<^*?ff}5Y?rst~m!+;_|izmn2f+v@z+3@7pwVx;VR(i&hV}ER( z9J`gHkr%Syvh0@Vp+SsZB%)H!-Lkm5VWT_0(04E<`23Yy_7PT9mU8q{) zsXUGr_!r9gI}I;iIgGF;0_D^Yj6P@&lRv&nPL|*I0D~Z9rN8tXt^~3)4|}> zTY;&okPlG943ZT}?UFzSnCjoGuD#U&Ns^1_xtP?=?VXfMD0_kp+wMfygy4Rw!F`$B z6=yBb6QkDai#k0G&C2IX+Q9F`)b9?Cu-*9VQuvgxz|{Tz_2*n^6|+S_^b&nx71U%@ z52Kh%%O2dTVOl8{a!`LFT)18Qtq-4AKoML^Yc^4wEoK8+AHRZwD!+=+KILLi+hTVh zL`e0oj&-~`6t9o~7H91#w&%q+<_ zSIrhzVv2=wwo)j~cF`#;-Z)H_c&Krq9R(eZI&8FC9pH_1zF)a1p9_MbxeAEi5_7>`h*9N-?b66_M< zrW5N%Y5H~}{?9-&!ghQ(n=fTk3EZ};WLP;%;+;fX!@u?lp$`H`3n_#y3WHH2q<{I| zOe#Oc7hs4}8b&&iEy0l=oHAw=SSS0bgzL$xi?#9PAh|jGuMtv<;TxAJ;C;UJwegwY zU^}rkYAdlLC{^b7Eo*R)e10o zw@%`B1qa(X5;sv$>ebk;4k7UklEj_OmqJhAt(Sa@3rxN}5#;MP<2_@fP)QG4v~8SD z&02ZfHKB{72-ColXK<8F9qH5rIdrfrvL@2SGzW#S5ZY`O$1rd;u2hQ-G_;JlD7t0I zmLCj~fkU$a@v@4>FzC8GFr!~V&t#(~Vj69NFS`PUMr#DjdM|Kf{|!y5zJ2kl7Gg?I zjYh9vG;#B5lPvA4lZ0=%DUJKgbotkquGtpd1A@kt`7+(K0+j~!EAoTaze!Ix)T`EV zo7xm0dwYBF7q*SoA+F_KGKhlji_>o<#euLloyFJ>1 zlzZ}(fa!p67p7+8EHU)ls1Wg@+pa{svFrC!tgS&%ubJ#bB{RQo zLThbhG^^Ii=P+sv?RTU4c|+8TH%Gnj%L|DMu_KeO1ezWXLepXKO>pBd(!Wtb;C~nb zO|iI zwzjibD7k>%)@&0U0Q4%vLz$fzlTbDf1&E*1c@Xbaw0yW(__!c`RJL6P5CH!m3}Bd{C_(S;#(Dn|E5{^xFG(kW}D~$h?m1hM3OK+5y1Uy z=Ygw3D1NG0$hg4$c(YA(0JtkAvbmguu6iWE`=ic-_jX0Q|Jy8VT=0Ic*(N#w-nF-7 zD+f5LrG&BPxd8OVH+Eb@zC!_e6MAY@LvFSSKcJhi__&d+)lR38CQM}OrCR5ABU^tu zZsS#3k;82tm^7ljMKU_Vb;$PL*|7RYT3hcu=m?lo{BN6fpn}mM(Deq_=oKD((^H|2 z0G#ZCDo^@6Ru8y=HnPccee~H0?2M0o^FI0vz|-AF-&WrE5kB|#5aT>ZMU}i1N>scb ztJ!`J6(jUwAF(UPGoF4h$Cc-};v84<__%XpY@+1G_E3x57@J3_F`JfoXFbuo?LoMm zhgom}9@WFQ~VPS^-H(5#wGKI||xL)dJLp{&eN*xLDhOKU6m z(x$y1u$62EJU*LGyRIh#sG;PgG>ZEjw8-_OGng9mU}~^6ObrT5p)rA}hdYI--#Vo* zMZO1}!PJlkQ$wv`YDi!TjR{P>ty7r#lT!*)I6_aK>?RIr96;!@Hr>QoPr(k2d!Xcs z@|D2HzdHE%Abo4!9h?sb8?J3V=^Y%plHp`%0XDust?{j%RZ3KR5f7q8Qv(4uLhx@p zy@dtXU>GN~w@`2^LBMjTJN7Cv6Ecf!hos$};h5Q&;B{`>^5D;C^37}V48SL|CU39Y zgVnSQMOmxr{A8}I@1F82n-)fSQLli~vVh?E8AbeQ#}&|AcmgFHSKdDM`5KKV(gl(cJC-%8(Wl1uBOEm2cS0Sn~voFVng_&KLCLCbFbK#9jwQMP#)PXtMKlfq* zXIJYBbVkIKhcwen>8zUTug;R*sMYLTK^@c#6_cyKWTM_3pG%)%Bl4Al@RhB2myfuj zfWF+n+oEHn1^2|QMWl!8+lDu{^|*&uM{w`k^z_!5T5n3fpg)yLwRL>Qg!x^)wbTA+ z94?w`&Cb{#OE*D&Dk7!pq6;Q#;vnF99k)>C9^{cqrV3)>|75 z3sDWPUmaZ#Ghu5NR$?$f{Yo^vemztdk+7wJR9SVR+#k(QZi~^f4~wdWQQV2N*6=rJ z|F1II_n=~b;jYY`ujXg5O@V<(y}Q?xW$v3NV6D;<;UBfQ{)leu11_ok*X~QE(V1Mz zcqmBfA0QQIVgi-jlGE{-vzE#*=UpP-@3~CVbJ-)`k^cTLZP&o|b(+eW)1r zObsu}?A1GHge=v#b3PbHY3}tftRWnOEYud-H1ArN=(I^yL(tfoq6Y;U5e{j_dqg)@ zUIaSGTP*h%wz5s%f!L-neJkLJ=l(lWXqj$ov1qKh9R6px8~wx6piy)5AlBQ0b?FTf zu8km3Jgzm5h2Lc5N;DI;odT~8nr+8Qwx#(FUgj0~jbLHci-eJn8Z09(*aM6_#BsE| z{L6S%ur1|#!mTZX<<>QOfLlkT`k-Ep<-9Jq=6Q#3Zf3BYo8AMQdq|d>?qy)HUkN^D zze?Eog2A%$*6P{GiMAvd)IVm&>~ycO6_X%f@ul1o_!ImSNR4?T#<>9>~ulMHqr*4%om+V-_Tz^0KO#{ky z{u_8|NttDgxT#USIcrqfd3Lz^ZfGyAxjO=7$s60DBtLqR?QM8RtS4;PU#g;X{p^_B z)Y#P1`pe;ZzG>kZN$Q8T_S)kp9K4kJBSbAN53h_nqrW)D3=$wiOvf+PA0lp8v z(y$);^l^QjP7k*HqO^y@(9JRrW0e%WU(Ao(T#n%2|9R|fv zDn>pr%&Km|7D2se5-!2E0-%L|MRfJw2{Cl4cyu)*Wx1(`J)eZ^2&C$uZ1Y_(Df;Ws znnoj;VHzt?5!HGSQr|Y)t3z1!49+h{h3QU<&C=0IW4`EOrK1>?e=iVgtPwS=jx_J1 z->93@bO`cS^y}u4*s5tQ<;BuO|Bl9Y^kgWce}B;dGsuUsrjf~S#}IL@lE zByOFnwN5`PfoIy4Y~G7T{yzA}GhaT8-y?)ijY<5zAD;V%TgFJ5l;%g{m-|lOR2hWl z&ow`eFHHdvYAlK0Xv{XLtA`Nrg4TW#ew${09GpC1Ga6JIBH=0s5o)&JF-m<|UQv!o z304i(HleDJT`Gi&hP6=%e$%8Uo*$>U`w8T>P&>*@%ebR`b2LS2UepKS~9(O5pt2ESy*U zrEbGk2=$Q3Aa+C(D74Z3ZK%g4+UuVXYkm(=_d*k^4B)@T?ar8jSO+{C@K1x^8^)-g zhwC49`^&@i<~i`2ObAVY{XTd#0N6htKotYn6;)hd|9SvbX~?-pfnAQ(V@6XUAOqNQ zwbSY6&xEchqa6tBN7=xx=XMsh>**ZB`+uM=$}nCUysJd7HxVIo;C=JOZExH#pz4n)w|2xuCNe6<8%XT2ZUOF1db|4Pl2te^7 zB>D(^>g%T$!_)1}mxzD=RQ&r=@$bvTzb_a6-huxrp6qq7zc|@FErIvvvhY6Xa?p@J zWOU_Sql z1E^vEzoIG!_>r$f6|N1SstoWW0i{>;a;zTnmuk8*fIn9|oqkRQo|RqEA8P}@Im5HC z-<;Gj{67;l(hvU!N^lw`qUON=HCIBuCf5HI0dUOV#7e*u!W-z$ZrjliE5E1~HQU=% zeR??P5eLe_8Fb*F46U`th9fLowDab1Du5*`f16*yRO``M(Y zlCA(1o$U&M1$A_k?FzgK=@qWPtMN&=0^(`jxdNBUsRYg;93jGN;1UkOx&VhD>3Gm? z!NK-O{UL$(qEJoe!2K=3g})@~TWF$`i4DBR?apu!uw<|u8(6Xp4o@WG<@yMpaXYNi zNB9IZAK)W=HGnFHkD#c^_7Nmwi86dYfUFWuf~26dmmo*$v5Z_VAy+}2e%=90E9)gh z>0W|iVKVms+&Lb53=1Be=`kECG3;GL?i`O{JKR=r8tk}QW$*>+MC$l?8_TvI0vO@Iuhh(1UAki zsyc8V;%v7&!-qI3#fP8?1zZ>6Qn$YxDbk}Y!|{!9H<9SRlf1u$g2~lSdVRPJu z-5cO!vEewtInR#1A>7zth=lV{zp*|(D~=@BMC3s^6A+kyf)XTGPi;uRX-=7-8_mo@ zp7F5oPOiS}30GZiZAm<9&~$)PVNwDPg-HvsqJ6^6LRK_YH#1xdbr0w5q^FXu1yusu zwE%1E=sVlBcr(%~T#LK$Nw^l`Y2LXO7bj;TN_ZB$-HW8lK|2;hMps_H;v*!xD_idgL4(vLb9T9CYX@oKj>Fkx6|3( zG7%ul>okpi>~yXLc4s)950OsiePmj2oX#(7kad+IdlhUpq_RNPDjbrkHMHlcx3VCi zRgR=9+%@zuVasbYx@M{Y)ybx(+q=5BO(wIIr4I@T>Tq@Q1l)Qnqe$Wf;+#SdYjpRKiejo$7EqiUFMiP^Tg(bZACH*Tfb{!Q_5f&aOWkBoQ# z8yFMt&V>sWF2Mh?3YBE|#wSYkT2Hzx=^ImBwS8l7DV#~k_Kmk7y}~zsGCm34SUe5R zH}(*nYOxf^4{bmh%@@ek z{1au#+{>|IZoLx~E+$pv)Dmqwb!CuJ)hro!@e@nKX@jBFQ7*jj!X(5$;%os9rbyE* zs30CshJB3Z1sRQb&K7Zw@gS|9-LTbahP+K@yh{JF_tEZD(+#%2Lh;Kgbfr`wj9mf9lO*(?n%dA29R7Lq>#5^ zkyB8@I0Ly^xmMzgzc_UDGoeZz!xW&CTmK&?59`j(%(Oebt=%0^73Jx(?H-ixjZYk$u#j?Er|3-4uZm57t6%{iw)<{SOFzjO{Aw+x}aJyz#ROXu8=t(w*~Wij|MzB-oKlK!yUT~iOfKzN%yAG*_Gx2&=V@ZjeT>lxGqZM9FrDKHtXaFMx=+m ztYSI)KQ_gYH0GDY-wzN$XE>6MA9;#d|Hi^fPsyBzW&A{J-l;k}1SAiIaU^J79Y`9s zMitIkNqXXWeM*0ltsu%+%d}ThIA;~oD|W|D!zZyjCZ4L;4ieBLHn6nL03bO^pE0={ zme56uWQnn|@wTpN3FYmMovYb#o@R%5s)8MRY#g2aEVi+AqS4V&@6oZ*_%nD5l4ob2Lg7~P=J~Y|o|J=|SRPZG z?n3cG<;(1;?X<_EM(HI5HA3v|v?pgY=5s_CkdL%_=MonNFL!C}-?a~Jr%B~bHk0<$ zE?UdwPo7g*W*03*9L*g_f_E2fe`8X{vqmO_k#7j(-V`#Z@IABqLD_p|*O5K5s;x`R zrV;0Mi^Ed-P2RS*Zi;Qey`0Z%&UVL3p!t9;xIYV^im?T!sN!zIygPs@hUHXL*>Wtk z1^0;nk_WkxT0~b;?nc}FLScM3#JD#lP{!X5U>IM<#{e75EQ`D?wI2sibt?3cnXjDe zsRi=tKLV)Y^UB^+TQ)2$ZfyA^oaj#plq|W_?>PB%>>@AUif*P!c5)UgP9z}NOnaf2 z5DpfcQpA~!S>)ztth9a}zbTpNd`p;md;n7!6ZaTsJ^(UK51@(x8Hy?{WIQr}D#jF1 zR8G7cOzm-y7y zS>F*$_oo5WmWL0?+QGud$@x)^m`yHt9G>>$_;raO>8}vxzCD1sjLCdAG#>yX_XSYJ zfDuI%*Tj4#fGWncQB>J5Ldrwg*%e8GjmTr{{&FQK$1XS9q>55YtQGEjU@Yt05G+6>N8^8jt!u$JaR}@R*D>9jd`;8 z@qRCfS(OUvFG~SArntqP!;|5oZ2M z`W`qj0Z+~#+ygPCas{6N{qc5n_<=b|?QFu;a)(78rk?HMEdqE3TExgAD>1@KBINy) zDECc-EV?7%*HsG2XthJ~&!_Aq5Id6bXDZLmUllyVa2OQ7J=!8HX?O8m;7 zHA!cr%p=jPs5EQxUC3Y)byBh>-_4h9nXJioxZN3gupdkWyT-7&eZ{|q;Nxz8+S&5i z8OCz_BhWn1%w3LuF@P$@+Cx#r&6@nj0IEu?xATtMHPIU|vnCC%G&xu&$Ljda8Hrua zUP+QQnX8>nKW_mVdH%T=7GzBd4@YE89&F?|n8}i2{3Ol6%8~qU=-hGBwJF)OpR}rP zBVx^P(;W=jQ#q20Hkm%kKoCaVzVt_n7d{h^rq+tnNsc6CtYyeIfh}{igT8`CY3RBl~833KDolZZe0nf?;v?}16ZdZ~JTAyOIGp*xV zYPXI3Eng$VS6|+=qfSeTDSjlL_-dqQ-?L zOc{sa{cd-L!*Fnl!$7u$`AhmQxE)sMF?<%95AYbi5kM8gV^CCOdkiUi=>Hr*Rtc9O ze-FKo&mc$Zv5;J!Ay+}2e%=F2E9*0;TZ1wzjn{EVpX0Iju-|2w-h;aN?!83r9Pi0z zk3xnpRkswjCz~vZuXdR9)mD(6N_q}dbhhUJ2G!A5w&(Crq*r(jr{I(D9K_S$JO>Za zSqx7iEp(?@vc%Yq&SOd5(aSS5JI>VX5KmRGV~-uZJX?klFKcgS6(n6%U`Io?nd%!= zREYF>Ch_$2;#Ctdh{vfUZ4Pi)2S8xw0`6Rij5F4vr~I>Jw2 z7p-2~(cRi>Z=GyRL*c@`dM~hW4<^i!vjHDy%Q~U8fUEIFL7z@ zziJ;mmwB0(OmoTk#65K|bIN6q)(np@%N)#1kwG4F0uH_-O$a=pT18hjK{tO zXdYL_UkhLuU&h@0=?4R-V&qQ;&WB$GP{rq!oj<*DnA&7&;+${EboieDip%FzOZIY> zKaSs&9Ok?gh5#1TuB?56+U!IRmlh_0PrAAyw|f%jAo@efP5Vp2%%d*%yRH>X;KQK# z0O&Y1fGP%bD5|(-<*Wdz7*j=2RVj2lI)LQ83LP7S!c?buTp4c-U>IMLT4%fj6gBZ25^io zW-eg-NdQ$0zzF2k%L1t4^U4N{qUZVF5I|jd*pRHO6gI*d^PK0;-=Epr=lO4hfEzvL ztg=Cp^ZY4;&|7s5w=RPAc&SB&&+{XxGN=_GyJ~^85AyLWUE?Nqmiy$(C}pR1itKc@lDcy4?XhXu#}g}Wt={U2gx(3$7{1p{ajoptd4 z7Suoc1fe!2o79CstBGJU{CVf#|06G+u64VSFq!R10gQlwm{#0tN3-4f(1^M_HaeN4 zW1OsSHjzQUb%on`@Rrw-mL9z2b*reFKA()HIyci04iKN@IY4}>B7I%JmM9XS^=t4&0?^@tJeEQy08`+)NRa^fvr+0w zrDnKS2;6o?jsM&qiqC{_`UiMj0@FzuTQLi4Le7%)j9FS0$K#7Mc$L z^KS%D#Q<|f6&K9^Ie@CY4(4*K9z)1IT9B)qPCxGfo|Of2RU#nWsw7dlz6I;{wAP3G zuFM4Z10+zrmk65!@K4>at=pc4Tgsq7KyM0)0tk$k#?V+4?}GYsP)Y#SxL}dH_*yMl zMdJa$iBZE9km)tH4{-eex&m)OcILVX2LR`owlG!0oXC)dzfCJ8_g9dfO1cSDl(w4y zHr3Huwwv%!q*osL!zX#@51;0pn{YA7M+)^4&Mm&EC;biDNw6}iygtJDC_B?fuzpBf zgmw7xo^uf%>2_zh2#2P*2u3Cnzb3$Dx4$Y~gvUYi0WQK*1E^xS2#Ts47r{x}Y6ehM z#zn|W+bXo)mt*x9!Bhk8WYH&O{&Ka`>E~?VSy>n1ShC)yCdKa|Sd%(-5MGEH>5l*$ zDk16|B5H<%u;sLc3l?l>MU9E5J%cgq+Vu49Xr|NN*_cSm13@I9gU4-!hXB#_(dg1i zdi)lHj8NPZ|ILg_((A8Wkh=mEo)OPL53@Lgq$ZYAw89J<>;id zT{*x$$GWgxxwj*|!j-!RpM)zXp5~n^cPXlim2?>D&=sltbeRZaj;8cFXtypk0n+Q- zeFEibI(Ml*C)4FqM2QPcmoibHkGb6$F5a;zE*?oA$?@ zA5T%0?c=57TK+PCtP)OMey(L9FHervV;@s(dxn>ntDsIl9|ES8_3~8Rrwlve_w`ce zc&&#b$<+pF&Yr)&aJDMU#pc&v9iNgN1v zgK81hQ4w236GJD1T^$wgcTN^Rh(CZ|os1b5*etx0gqW<{h?^@Q0)j&c84w^6gd`sV zDfnSJF~p!A2^?pxnNxK%!~Zy5O6@SxQ%V1Ws(|f(fMIs@p6!3EL3)M%F^W&Z{}4}u z^FKU9XE8k4grk{_k|jp^V;)QL>PMZg*>Qnphj^-j9eb>P)apxHlkI3kUMm9ABP%=x zH({KV_5CQemFiJdQ!i@EU9iT&K1RB|T5q~>zCk5nVf}LTjr-z?QRb@z0J>H(K}x6cCA`c&~2x;b)wdTcW>_Po`Hm~ z(G9KLNCLDjzwI@!CHLEUYr^|W{Lc3~tk+A9_m54rchtvV0o|&1#_-!Ql!^RjqCJkq zu)q?+wmqfdrf74!RR>b>e?aW`RDEK0I_E7_|8MJ#TC0}bqRs&ragut@y!L{J_UbqG z)<(lZ&4$;njxLy}cgMHFa(iocrZx@?)2~Fs>(^fwpCTHO83k%85usXbLatK%{zZ>dnGdRB@Ynoma( zyw$UoNXD28Joyn(>{~*H5ne4Te;8J^tSv7GEBt>3cwaNXiOIC<#2oDtR`L`3%->S^ zllTQ`h2sy2w!VU|t(=lhFNfw~J;N;~c6R_(jPsj{DsCp|`vRz9pp2r*mSw48VxI{h zxkN-EH%&D6@a89k!uT+oadJ3N#@`KK7+=QR!<+vaKo#TgW+1PA7eE!CSN7q}p=7y0 z?VI@pv2n|<^1GToO)GzlQ!w>#Iijel6f>>}AbGE1#wMXKzM0I|Jg$rz z0Sx2In2Q;^0;pnOM&NvSUI0~mUfGzjXjqq1lqL>8AU5re0J_R!gk<7iG2-yFs99|A zU2qsmUXNdrEHl3#tb11g>ll;r?a+Jx9DF!{Dh3=Vs<@`&^8r*b)L&6mDI9z|faJXj z2VWNoQvny4xkO zop-@tdHizxiiCpXV*&){1~82Q1ZP3>0YLER0IC>3ps3;k!PNm&F%(}>RVfhE14!Ph zKu{A3QvnbJ%J|s<4CBj~3j{9?po#$mfxLQ609AZm@qyr;0J_Qpfn?%ff#C48J@VMj zyHGHcydJ-#)&<5F1P(qGz&ZvTd<>cofP=3DP{n`)MHLqgz8gRlL;V$14jdTAckGH? z_B|!eiIiUjkX!~1@=l~Ix`b4q*sKz`lIj!xDio#yI0%&S&^3GyoG)W892^}$6$1_e zdG)XWs`$Ke;2^h<@Yw-$m4^e#!~w&BOn;KeQE^gKZ0S?rAbCB0Nx^~f1%ZRh16ap^ zgG-_L064fdfGP$YD5|({&x=PKBHm{Pkj#OD{^Itw=A0;^ z2w8mF>rhpGC`sWfS7Lsb(47j9AyC|}2;d!G++1Y1JAf(%G6eGKeF0SQdF3EO?gqjq z0_ZA_43dd^1Q}$4Yhh%-*R?SbRr!Y`GKepT>G)Ov>ln!J572x7GW;ljDh4trs<_DT zn*gd9>aVD(6d9I1f$#TnkfHfP;K^WsVKI>IKiI+7L9Vn<3Sb>y+FW253!sVt41qIa zT>w>lUh#opQvhA%fk85Hu)uI=awZ}l7M8~^Q&31gCXg@@z%<5mydIhlfP_u}RSZZ_ zRB?^OEdf+96kkzQDI~l+faHAy5?&%yr-HRYptRo=z&gIPxsdST0IC>}5Xh^~2T;Z5 z6(1759za)lNRUk21CUU3r66p-yG}?xCXn#U0H!e@;b+i%03`e&fGP$gD5|)Su>TYJ zE;mE*6;+i&!tntl?<0_K43J*QDj`tX=LWEjFKsR)JUW0X1|$UX>goWh_`KpnLM?!< z@{k~zI9NzHlYas_ULv^L4$I@l;#X8clKz-L#xnw#%7BcW(0l-7ydZ!o24pCzxRCLR z0IC=hLs8{G23~9smrTmpa&YcIczXcJ9LSg&BT=RDhuiKJ3RA(_AyCGj3Sbyt#$2HI zN&r<1pa|sEcLS*6^U4N_lZSK5L+I%ug6c(nKy2c_28^pb&`2Q+7HE!%%VuCOij>QU zS?1!&Qu&+s1&Jo{hlFqYJ&Es9Gq7YKG#`K^hXqi@z!F6j7fVhGpo%ef6je5s3?*`p z>ym&GGlZq6aw-7a6w64?xrH}TIXoeNDu!YQ z@@hPQDn75W{h%dS0EjZ{=>cSwQ(8$xfB#N>vO7~BZ%j7E=Wg$>nAyE{M;pr$%{3S0 zrQ=Bv_#lCAI=OoPq5!5bWT}i4*BN?M096cUDA1t4Er2RMuWV;XDp|Zb5bjQj^4}Xk zTX}~@GSa8LX_Je8y8j_Yk*@^XR0*)ye7Zi(3jMSA9cf~X&xvRAr2qyprsrQn^8udC zcLJzl0Dz*3YczfuKow&mD5?hH+5A3$^fWy-?=habH@U=kfS%27r3!I{b?_Fx%gzv% zqKfO;oDe`2L$L#SwK{+*KCjrG&DsF6$|-FHo{bcN4;%QVldJdF1Tc*uOJ$_Ep3SxZ zsu-S4ph2Grpo-6{Fwf@Z0NToXHj1OCEK?}YzDVRm_K zM5-XkZuhBMWhA$&D%00`HN5g^cDy&+sdvXP#o$K!hA>hWuT=Th5p|Zae{(u_x zbIm_40!K*Rbob`0LFfYC4!16Y_ITI2^dFLSxxw7j81UqNBnC;9_qoiXvf-b%%{4zB zf2HWY7xh`(p>9+Km(tjb4d~kS;P8DCew)Vpk>&7?zV=k(7>u~eIS_qYkYWi!h zhjWef@!s{Z8>?#OFH6KT&;n z7a6D_eiTI_Cc~Rh1!ReQ+2$_%z?=-W%Ad0V@A;611D@I)xOOAjUWe;1YSVC|58QFM zqlULtMzw8tWs$mG(z;_Pv=OrUyN8e}#-k08M}4#OR5N9tmwUd9u7NwACfn1~?OiCH zowZH_uUUaRHQ|0peXr)ktdO0o5D5~qWfa&5k^ zMs!T#BB>=iD%$+;g9ua<~vJ^1Z5xZoXb>KVxbGjUT7+}VWW0bbuv zhtW4{?DOw9{8zWXT(iPh<^C9&2b#Gnqu&Kk#aJ0Bs8 zxeLY3*+h6pzeGA?(v3A?T`XwiSREHN!z0 z_eTR0Ta3i{?aK>n^hA&EEgS(cDK;d2aAHCClNR)AM8#Ns@Y<`TRcud2wW!(NHX0## zC{sCJgG&c%H`IkMV4~9WEcni`qbzr|%QQqZbF3oGbUdbnZObLwR+FB9ZFen62cD7U z>*zQAbK@sP}46u?MbmOz!iJrfNIua4$F9+CAQ>!(C?+qeGfywr}=`p!Rfg zA}1rT4Z{45geBo-A%potlKGE9&ECc_HLA_mf+%DY>s(?JeAx{0w52wB)e|;vhWqWL z&|tAq??82oRu3;)S9dYMW#xDy5#C7Wm)06qJ5)-{-xBFO)g5pyz@;tDGNf~WWbKx{ zAf5FWUvc@Bmp%HLM@#YG)%GBlXuQ2+X1d-3_qR0xSD#Kqtu`)BI_=r*Q}EgD2<{|p zcQT~4u2j2JdL`Q;((Dahng>Z~&g=zg4nJnYrI$T=Vd^ZYJT%r3Od=gjail-{>jNOIa6!J;i z*5+VVq!&8(|8N(lXXP(Woj!`LQz?`dU#q6vTI5}}eh#H)&heBVliB=v{DBT~Q7L(R zi83qL&$!(sY}s@uxER&0V87+|r`w!4O(9B)I{wRPd#tK$Z#a+SvCV;9m zXK0VEVC7gn1~4_onX!V+)lR3Mj|0!ju3(Q8D_Ga8xQp48$sDh1kGNLDQrf!qP>HCY zBq9dQ_3iIC+dIRX;Uek?7PT0~p4r`-g0S{vV;a|E7*~~%Q&^E{??bGh3jd1Oq=&#* zm^LX@(ivX)5t1Lrke-58PYFy@=Grg~w$0HV_D%O^A-w{o&&DSK)8eU8m`*G*uK5N7 z)#oL*F>x_^bv{NXjSm`}&C8>_sJsb&|p3*zFi zIelXQel_ZzObkf_;G-nqJcbCB1Hfyqto5dFp>F_iLS!`Cg-`$nOXX*X$@t=Ud!lY( za+!vRt$HIFOCej8ssR}=eXQi#>q$=~VVa7-hH0>Qj#jZ@`h!TXfawq6lYnXQH1A;g zocNwBE=Zr257KedgNEqjQZFw+e+9*40(9~lqViuQidabH%dD2aEQkxm=Jbuh z_-@oa|2p|32{>00p>n|Z+)F2Pn7Y#*uXiEUx7%%OZ^8Olt)3w(3wF&jGk$|xAy(?0 zWE6$0RI2PVR>-GFe!ZRaR1%;m^KF0zYvfuS$Ua2{a!7(ElAk6$79ZRXG5Sd?l)|;yO?oUW!4g6)d{1j09vAa4Q7R za;zRhmr7p7N;y|MoqqlvBv}nW8xu4Ipp9>1fL;aS$^htxNx=CBqG}v~K6WFT%34pY zj}eRo70%K)>qVkq53fkUGGKO<9Q7K~Q%RVmEVN-3Y?h-HY?!?S=@l^hSbP#NE1u>n z%;KdQ1A|#{W5?9fHuvUgQWd6lNwJFrHfq5VbiqCH;>ld*U4a^X?88S}QCKN3D+na2 zUn2@RaG1T$?Ji-&rqe5j*^b*^l`z|a<^y2%mH?_4FsrEI!t6@|s4BA#t^{V~SUrZ0 z3$wY}>GZP&cvdCM$~%8PiU;n6m!S?JnUg+-*>|Jv`PadxOUv^VB2*U4UW2Bx2+U@@ zNNml$gqA|KCRKtNFgq$o{XWuDNtmT9v|$!(mZKGHnEhL%SHSES@kzj}c$#-Gdro|r zAs1u|?Dxh^4|*k=+`Q-o*ndJXnE;#ohN%3%5JfDc@?}=B54znM@cQt|;q^b={;Gu6 ze}m=&;B~*JfpDm|l}i-^UKLebcs(qDs=W@ca;zQ$muj3dRGbmeC_q_wmHWNg zcDQTUWa`GydKQQ(16m(0LFRiz`8m*fw7Y@@`keKv|21M`)>fog8L)bm9PzoNr;@Nr z*=NHl*eXXG*s%I|q*uV|Rrn-eRXoj4SViY>K(H$O&H=AnliMr3u-ZT|Ij|~-BPxFb zQN)46>UOs~16ChVIjr8~_LmD_j6+8^Lh}Kz`oaLJ7_h3S;=<}(0aWdESe0Y-7&tDh z=4z+Y&o4*|+Q5d@uOqzzR=}8S)YJ3N`{=d@9RN1&1M?zl z7bRsPtMMbE_OnD82M(@Jce^vd^}@=*^)|P^D%Yydh2{gmbuNG^2DmD!xZwJx0IK#n zxXQ75j2stSbG6gyXBv1`7F-XKB_5$LJKn$v*Qz`CYE0f3Vn2nN=U=T}D50iBM9P8K z6SO%ifUK~9R{-q~@JRrz zc$#-WyUx1mi3_)96{CA!YM{IV@qUfga?HnvA2;&vODR#BGY0k=C0XMI1K zw3zCSh@p9~uy~I3mM1SHr=hS#(3XWgL?PN zm^JE~YdW*=D>&c^H`t8#8awNFRaSj%WPH6UIWuKf>OAw>3m)35-`HCl4GV1<2HssT zQSXj#h2xi7yEChT&V+t`(&9OKwoqmLXt}f!b8JpsoCKKtUF!yt<1?Fx z6+m8jkn=9li+8x}$qQVKG=GY=^Jnl+y6JYL@c_OrZpuiJM)MvdLEabz1Gf%w^oLCL zn9CjW3o@h+h79TVNa7!g59ybTAuXb}ziqi<;erMKXHI1lN?S$4)|N7-%PF(_>*LnK za7)iD`yS$|+7$&}%Qi;z|4V%RZ!#`o{cC8R=Sn;FU>Tn55cc46qOqnew2cPb7Li-3 zv)~n7wXF*QR?{RAO_;-Bfs@BWJfQ_)VT$zw=j9d;8Y!4+HwpE0Tv5;Xpa|$FMR7ak}6~IFG8)t zKjT}!@!5&H8_QPd%ie|!XsF4EyH|ee_e(RTL8)86UyTi$i|+VlYcdO8o6)@oV@uuo zeHZk{16`_uW(Az)TcI)jt=~dL#I4^#ZL)9u-q*uTQhia0cu_ZJ1LlLM2QUJrt0U5u7t#K+37%y^He;>SscG`{aq#ngbJJ+ys3WGH3m z@Ov<~j;xg)R8F=<61XE5SC3{!GLs*T%1%;uIOsU##?u#L<>OV7iF1l|2;B-mHh+Na z5*w%pBZ~J!zT%ZhulSzZT~jk)(_#Q0dt2cEb7v-Y)c7S;|K06aqqT2>F-{Tu3YrJv zxf>FTwwZRO*tBPCNGPhZ^DHQXiE(8zQ7nm8=D-C97ixZU~?*Q_M29@%2($Mzu3xp+9p z&hh<>sU~^!9q5q&UEv$S*5JL?(xMD^H4KgpjZ7$HH0Q0}Hk2DZW65tHyyaB|eoeIU z+={f)#!ABwEtT9koAktU-BjyI(g9_)W&6?eIU2;y!`O`Uiad-f@JZxhh^HzN4+M6J z>rS;64eoxhbvlq92G-dLlE$pk{R|qfjT~h!WKW{hOvpBVM5e$LQOrWPQ3kaq-0qCY zvLXewSIXJ1_cy|Ud$-$nmB2j<%?AMY^8=`20Jowl8@L@F6BW5LfWi{k?GRHMz9kPl zMv)8Oxf<;BvlaMP7QPQpH8eg1Hzs=w;`gF<+KH3e{BBwyVX8(%4cc57#Lq$?)+R6u z$MsCMp!^Y}g={o8+90ZWKcT;nHA|I$2B04xIrSmZQ%OLlY_|a&tfHe+Y(W2eq*nm? z*YHUIx_Fv*fPS&Hr5Xn7=N4UqTfGe$+?~v4FU0>0MX1JM3}aS)mg2Nse-lY#b%s%*4RXEafkV*|)6 z0r}|^mBxL^4Ug?iwfh;%_FRQ_`uQhNk+QgdtbzNsCGw%aV+Ud%U@b^B!v|O?k?mi| z#Nqe=0>LdRvpj)I8oei8Zg~Ocq8DJbk?jkpR*3#?s7QY^`~Y(lEK%%Dt7pCI+; zWU6$C0vAH0GJZkJ?auHEj!5wfmSB=fxF7H*ZiiL+0ndi!1N?xO1yIHC0~A%+et={w zQHD1JkW~WrB?YB%UXIpd8@V{2tDsIl4PaVXoIk<9`P3ONDiw&$3N!1!pE|!|y#F}r zrhm7f99o=QBR!o0g}7ons9~O(GGdg$Oz(#>~;(6LmD9Z`Z+>-A>);* z4;eUrwB*vKNlztlp0eD=c`$;GjaNJf@GoW1}48edg*l=x4gsD-9P89e_tw>tyRkE-Jm)b^7@QsB~F8Kib0c#HRRG?be)* zF?=KHqaVYMlj!s-G7C8vzS_lbO=}K%^L|Q<)TWB`G6T0ykeqoe>8T`cQ#RYU4aUyV zB{ptvLwW^nkK>cTZSgekaC<$XTbVSuGdZBWXHw;ck}>(=`WYxV6Ryo)k!f%fQO<#5 z^^I%##4LS< z&{@bVrAj&joz-pQUnD)1L}$ug8=Wh;ZTv?_uR!M?$MSSQV}Z&21d++IzUye`b0F@n1(@jr`ogA6VW!fc6S1=0~Ea& zZ;!Wk>}d3$bXPP!Rck>lF5?&aJL^|9(7Ku3c(|}P1sXWp>C{`js8gS5Lsc)RPZw>g zb)ms_OME|F>(#qG_z8Aow7#P@0awp8CZkpx*fHIy*CuvH^&1;qJi53FSyjKWK0e#4 z%U(c{qsdNt2maNmk49JE|93U8q}(`u*XYLY!_d`xnzo5X2bd0|jSdZ+=~Ec7tppm= zYCBU1TL%G72)V}thO%c+2d^8|I(6}7ReBR`Xhro-rwvzSpz3tmyIMtcLu#%R@1qqf z9hHEFXIomfTJAWE#`adbL$zcB6}Dov5MG9u{c^>b;}sYPHV%d~&p(Vz_Nk|7uj_S7 z$TwS#TeM)o0Bk@727pY}oY`-7$C~FG2elo9Te5_F}kX~7} z*2G=O6J^&x^AFx~mw`D3Gy&8GfzuoT;}(I)fvm4rOE7MtSK~tPrxz|*U}~<$L>5vq z=84%EXPOkBCHzV9ziE!#MUAUAyG_gL_Ae~y9_hJal`&{O4|UpHL~jy3!AweV#b6o< zP=;@{>WxZw?7>@JXEGLOI`uGlYr!C`@fBagIhiu{&b`#Cd z?gu~q9Q>midnGnTk4tV+1l}ZCZ(73WUpLUHsdYdUE2{DPQc96(2vFRXvrMJ`XE0=D z^d)sco3WA^lcH11wbw643gcM>y?Hk2e~&$C`pnUYV~-wMfR9?=EH!U_09C=XIfYsy zQ2e36Ytxxho9-1;wUjM+pJ>A2;pu{h+6B~WgEaTh%gZm>ykxaXc>0yW^HkkK|F;9< z=_i1v|111w2OB;<&qt;;SfJ0m9}Sr~KN|eZIa^wzA67MUoY-zw47rGBqs-;ILkZjj z;YQnAQf*2==TNMigtRu52PRio0c|EO;&w4q+pKSSDfk&MS5tzdRm8l^6`A(IIm^G) zfS1{7s(S|kRvFA(6O|8jt%>$loXd?$JZV6pqUP>e=p{8cAyh&{CxQc^)XhF>a^P|$772SIp%J9LjDj5?%#}H)aOa1UM-Zml()Z1&I>z&^UXwB85Xv*?(RL!b#3cOxkJ|aCY-`kO`S?*k{eXI zWbmr-NU0hZOSxKMh5ma>ifr!*jA3dnC&5v}FPH_2XnHfL=~?RnCObaxG2x)(_4cB_&uXQ@#rl&sY6384h0Esj*1 z($sM%cH-v}1vyO=8nlAxQ>z@bYE$~N9EzPm%M~G~iRLF@3Ee(Yqim6XZ>(!R|F>YEoqjOy_koLM^Eb`{Y5jo=lUyZJ-Bvm8ziC3 zrQgm57i)eRC%#DJ{R}>dL|*YUxI|tL(OH`l2}^DxmGvb{jPm<=EXliP^zSq~zN*BW;s5k`f)OXlcrcfA{tVU6lUvQM ziT!UGjrsg6M#?bK>YaG0(>f!G_D3$Q{X6%qOFHApkla+cr>^K+zTK}C9zmA5qBBJn z&1Fb}_lnNt@g&x36tNIZJ|QQ?@ zP$%U&0$zDAek#~r;C;f~rw*38TdL9RdI7ly-QtP?oezTN8 z=wsjxw;lvXh<7%q@cm{;syx+uJ3ir`@%?7_tmwXX1AHga?F`J9E9ZYAP8#d@&oLLl z@rv%+Xf0ffE-tlSdwqLb6V5kWA5SfHb^S8+BHfOA2@>q{i>*Uz{X_koG(QigZ;aD8 z&AYH+Gj^JKzuBuZy7xL@2Q3B75G(TKGrQM_L3!b-({ie7O;wQG zZ+15{#=qZ8sED}VOsGxv{bu{Nr!IMlD#Tl^D6xDL#UdueeW(WJ?Pf2+542jsgs?*M z{gbeqYZr>djrV5Zs7ieLNUS@>VW;Hih=hmy_X#|Fln@}O)TV`_KK4-e@wJzfsKfoi z+;w&ide?c!!{f+{j=im#>z`IAxH5{(r$$)l_@oN{O{{{vJIb>z* z$+c%Vopk_K&e_3sMKt^o6=}GQtcDR&ccYz2dg8f#s`X@}go@F^jB4&iyA0_SdqevB0IC@HuBgh!cayzDG42Q;t^~@P zbd<(=IdTVs!>~SAWu1Pm1J+fC^>U7jqAt?WiM;@Djl_2`*8e4Hp{a=G~GLO&Um9SjY9I}`0w5Rszm1BLh}L0Jk$Wu=-6H% zrgN?;Q&eRmv*0UHg`)$gDgnuYfYMkj$Lg_ksa87K7*h5+S$F4Zr_;}apa5mDcx7yC zV#|@f@{Xr(jK}AJxH9ngV2L>YL?!?Sk2hQ#uf3tN6c%*qKrJ=6H@wk;x=+&hU^%85 z6sv;pb9bgb-k5BRV^JS`A6Dg7{P|+1Jvb`BZILMKg%v4m25uiFxp)ETsU&Vwk=VEm zHqg;BHf}!==@q#BBzzLMEuIF4+a97*r=VhZ5?Y|Uf08A}7GWMs@^UaIG&|~=9pb49 zcDOm1HY-M&FGbJeFqju>l!GDn?7%OnQ};!@B#PjH7ZQn$J$R|se2sK?Yy8-*1Co85@&21PdM!{ic5o?h(bCs5hs&J96f4ooK-RYIN~* ztqXgv2|ml9F1A7=;63C!B~s&X(*mmgX~ijsdv-QoZ^jNy?`MC5a7x=P8MJvex<;BM zc3^LU{&*%NV+Zzy&{z`N?yH#~V6}cDR&Z?e=57}+?5cHIbGJ8VQ8gA_0{`F+?B=G} zeU0)&J*TFu2zZMaTB2eKX;8$VY(fK;Yt0}AJ4*}fNkivF+5~966SP;(fv3A7H0Hn| zKvw1ZcP|0%^+%wd=<=20O^vZ`CgbS=>T*e{ic6h(#^h+RRbv9!e^fi~({u}m1Yhx;y&|LOYd;(%V3jvp}~H>dp$J+M?qATYkem)#$V|R$mFx$v#hXheN8!!b>PZKn%7%$# zKRO`EHt*NdV6mK94)ZDxo{3<^`d(Xvkw;c}^5hJdHdcDkj(TsZJpnb1rhmXhy*s|OQ-`BGt?t|%bLI;5gt&%8p88n(D0-hq8m1-qbLtQM(G{ZhXE|Wu zOSNyl@ERD~3UILFZ2SFHISfHd*5*I@EoRca;nOBb_x}wq0SBFQ&1>T+rIz&9(qSKV zg9-C=y8DLBIF6yH%9h4rFawmTlLDwJlYW5&3`_#6EeWiqV|_%xSosp*9*DU(fGS3e zwwPXEx)U+%j}M@VqZjTZ9ZG7}3{FEd?5R0=9UXN&VAO04an|e^sf3P=|1UJ2B8Hc5 z$M9AZLs1qVn`Ni1~ytEAGS`iHy2 z1#EZ1A_f*qVSWq6YOVo`hecLHmrxV6Csu#*2s+-JhYN~sW5*2KPB{S(EO$Vybs+Dj z#6H{^FjLa(gS|YSckY~&-^&R*z&q%pe>F7Os83I9orc>KsduHFq!Ibze&WUKcT{6| z-i*H3Uv`!9;HbkMe@f)`7lhDaUPy-A-i^%(bM#Jp5;+=)a-*AMGGbeMVmGB-Gr|da zoNeyh+d+;lFoB%PgJm)1x>}0vm!|pMZvWK{_>4K1Mhm6pOk?H}O_M zMe`l-Kg0LeLK$hkhkn!FUn*4uSY4;gCf^VqejmHjwyi>ydjK0wQMr#(qV;eb9Xn93 zZRmRf6~SdE%6%%?o7K6{42Nx)PYCv?y84{2IQ7 zX)5-h7g|de{LUviJ7}J8Sv2LYG!C5hH|AUaq*)%5N6p31XjzsbhLe0|>O|U>5u!ex)<@(tS}H@Fo{~OLV;3iz%%sBgGdb~J+1DV$zj(j_YQCcVA5|l3)pv;ycTxvd;~WVAizqQx zg^iKijRh}N10bGd{2@X4F5ifii3GRZ?)q=t*CW9(Gj-0C9S9yND!N!=PU6wgNehY4 zsdr;%{Vb1vq8pXj)cRv0=NGz+*E7~f0DXOxi;rh?t4xox7 z3~NOp2q+z?_emfpQvZv9vGOIrozA}xpo%e_i|K{4dKlUPj#CB8Yja(dJxME#)cZ6f zCsKbxz^K_8;_;U`WtpXo_BE6?Kb??&lFj;DP(WVLC~3@-C7I$!HJ^ieu6>l>fn#n2 zhx$uQk1;0-Am1ha!$kptOJh@Ub(KVvHf8I9@KENfm1weglh5{jVe{q?XKgW;vv-p+ zF6|vUlb{KDHrTzJDO5JGcQXS|bnhl!#l%}ThdF~y+qp63hFr~06HoxxwfN4>g-;MG zQL%9|q4#K_ZBSTvB7#zLkoeVT&CK?U4IFudP44non>nRhBh&Q8il(U<#=+J7d|RYR zAGQ<=Kq)e@4vq(3-!U^)>o)9cEV<`EqA)4j z5Fg1PAV5Jrq=$W<7&fN~6P`Ic8O@Jkr$&$-4R^-&g%Zez;Vol6_F*T3Fw5TA_!_oa zfzzy}Qo<=kk9Tor6Dl_)%o7Ce%I}{CMeKvnFwdni#oGJ|{Jh}iOY=uKhSFkPv^t`4 z#Se&${KKGl#TKmCQz3$NmTm{N2Bd}iL&JMWum|H9N(**j&T{WzgW{ADtK9xvMRf_k z^BD;V0sBP{-g1Yff%(5W$_I!6;@8uiMkKNP^BWFw9G^tNY|wUH)FV(vy7z9l!(YN*#@BTYOFW+SZ>FX(|i$qVCD zpH~Z1y~n&FNiAf6s2SDPtPoFCutJoF*b{q-=a0)AJbkjH(Te0*(A>k7aH1r)It!L) z!xTT!eClRmMTIavZ+0}&?TlOdh=5?LBm7t#Moab=uYq(RyopktQ5$aWsBf=9Q7$!GLvSv2--NU+?xBEqTKeu36M}#gM2N zsSZ^^Axiq9_`S6Yx0h%j26zmmpjk-cA|7WrD`t~a@fk}gX6u7o&qLsvNQE`F+NTcrYpeO!`q2tF!lrlEQrF-4!WCM zUuebOGnp>fmll7||JA9*6qcx6R;v!)a-#8D*kVyUd@Ww&C^n^^AetyXh0oM0(P#uC zcX|@zsj0Za6ue`gXgoDXn)d8np&N_ek<-`soG|iTs2kORQ!;^hqm72P5VaucR)V)#%AgrltI~oJ_P+}@dvb2@OJA>5PwWF{{C#m|r8BXIpkZG4F?eFH#4!|`*e2iYiJi%I z@5Ijk)de`QgLRqcV^(LSrv0z0n)U%yyi$YyRiRWQyZE?#@b2Gctq7A{{Pm&<#_EYv ztKzC^=UcLFx&j;KtefnLoL88|DWpAx>!N$L7DN>wOwdCmjyE`=cE!x@xH>1+1eQ?< zcxNbH_*gN7%3CM%V!T?eCM7MdhlY7pOc}yNBT+DWS|dr}3bLRl-w+<&QY{Y?&3qO% zTt+j^iwphuCoHrZL%y@3VTGboUs7KTo?a$&B>;C5jeSXI6N$#6z$($$05C{0p=h9s zMwkK`PBNirG}hM4tV}4e+E_k0+Y-T4e^CK^PbL6;9<@*8LW!rrBmmjmfTH10k-UEt znBz4NtA<3CHRvgOZ%V@#u^JJ)C~{+}xGfEDiYk6v+WFT21=)9%)jGY#WNp0H9o?Xw z)TL>$C$CDSFTtj0&f_;w2p%uqwkQ2F*kr^6IEB=Ifc=`u9?N6WDSbc8pwD9qN?n`w zJ?M`IYINgRtc8o-%4!~k4VzW?sn7)#nK5(oZc5XFf&|gRGrpiU>YZXnnekI%!bda}t26gPs z4dTV{O5A`91B*|HtZ(8ohm#ODil@RIwp4oP{lBGiYiBn zhK%i%gib_I;>A~qc;68~@}9|VJ0aVE&1L4cy;Z1{#}@JRljD&)Ge1dS?g^@#1m@*2 z%*S&vWv0R_@wZBp_z4l^mjgt}C?NJXl6dY+eIS4;#!OXIacAn!0;polR7I6DQ}L39 z7?HdunPm(SUnS!GLjcK~naV9w^--WFa}NF&yx?Eqvo){MIT+TMCowr6(5udU9nQWG zQ7>_l>ky|*Zkum5KZ%qi_s;~ciW^4Lwj`&zs`jAn3=D620gh95s8&~ zujh2&3IB{QL&RrAd2$(|;S5R_>uhX52iw5EC|*0}IQKHdn`_&~M>kw_@%8cC&Abrt zd?Z=-O+&^uJogVbE<|*?abkIo#-`0!-eRDNT8T?CdiTI#sW9Hf(4T*jr`jK)g(Qsk zcxa3t#uGXs?nD%N6D`F?l*pV=-8@*#Nfkyl;;m}cv`9iRSjstlk~!&W=yv zy@##Y9WxMR>~w0oyQ?9cxC0;e>aA|O1AmTB)yHp`X~RV)@JGEjK00)%+JF~=?&KcRq00psA8;26;(M4PbWn5g#fBj z9Y4G|a-zKh?o^&L4?x-rPb46#s3`h-#==u94;0)dha2Tson=eL0Rks(lWYp)YNylB z9Y7;*dDO&VO^u1sh|_=l12(AbLSZnH^-w>FZp(SD3T-xj0xdXeBW*x74N1rHPI!wr zfxfko;~gG@Sq<8sP^d3%WMq$l2bMR7Dq-JuM$ z%=9L(RgN}Dty6`2R@8dEPGj3_ukO#?S=I#^iQ+xW@k!+Fh^H!Ycg{m*h*UVO8wf4~ zf>Q`n4j4``5ISf$HNvkhoSuj>B5>-&W>3Ob^vbJ{s+WP&pMHPyh?ID7*xc^#rKxEyJ~C5)IH6i-kIvjM*+ia1LsFJzNaC9Qar#GMiz z9V&U$Aw89ZU&?R`$Top(bF_yIzkQ@v!0(IkNx-jo8XWw3h|Xeo;*rpBw`7SC6VGEw zUMay>Yj(UwvqL;p!48oghTezgl4}9(ez)l&*c*t zgAf5@Ua;X|$1cx4+ zqLR6JX~gf&eVgFlS6wz~8{`pbnJl&xsWkr%N$_T|4JGr6BER_s8PfMdh7_L3mOrF@ zDUbd0F- znQW&7kjzLMrrfD`~W%Y_-P*h>O9A zje@1@+4#f&su;6TQN^8&69H5)W}~9YnTB-4fOBsgt-W-0t6WZg&kNU;4)sR@ZJM$h?di*oa zR>Nl}gk(5!KmQ5+7 zKD|0G)`oJXpf>WB$xd+cJE$#YQrvs-19SG-NpX*Zq`2AL2U8gBX{VE$KGvbG2NEJqQ{~Rq<7V{j- zo3Y`pM3aOusU4JIOv6}u1z+$+l;0s&L{#^`@kvB=#Z#qW%%s3F_Il98g_>(I#Ofhk6I zRP%7`&cu%unr6BqcVq@#g8-02p})!iB!b5H0D|tYS^6N|+e!FkV}?;u;AE+OC|uAn zad>4}tP;d3Wr^ROD0DKUseSXEAa2?9GFN^EeGdhyD$i{wQ1T#QUUtcYUuy~hTVxpCK;GFxU}}? zhZ-`rwGw^SK21h(2IFmF0Q)Yh@(f^^ZLJi^G+%@yNK*-B(Jsz#5S?mttoD~=Xs-?# zTKM)>{?P30ty2q`jd;Xv&4wlT`}k|8Tm$`9sD}KAFzGM&OyX>Fy$hP>Ij_#NPPQ1{ zE*f(V#IMkHH|B+VB7On()}5W1X~PYh-5s#tefn&> zSMScOF&)S_oTi}DLUAly18fUffTB*`7DKJ9OKf-w_Zomw8h6~7|&D*2dj>&yUd zF?4Gbng>MY+N(zeP{q(KMU|sl!^4zki{Jyot<3>+mDepvZl$^v)|h95FW+t1!yA0s zQ%%ZIycUdH&IVt~Fti`*@T(5(RkFdC(3+H^Kw{+v-%Y4+_-DMqhtCSkk{ofv{gr?` zg$-!i3=`0oBkpeS9pi5B$#_Yz?Yrk>%n&E!dZ@8|XLaIi&bHBAyE`U^6QV%}HUPO-zV?Pxl(80MHlvW=7)IZt-ns9}#h2P*tJ_7%|QK*RuBH@hzRE%k7fQKW6H2&nLo*B%mXw{Ml2I)^-hM= zMY*#)O=6i3xU>$gI!&T&%#eDlH|!F#NsrWfPfyM_-X;e1e_SSM_4f$0OcXOkCe1$} z3En8?@`ORA8a^E{`~ncPW4^H|ZC6VY60S=*RPZoFV9c{6@VMhwg^2z%BJmObal z5piP%j}4%T5i?L!*)fA+G0rCj&{jTfAW7!lo(#V7nTjvL^!qCANk7=R-eT;C=j$ch`B?#2yn9&b-i z!;x~xBj}D|eMHD6n1TKEVv&T~aR?p+b0P_+7?FhBZk^b|9oUr#s>>9mG`MhQ21Q;M z;UKIIxo8F|3@xA8tyAwZmSTUU(~Mq*GTY{9In@cIno5ETZ-B=5!3Cj5BDf%QO9U5= z@`!a0mcC4!xROq$RC`o4p118Ro8ODNVJ@3*!wTp>*mUY0oi}k2BK3?xaxkM{4v6pBd-oyt9qY8Pdsk(2AWF9PWr1m+QQhD;AtTTvP z{UfV9wULq;6)!VXAx+5YTAh;&75`#XBom}171ALJ8TVhm&n0!yafsQ>%jsH4S{N}R z9Ck`dvCN7G_*0|IBJNvmck@F^BIU_mU@l7d-@F4b^;vTx%{$@$kj;w=$UT@g zk=T5vYGQvs)rq;#Q=gHUxslA5LNl`r>ORWtZXevHrEE50^aF?86#g`?LZ0nIuzQfj zo*djw8Im7&*TPr_iMtKtrNG^%!;^`-YI4ND>rOQXc@4Qp>{*A6Yn0<4?}-X|#iWf3 z__e_fvV2z4FvnL(8Iu;Nv(|ef z40e#d%8!wm!dLkfJej^qY(HXWW+^K+}eW|W;EvWAsCsJNUL|& zq*_47he$Fj&vI$)ziyxP^Mw{CzQ}hi-N??Z zK|5l&AqTrba2^!?GY_pEU{1wY_hmvH{fdllTgdpr4~plH&koBys;p7btgzP*M<*={ zGZpjCFdWXJBL0bPR4yv?$Aq^x@_Eb2#_U1!5SZeYQNAsJDn{W}MHSb0&IM4#FrJDk zTb>8`1fP9X%@Sddh^*flKz~{;m6`fvUj63QRNmi!*sN=7JoP!XuORZfWC^jk&B~2S zZijo5N6D_GGhpGhG~?_e0qkHXnW8FNO36knk<=FgNaIM#s<&JCXiL`3LmvW~jf?z> zi%Huu2?PtTqhfj>fER2r`IZrk_=%jpzJ}7I+i?B6(m;1OAda9`ZG=l#;+9RNkqi(kz_>V z;n;xo>@)Un+=IkNxe3A3u#72|{CfnFtNXRqRhGT#A8aK5k}jM?-xIM}Gwi$s-=~xL zq>Qe;u4;)a-{YY_-aMk}XF^@`bZCs9;>0{z-ALs{CE_jh z)NqrV#nz!Rn8B_?@dK@xFd^);-cvS2s8hIOS)Z=&fD?~0acK8UJ&IjpD{rXSPYC*M zBxKO};Zf4mwXHqic_rUGS!{VYEbqk4^+F=*{`Q@X`YyE6B)2GtGMRd8* z>kf^#J3#qNTV6*$*_eil{aTPHjyd7b7SxEAKgLqg^&4lV8{>^0e4U;k{(l^d0ys!! z>eU09sm-gjX;Syq=S_$Hb(e|);S-JS%yeycJO^e#i(xV(Q$c7olsMQ1B@fyyI7ZNe zS9|TK(TirgSRNC0FjR8*P_KQZ`1!`iST=3IeGwMd2G8Q<5>Xr$4<=QAL&8=@3d3ax zJ2Jl#lJ?Ij7%j$MjVAr2M!D&*DcUfi+!w``(CTvpP2IX{I@Ej_{X4~j+e`BcAue&@k{C$t1&pDHn;NCrc8FhEpB)Hx9`)jVpA=W$f+G!T%o0> z`EG{@-B;XW$V;#p-GZz&DLx`HdyUIPy|nWAJ&XnNE1`Mt>9|La?+Kuaar9VGBA!RZ)Uyhv88w9^= z(tUx46fsNoxm4>8xfN&tr5z(O`g(wj(uQp=1M->#A zHA|ieLZ(|?eG^>c3>%&LXQO#arj0SRq+Fkc-I>ei;sxqfT`Zka;f7A5&(mmucUps^ zuhfyXJW|H*$mBc#_>quGoga=(a+ccj4*aF)RuFywTE685Vkx!F8)?47`^|gkH~pb2 zYv|rV;)7KV*ZhKrf@*ds9agzVVr`s}lxWbxi`cuNYT88if2A)i`r(wfoCfXGnq|G;C7iuzL zlw!KQy$i+j+O5e3JYY}*r_?HSltf4I5WUomFw~c>ymi9WPPJSW5o@85ZJ`SRf=M(I z1+%9$a({K)2X^DFH4XWO@bFKo z->FZ=QQ*1Tlbs`L#XxCmE}veo;04WDNTF(?wq47I6dL7O zi9!cp#ogLUQ^$#VECCHCXR@g?Z7c3V@5mve6ByIaJ(G=Z$(-qL;*-dk7Ee_q2_K3p z0i0`k?K7Yx;q#gGPXsXNaO%T3;Z$!O6fs!6?6HRZUYJitCZcvQN1FH1Z~7x-#i_=H zky9g==~~!j(rGJhxU^USl3$~|J@k4Yrc8+R=WciXH|^UYQX%RjYGemTD=$Kl!lLFM zk!{|<)gc*LVP#Tim6J|+N`Br!H?b8Wb>G=UA~RAIo}bq&6r36Y`eCKwBzxxM;hh{X zY(|2YqAFV&i(x|3W!1w2s45XQ6a8ez*yN5;GnP*uTFxN`Ezvd z2QBsaI1#-QR*a?oD00hF{vXIC!grRj#Pd2ugO}W7cf!MjDqQhqkA@= zfLIFf>4Xy?z$yZjIz~d$2=%8#6t@!ssJG|wo>IY5i6U8_-i8f}^=YED2y2Bylo!aT z$0S~q3$c=J9E6OsJ2KUkhDpjbMfmmVYWbDKL|zFE2dzSrB_y)kyO7F~S`wxE6VU`C zC{7|DMBm6agohufmWPSXy&oGcqjM`z=d4vpw#Sp=fBtPn!!!L)RwP8yWJW*`fHEQ= zpNFquYKqvneY^v|^DVD(qD8JZ_`{6GIM&8wP4nB(sBrlT1c?Mmp`5W!RAh0+aW*&s z`_Bq-aQLCDZ(<5?CRAby0tS*qlPJ1Ta0zHQi6&9M$DZ<8(IlZPxzQwiOGcB9eHJ{4 zXp(rESJ9;P+dJ*qnTvJ@=jWZp2`H(~2AP~UO}ylIbkkt7w~9Zu;u^s^k&YoInX;EN zm`jjZ^@+F(z3=44rIy7*C3vSlC0KVB>d&5wPK~+U_205@N2fG1b#%xMP@SAFVeRkP zX?@2!zfFO7`>g0n>qokEfsoF(MBtBeC7_p}K9kPK{(B5G4^Zs{ht^UW7p|pYm@NTR zF+vlHD(*?($pEStCxI1Jwsb3T@@@vkeJ5I(WY=CKwAE)mvm5hd*QOw4 za|7~L!;qa_`|!NtHa-s`XPI=c^E(14Ukwm=8b^GV#!~JvuA5Xk+Ww^y!c_~OB(9w= z*1aFsK0Nj@(G?ku{hyrBcFMrCU*XKM(}1Oe3~m1wby9@37u@WIwzVf5r{Nx%Hee`& zt)!Qn?KUQ$jE}A+$`6iD@c{R>E92{LBf;WryQ4PTh+D(D_;?F0<}yyi;cYxy*zQb- z*dpfXq63IoSR%+cBtzmOmRGpSiiz)u4vA%04!mcsEwZA3`b6Fj7UPiBiOJA{U$8Ig_5=1(BGKMZO^^}+5eK83|%-| zfJaS*9WgJcvURN5*2QYGnkI=5)>SKnG;LfewegYAQ^`#Y6l{1T)6xh<)~SR6pe2LJ zN`4CIru3{&l>JHAuozkbm?_Ghq{`TO`jidPR0FWE1NX&`*QN~|R4N_;S|UKIy0CzR z_?Mau(M+ekvjG>p;k2-9f`y5L?1<>}4b}2G*_WGwhD)k2iYr`&MaDF0EK5(x?i)ce z@(tnP3##Q|qOZ@xhRf)yyF`kIlpQK?e@6!Vx{3yDF0EKQbuNA8-W2-Q8M}6`g0F)# zGg0nWgf@}vG@)$wv~n-Ks@CY%b%b7ST*e;~34az@$P2$`xyXr1e+nBeqte%2+5+R+ znAlX`{pe1o-ND0HjY(LTKrIw$ZDT7dFZR-Bv3AsYPynXZ+8vwYA@#mq%xD`t;*UJo zr?XaC{`iampxoX8`qV<%L=*_i%&F=CE9oQ-LmH~D@Cc7MbYk$gie!Fi}8Joqbf zHsWlzyZ$}<_UJ|?>sFLmp&Qoi36UC~6M2rQ7p&5wIxh?mO4>M0w{K7GqTePY;$~yy?4rLuVAza3Tt!v( z(%9Wae^&ri9AQ`+jn(X;`y`OFi~fm#v9cvlYT74Tn)!2d?{8@y?Q?wc3Jj$TP6L|5 zzcG;7Ah$KYk6IzNHGd3G_K6+hX2n~Z$NC1Iw!LXsRv8~ZgQy`OZ}IKTt?B1?x-wcI z+zQ;y+|}q!MZ?<57#2k)c1^XrDz*y|-cF<59a6!PUpet4E?3tyD$eP0Zg2-jRTi8pAViC1P z*szGGCDR0*QELa!zp1fZYh47(txhyDQJ<_qsUo;WN)%WbUIk08HPHrjph!-QU9bTH z(X{Dl6-|re_MhDEgWq*wpQ8iijdsj-dqbiFJu}=AM~2r3S4n89fEe;ScFzPOHWEI8B%yA}2)OJOjsI z1O*WpGJ^7o^ES6o2!vUVR31AhUMY&a-k?qD!S=MFgu7o8m45P|hVjHwB5!VlpZ|aM zz64IPqR4xC?kR>tE&&mrh;$G3R1b$&!vHhG=|F=x=qN%{-CZ+XZ@R0Rs_Gef1w5CX z!NPT=Sy>hDTUWeKK6TyCd&N~h6>r5G#A9V$FZBCIWWJX#-c^;aUiC08^P6AR>vv>E zMnpzNL`Fs?`hulq>Rv{D=$hnx{ttRe_we79(n*jSKq_ARyDCnOX6oiKu<_(p8%<>@v~i7im3w15)ZAT4$dIW}cbpFdM8&Te$mdPu457y`l7 z@5+}lW*zq(%#s<1Yq*+-yU<)MLJ`FDD4qx$-jOd34R?Q@D(;56bJ`xndwN6WTnShMBG= zxNkE#Z153Tqot9Mizvv@5wk`s?Oo{r$WXCaqm@pV@Q_biqdg0VX`hOY-coC{>z<1% zUZdr!-mKAfg$sFhn!-ikfVD&}=rqe_e|P0J?I5IW1)T=$8mc}+RnmX zmwA6|nVp#`Q_74%r&ugrKIpXDB^7j-F8ndzPa{4|u)18^{i~xXl_g1Fi~XwvYvKru zwFS+3pBC!o81Sb=VQszU0k<|EX3%-F5V?>?fj6VbYUh0J<|yzO+PDn@!C!@?qrd}s zH(N1*qroF1qmP9S{k$yQ%YG7g`|gF~EuOQt<&x*~8gRqm9ft)$yPy(D7Zl!YUNG-_ zl`361_&`wS7JKU0oFzVw>fw8^%^>i`3{Y9Dm};nOCGdMQK=tJfw2BzFa;=5tC-H)s zcQsUDn&x8ZeJTU!aX<&nnVe!D+MYrE3BVr5Lv7+7zL}xR7CfY(vb8IJmH{doLP+m& zi>=7CP1BjN-zMha&l&n@jr}BR#3Bey4Z5U?;xHdkdranl7b{K;OYsv~Dwij;X3H9F zM3WVoswcdoF?_3ob$PET8806RDSy=Sk`>V;-O&Pxhokzq5!xnC%s>XHEO<$ zmjNmZDX*alOZi7xaYee+SxR-u^`G-HbSjSd?d3ni(v<`{D}lS($p2?%=&}WOX{gdE zv5begB!!y+uI@;&TE~4WVD<(ruFKHpylD~j@wPHRWkZSF=i;Q1FeoR2zCp=xug=g< zd+giF*>_}s%0kX2;A#o{MiN_mN6ePDXMoHeUlE(AjYjpky#rMn-nw%^pt9wypJaf_ zp10CvzdSKgFxY(=!0STrJSN?5%m*{kG))eM`JPMj9Uf<6G;wNfpIW zsI9S(t+Ip-7VUjsdp&sDeF1EwHrc0Qy5T!SBlsFYeYuBeBkq$AfhAy7jP|L-qV(tW z^X|ts>TB)7dEW;7&5QXBdSCfbl~3nly5X+?z((pk=K9EuC2Tt%c7|u>hIs{O_{!Rt zTOMy->CIm_u4)O8xkA4vC;c;1##A`)vUPBBBkpI=M!*~FK8Y$0`hS-zuw?TWq%@yk zal+VLj_xd;nVY9GmDh5o=gVo%vrhvyh3NCpo?WPwWWu0f<31IYnWNuY%M>Im8AEBm zca`eZ`9137H)fHY#0$(e4t2)Ejpmg5m*FXK%09FjqVP-XWVbw|yKEBnOri=gIM&mR z;NS>njzJLB1m-2=P@{;eU6TlocFHA$P-AN=j)tAV>9FN0PKTv*F-=+;q-+K{i%he$ zqg?ee%V?)bK}USytwwFSOsQqY%Z&yiu9LPR>=g)vu22(5V&?IMVZuO48!jz=l5MC3ebHvI za6ZoMZh+q#GgGBGRbfdcPKq3vjL5{oI5Ny3TNpszS*|zn9eP@60zTF2i}?)jv(C{F zNZaQ@ly!tMF&?k$(Rg&PrHWa1(Ao7O4F5dLErFTXY)-jp$)ZKq&JVaZ;}@!SN{Di6 z1q3GT!J5Au@4p=tw$4#ZO4;n4fi{-HxuLZ6PN|97#%7yk1fL9Beyoy_ay&?EngrQ@ zrC|9;8i6j=`T3B+4saOb53{n+tHuDq!Mv z$r-JC#Z%7*H=TXLbsZPo$Y0=7bm}iwVsDyH&H{II^XSDIG--Ws@+26J2jC2}A zy}7^6096+xXuGo76$RQjOqRZ20VohLwNvJmh@Zp6g0+=ik#=qYCGAXlmykUk@EPIlB0(M0 zWW&@OMrX-n*@iT3Jat3SlWJY7>)OO@_vj4F7B{dW2BE>46%2V6a z2+?5*1sE;Zja+S3w#|_xK`*FH%#l}z3x&1LrEG7|v&&HZ<%m{pG|Qz4vUnmNs5byy z044?{_HF2x4y>@sPMGtkS~gasz96d?DnnL1-dfGQi)*$R`n1w4PwQ`SiCpcl3SmQe zC>l~A&6Fy2HWMS=@CV&MWH|5KJB08YgUTOEBsQ&icV7gZ9}t61soev%eOK7~T7aW7pOQGPb-fvx1cP3^kQ z4TM9sds($g@ZY$-@v@!i@u9VgO}UQYUwf>re~p{$)V1dOb}Za#kBb;tUN6_4?p%k( zmMQ3-SiNZ!OJn23^GV-&YNfo(6I&4%Tx*#ES&S-uPYj2T+Yg6s9B{Wsn`^!40l%H8 zsFCUK>sbuLIAAff79(w#hw9E<$PrV&kCwxET*ctYy@PP)gAh*ecvO2X2`^R~w>Jyj zRfequi+m?aGoQt6w1N&jaz`d}d)IEdZ=fr7#&Cp2Cc$5O8twHMk=Ehya;05*znHH1 zB#+D&9{^JAoJ_4_(gpB*&;jKx`Frp^r}x_rS8;wOE!e!|en-T2Ixe+eU`(lj_aVXT zDUPS8srne5Y>%8wEHJ!9O7<6f=_^Qq4@4Jt7|LE zy`>fuUPV{DpuktTE-3g)QIBlhGqh7ayQzChx~5f(s7lmgFD>0uVq3(*L!6Iv<3vk$Yss z$PIHy8yk0}|GwaluSN;x4{aMYIyh6M1f3iaHgSEZy0&n?gr3+C zdD70njp>&RU*x^Zyy@le3=OimT|cWjm5D4h^4d zri#1a6EpjJ3S+uqYu*=3GM-ZhgW7_XU2EV9nzb}}q?om%c$|p?4HG{zYZZoxiH5l_ zab%XZF>9qPm7**|#m20a^J|z{)6CkdfSC4XExo18+LzK5o3(tkPnor6H*4N*nhws9 z3~M`j15TEG5~kf=nz-x35Eo6m+R#-Skc!w@RW5F;m!`|Sb^IK<@*J|!HC>$B?xD?l zNv$6Q9|%eHPGXXUvwPnjZLan92fp1KM5}Ll_T2i7L6-YbLZA;q*!n&Cx(?W;jRCxh zw&y866P)seDCvBI$VRyf&S@zY@Wax2(zOx%S#-v3s!K6~+tX?98^O^S{QytP?b%wb ze4QU^5Ys=O@{zglO~7m~P2t}X8?q_tG7_I zzMQl(i#MtLqD78&on`kH*PYAl)KQL)_&5i!S!FkM+L2Dz=gb3Hh< zeY>+fHfS2-^9xHem#ejRo!ay)Iwge91!-4H7(Rceb<}gQ$^+Q*G=gB#6mw*6ZI8ZEhcAug#EQZrE)x;$c1?R`LB#;mq8}N84dm46&N`eKZ~SLE#F# zR~4s39}9;0c$9*^5u3m;His|Vj_QHjNP34hi9hbh0F_002Mv{N;*W1tXN0_1yz!IY>}5$4c?@R;^-9doSH)%KFBPdB!1H?OUTO_GgG@CAW4wuG~eWD zM!6_9=>sF~xPT0VkHbvRC=L46lf@MEw|g;l7T}MY`Pzu7XJ+WO1;1;k(y0+mY~*Hu z%7z#r*_2OWqa+HnNhf|?hQ8WUz*hHYWq`^;_vnZ(+MKfXvJ4=0!6eoPO?EwnB{5W+ zDeN5?@M6tSUClgZYi9dtV(+in9Tm2pi=G8kZWp~8(>>qXiD2+mm>zq%WOoPg1uxls z4OekXb^$BjTd_Mjx$|*xtbr+Bt@pf^=6v5lfC;MeY~WX3T&^SI*R(72k+C+kx3l-n2}Ah18AfTG^a?Ky zy00->mLkEoL`xt+I2X%xoalGkY?U(?Aj@=fwq6BJMYdiq5pWCCqg zB3-aTW-h3#b+!O)$nQKmh5X+@CSftm=RyeJo$x>MH8 zQu6#5Nv&DykIWY~cDR=Qn;|UJLRqBFh+xTMr~N}`N{E2O6k*mUczHwe$wMzrcuUZK zW4`n^%id>D#k}lokV3;Qv=hJ8G>J$9{c%WXC>GA9vlnpbOwVEpL)LlZo~J~QrRq3O zWh$?IrHX?ZDoxTqw$*FXN;HpQai%ohbkr*w463k{V|0)3P~E%G@c7<4APA<|k}p&E zp;Lj0x1fZ=#aV@dS&t`1%f22T;!q9NX#xS@+P5O>K_HV+U^2cj5cHjn3}S>txaIPacVWtJL`UD7 zQ%8f2WxHsn;5eEOMmv!oASK%Aoy-Rr)Dgqb|C+T5!_Y*}g=XmGmy{|viA<_9-c3Q> zZ|6i^t;iWR{svXt4I4lG{3_BpS0<$5ady3qB*0^7xAwJz&9^mgoNVwr!<4#Fyq;Z?<` z;Q&F3w6<(arJyT|C!)K#lQtC4RT$|(!zdT&k)b0dJC8KNLc^M(&B9i|NnKbJtng&1 zKoE8ChGYiHK#@2N{2(>XByutl%LI=~f3w1Lz$u+r`+yp+%T?;x%Gawd*4x^f{36CsN`#h>Hmcd>q7+eRS|u9_Uyx zi^^#VOk6V=aL>a#twUi7tflP`YbmF|+UeTF>{J;v6mA)Qi`NWB=`BaURdPj?krE)2 z7c16$3=WwJNm2JSy2nurkBVZibs&QQ%YSwpUUaAs-inU)3#%6#@j?m!1E~NkwzCyl z%Nw=X`Z#7E?!)I+sw33?1HYRWxnJO)SuH{T9%y&(z^xJYi(C%UjW6R;8=+t2yKiIa ze2uTa&gGq4euK+zqIADS#kWyx?sLDRe!h#J5%+ssexJ)9(1XS9>8Nh=GWRa}Ynl5) ze)JE@iQuZPQ~5+y?f~D7gXF!#V@JYNFPqRzryv%f7`CBgUcx{Qt=mh^RHAqk)J%CZa#sEMXT`P%E_DexP7>C7gMnb4|cm} z(&G(OEWyn^?y0!k<1VH5``pv`k9G9)L@G|=zfVTF+g(rBlh2?TW*OcdahIdS^6^Ui zTs!X;)X!@5bAbAJ2>%SYV>F;gsi;;^?4aUHGbrw$VkwQyJ}RC;uRIOKtb0h{(>?sz z9{vQd;>|t$>YiCXvyaa1ilMVnoI=HWsrV2TyUsyz4HfS@7sZFEIPW|Z z7gF(tC!u&N6(?*)F+{~}RJ@mpjTfLemx>cELNP?eZB)FMic>B|@kA;jj zuyZ-(9qr$DdB;D61-TSRH0vI|il^-()X!1)!CZc{`Z-4ZIO^wE^>dv1IUYaI6#D6B zkvo7N_XHHz!ewyDyj#R29gTZ3eq(3duyK0o##tP5(R8LLs-s+;Xz(d%I0o7&Ib&0$ z>JB`qmQQtNt8jhbI1I$x%vLK^I$AB{mhY-2VXnTLxZ5YDv>LLStL%fg4Ha9e*~_NN zJIhn^n-{m1va_eP;%OT$899IC-1*j0!p!{UA)|_a0rQg9PEI1iaHH3hsnO0UGJH;@ zJT;L6LAt3((BqC?(c|;o)5HA?>hMT$kRb&v6GuoPy%WlSHtWd;k_otu2atOaen#Aj z)gPDeA3j5ZnD;LRb+2ENFvi}L@Bk-P%O|as7nBgGh4p6XI5oEg9e(N4;b(LutmzEn zg6uuTqW45AZk;?dS(`2o)n}{Ka(!r5t-gbUW>rDju!^Cb;toJBF4nO@N9n#WW!=tk zFi7z%>YU%Ge--T_u;6lwSsnHk&nBjokwv_@Li>Pb$$y6r!b< z7lt#x^ODG)iTT(EvrKU#Q4k!&uFpb%^kOWekvW5t&5VWnqhrA}AT9@Bxu3B0q7A^- zVakVfsxmG;tjz<9>;Y3-uKe4RSBy00ONs*~cPYHZK;Ek6r2u;^$J-9xQzZc6oZuJG zNcCQ$gHCI^8v1WCs;3bMS((9^ucT$vE7MRf5ad{OXq5`VIylyJmQQG%oSUeZLW)Pe zRSPcLU_XL8iy1wWDrTndiz8kyxa{r3WydNKP?~{CRl7|k$05UC{J`y$cyt&SLr(fM`^bg|v-!cWGk9slHX50TJuyF|o z6<>Clx7}?+b?)*(X9S_qmpj++FY2N{#cu!TchNhlreM9OIQXYGHx0Po4Rz}PDR;dW zl|T(Y6zpEMXZHd3ZZz-SgCc%mA+lBRJM=zl#-(U;t-Z-TyqEviA#8dxd;96W8SRe0 z*pWEh|Cz9Hf9KfyRT}o(h7l_eA>p(H*jGUrr$&3p=pMHXxZz|4N2j%JJ_~PQ-!Jf) z_m*O1@kH?P4fd3XOqZ!uthkO8Vkqm5FUwsizvP!mnYq4BE>P}$>Z32dc+zS3Id>mCwk zf%^h?_h*1|V#JsKO)Pw4q3<nfBco!0L`^6%c!aT|bqf zulDR}%NYMJ161~m5iwS;2@UOQBwyT>0jl2P>em^dvd5M6Ao@!NupS_TC`p62NMDvw zM?B(2dwtr1mKrKsOZ4~*P+3@_8F6(=2B_?D6}Ci`q!t=L%nY(I18m*fp9+yl+#5Hz z+S;GlDoecvGv;Axg7Av zS<`LIo!JcCwwU!YLiPLwfhrT9{8I+d{s#Eu4H>%Kdp>#3fpDZOc3HCC%lkoFJaPj2@!o>keY+T5Ru@le06zz7JD{A5tEr~5euTN42&K( zv^9NAR)Nb2Kf&P0J)$KbEGh4uO=hj~)um}foJu$7inH}y(bHFp_PY+eH;G|xrHVNU z+Vq+1)=*kIlUXaYX;y5Cm)m7ER!#N{YAd?QUGA%ot>P^^qChTDocuC@7`xbW4WLP^ zA*mcf3&j*4xKu_;e7rJEkqR8YS}2?uh{DllD{`dUdOx0Gu;2v$g_rx+H_C{5K(uFL zO<|&pUA}W1^Eoiyyn0y0$Zo1to8_yUYu27l3n{||u5Sjrf}8Xb4wk0yx;2FYvayVg zR&lKK=%}-Py>sj+5-L`zqocJH97 zZB7o-L{+I{-(ami=cshk$nSy4OMO4vKxDsqe-`_DC@DB)oWAgatrsKix=Bemk(jhz zMpQNqZ8y`{fE!LqC4xbP%UV1URJt!;DpA@g#f85{#o#@TCt2(a$dxsEXl8%O8{rK~ zhA1CK<-sU15kSceMdKt_{bO=VHUm>j>JRz-TaJqDgniHtY?JWL-H-YZNTsC|F9bnH zLn}4b!0V)V;Zjb4ODPWTVwFv(=`Z>g@CwCcW)tY^$Xmt&O5{K2EQ1a0PgC zSEV@__-=+LMOb$IM#C&pmHn7t8x4E_ORr+~;zwu3XjrQl7}3Xq*t_x_CuWXppyI?i zk{)(HM=oPhN&%|xi9WVcTFbzVW}e)`eYB|}I8R!M%okA~Iun^1^P$Pd{Tfa0LS$Yh zMds^!g(eM9$J3-)vlj50+k(39?G@PXS~%*yzxUMrk6xiEE4zK8#{hNAZoH%^I4!!! z`SV@@`x8{0UDdV{A@@)px)LD+)vyQ&oyghuV!YscKBetrBPJsjNj#Ia77sd7{L>8~ z9S-O*L>+TkXTesF=oPp}qv8ePvqw@Nddp{z?-iO7_^hwZis4y3h9_q(yR=u}UV@4j zh|8WvedvbET8l3a3lH27!ehEucuHckkSC)r-0X2JGbRI$zaOW5JGZbMfq_x7I)&i+-tcrmWKU!Y<;39C8V@D!nTp?ON>bQHGT z(k+zlOki#GKPAh)3|5Qbrd3pNdv0nSW4w`DN{t=o=+j-15r~|V=8(@YvpqcZJ8xdj zxFh=5oUoGB<<&C&o(?D6W1aAIbhOW5+od&pPN9`6xjKJ}Ayq(@ykPu<(NR(_|>bjg^WOO{it-5$l_s|;#J zTol(smELg_5ZdJ&K>{=T91)VV8Z1&ojAomuc8eIMu!tU#=XLAEh}&?s2Tm#t1oYwb zuV$s(2pzC({k53aUXT-q>#01B^hYLy<%CYe-uhFd*gdi6Y^oumixWMHppb?-iPcXM zxver)ZUi$zA}pm`b~riYT4ahXL%Sc}QQBT!Q!Frk$I6qXofRz1VV$i}nXXKg>a=dA zLQ!;TS@n65vF@KQ4+_vr(VB+~lg;K#V|Zw2I~MF_#}NEAJ%o(#<*{0A2hNHqm+IpP z9Hn%XLt|65u_3Bg|4o<3qe-xN%eE@Y1)Xl<85Z@>ZpoP|O;0)0S1%o5k?!>CU>Lkp z;12llH9F9Zqu%`G!4g%yeU>t6sxAWsUX*CDaA|d_vP1Vzb$!=l1*hcd=u%+Wd$-{< zOFJl4Cl1ZMXu7<;vLLm0eiT&7L*7VPc2O+jsOLVXfqU+G>m^eF)q2|@z zf%UXZ$^o!gQB{=LHZ|u=%<{n;gbWq%N^wN`P<2ppJB~NzgX}qor~$lTiFR5?8;wz_ zbNUjAj*Er!tKb}@_8*@GhYa%lZJdpJeA{*%-lwn+Y~Y(3ug(IdAl>MJ;@%kA6$=|C zCNPp~IM01*ZqT86r)t}`m(iMLI?&5ex4d5KuBfwz8PgZ=C%n{5uM$~8hskqyo47ElD`74PpYCFsIdSwFFKKOdnsTf;Xrb*y8y3 z5NDc3fMvZl#NEX(L(ncFpz(m2TG0^%pRDbojv%DWIghi%778a79n?zMJBJ;K_aMK5 zuK_dIT9LCfWd=+?t+eBFKlx{Wv9J*gr^43;o#=ByE;+q8j%}ibigEVhB&xtNKViiW z6R3^32#cfFgX{RjbGT(5()+=v0DmkSj^uEFLcOwmk`A>7Z-f8v6)^?T&Kt@T{!lJD zTX3IZ@7AIxEN^_U(D-z@q+|sm@VEv-0@JiQmlVZ7wXxJv+(PukSZYp|aAbC=QC34q z;Ws9d!8?z;N{A~@&om($3nznkvt!d0jskSt+8D-MjWDPa0$(*-o~2$;KT8gszC$O4 z)wRS&KXBT21xc8*)sKVP?(~=Oike zF>sVW0Zd^#1f(3~0$7FQ5_q9ZN7|E&z>^B*7<3kbZyU)z8j{t19CdLu9e7ci!fY}z zS9H$ijS|#dYN4PHeg_kA<60}@dih}Z2|5&_Hp7!DgTx>3)kJw_sy3$vgU_r?T9&!G zDul$6#H9wY4`H16#v3_mC{YxVCqr45OFd>B;tKmau$QKS35r?V8wt3xtxUY=pn(9L z>mJ=NWU>dMc+aggpL!uwr9!bt(yBZRcJSC)3nWQWbrguAs<*|&6XvY1fDAN`dJ{nt zvlHoc6b0;WMHvVml)3d{xF{b~0);a1pc2R`Jml+xN}!SuQ;7OgyHOrg0y|Iwjgyl- zAh+#f@C2D#5Z?f$jSYCY4`rgadw@(?5 zh7Vfc=@xhw66a`7;>20+QkbN_D&)kwa+eeDX(K0E>ug;Oog*zLm-@q$aC?aoZXu`g z){h`f_k+HVeb)COhRW7Y=Rr(}!LTa}vy^mZ#lQ2QLyO$GsSYigWBl#k?2RK0AjYXB z#l+`w5^O2UFDImmiA%v*4|>_)tH|5SCI|54e|u;K#|Pb+VD~`>_oPdc2El?jHRZ6n zv-iVlD0NsJwRq8@2feHhdRfW29`&+H+2C}O61Cr<+^>O|)?wZ8?gJi7OwUp|gw zggNw+-ix=#3h}n_1=6o{*#fK$gqH@~-%+oFn^SuVg+Tc4dynw-3gP#mrAz@*8$hBU z%`zC7n^&NUP=J&+GQ&A_GSvQY%AUqy-!k`^YB7)?EiwFRKy77Q=`BPhoQXVn6Tj!a za1$Cl>Ln;z{?(1R+T*^6%YWqZ#a#XqmoMS+CMvZ;{mu>e+-z24@cE2gi6#mh&HYGV zKCBhtP@Hed8BmM62;vCDEtKmxs`W5&qo_Za@9?ZvKX%mZ{Ls`t>Na$WEu4nRAWW2+ zrBUPtnjNQzo`w#V8J(z%Hwh}_#X1X@@=(-4?oM|#P%uw-HKht(0f}BPhh(<$fi~ow#fBNZu;!}N+ zxjtW8NS>34e+>f?+Zl@4rUyMWrLrV=@nTz zll|D+_MHhId;6PlmOtJI|6d@fjGzi1sR&mV$zlX}B*9qERR|x^Gze1)i4yDvP|l8Y)|{{NfByS%_r~RhX6!iICqTYrD-r z1@omu?`t!3BrXeNaBE7+p}dc=&^o$18}F5h-E0Z_{tWoAAgqQeG6>on>-B##KxHuq zGUDpX8KAPqRr&^?n3IjZp8+fzmUeI0f}D7(5WdhvSZ}#G-%>zybvB+NL6VJTajaKH zf%eA?NVA}&hRXI>ua!3?tI`P?muqpXS4LbNo&hR*TxC1f>$nWCb$_gvLSz#6#tp8B z8DWloGeBiA2r}a8!!+r1`^M%-Zt(zh^+21ueBev(~WP% z`?)s*Y~5==3Xw_N8#lNzXg|thZp?V;llRn{0XIBrE~O8>$6EX0TSEI;K5wsRTMWy^ zs6K=Cb7%&rECj!X%2rq$n*l0|0idA@)3FD>pHnh)B#xUOaN5s0#csBQJud@3EC{Qi zvekZ`ngJ?{L68ww6B(eg$Cb7AQ_ldF4NLb#`%xrFnm_EttS#TSG9b-@mRg|MYCkW_ z0F{OIlTrA;IRjMoxXPyeygvhM-D^JzkxASeH@NJzpQF9i{DHgy*CzY;sqpZY9lzSc2~<`n2az?}+m9Ha{T=uRkgou2}Ia#R~nRR9oJi!vEnDC|d_7H{yN<5vhSNSoe0SI2bXwT!AH< z|7c3{32X7t$d`i^7SGJhw^q)~t>sQ9gn(}8*l<^=UY+0L&Qeq>v&c@mVzzOpGahagYTW@WlymSaNL@2eF0?#DJqx@LWTy}J*Y*lB0^N&Oirla)p zO(~y5Ac+$jZd@X-BM9Y%_ z|1j@Pco!*O<*|#D^$*@f>Pv;*?IJy% zMpq|#)KP(9XjH8t-R-p&B_eC1I@E3=K~RT^3A?>PFj&tusOzK61(<%nUTIJ-k2ag9 z2K7=@pFx9qO9rScG$;*KMh)r%8Gw7BXi%!>3DPXqXiU+d+Olk&4JKbjEfsV>}K)fPzBPw^pqv zmA9F7ks&-$V`6ctPVC_P=0+1}P^x*8S6!dmp-%UZx=iaWDbVu#pBubTN_>bZ(@Z+d zz6#^%J4I>Gepk?^BXJzd&ncS40g4m8C0goIvyf~R)+`{_BV)u`v-odj`DaAbYE-k>|D|EgA{x?qAiX1@X*cI~#R z+OlkV2HH(L+`DCS_s*PrGWx`xdKtvCm(kI5y!BfLH z1f&Ru4o<^r4AL)-&S+Mqacs_HtB)?KsG`7?qNOfp zbV<(ej1F-c;Z5rq{qG1~p3$F0S3INh)jl_)52)a>PUiH4RTou3ul)s~c+BX${t_ZY z&|~0zAy|4|Fj_|}-ObGY;%IY$nf>sXnf>5Pt2n#pG8KC`Nau zYfycL8U8&Ppt6|ZHB{*{d~9&%zhwZdi`m_Sq3czbjCA;FhVI(aA;Pn5@|FBB15_4T zX+~WACIeLVxJu{Qn0zIF%>b4S$7TuY>}a7-ks)CswpB*kO4&#|F9hDYRYv`VLOlV- zs-xZ{^MHLk(^uf3auUPEY&L| z90%IK^j}7J#W-|P1YL~pn5p3aPW(Y9qvD9$W&>w(J&nR{yf5JeD_7~$2|nl%ONyp0 zT2#cLcjo9Er{v65D>%K8PHxr5Px`*Fkczu6c0gzt$AiL_zJpkPPjQ3kBbFZ}TIy11 zmMj-mnxUyg#*nqryq@4?rTKKaVx^g{dZ#oe0G)<#v*swnH5Ez%F`eyDq5}oXv5jH9 zakGz(3w(6&RUYW@v)20hUXL=?7AsX)uhsGLCk#t^L0P0swwLik@6Lwm z+~vq-%Y8KO;jXjZIZb!HpZeaf0vP)9N@hAbinx#F=qQd8?>~Kwv-WhIj@LtRaf^uv z&M$vynOHOd{|OO}-Q+JVMVo6qH!lqOm_jfU9X5@L4|5^T(G{#3$C=6LQxA?ZmPZB^ zg&OyQm^YfyF8gCQ5yRQz0b?-iHV6biLu@#y>PJ;h>V0*j_~ZyD2fKY=765*)IQW0x z?ur-=*V_+=*oijc!#2s{o`)vvw5CX9W-m?q@$^SmY@KKwq|&JS(#V(F;SCv+R|vmW z-xj&<`pTRz)nUBofl^9t>25#j%etq*AAnb7Hnpe0g70VAiT=sGC0eh49fgf@%xnzQ zzTl7Oug^q%c7|(fe?hSM$szC)MY_5Kn=)EIPgnG(-p|xJG&-FPteKCjqy#1m)t4)% zB415NF@D9;Y(C`gAgy8bU(SZBb#3#4OC#}N8r8+e1CeEjqQ&#YS z!1qrC7+vH09RNu6?}t<|hhiG`B{%lRB*=a@-CJ--ePGX<|6stqHQ`A(e!I2C=orob z6i(>vYn?3!F(R{r*qq~==^P0UI|J_PrbV-@f~muMNvW2>2LgqC{}LRHU8C@|07#+m zexMK-W1VBMGa%<9dT3;TY&Cgm`*5hYOMoTWO}-=gcX+=2`;gziLr}4uW)Pe_Rmkyv z*fChXdSBePk8@sn1?D=;nGQoplcp)p>R~;Ao+ZlbL_MJW zS0`nd`UKOYHPMxlaBd9K+}yVa8v^kUu`}%zjMhQ zj_700b-&ThusdV6L9Tz&+_EPvdU~((?#%~9o zgtk*0o-dX;Ne64yhoEA+nNt(Wa3~RKp*eIv#i0&sT|z+;PXwo)oG%Uyr>>)lyWvzg zalJky>RU>{hrGS#<O%A!`+eSBX@)@M?x>;q|^imQFS4 z6vre>kwQ8+o zt)KM=o4LjG&Tl#DEiZErZ19r%a%5S8E^sUVC~-D{9wt>W?=NjwN9J zxh{_oCS#+0V&FEcpF7BW^7gSB z%9!9K{RFW~@jMW>pE0!uo#&cb2Eu(rqo`FH4jRy)5HZLZbKE2PKkeQZRJ_fY@Nn-G`CA;|tK?M31*qy1@*zU=Wj zG3ayeB@hzhbrxgA))VbFK_px|Kj7Ys-*lTeLO~Pa&>n=mm)8#)RT85yM1OcB}oHPmOhy1tqq^Je$J;yQt*7T1q_Ij-nWZ*e^^ zs5Q7IXHy;VoIjrH@ zt&QRD$uh-j){9Qz(ne`Jf+6)_a86V278{eN`wYdlNiP}@BI*%@I=}N$YfcbRY5oyE zQRUthJc_VKi@t%dVQ0omNG0s|ao_Ju&o+=AOXcBWpM_5|B(d-^dU1R`k+=Yb*{PQs zwb}YO$K%(=OFk=c1jGb|z0W{{k z9K4dB+yiA)Nb9SQdgRbpr8+cLYD^XikGg2XCC=I@4CH!w{fUFlE^L*do!{#pH@t2g z{_7W-&RDt8EN{bhou+@QGEttMsWp)%Pv4qxw$IE?m#0tfKk;$v)~)L=6lUg{laTk* z$km4kafju?bmi|L*Qe_1Ph3|VJh3>qu6QDn-IOQL{7Hi+51tbF2(xZ^s#u+!9>u<$ zW&_`?8$4;vVDbuCF@KXi6pGHQ5KdB_*l?T{RKB7Un4k34LMgdo)Q&GOImYYd zQWLcC6-C-M$XWv_i;!K=EM{s@AZYmnI%HLIf|o?ASU8(h46S8y&Mc@ODjya_aMqEs zw59?$Nlzipb7rt{u-Y8O7DH?!st?g`1=|ZXTd6-;J(+FRrlHG>LvqeJ;P}e+Dr!cW zQ=gMONJEVDH`X`7LeK9#3mw&=L^|s{k^>P%k_la@lM>6^HQ}>I)#(R$8$%}!`MPAk zoL|nfuM!GjxKgN~Qd|0`-Xrap1f(snUigN5dusH;*HXoysjF9dA+?p8Ug#*oyhM>(qhS7IQjQ+@`_w~#vJu?fN`q*HGFWgqg5H=McJEa&5fu`sA6 z*HX;f+rZxcsaYrsq$9A~0XhO)5-N)o7#0i(4FTewdDmg}Z>H3oM1p}rg9B&PbWyE2 zRhT8DP^fI?l(@Wx+ydB5Op`~gUP0OdxGS_;5%5fSiOtm$m8}ydkkW%G#y-whQb3Aw zyc4K~!Gz8OwFW9`NK011BFM<2q4RUCdrHr6#M;taU)V4)QQvh0Y3m=mrayaodd>kMr%&fxAe>Q}4?>mwFXjcISl%fn$e!3H>k`D$#utc{_pN7u zEzbwP!!DVE;FzgF_eTyA5*U-Eoe&UU?7C+Q^VlX%4~%aJ91>Fg1~W2U;2_@#(}Zl8 za&>2=UaL;S3>kLlJerA;c|JWiisx(KAK$`fC}`suBeQ~JCu3xT&r~42_#lN~qXZrg zISk40faEbeGgTTV1152BI#1P!TC}x800IXPsYV)%PnN3N%Z-8uO=Ax3BV#7PM#9LS zFylNd@*l*lvLy4sEv=4hJvS4xhJ?_I*e2Nu%`fpmB81=16hK>7(<%4892fZ&Rg zX(2-iiH##`kRqTdHon6If62u`Re4|qF|l@iDnq?iaZnq#Iwx zr4DWTD&M8pp%M3MeEoGU@8t3uTz(U!`zgL_EOt*v zb(@#DchO(V+#m9zA949(l)K$wJfD27`xE@({*;QJQSoys?)LB9Ls!3`;$A9#NySF` zaMJx1u16-17;%4%3vA3S;YS_cZ=v9X&mfij(;7lTq$=*VFanGbkbY zGQ2(FE=P%gj+OYicHS+hpVjK;0QK__{uywOqyc<56)&Keg6C545c=}~6tnIjf!Fr% zD|`4cj*X?L5sDt+k2zkFKjxfF6rAb42rtA%NV=glKzcbeaHNE5Evq!J_%y#;bM1|& zn8jMFnpdchH-fR8k&^w#3ldU7TxOpF@-L%am#ClvW?ep#mJT0t`OGppM8oB?Hz?_~ z%ek^Cc>$($Eu&>)X(ww!HDUnpGEEfe%upKTni`fCG&0(m#Al* z`nd={BkslOk4yLuKe7bS{B|)uzCMYMI}ZW&lDc}4R~#tg-4trfR-!(Ga0y+Bc`(D8 zkBR!cG+J@%#G%RBba@Dw$E)S~5cv{JNYxM}!QwxQ@Gw$h$ReEdntGU$ECQg9hiMcF zfTk+3`g{TZApBV-Ibig}1V6jcKKM#PB>4Gg8T>3;^gWK@ql=r=L@>@TmP$KQ07;-y zSCP+kv}daYAQ}!NoM#>uk5fOG8tSA}gq#Ac(`h`b3X~%lUKZu7gmVN(+A1dm{JS%=a7ZAG zfJ4V-%5?;^RGY@xz?{%+WrBm=7A3SVAQHx9THugbF@LMi%zcWPC2@MeK^%bo@C%q0 za66HNBrk4Y=pptzZX|ZdOFm*OGG%U3;0(w``9bpW!&k+N^p%PAYZ1T%_83LFi*jkY zG1{zgyvX`<;Ge@m&04$;M9vmI>9W%vMTe{oJ8ElY|LKFyX%pqf_$U_hM;kNnhYdUa zD^CCEr(+^lvRZGL(b-i6Pu!8h6V_)0e=Vi5BnGp{_)V}z4a_uIXQGL;)H5gLel7}Y z>#Bv5A9`~4^gRrbaNY)jWWC&0Di&wq(l%f@S zCa~1sTP!_Fb?nG)x%z#mgQMxr7|G62Uvfw`rRha*lv2r9asP74!U7Z2C?zvC_ohuh+ ztIT~ZWS=)m%qFzTG(3BEm_MrU7qAopThItHwFT{s#7gw1-h#&08cehIETHQsiS%izz&EC$ z)^)!3>|q;A2x}R3hGBNHK{I^ib)~WK;)aczuJl-6Yw|1ft5OEPErt6d4xmHRnu+Xr ze;-vHbo?vFCq_m!>c^-g?M&*87IWxDGd!2CFyhi<}X#!w1<2`84PR)=kC%iuY zhRUqHJ}&bJ?RRJ9P&?)wOtLTQQApySpg>qEkwf8N;Z7SoP6U4s{1h;9E(CPt7tdGli{n7d9*-n zikat|0ufz%rhSy}b*^bk;q^g(m%jzVCm2F~nv4bO z<2ZNC&xfAyA>z(35@J-F2-K8LMZF&hqe0e5Csdg#y~g_eElT}Gw}H)Xfm%x(c;$`F z2KJnkCw!O)vhY9bVXD$FtkRgKv5Brs)+X4?rO(Ln&dTD$Zr~B~Hb|}UEA~2D+)!+bcDkoG+3&G1B0ug|&#@KT@!#aYB1-8A9xi@*CN&;nygZPusI#UN|a zR;=WHDV{0G-Tl5#mSxm~gSqkGU^a*RJvf+Y9cy12%t}d6>g)etD)0SX5~DCIPtclk zUts0sv9(g?@Xo6a1{Yw1Gmi2an{8s{srAT!O{~`^in5B>%u`bRQ4y7XmuZEx^W05g zx3#~16tD1pxJzwlC6gc z0;f3OB7qxcY=P;b;EQPIq){5p+}K*QuSV||3ppXWu1yT48PThbBv{&Fo$p=<$fY9` z{-#Asb`Ca89TRLXi4mF_HbW9dcun!N4z^$A&rS(WK^zJD4+Jkq+wZ0;j<)Bk?9uid zTgW~}p4xb$w$EoYq4j3EK7M<-iGxbF)hM50bSl6D6HY?L{@WP|cLVIyp+k$9tcuZk@+{GhahuOP8pk%8vQdrgh}e(6)0Zysvw_rjbf8jW;s>Nx{Bd# zvfC1q4ThKME~FF3z@v0XXx`kLbKL@?N9BuA){R;FdnhWlll)p-nv)cWD2ZBb+R!oQ z(k$UBEK*;JvpobyiYEexkIxr}hAU5@io4;;1Bfdx!-CSHi)z~Th|05pr7lG! zNs3%VWrmKJEVWWUki#lN#l{sP^~xy)!WJ2h*QGsvAB~fi=by^7=sbiMBiYvnA-v+ zzwa$d?#mw~HUi(^Hz5i;W-Pg1CzSXMy}+)YgD+4^GQrW+#`_b~2cN4W$oe=smz($J zm{$W+?EN_&SH}AzM5X5dIyBm|I3G{|`^q`+3BjROKA?%GP%<^)0m3R#1NoLq^+*UA zO$;hLj;s0YZzqB!9(qLbi+u(M?3{B7*TjaWjs?|c@nL@euW@gIO z2@o9#-03O)ps+={q#8nNhj~{n=(k>Uts@npBl@|gQN=9GbX;r%iFx?i3Ky5^7&Ogt zJ#_GH@PX*?lk@Gc@okJy#q8TKk_5AIvd8Tf99a+u`|uY{2HaZ{o<#WWhM>;k3>fFg zrB%4@E~`|Vh_0QgmGA?f$>o=0iEb@|X^}ae{d&Gk^779jxD{y_Ibv4vte8^f}lp-XK(Elux~=ec4~f*uI@kM z^A0_5?%Syk-O{y1zBobGh;!}}y~33(VVAMQl+fyXV$go2R{;MfDqbMsel-u`wjZ?j z^a@qBv|WM;OH!8a2)h2MSHS*$;plpQ9(3(s&>r#{2#5T1elu~|5_TEuHj=dZo*?dV zy#n}=sCa<}?eWxy1(3+6^$J(E#N~-q%pTFH_QGBP`=o^<>_vGH)*YyZRjANnPq|m9 z(sT`JO6>uv_ZT2n@cY(S==c1^G91WxQ)mg1x|k&Jlp*od9vM|ajHQ7Q@weHm*Ojg3 zC~b4R0*0!xs>ZmA&Mnt-$eTs}E@uD+B-^DU^p|#n@K#Fprl|dpFigoRWfzIEdD*X@ zVs#p~vydU?wm|JG^JPY3ZN3Z@Ct92IFp;lvwMpKS(vpp#7_l|q$^EmbBC}2MKI%i~ zGhh(&VKI=3_(U<#{;N|m@vz{;v_`rb5%G-cn&9 zClQf3EQGK2sj!d}NO$m37_^HEc|<~7i1&Rj14FI|tUP+{4R{yB&UFkLW%;1=ue0M# zq(EsDz2}YM2A#=4Wr!tZX_&n29qhAN9mJ5dkL4pFxHj7l{BFWY&W$$Lx^C};lXy4} zBw!84lWg$b$xJto4$;t)gH7EY&CSc<43;asm%Ue%1!8UsnvO-0?61)$33H3Qfmfh< zsJFIzlxH$PWwA$DLuI>1`ML~HS?p2PP(|n&CVBEY6VKQy{r3f-Uz`E>xYeYfdOrC+ zlLalbmASt|*)`wwj;j{4SZ=&(Ge4Us9<7L&D5+;KRFNpD{XMgmCABv~qbWg+87dS? zb6e2%y%}h0F^J!(`eHkXKal|{i$ScRvK_?#nE@(`L9C$)4`Si0Otjp2{6@W)cVz&% zi=oQ^bUiG;%S@BQuv8e$by#MrEFn@aMon>_P89Pa^>W@DyZUwc*k4JKyk~o3R|0T5 z`z|72&EDAdXkXv}$wOk4`F8tbV>;n$UlAtV2&T#{Lh>YHB94$8#+8YXl9VoXQd4LgZrAoU8KRe9y|B0InOj7fmVS@+0g5Ba zR-LkrP|R%zBIMoH>5-I^s*ux3BIIO){*jAs0lAj}{Q!V6=mBw(t=t&g|= zYEvG}Eo5L?n-SH@W-)xuns8c-n#J&)Tt(-L;b+i{Pl`wUVt8;JoYW;R!7nA@rR2tG z!``deb46%pp?_Q8^b5o|`6&)&*nd_bB!1Y_!=zR_ANIlm=Z0bo?Ua^mMye*b8SLNV z{@GL!9PI8}@p-3_xj&*lbUxUFm=6#3RKzC^_V!<`4X%Q>XI{aAX|;DXtUqNywAG%?Q!xH@ez!RI!b&7B&bv zTmF7RzVMsn@5iEIJNJl2fuTL2V4-Qh{E|`yC(+0W#Jedde`&s$GnBuCD(;5z>o+tS zWlWn$PRI%Eu?q@`?1K|&wbm4F2Poj4!Wfud6Fs}(Jx>S71|{;s4+RpZ^F^YWgI(qw zn-SRg9Od439cHjVx;?i>-ROLp+Qz^s1vVwh71*dd?Sd-IklwwFg(Q5;$2u}Y8&rDZ>e~fcMt<{ybE9L zQ}Hgxk+xo$h)n}KQ?KE$=;j;}!5*0q=~9{KWsJ-I7nr;OXh|yw(F2PgYYr^-V75QA zc%}ELG~z#2RBY(vt0sGy=AjKfi{UL$ibtNL+K8mM#t7q$LRc}Yjq(hi#@4{ zW`*)&(e_o*ttaHvt)PN$<8f{&=mY9K$*dHY^C@EPGYHeKUMfWr}2&Bn)2=dUD~5 zh_cXr-N6`HQfNx*XQ#TseHB-VNs!;pM^a7P}%xewV z_tg$)?*v|BeZhaNb9MP1YDMgPsuY~^3(-M2?vsY|Y&3dRQ1ZB(x|Q8VW9S1m8cDho8_fa0UD{|5 z&sv4i#ffNklXk>LTg6rM$VR&Wl^aQ)Be$MU6?em}gJh!xXApg|wwXxG)DfC6>^>E2 zetEw5Fm~NDn2H(Z7Q;(~(p-2cqL%B5vFoJL5$2sVyY3_)rW3o4-cxqn z^>oE{9bfgvuImaLpMFJTV7hnHy+q|w5m6s5xs0~~B%8Q5`KXxpQNdSvpkh10Nn_vF zzI$|_!f|Jnx0Pn6n#z=P2GsruWSS0`wBeOR@ky+K%i#OkZ>S@kANPE&XlX#64U0Us zwfcB@VwB9A%7oeyj~T99nr@6XYoioqw*H*bR3muCLik|ilgt_<_uPH~QnQH=f&WSj zk<@+L)yMaxRF)(REo@?f)lMX)*u-y%!n&XfE`nbItB>E^Akw-Z0rAw;Get1Y_HsQm z^T|hote=ba&L5r$lo)XDM$_&+D9W+xQxRl-hu-HEUrpc>2o)uYiy zDONUWJMIX)pd_M(YRPg5)iR#tC1m=ZfNnSgbQ=?)YaP;=7m_7-#jV9Z6oMx*mVK;mGX=Y)!RlDDWENXMkObpEaOdLVZ>rr2KE@PyDyPYBw z2{N^XdXiX){=9zP{h0Silimd31ZHc+z;C1qe1T`>6+V7r2{G5h&hX6KFsrJ=SE_7L zT8p`Wm6k%Ec=za#~O5pSgcNeu1R6&+27$q!oDX=8W z0g$N6!6J)i=H_9u&aF)|)HF>#4cHV3X3?JAq#$`Q=zVjakIGC!oR+o);x_K=D%Gp= zd)!%4f|z-B(iJn5L!CJ|sF7+sY1r>yhBw(YzL0@@Ayrc8oC<}+K6WO9?uqZ@cW)-D z2kUg{MsQ?=z3u01a1^IwEd+<;U1>5=^JrC?082o? zyldwN+?(->wVxC}S!+ePij!k7iC&KP-;N4fCxhgphMM8beu76eC%{=T5FAV59Wwa> z^~L%wWY;9=+|GR$m!&m4VETmQam~3IIxh$3xQ6ojIqRK%^JaesY5oofbx_FP@I%3| zAGhb&Zo+JDk2cr(hXq_cPoqx2aS%2{A8W{AK{zuhuY|4;7$&U)gZ1%2zG}jZ8Vv>W zrdOSs;)4$aMZX?Jv9Ba0$smgyVP8S@&|qwHg#9=JR2DhHG*q@uw%=xe%EHN}p$hvJ zmINps*1L=ZRUx1Bsvz&OHwR}-DW{Ui8@B)-RA_?f{h~>s3Pw<+Ch;Tvh7>cUr_QsM z6VzqcyVVEqll3rbK8$GnDHBbKef34f)Zt-zG>KI|-D*fId&4n0W=--wA&1RvLC`fB z2x@_+M>E2$$Lr%WKxHvrHB`3a_3R8#S&UZ=Rb;&K0=hP7Y?uF^mH}j&@fu3U**2$N zN2By9%rr^j#Gd3mfNq}kKi*3I?o3{Y9PxiXH48#6#t3D#*6v+#3bDCP71=6FaK*(a#qJ%XnfNO{IVYCxR$yNr}4sf65r z&TOMhhu$Kqk~;1d&ZId9X(KA7smkBc4m?UviJ07wPbsH5g~0rEP9rt!iF?2q-HM|3 zitfe)-+pilkwrQGC}ksjed+*h@&h6VmUj0!Qy^rci9-_b8`!5xWSwmcI%9K%2^9dN zPB#v)0cYQ$gj!`B$z4Oj&{CsWoY^teUv$nv8{@N$W^FpaH)ydiGgXF{p7@4*jUISp zJb0N!LRnL8U+8X7GEvY*xP$%cIIzA_ zE%amKH|Nsz^5ZmyHu>Uo$YVE?LN}U=GU&sS*f(%V??*9T?3<)GC!k^=o1HF^e3bOi zOf-__$qt-wK1$*CN$~D$N@*#{9E($X^k_1P>CWW-*;Em95ZUYrcF(3h1j5ZpD^TI) zwC<%L2p z^;=U?S7Fjp9>-O5o|bZ}=Lh4ol+J*jJLM_`%Z`+Ue`ZM2#GP-x%4ZSF`I?{{pf)_O zF=fQUE`_Ohu|N-#TD1@hLGO|h3v@?JIxkLXDMSB^Sh$h6vn0LVf65ENIM!g(%5pF;zr_^_zQzD-BVi127Egp>e}R0w4d1ApM7W)t&dFVmn(p zGwDB)2kG6$bHG5sz>@H6@ugm&DkufQjiw5L#3`!%S3|aLas4VKxVm-km9|#UumSKPwa_>4P+G)}y!7)}V*J6<549h_CY455qwj3$Y*O6p9rJgotz)a zJX67My8>Fx0F}iGsD>)M*4SCP?rSo@*8SR|0@-GUZp&5KDoa>fj1fid8HB0CwZ;8n zq;aw}s|?mil+w#H5F^fy6*M^(FiPpA0KZFFVb&SjlVE|@86TcHOSe19E~Y!an2xY+ zKMK9&{ai#;Z>b)}BfQtT5Gas@=9q6)t#_&w*x?&|>6{styGyp zg4LQcQF9u#5aK%gMs)dm0+60`d8y*VNSF7@8rX01?XOt_`!!V@A~pnZPuIX6@XqZ6 z-WHTSU2~UlZWmB7kjqne#EnW1jl`3!CaVKsA803sF+D1!r3?bYIJX_{pG_4(b;D}S z>(SJQfODHBsFXD?jrlOP+B>&T>lLmvL<{WPzOYx_c~V!Tcb|aIJ6+efi2Bei>DxQE z%e_LCraVi5uydQ9B?u)sb@O>?B2q`0-Ea%?9G13OJQ#24|0xlf?6s@@Tm?V}IKia1@KuS)Wl6 z^%@`8^t(;-e$N?>K;Ok6{(Op5$iQ{}PHERziL2sGrVNAAtfomnfa2+ZvmkNM4JehO z?P?k+9%?o1F1q5?G``ApHO(Li!>}uS$jlZBAA$52iM4l_Z0}b-I)3e=gRk;HM>N@9 z7!?EVn~{*Obr3|(S|x}4q!U7|;5WQH1u88?DK6dd}+Pd?ZE3I1?@O2yBp_&F7K z`}gjlt6xxYFBQL}Vk3Px>HZ4WBa=srxWC2)_UjgL+a03fH}u5)FD`$}<$YZKHf-N)hPh zN&NT8D0jQ->3Z@RG-EHr+avCBl*s9@5LTKycLejdU<18(2jQQ2Q;?EZm@ z-=Uaw4+%Wn!w--?i4sLn!U%qu2ME3F@*t&A=)MRq1oqIIjnbi16ZCRun8>l%T2^UH z*Cyt7Yc9PJ6|>}OxeK@U?j;*g0zoFu1foAlJ^maOhrANS5mekl#jR9){8cDENyWz3 zqBxfdI*!ccQ_Lt=zN=E~Q{Ev?nnW9ZT;3u?9(k91__OZeidILcpQG>tsvfO=j!{33 z`Z-qp9H)Mc#}9a>pMDm(1Nd=IKyfW%7B881i?~ERC*voUTw$$m_?$|43dve3*sp=T z91Ukz1*u(TaSE$5HdU(bz>{kERGdIozIq0mZs7RFVPw?_Bn|OxBIUyBrXr!6tRtrN zo&C%j{t8D{-GoDT*P>!eX}fHyyt6ztzj<+MDF;=$pSb}u(o(|7{N`0g7?awg`S~Ow z2)CE2fp1<(psZ8Wx(Gib?#1elOZX2T0bs}9FGiKuCk?M{E~8M0@IjK zgT0%A1{eD@coJQS7@!O^peaV-`;Gtc$`i>zA>`}!;ZM?x( zMdX;Jd_u)~1MBy^5P`YV?Y#HLZ-MC|vv^UJ$VIBqa;38gyC(dtLOPe%Qu<1U1CK@f z;4^60H`_Wotwo;_;VfQL)I>1YGL}l!6hIQF)KwNQ7wuUNpyl=QHjr?hc{u3bb+1Nc z)>*tp*sD9@2C{bv8qVuM=x6V8uOJ*Tw=7c}NYn%0unD+alU(qA8hOJiYFcI`4T|CY zQ38d>wLho=;6d-qKil++D4)|Im~LmMAjCObPT^}FxzG6S+ThK}D@L00B?b88E`_fc zsPmhtHSv(OgvL4YP$6F!(&GnVV&cX5D{i8ZsVZ(YfS}LaoZX2*+!*x3Q^rFJfyU*EUctZZA69 z>$O=*9>rSOM!n#5&RzEK zOIW0bQ>rUAL6$O=@lUgzdN(#UG=}Sa#8^aR?p93M5F2dloxC;GHZHhh}v4dp_)f{%lYPBhRvUifP ze=3EstPd!=Bc-w=F15(9L9j-R{xs1Z2_iE`L4P6&YwN1K3>(e2DdJM=GM;^daTcG2 zUDxC*AUqwaEbQJRAt-(r?Up|t5=hWZ7WNn{x_1!>DgXuDiX3gNMw;wUtk(3KEM3W- zcfEaA!g0XQdmxF6a8j<-K~d&oI~-*j|CVAhQGsBx75^GhklHbsO=j{XsNPO}jf`^> zg8Wx-5!f({o}-dwdm^$r`G!%K_M$-KBYKO-hb;gi&+K+0Ohk8nH8WAVuTGHe@x3M8 z$qPWbL*q1%L~^9R%_xq4MWF4X-lA=D{%Er?C5;?Ph%;|L$@DnLSt$+kt!1$HD--kX zZy_E{$|Q1NX>-`5Op1Zom-Z3l{2$ckxs?ap_ie;P@qQEu$GdzOk6QZ$t;oqCc&s^J z5<#ZIn6Dw8p+CKJ@^r1iH0k66YKO99K1LPzW<2JA&V!MUjHZ)UYI|oH3wM+HLi)XKOldw*2katg{2sJtH(yJR6Yi#$qB3iDlgli^N#mJq z*zL4j<3@9e?`qnMYQADjVh=kzMt8w1-@k=OtaNNu=XG==$n4?ugUSYnms~l47d$Le zwMvs*BjkXomm4_b4A~~Uq&2=P2EJaT_kxS1#If{t`<`GA~K6DtX0h~|aE_o#ptsGVa){cWt{ zSHjP--E@+cAv)iVzrt%rt5%Us_3rlxdqKU+|3pylE_>>Avw!}((dG;aHm?Q_!UuW= z_n8b>Cp-Ubv_0PtNYE=?i)81&LiK>zHVJm$JA#@|XOp~z(^*56xZ{HjU&gCog#$A{ z6}P=Fs2c}&_R6eLEe0ShZ!jsy!BYnUCX~rBr}`SP=|m8p3=%R1uU1iwgS{c1so3A58$lI2 z$)1cvY`>e-AE+9EoeTPGaTO#u1pPp0(*><^lm6nZj*?zL>Ugnme$$yoepOE|cN()} zYduArv>;CvAHt_N`?r6vunU?GuZ-ePn&+r4ga<)wnwo>c)u?Qzow9fauu9ZQXo2+o z3)=ys)9WrkMak3&F(eRGf0MXvxkr*0q~hYRPt?iH@XvWE`pSs$+*& z`IBt&Vci!Jyf55@VuY?ZoSLt)#}9Ml1V>k0N5h6UtNM7N>A6ShhIZ>`QaALsJy$op zb`sT%GEqUO8{Q{^p|=Y*>uBcdM%@^XHWyGg4$WQNxH{Tip6W&u)n`yQuFn9Kg}R}k zvQ;5IIyoa8;@m}IQ_cgHQUE{v? zh2!Q!)g*GIASpPtQ*~qO{%{e{gpC6r;eFwVr+}l5b%6qD0KV5Jpl#57cKSg}(5|DP zJ4Abtbk=uzS!pnV`aSIfJIV+M-zm~4Pa!TD>cvE5+cu~p@E%Up#uapwmOcnkVT|$) zv+s!S?=0a|0rFb)Yh3nwZX|#X56SLlk> zCBE9{)TQH;2hdOBDBUy41q|QJkukm*^<}5Jl0R`lcFII~rQuC~iNCHkaQ?xte9#hq@I#^!TA+ z;drXYXC$#9NjS>q@c0_d2a$NF;0NAoY9VX2cqHh#{_zbVWn=Nt)zPuANfV|h0>$Lznc`CI?2%3@3 zn=>HIp3b(JIiH>ZDvQjV8F95e162073g-)5+}|%H9NiFdZ8ig3-RBBbNK8=EVpYtD zS!lvP|D~@9L{=z31$ie>mxSb0z;QNlq2!?(Lacs976yCXD!cg4j6H9Rp_7~#Hgr0cr zKriR|fucWgIo1QSgz}dEn5GTi*_5&_G!ThHdGu4trTRF9pt3KEk^*AE1VWZ$e-Zn^ z@g-8cboh-JP&ef?pu$TBd*5rRNbq9OKae0Pz4$;+&)9vl0HZUvW1QU5Xg2x9-#`^} z$cEuQnjm|5#_p4X?$yu%n#UfyhL6p}-UF3-0>Rl8WH(Z~7Zfk^LLhc2G#mbMUo;1- z^x+Cey?i9t`QP)!v&k&}F;on+vfD9|S)3l4aW1Kw?7|G^$`+2#1pnrpDJ>-#hbeqy zGK+te`)5-{Fx=59v-mfu4}tX3Bz9G1@z_X5jrlOP+GiI3O|NjJAxhL>!k~I5vpdHg zD+PA&fnejs?@DGU8yabGVaWW~uE^}(i_bgFBEFRR&@GwUXAwWDSE$ld=7AW_B2Lc| z2Rwffmqon&SN)xeO~EZ`^+t53lnCMA9M188w_9_IuEL~`{t#EudG_$v3!iOha#49# zcz#i9$X?8Z`p6mZ_9aF39`TN(YQfu{wC(@1_a$I*71hE?$T~pS7ZI^#n+eYJWM2k? zBmq$aAp-J(2$PQs&jDC<7-qI^zmC6YUxVzxIW zXsu9KnW?SNGd6`!&z6dn-dYb0$LcM77)!=2i?>$v)+Gr&r4ndcXnZzJ=z7aapk0b% zXkDO5%!idhbG=n-7p^2kEl=!$a$}vScf?g!=ousC>)JJdYo~6qU!28cH`iV_w+mG| z--oqVBHPDmujaqnHN8Ta(O?p^sdVDgtZ6VtCpti(j#RkaRWqw270`2xO|gqyyOje` zr$pZ>l>0j_XYueLNu$eqFMraQcRrm(5EKLz{#5WSo562q%NojM{uVZD<1&Z$=bwd{ zpwi@^T{yz6^^FhHYJi>6hD8z>5dsGpwaGB}(`+$Fd+Nz9{E;gUDC)yWm}=_VUr-;} zeq5WeCk%(PKM-#s*;pNtcN7)Q#D>#Qp*;9Qw_&@-hA2OhvLB&hwb+*e70BmAGpHcF zIdp;uUzvD9M#FYBwi*&B3w!Gb0NJ;6XI{dGgU{>@T~dV!3vIm#t=iCrGmS2tWh#XioeR$-qC9AgG2tm1wbq2v9ab_MqCmf@JQZ56DNOl6R% zkiRGt66p2>(fgKBCX*ZcYu$4Eu_p|PyR${2iW*!`v|~elt;;a)4_8AFaRC%Hs~4(J zrv?U#!)V>HzLtQKx-0j$VBc=S?MJRDJ9FUfQ-sY5H0v7a=84;ic3yApWuurgmt>9XCuf9v+%Xx9j=BUAB0GTseu_EjMp_W*iW-P zECPYvKM<)wZeo~@k8N#(oRPWK#|J;NkCX7B_T#pxFSHPvhk3E(g`5La7Q7&#O7^DX zGS~7Butlxh>xNcBm7(@#t_e)oXmLBKz=_)E=WZbRtn$CKJT;*aC>3lI%oa-pqi23q zfb)<%!&Lz^J`|}(-)GVe$T_YmfSLWZQ%0)b43?bKa^KJ!i}2ZtzG3N5=7NCn_Hx+mOWruzrv@kp=d7!bW{c;GHOpj)V(>UNx0qz-IUW z5ZrIi1HzYI`$J!Rg55gMDXOS`@LFK>Fgtf63P*J2a z&|y-Eh&|~Kn2`OTIl92xkC}-yPC*1Ry$>J=Q|%Od-hSLRPQhoOc?YN9TMkfJ@P&lR z%_;by18jS(Qy?&5qv!1;1Se{vp9bJEGp8U*Ly%)I^Fz90po;+CIhX}+7|wylkHX6Q zH#YND&Oy1kRbC%1K>04HBdTPV<`U3)hHwe|>ZL8a1l9I;p6m!L0QAO1_hW=>q;@ha z*c)(0gvb^LoP-y-jRzzciFla0h++YNQDu8D38F1 zc5+W_>k=b#=wyWWO17s3=vW(|gYL3G2c0#FtH6Qb6-Gsu_a-=WsBthbTaPG=)#C%q z$cEm4Y%e_3S{(K;S>T1Wg(Ml?ETl%nY22X`iCaHjyAu=5_+i)LcnW!X>DJu2bl|Wb ztBpTj`y51ZuoICpWjH-3e7-jC((lVS@aQ7!LXTw36^CN*IL?*?Kw`vqs`Irkg#O}d zD@EE;@#kv~Kx5Vi9`UWG=3(0my-9~{FBAlZQwhq57MSMw1i&P4(qxC(An8a}sUp>B z+s`y7PowRF0IJMOMMs>rEf5wuZCidBb=r0W)Y+Z3EoU#Xrk;c;2vCFriK{n@Gl=D` z6s)XDStht!Qlys#=R84?RkR9(7z)x$1QED5!>Hy4b8-XW8N->a8CEaHhIPY=Pe?nc zMx0wM(c2}C=z)+og}cP8K=ezTTP^;S0yQ$^#la29&eo4EnJ>VBjpIRHW_Yn~sakX< znC(}brP5^+`~HN9wT?1WFeSZoEz;wV)OYmb6Cw7HO;xv5m@xTiXa5xCF9&^LFs%zk=DTXU54_vbDrAmm$L{d}T%r03Ozfx-N`^&46{)N|Ht zdfy?59g5U74%ZI#G`caY+yk&_-OAk$pyDR(!i3&qL}V%xw*&gi%)~t!8nZTWJ)#jh z)060i&h(ror_3;Er%?tA(nRvGQ!M^G%Y2IO~)$FDJm6IgIDs86#T9DzOWg$P1m zuZN5IcPL))DcuWKVUBpmEVw*}8VcH=5S9FnVdT~J7_lkB|4L{c3{Kme*0(x9Wl@b$ zLS>uN`T+;1EErcpm1%+H|8@X5G7^iMgoY}kP%3OPA=S0%ftqNY>IZ6S4vacb^V38$ zG5lyxeTHks78Upcf*}f3P4pWQp^8G9YAmL{ZFBh$u5bIKmXu?786hYGAOac(a*fL5 z!LO#4V2(}H^+{ztTcV_2q?j{lbE~qR&1Y+BLl%t#bStV^RnG|M1J!46$a4X2>4Fy& zrl7-Ry~A$@jYk<9$HHC1k3Kb|g7%AgF4RX8Rnt?`oWhQN9-~#OxP}PS2PHk_UQ(!o zh=-vGn#?gS$%&PLkTc@m3}d}_NZl&?rG@)-2vZ~El#4%`F zu~B%6+MJO_laBdtm8nF;3)diG^LF!JJ-Hd7GAWnTo}qyfY&1O>Mr#RYTThB?LRDx$ z7PfPmWfQ6b(=uwpqI7XkYl*q7!M6-|x8USwry-Q=dL1^LMt1eBgB?sFHX~#dSDPZ< zS1pdgDmolq%Bm0ha!iPeGz~Fay(e2-sY)R4q#3qheuK^s-BV3xtfCU5HTHzz@GIHk zP|@2LvEelI7II$v@r0I=EIgk3Ga9Nc=)IlLXp7Z(8{rYPF7v++z1S@`8M5n)VCX_|s2H%>R;6^1T1oCdoM)8%{&X`%rb8CufU9WiK8J4ck$0>uhFLw|NQ< zqjmN=nt&79DXNGxK95t%;#V0|w@K2Hz4{=v$GJC<~qLvPiq8l{yqp+2DfbkO*98i6*gB&|(Jq zC?bFo^2-4#=q?LXP}U$rMfS{w^1#se^^CF5GiEq`z-3_W36aeQ zHnpn@-iKiPO%fs_U=HTqQ0Z4gd+F8`z^VKAdYEd2Oe`pT3-9nxKOqwDB?GF2NR2*3 zK>8Z|Ss;q677k91NQg8uXj;pS{4N878!q8^XyeIxZe&7_Mw;XU*o#i|{sIi6_8%p{ z63fO5=K_h$8k?BJCEZ}pRzl4D3t*3kDYzf{vo!qUHv|0&8ne%oB;uh=Ng^o9l#JSl zAnA$Lr_qX-e&H=ph~#6Zq~u6c?&ORQ!+hwulXo#P0L}<6RV>GvMxC|XP_eKLEFC|^ z4?=)rr7EQPQ5N6W1k^$*!&{*mtimZ;jZHvVp_Uq<_xxrU#m+<6119F&6GO3)nmde? zy=8ihsc27@;3;H5gtG*h&Q!^QPu2wwdnX}hkPn0=s&Vxc=8#3fNknf~uJVkCb{ta| z!zN0r>1*BgB%daIt;_6g@0d6$4m0hka~n+b1lCWS0J1n8{%O!W2w>aPxo0~-Wsy23 zp|VY#>vw?4!e5h6Wtuwodf9(1O=i?*81V_=Gs6Q` zsdJ|$LKTHH)mTjGT!d`$`f$bqKXA%Z=UzXx1mm7M*AgYYCdHgdlS-w|HJ`1ib#5Dn zMJV%T8FUeY2;{xND8~c((s{eW%_WETGe}vKLH8xNYlNZ};Y7M4BE}Y#Pp7eqa41f~ zZUT!s!7Vnt0{1*P=9#)T!#sm;uyJJP8F(jR!@9flHP(}zKP#C;EjMuV6WCm&8AK+e zu?(>{U2gap0!uOWpW_`ZH_%-cF?KTYX*D!JQre<7JW3<*p@ni{UEda$93BqP@uvVC zbe9D>%q55LHa%({VrYa zrt3X$^}dIf@55!|Oz&RtaUXna@_sPuD-t^^bIYn67`K>!0B&5cn7R`w{&6uXuSHG_>3M8{EQBABB%| z5AO6F;H5-R-T#`{C!JFFps}-sH`NE0EfJ_}De+ zb%>7x#K%JMaR_~MdGkL4jm^Q!({a!52E5F`KOY5-9`_E@UfV;j?4ied#=RS%S0oYo zG1ZBpA5*O=EJo$s053=~+5@*LpXgQcm)HV;i7$uPhVLk8%qi7?YbSS0s(m^9j+i97 z!Z)%MP2?JoTMyi?$^3wEcTKk4P+7TQ@X zKF))WP2Ohl$NBV!KF2eV?p_R+NUCnV5ZZzZ28WA7<0GIhnC+&0&y2CNksk?=b$G{? z;p6<&D34IGkE(!mrrB^~dGBy#wAfo6FPDqe-W`?d<-HiO6qljOV2$qbH8BK8M$K1i zaO#z>sl3+F&~4U(ldTr3`2a;*a~nnqwcw1^_@ZzZn}Z2_3u7thcwUDts^4I4zQ||X z8^n(E)u6a}D<(h`GjFL%XB416TU&wlBo0n`NZWdt#j8ML)(b+L^n!3=TYLm+jT#!> za}ZNRLi2^3z{v#ZAaW8V1u&jSn(eT0#!WJ=TMVAK2tnb@rh&HrfXaLkfvUnCDeTfy zMOm)^Ym<#5#DgAMH&EY4)rO0Jy)l;6GC|OFK2l2tkA*BiVOj{T_Bq5cJI#U3w06%0&%AD$Sh7DBtovTd4C z+Urb$2;@o(7q_%X=G_z!{Y*jheEQl!X_R8M2#zW2FO|1d`p;W;KCW6}EjjX=LbL~^ zEuP4!F0cPIGSiBWf$J)Z>K3Q#9d*GW4}-;8t-mr}9~-aB3KtV&sC>>W4c0G#y@%aU z^Fn+BRZ~Et3;EpTg)?*x3Ju7AQ-~VlDWil>*i%B9Je`l2-8FViH8=Aamo_kvW_bPW z0DZzZQu!l>(L2l`Hsh@{t8oz+^}eFG5QY_A5nISfFBn+3phVnz;pLRL_ejx&A2L)u zV2>)Beg5}B^LDm_T3?VlR4rEAlcKSh#fs)r7hbG5&KC&HL`3qwm)ZDpUdm?1M-3C9 z8P!H=1l``!m$kf?UMP(*d8TY*e<|AtmV_<+jfGsiQC5*KbtgB;X;Ld)f1_zKmq#xN z$ehU1IDXt=_!i5f5~}1`p&hJ@KTdFfD#}TUo0Q>Rdg9MW(=r{00X*7TW9!)O4q-oZ zp!q6?aoS_wc5(VF2dFF-r(2^5(EOZHFK~d$h9*o#?NCO@WCEXh&eRc@Ho{<;89Ks! zJB%2@YBOixzmOZ#R7P2oiH)OWs0+2U*<7|~y|j5$zc6@3Frzo{NmMP&m!zHHZ>qp^{A5i~}OS}qv!jCE}x+U%NTc>HL#cqD42!Vmus8n(0h zCBduB%QzM0if9W#H&yuIE!2cX;Rm+up3xzD!f^PVY;mY)@qe-5G_-hN;G*#0MY0VX z;h8*?(GYbb*rwu2L%^hO5GDPuTTjh?bw?DEzQAAd4R2`Xw#Pqqebm25t{GEBiOZXi`8nS8ve32TpStcA1l;{ zskz+RTxTbAMBjq*u&uN`XhA+JmaheMy<|u;@LClP#Suu)0s&_qtKuhZ&jg4g+Ep>re(c1UShMsg8ko%7A<^u{Z z*!=yUTY&koV@T|S5R#Us)L6(7qh1UzQ7s5w^xqMoM(uk>67R4l37dtf|Agj&aBcT+ zeb@mii}j_IrN~=>;9X9NsXtBPv7J)krsS`#FBX**qFNb1i3A_?vO*>l~mu3Hm5RCc4X2@uT4dk(cI(tG7EqWsj@fo68Wmz95rcyXK{3HKWp&HD`44HR2Ak#uYdM;$<(Rt51FBA5&mgyS3^^+|ij!G4Zy6~svnP+2GlM_es)fXW_M_6lO116=79 zgg|0@6~vQ*+?=SK9AEI8I%1yuo&SbV4Z*ieBRtmudlnkuB52-0BMdu0WuXxyRJI!7 z3J0hxI6y)b)(8iMCf}dct|qCvv+;M_mfGzw02}>a?%DD;R}w6#Hf>!OLrG0GRNm|` zWD81?P}wg0zrz74n~BJL;Xe-hO}5N^(qWwT*tg~5I~<_0;Nv)4UFCDGkjFEx;>>xE z161wD)z2KDvd5Jz|2*sf)n33qapr=(LbWCNgFn?)LszOUTSNCa2dFFzT?v&fuDTtd zvLJa0mA#?c=KxoFLsx(sN4Zfy zcR-l^9NTJy|8juJLL)fh>i;=FWsfU+jqrH~xYBC`fyDM|gcJ0QMY;p5Z7A|3zo{QO z)UW-QgnG~)Fzs-k112rB!#&WvgLZhx0V)gaAfd9=4v#oMWx)*+s<3uAI7|ip%sRwD z4*0aaHEg3S+8GC#53om(Qj<7H&SA(Fq$HuT_2cpmP}xjG=2|-r`%U5?>m9~vk9}K4 z-s}LC1tZ7ds!1H=G6$&IkE;;}sO)i-%s;bH`SGC93mm|*VIWhI2_RC1as^?;84&hr z)t2rj9gt=*mr{Y*n!dL>KxJY2Ix743IY4EPtFY-Sh>Y!;jUfI{I>46R{1u3dquway zY8nu6Yb>UkXY+l%Q(y7z)v$-HNyWDau!HT~27b0edzn>yL*PWkw}+6R@K67|X1tfV zLF&9_ZP&L*78<|?+^W1iG2*=D!oXmD-TDo!9n$>U1Re-45H=3i4`~i}W1P(VS8Q6Z z#lIgw#nsQF3BAXJHo#kRKbH9~&|iGIZxruws?(!8-n`EMQO<)R{ZLo32-OJ(=`4h( zvO_xx)$-&XZyYKuc|;?0EHlv!9m_mV;?gL-zc-X!5HyN(Vpm{7(tS{T&wB#kOIAA& zZT^bQJ~$=eqV#WGSI!j%pomCeu%09I=5`EMYQ@~(aA{ZQT)kwO)}?+9wQz{`WfQ1vheHP&;LYVLw_o^$@W`P_yAls&{k_D~5C9@6iN zWxwOfHuz=`D&AK{Rh|4$Rm6P&UKX{;;fw@=hnF6TVZWpt(qO9h9c=PSDdpS7A1Qc8D)OOSZ$ zv1wg|Yd>O?bf!Her70GFhS{ALpkd=|5G5a9#}kG1#epvCEeOvs`wNVVI7YGXDW46^ z1I)I5$e;sM7Phs7D%qzri&8w_0jfyNyMWHW87-8`lWA5`P~mFDzR5n5x=EE=7h^T- z#Ds!$hEcBSCpD!`qn}d&XLj}|*%8CNG#U?2QEeO+6im`&h_Xu?TG^n6#>Ow1^gabY z_x>GeP^7WnwhsQLnwc6;36;H;O)k)ETtQ+(m+znhW%z2XA9Tjr2fVp<8wugUHL;e$7jT+%OCkJAM)+T18ED;42IBVL8G}=EDlSBlCgo_Br!mv6iaX zqU~^EtnHw+)o#OqB~r#(4d>wO=vD*!88aC+F%oRM$?z<*JB=+4$=qb86;G;Cc~8uP))nZAjTRa+9IQ>2@!^-)M@l{7T_$c$#8@+8FWb!V=pjP z_Kk(tBOS&^84eNZ=4>{>Hpapg>jG1O;`kwx0AdcXC{U!318j0ERV(FD4Dk;X!LTUi ziaU#g<78N1OadcM(ArQ@*$(n3*0J&G_M&bn__<^v$nb);0s*#x4hFXnxPfph!(&S_ zGm;YJj0N$1O%fh1X6%iur<4W)pZ>6c0J7JhZfgVKBM2`U2p`2eG7#u)pED4!F1swD z-=ckRLacqDnrgRspeNGCS_j|2snM+i{a4I5_!c9-mIysfJmF5WJB=ldiZBiq1lgy) zsIXsz_>tLbmL|ge(7c0*@H+>nEKCFmRkDc?u~m7-=YV!HSlZNA{1a9o1O!Q0Z7nTB z$k7_Lnwuo&9_}z$i{+`7=D=JCI^F@QX*bj2W}r!e?n;NTTF*d?+KW`#3C3en>1Fiu zW#I9&#^d42c+}KPjP0lkdf#;13@A=89gh-*$Q?`^*_e)BT9+GviU+v#1Q{o=OjQHp zuUrQs&_6CS2qtyH0u^c98ZG*uu?TUfe8+{uCCD4WloVLif}E7G;$Ugp1X-Iy#TuO6 zGnA_qYnAcpV3A(H9|n#3St%X(?a+9&fNC9~kMN~}3v9`~d}K`P|BD0DMG2S$^Y$1)RTr|JQku7%M8oDSSPusOS(~?IgqO_Q z3f_@=In0P zQ%X~S6F}G$0I6%xwY4emdxV!vfj{6KnF4gT&zS*b?0b;+uAHjWm(21!i}eS#VO6SwIH|3;V`C#&w+8UzTRUG0?n&SgIKMZ@fWfnS#io|XHpKx% zQtK0VM{1q!_Bpk_LNJj!UAjf(z9`n!4>#Cu6>k?V>`qhnr$ngx*#nizi2It>Tg(o#)c0?M<{k9?`yHUN(DxFmWPL9X%ZTAq4q&BF z_yU5|8efbyM&j9O{H6qI^s@($mR92*qXGejY>9~on0)PP{~sVt#%upmgg$y1n`;~G zU(}s)Ayvoat{YfwAZuX9Fl?PQ(r8UfAlPan)+};Y_vX;(4ciAGW(_K~whtafc*#EaJKm9fKzI9`ebBwV zSnn^Dw^h0pC0GWd#rkk%2zJ&!CDttP+iBGt2o#a`{&j3K>F{NNe!rbRX{=O|!tV~i z?m0boHLTS^P%eLFX|R3?tS@#4-+)^cEG~B$`&L(6a@q;?;?6qkck_3`cb?vzI}O$o z2m5QK?ftc}!eFs47rd40JpFX7y$|e%yC40Za_jo2&jV$|#1gDGqdqyIvA8X=7CIAQ zjpd6-o=)%^4>MtH{3|9>^+I)ldU2=@HqBsRaJbmJc>>6)+`BBlCck8L@6MIWdq+wG zy<_w(eA!zo)r&na1D6-J7i+ypdcDe#8k^`Fstk(7WL&0gPMNYi0*L$Hga~WCPfotA zB~lI5*UVB_ZVoV@=9tMyV>U+M(_4lh+zQmUaV89B7C6W3+@>z&P`(OY+BMnb-3XsR zxkA*nHl;Js=Y9+P&T9_BBOV9gxK>%RiJgWV&G~AxJ@zAq8@FC#7S-~PNg!BKTWse5 z{4i&>Sx7?;!?wtQkx(VihPilFb$}{`(VWfVS= zXolA4!ib*U>Hw7uU6@STAx(fx;;3;H5~zNmA7)<4DdcvCQCm|;jP)8R;|wkR7ZB5} ziuAW~trFN}Uh67_WNf_v`TX_C#!>wuvp%fJp|}&&q9_ebHV!rIyGdRmO1ctnNzzP# zE;cZ=5a!3uTWu`lX2qml6vF#9&NoG-?}Iy5145Y&(lc#nfodp~&JyvMbcUv%($410s1dpv+)VWqe>1EdMBiOwkU* z)B*nk1B!9ZVodl*0jq~L$WmSa4LijzKFN@6=Zr}x{wrwWk1$^_J*`vO{yw8)u{{<- zXHOUo7iEh>MQtZz!)d5(zf!p#jG~E2i?6a_ou1LKbpN6;YfP^07I%(~lm<)n$vvvL zVYm)9K|gT@MI+HpoyyUMi*MYT9-nNY2vwG&)ciHo-e zg#TcI1axRvRpsGYI82@3gvYer<(&hFY0MQ7wD^)d_?Cz$R`HG^igcH0L@_Xp+Ek8b z`Do$tVn5gh{X<2_?H{SN7FCR2Yz(*8&gkM=WqpRb?HZ|U?}sXceYkmnMI0k`o`r); z2Zvh=L=%M%&Bsg}y$s30PE(}`Hoe5`uJN*I4BnZzi;a36pifeO=_;?bE8~J8U6N3OaoFnq<4j|jaGQ#Q~0Z1KXyn~1)GwO@cZjm;z5pJb9Vy9sA3kQ3q1^dWv|Izo0Q(?-Nj*hkt-9A==)k47W(>FMNQnh{gD zG}#lo@C(*j$+HkH5~}3cFr(4OIzSagbh_!Duq`>8Xms2RG>J7Xb{MPm45VUv6>DtH zqf;Mi)Ur+t8>30gF=9A@zBe%TB4DsAV~(3~-YMp|1@2hP(X=G}*yFJYrfozFQj?z| z{&O9Za$t%-L|82zkb!xWEFjDZ$;%hAtgOJ^e2CEUlJ9EL+hRr^YH z0*+lM%CbrDVl5|2FaxdUf!Mn{@CL|yQ4WhM)e2W=JH;TsdX&YO8-a`Bo4W~)%S*Gx z*sTDHpokYk!+;>_dRDHB+tc_k&Z7+G5{&O= z8lO!Qx=CRZ4fNiOW6*+uDD@M9fjZ`AhVuOr5l<+blY8KrSLH0Gi+*)RYHDVDoCKz! zUYiF8Rh08zt!GUNVHM>>Q4kyJi}Z$M6Dl@ep(ZS1^TApV=V*Ujh~e&Tqz=1iQ4-WD zCjV`0IE@Ufv|s>W9%6M=l;$W5fb64c9bgjl(UPUG3(zKjl_EIx2ddl0+5{nMV9I-E zv+|2pGZW zCX^zSgqc*z?FgC<8+;g|068HOQQ$BTwS>pL32w$aG_02JxDy*@`J^R0;-jWZc=(oB z!Yd)g(h?rs?Ndv5d65o;i+HUq-X)X)pgaz2sh!Jqy(+e$fsW;6`v*sdy3s_yr8`=+ zqa%8y!ZFU{YILaI^Q9I20aHpZvKLKh7U!-uyK7uOjf-)c6s5& zx%vLP{wrR1CC7Y&w1)bc&Cg9H!h%R$oT#)|nY$61w@da>%NbJosvB1BspZt*jk&$XKBG|7nfC%1Qi5&$o1TgVi5B3)?AeHYI)eI6kVYAoJ_(&0o zX~8*iRZ2?6BVffEK)4Vn`2AxL{yTs81$G=X^;=5w}s} z^hy+8OC=DLe&5TqxuAzxY_LEN>#yS>=amrugUB?LGTUA(7pqXBbpp$rmErtBqyTZO zZ|MbiFaW%>ZM+Nx&njg#jiG~yy(6(hy^Mov2W-xcX2ZyC&b-60VbUP81;P%8FYL?$ zNeAlyu~9e|zDm#!9;Y`wODs#W#i0r>=CNT4!YFZs(S_J0meuHiA@n+y=ArjY96Rop16bdKDUvW1sQ^A*!3$MiK z;tbr}juO=L0xlOzt+ZB)X$k(%k zOWY|baHGH-QI@eDix1;^%~lG$C!r^Y@hK_rP8y$06S@@eu7IDn7$^7Mhhu163h0;* zOMyhh$4Y_bzq+KIgwEte5-h3Y#Vf5RG)7)HK=GPDYzY`Ih0I}nG_x{RAmzzG{O%5K5uaa1OLb&AEjGK42J?ZEnKWqqbK!X*zV z)<+)5g!LT;qL$OR_s(q!hlbU18V?hNnLTMajnr+^Hpn~qQK*dELfyPl(2cgV1Z4Ny7 zoC}^F1SNA_G-f7FP&@(oAMKvZbmV8DYo17MY|ZCL?P|GjZ6l z-M@8ZLSu0jgT?+Wgw;-Fszo0ufIkMcy@bbDF=1`oH08^sgVkc8UhJ>=CQJUbk;-6U zq;`6K!*FS2DBy_6Kv;P9h02p16k-T&l^9Ri?7zZ9Lcr)T6V~PZ0&)0DxD+F^0}Y(t zn}l=k-w*^}5*oGF4$!%dkBmQJ!+L|uu>OW%KHB=Qer++V@Ur)ocF7MPMds@Hk6mkrG`Y}bAeqb+?V)_F{ zW4j%&W(U3QxNkuttpU3IJKVLlQeae3%4c*(&O{2vI&C?X7`v|kiK=-zu z%htWV0E;MnxjrZ~PSKdYtyhQq@W6N9s(6>^Yo7cqH^jc2Kw{yA*2YOz{d!-70G?I? z-1}ebOV6Rwj?H3p|Lp{zVyr_DP~ZxQ+==;P6Fo`MOF2bf0Pw_&d=vV!T*;UVOA}D) zebSo&t*~{C`=K#aN3S8HUr|fBuwAe`xkuE~BU++*dPHA29L&*iQ|nh~rFwfvWcxq} zNnjeu%`TQECo4!t^nQoLAtE=T%`e~=fiD64^djIrjqZXxESn<1V2eXB2=H7lg*x@` zf(9GCszR=DDuo^{$^{2goEVxv{jI#;T4eB;4=EH0Z~bhFqau4$h4{_wCaOd*V^sAu zsG$9M-F%q%Tt$RaZ>Xi)q zmKZ8BR2CMR`x2XoiCo4o0TY=;a2M_-rp}}+otptM&FfavIEto6uN{*XUWK>maPL+!ARm8~&6^ z*ZHvt>pl=`0c$eLbe*|hji3FP2}_f%6M=JY4uatOux7fB&UJp+Q!IHMz#cK1>u{H0 zxkoRW4=WrUcxdEfym$5hJvv!chmPET~XI6{f=G z={i?Bz?Gin1i0;`xy;jbCLK^^L0GSFBdl8;pt2w=36(uzz0U!z^n@kAZ7*T9HC^XR z4rsF=vd_B_*>@bEvLG@El|7OD*a5EeL?*y(FOjt~UFYu(ShJw9N8D)afUjBmBAx|} zNvOg!)>^vGF%Gb$r!xU^rgY}kSWLQ3Q@_XP?S62&Q!h#S={iRu8B@B>sW?6Or=PBa z_tG|1={j@peLcP40Tu!P*J3);bZ|o`rq2lCE=30#LE>ffVUF&w&2yg7mzG zn!cLgT?CEUr|S?cQMwM%*JCwZ2g%JYmL~a0rRxkMap?TC7QYB$iNH@&pRS|FgyPe6 z^tV(p$M9vF>XQXA%;6nkv6>Gl6dtum*NN;=rHG_W*SU^io`V_7r|to-Ys~KUr91?n z%y2+1^K_jE6nU>y3=_e6SHjcOx{NY{B61HUDPid=vQ3(b9rO~ge07sCWhnxq^35~@`ON%TWgf*61BE_z;o~*KTE-_*K=gZQ$%0xntq8Kw_X|i-8aPD1+AjD_s z=v)`d(qWHSy2DFdhUFf#Xg;iPP~fqdrSm3xwA*Cq+zicw6J?tp@g4`LELMLcRN>Vh zmn@x+J3yL#El3Q&#@aKas>;%Nt(c?f%+k5b0gD!Eklzp^w57ra9iXzHLJ3uv3Y%x? z{MG@k^fV{HZ7|Y$Mp@d3x4F=~gLpgI0V)f^l2F+b*2xZVr6()_ZhHx< ztywxxb3mJg^g7jz$j)_u%7VxwRQ5!6i342eiA;doULtE}mQLLPYZf#%=0;;La)8Q$ z#w1i>8fz^}=M@gHrKd9ia;9|V)>urIPE)_f=?5mY5ozEr!6=U+GDys8I=+7=T zpOB?<2Q+4%r9-qtSvo{tkJT(4BsaTQT6n?PyAO#&&(irIexdWz)Mx4FF`@V@9sRB3 zEFC_iP}lAeVWTP6Ud)`QHc_CW7^T z3rJ0^8%YbwES*T2lUX`X08knS=x)dqbAa@i#gxi- zI13uKGs}!D9Yl77&}*Kopt5w9P!ny=(kW((Lq%-^*l-$ZOO>Vbf{cchU6u}NAd#h` zIcq9Q=L&f2L~@F1YpzYGEFGM*OsLlIgqst-%F^K?m`gy1hEk@9cAgzT^6Y+WSVD}rNe^(0vB4uAeIVR%+mQ-fQpX?sGz$nP%(8`I-A#D z;FP7K|E{fBI(kQsoh+TZkY-}cQR^(7dlMRqaTaZA=^(7J+!ARd8|%p`OXnLVtp9vj zI=?fK(9SHK2%LMrMG)e%babu@W$Ca-EK6s`H{*#qh7P+t_n<}dVTFSNkIgKdBkj>{ zvy6QxG!IUcZGOaw4p3RF{z$08t3NJTI!hfOO}`c-24G|D8B$ec=`0j;G@V&G8y&D{ zu?Bgz7@;i{UhDvs1rG68OTiL9Mj zI=^thngxyh#Er)O>;RPojY+7&G}c;{&fITVI}{ll5Gg>;l+N55i^h~DE-2u*C z>Xk@8OJ^1m3}xwb;`HF3ewGg28(BJ&_kxo%dXF2p|7n@JW(pe9U*=OkxEm4*Z(br=&O9#o#E|wNvaP}@l;?T2n7U35` zED`u=>a%q8m{5F{j{a7Vd=MEt=0oBOB%Vc1aa} zy0yee#7ejB4Ou#`W#G5OP>~A|VWGJ%v5A<-8yO~GBBwe_=iLl|)Kj7ICfu$@_EWa%KXBZOY_WCfL_^EPUt%~?9%%NB=<+P;eor=hk~ zSvtSTXjs{0>7WJ@Svs1trm}P%g2zrIr>OSlu1%;c9h|gGsMhd=n-jju(%~YQOF)N) zRhAA{(qZaM%F_8eAf|bi4!$L_bWZ$VxT7o`y2~Opg-rA8vUGSbK;S})7{pRRi&;8L z5CJdS0GFi!D(Ef?R7_o#&IMqP|1Q$e%Id@`y`#rYmd-|`nZUE=62Ll3=YoXB zVw^>rEFFY3mRll?WMe&9W$B!4!urpbr88_Ip`BSe5jgj@BM9+XIy%>dvUJ!ZmZfur z%dp&o7R`qh4hlRrvveBvXt&AI*$vHu6J?tp@j3^nELMLcRN>Vhmn@yPJ3yL#%~1@% z#@aKas>;&2PR!ACX6by!0gD!Eke?7Ew57s39iXzHLJ3uv3Y%x?-0J{WdYTj9wwLBI z&(e9=0aX@+^*cAhntfNi0T*X;SrC?l%AT+eb$}~9VF_^COIU5q(s`-_+AN5y6PkC> zp=%tVvLG@El|7N2?EqJLA`{@Ym&n?grL)xmYZf&2JU1FEJ3wVYV-l(`jkT7gbCm;Z z>FG>>oGG2TH5QYl)70-VdRq@VF7-;JpQW=C^)Y4X+=A1CfBIQEcyDCsXr886fI1T! z2x1=~7N@h8&aDX~mUWiSyRffTvUJ{)091@|k*b!?JD@+i*nC2k&WE8f`z#%zCCbtv z`g*Kp=^(k;#nQqH&fb@iIP@%?H{usMKTUm>jvf<=&(hJ~3X%^ZgU5VGq420hmQG}k z*=6bcgkhe88Ox{c0j~$l?)Ihh1CaFLfL!KTIuR)H{-78pg7xl&r>S)#X+fE#6G?M2 zOJ~lvF-u2(BQi@ze<5I$s4N|AXhOICfRTumZrvNQbQS`BlqhS7p&}O`!a{RjViPfu z`!h_yL{4><&It^F)Kj7ICUV#?HIT^C(VR7vr85AJok&hmZNF<1 zDoY0^EfcCWJmKbqud;Nw2<8&dp<$J!!VTN$SvvTZNKJVi-cgng-DQ!Q zLZ*3kSvouzAaJ2Y3}UIE#Vnn-1*mv?fC{?H0u@u1rPFo6InO!&+?Mimo-{hLb1YvQ z94-!xj})tU{>w;bE2B)EVcykaCs*e)NI8Lj&Exj2G?k52 zWtFS*2@}?TzFeLAOeC~3S0@7J-n|GyY_85i&UZXpC;X7*>pbK#H23gD^Pz>q1CPyo zomt^?)Xs(hVC z#2ig$zRoHKELu?EGHBj`3eR$Y%7O|dRADM?p09I(16=88PJr89n#(+2XT$+j7KAnI zMp!R!fXaffBvkf-^3Ew)Au+K+crT+!~9?*JCD$T8pjX- z6AH%sea?&-i>{sAHQD9u*$*P6C-sd@^bL*_YPG(tSBC>*eu!*q;4yy@exv=|J0AOL zC12;n1fXI(x>Wf(Iq1(WN}rIglZVFa^L2=pC|`%@>#>@zgXCrxPYW+SduJeV==nNF z;1>Z213$GVUuVhoV!gjq-d5>al6p+%F8lM~+yQV}A<$b48K&TKtr z=LtNV74(^1*3R=7{yCtr-0B|o+G2LMFQp>@eTKtwnP=@ppvdzS+e9$n1@JVrh9q4m zvUZM&p*oqjb0u`w2**+*PQgkbUPI4n0~C7pIgC)O^z7b{yK@}_za_ScT#yJ0(0z$n z#6(`pFaZ-e)ww%2F#u9eh03OQH8xDy6pDH=%(u_x?z|&gOsOo0w?V^pCYq#sl?8#w zju3s#Qy5h4&a0@2Hs|hqAzK_OYWr_&I1RO>%H8>XM#IW3cL%kQ$lcK#HCunq`eV56_WI!Y@U`Ag;1BPo zc=;J#evX%41mFD9QJ+<_nU@~-sJrTZXn#2hp)X}y!;lQc)z3T z@9Fvny8e-_57YHebp1121p@yZ9;+?!lejO89b3yHD{s>;Sehe-}yqx+OxSWBPPvhnDcsc8{aCsJ9zKoYU z@$$mY!R0!<%>Hk-Y3J&Xm6dq)cDIa+)i10OJ<$BK{R#79ni94|gj6dxzU2T*Y*e$4Q?;KMrwF1seL zpFDrk%fl_Svsiqb2Opcf&Ek*q=?^_B_sA^x@r!{ZB5CbyF%P=Dckw5UgDxsoYo$s# zH(DqIVN`=~^9SHX^C`>F8oV1|AfPVAJEpp0LRCpVHOg0^ezuwoH%VO^$K&&?aY$d4xI0&% zZfkA>2J?Lkc6o%t+1LzBun7FW1;;pU4lhXBGj{d%Sb^Yo?uAziUWk3_s|5==@EpQx z6CjM4*;GpgyP!W?{a!6@gK3}ikP~z-#(NnwX1!#viCmXW9xWA|K;kcXwkM@nCJ%?) zz~>{<$UvGW$Qb7tNRG&0t|X3@2_bCoahr~-3JHp0pelmGInz_%%?F?|kLusB4zPYK zC@e_qK2_+C5CSI~PZW=PqR<-|wT~D_FA8 zc3>Ho+-?$cATDEsQIeXWcmgr(Z2`m16b#GBtsPwQF65Gs-pF;4N0uvr62|QjA(DfI zua@M|@MW9olLa9PhId2_h-+wz^CS+wNN825==8;|kHdg86Qr^9lG9G87kAeCa-B4) z&eOYdrwtWrgZ;JA_Wl~!pT)jh@Jg=p^wYuQ5qe1~%sIk8Wh8KS0tr}ea`<6FV{!EK zO&De&iK;#iF9@6?tfqsUB)*MQT(!yJE)&+q%cfHRhG^IK41ibe3sJ%mQN$dQLox5L zxqsM1K{NL6@_vES@k_WABPY$k_`SjOMPS_fBZ5Gh9YSc{Z$bkNTT-o?S+nmk)O7Qq zxv%v$AKF{jGj5J|UP1W*-`*rXSWJgZv3j8j>-&?9C-n=BFa6DsWSeZv0VA$7H0jL+ zM5rVXwCJQs^A-R|uvG-`0j>;N>FY3IzH{B>-G+_a4wo2W_$WMT93Dlklf%7!q7s5A z5|vKEJN(m6RKj}+?`=p&q+B$b5d-)pqhp|>))SSUxE_>ytuLo13>5|j^Xt}c2=arZ z^qePO<@Wq32r{<^1LPSV$Kgrc7>>nqY+83L_5-MR?<*5}j}f@3yosea9|JKhM-%Pb zSa0GCXw2H1@Q6kz0g32_yoz~p$_&q8uaxM5XpwO2l$m4%Wo4a@voD0FXtNW)2#66F zA#6%txUQTl3_vidFbMW5`qa4{5bXjxdAKw(R4u|&w5xN2y_#Rn%eN71A+!2#nYZHnBKaW4U^kmHnbT==w3`M#>{5!Ws?28%E%oHDVC6t zqG~>MM+y1R+d)oOq({n!$Y<5UqCS;d)Ipz+4cBve?&|u)7!Y#)%+g@}65xaG;G1>j z3C&&(8{aFG@$K`Ez5PAk|0x&ZyAsIR+62Eop|LpLurR?9Ry(O>7=+3MpDrM_m8>viUc18X5>cDg)wvor$1-c1NXU~#uS#jiOCk9f>7 zZXDMtkA||ol}Rn4!^q;C(QdcLezZ-qfNYx4La97Ce48?1yq8`G77af1t@QmhaWmQ2 zAD-04ii4$XrNPNPjRmkYB#ih;vT7Rh{j7CiwoCP-5TSluX(onG`{38-)b6 zh0qT(FXf{?)?w7v6k<5@ESZHbd>Cr`FCeA`!#5Y{(-iDz92H~xO*V;uM2sj<%LdZw zz&060Kq%HhiRj*GNC323>rA+7gd<;3Ip;Bhjj9)^DSa`AS1{hU3Yly=zgQoyf~N@H z;9wmVxC`J84pz!_kih68;?|QYuCu_3NnxNeUMCMy`VqNtTuXr$V!X$!8)u5}90w+g zQaOg-xK|skV#1%v#tsuc)w$^f27tRy1UtV_HlcFXFQF#doU{IK+2T-9VFMdZLxl@f zNP>qVk`3$GrknHDjK-*^el%u{N#m%vb8MtESgL~qGY>tTiLoNY@|mqIVDjdVVDjKN z#_dt3i41lvqOTmAH^F1zSn}J#-U~icF-3urnWA4_P=)wuLN0F9E}*aB(@ zBuC85>JAz3X;5R>-QSpY)F4QXs0o|XNtiJVx&$j&*YqSRZviZ&6qP6`G7*&y15q0# zxIMtx%AsMkQG#2RVUd`$QG)nruGo_dnf6hZ*YK-|+r;jG`QHc0KpQ3K&V6?Pr_OnI{mlylxvPyrjtP*V5mgcfZwlwk~RoK0+m9TqsU+oOShXeo7 z5QvaGMuvhsm8p!oKLzP0SS{l$U>$c~l+ak5X0ZsSAgp#m!*JkL-2F)=tl4e04O4Dp z{(JbPi&z#^KAKz-qVPw?{X$lAzPFHNFCL?2!OUz`v&`|_*rv=Pgnfxq}KSbNi;2D zd;tp?rp3{K+3cff*C3HmG;KHBnbEX3QSg#U?^Bqv)Y%duq9Sb?^NPUBF$hYaWvn7? z^&rwVR;UmADa~SSDIz6fTeUI@=^UlOVGKyra<%aR$WMlyOqBfGF*pKA9mOgp!wwYc z@Di*&L1ss3WF$9G%oTSQ2gl*vP&UW(fWRd3D;NT~nvRjkkpe@v<{_maC|T zuCW573)d-xh4HJt9A#6&p13hEBm1kx=Z{0KFz%^??D_%NO25dLVqIQ1$kU#kO&gE| z0>e8rT-#ikjR}p#2|tVQ4#FBs{E^nI;a{ro&eKd-8!wvHv`RsfDyGq{4NY6kkq4e< z%q*qZ&=i4auOC4Of;Zu8(K!+mdRR(+$JBM%WgzZ(qRj^q&J$g1%l?Y{!-roS9@Uh3 zeIfYc`ZmaeLa+O83ggIl%Fue9Jz71B%HG#N^Wdx)`I&tj#+iLQ_v@7oP+8=DNvLck z-kThtvXFQZs_^Wl^4~t-0CLnSlkUHz2rb5JeACi=H%UiGt%SdaNGL{D+0&wpv1Vu# zb!^R51eF)&++*Uky-)G5+bqPthe!R$e_b$f^ec>$zvD2~7M%PoF<@Ix{;>m87Mv`h zis$4TXU>>81OEv;LIN;D+V35}vtVfnUUm}_=c$ymYS(iF@PVypV5tw< z%V?Ft-}Q_jiY1EEk;3s$f7dhKOL*0;XU(t_(csgtfxy49T3A>WvFka~ndHkLt?h{3 zkif9vgssM6eMhtn2*z&dbFo|9t`4VAGpTZ30+2CMCDq31jnH4bOo)_MjC^&I#Jd<8 zQ^|J?S=J*e1#L&6TAth^a`1@EXyY`Io_jf_y~&vrtbinE=RQmJQhTW{M}pAzQlEie z=SDQ(ZL`<0=PhCH?fqyW~B3~~Uays1Me(E*6DLiMUsA~hzxmk+fW84>2=6XEy( z30R7)_2XNNz)O(Q7m9&-w<4BxMQ!|)&GuXEXFE+o)|<@kG`g4vI0;9u^^irEb@1ml zv%kO$jgyZSF5~;5d4M_IWsLR|Kj#3Ig{LT?O7;Z_uZ$GF;Q&>nX%(}7+ctF!Eh^0u zBpY7pDHYKXV>LXAgr!L%5Tio-O{vr9=k)-io#*1=u!ehSG~$q)BcdgW@?IJ;hTSk& zSte9@zlAmpmnIN38)aF~Ti`8bbHx>MG78&lxe!#H%#0F}Pt&B8Z5^ly%f%fLSyNTo z%?LKxfUvcs)b$HZ27wFOoYKB-7@_}};UPPtNt0w9Lc{%$^SQCx zPJ=oH7s%D!1qENV#b^H?^aG#}TH!qy?`W}`?y^|nJp++J`5Xadq7rP6(mypS4%)Kj zk0{9uy95NEMm5}S^&cIwjkN(faq@Hx0*9<6rbuH5oMd*VvCn}Kh5!q6 z+FJsBW`|i?0xO|;2TR}?4p3QG0uriZOCTaDe31iKDNKRpQQ?+s0WsPbDH!SYCfEW^ z3DoE(2S`h63mlUmVf$ZIQpwLmrv$+NuZrLih=wGBO zOu5t5@gh0LL6K)!m>)7%DphjGN6?Rk%65A8il`nvTr5@n--UeUc6Gvp-!6uOmV{p< zJxOe8^6bn8YCq6UpxTLhB`FIfaP;vHE8bhpo01VOp6*j<3c zdusDvbn$Azpg~!(sN&UR=x|j!&9x6hKvN{vE&#EVH(^)qFBGHDs;w|9C8ny|dl}2L z#GGj?lXsfk?S-?q5eqtp(}prXK{f&x-X{=0K?+uQ^IH4L%iUqlOH%{R#wJNoUalqU z;RR8=g=Bm7-cSwbAZZ*E=(qEwY*#^9&J)yZmGklttlkNmW#AQ4ZlWhk8Li} zrzxwXv5=b>&8o^p3?yJn16Th6^2*LPi%BokBe&l9IPbI%_PKBuglUx><8OF9m=7&# zXRD@Gg{Sa#CSnu(vMwWBn{}BtW~F7_ICI1X95^XTei)9}+Yp<20zyCQ3D6r(KzI;i z-rFizusvLN4_0^mxOQJh5A$dHXjK?85sKxZVtKFxj<0^$5uKH!d%LxK?yS+V`a}-a zoXZu~RBl^o1a=S?Y5>J}c_v+Gaqub|0zby$Zd=fK})Vhq`XZaH@VhrkXu}Vz&7pDye`|3sy)TmV#5^G zS1g8hZp-xnkBF=f$QOoU-eGfjW40qydoW)K4Lb#D)E-PkQfxFPiK0~fzN=lKPr z4TdHy>S(y9w_a?N(xp23s<_X+FBe^GPb`LK)hL_%+uAVsA)=N`dK`&Pld6{VxQ-Vy zq8S3Qt;;37rq#UeK(tWw?yGo5(L1`!HhLFue*4z*PKz!<)M_kmNkS@5bjz(S=>;~Y zMK+Jvf*MnYDWYswIDQsaUxnFeaW65x`H4N>q=~IPV0PEIY5Mn0#>|9P5v%Qywg}94 ze?V--M%whmsBq$U(@LHD{ScbAjA=yK*?Qu1ioINv6w@@<=O2I%J4Kw}2RBFfbos%@ z3TH7!EH&A85izVlLK$B1y@1f{z2ZekTjUilfxEyfj*~~ek9=Ixu%kR?jXi|N`~xOk ztUTtP4U{%atC7OBg9PHZQcxkc$?~^M{;tW055o?~J|I=aoULRCh;YN#ok_kly5RDR zV93<3c0zvjaHTXTmz;fXT+2!WAH7(DytHa)d+>(H_8^DarbRY~&tOBy(1|=78z%X` zUktKdJDcs^4#a+!cME^gI1Zx)eipoO-khT7P!zJB;e1_focCAxJb}ngJeJ+ zUohnxC22JkQQkB0@N(Sp0jHgIhj*S}8NjH`CfkEE&U5%v(mz9_fM_ccY$JgkNEA(k z!so?m33ogxYN34DsqC21&CA}@tji*B#!Bxo>BgS0A-_4>A*%q|8?a%b zJY~>;C~G}{mdX*hJ)>dijzGGid}uU^qI}v$U6t_v0eI{r=v6@Py{=8DfF4d-Y;>lz zfZpq=2@9$X%I`6X4Zda6dLJ~Ng?}fdqoUUDVZ&*t_2ell%J=JRaiHkuA(}Y{{ix^% z(U=MS*eE?YnJOU6g)6sQ9U4|~P40<>=_RQs-+u#Qniu86w?tg?=m+4A;+k}qXy7ZMP-(5el@QbCJF`A$LvP>A>B02OqX1uD#}ArA zbV%_Wyb$a~N(6vTvEUIiPXRE?P9-(w)+*!G!Q!N7;>+`A%-A*A<=p|F8)tZ5rH^sR zuGeG!_SfL6P2Qb!?Zz*@3AeIt*Io4OJK@_+-nZ%gJ9PanUGJvrJ#h8DhnMfeW#dfm zUh#1sd~EW5K-c@}`a^s$%R3#K0|WR0{A-T)AU*mKU4IPM-CiF&AHLT63H;&x6fZx+ z%g^!hi{QIo;@v}d`9Hk;3NP#Nhr`~l;eONb(VM*Azzz7VdHCAv#mjH;iT69Y{+_OX zpz9y$`Y>JpMAtvVRUq&$^!Fq9_h0eyG-znI_cyqOp*{*9=N{bYt%NT(dCRen6?pkO zzWEQltf42X@XOVBnXv$VIDh!YJ>E>X^Jd{?13cL6oq>dkX>v-mBy}AN zUk>pL=g!8QQVlAcPwtjf`f~Ukab@GG>5S+5A$uV-cu7t`{nrr(ci{z(ne^yjN-UA@ zQBi#?L*r558r;_Dy$LV4sl%haAechrQPL5HO+5^>j(bOnnL1j090MPKyko`3apEH< zK8_b3CyI}g;R7h96F+8nUGU+Z0+(G-QR@6jFAuku!Za>}&&b&dMQIv+PcIcmhH|vQ z0uoPZP5UPf1P5Np4TQzS zR^EB=vB}#k{y3lh2nZFX^Y61@>R$}vEQ<5G!VG6O+0?6^nm@5MLk66y2c@*68USu0U830!8IwwHL#>v~yKlhAM-#UccFV zwN{^m(Y-BpVDI8j8uKrdgW{<;>T53=J!|!O#h+)6OY}orR{El!l8-^4XhUfd? zIDhQjxgGK(j#?2?<|;dIzZwMDa_642Wi#Gmpl!4;I1BqpQUXt+&{Bm7C~FO}=n z%FsBS6+8Lj$xV%g#X@bOf21&8#+lhp-yI;nt8Cxye{&FhBW->EOYs^O?D4-jEa(T$ zQpVCyQ2GU0EPB5Zka*uloPQTD_u%FGc)1TR_rs;={RUnGv-suvqwM%C{ISRT9bJD< z*FWIn8Qvf1kB8xUsn5rE!yiIxDCEmjqAx+q@v7{v@WVn(R0*vX8&G*eBB$LjfUiAPnc0L8BHki7d(?w~5VDv8LnO6!A~AM2G#oDvqt+cgoSZ^n;Lr38{Byvn zY;I&>*OGBi^Aol!j`Rfx5|TxUsrryBu->d~<|MbYa#)IMFa`A2Q9_iOM+c z0D(p092T{_q68(F-5%F79|H{CupKLqG-rifs^75LPvq*W1QNU@;uNcxES*f5N>gV^EM0 z%+_qwIXrM57IlWdJ-@d(ALwIXX;XcQ&_T8aFVv+se8R2d<=_?K4DrcY{ z8x~%a5H_5WOr1#+vZmGSLx@++i9!ac-> zqO@jT?i@b^(VaU-L>`1*J72^XNO?iDXarR*v;~1BIJ_$dafuQXm>vcVIHFW;zT-kH zn&d;F1*D2)cy+LdyEZ8fQW_|M+NKJ|S||$QR;ZN`WJnp^m^}#xEQ23}FCq&8v%_C-tTL5!uUCP=koXHwYjhlm zw_L1a%o`KK3&1zq;a!aDftyvkJfFK*H%djRcra}P_989<_se&5u|lcZ?oIietnUP-dClT~X>|R3Oy78OA)HNdVnynGsKv7_XKlz0X05(k*^A3|$!4 zh#}w?iU`c~o%}BKEDn3&*lkikRQLTU-mmy~zUax|-`3ZI4gO{fg(L3rXru8@O6HNh9vU1@Yu{oN9B%pk^m z88rq12Tv71Z48HW!pb@nRlt)vVHIN>`E5SM@V7NGjku$JcMBY5iox*>oFVQi`lV92@P!C-5S|2P>F6N2FG9@Zxna+986VTv6 zuq#9xO5^zfz#R`v-u%GiHSizja$9M8trxy}Q7)HzU~-Z@$WIhTN7(DtVt#Bw`vygV z_{RSw$d&PtdJVqhh?$1|#RQ0{J{quM7mZdMaJ?Mha?kK~2+wOYF zbqaU{8D2>VDPZs{81x^pVhfXW>ZteEJkQ2St|65J-)_m@nc*aZ( zB$|*}c!G`UCuosKZ7XzFs6&$1$Or~jX}=I|Evuppi_S+r_jC|%pxKnoT`7|@N_uXj zQh|`G&|5*v0#M3)X#_8p`P#&4@}>PpWK8&IiObfP=qd+nK`yCD+m%~LiN8$ z=%5W$kK^&Few}WQJJC)GTpbxrcfK4FhUY>~mAt!uOdsZ+(v&?os8&?u+mIS-ajbNx zC%l`(e;n_Fw3(K0#Sz`Msp5VTL zT6#gTx~PwSf}ve(2G4<3&538&-p=lc+**1P^Z=3kA^46u=-Rm`_@2~qf3aGHhct}* zXt7Z4>caPXCKjD?%F>8;^O({GXM+!QsfPiKc?@352eQ&w&`C!J?S#&u?1B@9yF`!U z_0mW!j|0ie2QW^85OLQJ8z)Nj{{Aj3J=C2W!hIC*QM>|*V@Z7An5i(4Z_cdEah=g6 zf3-rvOYe(T5LeV(fR!QKMi*dY8%$R{ct$_m5)O_>m1Bxb~bkTQT;U?h?}LT?dJ65dOQzu@is79bMw!~DgIF71GSg7!j` zQ7-4tgHEoEsaY!TW;_cA@7v%$@4NWR;$t+ZtDC#Na&!MmU zA<1642TFz7+6&>xvB(CNMl_IH(w*~voui*W9m1{Q-bxaah8sZ&ss_~Fw0j$aJ_ryqFxzARNJ@_jZJ|vc z7upo)cwA^>w!q#bwDm>V=Yaj4dQo=n*aW1rm0MVrWmbRKHNs`trD|(Hnq^t;Cxw?~ zLv>6VhvF{$%E(YZx=8&jcoi;f(sV2SfzS>V4Jws;upNJi`sL`-Q7YucQI4GQ_9FI8 z91LN(9$c{O8JiG|1}oQM)v+s4uwbE!rlJjf&f9fnepN7 ze@$>QV*`JFAI$P-M0>F>OX#2t!5SQoANY$3cPEWE%nB_mU#M{RHRd?A`FtM06wX8V za1e`?F+v}$Dqb0+y!x?aiVl;D>j#FpalRE3Y0)WQ3FJtbW*{5VrTlbUh!)HJV&Fro zOmTnnng3&gVr#20<^MD>(mbZ@C#Sd}oD_^nv5gO&@xm z5KD$BFybCC{_gZ);;9x~mI5~iO7<2U%9&>leaRdDzv;us%sviE5?44#8q&Wt4$veP zUg?ryIciyT>_?I4oBRc5pV=jTFjlBSnFh$(t932v9;vP!sfuP1NC6{ssgNy0V16HR zyuKEuKQZtvPzaIlYN5Qn*o7d|S3Zg`^hrGJN3~Inw-9^B-|7Eo4El`d57m8u1{qSt zCu6YUUGKWGbEHzMb;5y(0)lEaj{#G_1&u{D(Mj;bi}blmHY6I^cKn74Mv-xg5VeC- zPqAODtdC8}l4QpQVzrrxXUh>%Xs8u)ggQ>2Gm13Se3C8?ttWP!m3X?V9R^ctpujlw?E z!gk8Uf(=VlM#XFq+-BHIO1dkYTK~iZu(|zvu8ERt-Q?#abkGJj8OHQE_;c;;Ojqp8w3OSr7=0qsk z7nvP_owzu^c-i8mE0(QVy?XhImCKecUbS*rcP_9F7w=-PE?vE5&FVEvR<2pOde!1( zOIK-cE(yK4a^>HJWy_YWV*RfOy}5KLyt{bC(xm{z zYTo}!{_5h@tCvCFtCy}^wtCsJ6-#wgtqQ%mV$HIp%K_R|s}`?WvSJ0Slm}Q{9eQ=y zs%5L;^%cvPt|3%tuddkz#kX29#=(_a%-C$p;}ieSGx545c|Azd)RrXfkg4G|t>$|Q zUlJpT!gj-_CfK_ZGwG|Dudgv{Nk5R!(4Ex8v+^Kmlt7wGngK@86EP{A;TQqXc%QTriJ6q zP*H$}BK)%W3v5>|!bVfDJVqu$<!8WiNO~t-gS};%xAPm1}@;81^o!6!iF&8NzVjOW{%m$$;GSpb?7H%x$QtU;uJ} zUY$ufWpa%({4@avR78ZA6VbYMt`SGuydSR-=UyX@5ct@v5r^(FR4hanIw%v|<$V~1 z&24yjA70*#mtE*szW^`fbd#UG5+5wX%iHntA8=7ev|uB9sDVB7<304l-5&mE5B)$p zx`jF;)}zkI{in_-A%Z%iKm~P1ci5Rnw)H8v+XG7%c-s*?%*^(liccxlpM6m~QNDOT zR=!vsvfx-NcbQo$mt|ud->hKneK1@*i$Z3&lOCXg0N;Zq?8*=~E0~LH;};;lSoVh} zj3gDzMG-hYFy5FCO9Ta65}5R!xgSjBv*6O0JyaU3PreG=((@-9b0N_f^!_9s{PPzq z8u%`FMXOm5tV{{F`rr+;p;&A?LyJQ?w?gMV>WV)M(|}9&$L0VWu%t(o)MK4@{M2#s zWakez@4RCvbS{q%&@IuUQg;2f7P?;6lanO_*{DxU+4UcqcYPpqeGx1)fei_3BCPi% zDSMxZM43!+hdi6=D%IdT^?GjmI8=UP5S*S8g5NbC|D3apUN@%f^{>r)ee%B)MT{QKq|&qZ+;>h`9T-Tt|S zZc)^Qy8X|T-Qr4Y6Irw10>3gT!}AAI_WVfm0Usm2=%TLz&Q}fx{=K$KkQAP23CwE2iNI)I{dU&Lgse%FDT~Goe0r5l`J2!YbK= zMgK74+~WMw{NhDS?VQ!N3F)B;3Bc+Z3ZUvCsQkm2dlvUB?OAM2*?L!eE3$u@YZGms zGAcwX^nGm+TfU?EAABf2V9$IJNgetjv;vrngT29Vq~20#mm}; z|04+hTIUp&H|c-3EB4d`T<_XM+b7`I^MC-WCCYvFV^ee`EkeRJ#CwaC!T6>dJaizAm$20c)5ZISMqTr+~*f=NJvP4a3v6K z91H{k9|XdECLG`IRrTwt>Z+dV>YkO1|7dwMocX|30r-RCV}`G)r0z zo!f6u+F8Y=$+$%VQK`FPDE^XlQ~aha3zC&$Ay_S)->bOJFA@-k(T^|OUd6?4G^&Ur zi>vcxEKr~wZa5TMu6NbP*>|m*YVWZH+(L}4Wu(JG3~ah3F^rA8s_QpgT-V$3LMZ=! zq%>EWf9DO$=MT=6v1kNFiT8oZy_wdO&rR!Qk_)zA=1K?wL(EmTVt>k3A%sW>Z0BFh zt4$Tet9c>T-5_U8@8SvMEueez07c1UL7hk{Apf@q#1H#QYsmf zkuV2@lETya6 zG8-g!I&guqh`JLk9$zuigRiffNiNh(LQ-t)G|`wTDXetij=Tz0Ho09u9L99vqUrA5 zrJCpoYS+)9xN4NmQ1?;)wO(oPmM!vTHfkofDt+Vsdg=VP#dZEac_CCi_@y*kzte^b z_RtZfbX9M4xxKlIQ|suO99lWpoNGVQu*;Tpv&#ir_Ct!TkrZ2n6k>^`kiyOzHbatv z9hD36Lae(*&Jq@(Wy0;nX16hi)yPH^+Nlzh0_bL+T=z)oqQW z*a|7ODk-egG(q2tT8 z#+TS_ZO)4}RES_%<70VMsr>#UQk7}(qMy^?jw8wB9PsyrI`y;1o`q!#Sl2CflpY(o zrjf?{G_t@!TIq7yIe5I1{!iTU^aA`JEvtQ@1c{E0J0CxC-xpQiOz+)&^xZ2TtWdXhrWo?&x*6XrW;f&CE$#{5&I_UHTE@L zzdO}sHh+)07ilh|mS5|mnD-Iylni=5$X-;#TYW8%md5m}|@|wzd86r&sKT3%-EA;-& zcsL>rN$2w#S%UTOnzM!1#470JHrM90xpJHFybwvZ2~kDVe5zz!wtYDuloXy!Bs}8D zmgc0P#cJiIl_r)%V3fmXYz{^K=x*hl_aQo$+1ZWFrY%^7tFcuH}J&sS=XY|89IT;nl*Ny&uUfV18 z`L2LCjNRyShgwx!1}CPmdEt$p$>Dv>WycvD{UD-U|TfXI<3=V?>w4*P?Sd_89S_!5d$%2YqPVs{npfL-GlBE>;3_x1+g4lHZ|^Gj z!8+=h&J>0aA|KF%NZDQRz2bWQPF@HVk-jBOl{UAL*C6MRK}5e+Q-p1eQ~$d^X|feX z*3R8R*2rjzO%S7CmV829h@>fUv@fcOk`*rpgp%UJ>*Ej)z?m8{9MWJ%A`;5exXZNC zCuM!lqt?w)E|0<^#7f4-t-^)MwCbnVTAxScHN9${uFeaQv|A3-EANqwWDW==#cT3L zq$t4=`=JkCg5x=L!$6Eyhg_M?c4LJNoo3vc_A`uI(LWZ^sBTZzj(#F;o?XApg-B7 z6^_^LuC1w#mbu&N|7~8~DfR!4fJlwdeIFscLfhmU9S^%%+|@%#7>?<{F*I{q>GEH> z6&q{8%wg=!>!$H5^{u~=Xj@4%k+SQeZ52HTA(|C?E`WRm6ZdoTLZ}*XmJ{NIcRLD4 zmE*sly}{B$3guv)#wT|L9eCi@&Dyg3C2ZlV;c9|R>+>hp&5`b>ug_W$P2-{=3UN@|;TxiG983D^K6x{h#5XMQi@eUK z{P(8E zf0nu_(dX$`=C!8s^!p2lR8Q}JCV1L4 zRooXB-Bwm^)H*es@vX0anO!dhuARQ+rYbI~PjFia$5e5xPUMA9F@IDVrr!zRv7@yL zw!oTw<^$`datsYce3qKKd3B_mx0M%S-PL@;5F9(2NH@IuW$UJDjCl&qltV~foL5&$ z-7m}wky+ijJNhRNR&H8u?r&7*7U&>yGopN8-E@A+7M%KR@LF#E{=7<4dVi0A$PuG+ ztMk;E@?PA%K->E;klukt4JZEUx+(PTTd*t?%(SbInJtz6dvTS1skchkBf%3%i%9S$ z9*%TOBzQCQe_Dc9pQR77Bze2(hkNKjuSDryRi=AaUx|-Jy7%+Eno{YW)KsB#@AFdG z{cg(cKC+DaLg1z1rc&WHhL@i9qjk!}aL!y!Qj4X8(qrv@^eNykIMRDkUI-O&rSfyw zPq~1MKRF7Z3!(gf zNgAQwf%pWW>YcUDuEZGfOV&-Pk863-Us&ySh)Ds@~kKwW@Za z`?u?+?~}H)bW$rNdv9KCDTTi)FGNz|IhqL7%E&mC142nLp0^+*1zH(#amL{r-Acc{ z=x2R$Cn}JyiTQC}r6~vcfq+PDV%8(47p4+9{r4V))Ij9)zoP%sa{6q8w!g+(Q5L^J zX7OJo9FfHz|KpsAq;hMin?i2=y}TBR+*;fMbNJl4=fzkLfJXZnYE^ zOhBZ1c6#!ZBlS!@P-If*EbVNFW9c-xa;gaC|hx#?3>Ga=V=vR+i$2)ByLmyk+vWi?`q+h%U|~qG|L2 z+ErPKPbX>*uwJYtb4-X_=xmWk%TlLRs=oS#Zun@jOFx6?WVy(5+Idac(<48~ej-Dp zE#WC520kTNTUpJwbxSY14J6BD+3}CVB|EKsQ*EWx#&LtVxw5p}UD}K5hyFA|R@MFq zdCi++ar8$~qnuYZiF2J!PiSF4Tsx)D+PtN>iQgEmNawj7b`8BE$i%X6mYrW0E?!1E zzd9H>5>DluuM!ZcLlAv;h_jLoQC;3wsw~YJeeHjTP+_fXR4!HRzZ9&RtkwR3VLrj- zv)tnI;Sy$ai_ZijA91%hH|ZAb#cHF0TlG4NhG%U2Nny`81`uJRt64qcAz_}O7145z zyM_yy(K&wqhvyv8K9D#?7?7H)h}|Jp@OWTx7r7!_`xzUQKg#1GT0t#GxjbCdjE-`@ zVB{knMb1k`kxHXlUhb|~KC-vCkCcMdlQoPyG|WfzGFtBO*l;N`y2tgw$Vc2gtVTxe z#jw2Nxy8L>Em%8Qy(6%Z(TZp}$H8zRGdjmJf{|04Bc$6ML8!4S*$v78q0-|6qP0v- zk8=!@c)G(;hiP}U)kYU@%yD)0M~i#shl97kgM-92V>!7lr0;V#%EfLNa{*nPA3q%4!=h4%`VDx()(B#=|XPWo_b-{a0H znpN#^Gh5uWQ{hU?7;XkKn>J+}ZX#T?jP@N3Mz*5Nh=4eJ4N%lo5>;V99)Vlh-)!Af z!lC9yb$==ZD>xQ+Yp{BZ&OyGJy*8>tRAYgejsC326NIk(&>?j5yY?PT?iOoO}5B3jNd zA1-7@=coiDA93f1(%DFJIOPywku7xvFhL;p~kv|XCQC1hpl+N}jsO2ax z2p2V@qdYGdImJuR?vy)SbAjt`iktJ-;rh!s(&iaN)yrgA^%vn%Wwh!~gOROh z@*@Fp_)^w0g{msu7F~BG+8KLA(|vzlI9t6pAl9b~bCthh57@=CoMKD3fEk@)b1?D| zcM5FIL`0p&)4fCD_&&hIGZZH`xSw=S)3r0TTZg7%N*J88X zv6e(Xt+*3BIancCo#3(zAt5f6y1 zJHTmwxVfO=1I0by{lOZ^>H+u5&^uJcvYg;O;eus!f_DZZA8{u*T{yu$xf7s->r2YX zVDP=-uJD~;y<~L-&sG3u;Vg&vR=9W>9pW3o$SDqyV`fQBPRXf?91urva_ac8(d#DV zx*TKd^5S0>?xWlj5bM)Nxukbs(u!pH;DzBrW%R-G1oE9>qUuzofB{F=F<#uX*Mw^^ z<8+m0ot0fO%fh?DWy@&c;b3Gd%4`!5hi}sAbWLHZsn(ZNJ^>OHTwrw|STB8QcASN? z9HJX8UPgy#1tTAEhd5W$S+8v5b;aG{)xp}y>K2}rRXvJmImfHQh0N$2FAqjO;?8lQ zrnzprTI%H>pD*qpp9$7bRtI@_)&ya|RZPoCJ{2x#Mko1XF!B+1lCu*|;%-*%`m4gt z%I|}9lhr*Q6yzSNfR~3GRgrgG8DY3^EcZ}u4bt$%f2^Uu8fv_S1_^_S>7%n z4&S(kasfKl)u`9shbRRHJiZ&OkgWAOs|$!ySuXJHaJe$Nz&C@DkGKn*9M_kMI9t$g zf^&Xd*a^-A#QG$no+UWRa#?P0TDW8x-Qbj9!mDH(99Mc-!6(}S@2-EU>T$3Gx8d??v@^Wyq(gsy@(Np{42xkN7qODwrpK zGgvKI>wL;sU5ZD@^4SjY^>FzzI>a5p$SDpH(%eN5Dn*e2C+ozn(d6|go~EZ8P5zxwwzJAK@Lw+&M4EI91zMG z4`aSOD|{_2U*0&_>eS{jm~FJ7j}`Ak$?|`!WKNdN+6FeCfdAxXhp_>N$GWUbiQU4V*Zxxnq=f@O4p zF9sv0xIjol7D1@ILxz|f5GwC@k|@aGbHw9^7ORz;R+^YHHzLtF|6AA%&jiH!B)}=h zU#du?70PnL)568d=!B;PBU?@=&7Z@AloQI-B?p9Z!o!&SP6$6sOMZ_Nms?W*%y7=# z;-x72J-wSb``t`Gy(b=-vtJUAv)^MkkBNNL5Jk!#qV24)ws-og6k|E~XkIr|>FR_grby;KD+yx=^NzE62*_^y>XwVCSw{Wcr7W6=x^DjT)$Z4jeivh?O)Wn}e$lwOeXfVfDO?cWeCR7Tss zRvPY3P_xB-*<{gyo2skr#E9_i#SQz#a2;ms2&GJ#+lCb-v(wzn8z9yv4fTe2vuL&>+$CJJjE?ZTKRib`HP)7M zj_9i5p74Nhb!UtSDO(905g~1UXdqm+jIMB5Fmg&v2uX4y2-Pc*?M@B|)hjvdIme0Y zk)yS?nRhG|cgA|KS+eFGDT6e&Gm2taxyM4dU>QAeP9WbImhGOSTNbnUljY^Pa(nxZ zL>BU*;$}V+uFZ@wC*>MFx0$sv+Rf1O!)459@#h31Te0Uh0de^9k<$#}*eQ z46Ts1bDSM6WJc#WBN#cwIdWv4DtVQOOAd%5n7p2{lVVkMj$PHfM_^BJ&zuQ1P1cZg ze_tbJ6)iHlT1IefxNsRga$F$a8IsuZl4=+b(YqvCb^Y9xrxZ8#ABXERV;cLgP-E+* zwCw(ba5*#D{Xj6X6^Xh6;_#)iXIl>98e)43q$-%tzA;!gSwlg}@d>Jtau?BVqFxs+ zVn)Y!bujV~cZ{wG?3!i;Y5nPB82?iLqVZjm}N zvhjC?gT^s{Sf9)`yh%~zv?Iq|!{yBABESE`bCL5c7b!>c^T|CO4=nB>SA=UmW72VT zaQKLeX*39YHj0axx0)5rOm^n*Me)e zyJe@stQ}tlL9-?9Gg^FHOWig!gr1G% zEq@bfS!{_u{{Rdw-kb^XMHV~3i{o#ZnA6MtVgfj$lp z{Yap#7`%3-Opjtaa{;UhxglJHjD|j1Am@nKeXpmRqS6n@A#fu=Kd87BuMAhAGs(5B zc!ArBTn@{a_YapOqcOJzBU`ohQUQ@#Yx{2X6WQw4p-vS@QgFQN@xl7Y8llfivAO#Y zryIlN$Y}8!f|2h$7Pn4vdtPyiKRZ|-MJ+B$Vb$?xh0BrA;?E35KH?USBfI1H*uN`o z^Y;a7B&*HSB753FvF{F-B%{^e5saK-^^k5w1fhE6GFiw0p?c+>tg!Fx%jvacTy3~q zsg~wj%_Y|n6u&6$fjOSr{q&X7flAENB6u6?>O7{Pjo97c^w-B*ZMXe{F1vXp6K5r;3?JuWI`Vl3kE zk-ZCyMcf#yrL1Pcm=TRdM3VErcGS5cT!M^IXHPJ)6?JCvLa3-CohYOtSW?KSlLJCY zAqQA_7_=ZvYlFc{5oMBx8DS@BXcW6vT-ZqI{HY;9^&*F&AoP- z(FUcZ_5Up7E7SyiNER`z2}&Oh&*1~QksZUNE?fUDvUPzL=zoKi6ksGV8ZP3%KokzF zJmFX2{2AMypXaq*-#asB$ife-lv~y1P6_^s4vjf^bje*pLt~^#HLr0mK=fn0+lsDh z7e&1p-IB?|ScbhQT%3%Cy+<&z)uf*4^76q4dqMWn#E_OA}} zgvnI3JeSx;@T1_m?5>DZ6yJo&f9I_OYQp5d1VoNDG)Fd+I%9J3(G>sm!E}A%euG2H zXNotXdHcqjGS8SCpr5Ydk$J|1Wa~9!B4rQp`i%BY%$T&Kt6AyQi9)_YGbYE$BBsrl zq&Av4TtK(6Yr@1~>Y>Qg1tv@$6|AEG8_|S`G|oUIy=9|Eg!5-?1+VUHy2F?PZ<2){ zXtyfXOvzGl6V}63=uCO7u(}p?qYV?rrLau75H3eXQ_ck=N5ZK_yeuG6>ucY;J#6#2 zHr+U7&W^nlvJ}i|Ulgp7tku?Ob1sEt^F!fsWVHG7gOQK8%}skRb*+kY-@ z^bZBAB&*S*AyTuV%VO9amk)-EkaH@HaQLsXqLqMEDtusDje zU{$Ec=XHBEE^(tQV_Kgyy;@GwB{a$e_DKZ-LJ;BIUGxpBB5UK%@ZWR*MEGcdiQlvUy|6>Qw@J5wTKf>~V zAWOjx@-Ksxn$_>3zEb3O(WFmQ2rH8OEL@C?j`w3}ue4Sm)sTIUBxe{Za0Zl%k11@= zdjev8a^h%Nn9H7N;pD<_VKQ3vykKOjBA=ZXLWL9QTYU&8IUtl2GSA5Yp>lJX73Y9Z zQpj1L91u#1|Ce_ziljg`dlVh^6I{{rL~L;e*m2WXpfT5NB$D_iz^}rBvOA(uX?(MH z2lD!`%96VR;;^VKwWst_p)x&()_Y1RdVXc3XR+g{^4`pyr6&D!1&_>~B@&N2ORgPH zQv49t&uDQva!9-Ey&e0T)qcK6h*)R}?~p8ITK!4yF7>^o+{D`qN)v-qiJbdiBdZta zHGLvjS6R&!?U{(}G@uv6&bB`qE=b1a@x#H$R`d9e0wOg%$`ds|iiqY~6G+IqG|_ z4TY_F5g_`J;actM+7{VUc34v@jb+z+gv*oBuIC3MTebKc0g+mZ`yRT_Rt|u3GL~xX zHf|^`RhGELRu}7b>GGj07VeaaTA)xk9B;EiZRh zEI+ulxF0+*STR}s;9lv`KrfHw1gqf^Wpsjl!N^D42~Jl|&|IP0$}JywQ*j@7eXw4# z`oP8MKA;uHa)H-`3zX3X{wf&xh`Ye4$_1*+`z-r^xw!qm5UiA}_Kyzqa=c|czQ7M5qF3)l|zUQc86Rd5fk25+!fv( zteLE?&?`%zK@d?O+X>zgE>K1%_`ku(DNYbFrx8J@89_NLnFB)22p;x9=o3e$cf{^! zY6 z&IQE!^gXQcCufQ5uyR(oL>Y~HdN8sTR!+?ep~8xEu|Ke|GPY;T9aeTjAq9uRr-OBx zJFFPRu)@k@xF8ulZ%iQH8N!OLfwZvlm%G@<-Jfy!LahKV4da;D@HM_u=4hBK{9&Y+XV8RA*|>cNDC|9 zEN;`UhpRGgSaFuf4l8$rOO(;Lw+ACzVdaZ?AyinAF7^i&RwlPiyTi))#}y7M=Kx}T z5@xFtWE8^+D`$oalF{={6UcXlu%c@qEv)P)ZquP~Rpt#V&Jx*S7B#wuyQLDQZQS2Vz5qgXDdcAtgx~gE=Wet+b59k3}HprKw4ON zeQ}$pzAp>pJ3(kU$J9Yua5?e#!gf6l5bKkN-p5)r zW;keECOf=r2$w0NfsYPGw!+I%c_CDIk#5$9@R9>UNg+47P+Z1Vg%%SXqk+Q|sxm&-SdF$M5^wTvwGH;zD8GCJ=lVu30 z1sTo0hS30R>)bx+dL?!}t8Kki2wG?Z-4kV5!?)q&a0=b(j`K!(8UJ08@eAyrdwa05 zvRW-#N|7+vK*E%A>ppo|UYoAVmA?=#xxm`aG#h{T-s*NdC?j&N-{`(0KnUfU{D zqu%C?OJ*lXw}(rX(av8CMz#{9&k2abx7X@E35O8N&h|H3H`SKK1s>Rb*KDmO+~cGZ zLfhG>oN7De@qp+@=4`vi!!o&tyPUSO92+iYMrXNOFmj5sgfx5+gvuagXvzVh^4K@@ zcG> z1tTAEr#MAA1#gB(q#qwI?h5}Ltdp#+kka`u3uNaR9|{*JqxnA=jC{n+f1%WtJ4Z`6 z!!L_F!_R^>l+_uo=oJ^-#j{=G$Km2-bd4VbBd54Vj{H%jpfWAV0g+5Wb3iC5H zXjBW-NbW8Hk(yc8Z@(fwv?w~1EE;cnC7m|+Wqe!DK9W}dD|$(o=|Abs&wm4tAJG4O zgZ}SF_`hrJT7UKlM;$d@|1thJSpSK5{!~1FMqeLQ|GD_%7kJjciMP7-R{`{z` z?AH^HV42IS8|BhcH-%h!xQG;R>AO*((uP#~nd*u&sE!|ME>{{|nx!y&`ZkmzEQ59X zG?m8Z(|?**W6G!hBrk*th)>N6LEZzq{qnAP?3QQ1K^X4Dk>yScytgbZ-+7;U1q`bEnNLRyRkZhMTJg%1bMWiyA(^UJ6`0eM@Jtx;5h7%G^wYfus88JJhg=?8X|}2ZE2~D>`AwvHF;Dlg|3r-vjgIIR zyBnR);78^9OAuy~2X)uKK<|GM57}Uhi}qq%wiP5BPtzT<85i1^r?yGaL)rm%__ONJ z+Nr_?sO(!;R<{ab%l>#zYGtDqmXPp97T%0evU$APj{4i3*ibm%9gwk>*y%* zc+9)cv`~0V?QBNS+>E*Hs+o4*7`cEuF1R8>);fCHmQF;ymEyIewrc4Oc{QinzCC#% zlFAQpz^EW9>6L9o4hSX1C-a6IC56lb3Q6(iB2skscGphsG%Ka$?otUOx~*EZE$*}b zHS(ZqHq?Jk|C~_&1^u(J{u}z|nEKD;KX*a%gZ{`*=&!rf|Cjzbwth5yc(?jp>7TpQ ze@`Fos{fY$IiXIMh+lJ}xO(@Rlf*IJ*PJU>Cjo^zOL&1YXZ%Ag$Ti1w*EW%8?P>+m z?Zwg#NG3m;uPtaFoq}I=TGeW)Mp^w_R05Lg#zU9XzfC=;@6hAF=<$6#szO@&a`NH$ zXbO+25Sc#u{-f~G59skDdi;bQKcmMl@Tdww>1SW~20r={J#MGRSLpFodVC#^YIp4v zYUSFcP7?#>d%Ly9oKPzX^IW`5!aYw&rT!xE)L$g0`itbGzevl^69TKhNMQPlbpAXc zx%!KWp#Gw=sK2OC>Mtst`in|Of00?9CyJ^5qVlT0sNm`^(t!GlR1yExT{~%^fkR*- zW3>-G_t4s@(u&nN*&1R?6UR~PTY#gdzfYPpQn3jLN z;81knFm;K?*G_EL_BIeh2lqB{Fs=G~TeZ>LkH3$p&B534KPSvpD~)oiEV>ipYsbzt zE6e32ydpZ=<7+3^+EZ2iHwV{_!{zL-CZ@#>-FRs2q*8ggxjdvk>F!-Swz;>CNqO?t z#rt1#RCnz-+>5rnP;FN`q8!IYf5zW$tkgPE1eBIusb75DQAa)LQ2lK2Pj~I;%E}78 zTK@-x&iZDQvHn5)pIPeqhw;&P{Uh{TJ5H2vqBXICQf}&0k?xl}Rb0zaUTTv<_>;lb z0{*UlRJ{5z@uXpf@%qQ{{|D=zz!MqfzleX35K#LPm1=Q63rj;BBpihd{Fp)p{-Kb8 ze<)<&9|{@xhe8JakySIQgd$|%LvmmILm}fvpgn&OrF<(rP8q`EmGrpxc0ArlkNXef z@lJXi*n!8pcH%Lz3y;@48js7a!Q*Z87#gKNC+JUlJa7_^_t9hQT0A~`Js$sX10KVV z!Qk<6Jf6Ia$C)?daV0$tweUEnjmMklG1A3j zo*rM`hsWpk`8ds|5iLEo`T0qo`%PJo{q=c{sfQL zJp+$dJd#bwg0zUx>$3{~V8FUxddRJ#Kt49v^!t9$&Hi0hm(b&bFUMo(Re1dUU*qw{SL5;O*WmG<*Wz)>8|ZzyjE~-bC2rWR ze}EphzZs9xTk!Z#dffgucs%>C;t;3$9xEnXVK&2599H)kKl33NAbAn<9KZNBp&}kk0<^s z9(z88$4@?u$G`j=9*dvFW9V~ueD(8qy!Q)u%zTNYpam`@#XG)?kN%Aw-P`dv=PP(T z><&Es;;VSv^J{p#h8|!2I=w}a74A+A9{!;Q@5V#j?%G}Jvi^8 zgQEH!6pnFF*!ZBZ)Ip)@gQBPhh3E%`N1p%J1odF*l1gITIsbk&?aP^nQn2*STsU6s;Bfo)=?}1P&i~o=yWc>(b9rSYG z)&DvM4O4-3Ca;e94#K=X$m-_Ox>ZI^S$nkVq3~ZO*{FiV~jJ$Cz1c5@8Y;Vs8~$BlTp&z@4tm_Y(3ztj&A& z)aJKAOW+3r}a&&LSnkC2aMmS?5a ztW?|Wq!)|>qyA4JK+txpQ$hn=H8lQN0@{VVII~0&s8d7FO4rbJlw1Ex43t4b)#W)` zo;wI;3fZ}oCnJm{&0ZkXzZk=0@J7^*WO(_11oGGt%W|3D=<&W#Lp2RR)c+&K>7Bs{ zFHEdmHPC)cX!CJJyH8K4#zwE3l*yHW@pS6%d}f|Y);n-2i~)y|ZZ89BVlPAWE}RDC zR#gc=_0PpB(71O8-Y;&ObpYziHN0<>9qm$4FcN3#j0;=;!mv` z^EWg?p!!4ZU=n5RbG1q*>Jx3p{~9!(BAh117o_&wO{5!V0Ifbj8+c!&L5mw2jOX^b z6uj<=)t=OWR4>QkxieZF4*!ozhL$NQ*sTDme{>}htp0a5<4;YWXVBkDpYAY-Ca*RR zPi_wkM*nA&{R+Z(8HQw}F5Nb~K4TspUd*-)dkwrSD+g$w8Izq)Zy=_kt=es6EzVR*?C zZUN+%p1_dzcgFD)NK5(O0Z#qgCoz~iD5Zccw3^+OZL5ZGmjbGOk6Rhfod%@f#ldBM z-oU&ZaP|AgI=tLd;GHB^b#8m)w5E%U1EzlMvsk{X1F;4~nM;-$U;H${KH}*N>&_@t zv6CV?eEHn~tH1nD7|}i4)dSHI@vXqBzvvkZ7+mrcZ+tBf>(6~A!#*@rq2(w_nYqf# z0azbmGu1zF8~&7$kOs@^e?)()NO-y+ZIrvq7?o@d$p2v%5-&W4UN{${>N3WhVZJcb zMBbz#x_IMK8iF5vF~4!X^Nj)NvIf;}UWgZO#<0DlI@kRoeQLb+6ueRYh3_>zml9%b zpjm+@;33&k#57Y(@#1at;vdE3+iZ$iTSjMbxl%37x0*{v3ol-NEZ(a>;ib%aqIj7e zxKh9<)kpCg%TUn|MR-oW@CABd<6kiH2~sShhez|*_1EDi8t~n<-wlk~KmRcO{LpI{ zR*sNJtwcXh84VI-r~Mzi{ik?HC7)-Lsa@2On~L{dOz*wz<^0}-j`tu#X{m|{|4JOE z#H;^+x9V5CieJ4)%B!4Gu+qi5+wfZbEq~4Lo|E!!Egqf{Z+!qS)L;5)ek<}@p-NT} z35%OX4YD`jjrucU%^GCetMlbv(!+482u9)ggrb|NNcfS@O zXT5t^9xBvGN5fFu90JXh_=nXYe*Sm# z^G5(ful>f)2imQQu0`?Mmuc2*{4Kp+n`=|59V=hF_Bgyz|7`r4RKCfE;WhLL4H>^l zZ+#3Cds0UCTh+!~?2%GLyikAQ+xe{vgjbnd?P|G&S@peG(5S0$4KLL%k98vJG`6(1 z6LQ@~s(;@$W{|3uzZ<}udGhD4qn|Ion}2?`5XksB)#%3;m8^}fw;YTY;kEjA`Q7?y@57(czi8gH{-XEdp$aWyOFYOB#}&Gqo0Tfw zdk4KY`F<8jmR`L#jXE>eZ72bbMR3eni82i1-TM1t0J(9@C4@acCEouyz2E#N7C<(9uJ;pj zhT`R0@m~FB@yqGt_WYoD|85_``>S|J4a$(^BDd~2({*@|P<|Jq$kxn-!uvuE&)M{0 zyxsbUUk0)7PP;J5KzS+v>a~wDN)Jt_OL_D%tm4)BXzYqfzt^wdFnH^DrT*zpGH=p< z^!MV*V*nh3ckBNc10;#{1Nx2kzE1D$_*5FP{+^ro3I7U!hr|F$V*LnjgLpSyssHW2 zr4j4zxru-LX#l(>21pX?hx{7EpTsNmD?XP-tiR_bUid5kE{*|`#QHIy2Jtq$Qh(hS z(uno<+{AZ$9snnTJ^0MkJP@U@ksTp z=%dSTMIVv+=<3@aLBP89Ep-glx4%%|ip-vRcj{Y_lFN5RCQ2!}`t~vuCPEh9QWmMc z73r3IS2VzsZmDlY-IU+Pbu<1}E~i>Mx`iP#vrx5~M&~Ki^0g{I#t3g%&ye!XYlVU;H<^)OoZ#Tka zX&GGo6;zN@FwTO-V%-+)tDspcVAgLv1z*!*)%rOn<2UDzicuW;h0so8bu%`IYQI18 zH2(d|PQ~vpnilCrhkk-orMnoG4?2$c4JAk)V}WeBve89gw0(igq=L)1pG46pt={NI||p^fhz z{B3+k>j~@ozlHBknW23oSWb<_cXG?uGY@rXhhuYDxr*?Q$Vr}YsQz(ixBdyCV*Eu` zicE#SNb`~U@t3J+d|+x7ADC*x2c|~wfvE(1V3rOam_>TVAyGlrjzRYl&N9Csb}F*??hNz0rSi%OxgOp+&-_Nf;oQvl`?JmO%ed5AQ6^rN62ViW?IUYv znlEGWtFyWyC9=PYg*{cwB1;37DrKk|f?l%t(D6rqZS1R6{O{Vv%GFC%+6qEntlfQR zqO@anW_D`0w0&gv$n?m>I6mDVW5S`eyInc(fGZBIZCmVgR@zrzemNHR^9s~~W^3W{ zD=)8XEw9urN5ieSnMn{wp0cjsP&H=bJS5CsCsgBu)Vrm!KChDbFMv5UMiI_ z8`Od)-SZUqz(shh?eGzjE}#r#jebl~--$4*E#<;@vX6t7+JT zW1_{o#2Lx_AMsNy#MBYpT38Ok_1MNybw%mN=Asv^FI`(OpH zY3MPCj*Qhfd64m%h8%-1@QKOiYZPa3d&sv%B_WcMtL6P zW571z4kZxucGR?)XiRcW{PAAIh!U-5Ev+E?s2wl}M~e_z$V@JbCuEF&5-q0Ho40HF z!p*C6qt^U%v)qm%?<`CkfpTe)Kt%SGp%@t@I&`(Bq3A~!Vih4i#${qOtxSwK+Ai%c zw`iBS!Ru{_dU+H@Yz51-7sRw8aV}xA(qd_4wbGWW1a%Wn7Adt8orOS49F@I7acmCF z;6e%gUg|LD5_p@!Ugfu;UG%aWS}kE$vt{;z^hs!@KQ%7>Ty>wV_U%Q~9wRc@-4$6E zeHjE1Q^nrwt(S`DVo0V_H8?G36{^8HC{tp{A#x^d-M{Wd-t@m$5j9LEJR>F)bK2NS zJV&!@I;FR1>qTjxGU@q>l=`i!ZFEg>J^-9N88jw}_>br*C%{<*RcrNMwOUP_1E3ea zP_?n4nO=Fah*|AwHLxGjOXmub=~P3%*u*voy?})pdV$6ys=CycR+?BrD>gysT!pHO z4$7412Sn8cD|=Qjf@KtKsEG40AX9DDsX8=Z(Z(?m7-Wg6jOjMh1*x3`EXsMBC>@Nd z9H3oPSVXZD6VPUfXnx)mse1o}|r8Q8dRP9Wy-K5h7%=%KOorw{dOyv~~ ztTe8ymiA)|s=2@IXjTj56;5;(LPh2!cpIHmg6(OheG5fq1C>ctWX8Zd)>-gK+Y0uD zo7{yWvkRO>P!-MbE68Kk@j?|Xjetc_6^*7sFmf(tGD?l=KAfA>w~FS#W&u<)L1Vfl ztCvWb*Xa*w5tKJEf% z5mZNQrP`WDcesgEA({IW>Zm1fnOL(hf@q_*mzLh?o?Ohr3X=(Gj7ts@I6A=I!Sh~O zPNMItxe}%>aS~05M*fYm6>}vWl}o4DaaBwyxJEXL+0n#x5!0a;ct zeWb5tdt~@*q57y{GNEcw+U5CZgSuY-3$-W;lIc_hX)iYSQ;!|S>|%eI&RNJ$6Sz#Q z9H@`XI)I`CN2}JDkR3AN>#f*T_^?{s7$IXjT0s-IK79G<^EY(2W3h%s!Ut55q4{> z<}zJbW6%~FRZapkwHj%qU#OnGUY`n$w3@I?t8ylM-$K_HbxN%n(a8(-3tZqVg6ivI zGG}iS3*dFyLVbM(WGc*XMo9||WFsjRqgd{GbZwD7wi}+sP@YY{E)+TvxJ<12_Xk`BE!4k{5t&T3y0r9Vrg>9!*`8nXwz}vw(ChoK z5yP1MN?YuYjp-Ex|H~TtSL~h>tm%;l|~>H6Jwd6%nGM4e~?_W;SDi9Mgn9u)NRF9 zZFI_30liMqi!MfFJ~YiS-^>kkri(@BP5pWhYLLvR>yu1r@fFc$49IM{&(N1QG?%NT z*_k0Da24?x1C&`&2WZ`2jyfQYGKlBR6$m3^;mHmx>~lbS7oN=1d&=uI7#$ovWXH-4 zKRCUofh!mWM?1Zv)x4#;JY982|1e*3i2*(x-T-0>3@Yrvrf6DLY^&b8aArPwRiiP$ znC1A%)t#=!;eoy)U}3Yujv*Kp^9d{_a9QBXXi z-U@Yn_hX57bqRs7vq-y`%`(sULKlrX=mKP7V42WuN|T9J9vA^3Qy;=FiNMXkkK-$E zS`U7K%l!9DFTcwenU)s#Rlv|J#RFVY$Q4XWIJKaL75-#ZEX3LR_V zSW4t;wy!K;SB2ia_0|}lyAmKX-pj>EqaCz;rPSQ(7&yw*x9?>k8=j>>=17Ms*-^sV zdure{#i>Aa|ZWDV_St%0zOdbO}6W!t{swra3>K%<8;JLGNNkh|Fe` zi>z&UXTfp_JZ2K*qU?dZVyRI|I!4ZNB@mengBLOaL~OQucn8qjderzNCNm;kH5e&X zGL)IC(_}-Y@mWq;oX<#-u|Q7>V~1^TkC}9#r;R!gmxugAqM8}<&D-66Hr(RSNj=3mCXJU4C1HGIU|;pt_z1TM3qo2#>9suD9bk%adF?A4Abp_<-MiyUaV>D z;vjrIdG$Jsl|H89GC9;~|7gy1RBy|cfftZHDHCgX`auaurbOS;DkbfwHPq|PQ2fOd zm`sXoZWifWZ69ivLF--r;HQmHnHb}17O|KDFnGOFAAVj5%CuPR;-YQRLiByOAI@MO z_YEp!VprHKgsbf0xB!E_4`r92OpAdotL(L9T!M%7KIKGp@{aQOi>^aw5+PB&`YD1| z&F<4f3-A?XEj_C3F764e4ugaBf-#Cz(=^(PwRy9#3Lm5Jp|c>D_7DWOthH(fN@6%} zrLk%_>-GIpP?Cm4+tN!k8X`=}^X!FsPsZ+0kGd7^=B*1 z{fW(R-sMf%RUyGyjEj4S(ZZ@Wia@41yjvf#i=qfvoL=>)wXXFjLT5pGIV(oTXnCGl zrTgftF+K}(?;b|NC4#gj&T9K+`&XfL3KpqXTXY~%f%@1G5HyS6$|^C*V1%_kq<93$ zl&);6ChqMpSo@G|MX0@q9qmdVh$B=c#*r9Sm`VnCy`lBaUHGFz5}rkIbz$PTuFKGe zE=-Kui+ow!2ZGC(`%E6=GC8`xmJt$l%-b9F>s_l_E>*8IvHZ5y|I)^|Tv}IlZMTSh z$ga(n5MwHql2rqxo7lU;+OKN`%%ygz99P3uTl*4wPW#~9F)ow4;+mtm?L&A;G_$T! z$IYLv^FEY1#^qAG+AzJX)A{?*hUw5Of~yTnHlKZH!}Mko>vSikOC!rG-OjFN(_EhL zN4})NKG4X(;$opL;qxgh1fd-$yl8Hcu4qbRliuXo$(V-B{1~B^moX1uhP`B+E9V_v zwkmKE%}s<=G3HjdLPP?Mi7<{G$$$c3KT{=<=y(U0(~6|vmtm? zmnwkR4QwdD+t&({LK3hjsHD0meAJFZ8Q$KfSBwNWi+~wjB|?1ej&28UGw-2}L7kNG z5e)sLj6sJl)RxL+taTiUuBq%A{C7gCjGsJ-(CY z>dhl)X6=b2Z|jb&SBbM74J_us*cm?W!f&fQo7BEptjGeuk`chX&AZiF^g?C<;6jd{ zVGj|S5Q9EEYfQ&wa(C%z0}}?z%sKPEls-mg0WdV>kdlX|9a;z6G5uoy94It243NAstHt`{Iy^wSjJOhwA%6o=`bq3%~;0}tWfMjnr_sPoXsTjPw!TtHod1oD;Nexf;){vjk@gt>=Z98wao(~y$cDP zOM@_pE-hMa*DVP`IfP!9VbJ{me5eQe}2y| zgNe?fU=6ZUl;oi^-n==37L0{dHt`P9y=C}<#0r#4OySK`zWj}~Xv`nhdn#Q+Wol~b zP3qZYqQ$)jD7s;Be{AhZZs0OKdPg&2Hx1S5DsFzK4HO1zrfRJ!nFEcv5O8Pc9E;M> z;OMBq@etpb5QPqnL!mG>a?%LfM!z~2y2N38th{6V;p>KmCuhW+3EJfa-Z2Yj5lRY- znb2}D)6_8TXu#DB8qLG=l_f%A4m25(L(%Ib-ZQveWl>Pf65D%pWPI2tMJ{^_6vmG2 zJux{nvE4+^W$y^b!gtsp7kpqk@LSR3^4cDz6XHow#U8B_b1Amc+2QxqP*# zB?TbU+2yl#Z4@q_Kx9I!&^0}Eu4+eLf6t|N6=6&!rR>D09&?FPT)i8zJhg-Hn9TB3 zF>*+k^z=0XDO3-!+UWMeO-J43DEd#{CsnkzNC^m@C9s^A&N?wlUDSC6Ak$gR41Md^ z+E=uh(O{X{_Nc`18ihSdJ72>}ALi+fw`A}unm)v!Tt+K4*qi-|#s+h%pXEN*cB`W9 zW9+!HLJ_KHxzjP{KZ}MU#$=^hwv2vY-qcdmmN6*PVxq~6fcS+93^E>sFLH1~GNolr zIyR)Q!9W0}(orX@uXF;C>8#38YnK+xe78$Q$t5(4Y_Dh)EHx~yL?Oy7* zOm0;VG#!0!DH)SVtxypCz;xH5p&$ljTFZ&riHxAA6A>PhSs5%ANLCs+SS8V$E}Fq= zuuN^Kx8vGFTvWX=DAQUc-iNz;nk}oBTeQR)EK_4+i5zT=9ZmmfuX2A(&!rSO!RABE3W)5Wu5Jtwd)$DRjTzP4M zdxh`HHx5-m#Q4PbdDcN?;Z3ZAf^tiAJ$HMLyasj$P7gB*8#oPYgK-ftL5Ni^xNy~?2%J3C zP#7DnRcSjG6Yimd@ToZDkQR@(dr$gP&X|J8oTyW!;YOpj(yp0x)?1v!Vk?Eh&>I20 zqufZG4s(@nrrf-TK0;tjtaB>K16D1)cvpud^rFEqI=K-}Pp+abGT5k<+g2>_>Yf74 zB35f?XY|{MOh@*nBXOs2(@>M|db7&q>A@={A|{kBo^~vA$Mscx(m`Oi1*O6gqaK=WqL1ac>>j z6-v;-Y0!---T9N~GI#79~R^E%qDqhw6h{2eEDza490RAyJyzUdd7hf-+12I0jGW;=)!Ny?$ z28B1wr%^;$%tFmc^i#3!5_6sgkGE@<#uKBtm|U|e`I#7vnKa8FbvBBV+cE^i_~g1# zv6ts+=0+fI7c)&?0*M*45+I)SrvwDV_?p$}6#M3K;*_M^wusS~iNb7Dy2dX%Z5sUA! zh21ETS8s@3tBbV-?Y;^fN@t*pIQzt)K`{eazl~nGlf!ElM=1<2X4zB%4J8qB5xb!( zuP2LzQR3ohj`ayNW;qFJs&zW$z4o}0H>#L-U6?=-es}HI%GFEd3TF16bm)?`C=-8tVsL7wS%SRy z5ftNZ5b{qLqI=WN6wxQ*_CsoAdS-BDWXOQdD|H0LQcM5bJve2lC9i)n7BieOdHvY% zSZVvj*x<-`3IA&p!^?tY2F=zgM+^(g%`&m=(S2hfEH}&4;GVv*5SGSL8XJ7{#8heb z@YHm2>xs9Q>`tq%Pe2-EBSTXYeI_#?O|tR6muy6b)XAoXM~4TehfAZwyNAt9NV(N$ zLNeK@lh>E{o9W@HkwKHqI|G?!v;-#8T?o3}!$UI@Qxx<|sJydd!{am4rHLIF+c6s& z?}!e~R;vou6PNin34Y<6rCr0<8P&kM2qvwpk+%y#CPF5-ZFWa#aQynx(8T!6$j;e` zSu=bGXMzqqX2U=NeJh!aLU}vN$$V48VRYnZ>eJGc*;IJrc{%|>F$ek^f+I~^-Ym^Y zqoXlXq^lhhQ)7ds!{yRdgv00Qg6oO z(v612EK&WP9vPb)4ct-bVu)}UJ<`$i%+$#CVbch?bi_c6AL%IixGy@=u$aXth1u*B zD8+Q_r%?^wGc__ZxGiA?udlkS5F>F3FcC|>M4y{R_O>@^RY5{A{&BcCxLGMdcSiW} zR$vTT>UU=|2E)QRqmR&?Fpx7$-MEkmhQV>-znF_#(XN~8s2V^dlN?=xrWR9@c6Nb?IYtO zGick#%`UCCO4UrKF@Tr=4mnm`Dvc-BN_*GxB>I^#2;;&d33sY$t+4T?J1*!5htZMd zMwhh=&dtF7V>T?PQEbyX6Kd!W>8KChNLTamv{Ci(H#NvB2h`u z&Y=IANISiL&_iu8AeRZDf>#1QVB7UG!=-DGwukw6>e50D&_Q=azv(nU2i;ZurqckK z4y%A+N3CAjKJRUUUB+{PGUo=&p$u*_v&k!c9iBwfCjc0b=C21w_Y7W-Lzu^{(^tHS zo&{|{F$uy?X>fKs+HI>>l`H({V9Y@)Beo6i#4s@iwI=qIW_A&msVVPpkC~J>@tBVk zw{3J{=o%-JHvvyF8A!}QD+%Fx~uV=ycge5cuR=aF+JmXiPz-P0U^Kwt@J zVaMpm7&@hJg~<`4^xk^c#?-KW(w~9E3_|3>Iv7F;kkJ zot&JQN(PSWe63ruE0LLnCBuQ(J>GFkHPc6_6a!0yYp{ewlQ6HQChBCTXvuqyty4?A z@mU(G4T)3Pa#Ua-Fd%Yw7~GX_gbvVXFgp0;6tq@KPO*BMAjEESQL4gWbZU_)ub3Dg zz22zJ-b~4r=_x42rzKyQw!@75?qSz_T&_-(g~)8Q@JF6DSK2W+Ivp5B66;hAAZDOA z6@4*2k#HifJrWC$bsWa0{R;8tGh#TJ<}wq>hj#|mvb-CUS&{iO>(t25uAzysNeqG+ z{@^u~oh(G0IwBKlYMhyxHJQ9>blXYbFh1oHnEIU>-eDBN+nUnVAIhb3MwjnG$Cd0A61{s~n ziGaM#UI6AD`R&bW0y8~rg@|QC?|s_M9e$Wq8Y&Z0RAS<2tlRJt?`TMRX&H{Gs6xk7 zBSVxGIMnOySN9+^K$#XB;x*c7*@YY#$ATxU8$dLkFf*a>4e>s77DO-qu0b>cJ4VI_ zN0TXDf%2Q6OsiX1{9>m$yk5Y<498SB_8?Y<_)e`wF`UY~88qF-Nm!=Vg9QfKCi@vI zVmv0(EjcnaHY;Z7EXD$sG(njbLJW{?(WVQpZhr$Ie#eJIU0(-rSnWqPfV zU`(UOA@NO8qXm+d7|%sEJ$&u#@c2;QGNc%f$@COuW|q47&i1=NijqKOVm$&;kahDG zh_)su(_%6{c9_}m5jtSp&Fq~IPxl=Qm&x_YvKvXlc3y^Cni(`}Xo1RN12a8!8fHq{ zCML{958mM?XHPf+N?;?&H7b2>YyvW|X+*p)*aC>LX?$P?>(ytID{}IU55!Q6Px~dY z`eAe;v24=YQ%h00L}GNB6qunACqpsb4rU5A;V`oFl~FXO26SF~3LwU&S%;YtePrQ# zBX)}DF&J}D2YjZ4<@{JHiO!i(2=Amr3W-8v7Fm+X>!)c<*EB-jlEh%lAw6h%7e-o* zQsng@iNxsA|7ADbfY0my5ftN#mNObnfTK>14kj8i@5+-DV@RGDlKG^zW@$FrC{A8& zNhC&>wPH3|;qulB0mRsmfHB z?d*8^EUtGcNn$!NiN!pmt=Vy8W@syt4TIO%$%#=NhzZD%X2)lz6XTx2bAb^C!;%kO z=NK3Cs^2{>$WRPV;STc>r3&^VcdADH@@mDJ&(MGvpWKH&t{$kG#}RwS9i8X`hOsI4 zBJ8DZqf?{XSzspIha^^owvD2AGe0Mp8<*K>FLkHg#I07nTKD)UCCR1S&7M5rc% zt%cHLxs^B<%Nst*Ep6CeVK6Xy)A5Jm?jb{bZxwf=OCY8||I4HpT%Nn8y1KvF3Ozi! z2b+$`#HfKpJiEM7uH0l7&fCgbbUG4~kpF^YciFa$w;oyqjKbi!PEG?CMbHbXx9HyP zdK#I9%H&u|F3B6UImG_RWca8{rwN$>)H|Z(U{8T%dQ3@eYc?B>xZu^RIh&@TFgESf zBWxVzwlvyYUI=q~2Yd{~3{c*-?)*IB+KyVIF@)p!Y75|ARR>OPgueB4T7cxr# z@7E+4S)MmfqV{%HdXNe*=D|oS^FW)bq=rttDSsN93CWy@yAkKkYG<-3+I54^JKUMV zr@=87CXyqrk#h|*3{z2cMM=cx(Bt;R1%a8I+HwK|j;#`_jlzc` zN64o(4UCB>rxPBhzB5PqQeJuk zk}2J>{DM?yVlr(UisA@gJQT%HOhO$&;TTrz_6`s^J;I3D=m`$(h{mI=ZL8jD)V7X@ zOTuv>&^8!6!v_pU@TM_dCIB)Q0_o6Ll`hhbiDyo87fF>rBQk9BSiXV)Z zm&|0@>w~@M1R4`*wgZuCxS^0T8Ib9OJ4(yq>~8FdHzI|%2B#J)0%ICYeIxDNxS(~; z;K{E(Mq?rhN0FV9H8?}v5{j^WUa!BJeWv^E>>41KM{{<3+jnO-F_~1e7Jkr2XJ<4f zGL^}`sW}Cqa2TI82K*hhR=cyKRW(WSXv_d(CQV~R(l3q0Sj@w<5<-l3m#p&Ssg)WOvuLHk z85?x(Twm-TV=)i)`^f%?lfz3Z9rIon?AkQwc4?2#5(H9WsF#r85Q46b5wyQ(Ojd zpHV-`5CK_bke~OX42;ASQ6o?(Mb}-~=J$>>IL&XsF&Va?NUs}N#*!_Xs4q99+03GO zr!m}=HfS$m)`Xrt7A9s;CdRCyEb%qV&Hc;bTTGuA-tL_Ra~9UbW4b7?S4yMJ=1tud zQJD?0Of9VNg$&jMDw|;NkCAyMl*}$+S^oRKZzz3%CQaYC2A)IByj%hGLS~ zYW$6@$b42a@f>t%F*q-sj>mLym7nfl-Q>~~ZiY#yF<+H8;8MuMHISywijYNcF0xvs z<7mrrlPNeRi;{r~mTAdlU7EW6i5Mu~j!7&Y1rbeHS z;2pkNQ+{M{j{6o~^x|}2vjC!n7lP4`CRZ_Mv+SVvMjRi#fz0GIE-SS{?UPYnZw}Lo zP@pl1NG3!HF~Wnjqx%dVZ%FIK!+=aB>LOE#8AFTDyGYiSv1l8)v<^;h5b$s&=tRGQ>CD@@4U3KysVPul0-8%JD+*0w%`|VSE~l;G z@K%(HoC%{r620*f(_;DIffC^sJ%AsMV-K9Vp(~Z7^5YIs=bxR$4G!~s^kcC zVJdw%T6!**3X8Q8f0ampOeOLi;Y(>=lA-r2-gi2v4$73Wr6gry zHPDJVjOA@9dnr=FF^!C^G0jl7)xyw%p-FFS^|CQ4lZqTws&g3sn0=ZI-L)Q?lz2>} zDRKBf%`8?iB?>sEkqxd;VzPpH8{D4C(`%O)rfoHKU(ttOGIZbddmDzDCKMNirj+Qb zWI6m(N_b0;yb%WDBI0ewUXz*Hl4~Nvt0mf}(!slmA%Vs`@MrTIyKCYNLq0NdRUi(( zh#9xz=v_L~wX|bm)I9XZTZwv*ny6e-C-1I_*{QI~n}t`PGB3K+c6rC>*0^chtCKkE zXu_8@WTDr=Sqh{rE-A)m6MMzIt#>v71a41mN8$Uz9pU!mp1EOUe1~}}Szov#T;@iu zrgT0$Ix{F-eLIdXH(buUWvrLVO;~2e32_c)%`Z#|t}Wtqu>=M@OMGPiDp#BU(Nj%LH`YZkFW3Oq}q$3FTg6(5I7 zFRd6lC=zo`ROUs78(W{kJbd3^^yV%-Y|ePhg`Csi8pAD$y9_q(0F;MKA~GN5KMcO> zhZAS?c>4+-IswRRx&?7`>^iiXCTdUKzP6e%Z)&R<|3Zr}hGC1enoe*oy&gTZANIA? zOyc(B?sKadbN6U9Xppf4KsUZ(%ls*LSlUM3lzSc?RvX8y-3VV z7u`0&#KGApjCaZ=g(n8%@ulO`yMn>yZ{t(h5~$2d^+}Ws-(w&xcwA|&7hweG;=(0$dlN$;{uZ|vR|M$h zqD>@*B8zefK;{x2PyPWN?rD`*RuTpC*Wg|SV?<^npT`{YWUF}qcN-+`5A-gGn!~Hw zuz~@^4CE8|BKN{on?r|U7HTPo#h$nIF7$K|m@~Fq0&R9RX!IzJz-%Gn63_}z!@Y8q zK%lU8C_fe2(N~x1W$?E^c-^$LoQ33dugnzr6Yaw6lxxf8tZxo~Qb5drQ-5Sxk|Vp` z+b&&pAP`2T$V^&7BY-VjONI@+%U>PfjKlcUI&1ij`6++=x6Kf-B&MdgEC`x?DGTEy z%MyLwr?Qx6%!R2Yp||MUJ+;oFy)eojgKgDWfXv8skyK~8aGts-Q5c*37e@z~(0Tk< zfG{#kJyvZkm?Ii_q?Ra*&Aux>rTl2Rdh-=V4awuXCK_{L99`Hu*&KPt(H(V=Fc_CL zKc3w7mq+sggps+0K*F=VI$y@odWLHJxv=e<8Wgi|oyJ#vsnd+Z_-y0o^FGyS6OFmp z7S{IVJhm`4FSC|rm-o{?8N(2HqB!HQK|OBQy}14fR8?S;?R`mZZ`c86otjmkphQbnvW-I&qgIhF z9p`{}*NmoVFv4O6#2m$79suIa+28P7Y;l18K9acM9Y7BTHA zFV8iqb0Cye-*7+g{+}L{7BF*T>^$P0D%aX+)ZQ7O9@I%(X2!Zo!Cc!{U5*RvssP^A zVyWa#Xy%XN7ZReF-B5S#_+=n6TV!MXJIdR)H_Zc$bKBSj%-qNTNYmp@jN&v~=JFqJ zmYSyA7>!vXPa3Ba0vkA#%&pbjp5(w~=BRuVl?tsmGKZpamoG+RmMCgYV&P_BHk+nG z3B~wPOcNg_4t~iU(-@37qC5d>-K zfw?I1aHQ7oI_iz>sV&bn_qXw(QK!B0=xL^MA~QSgolRq>I*zkltF%YekmNewvVssv z3>KE^e%YjQoNV>D^^z@d@YU833C*Oaw7w#?lUabYfB&)o4Ug>=wMY1d92gF@Y@WrN zyFD@xnGG9{BcF}g3@_3LL%o+I_V86VI!l53k$Xwu@Xg%?4DXaB;gk2uB9ZBfd)7xJ z<%1aS)3lTl+Po{JJVw%B**aTNcvBr^wxA}I3soa~Z2Ghs01!2C~SMMp66uBYfxphVn?vTx8Q z`&)X|$en#VaP1O021tvPFfoI}{;`UQv;(7ju#H~2{QhBLa>=66nQ7zOgiq!kov~1v zm2+8x)!{t(b6FQMvqxh$)H6twH22s|gvAU|RFR*qG-{Q^UW(jN#Xw}Xs9xybIdqx3 zUN~@>IT}BrUpPj>a*rQrc+3>_>cl2|>|4h;4xKG&G!eObbxBa>BrEPKH%fz*o4d7E z74^})mdEQYw6jo6pj%kXL$zMxnOSV*+J@?8iqM#gVl{EmgLe8G8uYdZ`>L(g#oEGR zf+_}M7Md5(SrXOE8!ulty^GBFp1 zQMYw#xUws;q{16LaHCnHDsGla7)nRvlCekNJ6nNXOZB31Ymj(w&M>VRGn}tbsbWMf zm8L`bjt+V0FPlJQHuiUvZD*soH#tq@od@fsMFwOp_IPknhLD(%^7>&fstAvnScfAB zV=|1GIeDJ=r(-b>^?9fci(-?(%%=3>8}F7K;4h`e)cjs{YLvRH6xYO6U9?=Y%zE*1sFEHqa` zUWjf$#4^}uxZK{GXShn`0%c~7z+j$f;aohUbl&xIZZ-+T3|zyQA*E#Aot{0oG{_`t zq{I<~k(!t`F{dx`usR@_73&^{d2W$rHnB3nj3Zt?XOGl^WIn3f`j zlNqVcW_;^7)jVIH&4tRW)XUJn7aq13M>-nrny;7P#${&1qHy7UTa+Q0&#)-I?7Kx{ zOlCAJO5gV1q8ci*8WzR(>tay@mzgmtMKeZXhsh2z8hBScQT$hFtq#NJm@5?@Q-+j0 z&e*#e%mL3hj1OxGd=zbBrHXTk=Bm4J2BJ|9ym^>|CyB>=$WjEK=%+e*_TD_q!KGt4 zc^m^>xp@+!T*w-BG@4~>511}(pO{TvGVQ0Kmo*niU~zGfC`UA|v%$Ps!@QG)p_qg` zS@6s41Nu;%-_=|U5{Kc*^a|eI3gzvwJ4+!r%$*1^5ltXDj#A4QH^HNlouoLZ{vsiOWKPMpy@5jFrucY`l3}8Uq1232Mtmgvn0;ASQ_2cM=V` zxwbo>`$`-q{8fhd`Qfi}OaG8Q!9OI1k3C3UcWkOBp9e7#D=0x>s;CHsQc{A#R8tWO zr6}?u8hdl>#PXY&UetoQhNCM&{H(WU`#~q zITMYR+nt(GB7b|HLL;G=1oI4v1j!>#_)qRK^`~}eObU4s!WRK?gQ=v2}iN!S3 zP%#aT*fSL8Z%0x%2#5)EkHhDVc0ISpDL5t*N^9OyT}Hy}2sz$5)UN8;W6MNh5=!#T zuk7s0Tc%!2X8t9j0!xC0u7-)cK{SPjaJW3=*nGWT%6&54fsy$LKnvFnNM@w^%3s^r zu|J@ulbJa(mJTVNw9T&GLAxGhbKcK_A+?wljmF^ead-l8dE2$! za>JT>^9~XAC>i(+TrQtp8__DPM{P{NGPCYG_({KOqXx;0dJVzXu{Z1PTBL^Pn9PZx z!q~R>em7>9n=QKU)9_jEpmPt)nyAc+r8+x@a2`N|=CchhZ@#xsX?IuX)=1S_X;3Bs zHm_OBNpcb}6cb=e1!#wtEqrg9;x0gh#PF!tfFEhgkIkV}Z|3c0P+&}gmVD>P=rr0l zR~OG)5OdZjfy5k0>f&#Pm#r4fYmF3=2#Q%Q&{)v&%q-U0awze6g97q1(El*8csjG-AG-g8VPk!f^gz&aFKE4Q(S<%WdD~>~2o*TjJai_f3P^C9V zO5-#TnGyYnh;jHpwL(d*L#^ICFoiM!$(+broScc(W!~OPCRS~U8RDRm*I`)iR)b93 z3F~50jFX=#)MUA{NPEf5oPWv}05XYT;W;D7|+fXHV`3kjt%VrKFW#CnA5|TA6@kPV~_oWgM;Us|NPu zG89yzGV|tiW`~i-b4Gi;*n&S{V{ABclz+Urt&v>Z?;WMcpaI5Z9Vib&#@;Nu(zd)F zW&koD=H*6~=WvmpJ^bp;)tAM@hn5~{K#Y$}m(sG*k_foeW*f1ohwtJvF0`}Qmw)+Q z%#YFk=u9Rgvr*(-#;N7Ym8v}0)KM&NMz~a^gEw_D2O=|4c4jj2Ac#>;Z+7M(jX{~0 zvNMxc+>tRmJ~T5jF>Y{svojC30nGf=cANak?wB__@zCm>GwNT^&c&5h70+mt!8!xU zYgw~zoPx+D6qZeJ;!s5hU}(382UoV1S8A7gNFzvQ6&{>mMVoI>dNu2zBs}J$XrI(9 zzPIuff8PzYT(2{B83ZQtx-1Ibk?lrFi&|77GAFgB$+GTB?xXTY*WLvcfV~*UaQ>-L z$fAq_kQrV66I?Sr{-f7SmrkvN6pNP7I8;$YzJzzl0XoZ;{!FyDEj3uyFGibj$YONf zn_))pQF%4Ir_~UJ!q^y-6WEsiyoVn;pasbPXYSpWBU_FvG15$9x{l45OplU{)R&po zj3#M3WH)K^B155obI`0C0aP854@%2QY*ZyHkqPFdsxW5y13q^DlDqxBVum{ zc19MvAIK(l)>`40@bK`s{qukGlb`;C{x7Gv!qBQ(KZe4AFftN}7kB}Cdg2Nv3ftVT zyTm_?nn__89W`wK=k4_#@BS)ybLqPVA8;5SW_9>w7G#>Wg02^zkpe~RvLtFw&-w^- zQ4~`^$3mm^#r4@sr6Mzxt8fSq>nLToy7;0;gZwe4Iumo5lY~neL!}uZr8$4YX7~?r0@Gi&<2>#BtPrv!LVqA6etsrBeQ}tOh z=GTx3gxgG7S+73e5%$V$$y~#Qmwc9Qw`t2FglXZ1RW1ZRW$x$|{~hdC-qv;zcTWNhRc&BzOLw##B&aF$p>tf8ZB%Qd!L9+g=(*V1`ylvBPpUVRRVDH8R)D_>3-uf71rG+4NPIooVM;%b;ntS8WMF+YycFhu9_m2Bqj zggcLw2E;*dZU)wJR5LKXR2yLC^1}^CVVN59&6IjTdV4i;Ncs$z>2Zy7oxbA6<~s_5 z(#Hm55eK7u+Jvi*D3nySZ|)ix2T|DA2I<`3z zI?@vrKFq3J4Vpk07gc1!J>PUXE}1JGHDHIr$jCPd8Oa8&dZMdov%8_~9Ic`ig~m)l z^Di4|KHxAqWeiX5 zhP|Q>*lAW>QH+&qszNbNQvrzagV!QSY3Q{IjhRqWBz@uA{{DIQe*b~)1k$;wIrFU9 zJ_lqz?*llTPF?bKcDJ`#z1;3L`}q#%Mw6G<(EJ3h%9&GcD^#~RvMYvX~yL?H&*(NS^3Vl>nS8=pdyWDkR6L@k;a~JWqU7kFy?VSL)$c` zq~!D3w#P?AQoYYJa4A6Mi*nKDtFss9%2US5C1A|s@){>szQ+HEjIt_Dy3X%%4u^i# zE%lMJM~tLZcn8F-r+mQe^TmO-=>_&yDJ9wYfcv*eWY$>BLbi8b=vW)OneINe?WikAtf0gW zEZ87%b>Hc0?8nB643asqiWY37f1vefS8waa$}yQWdIoZhT%BV*BS0}n^bGotAE6s- zGsa>T9Ayal!xyTV6{l3p4fj1AD#c^A82^&5l?XpJ{*|cAth8BNxpIIu9Tv0DVvmm) zXbF9($Y#&e>b|HEnUQicVRUChRN7(ZX1!z{jCm+G^E^+_&FU0sZWc#;{I#O9u_Jy& zV>x2}gy}V2-mR2N$By_4kojOAf0lT9@_xHs?z2(Ev`>D_EC*vA*oQye=*{hB?%YQK zoC?tI3ROsgsJZ3{q7uYUVZqA-A}{kXW*(>8M?8m0}1%!p-3 z&4_p0H;b z7`wE5Z`NP3imW+y4GZT1nGXxAn(wl^!}-0NjMJ=74s%9O<}G~pvbpaDL}n~J2k)Tn z@YIa%F9&*#U@|MRVXfcm&AzL|S~D9SR&avK%tgfgUA9%z^4*uvM{h(X1Z!m`Ckaj51UL^;j9Q2#xu9kRc18X|iR` z&wHfFAX#rQ|E&%LWAk4DD|udZA8^m?XI^9#f$7?^ra%JuGVQGVR_=62O=Wd7YwqGuw383X9oc`nduclcB?a>{)la z-gJfDOuOVX363UkvtpExvezh{OpxF(0YWe&IKQHM@RUK!lfZfF0|o!enc2AVoFS)&(eY2F>j@IPH^( zHCl5F#vIKpkAB4w6yu9!cI&++IKVOviy4re!1kZTC(^;m41+yFM6{IU z{U32@HXd0!y|_?@H*=u1`AsM>tzu*X2YR~ zL>B&xKNYW&n&l0Xlu?-*Np8aJw>Bv`?Qq+t%>c$svB!~4{l{19LPWF2^@^wT3PQ?_JyNPXX2 zQ(5B=owGMVg_u$hzuvY?CJ@V1=d2cR%i{aby&<2O%%Rd zm2)_A*=v|9ATpzptGIsY0J$6%vn2Le=;bAIM%^b3a2P$t2vh{_W=|}j_Yedq=7_n? z;YWU6d-uwZ{DeQ_y_ejH&3QxRr5BCHVxWc|KU{3j7pvJ4=XZ5w$joR4=~7gtjk%k9 z&4ykg|CEuMgS|n@m`oW%4=CM76?)8wK1k>Bm@1C&pnAJ1$;>W0NXCdvm)MXV|6I(m zwW^3nW*}eJBNEAt2(Wj*w<5 z)oaNB#ym0YCWk?dc6L%d>1lTVo~)`wW#%}@)LeD!Aj4S95(m%lrQzVI5t$L|L>x`& zUE$(@nHjfx@*A*aNu$zWvtb%MYM73RaQISWY-ZT(cSd4zc&xo#ChhhIc!ldi%%WtX zlLIYf5-}SPExqqO?B^(grW3O50N%ZGe zYkD+i+1+6sDN7R`GcT%T+7(#lj)k#{tLgWrDorqhZ~w^c!I&f}usB;~atusS92j#% z=c7O84?&w<*Puz?gN_-`#g?BEP=_(fVD0q%UGQyaHTvgE-MI8AiJy}&L0sPlptg0 zkA%Y#!~pPy76ldl*vhy^Vusi=QI|RVvW1`|#$uKjV=lXUJ(`XU(hi96<4}6Jn14K7 z-`!)SUunyXF+E)*#bdTuCriFQTW9Nn=CsjfbePN;tRA!DoLceKMVPY(1 ziK#>Q(lB+c!OQo*S_lx_;#`?axjVwkWC`|eM*a$>8tfSca;%w{K);l1^ zj}sO8vnvoQ8O(`FPcMpS%oInSo=2q3Y^S=YlYlW(EDyww#Z=wgP;RiPf<#EYwzL-O)&3dIb_|B^pv zZ}pj;JIIl|&WdqVv79ewA9PA<77Pt4kH}J?_a}TMn>lI^vS}_{P)1yZfy^jb=WsYI z2VyW|XQnZ;w0`u&E-1uB{8CM3&OAh-wG{k}q$_zw`dI{HeWB`3^5Bk&jt+xhL-vdH zTJJ|QV^v+I9FiH4JyjS>5zQL~A4RKm8hTaIwEQ-!k-aKIWLYs9WU_*<6xA$Pn4$_S zGb5uS<|{l=3IBl)sWHGD%j<**8uNs>5x-=;Ze-k0c+7>-T+4L!wbZ4#C(06yL77!a zSjmJBk}%*gmy*zbYb;?3%B&$~R%9C)Gc&0|%uK1%Z44u0W(voWAZA{5f1=uM zW-cfOVkcqDdNdfbAjjYj`Aq?4j?vGNUKW7f3x<7%cTOvUn7wx!{;d)uMPo@|naHzV zVUL3f6Q*T`h&&uKA?Ht-b~t3I(-|`hALjCa%%=3W-e>iigY@Unmzq{4!{n{B49 zZN`QHp%{<3QVrr;`M}vB8Wccg^F7J?%sKA6R(@gjqye!U7_*>$Bl@Ec?zXq$bvtvh z(V&Z{gS^F?cTITJ19-@`w7ewimC~)5ZCS#4NR~A9P+rPw<)MtnT&aiRTU!qmKxRul zv~Zb2Jk)_POX{KFxH_h@d7wPRQ#9%TFY2tgqDwhT1KxnjylLbt4>KPUIrV|&bmXb5 zaU3%8Wa}KMpU?|@N`Z&?i34N3rSen^b%;Efh0-3)70y;Yn(0N0{%-nw zv7OI0+L-2*`UN_pFnDOYyC^n)bNA_O7Z`>QPMA+qp6-O{>?DA`$?8N;2PFhE-{geBP>g}lbT;X*`yxaoxA7`Js{r$PNp}9KPeVuprwD~(ZPhG)eK`6(g$A{7L z|G3}oFzn%f=(&zPEg*no_Ey1TI`U5Uxr_;BJ#|~7(Q$!B8wXFxUPTl;EY~;^FqVT1 zl@Vp7Bzp`Urb?=~6p9>K-ZAVBUE@eQ2X$x%{dRSq9}Ty|Xbn98v7#u`*kNslMizfx zp&DOIgW$%t{W5i~42*fm^6nEhfY*r3k+M#dpfMAf-ZA0si}mNOB9z%->Rbws*~ma( z+i$05o6S@21gb7eDLAGH>LVJCAIeVVJa3RnAeoNBK#=Ndb}zSSs9`3cF$pCJp5$U% zD$lGx4Dm1^Q&BD`RJlZ^I~Yua$3&q!!A`H%{_1{ZCUZSth)NKdjN*=$>b1Vj!`$^b zL<1})z=8wnqIlLr$_$he6w_mK%)3@ z2g)j#EGyQpGFka2-zm>A7b1qGji5~I!lbf8K6;rWx7x1K6h*;A2RRS|~? zXr%T8!PI(EWv*3jD-?pnB-r~%B$wTmri z810fdVgkeH!6X4an@*X1qZdD!NJWMwMn_8n4vP>KRNRGS&((5+1Ky!9c8>Hq#lyI_l+k>J0B)B*MGQJ-L5O8K{LYNU^cm1+$D2Dg~ftkC`tcbRte1sz%Y@n z782XX4er{Zgc+;gMb*%p=xYBh!B{TjRq018g?8B$_K%uD#jaREV=kOwD!-oYH^psu zX7<=Gofm*XnHl4A%6vu}zUUNke*K%7F832FOy)%&OL-C2Rg^OapME-mVipwLGL~YS zuNk!mnbam<3=$dJ`35gxD8U{zN3Ht|1oL<-UDg-y{o=VIJD@LkFlNFI-b^yLv+aI^ zE}@eXbLnwVohd4FXCC^Zn|-poVuN!0-!nog*Y?4_E0)qT|+!Hm-V`gB+< z4dzfO4~_lXht(WKDCIF`8s1NrLNaS6-PMh$&gqk3ElRx;hVfu|8u0>(_@8PoW2`gyj@jxdh$j1rPrC00&9V0i~> ztWb`Ml^I^iw{6U)@t99Mf4bXlry~yT)jC>&#XQj?iN|}T>e1soG6AbId0%P76u_8C zBCnJ8Hh-{uROF3N%z_eukBIIQyif^a=HI>cAtdI&#@&Qt!3NSRjb?t_OO*gJqm~N3 z*+?ovVh+lxFfaJSdez}M`SsoF+uNMTj24xgzXHjOlz)_;@yK5Bo|*Z+%A<%Gnfb95 zn)oZTDAP~sd;y8^$>RmToI#m6>JW*ZKVfF>n84#r+hA;c2jn@TLEme$mgNy^o@kBdRVxnSs4ZBTy`jA}Mz7jwexDcBvnE zNh)gsW>BaLk}YIKIci(%M#{lZtSnTqy&U=c#w?>%Wk{zs6f~WR-sFA5tYKEM9SpZy zlq1VF>1M}q$`L3g5hGtUGcqGFg(#`m;WSQ3YL^oYD>$@Gt4Tl3cJq(fT;0|Z{&7-^ z$e>aY=u^4V$o8RkIXDy}wF%ILi7vS&ZX~;2NAVADOgG`X1vir;)<*PCTB<7%0QgJ+c z$e-0V6W5AILl#fu;dpG*eCjPybqq-eU*B|Y+voJu6~z_ROKYEgZ5w?*H1q%ORel7$ zvlW_?FJ4|YYD9|9Evak5{Zg0tT4^FcGe7S5si+G-s_eXY(@qcBevIB$z$Lfqm2!!O ztqAC>i~p@p7Z{eZ$5G9jh92pcP_zfGppdNiMl_)fm_Civ;_g0`Ro3GA05#W5uIBRV?@@}<5>cY(9t?-0`>gWmM+Kh zsZ1DU)1u-b<5nG=HSvGQxK;kH(nYTh7{+@E9@CbJd$es!)>mT$FPmLD$st)@A3kfP z*H1#vI+C9RbZ$kjpTy3UHl(3#A_2Fh*Eaa+QEemm+!9nfLk2wk`Lo|&pG}{iT%V|n z(_D+&<6TnBVq&ek0$8E@t~Ff(SfTr6Yq|uG>9AvgWk1=v2SRbGDW6Z7OSirH)R;_) zEl81+UJSjP-B)PMy@dm`8nsI7N1>a>#2S@}QD2S{zrY(}tDjeR&E38O0xM9aMWHFu zzI=9iRUtLEZVZqnkWBekDdpwtOW;4ltqJ#Ch2Fe}c7VPIo|}S_QI!7e>D4b)kT9$3 z1H=xDX_9z!vZXJl>w8_>86S@lK&DeY_U-lg&;OyK)kAu0irGi{i|^W#3MP|k`(2;^ zx}E(9jA?R({+brF@Y0!LJ5Zs5$)u`hLgT-#=<|@CnLsk-zf;}8kAS`1@|Bfy4)u-- zHa9|bmLC^4xM6&zca$H}Sp<;ju$erD0RCE0wR!dGfVdefQ=^#7)P9XSP1Vemie5gC z#UzP3lXdQtX}mfUK&Hbog2+^P)4^P2?w2Z{F;UDmr{VDkT9NI`Pt4+;#hZh3Gm;2Y zx$bTJ2ok`U2J2c;t(Du0%q6-3`2rkMC5Z?PQ`Gx#-*dOo3*F-rkqne+)6P&_#Cbqx zP}gu``H|IFObN^tu3i;7D3&8}2)_`b28r?gIMe|&W50q15UIe`DA z&*7EM$L9bFvY!$!8fUkHA57^XnKG9B@K`O)x?i~OHBFnFxecGz$lQQrjPwnlS&LHg z_%Sj8WIF6!*L~Mdl2B>9-7gjGZ${@>krt&F56tw1Z|9RF)r3QRy8!2A6cNnLDirsj z5zHepVc}-(v#2Lci4Ju$jm!R zkR+z?di`F?wj>^PIGT?vW2Q#JV@guW>WXdFBonK)} zf+sQZ30U~gV(rB zo&<5)-d>S&d=O6nnJ(>NLibMT^?)9hATnVRzNk6Bfy*G#rVXZwbo`VmM`hwnu@!S3 zrq}@3LszNj9Yz-bnJ)8L|Ft%QIm~A@E|VuC18JYjjmn_oM+ODSl!-OzxZR7hSKnX% zpa{pSHvwe2WL&^LjLJIzl0EzB_sG_Dq>;dFt_l}6^InBg6muDxfROg^rhNRp} zfB(JG*!Xg<$6}HsYS0H~AVoAjYD7FHOY$&mT56ex2^>=;i!6BaV~Hc~N~-aTER4oP zNp_OFo2|&kXD2Bl6DDqPb-&E6(H!p<9*aqmvCDl}E>_twzVTyM0?2fU7vf;bw%j~3 z-U}mMh3tB^Sl-bgUuCcHWD&1M#+xNukqI7?C9d(~B`&H~MB`nF`F8% zzKF+UZur>lX7A}52h4QoT;$o;-9~5PW(T85a=K5gipZQ!!1NdS2x89ShUn5k#BKA* zm}nLC&3gNKwS2%erg}xu+)rQ-=h!T9p=E3rY^-HLWX`{(5jx0zhMTi+aTp$H-0sNA zjvFszbYGPRo4cHP#2Vc-QHA_Tg!5pi{^dN30`r8&Vs%q#>vax8`p2uF*qu zP$DxwW*6_eIi5Ghy8m)|ivLhTn{#LSXHn=JiditVNIsqKS9nuCI~HnIu6vmTj@d9d zOW0nWTz;?D_s#sVm&#)?50ca$yV<8rcU!sq#w7XT|7ld7#$po8U(|;;oAp=i80P$C zn8^b&9dxJYF1uUh5T==i$q0_A63M6t`1;vDo}FGRvhk87fJ}#Em?c9FP^n0p*?zBR z5s%3dH6p~9HXE--fnzGH)399lmfOqB@Oy;{U`&HzC6$_eWt1K{ou1s^ciAeJS?{L1 zET{AJ>UNQg*>&80;)~T5OOwh|nh*zECPwA$$IT2vZfKZRbf#8sy6t?kxL41{r(n#1 z@JrWoy@4We%I4|em-HDUNDjp;c$#r~f_YFjs@hL8rcWg>0)s+5(`Wm|@}|t$%nK%F zo5cJn3WMWfjOnw7UAKLSw>y>U&7voktsg!vK735n5|J4HzXSg1i?fqUg>ByHflxoE zJ*Kc#0`Gws8vW5_vx{Zze2ZDGt2Cdo(}>1A=#ZM{>}z=sl39+n=opk)F_LT6lG99_ zElv-~j99SHjFr%BE|OT30h2kY!#qDby*xWt{$cuF-9G}70`KN|q#g_Ikr*5~iP~4G z+HYREq@JkJI4ObJK9X*wdm@3tVFC(?I0&Cit(6RBMw*4h42oIEkKM}@m)(4ieE)M- z1Yfi7)b0qWfimZROPqNS{?3}@X`8rz&w$i5=nph&+i!81zkiWd>C0TVtPaUlSf-`O ze~vu_%ks5HGxBR`5)=kU<}^LO!8#&6MS`;ku#A$&w138sK`{+3KBZ~yY?+_z`jusm z%)bPLk)3t|a`w2Ad8cO&wtiX(C9GAqSWQ9mwLyJViO(O3v93R0yE zb=!II1eKY));%hPV;YK9_`6FZ=$#^EX>&Brw55QUAqWzNP`%7;MyrxQa2P*GK<8XG zNIG;@Izoa7#0->AK(w>3-5j;t+l8(qo1;c4LxRK{cxIb8ipR9fx9m!E^^{i7{u^AZ zal78!Df5odzTj}XDNUqymwGV+QKjV`g|TUbaMK7Lh%ohyz^BwW%8%SzXXQSDKoox z)haU!NDNNh0M`s&|Nf0$a5NQzbzZ!#i)$3qz{*IB?wY=8mG@nEBnBs~Utlu0C`YuX zYCVBrbc%BE&)KN<)F`Kbn1N<9@dNF_!VY9q36%ego8{MWnfPB3u^vXv6rgVItyH$0 zA8pTP%dO5`M*2}e;ucdUru>MFt?v*sITpHPpplrv`Reu+p7>A(FiqW~83&}XuQ%BX zLu0WW5Mxu&enC%!wNC3Rpv*~WeNm<`eW)@cbs&sN0|LrUt)@X46tiF_YsS*k^~}jo z=2n_70cB?LF#M>|EI1%BICT*u1+kAPFE-1{Bui1H%mA4RI}Y?0lC{|HV6JmNf>MB) z8i#U9YFFz@`2YE@fAZ6x(Et7Mum0^%fAVK@N%xTri8S0AGAIfrr>}Gk-;77dx+*ob zfW+XG=wZLw#!cCkG0kMT8CG6C}yE>NuSzG3p5gQV4<5hP^wzp%rE^*U!%|Z#a4J>g`JvIn4QCu|d0lV-a$y zH$Uh*?hd3PIHtn7Y|;!AuP>w%+SEqXW=1of{@o-E< zVK{by=?@p*|1iCJdwKc#`;%;!wVARGb%Y$4>1n=^(8Gay*v+Z_AiKt8a;h;Teb2`i-k`1;~ilvi&`GS_MPd2?8%PQ$@9#;B%&JOVOZ+BfmFWgus`I#tuC zdi`2ORTWdOUvmgdlduC~Y6PrH)->u|zwVDZ*RPvK9fo76XuHL`i>qv8H#4xx{?-7) zz*LxgH|yDkVy-aE)HW1_!vr*G`(0STPmOM7-t{RJLn-)5J$o#CrJ()0N|j|Sd{$huDN}4{r->G>6~by#ACL99ogXWO5NtxKWvD` zjb^mJxuha6=J>aY<6U+%$CSpPAv|UxxAjl4j&WP{7;BEi6#p|mBk*h;tTz9yDo7>54uJ@l&6OHbx{auu0SGT{5Q_NQ^cgu=i< z8TXsDUI`kf3D@p5 zzyI`ie@3Eka)BL1ey9FK?=&&RS>Ru?&nO^f{WD5vC#wg9uRw6Gf`&=3?IbX1AR)lY zR!ZO=!<}drvlQOTQasa*1%xS-x9uj#k@V`QS<+Nll>mt#m?p>{C$uYMrZ>$TicgB- z*1M=zieN4^)!6lHhGT|GzdM`*C!|u2 z&uEkm{fAS8U=qY|{+z^|GMJfbL4AtLp+%7)obVOZ(Y z#3vot+VkT$dg5+{7E1SP-vsPWeYRfX-0R0~{wYfeO=o|Pe;Jd)h$F6s#as7R+PFc- z(I=l(=rMDH3IRh2$A19F{`MA$EnP*4J#)Lohy8lL#ri5v>uo21xMWObUgXXv;%2VcHh}wrXAalcmhdz#BthzXftRR>~0`e`35aPijlO0 zHvCWEX^Pk^uiziR+pDhWP7v_?66-EGSND}J63J}ej1cpIobYxz%SO;*t~JG#>GCzu^ke(T$P^}Pp!i})=^NzW-`C)I7HCGHO(4UAESbmaEX=JIxkWX zJtJ;R+$(VIK#h5O1ukscm^cbdCoFISB~^2974Bl5MLly#zsJH6R;-I{p~1TG7f?w;W^U{Vft=5l3^kSVN)8AC(*xfHZ1X^efB-4YMXcO{=$3hNOv0E&E=`Uf-8 z6L6G$ox6%vt#CEgYc;Y^yCeZ5W$iiWG8J65wPsKuEFhNhg+anmL>bleoyl61S# zi)&3K{dce^)&Ng7n;Gt7xSC#FW6RX{6IvIX(chF^%|ep=vm_TP(M4eL%(9l(Veb%jV>n`)VhUDC`NpF1E$7+e{#B|3I?PWhoCuVR_0%dQa1iy~lLwuO$ zg(Yg9#?e$Dr_Jr&l#ntSA#`r`9{;n9&vxp@|7`McceniO`6LGx)rQ`+O~!&X!X#@e>0t&OebCb+6@^_Ut)o2{>t`lV;>GP`u217*{~T$YpF~U%QuG?Xy{k>i%%g8r_fJ5Du_EESNx4YTj!?P+ zwWgYIjn}4!6WJ7%PqMPbit$t)PN;BbH9Cs_#!)gK*B>>^^3iIR>w_+B(E-}rfmH1W1SIf~;*{@NrK8)EJAGHI8BMm8TQU@) zP{AM7hsm~E>axcX$snDOqxZ6S6%e8_|_Jmzz>zw96?Ag*GL`%IE3J4wuZ_ zI7gW;^cb2X!)PL@y=W@<)+q72=5m+pzwy9v#K zj5bBi)D5Q^P^^TNG5JDqV-8+=2ScTG=JaNO4xqhcTYBMY)#*^xij1rkgsJW!Fn1S` zD&qW5V~I%AeQ~!s4mYF;xVDzredit_CCed&5E&#BV)cTG&)wG@%;x@qvf6ms2rRUy zk0!Lw@q`B5sK;Ufj9IJPJNDuJ!8GBi7_&uJ!aij%0jNIz0;C7FQuJZW{Z|g+~$n);wbT!mC^SQ2L>mV3V* zd<1cl4vupH$BCj5Sp1`h)(3GV=J-Bdp-qA}zQzDs?G59Dx55^gv8|N7RQ;gOUt9Ah zg9rFuwI4hJstB9}0VXWE%lIIWvuT&&F(X9eb}p3<8+F=Rhds!Xb6S*BPdj=H#cvAL z%WCGX&^i8T66OR*Ovmt;zE9}KN`L0zmkK<9N^qPfY6ITIMMvB)bxQJ3*j#J1jA?fo z`dKNs5UNeP0VGPHSt7NYz;SdnyLWI*(^GV5dMlNq_mxctc%!B#=qRGnTWIub#Er?uYEg*|{G_8)}F>fYfJ31QROFBGUf~)D4`#Zh& zv>h$##XYq2lB@EXcBI&NP$Avo{Y1JK@`%#bmF$U+C@;k@vaKKTG8eLkywYPGka#Lq zWIa4~>uosFeDM)yy3nVV?TJ~1Ex{F1%JWGkDl{PaW2I)B_kXhtG%vXlIH96)CsWbC z$P{QU!S>JqN+>Ad3l!&z&31Rb=?b1Ps)IO!CuE80h^L|I7*43Dv>N1kwZE%LHD>UE zQ~^zh5}Dr3Hk2&4atDSJDw;EsOh|Cf?(TOFlUuyrQ>5qS@^Zy17*VLOq?J>_IVe)B z^ibD?trQIB?2jWD&FG-R`Scl*k?nG}{TQArcW;htapQ~LsA=9-M%tX~l%Wq?v>Qg) zd3XtD(yf4!@AZ0=W((%$9W_Xpf_Fxy&1SvPizY|m!NwHaiK0f)COpAYSe{K?b&txw zdQ=y$HxVoO=Y;B1(60#7h3}O|29lMR&q=@nN;zbUoeJT-L32 z;}lW|alG`@MG(A{u<7ow3^ZH%Ue_b1xhJ^JU7$+~LKZp4#W-aPO4n)5U(>*#r4MdF zZuFW4qytM!+a`-<>gj}Yc2^s4z4uvlK4{l$9yX@BpWy{u%Tv=4X{6eWZ$lKlC{Dc`}P2A4-AbA`wZ zEu_F~ygz+!fuI zIOz$acD2-JT(nMcg;gw?ew{dj>NM!+oLJz(&E(398ggdZbq{kNLAxHePrJ-oM&Lsv zeH3S7?Pi=3ci}~g`Ofv!A$K!PVZ}(g zY|oma3acw8(DP~2Q!0(3AX&VnW(L8^jhy7b5mne+5OjaPz;h!P+clnh>~8!|Yt*l- zeltW}Qb;>oDk|;pubK3>!VHL3D^db!gR5t{Ho!303REiI%=(9T2~@bEm9b=qtCT*| z{aLy!W`?LCvVc0wr{hyoJ~y~HU9x-?bv9*m@sJtaUi!LP&6}tUwFg5 zi#3C&JdTaUZ~Pr`%HBt6#E>c~hjWkA3b)4IV~{1R@+~ysJ3Vcyzg~apR_VTey>4e_ zDTtH=JNGe ztjI_w3w)f!f&cr5$$Y0Twl*ijLvG_Bh01L@bgi4Z$7&0%N7U*Eg!2#J^6e;zTxVbL z(q~(_2vX#7Zn9Y?+RgU>KVofXvrczlC^R9W-MVXhqL6Zn=Nt4MKYO<>{%uB*hAp?# zEua?x>rilK`vCr@{cL#*g6F8MTrci;uU@tf+bk~J;GggC&!dVopqK&iR(}cCe&~JQ zX1uldbP*J@U?F{u2MMQi#{K;Di{}%a6`3>90a}GC;#Qe|c>VVB7|et#%t(q$nO|O< zUcSCMJAM5s7yY$0KX{Dj3B0reb%0tsUcJ3O%XDC-g^z0jArG@x70`s;BM-A*|KZ}* z`RilI?vaHZlYyxDvlrJV&h4L{{QfE4D5=dJx zHK?@3n<{UHIWKyYDgt)31+-v7&B5&?6mKUt*#(V<_+f@E{Fs`G2D0BwKCbsVEjva7 z(qNP~;BK+n@APPVj3%H`(W`?yBysuzuVb`eNC{i)+g#}#>&IvU3X{D`*nguo3_0Ti zR+ZE&=om`)+kPdWQ=YGvH$|sBBsyjO9w?-5;u`%vlW=Qp(Ilmnzie}gh;hW`{GF|x zO8hutgYYnhWv()s9I-u*P*9~`AF)CIr>&q`q&Z@X9?`>!xO2qjV3k675M=>4iFJ2B z;+dkG{%IG59f6i;gXy-A(lZ%No3BAe~tz zKWsd+%#erKo6jtTePCuOziB?R%#cNPRJ*8``J!E3uQN~I)ccnQ6N(V12I_)ladn7C z*N0GGbMkPiR^)%?{>mOM1{ASEe46qHT>6$zJ(_W`3Wci}<(g4p;ZGDOgHAb~jg0k9 zTLLS(L`4^u-tJ~~H#Ez}6_Z6YAt8gsKUa&DV@AvjQs~HL?wd2()m!pJy-|IP%~C|6 z!Zs*P<@3ZNu~FSOZN?-dfk&cqdfd)8(~B(}b4C~T%=OIDE@{(0S=_6e2yy?AV2UCs zp>u!7g1{+`ly3b+i<3KdQ>B`?*#+iaQVlNTROG9X?;f&8;M!9=lafBrG^~iz65oez zx6SU{u+yy}kv*@Q8z>7wk4E^iyL*o#D`Zw>)WZlpYE{BO*jU0rLb_YEy@Z6? zBcUT~E}G zipb`v{2EgL6Be8Z@}e<|)?E`0TzwWeuzN(~|H@nttC$~~P^A6X#Nn`!cHuVWyFy9k z^)VGC1uWs96r9Y@99o1H43uOf3}G*EZg4x9E0q=6ob4f|45Q@Jar z*oZl_EMshxGq8=q-y7OUA&Nw7BlR`wK4Wa8@Pv&rZ1RZk^~c5TqdNdvbSOIyES)e1 z6;_&2S6Q|BnsV}hN3OWd^f_jza5y3n$GYEi4>|alSVu5|%`Jb~Z9a6_19@Xw?r?h0 z^-iV3(W$~fmiBF5f5zc-?B-YF+2JJIWgH3B7OuKKeU~X}OqWr3qA;2fi%7y&6|Eg9 z_ZZbA+#2zx@02dv5wb(SqFd~Bw;bcp1S1;cfz@N@!(C(e`?apZ91PFHns0r%AO2th zD*cm#q2}=1Z}aEv{Tl3QMAUfT7As|%$O*q@Pw@{U9QJ=d>l31V^Z27 z#)Jj+loa=!w<|XVo!lTs9PADOOcciB43qTCcE@;LPDSf%6z1OE(_%$7T$@jCk@OQe zyOjWmC>g%aY#QRfqua6bq;Cwq2a@*l6#YlK^R=}0n6$}32|=iBO+7)6r4Oe;xe!x| z>GQ=FHzz%ueVupryTy7n$#0`HYxwvF{+}k#*VT|kz`!h&FWv3A<=r-;nR8@eMwFwL zop)rq``rdNMm_z4@IHARs!+jAQmTAq#2io`$AY0KVL<@RE`)DH!+Kk9?(i14G);v$ z^R^oKXPKY)7dAz4h^I~@&vonm>nKF%XOZY#k5uN$=de`oL@X>0rfe0tno%hY*537O z#)L8j359~f+1L5S>UQ1Nsm$f-J~c*Y(PVJO_yweS_iD)({3PWoJ6cOZY*uz!U3~6V z(5nxweL>PZSl+AI8oVeO`^Nj*@PYoR>XS!mMNmD~dPNVD_p_}oRG2GEeHut%MerJB zkwvW;Pl#BW_aI@AI4;_Vn zKmmpAkJ12?Gn@iwfL-Ek+}OilPu022^ANobP+*Jw!^rWf_{C(WX9UL}?-w0`{pg~H z@cssu17X-iv2ZutK5VDh#6$N+WH+Uc9;ySpC_KoFbN@JdHSd1Jy8(1LQ6&#CPptQu zJHxi9eM6MGn^T8jENj^WTi@rOrpxYg_LgdM{xF(=A6vS*NqxpK+QtD^6dh&*!j@-6 z&4@yV$wXy3)Ql-~7L<_?pQx(;<6?EQ{<1~rnk>4F-eY1Or0nzD8oX$As0l^ld7LKv z%*X0lGihKw4{vfzs*iL0&RW!eidIrO(a?W-Wb+Dx{mW@uVaVe*?e8C_wb$-hi@It5 zpJSQUlZt_V{-mZBX8xDi%);c~s+s@r6m4$nmY*Ki@^O{>SK}J1*FV2mYrlJ1YYR{P zm)g+6SHD?9L$THmJ+8!4Phv(FKq9h)8!UX%)Fgf>x6Zbt3k9Wwu1siJ@`a=je3Z~Y z($%^YaP)jXg%yqB1aZ))P^Ke!J;uB_AjVW_q&c{$W3V}eyC1J9zZh;xHu{EfF@4|j zU2836V=vA&59um2u+Z4CoAt}bG%F5X6~+B{9L2?5y5m(oi7fgQ8n9_UncE@>EUK1e!a{m13J^vI10 zrA(OWhuP|8+1+5O+_RWFx{_D{7o}h~M^MVe-TivwpDLN$ZS}hg=3`9*Zj#^%E4D;b zSc}@}x1qhCW#_Y6)8amfQrfHi`#GKc>sh;ebwFQ8G|nuddE9C=(3afp$7)3=?ZGiC zZ7nZw{mV3?@QY(LBh=GL8@O?Ev)SLf+VbMVYOmjaI><32v^YbkIfD4r8n2)i1J(b1 zfD;m;5QPPF5cQ=z=HdK-2ov%XzKk@^Kmu7gBWTDL$J)!;VmlPSN3VuJZ5g&GHcm&v zE<;=mvz>j=i>!x8o1J!vh75d#&om_CvGDMA1;$+=>leXq|l+tXKV4*4spZ%>Yk-rV4*WDh~4 z#{lEk3@RjI1fFA8ep5HZahg$e#-NXiL5|ai5YB1QlllSnwSHJ{^zqHn+t)m(s69lt zKvfH+t(ZdE9hmx-G+VKSXy)1Omy0=F(OpyI=)zSBE$Xb%R-<=Y+Az6Dn^X%QZAn9^ zRgu;ls4Z(v)VuY~eyJ0Hwxl()`bQ_TZrPSL1fx{L9GYvcJUZJd3B;lMn^1M@V>BTQ z&t)TPE`E##gb8G&0X26&Mhp5?P;vcZG@#!Ns@>oiO-MSv--2C_=c89X$h;m{oIgx8 z;+NX~qn3nWW|a{3jgu`|S+kqPuETq`nA6Sh7Afwm)5ioy?>2HT1xH{}FGW>MRHrBN zKkXNr?)u|~-fi4LV_~m-P(g(@RX|bWpv#+Af zTs}{!mD!MvIz%Sne7WB4H#)~?$Vh2;&Zs@JAz8(Mc(3YP8xWM=(tx%8*HEVwm-+PN zs4AuTROT|Dz8q7jG%GC#k7mM(c$J{m(1PjEa88dOP4p9P<{&f>&K#aZv$V6jF9>Iv z%N*S;t|WF+PQhklw%y0g`pfMyduqHTE02FThIGDP&FQAM$u0gLHQJi9rA>Fc?B?#A zrykuCSW#<6`O2BFIVHggCF|DRr$MjTV`uB;9D3bO=Gvm>s&kJ;OJpJE^y#w01z_98 z>5~GjP`VA`Z8Ns8J==o{B@g{r5y16%H0dn;$UHV$$qyr*P;r2ZpNbr~5fjZQsZU0x zljYJ2jtw5U&zgz%pm-5k1f}U@Fa49#{-?5Y_=E7*bfmcy*t|EcPU+A@NZRxtg!DAI zU`<%)TvW;uwOxv3zSuS(R>TznY2BcQIv2GuGxbT{vq7h6@lrc2>Z{mpQdU6RRk<>M%?;a{ zv=BD9a{g@Tfxb-Qcw`Y*b)xt^7q~sK>O>$uRwqiKMe2U?CI?1SzZJQJ93FO#M9IAg zaDFp+zrVfhaC}p5a5L|gak-YH-3g%ZAYn@WJfRv%cdKu2Zoq=jkg{~E`TFJv!XPbC zG@H#jJKWkp7TorglC)PAX0a&&mIrh&Yal~LQEXvsK#@7ts{2A~?Cw`Mlx6PD~t)EuyF`Tz7nZsV%XRb-4@4F}0bJDm!*Dky_SB$EXL^zQ}sOU&TP~B%` zqH$CaPN=B!I;rRzJKs)+rtxH%|53zsWN$EA`fif#3K?f42PNW&7kCEUVUIwdr`0V8 zl#YJcPDj72>*$wFdJ1W~m!Or7B7xG;uiNS9*L5BJx|xo830mnW5>O)O`r6yoeXX~d zuiRCGRR9w`;bub3qI+B$l1!AMQyjt)ohlP0?-*@JGEoZOJ%lCNJ`*MP-*zOl5+|?M z=?y7%EOg6wF-4D9;$1Y;aDPVX{)`H2xAec%KxoTSqX~FIM2V3Q?H9`(J<3v&nX8QM zpCqYDjwytxWNxcVNj6$C!V@BtmPE4eyH&TD(R*+uo4HooCz^l?C8d2V`1gKeO@+`- zDtZhTAcc-H7^ZuHd#@H1GCRlYA#;HL^w0n6Pk#Cn`aeF>g91|I#O(Cd-o32mbfnzV zp4Igc3#tf8g(DHvZ6T^iYEOUq2>qrcmXK0VCVMxld5pP2?>;KxVP!*^?`DF%_EgnEj;<3UK!CdcF zpK4PfQ?4N{2UsV>C6g0ugxt^`NM$;6xalDTpfFLn2Fts&qak@t4Lezv%i?BdbGd^S ziuK-z3bs&FUcl6T0;@Ne*&|Osou0=2Rmzk+PS*G6nYq3_An0j=FQQ^whKP!B_++(O zV^1k`zMZUf_GoU)7@*e3LQdYxdd5#q{l>wZ_z>epR3W9oJ|(5Ct(mCyIMHukVoZm8 z3Oxy3cweN@uDOUctX+l`DKpjb$e#&%plb8MpT@*Q)|c+ANv>RTC)2Q`9#rI{ILnk2 zj^?EM^b!|)2oC=|3APEK5K&^2{C)DFvProW7dD-wTy!_aZ}+pM+on|rXs&Ay=o1=C z!A00KEM>o`3Vw_>;FM#p68;2j6v@dk8i6yP(g=*?X?UE)P^ld5kT|I+#2jgm)<4NR z*Ad9EcP3Q<2kF`_??b`~WD5S=ymGSoua#hIaQrNr{$=$6AO)iLB0XiKjDl}$R zTnLg4EkcPIVvVwh`0W@m*{CsA$C-Al$d~*LH#ETs+0xU6T)3;5q7UYfqE>YC{99O# zE=bJ?W087bp+;0?YCM>}y1Bq9wB79egtl=~#86$%%nn<6{SKSwk=S_xj1uU+EsZlTyDs2A$>oyaTUy+)nyB_aNK!q}X| zCTjkteR?=Or~w{TNOKeT&vdvI8^4x|t=A*_c*bc;{DR&ns@vPFa4hOmz5-tSE#^hVZ>m;r--5cwdnJ_5HMQr* zwLD(*iV-Tl*S-PuUgs51cwl?_nBo*35JGM>^t@^i^_+~^lmXXm_n9L!r?$Xytk&cM zk`Kp8yRoY=e^KmMZHY;HpP?%5daTA^{lhR*;kw6aO1%TWT0et2K9#wWxf-;vV`u=E zC>j$&ocUkRxMZiVVIG?&q>#dhy6(m5ru)jZX_f1mm1Eox{T@lO>>^2^gaL~z7c1N& zwVHP?yWPk2O_j>5jorC_n^KjS!bu~s=HwNo$wDjBEY}#kj4RYM3~B1`&#tHEZ(p5W zU%Y;m)0^c1gFeNUCeTbqH^G(d^D3x0lQFo{8a|CZbi?=kro(?;(XC-qw;copSo*Va zE7R8c?0p?rq;(3lPPC(Lf9My>E zv~#a5Jk~lRJYvmuztj`ig9X6Oycd`qPfy%Z&jcdq@xnanN^|RI+yqN>lu;Cu@dgyo zlV{#u@9%LCui!BEPtw20#qeMv2l{{`@f#R*h&TH{1z&GmWD(q7YkN-3T2&u~Uf9Or z2`2@Oq!-s`FDDD-vStcYVPPoI6bf&egZ|NRX|68*a8{aqtTcpHN`rw0-2)L9`J<9% zjCaxKLY<9wq_h3Q-%D9qkceTr-4*U7#}RT|C#pmlrLlk}vJ^CJ?4Q#lD)Z7T*I(KT z!z@TKyA2KZx%J1yFApXP;}FRlEu!!+MPZQ!QgDEz?0ebi8x71|Kh&Ts0H+BzTj3IA zgAHz9D%wA$djv2s1INazcCnG6goFDAe<&px(*+q#XbMquTGfO@L}?lrv1P3q7{lMo z6lIL%Es`egm6Ig;Y8ZXN;?TtOC_ubGXQB)KJPjpvg+QY`Ag3xMIt~qYevzm}pl2}A z8*+KCx5a<0#1}KuCegD1b_Jvo9?$-joqiNNkOUsv>0hi@AEqbqGKwYs_Y=oM{EI|} z6i3!w%*T1{F9n%7#b5T3C8)xS;zl2DXn@jY zTXLMDNyzE{Eu^()0DaODoQR16QpS`hqaZaGPL@NY39|5`1U|%HQ+4}B#O^|!bh?|| zKae2Gz;=kNiSF@4T9mkhv{&0+CiCoKRmlNRsA9i)yV~M8!|sNdYm%Ag7pr_Js*px+ zN&4BR z9ro^&E7xZzJj~)tL`CuOGpsC+FG$y`AFp-A` zNcu#AP4wMHW1q^_E3SN+!twe zDAYJ6Nh)APo7h?=E~1I|N~3LAvA&qFCL^o%PIJ|#$2-%3LnPHIj-1qxETEW6x{u%` zSm91PqKqv{zhgUMKCmEEzMS3PqXSk~mQ0#E|BvJFqR>Pj^bG!hl~Py4{nY6a$P`F~*;3GMUIp+7W5SWl84)UT~eb{}>gc3ms~=>7eluE~U9_f6oQCr7Ovv$0LtvuP#A)8mmisRE&GAm- z;e-e^rI)kK_9Nc4xx}s*y4TESq?Ak2^~3HRZ`J$E^AC3(a3XWpVFqanHYurJBDLyo zg;|mqZbgDE{3wc~{FWZ&*>0w+@zUDoGpL8yiY)A7oBm)s z@@2{+H3LPmv>8_)QMvE;33I3Ipe_`+7zEqbxCQQVaZ32F*Y%!ZR$F`dGiYH?xzQ|Z`lLq`^jJ;C#qh)ID(BO8`2D>e|TgKSCrE2waygu|0yoJYEZF5iYuIy=jNO@>$}-PN5OW4SUw=a zm)^%T%P7-(BoPQTR>HrWed%{&JE5(pPY{KQDoKi}bmm4(*tZ;*DvoEaA>7raQNBmB zQ!h)^GGpb)j1&4kREfmg1sUxCc8#wtN>ga$si;?Fzspj=BXE~$50V$T?h(jK!TrqZ>3dV4DOhjN2ylt z*~!(}-Vi!(Zzj*BKO^Fi{cJeWA-u*(vdkPq;)~kKwlORY?`JFw+QH zVZL*JQ?fRtrSK`VIDCyTPIn;eCKY0P<+fMe1i3D8@`LhPjK;(?a#m$7E0c|xX@Vxq zAxWty+Aa(ADmqI~uz|H8EG|E3M@JKkT)tAN?f6uu@uFXLh(fLntvZe1is#bcl!-~S zg<=orsU<08xfRkf`=VoZbWfW^v_i zfT-B|&Jt}p+*MQLD0Z>8hs(iW5-yra7 z$HpX&DC&;gh(6FoRTZwW-6%i`S?osmLc41y4X6>?myy+-DuET!m5ZnpI_|0>LkYOOns(cM6o#X(1J}nS353D zhys_N5NRHBLewLZo)Do}8#taXK4XN=UBJu+dRRP~sI8>Yj?joEYU~{M+U~M$KUQN7 zOGH8R4jRMX*Bc1BpqE#5-#7D&9>@rvw4T2KrWy;OYRXcB8q%< zIxXH&>B_)&C|xx?vFK$OY)FUVeeljemv~feLvsyy*oFzR*m9U&+w=(ZD5h)aUu-`v zZV?A`?=%zCVZlA9$lOb+#cfN9$%mHo? z3obFvy01A|7&fHC6#4onwTRz@@)s(*Z%T=om{#m%M?2546D3!!xhZK_xq>SS9-`Jt zZcbf9=F4LY2Od=9?IqR19ylCiq(v;c+P~jzW~jPledoYf#IPdm0I`<0H8JW@+M};G z`>vjho0Yd=myW<9^&q*HyFGc4FaHjwS28mnm{9^zWUbR_Asf=gDV%%dqtO)3VTnkn z@rmzX(JG%Oj-8BNtO!h4V&%i#9;0XP<|e2fpHw%-#94Jc&mAjBmf)5&+WL)Xu!SO6 zMW>s&Z<{MpJ*v~FVy1ptEoEccSV-#2*~eBX8BZjvQEAzlQN_~htM0>WxA@$u^vZA| z6i&AVZz;21^D@*P4@uHq4X?G;06yyJ&3e0Ns3(RKJ;hj8&85fI#B>r}kZ6S+iA3ki zZAjvDM>5$w{*0aO2%y-eN~TrUjx0v;dKNr3if5TOK4o zB>^A1_?Kqh8G#n01p#vH*H_c?D|$n{e1h71J7SAVuVnYU0Esy;HN+op*8BHM-1NMj z`qk#j!8dc>KVMU3O&5kJz8qSZQJ1VTuQzwI-IVUlRF#(I{8(|X@#7__`J%Y?q&a(! z-tUWzo6VU~`l!i`{m94FHy$zr?}u)O3p=xim7eUx9z|TqLvKB_KG^hRXpd5d*3Us5 z3XLHP3fZpivA<(?JGpg^uWVorSv`G@F+~cD_bF9zxU(4%hAc(2+Z;zAL|x*+YRdfX zezMgoN9Jy-KDBu`(OO2LLwhR{R9=H5xabuD*vHEW?m@oKls7gK_>dm4MLs->T%%qi zjNjr#i77T{boaab2B_xEz*>E+8T!mtb5=jBLN~ahxpbk?9U|a~j&mCAM9pYI2N!Ab zn~Itdi9EaYazx_W-}8VcN|TO9BzZS5)7}vra03;m8gYbZxZCX3`--*>2q6S0>Pl<^ znp|JUVaYYtiUqT61cT2!g4ISvbGF^%00JtCLxD$;72{$%D&Ik+36orZ?U=mNMW)aC zGRbyC*v;`k>ecDR#Zwmn*6!aXbA<#;EJUMY`1|(s<7^Wy1$po822owsT)G0E z|7Rs-0xirqK-SMZ&F{u+%}z;rMQ+G&RH12B!nCwQ|9Q8aZx;7-^P0YD$*i;A(!H{A z-dP6~Wv6Do#2vLqGIN9$=G4sbbGQnlt(hadu%~8@pNsoX4)U&uE3{Y{6*Idl7W?&W z=3Q{f-fop(3pY*s*&CAYeHw4hkCmh`@nj9yReEM<>S+Ef@A>nHy zCRLftnq;r)7*|vnqaA6MKi5*7hNQUory?u7^g53y+O}Boq|RV(MDjQP9n~-n{9sVW}v^t<19|s zPYbhO@Q*h*z+WWPDY7spzO%l6c#c;Gr@I*RgLC2)!YQ=+HitPRi z>;YH(+1wz~XRk%v`yGpR=WYo(OsJ;CMJ49I(?jNAMQ>C!_x&&M;h!m?8u7%i(c+eW zZgTpgVlY^B{kE9K}H8DY;oiS+uK!@&x}%od;wG# zWA6NYx9YG90oR_mL8lmR%xOtar_;DX94p592U%Qc%o-=%k=0!ngr&A!_f_X8hjSD3 zpu~<_N7BZug@JK7%25m)aQnq&;-=!}tTF2i24>dsn#uzeoii7%g&!QtwF2~@uG_m- z&RWy8V?Bnh30UNfBR7RBq&#^#Vy67P!OFu4)89yrKujB4^>t#r;be|{J+tBhU)qq2 zxuNg2oe_kPFMLTh5%_eM9h*<)JaI-4z8qynps+>8B%AOu25v2>Io1xi5hiWfEF|W) zXp=7#OuDa>b!Audo9SB5b(C0J?dQx~JcX|%6eX~*N58qa zntp#;?9nk(r~dh+0~DgTPsF{LkrfC`nt^gD;R#J54?WCLoI7bo6q8Qke>X$UscRl) zG%-X1q(~LZ+DumL={zo7p~seVF-^GGUby!@=G`P849quVI2D=9|QCP{NHD;!yJ*APHC#GnZ-F;sA8JnUJlt>ce_vK>#@pOH6KifS0 z+SQ%`DuJ{J^(iZJ2z~-#tiLDCK}NIC<3&r#I7lUw&(=5^mE9+0F5=j7609h9fLJTI zHF3=J3yE_@x2BGTODa?!vv679i{9gun10iKD?>mPz8HU)Pe)TT{`B~j>6$S*>_t zRuWopl&QDE7G1`aS$)rj^RZKJg~^=zzx#6^tJZH*)<4H|0RyeBFNo^ZviMZT5wkal#jv%W(OYQ1rL&>L;@jff&$T*;0f>*qbpl8XFSFSIv87p|Kz#vwCdT#-`sd$Y|5Yg%=SxP>9jD}oKJsukQgv_&}` zZFO67Q|fs3A*25E<%SlS(+7CI4ROW3M<)(vdI~F>yCMuLdtB*3@swm#cA&2HqsHtt zQwR2^?{9jV;57#q>Y_V0mKztMyxDZ8>(%YzgL|*~0xuKcNyr=jrwQE+Vb}iPw0eq;SFY85qHZxd|Z6^7!{FV3Kgn5$)6{;x*pPq z1jBwpa`qL4=JmG25=k1#%mHIiptG+c5=MQ^R@GlKI^@h5oz`J9A`FCz=zKY&^Q0A3 zn$r(Ml@3|-i5fwLx2n{(#7H%2#3Z)zoVKjFvwAgW9iuHJvbaRhKv?VaX0dC~u-dG; zn*`EAw=Eg5lu(MPJ4;JCEQbMGU)diT@+ATeIOxbs znAE0wL=uDpUE!R~xRR(+bD8FR)jU z9(=<7q8ID+eSM@hiyHMHoncEZ73)N z)s8CUx{<19GB>hLkm8DXq56`3t826+X&4eUsg6@E=|YD|>Abtv<}T)ijF#t|eRbfX z;V?Xu?6(e6L4WyW=?)k84{XvhY74_ozyb-k<|x}C^B*=_BYd1CXsDu!lWmNQ)cUJSVC1$ zSoF>CZ8$=H`}NdPqY)9x4-+ zZnIYe8nVIluev{B7ujYS_Co1V*_@~@XyQrtc*_E`!V^zH*_}VU>b^|2-JeukHkV%e zc>pIYUYvcmns+RZqA^o9w9EZ#B~F4TObCIHCwy72aFJNPYudEZ5SK&zr+@zGPk#Cn z`oBN^fB)(yKiT~g?Tsv0^_J-dtV{+^Ov!e5G91^{DSevTVuodOkfKrqlajAI?bDP~ zIm~*G(<@rQgB*tNL^_n966uJk6s;Xw>L`5QnSN!;%!CF^7Z63Z8k^Q*OSV*#Xvx)b zfzyf${Z!K-PQsWXUY$_)yQYL`&*Ro)j@gvY2WKD5&S%@*NjG(y7ph%WRfENp7INE53^h|;io^&kibLyfUQ4#LpP?nqM|j2*W!4FGz&>QeEeO*QoFXr{zNV!y)^7s1wE7;1WQb5mT}_e*OJ#kNZ>stzbM zVEj%^ESmuPx}`2#+D~ZbEp{liCOZK+6^dNPuoqOFShg9ru5BU zKiM|}lE{z|3h{AO~i*M!ZhKIFaf?If;p6tE%^ zw#&E?9kKL}`|S=%FA9{~2~M@)zAP30?3}{YHX|whPYo-qG%+hbS2l*XB&A7Fm9*3G z_?vJ(_4>c<SNcy?rEd8Y+C3aEe zCZuyN)a1X2tc9~Sl(o|NN!Hw9zX4!|6-!%5&TXbMv_p`pT*k|uZNBe7&=X~IGY{0`SO z(B$~#`eu(=IPM}7{( z#|5|U56XPzV(1_vBMWOHl^)ax@p8=%H)D?%B{SN7hA8?iiBpdZHO-5 zR^-DMlCVN(I*maHSmC1#Yq#0Ycd|So`v>&2#+*6sT*)r!^i@AHr<9#kZzxpEI}CU9e7T1?c$7r0G_?rB48-|7cT57adSi_inyJG!eb zUC3mK=`x00@g69>iguubG3sN8btGv`TR#)wP0ykOZD(aPYV8b>yb_G*Y4Y z{vG729bOLEgx8l9&C`7^MHFdrw)Gy5IFv#izy?HNqXGnELnZOGd#+?sT=r+z({t+x zn6Ly3Au^q8K75|wUQM0TnJbetUr3gF(BgnKK%qArG@uB&3e2bp7IK)qrB{xmyj!Eu zvNWNg@ha*O((LbVP*%C0Wy@ks$f8W`+zfW`VB!NI&d7&}R@>7(S&)Pxdh#16YEo#+ zt~}%vYk1e zl5_4BcU=qvDV&Ie@=N-6zh7jnxy*XVFqhsqf_`-UansFis1AdJZf*m~j*23B?r0Vz zb!;dwMM5M)=|>z%>2}?u!uY5vQ=-m93J)rjxTrX#JfjP4=>7G@>O+m#%;@_?O`(Mz zlZlib~nVTAfZ|FB+l)AP;x?)B|0(XHKosnORAW|i!@L>3V# z<0wC$tZrUWidU2)URZljAH^Qvr4f{Q^*5rTgyS>=o6xBl^%;_B=epz`Oe7`G6^iQY z$Xsz5;?Z*>CL@O;RuqW$8|6%99PJ@vM3IYn3dzMECU=X~{;5;2(PUeCGDL4=ZYCLx zM@lkOzK_R7@ib*aPdQ&Nu}vHQp)6-k@(g7LU@>4Hap5wpi7Ah(NnCNDZ$(`(aBFHT zdsn5dIah0L%3o1E=={^jQ~LiuO>WkAI2)r}%#1|&leh({co%h|g7W^US2;bNk0!DO z-(i>42n|UYa7C{)!>iEdnr+HSqaR@7rY>4m)P<(o64T(u#7@ZtpSeq> zN5_OFs!febAAVfyK0c%F+0dv8SC~`Hs$WdDxet%ktb!F{j!EBlt8TNHpDb~&_yn81 zx;uTsVoVTBF@=yO=48tBW4Y_R86A}+6FN#%i&v$`j47e{X}VgW!lT_m+2jF7^{){37ddiL9h zhbLJVSJUrLGm0^jEQcdfP~n3d{9=2xe^0(JnJHzBiGhMOz@j&SwqfCs12J)NyXbDp z@H1xQU^EeiiXNo0OYAd!C^^R1#6cAVZZ6t}z(ENCM>S8-Gu0g6%X2J} z-gNFv^z_tk;=xN4Fw;sOIDctvD5zaH)ypCBVw%+Zqe+*o6(6Y$I9t@;hRVGye~D)J zXsi1FU!oasknLKRc#qT!?04xm3U;4n50oFN74?3CQSL1Ckz!BkWutzQa2TD%{qp8$ zoyEgHvJKe=-Bwn~+EDMX_)$1DlkXFL)6OQ@QJUVCVAw!MDZHa$OFVtmaGkRAH|Q3 z?4!aU+W6b5Z^-W^mC>bDhY=EKOufV4cgO88Od##3cNqRzs*=IYJ=GTGBh% zWxs3RcWVTqk=S=@KWp4~YZTIwdT&7&Z#~$ht?=-VY{QXyOV)0J*kPDLS`r-v8#7niB~CB-B8VIB z$`R%e+f*4I-;%879IqwOWy==#j5b#X%p>|pL^DI}>FLjH+v7>3JuyKln_lloha^Zn z9MYP9FWGd@FDu>YnCr*^=Y+sH`Qu9*o}|--CrjH1l_TJ|jP^ zO~M*>D&dhP^>!-!^yr<6Iixkcor-^X+)l+T(jJ^w2<4RN&!7GN`fU3A~l_k`=oWxJLWkv1lW3jrNzvqK&{p8i?KhU(UXScAVkmrh8m0)f)zWYbCw|&8X8zlduLHwej}!>X(!E z``g>@i6?>w_z82EEk7kys_% z`4r++JMsAOIs%Ik)d=?X`uykrFyOj}j9>|NFZnONJ03Y>3%R!M_4%)>%09@Q04j9a zzW74>$#GtFvds^z9;jso7UtZ<{DZ2zt;tn@h7bIDz`}j&)YAHx;#k_=iH!@pK>q9G-YJw@x?KhT(m=Y_k?c5;g|l8SZw)Q}S8 zh%Dm96(cxu`U}TB-4;6mo3|jDoM$cgxc)M|!vnC#)d0?E_Go{nceQ^*$#?5-q4{(y zT<=%d#g=UdK42^)JaIA=o`|S)t5#GhIytH`TD0O)BOr0r;zTR5M6li(wR!F$G_cHF z2vW?I1YN&<9gb1ivOYe@dsN{|^vHZ=Rj?Ub;*5cJ=(W8DZafcZkuoy2HFH_z^r)^ma7xmKSc|lv!WR~tl4F&(2lE+sF6tt+h zm%DO+qBVCiZB&h$)D}=$lPANoCeLl%nmEbIJn{JzPOr}POB%j(v3UG~L53{mjtkq< z>?geivGJ3OI)k(&t|0feCDX^zno`)rFL%^B;P^6`SBFOyB@}KLn2R{qn70V8%$upa zF>R^nHLla?j-qIXEQ&4#_RM*oJ6K>%TR8a(_nmuNWf(Q@-Zh3%MIhoE?Wjci-1&2zZqQ;jzVG2kz){bCl!eDS2bfFr4@z0D{U0UKS~>tT>=$N2+U<$vLX3sO)2tmw`x3j|FG-U8@vms z>Sc#cfgHA2q?l!T>dNrgmbb_XJa5r2+p-oTL14`c-IlcIf{v8KW{;H*9e)*vSUc|4 z44J?BS$&K+PD_g3r(06-zvHwcS;6%2QMaS;$K$l37_72ZWd3=aM%1FvFTU&X&jwxO z7xBsPS`-3x#S7Z<)}j!23#+$ftwkYX&8*y(v=)VEb5KYR>tjs=M~fVTQ7HcGXi+Fq zNK0x_DE_SGf5*{CEea*=DE#p_t*Awzv=y0u9;Xq-6cM5DS2arIxf$(EPT_MG#B%|)Wk%_O@e>-%OfAW$UX z22fBH(B0JY%pLgW%q^YkI+4qpm64fMl_(T+{LH8cpz3`iA|v<6NU5pY3Uo^8jlTt@ zX#>_WMYI`=xxFc({Zy#1SDhQ#_(qD5zn9kVD&1OS@TQ2iq+XY>77;=r)>aGYT+BKX4&J4`oJ8Y}m;Hi0P)f7oF^=9kBMr0|`BOW~BrdW5h{q0SR+ zQkK7?{zXc|(P7$~(O+y8rhV)Xhc{(m&A#{(A$RDU-KrE0yWaFzukw})DEe}1HpJh4 zd)7fW*0;9D)FWy$CuIBf`&2fvVYcD`?B9c-M;%jJUGUBc#YVnLb8#WK8`9i<9%`W) zeXXg!^)sEKE@&g3d0Dr-R!ov`E>Wv}RU7a7t=s}Mm_|`+ZNdB)QnO1=Yk;#e8jq86 z`cH2_;it^7?W4*Bs8P_0yOLyqt;~*?tf(u=RCqzG9T8bEd6Fp9_;f_Yii#5K4M%x8 zn2(%fp{tNl?B_rJ-~a1--<$vUKPffxbJeN#c1D40ejU-Uaw3{;%gNG*xt<{MV?sMp ziFpJub?p(=N{LvsWWXy63D0fKb)GWs~rC5bDS)aYo4yh_tR z0P|m3hckEtMrUhc;5`%?934t}(sc zL>bl>A=(v&iY2h&4Ql%$dF9=((=Dwv2NTBlD>Wb#ttKv<2<0KajoQ{s#Carn zNwTnV{!ZDwmDujt?Vf^cuNxV+YOUto3e=d}p*&HkGrC)h6lJJD4W;8@>Q_WWdRAVo zAz|P~0;eTo4|xl*>kz=H+c>lAuXVMbYYW2z*C<}a>zxnpnAd7U#U0Ii+XtVYei0nS zws-ClIHWG+hull27xT*?Yx~)+!8N2-1GYP*m5gaw1w7wse-hn=HuTmamU?D)dNii% z=#yD5GzM&cyn&$`dRzNqcbHD+;^vq{{R07gyWHrnC8(;M{zt}kLz1Y}$z8xfOzxK<) z4ZSsk5cdd9`fmpAic#aGM%uysbBOj$f>y~1BCo^ghQ&Grd%V4|l?-VB)sce;JYzO% zu|x9E5Gj4L4kA|}Z!p&04VgmL>`r|D_n`N+Km95(jrFXxXYqq{`ouS3`|iP@8cM4R zHa`Y+?2^=K8YzFNT!IOx*?v6$phin;2?DU}y}{9iiHre4GxiF*Ih1e-&xTu znbcs43`^K1vRWPUV_*}fOG>LYmXskM>XOv*qtpIqOpBO<%Zkm9_Ou4snAa*#^J9nQ zX)q0;Ri5U@PRrAv8cM4lF+Ya3=eo43yiYbZOmEpUyV*3|0D(iN4}l75+w<|@6XSU!;X&e({fy;mA!Q*2g6Fh2&SRb5hA6``c;wjvl@qo*`4 z?O0O{r)+K%hbS)Fc{9)ZGAfaow{f&8BA)E^nGmcYmWzp@C+JE$qW}Me*{_=2>MTcj zw$5UaiuU~ciEQH*cb%>66|o@YARUisuaS>uJEN5I5LZhfFDui|=;V07r<)e@HR&h! z>s>-~*S6nTcBW~tEYC+271y7v$+&Vi&DHgMloxX`Gn(>jhn*=Z8()ug+`m{;iG~fE zr|J4CNzjR2zRsrOtMxVrUV|^%AW@iWblhNzus){^x{sh+ll#by+jZCJSY*Fh6JyX} zzghIh>oaQ5Z%FCEOK+E@vvwe;Ce_I`mgO%*9II27B2V*CRvc2@+{iDAaF2b^6dBgg zV>={foD?Haus>gyK=PP(gN3}_eqF-+ETXu?p;Kopur6_a6CqB`NMT)K#rRNg9I-Be zk_bChjWX6Hlg!WF;MeEg7-U`2L={5D4 z!o)bW-PNtkrwk!T4j<( z-xZ-!bRR{^*F_qy2&@>SS92I+$n*!gZQFh`=p9kG$Z?wYM+MzkNaw6**vBV>EiYTH zrid0Lqeuj{7Pmf8Z0G!Zv-e_DjOHpzT~4Ez6pe`xE(XP7Hp}vPVqKW4?csn2ZQ(qV z(ENOSMvd0`rLdrxZTClhdMvSaBDAOWx`(<29Cxd?jFwDh^{7y8?wC-s>0h zQ9z=`3bc$wlEjGAWTQP=qY6mWsf`4O5y)Qq+{>mH>e{Bk{Ds)-awCWu4~&cnAy85t zu%WjXKjc%pg^ZaR%w6urSnE1&gKCI>ZHpBGK* zAa%94n$AdPdv5jP$^2@@oBnmnCDZWe#^{vD>DuCAbTNHFcQVnD>(l;)FH&Qk5urrD zXM*s?Kr#cT7DVp%9i{pCet)(-o#$67*GPXj((T;+}wX>MY#0GA|*cgFaX+t0yJJOzlMR>4r{P{^T6~{Ht z+32A$>Yu zSC@3FvdsdxYLZv1Ai5!Wn>5+n+uk@%c%0C`HQ9*zXBiSFP9vD59tCAIpguuP$SM3u zwVomsnI8$&cz!8hE-}qEu!c}LF#9DC=iVKg@HCf=&)K@;qSL{gYx~WP*ys#fwDELs zlSMVUF)Z~174+V2YvEdj=TTdG)m$lRh4j7VHpxJim-q1Gh%eXA{rT% zSyZ%0^@g**_$6+J@+yg;tG7p`o=gmdvRh&G~3x*@+QHG%ATMiPq-R z{5TyfXtUr|DyLzuFVmd!HTJ_Mve2Hv_|S$~%#-9SN$9rVh4tBT-X~xTt{BybFHR&Z zZHA{bn93+=k5AK>Bq_M65kfcYVoJM18Ck~L;vVyaqP`0^wR+3YE=`_tpgN^a1FSqHrYcx(g#J1Jt zXgasu(1tWxi7A!+Ln0y*C=t_ADLtauM2kzSryDe*rvHECPpuo*N5jr&VH(W>TzrPz zA(!Z=b`QGi2Njl4<(hy$>7D-lXnWa?kVXKD!F)lP*R5&1#xnTVEqqaytn?fE+9(QX zp=ozr`L4t=8i?*nUw;jcyjakKjk&%jGr9N66wPLM8V~}73FVN%oxeu>}U-)%c|FH4DJ0avoM7Sgx z1MebB!cdsv2%5t@CdO^NOx7m}#SQrdQ%Vvpo%M+$>OL)ZY#y9;Q}-2?vAYArfQD6N>u?8m)026K*g|JVPVqOy$=i z*kdr|mg|n|UCni}`?WhBZ=L~$#$iHm0cNy$-)8Uv^g1Ge8i8p=djiA6^w zKM=O^OX5$hM#QWX#N3$9Jy1B$1;vFQP-r;Cn>lG78kG=Dur;ONc*as~5v>bNhy8qbGSAb#x^+Y4ouktiB3Yb0{cnt`_KCyr zMhH5nQ7430G~yGt?nMw@6L9=?Uc;PT6y@`S-Oa>WJcU;Tz37txr~Wjp#} zqhmHgG;9=DXGub<^}G8UdoEw&xKt-pvT8+XFO6v!xqe%_pYNW!e2wckwR{56u!&{# zQkK2lgY9ROMfk5SW8+?39iu@ttX#*v!!NgwUB;Dkl!%6nmmzuQ_VMnf%ePV)YD~k( zt$K94dvLn(Y;W7;T*;~i)v$7_o*Zp#dW{S>wd0u5LKkMgp>^4BGIE zDY?a8seI%9YAv^cHN3Xv|8lr{P-=aWhyXLzPd9GlRFgZ{hTpck^Gq_%Uayd|INh23R(n;StVm{}8zRtP2{k z(EXK)>~L(=IC%UJ3q;Wy#dX}=5!mm{6~DV z7^lh5IV#iG&g=Keu-z(XV?hyvS@lp-%u*izyaoY8MywZhrG>zj# z^^WEJA!MWbo!-%vTu-EhH?h=`oQY6v#@IOZmal-&!81hnoF9^D`r2FD>4xeTL}hK! zh$s-1R+bVq$P@44a2@TDQse~RD~Vb-wG?e6G1`9`5{XtKL|%tdq?A7OkNIlKzccr34hi$H7WyhX?^=|lxT6~}GSlC-Me^1!ZD zY&N3N?1oFlt8rs15=C;INP2_baCCm2cz47!j&lZdgkww@U`mJ3SVoEWEqwoGmJSHs zRRq)YBAG7uS-!^jv!M8dWTe;Nv+Ol>Sls;WzzHb?-i_ooxGvXOo(;PySAk`O*X1hl zyDC>ka7&fzH;ZgeN9kYD=}qV6+IGGp@Qf0oO(cgk9EEeyVFwiNDT-n-@r$9I3lWr2 zK$o&W_X}ZV_{Bf}b?|4|n*P^+|MZ`bj=_bP)ElBDa-cv#Iy_sPpQrgzo;i7<8g=j(Y$OoSsX{T%+{p93?gW{k z8hau!$n1-kOGR8fPzhbcC^k?YjWaqyV+9M^IDn^3@J*AR!QLurEQ(OrRS5-rTK6$u zii|gZO|M>Oxl`kw+naQELBO+`RiXDRJxUZ{3%?TS<6coZ7-pr$ur;1E zt^@(HkeZNNNi7nCnYpxu0&GzL^i1zdal@22IN)V{Xbe3VcpMHIxM*oe97&~c_vh1* zcq^b$>7E5THe+&S<9V z98zg)(<$OkyhIr+t=14o0H=OQe|4I@OnKOR<9<&agMtH%bYCfsnBLeeZsXLfj>MiT zNs2rRlyP&t&hpHzAqEBFlM7M4vh;LBsrJMl%V|J&`=)df*s6pa3@j8o#eNWUjH$65 zY+#arV51P7k}VxO*AF+=_&O?y1|HjXo<@zOUqi#Rq0$!%4Q)zaz@5N zI7IroDK1Hz&@Jt`6c6O1;or_U>xYW7ark#GUbOfv92;IF$_#i*GrV}wg12x0Pc;jc z3otbL$~iKTnLgV=0}q`U!7q+C*}mBrdQ{Elpn{jST{y4rr;S~B6Djvs8duR7uYfWC z(BzC4>9j1Y5(BD8;5k);EoYCSv7&_r=d{|Xp@2`_>lgjvvM222QZ%~SCB0b+&v1ZG zU52%SO+C3g0%>eudF-1H1}4fTXZ{)Dr)gaRcwiGsS!~<<6j5W5*D(F z-05`j8<*JJjlO*Y18h+O__B90ru99$teZXD1nggHj;S0%dtR0 zLz}}BO7?qkNuj&rH1Ba;8s{_Yl(UNj5}Jnvs&`{k8*0s+3QjXu_02|3DWXgbWaZI# z)uUS@f{4(C>II$X2{h`BB@&!gmRKO5w)TWpo@v{7G3JHQ*w#{R!MtojEEHfeBVi@b6G-(_g6sgr+lo$XeR}x*5lhmNylwJb?nnqA3@*D+} z5(`y4Mxn78XFFhFJkXKrI&?dubUb9P+c>wZ=Tm?nr1AUdCB=YHc)mMZZfq0zIKhUo z(Zw!hpv)U9x}(LZg#&o16{ob|9zbub6~bxDT4A98o19gA>$l{M3xqzj0`ZXDV3$_N z0tCo38Hd%9 z{;mVi-x*L5E~z7^8E#{H7O;RiTw|ccQJyoobH|VyE3SH{Y;OPp;|h`W@-+i)6xmzz zHZXt|B8%y%Glu(p({!9qX#oLLAu!!|@NMeAHdl(=eeoFA7KG#vHLOu0#N)FvKEY-^S|Z*cTYU6@d+AV{(V?XJNKz9CG-h zWDgHakKJF`ex*H!IcV~kW>$s`32u`FGA>UB=;<{zrf=gI)GnhS8n}KSW4e}iF3~S$ z<;H%A0^qmLM$>+NnZl0Bwg*706{r+hB&0>`EJWP#7@Vpx+ zfW0P+J*Dkz&k)P{9RmXV_bKhShuqlPIvxiM14`kuD}w?9pzl)qLH|dmW4y9kwuW#d z5WKCv_RyDYSuGeq-^kN(+Aq?I8s69+JNEX`K=c+}oak5aWqsR#0QMb9Xm~l8%)CNf zw(+oW0RC1%OK~3ZvN9VGz`jF0XD7XZjRWv&`peaO0|o^6f2D6bXiqf?P_M};22~)> z*vmF03<&Vo<+l}8v~dZ;ad8(5B=3mUFf=e+))Q?UfM27j5@l#Bs17-OaN`1r*N!tN z5d2^fl)bT+aEw!;0QkLE=2|qba2qWn?gPSP+Q9+-59A2WGfN}1XOv1sXBjV7lU0pd{VxyPFCRrYJg4IH3p!z8A!wN8-6~Q0P6n@R4pWqD03&O-)f$(r~nrg=Pn%v&B5^hJ~Yn z<=to0)0@Q2%wjeETcrvI1IJDF_2+rE;OAIs_T!?66e8HJKchopFKLH=_s}<73omft zN}gQAVjhiVfdXp7nXfdP1qJ+TGW7n-em-?GGSzg0l>{QHA6Q_x zv3W@sDIHNaMH#w%J!@!=mP0<=o8k&T2&H;QNen>WcBG< z_<{=u9!tApTKp(F*N&lr^>!%^Z9>yoT9G-6H5D}pNt!KcVS@4I7L96Bb<`8yWOuDC zT8sc9*xuSc-0^j)87@@mWN?6dUEW|o^(v%93%_vT!1Mn0^wlWOrV~2R;A>K|VqB?- ziwCA3g!_t`F?l5gZVNCwEbkd?zmI6quR3VZ;JS!)rArHnd7v$7Q6?@Ncy5Rv4zl@9 zwwMMQp%$&44+yTCG7gvg>?os67T*I})RzDv*xub)h*a+(pKdW`;9!PB-WJfO+mq#m z6L#fq!NI}6@%_*Up=JT4%98;D+;?{6c-Sw77Cp8N1^jo_mmS%kgMs7y-6fEWp7{rYxjyZ2@$J& ztr{5I*N@VCGNR?p&{9W>v62f1o|}4dXxCy}xfb3RKm^-+`u?quQZ2@r4w}V6r~E}^ zt?wMISQr{uuG8!(TjYb_XsksExp3gQcD$I*>7=8tON&(kh6RTA^tYj5O&fbDd4UF& zn(-H>`te;b{Rxu)QmO3lp_yA2=8|-Z{CVaav#i)uNZPp@9Fc`Vxk; zt7RJckZDVoF=zQvfL1OoPr=hHJW`IT2y`W!9Bl0G1~Zt5UnbqA(T)}meq z5M4I89uqKMdo~*pY}d3TzE&-~fMJ2*j{f#E?@x;{9R~2JYOXh`8efD#!TFy48Et`G zFI%+t4jNeAc}`n3A&M3)iwy<*w_o(fi-5UWv@8}9(7zv&yv4W`Fu=X`h23(>&Xvq*>vyV~e`)1A^<_-drAINm6fNI-(uJ%kuOc0|NeC5ynILInrb! zzgUFVSR+=z4T@wkpExEsA9}x+?WS1R-l9Z5q_t;A7w(C zd3sD|qeQMUNB&^88u-xJaM#b7i_{6dT9Rn6Oq zfMbEcb6LBi~e|@a#daW+C}t121$~dPd+ZV zAG^*_1A6r}dk8axS;K3f&!UQ`+zat?@IvN7Tvy zpc1E%s7|JuF0xyh93sf{!+=`5Q@1~{TaN#TC@?2 z=a&I_M2sTE#AwgbOO{7j#(SLePKB%Hgrq+YNU8_MYDB1xdwX&YJC(DF5mJg8N_lkT zz&ua3=!p1;0!GrqS$NAbVzkBp;cyKUkmh6dvXSOQg(CTF=8Gs>mE<+zFb>FblgZ=r zM~q?^g3qro!6({*Qd$+Qn$b!E?Htg?MX1;KYGn&lu|Ou#0#wN48zf>3%iw&2Fmbqb zMBT5DWM6ErP@bX+xBbs_ z(yv#xSv3#jddTED$g0XOVw}v7d=qhO@IPX29b~K#uzR+{m5t$mLxKlPf+JcVAvgBx z)&9!-3>xfj53<=+V5A)}ikEL{I~xq({$NnN3c%JJ6vyO1yr@tO0zhvM=CsOQ)GQxG z1fpmRMG?XS+cg@u7Q~i%bH|7+3H`2Ov2lR@0p`n{1=QXs? zdE8w1Hk@R&zX;(&koSgXlVnKwumXxkERl-06(5HI{13zfz6m27fgvjdfW9k!yO=Hl zz%|Ee;9(57L;<)o$TTeWvIenW0DpIw4Jf#Ko@`}8!-a~6ypuyg8V+-I9G~>nIl%8fWw$QP|!Y1DOccFIS5S* z#QqtbP4U~+h>nFJNp|)P#|Hlc_KfOcDPtZPpIJPjS!X~#J%a}O6ZVpNM6~~bg|NRh zw=E2;N&*WWQt&d^rx{xRA`KW}^)let;OAwapYdH_^)g`4V1LTYrXR7aWRET)8hD20 z7lMxuIex_6+^6Jsqgg+nZ)Q_khYoKmMGQz8Xh57Q8c22Hd`>e>-RbmZ6d%RvMMOx1 z29Vr77m?x)ibCFW*-* zE)qB%h<+j&j7MTAm#9>d$Gy>%lSM2e+dz`j{(>We{IUHAEul^`$~`?Ds*a5*8!=C_ zu{?ec93niiUn`$F7HL17)KU?fsy0}S3_ynvtPs99Jv|DKrdBNkjtufoY@sRaIM1lr zrfx)^6ZErRMl83f?(hKO%kM|gL z&9z6Ej@T#xYPkm>V4?Lr`vp<|PP0s;=w`eTBY7Lf>8 zhX^0pvQw~D8T~KXeLD8Qo8wdQc=6{?Kc(4Ik<6|roA)%y@{3P@`)QQ_g&82sBQDI# zY4&;B37_jPPwJuS}j#IW`1fO_F{{2H#PTHx7BSda-JgRK)>-bRD4sIir-) z7A1RGDC8yD90td-i21I>4zU->rhL*Lwng_2@_ilcql!m=VnLc7|4iHjXe6aB<$oygBYGlsvkxL>nJ!eyAa33*z1WG_T0}1_Zim0)g{0k97 zIzmuPJ`z~&(KFAd#bPGXj-*4n3?~rDA947>q6)%+?-5Nrhr?X#)NZJMUxcGRBRsT( zQd-s^2j~yd`J`XGTm!w24Eo#uD5&lI%gNzERd990d`eG8)6;Xjm<->TO`@wV++DMGp1rskS0)qh1JJYFJLp?Y+J=&t} zM87B_su(~NNe~f)H}I?=^vNQ+F93LC3JpXL@thzMhh6(qs>wcMM7sqfkI{hz^#i;h zsr6jOXO75y1R$T8p@R4>o)^T&V)fW(jTmJD#bdP~LCMT~O3TQZ$lvDEu3}~f7SvB@ zwU>4w#95HZ+2~@CEsCnpkBHS9117aLpMubk;GTJmmK>|NBeo?C4Ci)0!TQ)dt|(~@ z<(vZU0=^wF1~yonI)n`V+vXkhlwa5pO@_e;@hU{{JuuHIzKRidgohcR5UB+V=C`s? zi~Ct~r%&%G3cL@*2N`W(ieUI*`YJg*IT2TpWWE7o3eE!3Tvf;*zd0KXUebvENdDuq zMl`+}K@tYgz;xUGEf|Xw(KA+Y89cDv)lWX3%0JBS_DCSYB?EjeA{cMZGJEGy?%~;N zF_u&a%91`Bm>$g3l_az%5JP0_eBZ zm)?nds3qP|Cq4Kl4m05{?=iFsS2Gc0gWTIeyY zLI)Tk=GyvQiO+CK^vlJZ0$F^wi9uKIDs&qM=(h{??FnVX5$nf3OGI7Q7&Z&X1KUly z4sqHaC%bbxjvqJ(8By~zg5vVg!1O^eQA6XC{nMkSiQqwVp8z<;+kg!r?&B>Xgx)Oi z4IDAV0FKAbKtX#4j|QRbtyJTq+>ozo+p<$3l5tScQmK zGKO^X$@mio2@E%iZ^m?)%5Rgh{j;4urt8uGN(~PUM0aeWGm%x?E0mbVt%|Hf1mU|N z^oe3j7a~$fAh-(xakA%va?1yn7$R0SfWqwOKn5xEbGi%9S8f$b3lfy3+~oNs8s_+n zZOe@#g75(h;&&UiXU4RMp)&MQL3|&?X2UR~Y|OYO#Or~2w6v~Fp>dN*aIV;v)&m9Y zb!Z!k8jP4j;C1GYN6KpTiToDF0 zNMcNBQ&xh4nl6ix)F!{T?WZx*8Hdf_fPgN$Q3PI-88J6y<|AErBX&zeQ{FP#Sq)U~ z7*}xQXIRidx&qOE*`La|qSal&0|V6^t&^bolG^1!BN@}LIa)brAiJx{ME;@UloDT0 zea#|b4ct<4;XwD0&Qi@OIr)gfoIbxGnJ%TG= zn6(9u+11>|b)0E7FTg05m(1Qui>R@T(3ny5qp^bNY*XG+n{SIL3+??Imjbw*SV z10XrfCj$qj2lIX|lH?>CXGJ!q%W){+^QB*U5rYQ+X~HVhO5&q_=v4cv#3d?-??X_r z4l81i+V*+CVG4VopuLU9x8Kn1V4;nkh?4-oV3Z6Hbhq#*t>#f^i(jG<>v@1+Y&M=p zrsD9sBeU^9_6fuio_e^L7o#DaC8Gv@S`pt7ai$88Ow&4i2=f8nj1lCZd4>x(CP)=F zgrL?!)ix1+>>EF#>jnU$Ezv+^s?G@=9v$_^;g#Zu;bM@_0|l+|<&!xDNCvXnw)JHj z4`lB{w$px~)iGY1@k@j5KbOD ztTAm-nAHLV<71V2hNfvv84x4Z%}Oj~V41110vZC`nv0voM&G8%srbXMA~EU$Leb)r z1qil#^K3E}C%#S(_xGwoJR|bO07esrF+qA`A?^eeMRM|TG!uou*1jS}3!O&5wQ#m#HTf|V0~*58gE8yjM94w9`6J3?bmeaXwU%H;(_Vzn_(_$8+l^oIp&B3H;p2>DiFbVP5Wb1H0ys;9|S^-0;69NR?eLT9AO=z-8E$In0lq3>sKO%Y|;BZP86ts`<_!qR< z(9Z{#SNe#f%N$X80mYa@xF9zsmRBW(^lfWm1_-(b5O8-&R}5}g7l$$%M@)49#5DC$ zL2SxaA4=R9=o=#$Z`-oIFJK+t_8Ossz;H=~%6>_SY!DsoOmBufCG%UyvEL1d#*3Q`8`1an_SHX0!t zu*zh>A%+|VXfcjt4kq)6z5f+C3<&W%s35*csXXKwFU6vN9moq3F*yW+v^+joa1~U7 zmDS_bs3aVyZbOVcx{x6a=@rr80fXtq06}-39;HL}bXY4PF3LzjfBB6?#GJ3h0cjW( z#BYBqW;cH85HUlOZz`4&1GrDV&8F#SdY&bEm~#5HSS-hmwC$1+<0J#7=xU)M!Bg|n z*Yx}@i9!_!-D$=rAQ5Y)291jl#?~?{{&{V7_2)i@Qnc|tp1dK%0BPR0I+bKfvpB{bF{5xT;NbdBVMjtrS-w4hD|*@wFHpbYV9S4@@`QUp`}oix_WIX#~+fGufStR!uNaIg0-xSY&b8C@q)}+5rXU`_9iiD654PJv=boV!vc(|Dc0-tjJolEFs7+A4MflN}o>o zG$i{*0 zXh$5}nyG9US7QM6BSMvTO7(h4Zzt_jP-#luKba9#-a8*V;d2p*0WCnONE19HAEhCsGblhN%Zag#gS)ilGzL)L>Gf!<;3W;W9pIV-_u(QbVSr5%i?N^sytKp` z!$K`6`e;>DjRDl#bSG#3DpCKX0O(0U3ze)wM>NIiZRsyTxFDIhd7@3bUqNQzKz6-P zF(Df#rwLWObUftqx`_R1@w!sU!2to?C#eW1*JCfxF-M#n^EfOh(9k8Oibjm%tl#a` zftWIK)p6iJXSAvqHn!2qf&$HZ&?+!~s;PpsnkO=}eCioa!vOxCgr^YKi)kV}gA6wj z_w6#zj_8LuPXG^ubkXHJp$ufzY!TBw#^!;6>anC+Ob6;ttn+Hhh;a?4tO5n~9r5^= zqxoeuXT$~>i_3v&Z$Yg?~vgwOSPK z0bKB!t9ijY?Y-`gD595#y+^FNHB*<+V5dr=uV>cM(Z1Y#l=7A`V%4>o8^B=xA((m2 zYCW3PH?%P8|3`BOF~o3(>QP*f?322ur5b&Hr{ce_M=(%9u8$#?cfT=>_b7wu#EE15 zKdXyX!}LElzV|QR6aRyF)G#Pl`kTBNdD4I5jU$$*KUR{IFfM3Ky*)|A+3`djUFHrP zv4pEhewDtWE@CV$4b~mM(#Zh_`BTWIqN(NiF>3$w{*;dJJJXbi1yl$jmZ|#sN~s10 zNMf8;%3e@J3Qc3iW4V4mTm(|uF5?|xo76EuEMp++h>=c-n9N3ePW)B8zglRln5^$@ z7D)3W7&Gu(E|24RqtV`4gtEvWo4L9>AX_n~Sry+CjJS~3cvE?ltjSoK2r_+GV=sDi z#CylD*J3Kg1Bn`}lsRb+)@CI^1eqSl8@#E;zMN$vx)eW$@&)ED+swh-gcLF0SWX5fhy%F2I4# z)k`d`FcYqzm&5|mJx8x|8fCZHt*KJX;DON9>~b{cUE&IwNh}b#en_*e%(=*K1wYhi zAak`6Grq3MOJafOzEfV}MktvVl(9wZc~uoy2?)x2XWxF7Jp1}HacD-J%@q4K**Rm3 zn63&K+00krf$)RS1Jg7e7QNAQ<}{=cBez;&8@E<~g$NTL_J$N!%QRnA02>zq{7|Ha z7gr)CU!3mm(IIm6VNewEPSW0l!Z7&uaKsqSV9G);pXwMO&(C6>?p?Y!`~1DR-!;I| zLMa+Z)?}$^Hth4eU%IxGVt_oK7=^-iy-NGM^Nq-(Z6IT8BncqRPtB{<()h&|G2At{ zu_EzO`_Q}}l*^grN5r5Sya;&+9rpQ^d9Ol_-s?1dNgm`IDPn4Ez@voXRFJT=)GlR` zxag1fMb%ep5q>Ms-cnWQkfW?;`pGYqVU#4=N~~RMU(f0oAkTH#5KN1^Vp@D?K~{adx|I& zfL{kV`NN$4W`z;4E#tuh2L!i3FroX=LWL1A`t?X`ED*g1BFaQFnepjY#1@9fpRn^I6H0KW~{=~n2l%SKdiPXh+#Q&B8&-ly0ocYN83$_4|~J+XpA>5ewV zKO(F;p?}@bl8Ar^4WsIO1!Og+3^CzTlT|r2Bsf3u^c+nGc`7!z`eUUscbJHc|5}{` z@KLfTxz{EO;33N$&o16PJ7U^aYY7Pmz9$}^TD+yj8(OntRW@Q9rIwcgH}Q)Q-nH;+ zVDR4+BCD7q+J)%R_S%51nddEGP3(LbPa$S}6T;Hz`zl~7Xb0(d{L1YLSEn_wpuNe( z5}#NR*HrRIO(i7gZo72T!db?t+1`yNl%Sw=%2TXjc@=1N!x~u7KH!?3kMd$32n(nQ zg^yI%Mh5vUhn!-j_@JsLdNh_+VuH{$a-ODZ@ZNL4g7z`j^W|%CgJZD9)@+zXD(rwm z1jnPtbS9>M#;VZj9<4z^>C{=zn^&*1tV3{|N&MEeGbv2yCwsiI1)j>=3OQv>#C2qG z0u`jP+bcG(-=8IP(Jgnfnzq@@3oRf$vaUh~Ikj1V zM<_Ic2D+TTrp;Q8AK(yy>HnOP`fSl%Rf)Gky{i5kxsrU3w)xgWULu41k!^e-AB8!H zbYq_G2N6rqRylfQ?_xuMpV$Hn)AK%EJ2{lrSAX{?tNA?3`OhkM%_2fdTijnnND zR&Wu)F$`Br70CoseZ(-BY$w~Br<=#yOsFVJSt2wD1qw(*m0cdW79&xW+V0K#1?`P_ zU20TiFQFiYI7t-5h5*#gmT$@2g312w$;s})=gbUI?Q99;(Q{;wGwszQ*?8FVkLj(d zy^9S2Xc$)ttsWw4G0kg+ab*uzf>dZOP(k|cAitW;lSw+i%$5(2S1&6Xh6DIJgW^@P zMafcW^g!!y3%tvd@>4Ad!CZnbSm2+AzW(Oyv zA}tRJD9}7mGy{2m0(E`z1dKmlh=@uPKvw+=A%avo3q7w^Ka-)V`plloI*X46GFku1 zpN0SSDDIB2EnEKraG-;3Y5}w>-5j)%OzoR)$fH?38dzS?X)>l-%rdsU`5FWS->m`r zS$yDZF@~&UQ*hwAt+|e_w)Xat-erF}bi(dpT4|q*<$1r>SX*Ru@(7n#wm=VED8cWqX#UI86`vad{9eU%`G0mB;u0;({@ZR%z#c@c^ z8q+7$vMNY$-qoDF%`MtBNP1^7K7mulG;BVliwMR?9;1wC6HBa|wr2gsbQg8B7A&}3 zZPn5fpGB>vEfB$YAKLCvoa)g$r?a6KQfSry)vSuwsp?@?vQo@D9mF2I?2^@Bf))PT zgItt>N$AQ*+xf2t2~Ja@M)vhni9qDa<<_vp|vbg4->3tlX@p~ zFn*k>+UifK+O6TGms_VxVMvUqVM8JLu z5N!9&qmqqUHgU}nWjJGoj96AMH~~rv6}&gi^ODz##*G-?8H4~M3%51$yD zm_H_?L7o*9!sVPeiZ~B#Fe(geL)Yo-v<6-1Y_$lyj!I{vRUNvFjFs(bb<{?MruU3_ z%pZPh6wx!Ax2voyBB@Q?d2Ajxe^~8@ozEg-nb$y6P+Q2*I$-U9b9G>CjatJy|5hZR z?YfjTDtH5JmDd_~&{nY)xorKV-+66g`_{k2gMJQ|*CwvW#oEJi)sw9#G%IVq1<<#H4%lvkSEV(e zpuGbrx3rlr#@QKHHKt9hGqFMh;a!(75Xu}=RqGfvBq(pYl-@>1L|p|&ur%3T$5TAI zrA)fhAC1M1hc0r~D8)2~HJZB6(D-462p3uO=>sh80V$+6=mjjOAK?W@dr_B}>Jg0w zpz63KF39iUjcrwDMc(?}q~PhoVtT)j&0S288jr>Uw4O;3m`vHW9_>I@Qg&F0K z&$Lrx9@Vf7mW!uJr0fO!mc~VSb1=!w(NA`NcV(l}F?b0A_?VngHT_h*v}6ca-n4;2sf@DWRWG<{5s|%sLrQu0S78=d=11X&MfwX$F&q>sBJ!7m z)(GYDK&%Q&$s?^j5gO&DyYJFcoCP9%#Fc_s^~2)uDr=`-GzV*Qz#1#r91!P+{B4Ls zDYNL*Z_q>$8B924jYJL&g!-5RxI%eG`m#eKK_p26fqtw6Qf`)~7Zlc?UnLvEAx$ca zq)-3$M4o0=a%ZtZIjEMooL_uC$oI2a`G%unHl~Cf-Y7F&n~01OQtH}Rp%vXEOs7?t z2_y3P1r={Lp(cZ5y7{V*Y(dfJp6&W;vz?)XbiWKLslDL~*~Cg8BwutUg_r9R(qo0J zwVtToy2!JIa~^4Jp2#U73oZt#H^qw;%ur*T*uh-M9Zar zVQtZWbuRc)qQK(6uG8vNx)E_ZLwmsPYo4aphSoJ z{K0MX6dH)u91C9sNg$A(`~{y)>He$i!ntBGdMO5wO%fTF7?J31-~NP7C9;d@)%Rvy-LJ6?BxYAObrqlORila z!vu+RRhwnw(cp>>V=HS@T!m;KdgqjEkRKL^UeeQuR&mvGKps7$($8*-nt!BZ!yJc1 zqjrFIV9}*lDODX4WYfcyfNYm)sW_A)BHGiVM01EBnO@=xNJc4O#Od^=RI z*c2?%851F5!oNI#{1UWmbvq z;WcE9IGm(jBGrQhbH8*akwa1|QQjX>F4Al&60gu2-+FB1l0c%HDII!Fw#9#X>b?Zt zH$)tnmk6qGd@S(1Z}Es#G0qZkxG2b?kic=n;>dEb&&O;TaWpXM zbmb%!HwL*;hwW_ZL2}j|N=EsN*7@n?3mRM=9_$<*?=wA@XAMGv^`0~edu01Bl;DVQ zMns%AwhaJ+@vhJK*X`{iMi_B4ppH=Df$zT0cXE2X>!=tJWLU?j5y5#+#5oQovt(;~ zXXE+aX>a%QgTrGdkyS(`0gP<_@xjFe=^Z>U9OZ&r+^Om;1Vv~G5Jt%nLHH2QvY%;7 z#mRdgaTWqd)vO8@)Q|82rxxGxUA%}WKS0%RE8HgX#dOLKH+DoWaY6n7;%d!@qw{ll zcRANPA}$#~A-yeB5WA&K_gYP_0?aFxwhasFTM$+2JWkK~KrW)a07OVzi3hU#c+w)H zQMMC38W9K$oGL~IT1zVux3Y$@3t9;Z+S`y)YnzWQF1c+Z8h>DfG*y70bG=vo>RWe3 z@3m0ti9P#vLd*>8YFvonxiDC#_0>X!#&=OFx@2i9j{f4T5rYY!gvu6>pnQ6sQ_fG? zeJGM0{THo1PqR=ew1`=IiKfWw!6C%s@--s_&74xYXVuxni3ol#v8qHUp&`IEdWljz zoKxZ(CqGKfO&XPnhZz_s-Z$SaMq^6E#!I!P#x~Oc5L8ARk)WKlMXP8d!9Z~x+K7`H zl;@4H)HLml$^Z{U?}A8NN;6_KHL0c=X%rer-ZLb$RyF0}$~BXeW)=nK(`0nZ7Pr|- zGztzh#$cKcG=pd3qTQj7Ip)El{dBdipa&`D>=0H(=3K3*?EHYYQ6iKk%b%L7m zj3Km8L27F#Qf_yvp+*GR`?iL385LiUYt`43PD3Xm2oO}Zv*@EVVv$T8p z+OoC1u~;*Yizz{d3*uWAG2N|0mxwv4wrcZA%Nk4&+D;=^c6mXrSS>Un$n0ui9qhG@ zx?;7kP(f-pb0XTU7d$MyVl&5qL48-2W|obMgh)lUT9KEJ_b4^KYua^DeiB7B?dBr` ztsxa+uyIWnq!JXQ4}DEvrdO|N8J}xgW9DdW4KT>>T%=Qq9ijoxs4s4-6gGCMO~jOj zp9K#?g7Kd7b4GK^(bVCLFmf%Y0R`(LhgCYV2%B=Xjj(bpGXn6J(g4EhymWRXS!BG$Pu`hO8IH;($OO+HW&~RG<&RAwqIqU zxF`N2*1Bx0dNBkzM5y)?if5#2zgW?9>L(h%SrED^Yrf#6(y1UCAA(dD$|C2U+G(K( zaEMUtqM_M-r!EQti1I|aRhGRRrT?J&Vm9Spa%a%Z5D_hh0khoHeCH5Aj*n{P=($A` z-M$*$W?3W&bKbgkY8Mbd4(+W*4Q;-_+1ThhW3XyW;v9$lX}EOMQLKr@#Hw^zgFJil}?<)9#P(V zUTFVk4YHL?kgURsD38X74hgZgw^J_y0pxfXwvabiiip*8kZOF04WTL|pg8nPW`<5B zkmwCIm}NQN&FoeJfes1uFw%ItuFFCKnJvKg(yzPpQilgpRrqLrKKSf6zy1>|oKAfd z1dyYmrK1Fiv?9#J=(MHN_>kg}G4$taQ3;^+Q~cE?k@R8+5;xywZzF)@5ySc_5XZ4movPKP_DTPk;D5 z6DlHmO0*w2G?3}n4#1Y$g;1`o-`SGMHugpo#n|Vg;B)cz%Ds3qC#3y-w6w=No5Gy? z{rP}*A}`l0G9!lEpGM0~_wl&bhNWwkSW`mQcpIx153;SyNq(_z8#7|a{l_J3e2`6* zW3wtZ{Z5Qsazpw*L`biD#a_SY1>3NQ!=nyMsM`tE#t<_kk7+>)>D4p|5Ge?lz1P=* za85}3TgL(+ZS|YeA|&u=Z4TnmLT0&aP1A17!|P?HEM?YAXgqfAtz3Ku@&`nKE-|f3 zX$S%2O#{}~x&(+J_n(&Xo5hsIOEhHfyN80a@4)(u9P-N@i8vq9Bat4%u?Lp(bt@5+ z0GhZnda>7|hAV%eH7ZI|-oF}W{dLUftC%3!j~pN2&!3Z=-lRI>w5kIdYO*VcAeUa} zmF-87>}Qn7kP<>tBueNOPG&cBy7Qm8>UCBDL0Kg%EJ(o5X5ZZd-%*(BI)Y!nFLxy{nQyUp* zzn%>ZB6g=4Or;M9U@+fjujsnqbukfF)G(Y%YPQN0w7iJDrrctD6{9oD8+7O&^#8y* zN@xD>tf4$$cGLFvS5P8?s~J#b0r1t6VC}=w##(A0z+rzi6QmrG^g|+Z-^u;iZx*x< z{)N0RH&1kajZKOS=Ig)_Swf{%G<<24CHNrdZ)~IrLDjBzPp7qFm3Js!k60O4QdEZ# z!m3eyy_RzCn^vW;JI}<8orWweF73D5oDlfuG1jFMc;pdG&VOH%Sv3{JQ={~Hd(wTY zSuS)FDH8qE4wvhZG{6d>|5t=f)$2O9P47I*Cw)Hf_{TcMc6cFpj58p7z;2}0WS+{tAQ;;pyArshQC&)i zOJjQqZK`ht^t&SY32UhO>#0XJ9mM=)l$a_4iub3zbqNVFh^Tf;8Z0R$h|Gqulfz|; zTM|LEpG8shzOkr zQh<}eg8Ip5B0@lfvHNF(L@X%o(IP6%QN1P0h?Rj7O!L=aH;dp6E;|%~4JgUsY)Mb^ zzL>s?0`Sccu|8L#118Dd8&xu499k!D?}G`22XYVnEbQwQw0A&d*A< zN~@j7yFKgr^@t_W61dV{VV>ng^LoxTiN?C~UzN(aR-<%QMV;j$!iG!m2Fr!GV7+(| zJqxZ;L}taGmWt9T5$SVuryxz)y!nJZbH7-os&ZV%ocu?R6qbBcin*B6^`rY6pYLw= z4xaBn+dgLfMZ`{f3FXM*BbW43ao}d2$YiJ+`2}V0n$F2kZdQfAL>NXxDe@Xzkbg)S zwJOM!7|Z}M^T;>}G&sa~QX$66*Paz(3L!!UjSK;*>`+iHYdY2G9Ng&04kb9m_}JKC zaZcBriQKY9vT^YDo=kfDxtH`f;_wC#xl2^TLzIVj@tO6k5`+0f%mPoaJbYMCm)_t# z(>p$7?5({ahztQrZ?GS$DumYFPz4S#f<++GByXHDBXm&&8Wz;|L#4m-d~c5tM`Qy5 zPNn-vP|!ZYUYt+Xjo7OO)oNwZ*B8J@51!J1$of)`k{50 z-hze*HTrk&dW!$VRJULQ^X2jG>Bcjs+KzUu7G9x(*p&N@ z$XdHQJx z5K%Ap-vX4fDZSm}*0X%Ts8D)u@ai+uF zLvd6l$@{NaWtJzn>rcZFh^ogyFmSy`kBOa<-NS_T6!}0?CP0WLu~7o(ULVj3oi+RK zlkD0)fjpFdjuk? zsf2<;x3~-%*c`p&Ar{_ewbn~xfyvQpn!c9Tns%d?K?Bj@ylXJ=L(W~F-%i*afp3tq) zg`1}}W(a8TlvA0H74Q(`X;=_CI6M}I#986TEX*6;8Zitwg!mvV#Hi@0wEIkoi1V=} zT#XbZI>h*-e9yKTJxH$kQig8u6i6|l1~CTV3=rp|YH_k`=3NmKGiZzz2KW%=<4RE` zbZrG?Rd?<RK~cj zhK2w?3JZ`^8f;3*(VJx>I!l`~Nn&ExVkB`nAkvetNI11_PlsZH?qfs&Hbi*HMc5TK zIHzf8GUCT&Vy5MF{0tc6POnowLkYI%R*ILbFjnn#d~}H6ct-i)>(TtOcbOIQNx$I2 ztm+w691zKAO`ONcJf1|Wwk8!65a`EMej;rYZct*P{NsGaA%Rdo;X)lKuSw2w3T+lW zVlX$tS1UHV)hrOp=^pXInueAEcnIPQE%Bro{n-u7szXZ;yg`UywdzU;0}dga&Je=# zVV`Y|RXf8l1H^I0E%w70_}Rj&I&KN!LlkFVX+2tw`)pZO9ashlAWTKgu||HjD60-E zEm1ITg&@@hWCnh=Bpnuz!G|bLS6~TkkNRwBR_zKZC?HTpUE;$&Tb{1!5@&!o&L9fH zPXm4As)HyO8zMLZ2Pu5XU*b-BlrR28iQ~^dNnB+_36M z&qs$C6~2N&vF)^7`3kThLPfz;4>h|g7|sB3Dw==!@H9|`x@!Iz0feb&>g2OwSLv#$ zb0{DX?~nel-bKO?JOtq*IrHQ?Mshwlgy5Z`d2Td&^*fPXVb<+xOAsHT@b;v9bRFxJ z0d$DLE3^IJde$o|7$8nn0f}>{-LF?NVSo=&c)Mahx|U&Om;l05RO9swD{WEghn4n| zX4q%!Gk^>@Dbc)3wqx*wLeCdD1l?5Y<0f!J3Jy9`w zGtbWHgkYCzn57g39b#1Y2d(C&LmsQS;_|wYK|@0TKD0JZVfbtN#fn2~4;v!zwd_BX zE1KP|WpiMVJAP1-(gV}-I?5sMt4dFu+ zXZB$|x}MobkO0C|RG~G^J}glhW*^p*Yngq7@L`i`*R|#bwzsT0y0(O|7$A<*MOhE8 zYxYq=0f8#)!{-L;un%W|IL_b>!cPMWgsTqjTx^Ko3~a2&*0siNnmbaHaX_SsLgFjn z>nJ470CAiVC@d5n&#bt{ZfsMcLyQVvS;s^GDgqlKR1{405V)(>g)=~$ir$EgO>H+> zagE)S4I_Xs6-}Ldwk%9roK;8TC?$si0zLc(U3Q=R<>c^SD;3uwZHt=?C=Pc#<@45v zgJ%*+2AtMlg7<##8M+Xg&Dgh^qeU861tK^f1vy37wWDmrfyxG24GQM4wv&Pf&9APl zK&pnifE_N2ymhAuDZlL45iBXY|CtcD%P5a2_+b287<{si~vkp7bq zr5eh(3=!d1z`Im8^60Cr@NFdvsXQgj8?uNF3NVb%#RTc2@wbzHviJ4= zhUgg8u@uoWUZw*cj2hFL2`I%{0}AE`VdgYDXU$2(!DI4? z14I@8K5#@3-kYS8EWdg+N?#`fnLuQ8vB(zO!y_DxpWCbg1?wIA0lLd7z!~9W)tn_H z7;Qbz*P$l^1?vq<&%m`;5iM1vjv5Y3w=5>w$DI_TZ}~aZ&E{6IlFI;s&DLvrb~Sfm z%2v@!!-46#rPp*gny^Y3alp4yCkY0Y_bis|>>rFI;*e)0iNFGfT|zWo8hRIhu2Mn< z5Nz*T8WorQ8Fz+=L$Z}RDKzlhw0Y>hamuB^the-$?*JaS>{f%)J7?$TbW=5_Tcy>o zAi+p}F~7`)bex@LbIxJ*8Yib?RV)?vFB8>;4k0v8B;MFXp+jHr! zQ~4Lpjr&&(MeKBxfU2)<#D^$P%Qs6=3Oaf}dgEPr6tN>!qE*UafkTKV8I)5W2)ME)m`Y2p8lFo1Yp>Fy$d<0Dne z&PDzby0TU#xYrkRs9$(<7_o%M02R4Jt)qZ6AIM!bT51{4$$7E(a-{xD`iuFcd$Dvx zxPc3ZG5Yd9dxQ}=BMGwjn4mye-i?BdYY%AzSC%7;~=q;E!ZvDV3aG9tvl#j6#@ zkU*Tr?(49OOcY`-`9`cjyI8fNNCJrQ$bA)J%$%65m`b`#=?HuXQCTzvr7EZOSe|B} z>!L9v5a$=JP0E{+lRdr2l7w!0j##vEp@St=#|I&Q<06G#600Y@{y?mdIPu_@5iMU# zaW=C;;9t4|>!r&=-u=C=R!DnIvWe7y=l|XB{{jX zQ5mtyRKcUcK=k2sI+r)A9vqw=CE`PmZdn7Jw@FfePY>cwP{z3Pb^DGrFah4~SztSS#x>JFuX>O`$Vql|!^GQVTc~+%On*OUkkMdgCssIJ6=RH%e&aUh|3KEQ7If{Jg3Jiki3wSH>rHt>8sjDP zlmZc~k9^j%QBKP>uBI`yp^~SFeXaH#0S2y*d@iwYNsSQ&?3^v!=>~f@)qD7%~J(^<3Nu z%et?X+Cl{fzCc|$FTDP8rMjZ=z!)ge3n$a^N+l}5>bRUu)YZ7G9n*kbqbWb4vl5p8 zgI;%iPo?+-KE{cNU8{Cai3YZSPfogRX%rmz0xgYvpwpJdAc8fZ<&@UT9rV4=W)`2u8 zNFSi!jRUC%oUS5bIRijp4>G7Aeli;kUXIh`NdA*2!%;y9gG(AjQ2-j#IbwRK!4!8b zF!*md{O9hyMiIlP8deDhu3yZq=m6McMpNMA=xVS#ebpb2=%5B&<-AW_W}>#bwt8P| zoP5DF|M%v&FAG{}zXTQJ`>6#IlJ9hPfBWQgWB-T=_jTvOl{}E_R}GRqKd7`_uXFJn zGRSymb~PBE<;kYFf07Q((lJVE_nE08ma8;~F2fKY_--&hvHZcfBBsWbToMdCw-`?# z?klE-DAV{_Iq_b%8J9XU#QU&_!EvQpzzb_eW3`22!&NlXaNy#l<&8mBDJ?eq;H9NH zY~~lM=%nGG(@j=d#e!~hWKlas3o*rgJ9StT}@4A)^RPdPbO^schI_@zBD&C5WPTlj$(W`zdmLscy zo_>K!xT1beJ$xtcPcKrja@ny=l(jzuW!{CJDVP_p-6ArMi z=P4yKprK@vPKRy|pg%QRhF+Kbl?wy>o8|{`0_B3PkmWi=oV)WVN~AE0e|vaa7KH?s zYepB>P=9D)C_6pUI|e!D zzHgN+#{t6~i$QviU$_yYf&h&L2Cf?}7avqbv=dc4<(93e573mRaKdtIG_ahfx=7IE zJz_~K61GL$S#GIeqX1oamHIx=4KC+Z3~%xPI9ppc})K%G{_p$#CXA*i-=_;py*aR2nl6w;bBQBYM!$~7cn9L zgwLn(Kt?s)5{43<_Vc`d#VSX{fB+yqok6T59H!qm_FR=vA%gHWggX``Nb-oFc&1>) z)E5{*1tlQp9^g^Xo#)xNDV^rvoDr*4019%Js37)Aa!i-`^79p|8df2K&@-$^fYzyD zC15pO=5(#AmLnyVD)TjZ=FH}o&Kz=8b1FpW$E!X0sp~Q;ReOyGGTy9-AN`TaO3hjc z2};kP^93C`V*awKK^3AQl+lPPxRF**@`TzMr=^K7sREI8FpLMf>y#HooVq#MJ=*R) zd%nXo`+u58l=^kW^rLANTf~Y@fQ`X{>!yD2 zB{f^qdEzCPi&(JOi>}}*^jdiCu@aYp1DEj+*|%$?CW%oFKT zS^n4b%J=_>Ev6F5a?2nv$RC%l*yOSb@_AUqQJWI0hF(KMfcxc3wgBh+!m5Zvk|jQtRsW^UH*w^dj^i@!nC4ufDBdt2 z2yfVg!}M&yPy0rk9ajJzm%;+gb(_Y`lNvGAt{}0~quyi`#lX$w7qL1~#iGEV%LAWi z_{}17!-FH1zH9k_30kJ#XzDHQx7SaDf#|la-)Kt1K+0OpJTRtV4SS%00~ymQu!_-M zD`y@5iLKR4Y|Jd=R(5Yd>0@{W`%6US4y)(m2K5YhOM5*vSdgfo3-$(lK;525gMo;( z9P{j@vw7UUdy5f_e5?OQ|(5QL9yM=5{r6_k>K&t+q}ps=5Kupqy~ z$g_OtduPl*qk`4of$oRJC;5abd7AWJWh2TZU0hA5^3c8P^LgJrH4~9@Ok?UE zAp#%Lyi<%t;HAGY6wyJP>#bJwwiXiL-v+$1GZe9$T!C(H4FTNQ8fp)2?G4>7=(JHv z2jkQ~=l#iO%opThoI<^&8nCnj946RXvbK|`M%Ic84rsKGj(?3`tI<;Jg3=;mls%*7$_T>Co9!_9I`yX8vZGa2% zRhDcaT`*|8PD|F|fm~0k?54hFwu3F+vdP!5%A%#`!kKXJ~6L~nhmrZ-}2oLl1)!T)7t|<9b7UbSsO3kO9oy+HN zLB1!&H#D0`e@l7Zrc>IYpqOrvj5-rbPR=YR;!-StDOamSh5#So9ZP`Gv^S^dts;=f zDB?Os09Fa%phJ+4@t!S6k&V^jfWKk-w}_raTcA=B2Ogq44TzFcKYUIGp}S|8Bgd@0 zHi%(ELxc|kBFxh_^Pmhdi=YiMFl-3%VMqwN>T4|4YAAG&SDA=pOTeotkU0Z~829no z<|3!dvl1Bw;Tjj&UEuBfpM3+j80vFVvXws1Df zVwR9=ENw7BY8ser8Iq<%=*b8tFWY|G2Brc!LIf|&xjPY9#Pf}!7$+)a^|Rf>q|I&w z0jNslAwkbOoMc8py>8fN%`HM6kosR~x`%+~=>m8$WalXn) z5D_!DwfUn6Akr^lM4Hfb7<36IYh5DFSPN)l{wArw0l}U?FuMDUIyQA(VDFN$CVT!D z)5N->gi%5MbB7$X)UnZ}g@rh7M^|w4JV_$%;qZ*2C8?u;SWg|X=t>g0iLoaJ_ns&* zZDEB`T-Yjl3KSYm7Ly+GA}`w%SJ1n#mGqQYZbqE?_+;hbc zi`$gdf^o+zrdM$T4}@-WQ>251$f(!zXBI0oHx4Suf9z;W;e$Q3U?i$_51CGx@-g$9 z3gxTdA71Uyg5EW| z9uN2-ZY!9bVS?Cg+4Mtn+>Lkn5mBYWb6A(Jdp8>rw70dJsnL(l<;Ti6W)IvU z#i(czs&FpQirEDZGHEOjJ3;-i5K-JK@WyAv3LGSU{^T?H!0O(jv9YVv}j zMj3INO5!7e)G=?NDkvjtZ(g8*>@g|}Fdg8D;2eY$t@g2E9+ z3$(xS)$acD{ocv*qoc#))9o#$a!h2ZO5sSQQ!+{W{D5i9zDkLt20!Iz7a6vFT*W>dIs7sGXvtU0FR>v(mHzIi zuRHw(GT0x5^{1o#PS)U<31*b~3L5-R!~B$GpX~31EyiqWMTub0A;o=lb}Kne=@zH{ zJf)JL`OV#fRO4458ztG|6ru-+!t1s!)fQU3&PVvLzttCzLE1@ORjle2jnGcmnx zB^S%^`4QcCPGM`}^4?^VqE*tNzL8Z;3I-G2^~S8LmVipp@^b|NwEkheEHsXsIWY_| z3#ui3ggBZ568*GZqCA~1@~OA@91{eylvEZEBx|shsJJ;lcGbD9G)KHd?nGc65(y4S z^r2mP^3FH9mR7qr?RYwg$74c;YDz7L4@rJpCy7t8K1@9RF#O#`T`=rLleIj-|;_Mw?Q;!^BKOstd>hMS0xzINe*ZV|ukFO8X}4 zM;@c)Cbl!ij3}CjEof+b&*KlcUCgRw6Sw1QcSF1*K8B5%!$;5(YOS`eTX&?b?aNOs zZ7FHw@#*uU-GiOOWcYf=J1-kEZmZThgbwZP*4TdT@?<`ggAF!*Tdg$?xFbYdLe5HQwLYqj1yb3)g8lsKlgsS& zmz3Qld(9+TtyidGfHY66nslmSYPa9aMs#6&;*OMKLbs|bQUDw>*!9SHj4FM%-W$e` zkR;HIuU3y7Nu2h)#wPTn+r)M)iQU%PHQJGR-ZBU~+Dkxy^7%<|RV2N1qC(x$X^#%W zW{LHgc9_I^C#yg)#vxcWx{JhzKu>}K%|gM#F}-iC7zP#OkAvhn#idcXFcZWK>}t6I z3hIx8)D#^+4M%U1PTB;()(XI(A;vu+hTIxW&aUXJY43GEpSqD-G0PY>cL)!J*GoeG z`2C+F<~KeOKYD-DCV18Jc3)%i(1bWN6!egOs}vp57E|vvMLDEBVMA~3zpUR@qk>%e zt$K`hMlX95MLwi^y}y-Fa4Y$3C1`+pbTQ5Hw3kj_jq+?NQa5x!9RLOOjk09vT>Xr~ z_!(c!{;XfHKmv(nTH1;2Q4m#+7T)L@@r#jjb;7buf--FY6x4TY{U{BFI2YhtzY(*@ z7t*mr1DRD#MlwD><*Rz_s)>ODja6pTjLxmid9&KC%zy-vyQSgiCpyHJ`%E!A9=_!m z9Ox|5iLfuKcU-AY4-RyCBw~J_^r`uERa<@} z;^TqPH6u0kOt%%xD4;;|K)H)0$D7`7e%(vo@O;!UQ5xJ)LWm%B%T9D-F5?Pi2RP7q zrgYZLRxzcuSmv3M&bW1K$`TQ}d8VXCx-_MR1Kn-MU2;0;$^9}W;-bP+6d0)Vc*FP+ z_ z#25yNzM*2q6cd6I6rchdg2;ZsNGoC)vh#rc%XYD0M3BmrwDJ)%M^tB<vOR|fR!QX@n_7iRf`LlbTU(IO0_C#JcnA-KkLaEj zaS|-qk!fXB%nN-dY8SI+#Lym4a%B`BLbxD*h=)%5IX$N@4e-y-MC=FxiE#&DLH!Y4 zFweZ9>;y7Zf;buHX6%jF6a-*c0uLR6m;!(xGip&TDdB~i7_@Bxgm6KA7edoRyJBg4 zaQU)W@KH*{`3<1Bs@ssDypM-LNuhg_|Btvg?Uw6Ct_92Ay6jhyC{mm>&#FPGn(VgA z(~~HvN`8`xPh`2;gdtBzu}2{=X40NP4RkFNJmYe7MK9V(IA3vtXsQI`Qx%&5Tw*-J@xW&urFPab+YhirKV)pv%na-m_0PhjcZoLj+-# zzs#gv^T$dt3j)jYbNLiO*C5~_k;63T*&yM5A7+<)cL;hJZk7B55!aHZxFFBUHrv_S zwQSku)~syldeya=v-DIb=6KW)arBai7-Bt`XMYA#YhI*kx6-YbbDt zAbi7Y?WX=nV>f#**Q52*PieD-y)kHzacg=hz;kgAe>2;@OX$$?t~ph9wH~cV$CK?J z=?^sM8l2HN#z#Z*ipubcZlC2NX2q=r0o04pP-qm*GRHT8jw*$b##H;BhhwYTEqbfYarPzKJAnTe00o1$} zK26n_2?lf7IX8}CZXux6g+y#BnbMbm(|Ls84M{4`dl7wd$m} zT{6JdjZz?is`tX@sVdqLw=uW&+BvE0NfgBv|A1N-m2*JTE8*)@ld0Zvp;mDuD`3@? z02%yu!#62^KL4lb$su0V*&QypZ@ZZd3LSLi^LjnCO;UDOy=L|RS4_HHT~$~RznrI7 z&|V^n8{&mBjm`IQM`Y07$?2(Ex1EY0p)vVBa^QmcR-}GtzomC;X!{mlCsk|#iZHIQ zgAR@g+M6-GPmn)8q#0)hnldYYg6O4;H0yCGCYd8hnUjsh?#9$Up9|XM^tc&{POahu zc0{W20vJZVW%dCM+`&7#e}ewJozswvUrnj$yqixQX$26BcT0>H^DPYrSw~4@=2lXV z3EtZ!-b;E;gRyG5@~x~E5uA5QoYT!jY$(@^##%`oBv^}OIu{Gpoy*h!wlj(d(VdY1 zTN&xnBvzQ684Vy9i~e&Zt4e48v52jlPkZOIi0z!ssONg})F8HUe!pDs%}t$cYZ1YD zefx;ko~Zlq@DWXcPiK?0c<)9tiQpkz;49#P>{>!Lr>js!r&_TI0RWQ9qk-s0NJqKa z^0hI=Dl4ammg!)>6bPa4 zz5NOwp9yz9JFP&=2Ys)bMW^PB9^x5%ZY=d+H=olSk9l`GznoDs+zN2cT;Z=}bjWzQ zBEt+kSrpauX9H)O1d9y%S6k>8d>K+R@Kp;SY)GhCAnWn!cEx?I5pRE$Gw=}7ZkIwm>)9@% zj=dH0@etOHb&T#^61%%JQ}Mu2R4_*X+q~H-#`JPoJFM8}76JE{lEsIV7vq=Pvtizy zZkaDwH|GrvWX8=$W?kLvY4F#q79h)X=23+y%W7vj2MN0COiH0Lw#@wKvL~wFHAc9Q zCD}5p)X`Z)5e$sn>hG%IUh|IpWD4<13JG*e_@u@I+2HqZq$MgA+B6N6 z*={2b-f31!P32N)i4>6I`uqN4ZxJ$*^KRZ`X~#S@B{@1o+_9d(MHGrf+uz?Kz$1g) z1z%2%mdl(>qe%ho9oklMkBp21f?g?DBNkk`pF(l1LyDF8sV|WT4hf|KDMW;x3Pi+( zyQyY7ST2vj71sczNO|tfC_h3Y@3+&B9DO0{npyw0YRP~>{Z2~#U@=>s`+A-1d`lf+<(qf^XTxkVydRiAQHPQ0Jk&_@;7`s3lP{4z})dcNR+MV zc6CPq4SLpa#WcYwdTqE$`0YYIot~c;3ZrWa8iXYH5W;H-3M3|^0~lh>s&g%=kwDUG ztm3lNnV)FK5!EW2!$SsZ%D4%QjNC9?o3a{*LQvU(`xO*9AczI`hbA7C`hQ)6I|Byw zO{>P2s!NgihGu_6TM$iPLCXTT``rpL4GN1LUE`<3h5**#wTbK;yL$?7k&mLfc6cik zkaOE?S=|i2T26Me<{|x=CUhsuv6ujC8C&^xE z#v4#UeWyTe=DP)P%ivCzVUG#gR|>Q%ayfd1OfYMFzBS7c7UZQon`>JHbLTvJ%#_w_ zfcm<*dgvUB2KwY>f>yIR=IP1+p^z(};Jrn*=1B?#tn=tPYoUBOCrxqFt9X=ekzLK! zr?%{-xX7_7V8ecYM1A-NRI*fw3wb`y(gjfPzLfE1H}`5bH{{ukoE8v#DB1Y)Bf6nO z?9M%|WHU%`zV7q*kc#r-*>toqe<1r7eOc4#&2w9YhK5%w8VY5sX{+}u5Z?Vxg`fV} z+*U(QCs(vI9p3#iI6kcLT1Cy{(QGGcn`TJ9Uk8w(z%-hszCEP;|MO@~-f(8FY!EeF z7f)q~$uYs2=G(E-Y8~x~qv<+2YR=bRkI#1r84BLW@@>`&*CY21z*cC`^q|VN4;mOY zRG7AuTYtPPD>yFJ#u7+z!Tx5(K3&jc_RuMyE#SN$G;>mIM##XS1FV(DK<5oEH7}u{#Ii7$){6#@L@P~&ppzS2zujF)&b1~ZQ1lS^fo1H+GuYs zn>~#Zi4G-q3pQ~>3GRlvj&vy&!4^OT^IJPQj6z!(wsh`lv%NRk(A?o@I@_(Aur|iV zQ;HTLAli;z_*)$xT3*f5nxkJ|(T)cB%&($_4qz1-DKr$^2_FTubcDrB!Z0H!I`;vn z!VXw4-wq!HX1eoMUNx*J|A12=_Nd@3sQV8ayi-jVMFzZ6}w`0L%^*nDY8JrbXuvgF5G~U1ORdhB(0TyS$=MVcq(F571ExogL`HM;pmjRAUI36@OC$F!&Cw9kQghoWa6 zu&SjJkoWRad(Q398^1*cKaXGDTD07^n@t{Um;8ptZt*L}hK84e-I6lcJetyha(-@K zF~$y1)gl1!fB)bIfA$0Oe~`gDGhQxju%VqAqZu!YZk?G78VZWeXu|B~n;l>K@5LDc zGWg#Q)=LUvNBdV?^?a}!n_JVECxW+Lt%(idqJ!5AQ= zR3HYWAf&efN$??~WD)mF8O^oPOfTyd^=1*q04cF|Vy*d=i5=#7?_ooock%jxV)rjE z>RNS42_WRhyY-CLAKhqoaL*jpSZp6Im-OJ$dh2dTv?n;k3lRUV2>L0ola&5TD;3ne z%+&qv;luloBwj*SOo}q7T#o>Uf;;T9nCP7MAT|A_H1}=%1P%7rD(s~@6E!tQD*^b> z@oGf}-HEgjr=2y;j8=w+hl;xu74*-n>S`jYR)WC>|0|6D58r(0oUvd8#Y8c~%H2Vt zL&KZ?J2QPt{b#xhWYhePE;*XffnHiSlP|Ssx{S^g08FLe-wGtq^E08x)R242<)dli zpI%+AY4@7>`?rT5Jr&p`Y3+Pai8z7`edDc{-NC2#UO<&ZF?eWrUE~Id&Ue&Xqu-bd zEB5FJxHcVu0$OVJxLk_PeZTgw@X&ym0z<+ct_Q)ap=km4d$AyZj`xHik&G^}zn~lZ zN!~Csi)PHD7bKaWtmZMB#!Rw_>sev@-RP4t+}idOQQ!DvF4&7IR_ zFEfh5qR-UTV=5HT@>Z}+o)G{p?ly$~7Cr_D^j?0F>FZ4IZ`JsU+pwlKX z<`+kz8yKKpi`u7~VOCug@9dNe1SqgP7g-jvQB=IXSE8^u1$=W48Z*+7_!bBFccOmt z@7A>oZ~H2?YL&7gA;Fr&ADcv0lq2I$z^d`g#dUyPcnlVJl6tZe2T+gnWCH{A#FPC_ zLgofXdNQC&ECmlZmc>JX<>nP#eNB5U=qTr6G^2A)1NvX_e5u0OfMQ!Y{6#>5@>c#k z-4rn80Y|YN7BCe~hY8Z#NNw_JZXue@?5R+`@lCPk9XO0N0|o8#SIybkdU-{Uo95S? zE4o9;=bn(mf#?0J%?0fzJRe-T`JxS*JhIyvXxH(CUxBF@u>{!deD-$u%N`Dh`ibI$ z(r7_3vc0oj>7#sGkK#D0!GO)Nr#r-_n^B-i`Rz{XMyWz1PVkkxm}% zq<6RZ6;93fDo+wY-XP?#WIgkvdEJU`P#1BJ0t5&q%xhs~LLd7g-0M{8YWrD!=pki&m-Ytepy8DNz>ourw8c4hOWIi*; zn+G3nx9fr3PG$CKG8u}F5m0RFjlT#;P+nudn*$n*O);SXfSk>uf#^EYSs`?npWJGz zxF!}5IhDr)*^5YN$@0Z`MK1^lIhTV2)eR)Px17&uxs2{~-;S6K6(fFNFfs-Rx;K#Y z)8%;Q`1~I}n>FU|j9Rgb4Ln9&1&54R@flJ+G-nQpp04p1+ujsA@BmiSz>y)~ZG6K7 z(Ab|Y{~665m}e!pDHO}ufUL_9_z-gkUotUSWl|h*08m{5t5mNcJttn88z*SKp80}e zO99YY*aI~3UiO65?rb(4f5CU9_TmWvxm^G~I7`nzokBoBhJafzo3DX`?dalb8Augl zOTaMeOH7cyjMRo{@-l1Zn67SW}ow|8mY_y8!~SLTNT~XD-~0 zGC+bd1WhYxL2gWs;f6Iz~S}AR0(sF zAwWU<5|TSwN|sr;d=eClKp|rYU8{?M!G9LCF1fL3;i<+XmUmi6SH@c_eZh zmW+K_E;~h{1QVp8D{D)#$F6LO2eMaC;`s6Lbh+EWxzYu1#i0*i<=#WNV8Ebf2L6)v z>X+J>E(T69LHZVS`aNG%H@{f8w{@snllQO{dqjZ9a^3VGk1|8YWPh6}Q++txF&rNeSe*YKpeh)gR?-sF2yVTKIC-Ypm8ee=$4 zWoNeHrvC`4bTi2Zc|VRwsh=guSIZ5Jc*U0G^AnV7i4!tybyyjjtv3Vnis*Lmnfc#} z1r?i#S5F;GsG9BQ5Ml@A)ue?>SrvnFy%cdPZM&Gl9qqk}5jV8|%y<&F4E>Ayhrzww z+HAD`A@AODwwo`$-p$X%YKtPg9;%RWLF9)Dkzdl2 z1OCR2UbA9{;9;sP0|d1erWaK4 zw>}FqXM(_=?k&v31JZ8zpY})p!|ayuK-~Ln;@pJ|!|bk7#pf&{lkOK@Gh;F&S2-)f6j@>QXFFLE_KbB${h9X@7iOq@n|< z7Fi^NOf!kJUX2Ii+0?APd_o(F=mofJ2}W^(ivywKQ^5wknfy+Yd_FQ4rktDq&BCdo zcfr955+pukyw1N&l0BfQSuwGti0d4#U5ICZ6w~WUEJCB^?UHVBv2oTM3e8RpD0Y!> z$by_Q3nZCgS(_yJZjfT1K1b9jVy_4B&$)W+8cLg#{%r&n*hqK~mvqG00iMIX21?Hk z{L+8xc99GoOy_im-~aQ~m*3pK=Z{k1d?FR9dGF(rF9BTaZ+|&Ms_qa{*zVf*)0Np6 zLYLcaFY_IDia8koSS9#NL<7++{Pd^kie3U~=m?Hoa%PhXin%zzFgl3|(wC4L2`0_i zj?b?sW|09>q;!ZNyp6OVG`2O%11y`0>3QH3IRhwYuOm6penCf^2KT3<0mfYM}^RveNcS#dj@_f&}U;HTK1NmVd>v8-R-J5f#Ll z`_WLqZq~3pT}Iy3_#7Dm(nw}22qjzdtvVedS%L_{*I^-;+7gbp#oe@uE-K)P2A9|n zk(IZJe0h!UTHX;A#AzJ2#t9)e?b>vR;~W&Ud46Z3i{aUH%XocXuwV+{*4 zja~hlBUc4rw^IKVj3YxpR^rsSn9bRIaNV`U11M;3qF$hyJvK9yyt|-Sb_PnZc6mrp znzE*TDP3tZ2!Eo}7Na$7ArS{zboJVUfx8785?%?!OhREbTGx>5SKy%`;QIIGo}W+Y zMqSs77&J?Mm9XMmr-g8tE`WjQb;-0_&>cb>D&xs8TU1l5g4bCkFciF;D=-r}!)&5K z!!J_CES>8ZU7jX$Ge#XMKq;XnB9Bq8<+VCD)Rjb|NUyZy&Q&(`;1#r!P>b6 zHWb`p3Vyp@?p6bunUnQf;cu<<3>e(E3*4L4Oq^F!Z0%D}J6tfoTw>mxU6|}Mvn!&C zh8)n~e}6bU-)-sU)!}e3{G58{^v3~hvG|Hk6O8DNlBeI$nl3pc)1sKMNnmXq(2+pZ zd&%dis^727;_qly5~Y|#PEhNjBnLFz7`h`A=9~as@j14a`!lmBMy$ZF^d&s7T}MjG zX8uPs>xwP)fXK)^9JqMS)`bG^k~83e?VaKFk?qe6{y3eGrwz7`24g#RG96ZbwvpLY zF_jBQmsJIRn;Lq1y4lisiBqY`@uB9G(b;(L@hA7bYPKUf!MfR<+3QFz=>jfsC8?s} zGg#Iht)QU3k)~QV7qs8a{)uqfEMewR z%$9qfLk}q;GNT+ovS=5TVTS^&lK*+&Mk%1zX z>49exq>6Z4;z{A^Y}tHWH#Rm&ca!DKJ~v5s|MLc45&tWhi+IT0HO4m|t@$gPiaQS~ zR2B*>H!>F5ti?RLrT$>^cMFk00~fd8VoYt=q7fJL9&f>j2R@!R_d;l2c>@}_t}{E* zjuv{^jhV3}(Csm!2Lltg;$}2oT}>zAaLw^njCkNntVq3&iFH(-wIe+wK?Bzd(TeNl zYAV_a#l1l#PxMIONMaP7#WOLguc(p2fh{R5`Z?C}bguEp(qeevOQHt--dEHB6j*q! zV$JI(R}l|{VH1gx>c8RzWX~Vr{vL{+D9D zCZO(Bm~cST&%@V36U}AQ`mcSTg|0qX&|>T|e{JJG`?6n^4LV<~>7?CT;*Ma&9AE%z zHJO8kf>**v!cy6dU5bUYfYmO*+yw^yx5GDr|9rWgkG8|hX2$126-T}TWUGvn0BWjn z$|v4sFG%(lrx*kDRINip$Kj;0yB}HD?9DnU0o1$|3@ggYR`I+ZDdz41Vrx+)_|WoU z__CC=#rUA zyH?}A!lNrzCs7hYZQbW+vuzm=ZuuHC9n?8L@%)zI%&R zi~)LH9Ie-*r?f6_|CgT06C+*CWP$zGyLAQzqFX7EKOA9JZCN1H^k2(tDIzFuFiJW* zwz(SdW=YdQukZm5WYvm<}vij@~l#`jlV9t`<;Db3IMdO6Q8+18BK z%GQf`pkrlaem09a%r}lNs{mIe%bwWlMrPqa#vI>Bp{Jv=J^sf#eu@Z6=8H6UB@Rp; z?~4u#G|U&L^!UM=pIkaVc6cxlJ)ipGN<1a1nVl$mp+N!#%gef%FU2OM`$b< zTlSKxVQE`~W{Sq4f4ExG?QTy|2nR7j=?Cpfx7*S9lHNKH;ZSkb+~XdgG2w!`w_4TZ ztGb#Y(xJBFOTO>5DxxO|sIcYUG{s5jgRK>rV5?uWDsv4)i`!i&hHi(Nu1H$d``KeU zJNhNL+I{ENW}d-SlPgzoSb*wD?|xF~&FXaNQ)+5y=$X}*p6c`-MzzvKb2WUnN(Cd7 zWoXZrqz1!qbd`0F+bv|VRBaUd-0Y||E-~t&nL?AEeMld*>O@gd!U8=N8=02k zS=fm2K-2rdMmu^6oi0`hF~Co%?pEfkD&H+TJfKfnHq{<7sC&1nj!sk2Te0JY`t)3z zW~r#X_DOAw3d&-PlF3a~bhcv--#tdP5JA-)*oy|#6MOSs@#KSMVcOfs{D=22a%iyM z&e;nmAvBB93UYBMqQFhZu%_qyELcz69vS(5CC|4@F{FJT%n1~C3wo?V*De}9L5GGy z$>StPx)9h?$paefH**VQeLcl-EKS~7Z|`oIcStMq%NS*2Rpk?5dP{9X{A;M?h*li_cft@4#J~F6#U0N`0QoVYIpwkC3znUG3{@8Bxen{t@i+A~n-OHJ(dJs5rojQqL=|BQ%g;dy%tcaY}JR&^|gAqi%ukb9-=;4pL1Q6h`?9a@8z?4r5v4sVv%yBqv%!vER zal{6@bb8Y%&SqZ^=!~@FIzWRvbj`iB{cLyL=@l2uDm<=815MKJ%^bsw&xQ5l_Z}F$ zp=;`GVa9;5w9=lTW*64}n$Pi}B6Lm@6$J|@p5s!KgOMPt5UlU6#v2r(&H)vnF>49N znR)Ev*vNXQhU{kopvKL^g3r&Y+H_aX}Yt=3xC4dz|uj0$vVf;?L z3Wf^K5OnRYez=%=e5bxs3JOM^ON^0H%I>)YDmZCD-OWO?kw>{xe?a42?mkyIpoO+E z2rX>tBsIhzx(=}oAFOkK^eN0?#J_;82TUJ zZB<4K3c}E9c7#;zSPl>9##Z?ZCg?&S3v_hPP1bonph<6I1vJQoalc(o7c8@V7}tV= zP#AZ$>)*Hr6LiA3^b;(QR+>JHn?QqHRF?0u>n{7KEDjZvp?m0@X*=3HvV#&T*dpOqH%rIv^UEZUHxQ4h{AY3S*K&-|c|d&_?c&!ClBX z`ddfF;WlzWgFX2619K~6$+r(Md8Loepg|nm+y5GTFwOKKGgRdPl0*l6Vs)EuJLkB5 zEJN`D1Jw4+C-{&MhRI&z#*~1W=_e#U;d(&FwOs|Ls0yJ6?zS`qo13FQA&de-!m!a> z#4dfknfCn>l!!(JcxVWN8m8gA zp<{|t#R0b1t0E9UN312OSjr18j|1jV_G+-;;1B&KW(Sj`c|v<@XMB8hz)({q0~}CO zE)}E391&*?WS^xH2%sYjzcZ`s=&^S`v8_4F=LXOps%+vIpd@TAaZ3JZZl$0$WVEn5 zrkc!I4_Lgat0}TTQ4As0W05wy^6P+>Wxo=O-mYM>9*N;&p9&m06olSAD;3kgR(5M0 zFc-bo7=i|x!jdb~M6F_JSJVN`%w9bS1+<9z<9&qAf>5is6?by=QhzcAC=v0^r>ix4 zy~MWy2h^17&XuXuEV%XQxegr)$|YmdWU-{rl8FpZQubGy&IEgYV7gC#O(>w{BTR8V zpj%Sb%Q0PR8D=6^(-p0%w(K;%=sM}CC574#_o@BZvs9bj*}m`UFvKiB9^tJfuh*91Ye9vP3&JyxwSga9F;VI z2&%$SjCx|KCR^;EX3^}tzv7gZV4Tnzwr|z6t{b{wn{Lw=Tk|__-%{{FV{DfSrTl0r zRv8ZH)#=^NvOrJRPFBi;*(61er(DpT->hIeZztPF26bV>aOnf;5YOoaMA3wH-Z0!w z1!Z9k`XNnrmp1`@t#|**CLoRt>d=(ipYzQ*=`_y)vn*Sa5f-y5_|Op+8f?14BK!f% zI2CfS?I-L@O&I0c`vDWit)%Iqdzev6dF6!G0UJKri48Dp92TxDbGFgwfW34TPPWO2 z+qb;2q`Q41E^-+riES=T6I9yLaKI#SC9^3qxOqi(Db{>r=mFcgT8Rm^&YE3m-4CmU z1uHLKlUEv=jrk4G-OD%Pf|r-CyGki%?q0qrGPpxW&-zwzS63P^4;XM%%DPAaH9Te( zHcfSpnYGPQHveWf)d@T;z#^Z#R?$O4`Nq)h{vBY!8m19VUfokO?rjTtIBCP({D3Lu zayjSlP!U^;>AYF)wgY-FVM<4_SQn~WYaxKa9Hto_`UK<)bQQ*AC$3*Qpl4FZe2xwN z8yHl9|LU?idU>b#R&oxBXrhmYU1#-wrPzMT5I*g>SQso@A}~wpd*aDg{7Un zN!cp!0sY%n4Qv58ba5Q1TbrS)z|32lw1Hz|-s$6Y;3B>R?>Q}IQw;)r~QyeX@K#s5t>7_1TTvuZutuNbTBoGrOlwCo&bY>09 z9`2^;?iKAt=Pq=>C48;rRpWxRFnCL)xr1`dMh9$wQRwjmts?B+HXdmE72ydWA`IzL zOPJvxvqSeGT?P*Uq6u^*N4JJPsrhYRO<>icfmZUr}jF6gFI~BvX(Kw=lz;=((!A3Qn?VtU(v}pYv(=o+@|>Ulm~HL{BInz(W9c zPrs8&OcD0vo)H}6yemz=o09}`Ijg5}UV;vK-q88!atbrF8JKxtPi+h*fCyeieHt+m zJV6yL6G2qbGKEoRzm^dLPhL66HHsVOd#ao%Jgg8VjBKDXDW(ewpv`zkfr@#^0gE+l zaY|A^2ybsqD!WIQIsx;Qd83+X>8ZUfus}{&Q?Yh2do!}D*$8wYaX<>MIh)Jf zcCx%$4DIYXU53y1c=l9t3M`Prd#WK}>_rx0OHV!3IvK?Acx&b`{EP+*FFnQE6dnS? zQ4|+fi~v78X9^D3O4J%#QhZ1d@x>&e+aMn^{+_x+)&dqBOd8>zeZ~k64*{Zr77ujvRY3zd$ipT$S3$Spm5c*+EVWikg9}RD z2i=6dy0*)~s$)-mP)PwHqEU}RHuNqh-<8`}qb@lhg%`t?_Cqj3^i&KM7nGslj^-KA z0S$9bgD!!e+vm6B24KzGu{f6(vdTBU?qP$v5G)Jnv#s0*tluVZY(H-D?=S+}%iU%z zQ=dy)xld!QlnvGji#LUAl(%vpF!P>Z?lW2Bg0i-9%&x>aO*vW`=(%||IU9UJ|9?ia zBGemPJf;0iYhK$FkJ=d&Ym5pU=w9T%XHAcSeua)733nnXREWPi{1Q8 z%%UBi-vkhp*Li-ed09Cso+GT}(qVz+O=#{=ODfpAGDk>y3le|tnNoB#+E zq1^n--F8d)kZyAn%NfU%TLBWZAv~M)mP(X4COiwcB3)7^)4|8FbO{{juA$tFoVHE2fC0adKzw>_pXo0Q$zwu$dmmkc7fCO_n15hIMDGtWo_cod15{3 zFb1+B3N`eYF;I$y+_-k$Oaa(UiG#D1>y$E&IJliJ;DOMUR+_*bsAPNxmsSo3I+?#o zV;0rF;!&bQ{sJBdW&Ws&jn2f;xDNRP9O&HmF6O^kWNZhI?=m!y-7qi0yXWY~qt$df znoYmwmi%;oJG;zhaPU{ZMvfCP^Gb8 zU`cW_X|nr4I^@Qqf#=1T8=8;ZTurx^tad59y_TVX2d=~;=m6@7R*Obwe3aF}BN9aL zJs0zKK3(wBu8NRY%a_Fh$F+ommLxA5-s@IW-YSiU1JjQplVnl!z-lZ83Ji&7let7r zI(W7N1508tigq)aAY=~L!D4``Fs&{}eKHxiGSg-}o%YCN;fhR?>4oUBWN zS0bQxVsdarCYoFo-SSRM4z9?woo)|rYHRgqx^ZwtrX9_Q@O^@v^5o#altj7g*@6yH zj=ffpM26Y7JMq4ChsfZ-kdu@p^S3T677Q#&%Q~YQC8vCx*`a0iXyCaXD zO-J$_`jZJF_)_a_Rx{D`cCnsAEAk`}>c5}+!JqxW{NJ~4z3^v0_^(cc78Zm_apn2y z;Cwt=Npaa9%p3-fh#iV6K}4=nKC^=>AKY}|i-_P$t(cUWE37V7WM!2M*fv+A)p)ew zgX#_gwt!d2QQleVkR#qzN*YSrNSZ_ReKlPXu#l&`Th<{@yi=C=!uPby$Cr9KusAT} z#ReqWcUGQWIVwIdH1PZn)7;Z9`Lv2+0yA&q0}}B6!sBPtDT-PDB0QT)@#+iHC`YOn zQz*6rz8Qq+jIlSz)0<;apw(7^NOt|YP^h+=iGR1j>c#77jf|#9IdQ7irNRHMO%D01B2#800ia2ZnSC zBr;^vAICGWsgJ;rPkS8Az^6O{Lq6ScGy|XN2n_i&$I%RYiX$-OE%wn2yuA(#dHZ=Z z18+Tj6w0PEj*LQVD#O?0d>Z4(n#`v#fSyfX9E;ATE__Q?n6@~wB@k^Zw72CAZ0NALdgK-iHg*4@dg2n0kQvY}(;i^=!()_rsFOfwTaQ?1v?2C<9n2AC4bu zB|a7p_}M`9XnZzG^`(%@Ke80KdS43mAM;s+BTFGcLn(kKj`e#eZQ44Cxd`yUT3KNn zYb{n5etZ%}_h}xE9G?U%k%PR?abym7kHfbZaWJ1|;m8&vf{8rjy_zHQ!22}5jPu!m zBhmRxz}>U&e>wQ%PrtlJ7eUZ&*3FV$X7hh!Qz@E_=Y-@A>C_=%vRgUr`E0j2cng7n zsco)2FPQBVtw52(A%WzEB+0fLDJpN3$AVReP(;HO)1JxU}Bb}zOM(e>n{DE%5Ue9TR^d((KC}!#vcQFM#Td~96 zYUt4MdTYw3e8E6*z&pV0mqFlA(Qb{Wn_sfp(yuiPx>m=pPO9TqY8}5msg7R<9j}Gr zWPWr-wQw>L&hhpB?S%oY#W?~t%H*B!RnQP?34UYtP+Zf2?_4t&{?^8@Uk`Z_kWQp0 zWq_Wy!5Jfox6jiJeqwSI7ggZ9J?2RWTGTwHZK*b-0kv;6Il*2vsUg$eZ4b6_YElBI zc?$-JC56QJg_%Zis|miV6;y@~EpLV|fA{dKFYloZavRL8|1c?vn?(X3uiRC5D0w%0 zSWB9{SEIOcBY^7ESPCeLtx-Xdu_!am@vTt}9Xevz@sY2M0eYg(Jfy=_ zC-j*rJe0%|DkSZ(glg!}@oI20mU89#am-B=m-PoQ?z2T`D0n4&B$8!TP`s`cuv!IJ zWboe^UrYy|Pn+4~0bR~W{y3ncvFFpZ*tDqF`eA?^Zxs=ww@aim+7rqwuGsL`%4q>X zd2M{TTRa-vv;Uhv5388iaR4rd85U@+r!-{AEc7X6+bTprt5Iby+H|6_XrOvA%@wVc zZnylpVZ~Unk|_@cq8CykGdN}rp_neH&{(JeY2 zg#yW~@oYr5H4W+dIGT%Hj2n88jIQ?^vJAD{9YtGR>Fyi)?jv(e|D4|Lo%uLX!Oe*2 zZXm0nZ(@lH;v2{@5;Pl;T}3$LTO^8z;QOKbbxzMqrhVCi_hCdBAU{8zPX_ns|LMQx z?lp$5SROW?yND-nKyWP(EN8pkHEaB_krokpH@FBiI6#o~Y$EA!Q#jG`v#Nu#!tBiYvM-Rx7_n z1^1gZ?)B)38pPF(cUd)qguMoc&`|MqRfW0F<%|w?i1SjKiQfG>67Z@L>l);hmsfOQ<#zO>S+B(n_=*RU zEOgOjQ%#Zt%6`008LjM&n=|=}v}TG%WhC1+GV!LP|`u?EHP6Ivsn z!x{ze_{_TFnl|MdOR=ig**gR_R21xil%f36(NJga$k3sr;2lVN0`K6^(9mLyP<|(| zMnH#>+rF+m*wUoQ{2TkK4{Zw-Q!$Fusvai|j5#J)Z6A-SRF)zey0pwR%%*4S(fa8} z8fJ?N_E&3p&Uecxp2gJC$K~@oWqv9fRuzAHRG=0nHK52h=l!F3%bR*}*&Tshco}Fb zZ{F(n!0SN4`x>*emu8dX1+5&*h-SbUJ4c2B+v8ZCecOz;gYnYd`pCCvv{bD6L>k3x zi3!46Cd=_h8lc*olBz1RWLaY(`d{()g5S`A5^m zSEJQn(OeD3m(v-an^27dBASn2@gEBCkU?=QNoUU0QH`Q&u}mk7+gvp;ideY_3EnEf zoFaSFh#en&NeJMOKrL!ie$NY?()etE@gcOT|W_8VggvZvt zY!SdAfnscKi|vxS}e)Rh_jX#>n zr&9`j^X21axLwj!&%9l2vf$RIBm+a0T9neNBf9vIYxe6Q)rthKoGq@R2P z8RVsWQ$I&^HG0ao0|qrspG5!IEUC9m&p}VNJ9_1HK#x|MmX#S_HM<=VvyfV$fE=1( ziyzCh=D08uquH~X;O!M-2_S`aG^7*^qSC0}wWCqvfFSCEEylYw?FiWp&Uf1#O*afa z^KS#wQEDC;{zWt6k->QjW&h4-py!=7J$U?+mDhiqMpWQ}GIHvA7HFI?7dLAC+lh2J zCa9v7u1wYEwj2la2>ftDi}?03@@z$^=~Z5p5<004)^yUlQ{#pYzy5Rzah?Z?s4BKA znu+)0|NV5L3>9?I)JaX3DNW}4iWfr*XtfII3(>MbO^cPv*Uz8CN|6e>TKtJZ*lxxf zn3MRE=Yb+xL#>q?t;8>A49SY_Ur*spAcCg%>zZidIX<$@l#NcIjMG71DcXB4G#?a7 zvfpT*b3xf(wOh^`dbnH<7t8JR{3!+5EQ+m8WymT!)YEQ^#rgDt?iHa?1+Ax>zub3! zF|ESJ&CIe=*R|~t6hS2ZOO*zyObc2`?&m}JoUE$vlOXPq6gZ%V)|ry8nS5IFWY$s5 zQ72$~q!@UpFm<3}6-sutr0rcJK1HjG`Vn)#7_dN7OG%NY^VxF5&C_#91rF#j(LUx! zmef={W1u;$BwPoX&iC^2nwMTsjfu0=H-O#t_30R_~wl$J~S#GD&sF4S{$PHCXZ^gAmy z%Jv(m=He5yJqEJ)&|!LugGjxNhhaz?iCq$sAy?B+$NG#N6&4CBY+a_JKv11?pZJ2)1B__J8ewR z#`{I`3t3#<`$Z)NXrUb@w6m3NMPHl4X|&NoESV}!1c^ghIUcx7zPGfZLkoR_k7+OW z__HU|?Sn1tnjVbu)12N6_Q7Im4%!aP%wvJF#hgXT z0vzbBrF0uZ%QC0ARUyqBm>d#FY@Ue7Osv>eeL*dqXk8D@QvpuW*|F|=;Qk{#C2_Hs`-!q7gmIteq!>H^ImMIxa(66 z?|n*_t=Pw7hO_`jk(K9M(OdIKu8KGg4+cJv=BPt6Y4DodxEdEb3071-r%g$#c(3VA{y_mGI~6)-KH&D8``Nw z&rs9#J@@VZj?QQoKl5sheN!CgTj{@~$ZgzbblnASW%}ZF$l$(H$oJWDyIu0a)pQfm zY}PXFq1)Imr;|y;d#HV}duXuVD&(D#@FLgr%QZQ-z-`QCmYq3UU(6O5%y$cUF71-k z#BWWuferrG3jEY@9PVga#cInhuGGvjYBZ$y&`~OTbCbhKO27hx`DVcaTd`qWGX~b= z+~9(@RPrUO_f_)127f8iT+uFmVe`J~x`zh)o8IbXwqrG#3?9;d&z4UHbgz^-vNsav zfHdPWR{&|GYXOIjmn%A&iI|7g9E#bmz`}z2)e85;XnQH{*U`tGw)}fw@L%`*u4v3| z+A*Kq({zvXJTo|Oy_9j$<$gT8Xs+LEW3zzZyOHrpI!$k-jn3eKP3CU9T`$ELs$1?n zAoyhN%+I`u?v^`;2ev})ZGdvw7MZEEfrt(KfctK`i5)@#lH2tHA6 zXG?QLl{Iml%FW|}?V7OTl0N{ixkR;YMgjwmh$G`miZd)zo#Kdtt8vlRL2kfqTow*o z!td=t$|b+NwUgfi5Pax~_y9Vdt+z|+pfgh{E&}zXo;Cy$v5m1=@)f4;j0O>m=;uKZ zIT)=T@AxSk&172DGfnm#BshhC(tWUfwsQ^+T%ru=N4lwQ#$$6Qiv~n6ikLzHg>1`w zrc+GucwiIxqq}*R<4aKmJLNARf>G4MW|2=|cdCT|1fTF0x^z-3KzE8T4h~!*Z?qgT zyb`|IDQ^G-pC~>0`K-Bk%A18wr56yvnCCES&b#K2wdkVsNRO~*r_yt9$eXBn^dl|y z^;h#e9@z4-n~$FKTy_qz&PX$YJu^B)Fy=gq>CVWW^{;Pl%BHK^gG)?S!|napr3n=km`<&NG);G=T=9BE->B5;vY%+C4I0;QrqmB^2qoh!nETeL;g zw9`Cgf33U61Do(z8izh^`iyM=1fPg)*LpytzV|E%pM@VpDrNCF01<}!d9a`e& zv&EW~_UfoT1qH9LEv?6`d$lb9!6$5Mezv1gD5HbicoJ)=r~$j|VnU7wLAq z_2{b4mN+1SQP|Y|F09s%O@#<`{(s%RH-I>7yn=C(?|D|+x~qvKhmkjM@VoAkFg1)hj#LqfCxtHXd@Q#%>mui zYz9%1Q?qNY+KEaq!7BQ~k2AY=>I*wKaNRc7{F=fYm_N|59rrk}*y5|$2^w(hNHP3P zqJsA&nSuu2f>hx>0i;OkAi;P&B(|F97VtUWE2gL)0iwX?0KxWZNNU;4?bp-I5^t}v zreCpJCx8`rB{USg96m}FxZ-8}ihU{ps?P6$!G0%v64+_se7X=fS}W!N0#Jn;uwX9a z+Y~iDo-*evmObP<0)t)TyH@5M^PR$i`BpHLwKydyl(k~K7hnqZj-X%_@q-dv(POC- zF`VugKN3{%iui#olIbD1j`0JKV7wU&W9>`9p8ikYIczlzjL@rL|S;QV$Th z7n$-*+i~#o$mCPyt!}r-#9+Z($oXhvQhqOQj_e`l2{QN#Ij8-qXLPWR)uSGA4p=aA z-?qld`yJhUI{^hNk5o2+@fViaZjmZtf|J)L_q%wiy<2?>kYIc>)Pe8^*%eA7h~ie5 zfK#bd5*|uk4>g z_>Rt7n%y4aJ7B?lH&oT|htP*hsTJ$20iaUp18zGv-Sa4hwf%5ATyPg!n2fiF7RF+N zvrwzd?|EeDp;krUJ?wdJyeD=C40b-sGU^8Af41MVHoe;@D@6rwq5qPP272hf@DV|& zq(cWjtyX>5IshZjC0l=Qo{H$*)(#cCZ-odD{;=DQO%ooyG0nW{p77|QVk6xuQj zB-6t0p)CU}m}8mSNKhG@9$)4X6}+*(;8Wyd(&PIJ3=)jjLdn>lCt{qUm|YJ5yl4X) zn4&-1pX#H6lBe;P5eVexsij}B{yl&6s&Iqg(jD@O^U7yv5!ZZ%e$A0 z3BNBy@%nba%X3^phYs#jX4+^VYi&253XouoaoFVC{%mS5nTRz5$H(Ce7R)>jTjqjy zb&JC(DtLLUvMHiNq+Zr7RtaFR$2sTi_tVAsGArNX=bRHjuqCz0v6afULv7-qU`^tb zOHe4+4snWMf-~`B_j|caJNU7L1@q0x*?chB&Cl%rn7`zQz%)%QedvNk84h$WWpw65 zA*-y4{jmn5%x2L*_M%C5vDghR%K7^H{g>!6CIJN+o2T&G`EPAeUnryLDrH&~v` zJzw%h;*xwrqr zfnFi8kein#&3HN=&BD#2pV1|OeE+hh^Wj09yB85bcq1nim#t``b30#h%gS|0H#*}T z4aLSOKooOl@Q}BhY{K^tb|xb{kllf-aA)jjv0O}Pa+(DyP2=8XO?vgoqk{P5jM$u- zAD+)f7u>X(*}_)p1a}WPy|2DH1-Zio`K>JH%Q+ojXh`^RR_-j_(2Q&- z&daya6t8~)xLoI}ED&}R-=qFdrjO;tfSN&jn=5)qP~I(54&_s9n$gaFS_=#6Qf}u< z-jnDdw+0fFShYhPk z1##9Xq$JgAh#A1q@_Ac=Zy-*+e00Wz@RVX z`TJ(QWHq>l61JEieNnbQ;+Uppx~r|-AvjQFa{#mD#V>x&a@TbZz#)P#>qXPgXN<3F zFWLfvE(?Y9s~IN``m<>$31_@w-G|%DTSHB_76uaj0PO_nEuq*h7Lc^XSdx^qlus zyLz-k1Ys7LHs6Wb5~Wh2OA15OMEx3^{7m~pX;8^%{GMUU&KC0yjWVC+8EQ5m&eodt22 z6G4)`ma9dJP&I{ir^xzuuOr(ZyVvSjGOGD{DJuC1aa!g^aplbCI} z?QsJw~(Yl@cDi zP8f1nT188K%*H^Sb0}8PGT*f;BK@r{AukCmjGOf+Y?^G*p=*yKqJlW9G&V_(t4l1? z9v9?!uERP|>R6p~9Z*4>HS%l`DCO?j$TMKjXCvLPP?A!2om2{-pv~Ie{#IX5%6#=D zYmdZAMVi~L^Ev_=dCo=$JuZTTOuKazP-f1>)+*9GcXciX4Eij`JuZSE$F)U}@Oy8I zARG~S%sO?wErJ9-v#J8RY;usV8Kgye>}mvfIWh!fQ94;KU~TZRdjJx8ta60hXET!t zd5=pW1qmJ!?kiD_c!~G8*a9f?bB7W@n>Em z4zPdduxaX(73|*}2W?=0{3DBOPAAYYQ@%M!aeB5OJV1fr|FR79ejJnj*GEY=D8P00 zrrqFkF8erpI~-s;duJ9o&fXRV$j%xoac=WCYZw&Z{ts(q`WKTCW@*K#+Cnh`3HZ-j ze7gT<(wvWITNk5HoJcNEBw%3q3(K-wnfoai!`~j|E*^-Z+gi(A<~Vc@1oWGe>G}C= zdN%l!{@bhv{x}}XhGxpqqqseVWk^uo0p;(u^O>Qg3unzK1#yGBrmI|H%~3&oHzS^p z9yK(tEUstL4Cq^#BP^(2E>mwuXM$VP>h0%txFG)t$R9M{?dbK}=Bp7sl1hb5GwPG! zY`M6gi|}YjDql|hm;LSwWLEA98c6#o0OU6mGlv)JlWHHT^Zzazvl??FriurCg9X~2;a_CD;iVrcb)-03n zwa|2NH8yd`5b!}&KtnrjQpss|`;R?&G@Y&FB#`w+O%^q2bS2YwzhFUMvkgUKngFhq z@yk=n_+{vN?6U^1(LGxu-XQV9WV#uA@^ni#Vom5?swt;cH1XzpAAJQ73{GuN@{2vv zYqq^LXQS~WW^2tPWRXo^g7_LEHWxE7Iz<<+oH>gGlDm`TcuVcq;M3*!A^rDryCv2( zZH!IRsCy)5&N?ip-xSpMN9zr>s-{Wtzc2-wL0pT10y>1eRTo10`{s20BzG&#b>=!H z0UlCbE=!>+9yYvhtm)|N*WhqL{*EC3X17>SfzXwI%k_46KAO&U;_i+IilEz~qD=7L zum0fAeqjC&x@7tA&*&0jvF){E`IO)xrQJlE-FV!HLkYc_2n3Mxi`Ej`(G32oq3S)M z>639o*GMnNcxWD74GT19#WoV*8c<>u53=8jrZ7ojfyfIB%&I$|+Jq@?Y!~ zK6Ubgm75Xe|1sq$Ih22-vAMDL*cpb^q(`T=cS?MaVw2VXBZ^aED1M`8<1}yST#7z) za#yW8amv)LDOG=3O(_#Jz2oe3(a^wWv|X<4+`{I!;jeVDsCc>TU$qVxF%vVze>9UA z84+Z?w?`J;CAp=5#cGDSjfomG!axOS`z&^~mUlOu$YPENvR;=KYb!%V|5m~kO(i)X z#&@Tpp<_arGj(-!D;xp$$N>ukwOA)Ful}vWi|Vekt!tJCzq6eaTGPt<{)*8VLrQE? z#D*~{{8_iZM}F4lf0?Nc`Oka&idj?!)nWkN-7i{Tv|2R_ey>Dt7Vy}uB~Tb=^v3V8 z!S7?3^OALQF(van9eg~QtZ6ofTrn>S#mq@s6ah0UlJJXUYuEP4Xw!I4IbY6rDfO>S zvO(Kh#XSDjtUDI1rtZaylBipab3xb7in^S=zCrO0=|I+OCWiKx+SXjHu*M3lzV|Ee zvahHEWj1*Tx$54pfUg_0h4>)F^U;d#Bp#X_POMjQa>Xez6#M#357upHJU95v%r<@H z|1un&nVy$0tYYon`4})0i{hUuG!W${H7cpi$bqgWk-F49bHMJ`l`uh??`{G^WP~1z zDY&A#R|nMn$|8|YSh{an+-q$zeEaZrsk&jVR)6~I_}-O!j>TwT(8s7Q$*%umX~ z>by8Nt~FxTQV$0Kxz}1?fuy$fakMF2Fw=Yc7-=BNPgx;T%ue}+>p%2e8yyA2_-X#S znBr8QdI|=(`%2D=3RDo+R(#Zk4r!Ht#J30cUVM=TqF&=Qm=zzjpUlG*YvdelpPdW= zgtRp{l#b#%e*mWU1_vY%)D{3tTC=3Z%+q@S2rQ7)))#e&cZF9QPea6M=ycLVu|gN*mc$%gr>~ zz;ba)u_-A8`_Ve$b=9)wYRPQuJ2|D=zzC^YConhe$x-@AodARo`ctJ7WGdAYT_`R^ zvk~fsWz$OZ=VS8ej+01aY>>Dwgqvd;*-PptiIagzD{Z%!J~4Y>S)+FnX@LpS+WK{L z-wLg&m4;Tm_v<(n#I+SEec|rJmYW}Yw;N-Ew6@N{if>dL<)KP=1-^*(haxFE01a%OkP z+45Nodl(a>wT&&z2hU_|krF{zTRk=DS?46()zEuA&DbEZZ9c?&^bF=hA`L|C^R>`5 zNp049Ej79V6Qud=DaBTxaBy0^9|VB=y4~VTbz7r!HJb55SG_k%mI0O#Qod?kGgS8q z?IH2)uYUPqi-B?~XcF^TF=4Whm->*p-W?_@VS_T^M^RZ^$V-K(7f=op7RmPNqNxe$ z6v;*P6X}X%(B(J#!waIl^7TUXw9#R<;%kQ0@}sEn?CccD_Sz|5Ej*E(_==$z{Gi;- zVo#UO%ppaWaKTDq!abp*ws!4t_-8ip|r8 z>^}IfO3P~!7DoyvX?YnNY*mTeCT(es|0FG3N(Nmm77ME>sf(Y?Vu20H#K<)9aty7C zmQyb{9O(5KDRh2Vt&QQ6be$qKrh2R0v077N=oPzZN_Gt^6{%SD#>->H239ClcmP%^ zQlTgJ0FXkbm!QI4)ryg|9I6)OB=TuJ)JE_d>8!5+BlHGS}nd6W?G(! zZw0nJ%GiR=$(1oSDDy{N=6*f}G0hAzxpS#EDjninjs{x%;TNeTTmDe*!Z}0=TLKaD zmavMLyiQB(OuHm=h$g`YJ5~JL%qTv)-Y;W=vPxtyX`fl|Hzk9vO1o&1vQ{cB(UY`` z86y-{S|5}C8MQu<3YuC<6QMUX*h%8NQ{@^J=&H=Gn50?%>m>6lfeDIQYGh~&Qd6Cz zS7THKHYlsivJ@5*PBP0P78EKGK3hvTNrY$X3BJUrZke0T?2+%!n`Uy~{hbb%i(9_b zOD!HTS!rqIKsoukR!MtK(%77jdLM^cj-`MaU&B&0_nl?zKQSrl+i%*XFns9n8+84b zwv^Iz_PiJqqn-=Xi*Y1SK^ z@O5~#oK441=|YzIYD6n&gY59D`iQVcN^49B8~ms#g*3yn=|b*}*4GpVxJL#kpvG@o zlh$yn55x0@t|B%KxQHg|R%yR&3QW-E=T$1&Hp|_5+!VyA$F^#5j0)=7Ew`a7KT6{I zw_M5uZGOhvXYezcv6|g??vc5<`X02ZwK909@S~853V34LuTZy}YB6AeCco*VpsC=9 zsWf%(P$jKE28G<~Q{(!N%p+Q3+E2t+QM!A5D;3oF1MzkHvAU8PP~B%d#DI(q8uylQ zT4hp+Cn@8U3<}W-yE=K_{U^T>NZ$(AVn2fh`|ZXAgn_rSPm%=&#g*I)CvSLCWN`a& zV$O|h=L;q9>3>aH_0gKE0%lyykDx5GsWsPQ9wZkIxoNX?@j@$55C zfd{&H3`Z8+wSVP6)IEmRSfI&ofGgUH1%%XC>Xluku^17QwUuHT2U1~umtx8TT^NV3 zc;haNp-t@tZ`Y4Q_Cy{@0!7yvdc|(=nfad~T^73*w;KGtVmi`%>uP)k1(q8r%ei^7 zPd;w)KaV8}XyAG=$wGK&sb;YmpQWx)z+0mPJ11PmtBqr zz89=x`QMk)OaAWQs*oaqgISIq$?nT?4hk%{lbleeqFGPJbiE5TK`dZ?dSs3`A~;_% zJ2}Sl6}>sLHvb_$dL-jeLV(!D9Dm`6AbhL%^YDB}ci5SQ1Nk(EVulEab#@L9DevM# zrqs;oZKw2jQb~>Cm0dNcdF`TN)*?bV2WdeD{VVaCgr4%A1tP_iO~k760~!KejUS}~N+TM@xlEvwOb z3^RseJ}+X{N+hR%pueDx=S|@~=a%8?nr0pClQ|#J1Gb|%y^S(+6C5cP2!2Eb@qM$P zO%nq;!o#w5c&ovn!0>!z$Zttg3>rmf4;=hHwC55Q`9O7xt>~rPH7%8XR3%AYslE|8 zD(@00x^y+B1QC{_)(T}4e;pRyB~}dh_tOFx?AKEE&3Lrt-k}&q)j1s;m~KWU)BMu_ z%C^zW84vF*1=}%9a8kU3ZPVXjgf!SF+M!xbOVCh|c++%4Cl|h5Qfijx4&Ia?g73v7 z#~YfKqbkqX6hpacHh~8&mbVQ(`b%ZX**fJdAc8N6V)9Y*4pA(9+5ClQy>&BRimO)- z@1X|o^JvJ)YmsO3bUtskX6zViKPxdsD_ASBA~rO<+peKhM-VL zfgRcq2L_g;j0-`wLm7(~;9of3uFMndpFg}m7@f&cx}vr6-@ERF#EQ9zzvLVFj%RUL zV0kgg3(XNN#A;Eag^P`yRujGe8 zf-^0hRd4mvAb}w*9eQ=WFUwgdaHKJS22nKlV%78b7~sLclh)8Rwep26o5$DC1Q2{T z5|1!H=Pw#6`hOL7h#{q*<8}A$0vZ` zOFiEF+^5G!Jh0tNN~;!d6=R-Cfu)FGOl!d7<+R5d05mWqo;ZB?<%7X!x4rDg6C)hB zl3dvz$Kx@hI=Ws5G%zLpXn$L+mvlUjksTd@Q@~cfRo{H87$M_hd_%WYgfBm~1gtoN zNbj|qC&%oHi5+efK#{@c<8S$Rqs8}CY<$%5T%0RRUr7;*k_yH9f52;15x^ni zO?;NgSe0}rmPG*At|OpBNYx%8Wja&XmpuYFWCY*%npW4Da}*A)9P1l3Y>0RlHp~*5 z%fHU)*^0B#_~6SB0m=%dodJSE;bh56r>u`HoGSQ!86{usO$NXr<5gHP6FgmrPOQf{`*h((V+ z^+X2fc`M{4FHP!`(#|VBGov_v9T4|f2l&wPe)uxiLXmAtOEk;%q~SBUin9*^cAp?d z0#z?wd_P?ceoO!JIc@zLteS>5zKUsAi{Qv}Ebv^r9BpisHUAxq2(H^V!?s zF98ii*V#{#=|v-EM-@|40V1RFcp$qOQW_n!8Lhylm>~@)8DE41CC^`BiK$cm#3IuT zDBE0)9yPQpG_$5+bPEjYBKQjfMBZ-kUt{Lec15v>510aD#02Scm-Eqh@Vl=*zL&e@ zZ}zWm*smQC#{vEe5x-zR#YAR_LHObI$PqJ`8ci|fT%w6!h1?W;@5tN;uY1Lqb6`*U zuLr+-_|=#9Yd47~8rBrc6;m5HviWlQSt233JVepINTJ#kuvIr zy%?I2KI@Y!4i=`kZEA8N*yhy~f=i?4%$OcUA20>mqsO2_#JlNti3opa){Na~qK1i4 z90pB6+r$VKt*9mK#Sq(bP9Vy&K-61lrgBS}?S0Hlid`5fqQXp;LMx{k^CgiJ$T1X< z^G=$V+&VNbNEMCQN6{rqF%|alB#`ue`gutb9l3fcom+8oH-%NH0uO|}ks{>6R#Rpt z#ew-0PoaniAmzvDr@0gxAq!>qZ;JLjX&w}sQYMIdPa#fvmEuas6jiIt&_GtLS*5vo zv9GSjX4Qd1!rN&cl49E}9xawv3tAQxwO?^nSPI!@7RCWV9El9+moj>>p}0T(r$GBZUq;qxRN_1*(b7v6{0B|#7qlI(&tdi zf~P7RL{x>!Km%FS@WfS8}SZw70eeF{?mN7`OQZkO_t-$VD)r+Nj=`>`r@Ns zeT3s|0yz<;V%wvT=4hXx!Xg_K`fw<7MaxOFb7{I3*9EI`t-Rn8x+1KeAm?q^G$wwR9!z66724xu|l+ui|iOC_C(PlKuY>uWEHU3A>8YLIh`3_w{oqeL&$>!!$O@^~9*DI^l1YLfdA?k!rZah^~2K8t#Al9oXXMv($3Xl7=IUnt2TUS~AC$!&fc||vY zIS1t7O+As-s!+pvh~l%^a{TC-E0(NK{Gr0e)CKdOvzRmPrCOKFn-D_hFLXK=bhyB~ z1k-wPO06j=^!}AXuc=gR{yRIF=o0gx%B4r8Q&^`}E}5a+4?9C`Hv6?=%bvXyr=F}0 zfTaLdAb}p)iu0uQ!a=?{p`V^lkp`ODZL}GQ&4;J3ktHeV*$h4zZG4FhzTFI$yDiN& zvwEza+_Gi1p|OS83KzTW6$+@K1;EhVWl1yVQBR&|gjjTFNJnN&L%|&C=`4*3j}IMw z^}~Oel#IIymlh)BH0WVHf<1-9Sd^NY#k0`lS)eJM8`%uLTGAaXv%&AJ>pq}sMHYN- z#9?FUl8s6X&~lskuTPn6B~_eDU^satN|C{xMwVcQ>4v6moAu*n^1qs=J=bI}f>S_^ zp9l5c>ywsaisC?k&KwaQD(<0W;-|)+m4xD2D+W^~H^9g_ zk77ROlz?upH+^^}pnDX{@u8zw0)>5<;MF~V5CvgO?VDQ#72hTG}9Dak!I0E#*D1LbC%5bWj-+Xd4m ziQ+bg(P^}%bddRTgNP$uXg(@kHs7r5DzQz&umjPHRZp0GirrpWDQh20z{vSmsKnVMG0en*`ZyL*uN z=80MRX+tD<~Ktmh}Vf{q~DOw{@}{ z-v9lBhs+DQ_5<3PAnvDW`}ANsU(HJ0YSQ=H&$vA8T5PS(@8g0%)(*9O^t;bK{*)Q8 zYdf@;3=(h9t>^Z7%rCzB`2Md4qt%MSB$IM)e*+E-JMO?=7$E5GieJt4*#({GrO^Z< z{h}Lb3JdD%oO*oOi0d;x>BQ;qYGm0C`Ho~34`eTjoXIo8A9u?byOdi{(Kahla^2iz z>;RE7;hlwRLc7t4t3q$_+__&z;-rP*SS?@*^&w(b@<_KJp3Qh==$1zh2)dUb&ecyE ztL*5e4p#X-?c^^&1fi&R_H}AT*R3izJdg>8q1}D5__`U>1A^{lZcOv*f|dd8RZ=XE z|J2E(92ev_GxG0t#Laj=>&ojOK`FvF>9W7CmrFjC*DZWASWt@~H=Byv3c3Y33kNFU zu{16cSL}B4SceC)S9mGfABSUlhhjLN{3R<(#RM&|3V}xegI-h^N=0+WjJ8{a@qnO{ zrARm9GqR4QXy8C4s>l54dP>tid}~Oz>JcD8DcTQnpY3Kf8uRGdt^J6YAQdKEESLP6 z!)_+Ea22X0^%Z+8Jqrga(M^D1|{c z&1gO5cf)qep$Dwe(UXULwhgpGZU8|iDubCqVcyxTGFUiJWrpmzn@B61rr!xV(M>eJ zo}!z`aX~KploIvbO$?AV%FEq$LZ{YQX?Cj`8$g0mmZ;fW*{iQQK+s8FmCuTF^i=}~ zDp`K^PMcYu{TO#m4ncxa8j}VzJ5Ja!&Nx8OiT<{^?whwu-TK=O4`ia9H%~K-*V8jj z*sYz9m>?AfrK^Z#OW)0)9uRcbFb;5I{N0oX(*N0MP-xIVBz$v6cL`)|M7N3_AVGOY zdw*Gc<|YiX1p`^Q-8S} z(aneU)Z)203N2sEP#h76$bOWlCW5#(BZLuWHku~7>?KBNQ7HEHM8JZk57DqskYx6E4(Wx+otWQK>}HLa?TS(g2zoz$Yy^F=*qH4JzQh{x ztdb_hCe8?3&{SuEEMX`90ZjqXnJ{s_zN?)o6cF@Y%usG8BWSbSt;Jwou`xQL?ln_F zq7p?1Bxri!(MZhS_A4qOfv8rGN?kAw1O0kb$^uy;X!7EAg*V(TbHC~uG+T)v?ycwt z#=Cs=bL$QYkpb|GourY_WzkQ5$5MCJdA zhG_TcnBeErg=ufk=|4jgHd%w;wVqW;AZifJYKlpupDt)~{M2r~8jooCk@wIQE65SO zP-uI}AW{SaW3|ud$+D-drt2CE>MW4;QOupOo&2EPc#2Iy5x!u&{cMmaIxw_N-ZnD6 z_L>GE>rZvJ`94CS}5pW-*ZlAUkY5eaRaH}K` z^>*|J<7X^=u}i8r#}gq7E>>oM91$F{#GBmbyVk@ShelG;Q%p;(S4jy6B(-@`+SI3- zdiA7~1ftrC&Q!SJd`pKXSa+gVJ0%=yNi+}Gb6jWMWF#~BQV+x4!QOdk*VyKY?zt;PXKqNkoFr>Y>|Gw#|!F2F;GnDh}T%`6CW z=B|@IC47w(dfG-BrB^8)A5z4qE>->Qa=OTx)~=(vA_2s_7MmK=dZlTzrFzB9#SyL0 zaAn{SA*OZGbY{|fc=mKFMk-yWbt)7PBw|dKI(r+SYm6x~K#u6jCW+Cf+t^z!c?Y{| zSGI))!u~RrH@(ksNqYmjvVQn8sn zQXC{WWrWBJ_45SxUn=(8pmv`+7I30He)AgoxK5@GEVJpELrRyqjXXF=O7zN8xpSpTVa z3r3n&VfXh#Ho8-K zNKYID(u(%3uVrkWjd(8LzkmLNKl_3CzeDqZOyU0OVKQJ{h@JCm~Pe_BC#Z zPFBB=E9X1uhval}Ms9i{k15bX>Q7^X*edm0PGllpfo9as#d#&9@3N57}^&+8+ClO6|aEHG4`A721pb_-wXjhTVg@+M{BC zpgRymuOZX^XbM*Ydcl4s&tYnIh?hjQaQqKrE80?==i={< zu~a|;{_W{<@X7A{yrH+1zWBYlH*_#DM+^C(PtC!TCEY$ocVJiXz<4uHVH!?mJ#4Y}r;~LZ9P*j^&Npti=&EV>y2f$7lcKe-S>Hzv76 zD9?x#?Pi(CL4oImgeP~6-|TM>3M38(45`h`FDA%v2RzPZ5erP$NQ-Z8hSY_hiA`^R zdr)Qs5ICNX9Qgy{e{&3jg8{xN4^M3-R~9_NA66b52MkFL^169c4jc^dlN?Mp^e`nK z(;bxqj{}Amqm7IcWZiW|FNP4%4tgsEqzX%R?a0wA76~k-o+k>-Z+z5wSUu06!1G+> z*~r%Iua9wCivskdM9jbUQz8KgEJ+@=&5REdkII8Z0eX@L+BCb!E_XbtyaQ5!#WXGb zSSlca#l&3i3bp~u-RiKIn`42=#N2O2SBc-TR_d^rD}caZa>IY3K{}&3EH^n8m|n`5 zvQG9t9#mO473*Ice~Ul6en#30Jj~xD5^`j0=U#GgU6#BfahUCLtd!{?z3=H=p)le* zj48(gld)X#tBKsq8xFIaL;{N$7l_}oHsG+HdI=3|B2QV2J~~fXoK93^QS@jQ7D-K; zmaycmeOQ~8LBVFP1fD;x%@x3A#*_~Folh@l5|ep^=4O=GBXEQzOfZ``!Bb@gc37M! zfYrIOV(Y@iO74y6ir#ppb&$>Ai~Em%{jvY^aCp94&qrI)q1K$+2zai$75-X*N2cH9 zLcVUcSIhMy^8mFGM{iY(XFGAvg62$1pf9MYaX`|0Wl7`ZoTjat;lfGeoj1*aEsds( z1fpIpi@IEH#F;3?vsn?U#X1fd^smKlOo76LOFDow8?Cr4G-o$7wg})5@p@SV-LOMt zGF+asNT7K7F2c3gA)-UZtMR+k7A_$-#n*~HgvJ!WhJ;FSY<3hI$rj8IeHBLlhln?8 zc5otOfoK-_bhe22kix^+U!69bmEa+ShqJ#zJvm`Gt8zdR4`(5H7HQHhX~%F@CxIv) z&O-X$!gkVOsLZZZfn|7XZ|Rm6#SZrt6W( z!-45llacLmIok}zm!s)oVAn)#M&*M7npQJ_xu!e(wS)}`x4zvh7lVI#@cXYnwa>z? zX|*!D#Y=J1p@p%$H9#=FoF!O~u4u+OWBu*^jzSA-0t)8af%!B0+^orK{-&j3@xMST z5y2VlixmD5+O*yrXI}vb#%Nz8Fb-8H#s+S5#=3Wkh5>-qW$_ocZeK!&koWf{{hS_FX!r|tioqFRb#gq1 zUexbsmgv-?JO@PGL6*$H6}*?4uNo!{P2^bAF;0SNO9%5;JV!kFQ<%Au(CWljkS+E6)Vo&4;{xLIxKBziBE zvyKiSuR^y>`hfP|@I4KR83BNC!wVxgWC(Z#-$(%u<;5|Ihe3eV%5Q-|AIcxqje1H8 z+IPmUKRLGiGf>dpf>NXyjlbJX51)ht49l>@1ZfB_A;DzgY6WvP#g5T-+JFk;P^&?l z$FyT>HAe*DT?h<6)13d7PO1u*Ry^PXq@so09T655)Hm<}sI%y)=(zx+NXi1{O(X@~ zc^)wp`>lXdB=nHTVOE;?u7Iwk$u|h(d9)FQIc?`WI!NR(qr9~3Sg({G5|l5a3{aBp z_s_D&dlipt0jgM>DK5zWf8yS}OOE5Z5|_`JIb(Y)k;Fr1O3#2nAGAD_ z>T&im;|tY8TOJDvT5I&j#o2QjK$Z)&G3^O0lKA&4_sw+_81y#Rl!`Wzs|A`!dH2nA z018^$^ff7J-(UsZx9JN}L2N5lorE4?Q15{9Lhf6!d`ytqHmFXp$WC@=ETetfAO@JC z3*Q?bNM`^+=erQC?M1rG16`;A1+8uNY8ylv+P=*mM+Bkov+8!{d$f_o8SYP)Q;F_3^}VVLLk?XpE+LH*&fo+)Y4JfOn}^KJez3nQ{% z;uv_W`AvdDhVNjeoo1OI=wLM>2z`^E&#F2o^6C14CU;>$eHkXIt&*=#`NmbjVGlsW ztgP`sW_wm3s~+grXBX7kGxPTCS;cTcehD(`MD$n2DVT%@LM)>S4pe@?Sj}E!rio{a z0|SPG3S!^D$$s2G12bHZyB!+UqcDkLt^0ruO$ZEnKUmrhmpfTKFj!hlklNu%?NqO3 z<(j5oSuyt=5qXfHv=c?<_dAQ(Mop*DV~=y{J2K|J6Gd@k2zY;4N9m`#<+3i`i8BCq z?Y+e1K1RBC56KA6VrOY>5C|yhu_cQ1ip!b9JEd zxqhyDeTHHx)!+H>e%`%y7(lZo$?9z(gv!4NppqZaWcZXi+u%$9X+|d5rP`f_Y zMG+Y04Qj!^j;A%s1#Nb*ttkvYeONmLkEjG$PLzC{4C?+YfU(Pmuv~Rs?3Rm%!6Crx za0YZKq4cvr>HXPuc1AZXKxk0J|1z4wC>4~2_1jObdT2-C%b?@c?-oL+?6zO<@a^I3 z#~#JCOK-M@{QCI#S+Z0G7l8(@60aKp4Q%!O0KiSUnr$9qs*bfJv(fx5Ne6|W1`40h zRBd?ytA*=1|7$dHF(#?5Fw`ANmtlgg&pYfzU4!FUNmCrGK>zJPHfz|R?+0D_5FX_&m$AxWXL%$o(hAB4KFl=eVFM>8=yp}dW26aCR$|3xK z{7)P79`yvz{JWH1jOL62VyOPn9;%P&Dj8ON&fb7xO}eMrdTr&={Wqz$A%)tH1Ka-7 zF5B5{MuDsTZZva-JkS*O5_sD6*GeL@+jzZ%D3wszhOS+rLp*On8K|Hv9DV4FJf?kw z89in}`!hqMjW_y;b3t2Je|h@M6zG&XWLrA8&R4<4tG^wjP@C{RYe~~VJY*UBR8ZDc z#_$PuuIEr?3@&I3`-0rubY*$T`!(bBxnfMv^+`OwSrb>=V#CT(@cv%_8Sl*avWN(( z!Ww~@7+UtW!FN$SFP2MnY=kKsuSRr`LTxw_iG3I}72}OWl5|iQj^2)*yphpcKm$c# zKhRA|eXOJ1$?s_~k(KOt{lEkn)P=Rx%nZDVkz0%jy24ouFSXvVchFgk7DA{DV+#K$ zs0ri6ln4=2g`+o~*tA>W#e#BuTn`6dDj#a}TMo zrh~#R?+a$o4&{Ap{wxwvE~>|EWAgFZ|Dy;KtQCnUJoOuhC}~2djFc(+=#UX5B!a4N zUY=XpoP>H-<^^qEp z6drKIyQUIm=$-_a$*%)9JsoYfpq&$1e<{~WT`<+xu8xcQw5i!!^ehjrJK#qi!Wqu5 zX50CBrgp^Ip+R8j@n$$vY|!`9z{Zg;%1mA8|LF8-mMt>AMNsfeL%FIf$$ z4o!l4c?CC$X#{TT1`9mbRG>g2N&r05P z>l@V_I8eDc3i}`fa>RQdmyvOj5N(bHCkg=J+s@)4Pp(_&A4hcy2N8s}@vn1NsYSju z?Yw5KRNuxw00r%JScFn6X@Rl!f6gk{+zuGuunZHVZy~iJ^}8E_4jeuY$P`wLWaHm- zFn~m3f#e-Xp`4heh836KGFSlkd8yGrz%wA)*QXPwqdAw>7={1Pl>`jlZj(gOJ$U-z^%5nl@DZ6scOh+fWA& zWVaF9p3skO^*UY7_(>+gxh-JvI2i*5{d@StrPnPl(er90n5qC+lD|QQfN1`8GI~~y z)u%D?Z-GJIR3*ns2=jgk^sY(?Y>0>!f~s}O2gWai1{ngPg`kriq7W=_NMBDUP3ghA z^_H$Rth{keZy$&OgZ>uW_K8guA5{s?Z32qdfCz32IXP)$NH?6k!3BBKVX_LPP`_mpKNF$|8j(8A5H@F~gnv_}{jiOm_>)oU{cpz(9=K9Au zU1GzxRP}C|8Da~eKV%mOq+Uit+M|B#7huqyj z`M{vIWcP&=_PvK^uevm0}gS|7U32b#Xy{6E<>< zU2RMM@Vem22_Pk{UBiMp@M0AKc^_k_7aK$n29Bj#n2>a+V>PHC4jfA*d68Z4%no%d z3kuqxY*h;Vd=MudTDA@>sO`!T+$zXz-<2ZT~Jdgz~ z4E;zJ=OdD#EetS0+RW_N0pAQnSRm{@v(F)ul#$`?P)ct)DafT+=NL7YHDofEk@`3^ zmo+3PS^Kic)!p+=x6qxR8PdM^xFBa$MI{=uy9qpyv4B_q7+WD467W1&P_xENrBOXy zeo@wt#;ieXAsn-(YY5$*Zji%qJDrMh4cXi5VK%4S~C7^8J&xA(ka0=r9ussw850yDr!A}lsU*ex8Y4@s7S zC3H;;<~RFp;Yfl*Myf!RjNsb65pBV);A>WpLR-*7MPwaTB)wOVlIXC;$16&rHtu z;o+RrL5DSL-)E&fRmTf|TBvXDjw6E5t}yDKgVAi?6~+b)M7Dpfe~L7KeTT9x9>{F} zM*WEBt9NnvwY+ctCJGFC+u?9i#e;v}4o4gr0;2iX0>)b03iuT;=xv>LQ@MfA?P2z9 zcv9F95iNu!{uu>9!Ua5VxxTP1)L@U9Z-_6{aA3OXSdg9{q?fdc^^%_(6wEp$jp#sv@$(fOvD?y> zK-J_4{Yl-^Q%%lxw5&0uE7R%yXSy7vqT3w#RJ7o7w+7er@1!&k_DKWa3$vnFF&qmH zR9F!mni>Ykc|R>jS&u1^^!B7mG&n@O8xx_tgwac8Ji6&MEQr6KBA&jY%k_&_)wImc zs9u!ZR|QugHNeRtQA$D{NW0k}JfU0}2Uee)@>@$JT@{&C2pHsVt?1nBME_5?>HMz+ z4yisj8TWv|@STQ1y*R)M`j`C(G!F2c9E1~vJ#)b42j6LOu$nFC6b7#>f7>q;fI>bT zJE^yD#;}vdiQoqnu4g&08g{v{lJ1kM?>77-T z(`m)Yy*qa&vkjeJ=M9o1Mi~G@9e~An=oGa7j%t6N8Vo$|B0scwv@Di%&V0R~cc#2o zL?x^Ck!%H+V7=n8(&J@oUXp^*OO3${Su+|uuwC=ms3vUuZ9|e-v2+fB2*#^5qq^?; zgznIv+zSrmNmi&rLJtsp$YJwy=ra9s=p%yhGe3vFQrDGHpeipO(ThCgY8E(=;3b7f zky-(90_cGs+vHzR-TV#BU9dRW&yPb)u)>e;=QFz4VRDjh$rBi3KR@PpV6&xc*yz5G z`3st#WPCkK*+T@Q_2c??Q@t2rPe0~>;JXB`GCv1BGf6uasWc86n5@5;-!{AI{A9P? zjuQ9k(sM8qtmSNx7iVR$<37{VOHEE3Ot5-Z-O|{e72zPOYBVt2u;o|My@hl!v^o0h zFF{DQLd1$O00nR3r$}rRB{LCiIdx#c{b9hZ?@guS zAFEBV_S;d(?0B019~&xe)+!#->&Uw@o2cpI`L3il_qcCK_Na#ZF;p%hufFh5ztxLub35}Y=_hLf7Xhk3SK+$(mT zse9%(1`BRP$yyw7KU&j`@7`sz{o+-K30BX_s^Jg!c@MI30|`zqr$-0Kse=htFQ=4( za!OBPjpt7dWGkoN9Uf#|!>J&_iQZz^L!3}iJS*uUu+qC7uwQSng8+JdP*=eA*I-Bpj86Ck|S0uVKIB>B%Jag6iA7V!2zb)i90m_3M>I zK*5WCr%pl>J^3kL9O>8ZbkV@{@oKl+=Jkt`6nG~8P~`fdR(-$vorh@J zYVRK-G?4VYc1hb=^H^q3*LkD@uJQG zEtUjw0xvlqjIhjvHp&0#fJ@ zkSHKZa`*yrNFXN>J-!Y$6^vVP4L(E!ZO?PosdK~XSZxny=n#T#-Qk3Q0YZX$bCj<( z%gp$7xE*S&dK0pU1chP#5Q2EH|GBAxL%7gegEyKE>#gji zCZQ{+Z{D~oIHVGbKBg&i{krLFKF_@EVh6COPX~$LZ}C?9O&IL|ZF~>)*dQ zMk{?4JycO;Pt0G`_Au2*u@E&@sBa~N%pdu7jDDpCQWaex~T-q*TkepU~=jx22;Fe75VLLM)#nUR>!W54+8#UW z?X3&iFd&=#?_0gT%C_yWiZM zm1XWVXruQMVuX+xj13y+ax8h5wouW_b4M9%+C8VUrpzhE8XL%%Av_)Q-0af)KxC8t z=s_<|38^w~eGu&IKd84FI!FvU-O<8OvzV;t$Le&a*&t9>+)rn8$tpb$!X5OW#obUs zs;s#6)F(6ML5tha?I%&sDZe?1h7J;C1s;z`2QBc15>jOa{+roy$Nlo41#ajdQC7bf zxi?@vX#Lh~`w3k79jt>2)NBy=so#Uz6m$sePDQQc^Q@x9O?8J5t1SO>|ISjhyB8&b ztnYTpQY-nq7xXWO5@x6%Eg0Sf8L4(O(^OTo;>-*;*6^;44UaG1d}{&jB%UD>Y)KGgS{*A&zRLfC<7{tQ1ZWj&CKy0Wt6U z#om}R_fNZhIc6Qy=Ft?8672EeQl`6gQPQzx?=k7I_V^^pAg{$z!H&7{Eu|?SC0MI( z#QSA7)>=JhfRInp-a|qnHSBkzyHLXeQNg->qg_oM`W6~%nLK2HpkT9bkThbcu{H~* zxFD{j2%Bwq?xu_Ji?HE=sGshI z>9()=T03zR4rDjoUuV1RIi2s!=QBFm%dbNdoE=F}dY~Y_vR-dD>Y|OOPmiBXW+kzD z&)WzN^a8`=GX@B{caT)mofO{K;_n3(t>Hs1jTR?b`1_;>5ot6Ky~}d6$jogi{>2`W za!Y2+1qJPm6fO4`!LeWfg$8waE4yR!Hqz@7q*3d9wwayKT`k+(yBJY$4;rvSZXX!= zzK%~o|0-M3iEKVKA~+}um?$$aL3#04iQV&ixzr2KlWiqk=P(r5`He_m-AkwOCzHy+)6;vKLXWIO{0 zs%y;2*V!xWm^_?37!scwNKo>|hkmF3#|Z~DJ^%zAcaL?C>p5VeFluPDI1ybE$nVY{ z`|Q8ZAyl#~1lzO}3)yGNJ5EVI{Yf8OtRXMV3z(%Y(mOo=5?LHwQK zkTx>SPW%UlTk=Ob|AqikcrUZ-YXWfdfrrM*8>JHrPr#$czmn z=$ficzh&FZ%h;f*Z4p7n@)q&Sp?RwzLFbfM?#HZQC8ps(+!sJ?A$Sn!HV%K)jnZfP`-G$A+(do_bXaE%9|#&D<0Vm4~K48SN=;d|bo zG9oGs2&yIu>R%T5OV9fTML`D>gpISC+j>2^LGi*Of~@htGe0m5@<5FSk|s(}W9emQ zP?RumplM+PD7TTk8LyfMs~>U{B;; zu)peNn5N2R<(WUiY^iy)WK_}})IZwf^B2p^8(b1u1BmQ3JuTq8A>hE})IPsn46A(#4J1wcKc7|Sp7jRB{~9kO%GHZ}e5g5ysK$#C z1!LNQL~Kxd#d>`11ZuZC(6UU|UB6vWi7fqSUkB?Jg6$9U^t+GALr3?7J@ zz?-Wd=$%wEBIPxD&=A)L26fX_pgRFPW3~idi80-n*z~dTH7&OIOoRGZ7BP~ipsPA8 zPpqTrxW}e=<=JkSdl)?A#|cs8_#w(dg3ieodE%(~GI$Z9a87oZ0Sz9Anl47ZEqB?- zLkb5IgpLVc2QD})X9f>MO^0Ubcbf)vXfzr~nixTs+j#yks6H7u&|I^PKmGgJ_I!FC zhNPC8-Md2)hXrjDnxgIhpwMIyLFSZ~9|MP#S3KC-{(#$s8k8f8h#WP+X_Z$M-8k$y z$e<2Q0|~mu7sLL{AYbI&nZ_4aWih2`Bs#_GkG%%@B8QFSF6cxJ%N^@OHD0(LHEL+I zFfZ%OcZxxIF>o;&zY!itqu@Z(m@J6rgDNiTQ8dm?TRXgZG$=0y4ta5DMl~7lwls|( zy~H!>@U+H5eq5q)ho|L?4Nsd`S5hA$3_ycoT?2`HH7yezL?MzE9C6xLa8xS>J z&XP7pl~v|ffR<@A37N$Np;L&5m^vvPP*6J6!FF`qA{g)gMU2n*Ap3mq8;osChAPFkCZ3L))-}csyu^27sV)OgHinyyR_}*V^qN zD!?IYj)w&MUs`Coy8`BBx(H1$bvKMg!-1ypi>A`Kh8xuKH;|xfS`_+iJ@=e`P>TXU zP&MTgMvOrQNi5^7yoRU;C6qDr?)NJzopQT-5_{e@1s8FLRzla2{u2{eh9e{_Dgs;%@{sDc(LGRF^15;StM~XrYI&>sTW>cyK zfY3umDj63ZNSOo&P*m`Cp5Rg~ z7g3-{Q$Wrq?#F?g$RjwC9;V|7-Fm!tZ`%EcI;N*9uXP&Tk3a$&wfoV!Sf4EY>vl)? zBg+C&-)$|pf+}2iLzLi&U>CK!>>3)#YPXe2e_Cd|K^omwmIb0da&r|pIW4L3@GiJL z&IRl?lV*^K310IYU5sXcnD%H?X4F$+E#K(T$WTB|do&_3RQZ{n(W6n#0YN`-3p(%| zN=#!Qn!HtWD@>Q*;#L>A+l4q4sfH|=;*Gk86c+JHm^#W zLS{uax@`;vbx)~l1wCY_16LdNcmou6nYbAUX}d5VZl|J zE^IV5`ij5^b9cV$*Y%TTgPu$RAkTo8Cwjn`>bK@Z|5bYo1hq%(}HMkL)m>_+Jk)AD!6GkVP-vK~qNsR^~ z?i}H|&>-jFwO{H4iu4@@Gg}PWN?N(gj5hxhc>6YbXbqQlo+BHp^dL zP4(!$?h~=%YdOZ%okt%S^tXI^nn6O3jIpk|g?b)PrhdjR&$TeojyG zQ|?49`vF8*)POB?-pu%LIsyb8uO^grJEQG3rGu)83kq7^EK!P8a8LN4X2~Lg@S0zW z70rctU6__lB%*SxAwkJQIVr;Iy=&P)q1?d)spqZK0rBg`F!!keLC0(2GHmV#)x;VP zWW4oQ2J0PzS`Pykr&_)6jW~$Pz=4Xl7{w;zkGu|QF*F*8xcTTYS+7?yC{G3sRNVE| zR9@t*>OrpWV1kraah+i6U+6lhiZ_s;%^Eqe-dZK*c?>BKOeC z;ck;N$RjNx2zmGlV)CHy#a5zuOsU&azdt`HrZ||$9e0v#v74W>>Ndzp3>>I<)sDP= zF{oubTnP*yKAa9vLEPllNwO<*=BmAO>tTYl8Gs@Ibw{HUOuYx7F<{Vt z02@7XQqeKI**1Tf`C;K{_f8nV#Z69GbFm>JY6G=aSiba@w8pT31qOZSaOx#8l@nI- zgB{MIg1G5w!T5BV%?pjayILF)l%c8J0&&~7!KQYBL4OneVcqRjP8*?u{#VNx{q`{= za^1j!`u#X{m7T5Vo&dg}`(&u2YkCU}35nd(ob!r#+Bmt_u%Hgh-AJSz8eUu-T<$I~ z=>Pj>L38Ky|LGhE%j#bUEKQ%8aN=M9_$>!m-E_>r1v}l;=RUZ`i4kNkXQL2k91y&N z9H@1XZRw8<1p7pTJTyokxn7?rf2J=LysNLyo|Lm!%v_RC<6KIZf&}NSXac(0cUJMi zmc-q=cxza2UuN9pWU*WES9l~n&J<@22d>*5mpXPsiyIVFra50rkxb&INjWaqKk(Si z(fx9&9&IRdZ)dY4uB8P8(9nRA{&H=^l#^4sTQKeOl{OYHdIiqH(50~&gjt$x_MJQJ)Et1t|j9f4PwGy6c2P) zJUZGdvgUPIRG*aO7@L6u8P#2uw|TMQ?_^7cRmq%bG*J2Z(l6pLj~$dR0|zocU%loi zllfwEl-E2HZfKIo_YYC6NR=1>kvHFv;an+v8 zYcAIS>uIbg%eolP6EqfB-f^wBQEyqW%t&@fBn)T3z{6}7yaYDDX6zj>#!}KttSmDF zSTt5NFLWu#XmwO$#aXD^J6c{87Fce&<*)kIiHFl969frI@KC|b$|{%?9#B?nO4wuZ z_FN8PAuQzOE!T=$&mjcI)auWJpsk?5!E&<87ksofASW6t&f@PX8p5Km;w;E0eR6;PQ8G$yBUN}H3!F(^ zdgISY4s|AAf;1>mm0-)4%7&I`4GGG(H@bFCj#M30ci%Agk#vWdMSU>PTxT?D1~1|? zdz;f`b1*^rJ|m@pjp3Zue#CMrX_AsT4WS|7CX-;iTDei?y#l{?cyP1MVLPe418-wd z6D+9TjpSMjW+s=ca3@V33lQAc^_`#7qFi{px(4N#!y?DrzpH{?R|qpa$iE%T1S#E* zy;0kKc~d)#w7~@FJ74dzT{ihA{l7G2x#jbDf*!L0(CvDN1)8_rpH6q)Vvt~nkzmnK zAbHCrp-Rl$Q?OW*;7~}QxaLtz*M)j+l`#os@6t>F1R*n=TBT-G{SBv~K*9{S+41c3 zH=IHO1v4D|fPA`BPyG$&0D_P?_SeCk7yTXEV1eeU>k!*n^X{(!w`S9U1$iW|esvg{ zSGQ6`^6Gf9TQ!E})qzD`Bd!!ylcBD}E6WXa`FpXNJU9QL0#N^Ol6%8RK~JIv(ydM! z6j{9%BvGw7pTrR4w3XB#g7FGxG=F2ETi{1&z8Vi~mpEJH-!>pvl}mGJG%$IVq`A?N zEol+Kc%{rHPt?{cx|@j{CUS+XAe0k^ag`VrnEu2v`Rj3loiG7|!T|DH4f1PsG?6*N zUv)2vh2RDT_}{Vk;eo?n^nmB*3@>r?MLyrVgAimuGiW5_p|O$vjrV%{*rdIxjs2-Ml-xRf>~BzjuI&GeZi>#zwcfnpPg@8&Xpa4TB(PleSg4}$ z)7uVH$RgN)7Ripm0mC~ELzT@+Z-1!Zvcd>O z4FnE17Zt6obMNYx3xfj&<-M>X-7e3n#(v)Gq5xghYv=r*9Z09~K=*EtJM}Z2Ct!?%3E{R30urQ`eNvh*W_*GQ(!!_EKy{^}Ju>s{gf1=G z6w77gdP|8l4TkZS7#`TJdTf#Ve zx@cfR37X#`{@Jet8C-&^ELNv{lrf0Qz{R;D^R}0=@r4`fx!Gc!AJB$Tc4L~$8 zKSe#UU+wk)VMEk7^RwfouJ8A&aRDSa;g2uOtXO!dT)%Q-aNvSH@uRuqi^Z>g_VfV3 zhqkBwIa1mBwLKg!#THh#VQjpuKO0OQa4ymE1rOc zfcKk^m;g25{UYOi7QsdS4O*K7fJ;QIW_-`-s3H_NM7-B%XO@W6BEkN#2CU5xUJLd? z^A(d2b$r2lAProb2#elj2?NIh^Jtc+u_583Mmn>EQ-$1cBY5kg0c^8{gAXYmHecR1 zqm?7n(n!-G7-Bbgo{|JSgg908fr?*kGKSQWC^$qoF8YtUZ_uVOP2A>&eYp3!|M zlOy`iX=L;$Y3B@rDT5FVOz$wJ;5uYUuQEl%Za#juI$vh5C+2_Y%pW}wN=GdH{VS4g zp2n%Om4HO%uDYZuDsPJy-i=F=_BGDf;DPR%OGg{Qr&X~l=X`BV($$OeIe;L%&Iota zd5lrgq9+&~L{RcPssy1;2jsB#PGITAXH zO8?1 zD3igxbNqD}0hmqk-u%XX-cW zm!vXq;JWH@^=t>zY&9VG-i`86tY)?pY?-ccOjR)S^*_~3ufhbY=P3(%#@k!?ALJ=D z9@yUDd0g!H)QM!QlC-A+1CN)h$S`T$V0A9~k^M z0)BnDc)mVkt|M7}N?Mn=EohpTo(3v|JGO@MTF^AFGQjA(78JZ*4JDJPB=klpGxMMt z>R_f>xA`h7yp8QcS%C>wFVg14e9QX+lD<{an+zPdyxOX6Ug$B#Pm*Nt#k$woSr=u=P9lE zupCOdQmvF45sbIOT&my0oC-FYr;8C8;kosC1uD_1;&E0oI&RIZ0z_VKhIyr*!>mfi z16`y%r=HiU?mH{fL0+rTkVns^>NkH|=pdT{5PY7;s-IPh&T==%V=W>WBRL$^YZRgD zHC_#=f1b`xXG`v@gK7weMP9vVt`d0xXi(p)#sizz_fn(CgY><8VDNi=FG^;+N$wDK zP#?$z1+Ui^p(H9$jM^7*Fw?B)H@KM{)E6OEV1m`_i&XS<4X><&`XUAnTz+gg-)$H4 zSi*?00f=Dyu8Hva65>)XvOmvg;i}sHnhsZ}jjD9VVP5eof(37-F;u6Q(#a#%MK4{G zK4zJN=&E_3>ob-!wfO4Ui#*61R|;MzW}qT-85*d1p8=R9VY*dXmEJO2^A4C~vRAj& zby>yb9I0EYEk1OF-el7$FQRL)wQn7u)Z#qQ^-0P;YET;!C3t_ELADynC4r((+2>A) z8GoDVB~E51!ON)(vsDsffu>~X)v05K8mG?HrRVWTbs=KAt-v94fd{(2$L#HtAzh-hb{ zq@&u)CxWtMe5gMNCY48x4=xE5CF4V#IGlVQH9jyFXlgA#T6@+7SgiRH^yua15<%IA ztjahwu|j{xjSYe~x*1+;6|@Y{l8mBel_VMzMvYb;4|H9szNRB@+0Q0->B-K>o*+p# zwni`p3E@EX4x>_gBv`1CjNOw=8ZAyl$E*1^i$O#hEl#w}yaObIh%_3Acq!?3W0>s* zm6Cx2)eV%=J+l^+7wgH%Z2rRQzDnkHVx<+Lg7{X9n4B`WDq6Di+C>dqkiQ!t4}+;> z#N5Hm*Yje=rbCD;?-1$;#;#G3-%n!srAkD%56;fcXmhLI;7Y~^U0L_>1!Cs3Ws{!c zDfnP_JTVPE#C)8#%&EFv&etN@yDBq`g@=^yr=`52_3Yx+)PCYNWRfOdrpRZ3u&CS8 zm7xXiJdWYE1{K8bM=Y{XZzbikW&RBx_e=KvcbLJ2hJ?=}63nfSQ}qIZ+Q*cwE8j~b zJ;M$$aT3V78I$!ooBJ=dOD0#lgw(L0julE~(yV4{ei~wgLUExX;lp(9t2tfs##cin z`@Cf~sKFuQc0>jZ^J$C2Y0l@kC2Q^-5*lF8$68QIwaoqYWP}#f;(|PucYUF9x%13F zLf#u-(8uzwuEhu*zZoI#78m3nMasP;7)W;bcND&d4k0lsl+=W(4jk(+j$j3g3-Xu; z#6$B49?$@TK2``cA39aLl8cgB2i`c1PzWA6gnTdJ4Js*3%TUjXCV%zmQJ>*!?*skl)>K`w8u*B0K-}S`N|MI_L2++6P^=^!br1%9tfo+^gTzXU z3-T+rFm(4OGVGSDEk|wd0)pVtwdnpgjJ&N1?; zFhS~0L2N?8k!@ZstuO@WXnCDosSvBTY z77R3(s%klTlC6sJ;_jm_=+-B1vQBVUnL;p4RR{%|%bX^h*peKHkMrr3WlS_N2CkbfE@uU8$G#az$gaSf7jc$YTpm25t+`Go3-lwZws1k!c${Itwjk;J}ceTRo?-cva3e)03R<{MonFi{XLLcRWpKR!vz;J0SMEkf6O%oBGJ? zCN{3l2qhgO&%7KAR5v^-x;s*h>HYa$$yVJ2pMwZen6;L)DD)HpZ4!LJr@VWZH3kV< z#Iib#ZtZFAVx29?iRfIpcb2C|ENelA2+!aoLY=))Eh;PE{swmuL3)*!vU)$(&#h!} zH(tU(1DWn?Q?06vF}SboL4gMCb4_C|RLK^+bz(N{(LT3>L&_)IyjF@E#h4PwjX7~+ z$FU&<9RifWq( zCtvR0Nv-qTNIC8KYGFxtP80S#n&q}kMr;Ui5S3q&{6ef@M=ET31Cr$xD%E$`Fc zCi4X!Yf9St2FQ$~o4l|fVr4Lo!td?DtP zqm=`|q2YGi7T;8Jnw4RZSJK>w3{hi4!FQ^yy5oC8hp>a~3X++w?P7ajU#0i3!0{*M z->dAjSn>^af@ch>2t$no{6E(C)N*+1X}=US79qO90rnqh>|(d(eLKM=_7UM42FO}< zww@OYUedi(*Eqn|7N;I!^(y!7Kk8+1iv)b_HJN^pgbwfXD%;Cz94v7Bp|U(3>fs(E zc$^?KyhZ`8wtM6$-(GgFae%GuV*YLFUwGNeE)Etrv`3Ozyc;iid8B~>@_$zr&#T#T zz2oPS1&>;UMh8%UzB!+<(AFDW0r}|FJkLi#*FZr3wz142o9EPfV)&9}hakx06`;US z+kTOs{abb2+*J9XF--2i#$yUk{t z5;j0U*D*hM@v>LUXOCU#n7RD@uHtp8SIjgpP;8I`fA5E^VSudLsUTRiEfUJ9J zW#d)u4xnB=H3thE#xlJg@Cv(AC4a!H#vUg+lqSkRx3+pHyO*zU)!OR%pO*RB8|wG6 zx`PGvhC|&e7><7WaWq)qFcu1o-_JrC2FQBkR=t{S=5%78b#Z!)+$<9CweqlU&`UY* z8R#}ewOIE^ zy{tBWG2N|qm0Ia2&v^4I*#m44>$%TPbSQa0R8p*I(s4Vb0f9F!BUv|VRl$&<;Ci5- z9zMIlSF&K(MqNXKlV&>Zw(eVJp%^+&46F6S%&12#s0QzH>mB*FK5dg zubg8r8&oh~3-V0utQXBBi=%D%HHct*H(-1jaV^QVvNld&f|X{nwL2Ws6N4(|O;jN? zqhemMCC7|H@+34gAm=t=UQMYqaz1O;FXtg9Sc9Bbvs2ndxI3XmrmcUzYhccOXlOvq zvMLkw{ro$I3T9e8DR=bf;gR`|I(tL$oJRBfK#OF3)*v9BBtXG?iSq`8qA`zF9wF3d zU{aCV5u<(!@6wY+Y6X*^;}_{&;hYhJO11?h4O-(Nhh7<)U#I&1M7K2>RE91nc>k2V zw7v|*zVfEt3a$nUUidvTNx5`UYtS^OdYXrIz{lX!px_KGt#0j`R{7c5n`9ot z(k?a>+zc#Dv22yE{gRgS2fNJOAcH+D=U20w&(Muwa}5g4%hhf@+fD9#N!Odq7Lj94 zk|3%fYJU#VKy`ytQRjdv(k8fnS<*JA2wlu}TD3~cymQ=WlAwc8L4q_i?wXDesBMqDlR411 z4Je4i+^%)8a#~4Gpe46}1nKp_#MImOPYXx}5G|ZFA}B)xtF0QZ@`bm2KG47oD2P1+ ztDrQpfgMPYUf~8VGj*#5iw=_8ds5b|;SyxDHJ$eNjYd|(f$S2`S#bZ6WDPHsFLwP= zV?w=eFVc|oG@%QJTs7Wlex*#SrX+~zJ-sso1@SFwPMank)g^tY>|Alcz6kkEib#fNbfIe9uBLHJL0gx-ryl!PiWoBZo1o;RqO)>mYmdHvP>KM9 z{o@KYYZB2$z@#wDlW zyLf9@Fvm(hUu}xgcf2u5-U5R?h&ogi8p~UxuCaJepIn)yvFxWp$+99=GD>;ZJGlk0lJx%BANcTb-(Q0GVnjeSn z-#JTwLxu03jf$W{G}J#mXeem9hrU!QFzTK0UP=F6VG12O(v}D&S;n&jn?H}&RP|`| z0c$FQhb{bmqA5CxFSKLNZ!CxQ6MbxGh+Bg+(9=zHcjz}>Z*82o#o(bN9=Dc7;a@*K zPTZ=2!G4+c9;&BtCdae#q5AJ^!P^bN(gq-O4-tQH@j!Mx@}nYWEu~=A3ot1{jS14L zNDW2d9p{3net<+N`32`eF6l0;l3w%}HJ89dE^k60a#<(vZ{ZVke1R0rssjt^Tlm1E z4oX%q2?VG%ZdSTC@CC?e32&9HPQ1e-f{rhMqSOs4avd1lCgDxWP=hRFb zod!(O1RrUrM^dB}BbIni31}~g}2Vwo+}VXmT_l@|}yKdM)P)P;CVgy69o zi&~pR!~sp8*sraa`*}&7F?!B``hwYP?Y(AsBq^j?0vFUm05w#t=>o`#4nfoU_vFcp z-UFeN$#g(@ey&ardM89hp@r~j86C*bK%IzGN^gUhsIS<~PpIJL`9GSy%#QS-n~I*5 zsHjMIVDF#*7&0_a%jV?YO<9p1=A4o#I|UXNKmZH&zhmqt7u!r-L^nOpmUOYt7)N?k;=mA&{^Qr$i=Vr%Y_< z)sZ0u+s+(Z13eD2h6VHW?YZjMtE)2Z&dQRmsGH1AsBvNrB54RLjLEY7D@Sdir53>R z%Q0vTDrm2Tx$SfGu|Y{>mK}Y()g-4UfEM~%*>MZ&f3*u4v~@Pn=yLY z`I(>YKaA{VuYp1SewsWO!V9+BG-%1}8vz;|BBBLQX4LufF2@+B0DuhocN^7BDFtpP zsoUM=XO4F}MLeZTI+*84ri*0c8X7sj+6Z{?l3F0$;pWVe>7o>~iwR1nhMS*hbBP~U zBmz`4`~WKSPO!-}^m;u|WjmW!hWZ za4!WNe%sG%i?Tu-~6XKFZe-Z z!8%%vU^3Z-4HfS}#bUjf++Qz#JzFo9aqpF^oYb@mjOmD@cZr~zk@M=D6~KrhYIKOO z<>6_i#hVokh`q*8vJxOPMneE8A0-NfQlit~c1HxKVqCzsf^iri=1=jhTD+-!OfA{e zo@&C}R9#0#uEWYoFm)L7SrHG^{it0X?S`Y%mc@<^SWRguaLpsfzjV(W$_0j0`)D-p z&%F_ij0zfm+-^rzCM|{(T!SY!WQ1!kl`Ma5Jvo3%#s!rfHHPv>n{p0cV>}+H`@FrR z)oOzIlGSCwQmnj$9S*4aVYez{Yd;YG^O$v532SJe&9)56GwWPFY$D(p-^$;!rA}f) z#dq5+RJ@1;4?)WyFEz^mMIW~-qB(3HZUt?(T#ZJDk`AAy0m8w3+Tnnz4xd(EG|uJ* zs!@HK(?DA+Mm;WO3&*diybsf=r+M1csa5kgp)Sn>b?;igFKF8Oq52=%V!89K2bD|` z)jh;h1;M&y`d?gRa9<0#=M=SAtd`7{2$(f4cq4h97wglUZ+jmp&owf*V|gw%e1U4L zJS$xA-Uw~IqGh3-w=ySL9}$=v(5>vWv0%>6%8kZupuzqD@=n)MRJ5n{qt+Xh#3jfZW8@0-!`NwMJG(6bFrVnfAe$VN2fZo4hkWGGe{1p~!c zqt{LVJ>P?#ZT@;f|NovDg{ePI=}_`XzNJ}obt1@ZT?E527nT)M7Y~G4_lbNE#4Ev# zI{OG>aqCm}OV2_k%=p#$tL_e^i`iwKh6J{;P86|C(+gxp_SW+!T2j3+To zBipGVfuv7dGkZlxsp-*2Z>Cc)MsXp#O3rdXP+P&(+kEL8W~7k|&S8P5wh*BAx0r8u zqcL&_U_20Z+uC~jLfxu=Qm8g$zANc|8*U`Y-j2Ef-4Yfrw-`7i*iMW3%u4XfNV51L zqF2D})YKPe?lBs*0*+GC7DsBk3tE=YA)_vp;Fn}ENe9QS~nc9MFlf}?prjg9=r1(?A< z^MTO>)YuTfBB3pS?d*iHj}{XYFsS3+PbqklG@AEoWRNrOrx#t$sHv(>X62*`R)mLo ze~1ndtR>{hGX9M0(3UU&7f2`$DS^Nt;kp|GjyAa(DXASU%meor#zzByi`z=(8`aC%MX}?RVrW=qz-`pM z?oShB-@8BUs{4r%N7EE64oJ2%w)M#yROI*lkaT-abs<(0Bu8eu*%>@!um;JfH0i=x zFtkAm(IFxd7mNssURyft!CU5W;(|v2DUldyQqoJT%p=B$kqtHkuv6 zWof(`j3%JQh5$A;vgLGI%y*oB=-9}E20d#JZ5ryA#jiLW+8)LkAcpmnZPIgd291S- zp*`gQ91>W7wyErh*6p?p4bUMvL^QLp)V&Fk(Xwn1AoiJ!jdhulB#^|WcEZ$kzmk>F z(5am?3q*C;iSE$yw~LH#r{LbkpFn&PHzMA%hN_{+%{fAU{JG>mXl&h z7pwT;c<4wg0uLE>cbXdLhw0S%IID+W?y<(&+Jf3WU77-N;_YXXwxsh`USt@p{R~(j zs>??HEZG5UyngupW)ueIfXdDM^R`TL~39{IM`{s-Rc8G_y z?d)uN;y+Y6T3EB_5D|A+l`KB9I-0|B3do6%S5#Vh#DV$gXyX-tLqfcZ_gc+jFae_t z9}RRn{l($v4K(OkPvfh6LF3j5dcrLGLwg!NHUu#9Bhi{xm%RCtq2~9XLC=CyohBq7 z+RQUxP~TP$G-R}`f)@2@C(iS%+AX)$WVfL^AbE_I99h;_W=Ww97UZAA$@P_UbVf=` zVdXCgNnIK^I;31SQjYc4F>1k!sRqKyK1T!9Ta3y(I{Y_+{)?Z(nud@-amk~YZ~1mc z!CTD+AoeQ(U7P2wW5<5T~2XCUGNu2J36aIH~iJ_axhj& zoK{xUXiXl|;1Ka%LImwYp)3BF21%?EX{fOw;fJjfruymKX=RMV1W9h#+Cz}X1bH8( zXpB$}c8`@Y;*C5d&@-$O2-ST5)k~MLqq=sv>wBSR?ji`{tZp9a6CDSD$ z2^tyXrbv91v_)ARlGMU@Pg>HY7pdSBkQ2AXl8#0(#~95P8X4qqk5C;tT8{EhevIZ3 z4nBmK&Rtz7wx+~lpR~bD`DFkO2{*R8a;vTjKA&y$6Kkqs6!Z=wZ!9HuY8W6>C6b`v zy`^3NtmyvT4ee1nqa9VRFOKP7s9t(UjwE{&G?XE3K?U{A1hv0QN|NVJW(5l3+X-Sd zpUrEZq%Yq|ZD2v3GWd(^f^&~zaE%J;_Y(Qm*DZ5$$p*2`jMuoJ|M6~}Z}r`$kE&ux z!=}ZZ>S8_5i{lJe{4UHt-HTjC{cqjvy2aNnX#XZsE_9(+y5kMr%tLw^)4=q*{$w2*)TiaxO)H;VMFqs0jaA9i@(s`tyF zdP<`mrb93>Xwlls!C*r}GD19}bbPoqTKzQ8P>_t4I$2Kx=adhuljgpqL9J=U0bWXI{Ji`yzTy6*GHyIA9{W}qEpF7<(2%qXMU7Mka5TGk9MJTkwW?QElsPg>%88 zg@s8pwFVTdkqElTPG{65Q!31UB&J}52pSSVO{CwxDBMX(UKk_v+kJQ_iNp()R8J*x z5hL`L9c1uF%0*8$8)HN!w?`R@J79>IFt_wt>4sBfaR-i_RItCQ^ zjMOfjKzla}HzU+82O0d4_J_8Ol-v7RH7|3$MTw~xq5TQ)p(QeZSiQ(M$^n>$5#|pq zF1T-4SF!$9?M?z}!Fsg?O86XL!5qo;Hnz4nLar??xFhq}NE15X2=mw+94dGnP}lj= zixKn&>O6SCc~~9rk-^XB(d$&Sp8=kr9+}}S-LQG|6a(~p&$^IOP^Vs!S=3*vhqUSK zNwL^@Csza~Q7vrfnJpwx#Ya@J50sr)MIAPxN>V@(pD#)!=Os66z9`KBP2aahPL&_!JVS8!!$O6g z>H&j2Wr3qe6Fim$fZeTOKKIvZ#?xT1q2Y6DI$jE2(s^j(pGUh;jo{Ft#ceB+kOjK< zJV{-Mw6a<1Hj??ruz8XI8VdN_grDrWcX(yk+(Zl=I^MOGbV{h&dbi#Qwia5PWQk~0 z@J8dNN}*)10vIK3T4eA?TMwl2%|A-(;eta2pB1Ug>D8>NYsKk~Uj{pDRwN1!B|Kgp z?Pw3`WICn)EvHjf9K+(J2Ml&TW-y7UDGz*M*qDLif;*P;nwxjE#>lw^20QlvqtKg1 zbQgVwc|a5%N_ZqNNyBN%VUfT^1uvidF)941kzunx4JJ6)3jS?-Tt_wq7Wm z&ej*xS@1@;;AJ}79%)?OD0NXmT+_Kue4&JS?`rR}r&}(qCW5eL$9bzTI_&0c)!JuM z{J!c88zeTH_q!!dU*%hVon5xahVEWE4JE`%?HTAis690sBsK%_xIO7c1yfOYqqWZt zez74PF39@apj(c~Hn zm7~QbP608^d|G20r^$0iu=^~yw%WzPhm2-YNq?yvcB1~L*Yy~kk7Y{LF>w4p<2&-L{?>S+i1jTMrlGwEWR3hw?(7aKJGZJn@Gn+L1yNEIL_pLscLvleYmHLAa56<=@#jRzj9LvBe%2%)phhP(BPHJt%}6ECN`|RQIGt>kcsXdv|GoEX2GpjsuBH+Xf*v1Bh-|tp~>3w^FYG2r5fjf zs-Jo`{Ppqiv$h_@&wuJQWXKVE|@nMdueNXo>ml+fzes>Fwtx`Q$lJ5H_Y=7d_mR;e!$E44|3xHL|! zit|9#4NTK%^ z?RvkW<%efwUX*IYkT&r85VBjiq23?mDF1Pah$BR-;10jX8RhJ&06F=aeaa!H1q~_> zT0G3>>hdS%?B(IhBH%|Z{(hfam0Td+YrvbDTG%_ow#c$KLk+*?)%KpY_-Km;V`h|FXZ{U;Jn2{e{&V>x25PU)J?c z&9|uuI;MEMK4>Q`>fCoD5%0(i4ple;5!{OGp~lAKs-=lBL76`u|3Z)7?(679J!92b zI-ji<%Z%S)G|qUug$(*W@$%?>qGKv6UCEM4caJ?v15N&D+)G^e6KLa%#$zl{V$|Ent$$e6Xe)y7$O3OS(WJuhlD6U9MeDcOV29Wgxu=J3BJYI#L@O6gGV@ zGZCtKs`>h~AV*VM1LnnoA3Yt~2TQX+QB#J|w0`S0v<#CZ(DQ+^ zE?kMC)t}V@$uqUlqoj={>**<#9N);i$DFo<%|=4bzo$8&)b^*^ zzA9(0mQ#9Ze8!{b9_uj&2j3bl5w+rjhmxGEO;Y3@z`?Xj-mKue`sO6dF?zUY7j zI=8g$%bZejD|zjd4z5_F=G#Z1cHB3p(C|T_-FM*R)wdztHq3j7d#q_Vuu>ChI_R_O zYz|PUPfy28>4Z5i>OIDv4!m5aLkqpOjdK8fy{fn52kt#aO%AeDDj1!$as?)9%WYyZ+2fu|)IUCa(%_0$iGbtCX(G4NU%oiyPnh9$2#*4k_@zO0}AFy ze%HDbM$IoE!TN4!W$JLwya_bHEq-lAt`Wf*v2it9ZC>RI@BHdO8#ka}_HC@f)5tb< zAi;XovvHZd@*gw5Gaw+=a49xwFQ}ztL1_qE4F|T%Uf#Bucf9a_49J-V1CwJ#{YG-6 zS?QTC7Y=NWkD8w;-|B6^Ai($Z(GV2Ow;PMvL`^hy=h*~(m{_fhptf;0k!not1{K^+ zOKue+TDiXr*slQidXOm|azy8Mu|2(-DocNP;TnvOULIe(6S2)-G z(7`2xv?N)L2e#{+Z93JL6nS@VNSe+hVFL-yYXRr$eCtt4YE&DgK?LI`uc|Ye!#kbS zo8YR6drEM6y4+Pfh6s*lTgdHdDZ&?u(XA2l?Qz8ze2DqJ&4$??$StF`L(R|f=}TJM zW0C~xuok$}K8!^s%xuD@vj9O%z2GTyZw$i&YtI4nH|0cGP3a+iRh|ExFcu4uce(0rD!Ge~KSb+)F ztt?!d4q!vX&+%22ujtVyS}!VJQpfeHqhCF$HK*&0V1CyAM0-4OY7 zR+io-s6ng_=70RxZ~eiy)c>{7pImIcmG$BD1{16|xLLHoMX@{aS~9^LR@&AsXdCZo zXzk&=H7IyJ*V58Xm&J^CmWNx}V1o5##LB0|W=7j~SU3_)40V_psIAO&nNz+#8=JXC z1@rYto|p7CF{2d>pgS_GA;B5*=7^bxdsPkE#v3v6a9+>Gm${Agm1oSpg6WsEeGMG) zc%@GGY@_9+8st{B#fQi(!$ocb_MLXFNV7Z8)(p3cJ#2NyVdpLHdwxmR z8Y8W*U?*E!iF07&KE)qtg~#FdTH;jMhpq8A*5@tq`w8o#{dCtU1d0(Wp9>@E<7CXfsG5$FGp6x$>y;@QWx|-bo;>ja5 zC$OUR1-+%W-dB9TnD5lTu@*-#AOx-%^GHeHlz)oPyJQ{v+W`gV$bh|Ua<(z`NCh#>C+l&uQ9Wkpc8yf$TZ_u_bV7QFH)nAHbpTuPJyg1(1uTLpP8Bv`NltXz^)t#9M& z+A?ZNE*|70jb+^^F(px8*u+MaSSrsHeXDc=8WL=kj;8aywQrS9fCP=<+wo+$)dw*VM*3NMR<4k4f5yOa<=j0pC( z08%7H;X_Q|oHRibFPEVqodJVBa85UsS0Y25(}RYDAf&T&epw6+=>a%o1R>o|=~-iF zNRPln$_;pv>hmmAAMD9&Gf}tBu->6$&NbG?ho~Ta*Af%wgw`8rH^sekI%dmwCDZ3o zULO>+*BC7w=38e$$5XOGktA&(L3xu=x?z*=Ba=+IBxyNpl3H6>Wq4d_2Nu+gW2vH` zv$gbQ*WK*2@CNI>9VAm30mj}630|`oA zflL!Las_fhLCedv%r?u}JPUaTl`BI9@m056AJeL07^MUoWdXt(PvssBA_#3`vC7xE znzvKQCiEUPU0}4mARtz{d(6`Tk7>X^1|*PU!-$vC7qUlV0i-q|3LX+}!Fu>mi`}i4 z`I?^r*rOK%sI-O}A0pn1iqJcGeN*f)Z10v~86f2Q5VE1G{_1(%2Xt}ni7MVnHfoqZ^d=e!Df0ikxo5dW;4F4S?FuM zv>7%?>#!Tm?@|BmjoGcHtHtd;|99QvPFqghkk7;kE(2DzpqJq^8SJJfBin`fJ5~id zEeB~+e2}N7SlZ=n$=J+xf_ z4&pk(NO3^USxH%%_{8a0o#3-6EZtOiW#dhg@+6&H66rtgkhS1V#*E~ zh7}iN{h(=RBE31?vr`v&l|{kzogJ=hIVps;hZp_Ln+z`vAq2Kp5}V%ds~oVBFiyx6 z6u7cu5D5=m;Fc6Z1@@%=MBtc*wkJ3tQ{b1nnRNHg9kAKcWv&S!P*C8usdPmiy1*?d zgzCX~vX#*pGnb>fDi;TiLxyn=iQ$3lLrdgGv=dfT=CgNn1{V?>LSo1WD<*0-`yjG4 z>JT+M#tE5;n(cm~9*1Sk_91F^KnQ^XJ1&ZOaD~;O?FdfDObp=NZ22=EhZw;7e2}L% zorYn@OFs1;PtFbycOsM!ndsWOUu<&biHGRgdUOyc2sv~iZOJ>3hYmT05fT%PpqnB6 zfnUsrXau9A5SpkgzkTxfS$$)E5WEjjS$saoOZZ`v{510}oj-&hdUOz%h=(dQtv@8~ zcZhfxaX*_c>stj_wEUND#hVMYT(zCpMTtGAAo0g-67QYUO{{a86mp)0 zXCejjJz|kjGRV}?GL^l0YkACyf=e{y0!j;qq@D z=!H)vaLmGul0jx`HL2%--b6KtP(k8P+p5U}+6ATh-A8oEJ{>-VgSdl2L7OA?!vr0q z{-i@HZCFjwKMjj%!JpLGbWiz8-E!K0-6i1e5s@Mj$Y)ke9BPFW{yDd-37 zBQweeu^raj=G%)@k&kOlp9up0qSczT)?CtEoDb-g@a@Gj-Lbq!jk$L=OVH(z8#GM` z$v>A%ex9Ai991y-?kU(Igj~Hwm}(?{m2K6Xfh@ucw)}|I0Uu(1*k(IQ{Af*A-`%78 zIsK(*!Lx+>h+;et*V-^XEoe6o?E;#qji#|e9kXGKl0l~K@}>%uzSIX%Q?**KUL&?+ zj0+<5GEz#UuF1^j1pD^IvJ5(e=z(gh5cSL(6C>Dcwx1Zy071WKs{+x}eKBtn4EW_5 zV@C=>3fZk;ziL*gyYg<9_q}+D(5yxyRl7x`k z+PBePM|y5_m4!*O;G~&_hdR!i&!y3R)3sl^U2?=e&~*0<|Z#2&82x zip$}RBZB#bJ_=nrNbIs9eN#tc=2-`_p~D7&dgRe=!&;zsWKYnf^)zC`2a&o-YZv*9 zE_}~l)6u?-->VU>54i9We^!Z^lM_3_PUtZEC z_(e{~MC)z@(<Vp`DdUea0i6+Z#VrWeQm#SZ`Z!ElXY5dUQTnJJUVPK?UO*kxf%v5Em4? z^MSg$kdGFa#IcIKoe@HVkYvU%&$Fsns_We8@R<68`B$cMtdP`72$_0sy<6B1%Caa? z-1_MbCQdL|5S4R;29g5*V`)!miEF9d*Lu*dEbjKU3CRP^WhWwX4(a5i9OJI-UDzWQx%c0-C-FKy2q5_UP66NsEw95 zv*?5Myr9?h`1>a#mUx^@uJ0MWzLU=%^}2&X71Lg3v}AI9M;8^{2=|8cSu*JBs4+C7 z_$F%%r-R0h8bcrX-s?^e9i+xYIH9(q#?Y5}=XV=aa`dUCJ1$+heAqJs!rXpe-_5 zaXzrF;FjxXW4joUOqX?mL+i3c&=na)(P@_FX1uPwjrL{QWpUP{8Eq8RMhKmen8!YA zCWM*B(PB!94Enn4$R~oC#>3drBZSUKYs|9d&Tul7qxE0YbkG=?Ibt8ho(&mo<|xVp zWs%6o($iMX4PBgb!7Mjg_h%7!GG`2<-`sfWs z7KaJSBK?-8Vo`e4xA3;CkJfLA5kXgL#3NmAD&o0R(55c5EjRPYe3?@qncU6Sv+`oH z$Y{2J&-cpqGCELLRdD`^qqj@Q)P%*sB-H4Tpl;N4bkYIc>^NU#F*^uO`Eam^9en&Q z84+8ID#NpeTJm?SVV=<@Cw+Y}sq{3+L>;w$l5Nk61)s^5g&_w!Vw?^-*h+;;2PpE@ zN(=mTw&d@N%a#@$XqiTb4HDIih=Y@qctl(8!bjW$r}H@eJ~|sph*ewsl-SC=%zp1z zk5ou|cJFyc?=@F;Pp{d0J1xz>vNlMzFVW#}1@A`-(SIouU1n$Guvs}h-L1oSzht)= z^wS+O_mxgJn9?!2Igf~MM7m{$^oM&|Jzvu`Zq>$|=eA|QBgg+1?X?_O2q_`R*xfxd zwxY`j)b5mJB2%y4M5baQkfA#~L$oC`Rj;XUK=(kFw4-afsJF!H^N_5DzZ@YyeKa6D z>Ik6Y0y3zzzjD2LW4X}O5dT+w#MAk0ugAK6W9khze7lCwByOe8GV_%GE=@ ztVqH}&mB+;PT+Eeh*3qPaDY7o+otYK3bv#W>_zRi%%)m2SN|AMyN?EB=Wls&wn4?( zGB+#b2*Gb(eq`hFH~Hq2j=WEv&9>)s{}lBoc^Bqxw>Us(m&RXQyf|52O&2*on=**3 z#sk?Eri6Y}*<=m>y&+ixV1kbN<$mUd(ba&UyUKF+`y!{^_1>1r`$Mv45kdG4Bc#df zHM8a44!g-Yf?LvyJC zL3isLua44qYcs2=S4GKL|6!opy0{<@YALlbTN1>wJ2WZ*6Qn_P2`^qBT3z_X>VYHa zpQ|nJcMWwU3yOT&#*MuD5e1^jX<4ko9$4STEkp&eZOD-%(#!1Ikb97z{N$T_L&L?Q z+)nJD=tv7~?4|{m>8e=lynd(PMkxzquFz=yYX1~4K+Z=t36qn(&gL;Of+d#*5G`ON zyDmPYe9(Mp|3tdgqZv~*bIPikU@6Xmv{|J=hm7}|@9dvQ2DPBmU^PzgHnhcPQ(?gc zBGkR0%oJma(BKg9aiiV-skVd~9R*WGN20h}dqazJC~H^(i22Y;V2-NNR(j7ovx(sO z(+00YN(~Po-)la!ezDM{FWE1f&S&#;Zv-N^G01|oIZDU^Sqb}4K%@IaU-;MI zjAb7O9zqfkWm(YBEE3+viYP8Vq+I)EnV-;&JS%#vx2h&|a900;d5UBbL7^BYiQ|Fq zlF#Rj&i+nNL6TgA1)j^C=XANN&RM4ZM}Hy%2Bs^TiEf)}Z0O}lGL+|e^3lL`)8|q< zFd`);>18Du9Zc|E^?5^k-r3upPA0iU-}{E{09B){$?xb7y0@d>P&HA5mEsctE5M9< z;%`xC&~O+znN&AprPC)9E5R*_}766aD9K~MXpum2&5|7d^RoxjdtW?x z^5E(55zCvv-^09dIM7|4RTt}dUQEcMitO3r2geWiZ66{_YLGwM&Z-wMX$%&u*TMSm z(etC@1h1eStzja(K5&9LUdcybZh*mj6M3$7C-vQPllu>T^YqKdk6GagCN7X|2dVaB zV|3@=!2lK3@=ls(kDl?^BN*oFAwk1~|3<_LN5}Umsxu=9#>9Ils0pCqJ8CaCT`NyF zqC9*4h+ALKX4$W`&F$X|7C7E&{{72eed$FCL2S35dn5)7EbrK4_aEGQ@Z|1;=gf+N zIAH-ekA(}F9zMAH{L4Gf|9K=P3kRmgau1(Bx_^iB^tW6M29~#N#{c2Y(;z#7R^EQk z4F@#veA}k`hc6%Vy!>rU26;@| zlcS?M$6r48E!RK7SU50UvZZ)L{qE3sf*B`^!2O`X16Sh>M_-QU4K)~88rvQJ`pf4> z|#1QIpM2m{XNgZ#hHTn z`C&{N4osJ=hpy=O<$0JZ!OE|N;7;xUrr3g<4P|3_`)~7=-rdHUho1}DIQ^N)OpSmH z{E>mAX+H)knHBOu6$W7c*uwsv;r?Y0v4s133ta16&-k{jK6({~rjOp*EKB?y4lM%d1F%(#7wpfCXY$7)hxUQOE;GAb-0-p5Emh zsJ|9?gaP!x6;KS{o8;+_|Nm%v^Y*rmYuz*F*p@s>@K(1Zb^z+0q0o3nZwQ8OT z1pZye{?Tyfo9~%_BptMP6buV04}2BhSCVS-5+T=Pp_b>jO|{m0@9C53yhp4x-h29_ zQtuhudaWwGM_P{eKIXaN56pRz;m6t>@rT@Z|Al7F56>41b;$Vme05HXl9$X@3GU>K z@NDtDLI)oHO@!c2IJtYz1-D~Fi0f?fm9Dm`n2fq^s|qDp^$!%Y%U2Ad$xvEaDcu^JCcs3 z-u8Y`8^ytv0_>y1#l_ibYri?%>o&4&n*82r4Y=DReQymh{)+M-cc01C`!9QZdQLJ8 zvqsCnAas`r?Ki$-2_mUL*2pLnL>@4a!Cvjjcf5_143O67SlU{t@4n#;%4SlE2C3VJ z%ePxUjJm_7S`A@-ljJuFY%&6)0DiB4@3%Uw{TdgL%*liTAVK6#A=2r3Q&*DpNe|NwRTN1TaWB?&@@h!IXZQyFiMF42JzyXO}MurHOz9k&mgRU8)AQ zKFGGW2V6o@9!+qQwLBCw?z$T7Zv7cc6iJ75jfiGNRl2o4U)0(_MYEv7{59CF%wGx> z*BERwcWsa+146CQs4gCqg`yh6CLd~T5D$fd#yvN0(b8J8e8aUSa~T+P?mIg5XWK#k zlGO8YA<&@Y#;8&2_qzuy{Uvo+T*$(rI?dg_mp&Wl7#MV1&ox>#HG|F~l$AOf%WKKfYZ}9XitD#_P4%Hm?@Y0I)~}pFgOcmFc9l8K!lF7= zrcc|zp!2{ftL=8Z+wUZ-lg7(Xj*DvbtJMMyT5j9ZuC6}SC}_BOp;KiVSr~L~J89Hw zu?j&lNfu8X0)g+Ao?e@Jq9fkKrPn&3LCH;(UfYvNZ{;)!8g8oet1O`w1|2sp{pxa< zMnS_(`N208r96S6{HIm%pT_yWuZsWsIRB4T@&B0f-83Fhm!B!5=U0tF8gPxuda%?< zj`v{ci|XRBrUy&C=c;<*8Wr_bbt4MWi1)+?Y8c?o3vQ6+3Kfq>b?HI&<{ECxKA;{E zb-s34TqFwx@wOw!#o{xpt}fIlXt?z{ZAz-HuWw<{as4)`wnvoXqFU&}xcMzTjYhyh z%k7CjudpX>SWwBmM-y+u`d+O+@J5-5F>-MctszbNY>$RbUb7`@6*y?!K_84Jm|Gn_ zDP;S%%FQm5lxi7<39x)w}I3-*lPkDMNz7 ztvoFnExzC_S*3`jgyMi+uW*aqcrM|sn1&T)+EzPqf3Jl>M?vb z;uU6E{o=slI`x+|zF4q{j)p;pdrqwyaiL8-XJ}A*Xfv#d?0#*Rjz#hp((LY}sPOn4?6rnG<82ZjLxU398)L)EraGz1 zT$k3~FdVc#D)IzR9?ABRXjUlZmOixXW}lDmB%5nOw4%Uj)Mn3`bcnc$8E*@U@}Dx_ zr`494AI^BIkGJ{urgT1mU_VN_=2KNX=+){xx2BbJ&Vw5I`uf`@pFT|M>w^RZlyLny zozLepD`_RXU_k|AJpB!w^JnRvHpa_Q&~S5Zy{eo`peVnpoLet)E?Qp|v3jjjZ}Lue zTC3>55Dz!S>oq?y(o@{9qAJu02K)H0~!;v44l?J zxil!b<)q&2l|PdkR_;cIP|#rcj7q%M*lv)|3=BFfE`BykFY|SUf`(h>8+`v{dTmdj zD4&cEbbRTIH;^4L+O>Y7+y$w;MsDf8EHc%iE6x=$Cy4Kznne^Jk zu%N;`)#b^(K|F{QSK!^kO%#frp_`+cFT8ta(sPtXAr@|_+xZ=<3e!skfxvg;u+#D~ zRC*jV3K}d9v#R1yoQrhhu-9z!>CN;wXcXeWG`jn|8@hppLP5jzlUI49r?pdeFg`DG z8}N$~=lUpE9ZB~QTOV=b;GK3zj{|{_25ubaW(wX#PmhB}LBp;4{431TYbHg4g4>JQ zr-?|KBw@uay%z-Ly$XG1SWv-y zm>ML|T>kSGR;dp+U)u5gi+3*>0m4DHwEE`UJZSHb@`Mf{I&K z2er!DH;syFYGi=tp`hWW{~$7Tm!AHhLCLMJ2kQDwe<~`yzRq#ba`OOv=}ktZ z=K;fl3in+&9kq$?_b9gLtr+1y*S!IDqAZ!Dv7eM0^oTN)gv-@x6joXce0V{dhgCIJFwiHZou9+sd`R zUFXBf%T~iFTVA}pYeOqYFLraNTM(Q4jN|4xo`CUO*zEjJacU{z8m%s$q~6?vO(L$* z8t}bY6=)H0jnFGq>T>sKPVk4NX$-^UVoEFh(b*j{{H0azvdUd+>dUn1wKby?5Shluj(X7(VyT zKuNNL#h56qVM6pF6CLi+?uSO{o;(<#B7l&)i=V1z6Po^(VZkZ{!ZWEH7L}pZH9nBs zL`K6xnO28l<82yFmH`Yh_Yi4P$eKec04(!K%4{r46f_9khfu#uGvC?ozVoKJ1*;t( zu=H_oka~n4n(yk(7EM?4qpE_o1CWRsh!FJR7Mz>fEN<-V)B~7h;Juh)JY6hT*~xS^VfBe5cShA5 z9t0mK!4^FPvp7Fo(c;k7c=4Kv36>faB9EHSf{>1x_vK=8wqRmqV;18<@Npz&Z^tK0 zPg18`5;=u~+^>AO=`#Dv`RQ4RA%dPPeDW+KleqKlyg?gu=q==?RBy) z6T+V=;T~d0_1j4n$vlE_G0U@2ASA!wlJqiqwnldM>Ibsc$a+vnd$Co&QWflM&hl=0 zY#ksZb^B5HBO+I}{Rm)?`cOIJkZPUz8H9ICmdkC)6VHOh_7~pT^cxvC6I|Q35Lb!qet^G`rlb;V6IKd$b0qjTC;^W1HdqeP) zsc*1m_~5^cU-3FD0jwDTcroEkYYJE~07l}S%<1)E=HrCKGZ3KR<)8^ku$i?RAE-2# zpPi0*;S;<_%o5KKV6Dz-^RvL%vRTa{fc^Anez=+}S6g)6q*v>=26Xl0PP^u<-ASrn z%P~E`bx_ED3E2ispJcUqo!(+px8HT1sohX4o!f${Kc*cg!+>AK3>fxD&1|RJ&-evH zf_YicSnOR395hV0i$HWyS*thjE-03?1+i%7Fv#44%ucP<&UR`8KG7|im5AvSGzfhK zq1G;4(A&)N7dh#r%^_*CRP7|D>N+-z_yR_lJA&y{V5TpL3vcogT*?U+OVubC@}D3G z?H}&aZLyu*NNJMv++r^GnGk)*MYDRNRenDK7%Z+v(E``Wb*h##K*;?XmRV!eRDWh( zqE&ft)aTVjFEL}Sr^686&7-R0ZGe!wg?JC1wfOp|WEMM?e>4dAf1I3-rzh0SpRMS5 z3Tvalwt9Ca95c zC_vw`Xw^mH>pg;zQOGtJ!0!UyXwWqa{zWH(6}gB&j)KSoM}!`htv&a<0)ie$TqmbN z>cd>>Ijgt?Lxq^a^L!L?AK;x%cQERyrkx20I%^RD2Zk8r$-P_iR;kjGTVnvfgIKiH z>LFj860|9i7+4SlP!6_h4c;gxl><$Qp!pWORCKZL4n8Nn9e!#k$>#9N-;~^PT&tZYj3wJC^r<;0v>JAMsSy@d> zRE+^V_xfnSOHrEF6$R*zZGJHqO?X#w3-->0IVLAT0PX|2BpmpdL@-&%K;vxL4WK&*Pc`wauOtv@Qo%Nyrj-czsXN&B&CN7gAh6= zjV{l-Nu3h~0XR>C?y%A2bzNE-7!L5LE*d|KJbF@zHW(jHH*R?IQb}-w@!>nQk=Mc` z!3_p*)I~d$^!YUfXyp36?toI%yEix~*XJZiAlIueMpQl2>U_6%Qm%Jl5Q3XpjXuxz zNmaI{0F8{3RpX^mpl^G1+7#FsmbZFN<@9HOw3ju-v{N8?AjrAH6!uwS;A?>FM z12{5dyR}VIC#=tzlp!rAf~SF9C3wXFK2O-zcJqa|xi&3fEeHaRd;C4ZsqRsn2!2qn zpgJJ$D-Q5^w(L|gR%vSt;HcSYQz@UjPHOlx1!&m4zti##N+;Dc1{1((A(nUO)8HBd zI5H$ng#;INCS^!~Ab_sZKK1xod!FZ$x=uL>66iWn_1qkG=@DLUoSW2ja$yic;p&7_ zrb&g%a)3u#bedr&Gbt?qf&kKjJ`cyANokRjAc0;QeG%)$CiT)B7GzN1I@J_7g9+f> zT8Hk5hBrYg#kRTguCkbZR+lD^V2Hff(4nv z`-2|ui6_QEVE{*Ojh6TLz%Z$|rYS%>c6(#|RJ$XCd{TVLtM^nmVPJVtR)^bFOzzTp zt>OS*F^=9`=anY^FV9R`yMY5g1vf`H>De_A22N*gK;@Od|ip0?lb z4f%poS~m(LNH{U@=PpuX;7(pVvXe!W{&d8X?w;)ji7hzs6HXj?JjBLH@PWT(kec8c z1Odlgv>AY9+EjNb4)8^VG4xV9u}mur;Er=fofco}NOg_|K_IV5U$l5{HmxRA6ri!9 z)$LKrt8Ey}^+_vQ1qvc4ZYrD72~Pfia8hy0Ns!3nanNb@)q+$7@yJmSK|1uBRZP5V z3eXq<_nZwZ?#Lo(1nj~fl*ggf<84DyUg{|d&?scO%fkGhRLBela8!8u)A){|qzcdD zK@Ryze?5HZ`6{Vg6ex(mVL$AQyjReY9A+>+ykF~h?}jD84F+&j*Zt;xeUJBkld5aW ziQuVSWmzc|uQZ66GMkO#vGDUwzoh#KZ1*=Jx6W}|wp;x$) ztREQ;@F-riVa&VOFsTF>4B!}wA9P3U#&+8uH6;zj9TsFz4qo^(u1V!UQ-FqhUR2XP zF&MyYA)^uKd=cDlkW$DB5+vT8{5)N;&V%4!Cmr6Qll-%ly>~++0K9#CI9r`;skEe% zc#JH_jwY}^mB2YMe23q2n2aY*4DY>&n2aY*3_mJe6~vuG9N_OAug>WDv90mRNv4x} z$^0*Q3|CZ`bzAP-*zZghp z2-tUXwtCZ}=8Y}{$sORqfx?|aVOSgT)=NPKcsJ8j~B1#ARx=Gf^+K*7X(nhpz9Idn8NUSzL>7woG!ER zTRM6;es#ii1P5}#(is+ij87t9$bT96)$8-|f@;mlo&-0Q{2(aY zjAhCh`^dw?h)=l@+L{YG7t9+-!95dTV<6`pwZ|OWn`IbF!dQY{TlfF%IaTPfyS0iER+2l~&hLqLRUifUc zNo#bqp?5K?AX|fE+^`-C>4ykF()BJ~K1!Fz@YMvtWprTpq6IJ}7mwoxas?1_U&1nq zU2AAI0IZ3opc@XDAI%6E2HZm!GJu}#^N)85#%BQdqLv0BHyu081Db!SwfTs11IHG? zn4EgMcAq-*d_8#sxdI5e`|tv}k*++i^}UP21h;R3;QJ9cNIk|6jTH4+54wHt&U3*% zFrY-_a%3Sn-)c1VIlqkd%kDJ$;SfcVQ|4wyWg4eJ?aq&ri=XC;qpcr*I+=Pm6ABh> z5n4wKe^?YG?&I_2{CE|S5hND~Ovb@M>L%UPGoeP2RoH^b6>km`6kzY@JNqVEwe3dj zrFSozVCL0^*2a6JxWW@=|0W8>1A#maPb*V+n)e5}!nc(ve7i=0_is1xQqia7arnNn zIDEe*4!^HV;r9`ReVX3jw+NrVo7F6yt zmC#Fq;pbW%LxYkVpHL?~K3wItwWeLq{FQyd*1AYkEC{hcn?@h2wfCC012?Trb70Ux zYoNYL*}dmAcR9G~v}IK7I#jIuK9%cxJQ=*t)mQr69vRrF;PJ?zVOhgPPh4@$HyLN<;jBJd9?ohTBG$sjjmWr zlh*ndEU2JX9`1E%!!bXvmsTr-1O=o**n>$+1>So>>!m--3R&U-yG^r2~uqa4SSJnLJpw{pB zkF|cLT;z1TSiYf0knu9N+u;(3Ah^y>_ya76+&CSt-fZzDr6*VK0nni=SceDi zef`aJcFZ!SV1KJeR0PhPjb|G&6#>kfTJLPikWWiToB$x2n6Jj?3|T(riU8*0Q+l0z zb#bP5eVv}pXPN$kDG0Wk6%>Y{e-so+_t8_HOa} z>1?|4b`A@cQH$`Np2b1vVe!KsXY-$C$I}yUpOIkAyI^=?4l*LRJU>33{v3F76F~_FhU^FF3v|qY26;rUJs0O`*#t(W3+Sj;-CPBkV5A{A;5R=68$XRQ2 zg4k@Jb6I>kO>g_n20EIB_&E7%r{An3e`yZ*pA`8^eV+B3qd{<-NU)bEmIXKviVq`- zJYIrns7vLFQ}j-*+Z*jRdo;JkT8zY0%2|k$t8>uns^=6d(E$rO4+`JWq}pyXNGU;& zKIXat1|_H7>2!mdEwN6pBxpD}q0`NM>h>rTbAm&I7K=}R-x~-e$48T*8bOPbtf5KJ zxL4!=by)`;{$m+UFqVj=KTuF{yhWF4_)ixk#>A3h8g$9Ub6zr2H4F(FP7b5X;zx9w zV#`bU#2n_(p!K*&nL&4Fn00q{=#D}jE5Y?IvE*Sq=sha*MxCMnyTwP+L5*~BTpZM# z8t$OgZdcXbvcs1 z6IhXaY(Y>!KeU(8WkKHkuqoplaKOKPx}2&rDa*q*^avx%z7qRQU^9?nAn-p1fAZIJ z8tYG(f+VFQ3P3^QBdf8R{Jdg(Nlg;+H3sa@PnT~G7j#0UPw!?A2F?9#dJdQFsvESt zT1#+7#iFdY)?=alk2V0^qfcA^Tg^dXfx5sv>(SjXEq>R;Krm}%BIH_eg#hfi1ACrj z!JQ?N@)QxaBq&gB(Qau!%R1Zsb;zRJqJy)z0R@e_u14P%k<_NqcyzWk3o4GU0*z!} zF$Kq0qmCbqWM3H+V)1M1tLL*Gzn zRIa1Ab$9}#q^+Sut?#w?=|w@0DQ3OGfPdHZey};LY+Yu(pgB*flU1BJpz!#(xDH4{kjk;Q;t)Ira= z@hNo>A;49otGPpMZJYM`c&~JoD_t%HbmbNGIZbMW7yFg-3d4Y}a*q0fQnc3FOIZ1$ z@Va{(aG;=L@FJskjE8kfS3b{KG6pUN{98(yzUb1sJp6iK!Hrt3^*IA%)yE;SdUl33 znXvp=t{>t+z*f1DK5lh=a=F}?Bfz!ZpqX=e8kCt_+8dSuvh_x%OYdNM7nPRw1|VSP zR?`$AFPsThYX-==biSbCGu-Kpyn3-@>2xTd=XM9JMuOd}#dzQ3k1k)s73`kjIhw-5 zR-5Cx)V}e&Tsp@Y1i01*-9hlWR%stt2FNz;^kwFBI)LTo(rK4dJi3~br`=I}4zx5q zr+9Sr=EqL0wV~}f1@wC+chDWP&j}u^9tvjKcs6lC(6IT1mXW>1*3$XKAi({Aq<6vz zAHn`8$7Txv^QLBch2@*8XAcE;MCE^ zR6_t&^$K?Toi*K#ay??sfr2XA`kTnQWVzDkQb2!5^nL2p(3z#~0rhQY4a$4wQ7|v( zcs*o6NyS5byLs==rTBEUs6K4-dwR=xNzp+8U8OQU&%XJ7m-EY|GUu#O*sn-|I8ac% z%R<|WLb={0!^HVs1XB5q{i-I5CfJ9-+lAs8J9>*1p`{A;YA}|W1XkI|JI8}qNg+mv0&xx4_+J+(^_G` zXKB4(8}R;bVhl6~3M{P$d#xSb#wVtO0YO9co#+ZWny2-K9Oe2>IRaeOhp<=Mu`*Du z4*>$G#@g*x$3I6})>?}ISB(tlHoVBZNV$jy&s)%bxP@AG$KmGy%~ zfUEilUAnSEal778-EytCO99>Zq7m#j^ZBsbY4gLyWz!A}kX7HhOM61< zd{9)bZ*2i!nv`q42)e;#Q_dp5HNM^1*tdoNsv(qKvy=Gcsoojm(B=y zRZ(fKLBL+)gMQraaS zSM}ydkk%E3S-bVzTW~Meo8ufPm^yFpazA*FylkBZ2FNCN1PNI-cW3~ZroK?qd0pCp z#Ve$;^+iDe-B>(qzTg#6S&KCQOyl1n&0^BF09I9$^)DD8o02l@(>p1QTeja~2%wsr ze9+&xuCNGjRck`4(lm<_U5P8#ns^{+JXRXrLF+}fqt3gjGf~0*Y{5QvqF_ZXMuXZT zuGXQoKU#rcNg>#w8y5o%T53Mdv4y_&Pi~Z(j|*9Alp>8$vXa*-eahpsrg9eSagV#u z;UR8b{>b;-yR#w5`6H)6tw^&$uXfN;<2WySqNsCftu$(}$dpW-fCVL;>zr?C zA+1i=TQRMYxh_J3ny!_c?<0FbO4dpt3|gvfqaFC&thd|e`^L((Z3P2l)n7B8Mx0fy zzs4}&=az4{?yTX#x-*?j@m_H&x9)7h!&cQI_p%1vQszCYS+4h(z`raR43JgNkB+SDdb{t+_53UVOtk}nKJt)dbAr2* zPxbgTaffg2D%ax!0d|_W2f3hZ+%*79HE!t-X#;hm+3eA*CbzfTxP^0|phg1vo85MI z+dJn~ZY1DRKv#KKf8MVBnU6Bc<+OqUvYL}HpQ@KJSR+twPQrnJoqN4Qw*t4D-np~{ zujd>n1a{q!8}v0M#>T3YM&qM#MTo^`n-UEt#b-}9L^t? z%qcm;C-1eWm0|8EPc{sY;g3k&U)~>H?XT02;u4JeOQs1P}5P|?A`Q#pB1 z-=lN2+rfL)<#Mu10bP06e7@82uF)#zVFwbjTMchYA%(3WU>9EL4rxY~<+>EF7z*gB zCu}0rSC^J&bT46WFG;zcaEt~ul@smvJR;?CVvYd!Ud|n;S*V70rE9s-iJ|8pXlUD; z&1YGCw2|#VfU9b&f%;JG$z`cqu1+Z!Am^l_D zRo|5&6f_Iv`mP{=s(L(w9vy$AV^`V!X1nh>XN`h)J4d-bm7_o$D5#l;{F~_HXt|k) zkOd``GY{fN8q4J#2LiTA--F13!*b~h0;AGC`kJ@$$q}$t)qn@14jnkGd+R^tYQTa4vg%VEY}TjJ!NF6rHZN+!VL#LRLU{dDZq|lj zz*nW+e9>?A+T;$_f|Vxq^C|J9xaMT-$CWau76>*I#VrbsZc$HGUtTtd}Ri-vE}NZ909IMExOEOvpi-2 zV5-zQna(CYv|MU|0IDio!PDF2PBQ4=;Hj9OjW^7v769gNG?T98U7nw*_kow$`E07* zug=tUr(t;$JYo$ZGKMMxm*HWGs_@irRUwU(^l}xR2ZDx5X!X@*2@L|MH;C#Je^=_n ziV6+dXNrc@cy&QfPG=}vZc~2AB@=XM&tkl|_?kdSgf&2Ds>ApBPpBfyj*nQG6Dx&*J>qqGV$3)YnrbMK$IOdWxuJwh0sV7EpP!t}f6A5@r&JUC z$m1lqxi{v(V-E>k)hI46mTQVix$Xz&K;e_K>EVwjlPx^Lo1eLJ^PnJB7NhgwI;5|; zM+e{OycS(z)E&}AmwakEO*243^TC;V@mF1QMXzjSk&V-W+?XRwEF(au-OYch)L!iK zs0k*V^6;UQqCw~O*?c+u8SO7C%7V;c0viR!0sh^;o=;bdDrnRxvo2TT*~(T*8j%AR z^sX=iQq8qGTmIYEUmwj6sm{Jwy_wIp=8M-~Km8ij8->v}>aZZaul^d;TYQ>Yu+-(! zbaF$KBO&TIFK1nGk;E;sZhzDswu0+M1p{Trg#`mP zs(8~T>voNAL@5_<3jkB)9li;qT)d0ROB89eK{+1fx$r|p>a^5Tpo}Nzl2b_33m_n- zib`wt+y3^aa#RpNRk7xG?UnQ2i#*o17n8GvYK+Ex`VSUyK^F{xZR}kVOufIDEa&Ho z!^u{^-P&)diwl{GV2@i)urdJ;S`YJITCL#DYQg&gIU}mZ?&W`w{}y^Zo)-m8d5(z7 z5pZqnf_03IW2cGGdz71IW4EKGb6DaDx<)x98b5=C;wSl!t>QDE{Nw~JE&wg*0fB-^Ot^! zr0d$$S!4f}i$85zDjhDggM1raB)xIIHApB1C3A34JLYrn4s&iK3V`m?<4!u4mDpag9sM!BPtpL_8t2JLf5wY{G_E|xE;ZR6jNw> z*CD1WC=wJtF5;kz67!MZuvI(~1_h1Vj)wPIieOc4jRJwdchaH0*XA4alf9%#P;g>E zcc3#LCC5O4z;|OnM?IN9dJGf^3Qi1mdVGYK90LW4@b|o%x0Cq_6yei#?aV>Rd#K{Vp6j2y7cb``i2Tg*)-J+%#44>_^c}Wm# z9*kEOmIW2ZQ$zof*?Qbb`i=zmjK)iiZW#;;v2fBm z3-7c}PH)SCij&@1W2d6Br%5pdTDGbtH8Mql0{Vi~Lr`0^gX_@JdT1^!rZkG&HFG|Y~)Qsi~530CC7kHd5nIb zBeCr-dkU7!b?71z1t-D}oRrAd9Pn=~XGd?27F)DkXvMdlNa!Z4vESu@etS7T{Bg3{ zs?o`{Ht&Z^T2~X;;29{wr_1G8@k{0_5cqcs`x|t3jn~(g)Kk$YSXM-3?LW@YN6W5KMo_4@n6wIIsY(bN~h&rv&yJe9bnwgeVaBPI}OyIbY3AP7h6j zf|DMj&Y--Ny;l*F^R7Wb18Kh9s5Kh>;5xdrG0hv7Du4Rsk5B)|9G0$P zSWx-Yri{|>*A6neOKPW2?=JF!DVaD8lP6?C^>a`4Pjp$KdgF_RE?ijf;AEuMfiS~D z`=JfcREKeg)VgIg@1hmK){%%P=RplQzxcMrvrAgeXE-CgPfthQd9Wqo!xz&57Sc0148c~ZBE?N%?+JOSIrCE&y=a{ep!#6*`yUHzNKk! z^{Q~B&|M(_dw%WPLkBiHbn&r%0i0TJ?=BU=6Q7sa62f7}S8MFhiPH5RFxubDBi4!> z4I6%Yg$=<0J;6yCfj3}>#={o0K6}rz-BF9Kjp)+_D70CZj|I|NpO6XFPjU|!)#$3P zWZ5pPDIuC8*J-x9-QKqU*7atZITD(Askh$k(ThUfjB;YB=RoNBex=*{C^7qdm146v z=16GfwY4?r&&@vH&68MLyEte)F7genfa(Jss?Wr#Y{4dsXkp2Zh-e}dQIEFhhU#|q zd_PkIf#z_K(aS69wW3-(t9y50rPZTX2*95E)^;mRkHPcqnq)>UEHo|+N?(Rb8BIhC zT7#jVho2?Yla8nhhCW8Ay&d&PAWP!3QK|)jkG>3jT-iKM!HTF<7`*kF&2#kZefEs*SfdA;o;S1SwKmV>f-Sp|A|8Q4 z7kOR%1eG}5wyVyK`B$N*<@GgS=;!_={eGR|%NHgR{ae7GgSuK(V$l~k(&}o4gH|3V zrPbJ_AuTJziE%1m(7|X@8xg%|ByBXwc~HZgkp9+hdeY{Ea#UQS!Tq+02BDyVo{1Kx zONAqqQ(Di&140k&mic-}`+#_~(%LPT1|`fs4Z7`Mfgx@738a{UU)`oFIQ8xMzx)SU zr$KkW_CgILSm8+3yU&^(I`GCP75_)YW^pB{ zf$IKQdIgJySkz_Ym43wrdP*?xs^t8kH{gr*6(^_W!X-UbyQH@le%ByQ;ijy=E}gd ze_7|X4m~OOtfy~q4WG3*sK{r52+UfW+0C`G>I84Fov5nJ?n%I;wVB{mR6a;BlG)qIVmb9L>PsCYct}Woj@a?< zv+3-3&ipAjk_r?X8^yQ~e~1vPH;c*mXgNNftS*?UWQrr^Tn2>P$B>KpRWf3aDS-u% zJWlqD(37cgVnE3K^KyBzMHl1HLw$|rpx$rw^yrpuu5AqVYR{+zueI8vK0ibvX#@ys z(ox8VLH`gpsMVp4PKOp_n*Dy4_v!C}g6WlCMShGreP2L!jlsld4h3JT!& za(Gv}+&dR1nPv(Ea#ASLr#B?&A!5Ezm?V;uAo7`x3FVkhla6T8qbX{VDV!;gv=S^v zQ6fZdDbc;!fMx)Dd=w?PcZwxV4hhiBdV?R0PC;u3&|kso4jp2p>xTE5YMQ>gzfTiN zYCeb6U6LBpb(o6CIxYHl7r&o#z*!@}J)bV%9yzil*eG-F zrwbJRf1q5X9_XW-lTmRC=3699w(BOJ1y_9<5mGlV@Ldv;X8RH~1BB!+W0IZG{XK>%NVbopF3dS&~%-lJx{Hel7|!zv43cEt*GeZg*d(CVBo4ZX) z6Q1Ckh!jcw&?fnSMhY}Z+}KkGLRq3nW?#Hy=P)?!F_%)k@jy&60}~g^agft}jvjU{ z>JrHvShmmMvmm5fEcPYWDcfRsD9Gr-nSbXui)9NZ13^MpneI2VZ>i;PKrCBj#(3)m zO>@LD;6{R$2SJ`zVGWd=R=g6@rOJ)?+i$#aLD^Cjz!0OD6t9golqxDDlReHCbkF!? z%jAr#HuCN)E1g;q9^%FXZAYatL6-+X-7TXIZ)@kJ>R5LV)JEkOFEce~G+>#sY~N@t z6w-PaVSiPp3%2Zp#9pn%dn{##5o?f;)iXxHZ`#cozw)Z=j8U8jQC$k{PwYbl%(-Pt zp@)LZm#V?B-@W+mcYmY}rhV!JD&P8E72JBKVEL$NJr&}*wR3+qpmnx7A6S%a?IJkH z1#!hH+D@zQ9WdD>uAB<-&*_1H)s|lVRd08-wnwyGsMe=rA>JM#NvTmNW2qq;P!TpxD(d<&3d^m@5;j=fZ! zW(WE&do+Y)MR{ZO0t@x1&-Z8m@7-j%vCl0Ny8jUKxmvH-r3L7hbjUE+Xe-$gcd6?G zI&6vhfZl%C_tq{p_JL(W_n%`v=yZoPo+n4py_dA+(0t+L0m&hqOWhC?fJMKKTSOZa z`lIdeky^~(pS zo1~GGpmE!Hi!L?@uJV^$;pTY?n1D{FIlOiEB)Y+X{t;}a9yF^LBs&NK%M~Ob?|O%l zlgJ7ZkXs$TaG69_5Rh-d8~gqPO_Fu+z#W5Q61?<9db#Rtt#5Bt_2K2)6gFWt+G|LqwV5{*SGdzi{ zDIt5;yM`={ttcVee@7*attcUzZiBACCyElX4_;J|3;T)^V^>h_i5)5T^eMmHD$U=D z64*WPJ6B0;O$ph4gPg{WwaBf(^C7>CGmWh%f!zm{lpRe8*_D)?1GnttHDUNfO;SzB zU!}=w!h=dmrltg5c~ObSH6>(M;_(-*$8(>&sKh6l0=v!Ve^k-vzuUyo4eb7!^1 zolKJK+Ti09&Vo)JkI2eF`B@Co@Ky`V3#dP+1YrH(1PP3EAYDH(Un2Kc2 zf??Q&$p{Z>kGb0Xr^(`QyqqvS$!hvqy_^_VJU=_DSg{~Nk!p19furf`sdsC=WFJx( zH46fta-HVCnfx4)5Y+%C{Oa`Nw*kvnnIEnyQz=-!${AU-8o%;R9HzykU_pgyO&#O2 z^V#9*e7y3H8cMd+hRNd6phWeWR{H4;UB|LK8z1tlE!k`o3OO+7{L}LM)!AZxI9V>Y zYTI49n#?Rk(vF-~S1-8M+jO%kD_1WBr+o{mDa*y*m#M_8+HR^1Lf388Wh$`h9~@uN zm2oxNeW70hs~yx{(goMu{p?TOZRRP-x#+?(zNgk}Tw;;k=wnU|X2JYpB^E_AV9}SM zk2=i*wQfyUPVq)Za*FXv=eTg#@Y}czw8yNjt_$AncfBXPBuDB+mT(E!^LfOcZbnZ9 zHM;y>4av&w)pq3Qn0})uWN}&XM)XF?!637M*#yJ}Y8$Sn*#RUtC>-N)9=%_ePu#OFnii3Epp$ zY|vXT%pP(3jiW?rWC;~w)z!@rzda$xW>4`?8?+*)@qq!VB27=30UTw$#jpx5cQ zI=#{Gdh{6@`d@HgXXNZP26Q$m1IhuM4GY|Qe{i5i?z{uAS-lS;)Tnnh8=r60Mh)6n zp*P9Wp2n^|nqO=5=$7Bz-#_7pltdX_F>S|8fG=YVKR!^oF~xxb>f>K&`qS(wD-@E= zgqkY#jS_%&WCneA-3EP^8$|8oS`W490h>QCQ$*b)Nxm^?c;yl!sA8i>1h2&ii-r-@ zVy*MU4qdOu7s1++ibLQCLxu^|eP3sS+UHs8XW#I#9ko{3uZbj{!zz(qCkH>)-`?cK`-_0TF z+N{?$z(Vk1xs_$F=nAMG&*n7Y^=3Z*G0Rv^l=P{IVyf>r4ss8c`un5l^6X@M5z&%N zuW>ETg3x^;)XDma)_=0e&y&OK zY%w{W{><=YlQn=rO1npY8&N6i9+v}wPnCOKolj3zR1Qz)N9QM#Y&Jff@MM;>C$77q zKuGGW`s!jenJ=h@Vty-|RSOD(AI{G%7Sq>nRvW$M*xGAE@t%P!kaK6Wix9* z0bIL@R&sH>rn`ZlteYGR@VaX@Jv}>_oK9$gHCXv9+coo0kkRcLb)-TMm2KB@2t%KY zmn&)`4p}u+7M(+Y*3QwNuBbyfc{M)#kqMM_j)#Jb&Ohcm|B;ch`KO=&uJe!n`0e=Q zoY!$>^N)i8{v%a2oQ{89PXET)lG_s9h71gVwcYgL`D_~0&1LO&Fu-e{pH5ce>}tQVpG{YDy^EmH8Uz>SOD1nrniZ6Mtmu3O@;c@H z7F|Bp;rnf?Q3e^xI;AMOud}h=w=A1d1qE>3XAN>d**>cV0I4&s`Xp0B9-jVXGp>UH zUUy#f=Tz0s7c|t(4#$UYc;PGCd5Q5LsH<+8AXpvG7pJVCl&xQL2++n=gg%+RI-2qh zYH3#$7~nrtbyK7_FS+B)Nlm332ANOc z-`&ngsnE;9bf2kz6^P&}3~*RF1<*@ngVzJ9kkwGg=6Mo^nM-L{3Z~{s4++Wpa14DP zdrC~O6as?pTHqj+XMZ{f9ORhP><<=1^7!;>FJOS%&Zfr4!9gmIPpo23jSpCX2weeF znbW|6$U`I{y#YqM9U?WMVD=vjmJJvXa(7pg(=**Bs{ioESCXa|;f)sl0u4I%XbgHf zoiDeB^+B!C_wR-j2^oOZ@o7<^o%U$J-!$1o$j~74u^Xd~x0zd#<*Y-3_$U@c9@F`c z)z*@Z2hk{=9xkH81_OGej@3ef0g0wqp(qb}UogGB8XXB~bnEI`&Cc$CsS0j7Tchez zq5UP(HjflFhnd>M>+cm6+<3S~JitQzAyaSH`nyfckuBAXaK^`ul9oIkYYz(LUvp(M zCz;jPWo*F)KMf4MZYL!<8df}FR+xv2yn-xg592Yv4r)A>w0oc4M~fAi^jLBx zba^ZXbm=H<)gQ7dI6am*4r*R3={A+Z?{1fEgIF?VTz5z@)Ypk-{@p+6x}155?p}AF z8auizsG9g{-JE%u?r_-4Mt%Om`iAk{0~5Nu?$@>rMm=>=PY~twwl%;){S#JGOqUsL z*jUV`N6gidZf(4paDY(c{U-XsUoL1*A)hNw?>7}Z=Hlq5e;6;&0UBX(2dkccmMAKJ59gm)kSyG@5iUCRh*_oPw2_ z_ywVPco<6yRB0C*vqFv`=6O7 zmh;0OCo9w_t={wR>Ec3_IJ`6qjtQ;t#U%o;h}WpJ!QVL*lUJx6;)k9vEhTCfKo8a<1G%A-If$o!IVa4c#@iRJuTT5Wu? z`rCZQSD^*l$h_!)f|%Ua-ye-HPJ+Ggf_+RLJjZal`c+_hd3ufk{Ua^E`kUGhz)Ff> zdzWXqg@Al-^`kyJwRKE;?YFkOZQjR_%z?T9Q^C2PXe87gFtygO*7hoH$?T&`5A`fG zu4wMbU>@9D(L$kkpT&`GCaUp4kfdXAc@zy3dY?j%j;SoiuP3kOKdalMysLyIV;-yO zaF~0Y&kY|I{C1rM{pPU$(md76eE#oOZ^VlrFEz%Mf?c0QAoUu(@XRNBB>iZ)Ypeil zh^3Cc4TCwP+SD<8SP=6`QO#D7aA}LRn{l zqC-8FC+K^xdZ@OBHhfqR%M=rlST)z}=5!?ne^oV4L8hB(F zcgI1k#m!D~ho-A|r?15T{(*&eIazR!!31=QZi5)W-UC)$5jCL8diicQ$%JQMxV~=6upsj|kO}jT zWG?;^EnaEZtZMG3QX3&zR!YgL4hpfdCA;`0j8sa=_IZ%IW1QG*w_CkIi_c6;rZs)% z%PTD#a=6K$NZ2=+1q0 zRVGWxlu8X8*lmZl9X>UlGPETGpf(|Cg}$1E%s~*a#fP4xrZ?jU&CTnXf&>X$33o>O z+g@9eQcqe8;BZi;dn`OJrsVVvKoGFW+U>Cnlaj220MuqhnjfnB4O2>11P6HAzS@t& zoRiYNG8lwxS?$p&CFY)#vZ^5f+ia;m3(Zfd)e90NY_{yz=w@}k7bPWIT8s~`rf<+U z7{Kk=vQHa?BAtVjj=F<_h#gxN--PLqGPd-2kh3|dUqu_MAwIZ@Hn#7!vDV^2bD!^u zNy+;f0*h_i8cv3!w5@y^#O56RVVIsNImbc4ep~wtx;w+{S@Y#Vx6cP(DYXxSK?o_} z&#ok;fPw&QYacZx3cZw4`xGQd*xJX8Pg&iWQu|m8;5G*hTWxRiZ%Pg_6rgS5>f`g6 ze{^@4rX((dLC8)N=&px{+<@-`*$L;iNfc3V0n7qMsSjZF7h0j(V$( zt{@InC7XbJ)ff}9pD@||37xh%3PdHlRM&_)L`dE-l6Be?9wUcI_l;EZlF&KnCHbOfK+DjOyNSX&XM8o*-z+uFbak6T_fBcpT0U82MH$W_4slQ3L-Xk`;*gGlSRd`i$VioRby2y9DzdE zy49)J+>StsTOAZcY_)8@IarLmj4TtkTYOHs%NFB-3YMY8wvdssd0} zwCURXg~yjQ?|vLWg2F?tK$(F;FkeaLR>F8#9m|6nyw#b|DL$r><}Jek9l5tN?@w0e z3w}gBEobE@Xdq`%{nnrS^?bVU>X5XY<Ko%)G>2v;NHA&6}1!oCh_O&fz&dPr#y*Ryqv_bhN!gYO-r5)A5oiq_w>TE2gr0 zK3-JO!YdWSf(kq}n)xr+r+Lb7Ku0S-n$dgp`~`%xR^EcZe?%v?)gAvwQJ)KjeN;P$Bv``+7E2;?bv(1h;Frs8HHt!+>8>sFglMe>6EBpP#IT zbOlO#KK5Vg`P0=q^>Y%$*KwhJFAs4__W^9xIxm^G1v5w-z;$ybLVy)Bh?^D`DN3o#u!1LRS?|#SY zAi>PiTE}S^lpgAz(G3R8K3$}f?Tm(_KHqgA=(TxLJ`Gx*aIO7Tz28+!My&7&_V=!n zD}YeE#}zwup8W*9oON0X1(n-IWv8Bf`^}RlEH;9Ej;{a==%4*WFL2UhbNRrtx0wHY zq1s)hBxscY(xnN1U<_JNA$$)%DZX;2js*Dv047+_AaozU%fI6NAHfDU5aLS9JgFYx zhyBU%WHFf?hLcBvUN#_1jS~^KPwC$K#pLzY9<8xvw40W8tqrn1T~ERiPteF&j*(o) zgz7Ju>ZsqR{VN&WhrZL|7Z^%1jnN8qITgx0zVeToA?P`J<@^z9N3f(VUUE1lRFKwn{-eGJ7J(zXU0T=4` zTy>SAye<{ANb4jG3_6eO&s2e-+bFYIz3y*E6|@l%Ee{C2$BtfIZ>7$H+vX*8LRe08 zk#~qtME-HUAB?uuE)14s)ACOQ3f(WAm^NvLUb9d8#xpC;Q&Z3zT;t&g82a~J{TI#p zXjrV5;)jd2c z#|Zi}YaFOi&_HdfB21f2BXLTrO*s#0t`85o2j732J$*vIWD!gEp-Wt^`2Dw4D;gpc z?>eb=&~JJ9UNCA{lWc|s736w)P$1iGb!vU?#I#)Rz@UTJsIMBq#<8^66fCHGZsVMP zLvh+wXM|ebMKglC!6NR9Vxj%3K)c-<4%^L`ykJMhrShB%3s44?navlyTBnf>{>;im zS{dX#sQuQ7@6L!CT^ho5N3`vkF1;Sq`>o!v%R6v_J51I@dM*Ax`@i_RU#Ndz6skI9 za?m2DRdqQE8V{U^?~mHUmhWZB*duKDl}?U>mKz_sJD0Z->G9DhXt+i5hYE|PVL`<$ z9{L+fpX!T8j0_7f%utTb^J=^0-CUkFtO}V>{YNLa}pV5{F$XT=BP2hRk-bwg_k z$|VA@=eA>yS33wM!`J8%2z=$`<@|hhw6(vT(Jiuc-!sixwg&uGAK4(%a4?LFQ=zM> ze)bFZ@TfZnA?v1IBJF~quBu+9zDKn$t9oVKkxOJX5qg1_^Xq)vsBY}#oC@7LZalr4 znq-amnix74GpR1W`PG10FuDe>#>W}5Ml7aN@DLwQE4UYBLoIegiW;OA@uDery13Z8 zm{PDaD2MQ3p`w-}5j)knD-_lHCoD_K+NpJp)Ho=qHnC9JZ|--!j-+h(y-v#lp{Bb3 zg<6L$!rrM-L(C#4tH;*~7EEaJ7eYhzWizVns#{{Z>{uJvxC8It9EvFGNpY*{@Smkmuz9CFkDK$#DM1P?Q}7pozfZ? zi}&URxMUdc$%7jNOKKX>0;7?>Jec>@7`UtL|AFPoSw8elh=W-$hzrt_N&QDHMy4v;d?A7_PdPIt)>+`Eu!+jhx zVVwpu=4`xJP8Q3p$ z^`+v7hQ!y~>R$6bdJfaK`Wk%Av|!}70$-b%y>Y3Y#$JiEvYQ)k9=;Yh6b5x zDjP#SiEs_ZuhoU||BJx$JFQM@u;;brf3Dusxeko`oxr#j-4#deYLiN!my5INE#zV_ z^E;uLwCSQgq-vVpcJlM>(e>EsDZ=2VB7&$CNixVD}nX6?nB>OH$g6^2VP13fU?YtwekhOW1I z{Njvj$P9rVjQvL7Wm?|P=;DS>qo%H#W#0XNtM{&_216yeRtFsodbEP+Rj${NYq=QA z{9i@>%(h26JKlz^|NA;z2_cxbB{R})81l=45S zFKmty4E(PW17CKA-cz72uE98?0>dO#{;)=SXIk`h{Lq`Dy@o2EX~9TI?iY92BF@*-fJ<|(<^7}vrhM*6Q7g17Gpg<7%S;i>nT&eg1v@L zb*=;BezmsoROiB%EISI$>&g~64H_o=daVieZAxy1;LR|Z6*(P-e4z|kj(^^IGoBrt zOcq;o_f2*@8Pg3So+kwR9DP>4482wWX6PjGe|5H)(=Ai0sb|RO>Q0Q<5Jv*0{DU9Z zdV`)ir)y~Fo}28oXON&%;4`D1i3-WhqAMa<*1a~fln~6)n+M#4LnPD#ze~EoVUnHE z{-Np5o^j)f67do_nD`st`9T=&H^IIJpLl6<=AJ0L_AfpFCN1?1M45ibc;??lB$!3? zxtAIih+XNix8oCab%nq6t7?xqGB8PZ+1-3*OYTK>G&ww>3w)GOnXSZFF%Ybmi@bKJ zAk5VDdfd$UX*Q$gh1n(;kCn6yDljO>X?ZkGCO^|QzLTiWs>*3=#bDlV{pjT(=!?u` zQ06f~|G-B^%Ro#AM&0|{^z3+gGTG{lS8ukKtH~)dL2xV{04Sf#XFMe@Csv8R$V)hV5sjp~g z(WY)XUx^p&zXgLui~%8c7e7_sw*TzCPWXQ&CRq-H%zame_Ak@c4wg3r`@um7;$(4< z`s{Bf(^p%6Znw6x{)py~_nX;sI{ocG3MSa^u0cj_EfT8t3e}jJ;Jj2!4JfF5{5QHk zbUHhpZw>$4s}1?4KuKaDxQP}1vM{T1{vRKlUHseW{OFvn4*UQ9|9|<953}s}T=k)| zj3t^NBNidIw4|Z_Yw>a3_j*6ePRG-kCn1Ov!g&G~2G8BhR&N%Q@ezxFAXRKI4!0<< z-_PtD#|-{|TwQkXG%|AySfIZ%es##ef@fkV2(wrrzED$I*ZR|K5197+)~9;G!BG$O9`3sPBxIe9OJWugeuD5(2!NV|Anbbk6J) zs0SfcO3@y76^+IGr-6Ap0U5Cj$ojjaSp<`_IvlebALhotbNHHP4}mi%2!|2^=DtT?u6QmM)M+}9&m>Gi zeRDqJ*Gx*NDiEh?OhG-Ru>(sr2~`E+RE+`kox@Y!8cRHSdgKw0^0>dNCMB7Xf_6=X z;Y0<2i8s{OhrD;+$^x8-(R-lsrxkmrI&Oj5#aIA6uU5Ty?f=ci{>JJFmm%SD1-ZV}Rx z$bk^Ke@GXPpD*Ytx7C*EQ}fse=A}b|CmIMq{1yd0o|>N8g2hpAcas~|7c8KVB4^I1 zr?H}O6B80S6Cr&W03kw|UH|kg9Wi4nqRgHLjmc;vbf{)I*ZTcBm{Uj4)rNqhLlu+ z=Ik!(3K&oUKBp6hJVQvpIutk8fB?Ql1((2EVOLR7e4MZm5exOD&c^<|w{j^RHYR1D zkh)`Ir3%-XH$Ik>)^%>%0uVwUscWKXc6;e3j-a$UL0OEP&-0A+K7BY@O;34WK+sGe zoUdSDh{iidulNkApd3&T4kZM5@2fA5&QEzg`EOSb?jlgb0r{r-#p~HQD`JA0AO=<# zaJ9uV`V|8wTC6!B-=yBw^tAl@2sRk^u|*Z^>G84O90_XNBNL3XEeh;+j;6f6k>rW# z(qk6g!<$F*Lv_75bFjo#6O3~$3bwvCp_wt>!x7{O9f)xa2GrZ;2ZwLeX>V?~;Jz~! zI8@mJ7HSV|0M-1@R;T0H__g;2$-&j-C&q|ra}k(u#{{P5O1QXiY2zsBQ?Oij?a_ku?R3p6xs^xn`Et(TPI=$Wt)H4BB5 z%{}H*>NrhlWsZ06#JPtv)=K9hFu{6QKLtduU-HUB?BP6kL^%I0ueNOwwVP&Gnu?34 z4II$}7BT$LWP($_9Ts#cijXlK1%$|B=cn|DTl6NEuCyjlrmhj(a^Voa>x!$X&qSAA zCabX!w3$ZRsb)l(p5VSM$6mMl?0l@LkaOcljq+=*C(kmM#Lr+Mc;B%E*~z_9OkAyA zmXZKN)K&&M$SJ)fGNpA4-hPRT_$EHy5)oEphd3!bVD{h5Ax+st$OyE|=0_V^RhRsgI2F=?&TwUWE&WG)~Zn zkU>J{j_wW64yxtW^k_C_{u5NFk@-ju7!f*s9TZLx4Ws&sO zRUi)47*KENN0Vav%LGNl4a+p#FNz2pAI?^#hZ{N&hieQXa8s=Z9iH-(6bz7TFiy58 zus={gn$FJ7d7UW8CwahtZ*Wk!c|4<)kVC$rBC*~C<8+Gx`-9`fI5Pb&u^s_AAD`wa zdgFLSJuN<6A(&q?p*Y)s3e(lI?DM%-mr6`WK#s?!x#@rZns0n~dUfCMHQ)9?0GNB@ z^<*{o=2-=PFrk>C76kB3`umKg$yhZn$R0MBkJc!c9W?hcwhHF6SsVZE>ytUp7J}+e zh2c~Mfw}L$rpKAz__<9mmxpj14H)q6yk77sL@;kdK|E-&`u6T?+N8#kP2vFx!-)z4 z6K}p5F9Qb%63hl;V4%Q$kA|;je`WRx8W$aib2SFkci)_jc`*|>L51N=1u2lLQ{IM1 zkQ9a^6$HrJs>fcZ*GCdFKnVx^1C&(S8x^+08|2Uoe#oNUp82Rzg5w#qQh~096@VZve z339`(6D#I(DfuaGbPcBeRI=2ECTJ*Rk%-dGDV=)qYfHhzyb8wP;1uA~anR@sY9Sin zt6-dMQDEPgp1yu_#Mh$*?WhUmku?b552mMQ^F^=(E$C0=0X;l$P`F+E(BA_gNZBH= zD&oJjTVsn)-MtSFijS#cd_&J+dQ+ByB2pmYdIcEqyI%x3ovg-cwT)FSg53%sA@0+y zTma%ulIIpYnk$0Ra1e=IV})DB*bREh*m!$c@FPjshK$Od64>>31EFE8x>y z;oZM1=lpSdL4&QrFs_E=ZqZ*Wah6T~x2tn%l)I%#fZzOaa`DsLdx~3-IczXyHBdR5 zO6`-?{3$bA(0Zvb3=9syADmEqc}UeJpTZVolsurv2M!81PUdRID6?G9hM7>DZ9o9u zJej|K?H`>K_}d2a&;|we9sI~_?PA6YniC#6rbN9twcjky>~|5w&OGsQD_E%U!$(DP zIO6&4$=^yh zU~x*z`V`D#8x+{@2AhNhZVvVcvn|3Os3nzfo0y>B<^j3MIj%68dZR4oON^#4oU0%} z-ZCAzGD3x(8;)8&*ZJ7&M2+A*Ox-hdqN+e2?1OaxY;Jg^1<{IOZ* zTFj|4xAf~Z!AhGKoJ;8?v;qyyU;2TlTA~U(IQT6%zwDFT?v($XqXJ7F`M;rkU#EPH zO3ARs912*>GwIe6N~=x09>-h}h;76$x{vw1N8E9elKP#kSQ z0Ka!OUwZe1ND@*7@~{d6>W#Cr1zkJDYCeg%Iuz#`5WqL>SyV=r?eM7lm5ErW9mr9f-3vCZ{fGa+g<00;&$gs0IV-O}cGiG4X0-L2}w) zoNQ5G-&ju6Ic?@@L3uHuJhBD>{DJw2f2cq(XO;(y;1v!EHg z{2uLeneaJPNh+#99#&yMC3Ay5oyc4j%Hy(yvKzE#m2S{1orF3R2OAJ9es@XBM+_^N zlvH6nC_#X{t-d}yU#{k-{4CD96Gz8Y)T>kZh zvdmLPmDGJE7`NG?z3awBpjq$KO`wV+TwT!8@o zaC!cU1~qDhfF-KL`aC2T$Un|S-dmo}#-)!&>p&h_VPN|E%Zt<1_?0)aBIsWt9A^Ut z{5$^TCz675!DrnR0=zr)$JXh5Hl;~Oe=$a|0?b2urZX@EKcFCy)n-ZO1Oa^+Z;kl| zDbO-8%Q%uUr9=5_1%m1CQ@YN^vl$;q3z8P$7#ttw_?xToLY*IAh70Oj8_a_n6iokM zH94Uvcz<9b@OmDQ^K%>&-luD2^)0i^e2H^xIFD~(z~7`n$?4RaaF#g71oPkq1@^na zL3=^tp~84n=O)10`fED$y9n5V&Q_GYmD6DNE&aRY`I*|3Sl;as`?mmt#22o_)~gHZ zLDFIOj5_VKaKR)6dpF|IvXTKDCj63_VD_=a3=k|GUv2nkq7t^ygNqO+I*J#;UVt%)fd(+dKZ4CiGd?;M%qcoS zqk;+vo%{H)>Oe)JCKzvD5;X@3!CSc?T@J$%QXu7qjYjQQK_QjL&0bvKZ#oq07lL3x zh{_gU=i+&;p>{&uD|r+g9W0S?T}IRZ_XiOZsD+NE?q(Tx>0;sZJmapsrO6T*mx4xP zsgR-0ieK7VMrXyZZbfRZ2nn6{R`VYxe4DvoVpRv?anKl0-`79zrxPXZlfqEAkgZ_A z-=w+96MxJisgX@E4{lIkzqg`e&3vpSafk}Uxf%oN2b%h7e8>}1(xNJk3K-Hg4hkP> z1-c=Pc8;@pN0MQbh6x&~SR{1bS(RTfrXZZ_EEwOQ*8^7G;8xOX>rk9(Krr+}13se7 zd(0n_T(}OdVGwvP+XSADp5ag@?UQY>atvRze;Mgk`@VIlzt0|%{j|3Q81`oDMY zh#>LLgYMRhL%7lmlhi?C4p<#Lu)G>X))p(Nje0KVuRp+h{9Rep+g zLL9ar(y`D~Dqr!Zmoi~XQWgrSOU|-cMQaO^9H1CAl%Y#<07G!w2boXlTx(fxKRmzb z?1LM7%ZiQ+$;${cIhxpokFvq8Xm;gPIULi_rLbR7wc1b;Zb1OQLyyoBmZW2;NlOmZ2Mo#(V9|B(JJu4OJWX*m|exgwpZ14)6{VVrg%XB z5^q<)cM=TUE&QA})-<`fKFvB72%U@2$rh9-?zThNQnbXn5}!ZZ&5`nbw`TtEOvLGz zuLjwYHAM-vp+r7+Ab{VZs|!WBS4>v&ZHKXc7y;hf{A0SrP*E4UU@6z2z~06~XT$L@ z)liJGC&5cv9iTJK>2fq$L(>H>Y61<-8*C`;>8YyD{ZVyBN4o5f`=e!YZ_2-&-=qp0 zTE@m4!%UK{tOQ%G28Ofckn9pU=Fe}$5F-OCcG(KkzMaiG)hpU~AuLcdp2c0&?hub0 z3O$noLeDnjWxf3P{D`Y$!G`+v%rNQ+4Juhq75QB!Zqd*-<(F=g75-J0Uvmj<^aA2& zFbZr_exsXeg@z(Nj)ymLR+eHkGuzYLt%MIax#se z$TkqQp^K`44cRUJYT7TI0;TAVi@>R3giX~7tp~lD4O~)lSg8GyPFthnokfmOy#H({ z!FM2l-=@!PR&=;vDcYdGewQAyGuFax#Ym$MnDQMC3P0!TNCjNcnF&{zx_Zz+fP4p+ zmkO++$&PT+WOsQf>VV~cyhFE^n)^k}rKNk}j?qr{LDl2?ONFqaWf&pMs|~lH1|Z`0 zHlOHo`_5gVaO?b9+#dvl@Bm(LUp%67mjv|d=1{``c-!B(c{|?%uSg6Z+<3%)axkcT z5q_AREV+SjuQKPu&cCJABM)dBT#rWl^({&&EwtM~wZ;zEmC|>v; zQ#Qgup}OlIe?YU7hcpZJr2tKL+%7t|4-Q2Z)>Ly?Zies@IFMt9 zje!(i0+V5(#=vNC!Im+3Jiblmm7K^qREI~s_LlDqA!|`{r zeccpl34oeHb7#1?os{yXx!WOtH4dQfzLQzIxvfk96t?~;DKIT;WrW1iu{nuj8)Gd3 zSnC4n8pnWirny=2W;W19g<(Tm|Y*)iS%Z6QFL7yi9ufT-!~l*0pP3Iu&Y z`;3Kqo90}H0M=x(d&6WqQqxRk06>}q<8L@6g{@7!>LEZ|uMXw(W@E2XcmRLNx%R$1 z%Kdi@YiQ~dnw{|{B#9whJg($oC1qmW1$?m_J%Idahk{JMym#p2iO^q6B z$+@bERXd5%9s|6|5f4U_$?RT|c1?4HhX8GIMB1uqnj<(ofR{Nk=w}bU?~Rh0K{4xLlvu$LeR#rUMr#QP+YD63e?8E|D?^!WWS5z<{A@L0^JEROHGJ8`A0fL07^}eB- zEt2ixO=~@e0M-=yZ{&A;7s#m|2R#d zrp*&e0MsPSzBwsg#Jg$II0Ue!Dze`_m?h_;G_8sv4Di;ovOC(?v!Q2ait#?(rb=r> z7sF%~OVeT;b6~Ia@|f;Fkh!(7mn{NV>jpXV(%21Qt%S{B^T!iuWaA8G2(Z!gH~%=H zLuUpD3;D8Z+9eDWz>QxY9-I!3rO8eG>JSp!J3AW4!RN+UivZTV@*mPJcu~@tzVZzK zNb^qSZ`N+5c?i(f+DT6iPBpfc0YIAk`cOu{X?~^Pz?lmB;hGgThX>H~ejfD}kLV~} zkw#5>KVSfCN)~;YTzb~DWLW~Bu(p4CTUG%rtThaPP33L0O#e`LqG{zFVSqPn8uR@l znt5!o4qUWp1PBtrH8dCzx5-+$h8O^wu7Qy};N`#LWEVx#u7M;$#57**PvjlyD<*CE zrj6GG1sPK_+uvv#y>L_0nmJGa4|ynWe7DL&76ZH~`i~~EZfe?A zt@0fLSW}5+)k)Jz)BpsMCxS$ZHANZ#kR~VaH-oH0+B7Ew3gCNOTp!ain?pL#T*Ejm+j-p*xXwo=uJDo9s;z<&uPP} zX@2JL0Gc-reUXfcG=1Y(LJHlNE$U{1xYpCv{4Y%&?Ya_By{iWfUfZosnj$t z2MTO8#rX*hyb5m9vS$E5nv{Psc`1lZQ=Y>EXlk;j>$iy=0$7uwp7w^x{*$I@ZwY`} zTPs?eB6C#JTKB0%0Bd}DP{}r2Q=f8p08M*>zQ|hHP1_S-0BpQ^Kv#9k+PtY(Edfw# zExps}V1JRV8e8ia09$LRYF*P>Ljcq!)>5vvYMfXU9zatA94wFQS_t8QrZqsI0B)>3 zOm0eOYAuHc&?FXpagesbnkE()0Gq@*T+*&_;ew`F%Mt)JzUAS=+oNGm)`Cra8z_KV zR}lRBq&eEy6^;S0>2a_gfpd>E9pV%qNSHUnv)jp1j;3!01CU6{f+GDIBN+gs@$j=T z-3^$`oHq3^7yz5h_QPp+bbW(j~ApJuBRnmWJ$fHZdgd035P#n{wNO90dq3iDMq z*4eaB1Pb8B;$BwTnp$iLfSOv27FUU!)wCAl@BkVY&=+Q{<9hW%pa5<<-F=#doK>gQ zIGfsP+Ub@gh?t^*JNe?CL(`%G2Ee8#e8yux-F`1=JvHqKM;PEur{pCq<)PzB<@w`H zJ0%_h^oKoO;6pc1-aevpF==T0E*0>>4;+=G3-?shg)^+*PAAmb!5X_&d{}WawcOyopW0~0C+&^)HQ#jKtW6F#YZ#e~jQ5>Zv`@_-zjXllZzk`WoYS7Ti>Xpo)pr&&5` zjsI=Ea6m)(hF9jTwKQQt2Zl^f)8=l2SQng}l5_3l@o_~h_oBxYC%&EI@stjIs$^|y z-{teMvfJSlTV)}fM>-&(<~@CnE>%9E&ib2)ZAOQ_uT=0v$P97a|1S;7axsJFcv$c; z{OxuIq~$#}o7;mlJ9S)vEqK`SAmbDCDeYV>zi!rU z)<`szedYIbNjJaBd65Q{AKgMjp=Hr^L@4=6{-AeU)s~qxEBTBKb)R<+Xo2mU%)2=s zCin`u+;m*46%~+B^9g%U&1h|rD52}WYaA3}zB@q6c&gqRXSGDKL48F1Nn*&nB)B!I zKTu8hCR804s_&x;qQNt&MfffTUv0z=^C^Tgui-ejV)i^XKHdpoU_9m%YXm%I* zu)=ra59uK0$x=>LHR#3{V(frWqWO3GI%TCo(jmeM=iOSRdSr1-ul!3Fm zrU##A)h`gyAL#CRI@pU!tZZQv25S^&y?8SUNqmkHe34p~y+7WVWpzrh?3(u(SFFLO zaV6K}bzQ7qOywHb(Ds$=+*h(4O0(?Zn+Cn#h~zeh+N>Xa4+U89_7Pnad?&eI_}2N2 zOb%u=5FWrw<_mhgJ)hF5S6Q$XwidWUSq%cfcllmhRpUW##v2dK9|Er!)$su1EC0#k zpmfpybgw6`22!Mj4=Y8O1pZb3%(sV+9(wt>dQvnGJVXi!BosgJ57V#&c~3kP>ne`& z^C+oX0N1JWF$Z@`X}GSs07LzfH~0}9!Y{9*S7dr0T1MBhpb=73m=JrmeToVs6fg8o zm*eN1yZm2K4iuBKHmHqHL;?Ek{@I{&_e@SED_$NP%tBpw0I&1u)tzVy2@RdkCrS07 zXdW7jRj2_%@q<*+h*RyF_Olcn%6iop3gwIZcz@ox%m0XkQ7qPUVSN-m2lSnozCS*e z2c&Cqv$ZZ$Ff6FtbSiX?;LIEZ*c)+GpZ1KEzN1LQas}uL-TUJ=pbIE;_gs8MUp+3n zns-a?Sb>8Ud>j8*=>NC#Z2=11D@h!4wjFMV1n!T+>3Z_9jY(1O-Yhx|+qDnL<^`X>T~D zT_r+Cl|cf-iG?pb6q1x=(XTY2n^u*Id6yWGD>^0w>8%h1znf9*QVp`*{)*AJ7?X*{ zTnG#2KBIGbGSzjR>!G!h*@n4INQzB#R4jsf*&r&Z>9!=rctuRfyc=N=(~si-=Da%| zsPP-9MIKfxDoJUX2?Yt5@=+T2Hk-1~8)DPjTot|X6jpDES5O#|?&#ROA*=vH=;agg zgz+4o?2~yzu^uA@mA&EVFhFEVHsFp~xgm0eV!lYF?$D5aKMiz;`tgM_p;#S}l8TX! z@G#*<8jw0cqs;q?$=8%qG{D0lpLyV}&kZ60Hsyf`4->KsNIiiCz1@=6^`r*AAbdN|~>tU%S~+5G!q zB{vOiD*k~E1G4!0dOL3VZ>ltU_-gs|eXvpa_*Ia_{-3MYx%W3E@8O8OX#DYuptNiH z@%aPRs+tgNh|}nRd=0t>vdpKLD@#$usyODuh^(RXXldTWFgDJFn`$T}5-{bHG!pK) z;%@NoHp`J8al5V??oJ#QPDirrGd-u8x$WkcwH|6jGKoWW+Yha%Nk8UK?&Iy(2tK z5cT1}9;-b_kG^Z@^epBv7s9)-zXp8#gJ=t?22Mg{T99NS#NOt)r%@%Zi%<+$Co_GZ z0891xxWA;0q2oozE@qu~?!T(~%k*uksz)=Fi&XZ#mw+AAq{$vCEX`FcZ7G22tVmYs zeo+YOW{0299ILlEu15Zkrb^FZR%cL24IcX2f^~L9Nv(0+jT%=FgKhK{93Kx)=#Wqv zEa}|o&4+zEz&{!FvYi9EGz>U6D|}NBfF+!d!h?6s2imqzW{I+?>L^E`+y;S$`sYIZ z{;LJewN`_ASEw2UE6pftz@86>d&)A(-Qh`;U6|7oekS@={fI5Q`0od|sYzvRGx#xJ|Xx2+B zVpYT1dpt9x$cH6ddJqZYz5B0*3)+aD+&Qb6YYw2I2>}dkeiK1^r2}+j7pPP{Lqng2 zw!MC^E-oXgQGCxxg##0c)KWB0)72C_>1qBJwUl1aAYw(qgdhzeW`eW>UTCVuwF9M2 zld+Jcc2Wp%m|eZDY9|Firf7)}yU?G%=-eC95{cySW5pU84r=ic1K>**++P$HIxE&j zC2Wt$@P!$_Huz+w&$#7aJmjr}BE6fs1q|5zE=R1Q6OH9g(61CVcmc6GgYL@~I1nZH)-MhSRS`^ZDdPpr*4dc7Sg2O%@&@w zOA`kw@M)HL18Git2Ic(zY0~y>Yrg@3k37}y^4DFt^r&5WdsMD5m@Lzw^|l%g1r59* z``zQwq$ej3+Pxt`f&%KMewPY{Na%KTljVRO>?iu~z83tp_FGa>;mcc_QXo=M;p?w9 zr9dPogwjlL`-2c@TN(@~=Z_|1dAw9xz5#)cny=sGuM4H2UCk$O(Assito<>IkK#tQ z!uukEK_}$gIh{2lOGewAYe`TDb<~_@bGlNZZT;a;&_Mg9-=)iEGLd%eo4|rfh{=L> zGj1p*4h4;n9!v8kiN}Q6riUd#A(X-;m7a~1LIVOnc!|GGD#Nzv?NDWnq&i$jBdQN& zJdz4=9gV0)j8Z$R5?iOXs1qZFtP*LhAZo?SzNT98_nC@ft9G%f3baD1=ap6K6sfDN zUQC9A4YjBo3h@YO@-k}{woMaDf{L@4eKr~_zjGbh;x*?FA`u^3&l{~@YlMV9t~p%S5>z|jd`vy@O#G+I0$S1~v!g}7uY?c*X8E_+k>>p?Y2dg_W{ zE>Dn=2|UCm_>F)2iSE4Lkl#EGO55J1#ZSX@x0s@-=YuCvvM{Jzp`C8Sv);(gnV05( z6eFr&SfvsWa@%;6?r}MrCJTfVl>>qcC9ral!jx8P5y#3z?%DW?Y|vH&EQs7deBBTB z;>L8$TQSZKj__Lsh3qvv?#}5eWedfYSWptt;~t%(24pTdd_k9GOvZO!|D~GAEt0Jz zB@&X?Vc&hXOaeB=&1=PwF)$*UDHEdJwRGcTZ}Huf_OoQ`Q`*KeK|<1(x&3kViq0R| zNKOR{B0i_?k6+Nq&VzEy+UC>@3fUbv|2tabNy9{P{kf)=bhVX8JP(76ci~feSn5Vx z2o^+k5f?iBXiS&VBv(@^n#=%*$OKv@^o$k<*;37iS}u5lOAdP$dx$gUofvVD+xKuPPav*VH{FwUi0b zi-Y03!&{qp3#^Ej;$UtL>l_zBfZpbx_s4TH51hWA6oaXP9&;eD#ZNq$&^1a#mnXO= zCgcS^PypW>O!{;#%%XFzI$E9-&Lq^dARWT`sKA5Rwilc94@p!cgr?z86ml$xTunqC z&;e9Q?$Y#FR!BKwonT?fQ9E@Xe@e&$B?ctKnLc?G6j zf;KKL$n2iKoTrG4ZCNP>%RaW46I?%SD$IGYEIb>#X{Z`RJ0?|VZfdZcWTc0?0lOa_o--J3PhwUp-}uVetcG) z(6zR+*B!c3hmZOag+#GnxX8*($W&m<=f&{OmVz_>w>Cf6sC(UWEpl40>yx5gv_ifr z81=6kH!2c>MZYatWO{ew#l0aN{b-vJ1^b2@x35+f*8cq}Yt0#jv|`endXt_2ar&l= z%~WCQ7b|V0llKZPJ$hqS20hqU&WrbGsIy?$=JR4C1dHA;dMrOuRjH5rVv7p1&xl`FQuNJ>H6 zgCTrX1}Q~au@T8ac%x@;@#U@GBB~_=oL8am>Vh+#`J$WH>0T}~I@)1FZ->t!71S*+ zLye6%PX$&XKbYs21G;|9*u#GbOB5TNoqw5>S(1>Uej^HVM6D_#&aEDyt?r~1y&$osw(=}`XSEJ2i*qSY${QE)ti15f zdbw0`q3rr-loDp^FAZdE%SSU07X{1nRd|t#ky2vKyFiL4;%C(Hh0JO%a7W`2`y4ZdAgl zJEz3D>QRZ>I6Ej5-CNq--o$5S@_SZfb;Tx17uQL+{8D`5u~0?cvH|XMqo{C6fIe^4 z3CCn;!^bvEL00eMI#~yW;=9#&dDgj4{}F!uy`n1RfHv=V1gMuh)r{;4v|^UTgqCQ_ z0e{Q$52-0Ae>Uw5hBNv{pcPpKp-mye2Zw^h9)CX^)AS3i^BYzB{Fl&C%qs)EZ4VTXF9mY<@Zo`=D;C?9>4pS_>n4Hd(4KjR zUh50m=S`zUrxST1mg45XfU$AmYf}nT$bKB2pPNx1n)#;ILI1R%t{A=uv_!oKhY{CL zs)cE*fAjd68A`Ti@W=@h#o`8Fj5a=`Oo-mV1CN)ZQLUGl8v?z<_>@f8)%{ z-73Cw#I-`>rmdox8B>f}{6&O?>^8TsNbm5;qrAWCJn%{VGF2{fjq@ae)BMUNyVg;}nIeZMGGvS?YGWt{!Z+d& zEc~>h$u@d52xUbdFy<7MJs8p-#6ej4pvLEq`N8=={lh=d3K^=KUsI(#?o4JU|M2BM zP$}kv68<4Z71d)l47h4TO(xHW)nECZBlB0ghHdbXZP z(?u~Dl(0&+NItAc)8^q1R1dLFQX@8#HUbYDK1r;9H2G;r$EKI8pRNP z49u)4E5I0PR#CIW8Dm~l`Ax~HW>uhM7DQOc{yLVmiFS?~6zj=iW@bdK2u!kdgY$$v z+mpI1k?nCyQ(I9wTxLy)4@0(S3d(de_aEJU@|7qciq0Sc8%cbyBna$^ue%2a@-!*M zf_ngR5krH}6+CD3yR=%3?z9#WQgr>nC}=q#t?o;4HFU{ zP$y)vob^i?Ze1TF=yMDx90<870~{I#ydP4IbHPDf{1tt?Kq}+`0fzX^5QN2PkcUt9 z&u%?Y^lSsDpdE7|{dowHNF$}>FoI&0OdzhdAqc>jUxlD&z5XfR!1J0eV;a)xgz>(q z7LvgyMT;gN6Km=fV9wu#u;F2||B+YkMOA0~K38J8f+S3gssIU#-@Nh5Lb2St zF4imUi}hgK-`A0%hv7>3&VT-fyjT>5xlx;lZo(UN9`=4Jo%Fj-n<(W%`r6R;c{*m@ z#_ie3@{Hy?q)#-R5J#~oRYpQ`&r6!CCwZlW)VrfdgQ8xr3e05hp=7Du=&xA4;$yR^33UOh^erhJzzvQ|tE62MY35KN9Wp8oKpH?uS@vHU4g3Jj1h(66)_jRunw@BhA$_dNpKE#mT$_JYa(*oYiKz~1rfA86qR9SbD# zqGD}mw?|5+}VHf;;YgoW=#@%h^^-Q$CwGp>r#@|P112Q^g~Qh z&xGX8U+1(&rdOpCeR?{Q-*#@@6v0VG7bfat0R}&?f16_y=j^U6brKf5pI)22>LwE zi$CGnxSm@(kH=uB`e;(~gC=iFx{A3SAI)Ofl4vOZIt#=dpr;dBBuRBZ$&i0Lztxj5 zh2u|QUP%ddeU>qN#Z)p%F$$RhYm7330#V#y(We=JPJZao`rTr3DW*CyUfG~j1@?TH zh38ciCFdvx(=%4tmRJFHe4K@SRGm#`uS=GEzp=a{HDJrfq6vE>*Dt?8wvVU_z(D6<5-2F0G`-3R_;!Yf97xZ4nx<<-cbI z;E>K$7?hGU&OE)1RXnwFu<%!zg+K6KoN7>)vHx{rwiSe6)!yi*vtH-nUmo4&J-##p zGf!ry{$GU^jIi}h0S2Y3UWq$yMJ>fa^9CZd1P*FjUX9%=sxZZNn1YJIcsg%*rYi<$ zJ?qhHxq4U8J49d;4ScX92wV|gV{1j6a}{g%z{qs~gxq_0^wGCXU4@WBgfKww;(;G|XQND|uqNVxU!L~d4$^_zf}?-8KhJTvQ}j?KBrw7Y^ANfj2BD7xYT zWYucXP~SS64|!Gfo#8k=4?&aHY+$P;K;XaU_;+vL5l;KV`EPy~GKMn+(KIv=3PBq+c)e8u`io&rY zp2#&og2HtdkEcC4r|iyhv6zhWV<$EBa4wZ0gQhvaYBuRp-AMx{)L5F$hDm=?u{zrx zY!xszx7DyA{%IP@tV^i|2XwB@lvZKMCZS?`OUf%-VQ+*8A~5G>8k{onz#LyMGL+&_ zsuWbTBhX>M)ij(L{t)7dy$LC#C~nCR{wNLeN4j{JmuZ{+zc4^C9+kq121o@MawQG> zkUGvnUonK6GK%^J4B6{xkS8`L3*}9f0^ zo1B{}Xn_s`K1kEsZhgxguh_(vqKdgK=EI1;O+)tmnFD;Te(CrD#V}e5Et*qSf?>Z( z8PVg#@kYf+Y>GV3EUyEjew`BB6$Ezs?jw62fhe#4s%RP|FQ}qbMIo5=`AV~>sK1h} z5yf0bN<7~vD|5a{eo4LX)5c8-GBD}y(>Qsb9?u8E5a zFH}4XGM8Y?WAnI3Z^bedgcc$W1&JLz^wb<(zM+_S7-TMbnJSUcz z{#k2C;g~eVD2s=b1RWAF41WB+H=;9DL^f{kM+bw-g~^=mS)`LeX^*{7P>ifnP#cd3 z5p#JD`H>k;5yBGEZdu68MpC8u5}>hj3sm?G%35~@q{rD?0EAw8mizC-G? znC*;)Nk-i{T`3|Qt{9Y$td|@pT%3~2c}SW4Cg_U#0%1*>;)4MJzw5uHyOmybJGT*K9n|&P2!d-X(_ol=C^HJ4# zV*asf0tH;Lw!k4Qzkq|*C7~tfO%=oSwK8GWbjLmOY;6CK8j5ySK_jrDc+hMd?P8&( z9Nmf~+@+}qh8)^?OMoD7dHVdsY#6muX4$SuO`14@mC13Cx=3d>&CTIM&-U+$m}pW2 zVXX>2F$w$&(}_71>dALcz7%-HY7!UJ!XpgW+Yvi!x+_|uHGI)#oID$L`u96quJz`*4>bt`B!*MlYL!qtCX-H^3HTNp}kQH*&tD*N769$ z7=SNM=k!{h)3!1CuP|LxDun4V2>6euue-be%J}DX-(6>JItWxwWHD5XZA3KduGMr{ zadG;(KRTkLNk_fp_DV$y!-aKv5eM{b_rwD}qB=e4R+FWzaj}3$d5s@=y=>><@OYAs zt}9Bt4Q?b-5+wHQ4^&(xv*F@(E~9A6WHOQlsSEbGTtd;H%p@!Y=w17JJW&w8*A?Y4 z6Np)m*_xR>!L*OF%^qVH*d&JpfxqXzK6p**lFte%iq}a&Mc|pP_bYm7T_!Je2qRB(ytWyvk#P{eIY86sFJ{C;HKC*}j0;m`1H#$6}dX?Q@@%8!5 zvxplQ5qUb}UI*ViAuLu@t1}A2VVx@?5b#%LBd%3Pd=H}=o=RVFiVcu4#A+3(5ZyN2 zL)+D)ML{xJiaN*!H$o{15?AIG?a1cWQC+@QECmI_DwTkcyGF;+nx!sw_UpiX66vKl zp*B#QWDyF{o8fVHlyXs5ad1fhCAulMDE)#??H|1XX~~83^YvZ}`*d|yAUk&bovIUCeDEKq>np7U8f zqmJ7{Cp#yKX0;1$`3Wl3po4tQdh_R-(C{c|Tyloc4-_3Kp?Pas)8lA>1chJB=_)(f zmr}G}lAfVu0C{nKW@qpo(#|iDu!{Bz!djbSP=@DiUmL+25b!&&fWOT~88n6287*Sq zVUXFHo9$>F`%mL&*uYjofWZI6g5Am9W~XpPFR}7b@`?jA1uoL97l0+#MNqcnAV0ia zv7}I7$`&{nkkE|#~&(=1mC;@A(32Q?Biic`69UxO} z&h2#@xlaNYx*tg0Q#xp3P%OQQ6K@5oATHssK-TI0a)w}P?1J^{^n$=SmV{#VhAasJ zu;e$wmEPn+35!kox3#nADkaz^>lhJ2l(X2f_3M~=9oQvHQ1EGN$ND8GaG@*n?>R}d ze*P^8z!Lc;$F08FRVi53`fv;J~t{4Ue zL5M^+NL|8%cbBttW4xxjRf>y4LE<_jXl9Pqs#G*%wwUyjC9ax*f|6Fsgy;o`KAkk* z@>vpM4&Ybjb6PY^gQ1Ii)x19&wp!lB44XP77^JrNF}uS1&b~acQ`6awH39|j3k|L90(Zu?GM>}bW`6)7~rq+oH(u37}AZKkNG6L(YjqXYnLhiJT?m3lFS0~Qt2sV=-TJYhj)+dWlWo}($l z*2q}IqoA=x8q5BI56Go|L^;sBs%>B>L?G}#m@kiLc?E9(_ET~Ldc*M-LQOL=5KvYz ze71|x7nMgte<#v^LW@OYMWR^o5`|AiEe}f9q9+dyZ$CYJ_GJI@1NlnQOyz_~rFt8l_8p}jnLM7e6p)dpt0*U{GyKd1*K`g0W4)a z4ocfz>EJaTebIO)fe$Wq91JQ~{A2cq!|WO=&HP0>rxHM6IC62qC*QYJ7IU8?34U z*M$?l;W=}lqAv0jz9`TxL`haF zD3&rAhLbGNpmjrN9ni&Wn4O8EsVEXPdNC22pGr-NC!b|@ch;Mq(sC1uv&dMAz2|k> z1u|^-t+3&UE&=G%dcH1Ad{QNCt`*?Vhm;U^X|_NZ^yl*jZfXoVR|eL7A*{0(+rYNF zqpIg_ixXxk_NdpGRnLb#zgb}q6^!|JV_NV+tCQq{Da9EPDvP87Z2BL;-WetSB5&RFdWOf!5hmP%RclmGOHpPk;6W(UGlmv~7{LFCC zIi!E2yA*>$F05DZ9MIoe(3C!}tUZ)xCMgDl5YoZ}2Ivp*0F8Q2W^_g3gk~>0ckREz zQHm+yB1J=@)0f_cc+*;E5*6Uh5AP@H+qVDWCfQi-f-v0M_}lGR?z3m&Z9@;+Eg(I zevS`LH2Apk}5EL=K|BByGWq+?5 z;?&1kGm7e74#iZKWQgy?`I4tt#S2NX*DVg8>X93JpVN4Qxuai z!q&^0i>^gVZba5%AuFmzPR_@ZMRjK~kzLkxt40Baw8%=2cn_+G?7CUW5+NqutHn63 z`(E`>NQ#VP7c@Pp#!C^&byGCLLe_VSIOjd-jjMq@O-AS{`lT!DgqRCqQCexLe>u&f zyKZR>RES=V&9v_s5zz)cl4419NXUueaDJmDZCUR+trWZf5+XqJf5NJ&l2U^@0z-sib)X^gOlVW@W&&v`x1(c~!UxHPGE zh#_CkF|;VjwbD^qov$nDp^yx94jDv?l}>mj`KTu=^d@yqDWWkK!l89bAr7X)aq8VB zt=p0)m=Fx5kOdd7lZ&#NytImPh6pi{c{n#`_sy)Ek{$}lP@j@{KMV&aw7WST&1+Jh zmLlkokh{8=(S7DrFkVzM8sM=Qh>f@ zen0BtIRsOLFp~Cbif!LkUVbv>-|+FZG{qT2w$G`eBHvaRHlm|5d-r7p-fS z1=Yp3fQA7#i~+O?mS&7P_a=1F)tLH4Y5P(05@vD73GOa|A$>WPE{JN1$0|{Wgxs!> zqf;gW1vFx zridp*?+uUTVGWwDx=PrPAudw%ki(1EuA8Ek2r=Pa^And{*-lwt>p4R0$FqiTCA* zYkpEON&C;g`Ptw6jQzv* zsg=^8^gfjMQW%~KqZ#AUeKnd_v9(z!7N}6>oMNovXG{s{(S?knuFz%wESeGsy(_Wa zJ~ha*O&z+7S(Nj#8viYFxC9FJJbCX0wlQqo$EiNITDh3TJ#)u@{%_%gs=_ z`XhCoM?qs38noJ;cCpd(A}YGtH&Y2P=pZh4PpN}ORi;pB7Z;C$2I6v;7iQ$g=C+GV z1cMGzpNlWWCYh>em->MP6_nQ%l|;MpngF2}Vl|u4q2puOjA$Dxu%N>23C=EeX~}fj zN!QioX=Vcn3aHE7ftB}$$;Qlfb$LvK(nS}Sdwg<~$k3XmTwViM4(Jy^Pa~jNGFpH$ z25giRn$4v>0)wZO?CrKIDG>}h$Wsqylb@<_`c`e1rvfWgDZkX(sRR~OkaJz*Qlxjg zoC^{ZP)B}Co365#WxG1kqoDDw%T>wSL~$LF3m7*y2m&rrnqJIj^Y7D}(A%X!U_k{Q z@~{86>DkUh9#zyx8xd=0#O(*fgAO#!oz+gmqYw|&AKBz!yZXamz(!eceV+}K1(2YC zTHJk~<*0VGcua#5YVrJV@piSi<$#X2_@kw1CnB10zHRpwPk_+lUM{~O-OmU7Y8tl~ zSIl1^DG`czm-yf1FmbzgNd!xExRX0L%!U=)=|nK-Aa6geULI1WRc zbi?X~S|~9MN~o3T&a>Xx!L;g&*tDya0}Cqf7>>e^Gk3c;BS=s{eMzG>`Qc9O>PwG; z2J-RKil!guLps4hIICU$ieS(|T#7}rU0gg08t=JUAZ>AJW;XMZ&lHeRTOQE8YI40q zyV}xnKu5_qu>0)iG#(=op>>@8O#@Rv#3UpI`OcDo%2d~bXD%4}&nW57l#@ax!25M=M=cBvqF zP{Z4df2G3;L~6Htn}Gxc9z!X5{uJ^vv8#M>^Dflfug#UpYp2P~`ErC*}xt*7RI zP`m66&zvmq2BY@iVQT>9tn zWPF#_zwwY^FfQ(dDef zLYJh14FV1WZZ2mdK8uYGBBqPkY0iMwu@*|ZVkx8mS@~Kt)IS!1V)eXtqe+HXaJ31R z4?AuMJ7~OM?$+`)t_D_H5R;+(QJr?~0>ug50+zcVGGLVl4(R6FQl+n{2v>U`CYL=B zJ@F-l%c87OZ*&f7cm_cphkx;YTTfCqnw`@5ghuc&%Azb+<*Oy&ak4hO_KJw;${Rz zQaq3Xup>MykOH^+F&*0YY6y|=464D z;sBVlO_>?wU}LGSdP)bD@kwQ+ z9JaZ-Dpi3+9~8WHP%=f|QpanuuG;i?*pR+o`GBu#Mn|KNSCYzmGw;_#0CuFcBUL}I zUax$;ZKifC>%gkNO;X4_oi|x^K#y4hwvZO56AsX2@sOdCGrt^VN(E$hT#Kc2-0bsSXV3QK4kN`}oC$0t1qSqY%>x-(vCAkS8w9A^FRJm24xJKyXE_|D^9+jlNfX>y zor0in9cN*8`n^T}w2O}-t0)F)5zcP(@ShSWR4=`xV;MU?(0{soEu;`rtd}sMO|%jY z_}k(8m$P&dL*ciQfCWL}=F6)0d{!NIexQG8jUg{qqJ22&X7+E-uk``4@u{Uk_%fbn zVLHC&bRylSnCSu`Q*<~;ZR0_fN|($irbrPy(}@?(e1NA|#7u40xKeR422hz`%0&!! z5aM`9_l48a9g!0i)3XRK6g>n=wK1?B+$$; z!zSm|-Ea0wZyv?V&*K(nqhI+CHEbC1Ve!F|1&R{~Jge3MfFb{Z4+1-D;;+d>aA#3H z;zIo6OniU;AbKut1uAAZJgulN(e)wQL7$fZYY_0Mlu2Wn-hM!~y7AqWFM3aHpX_qXtoV)QA%ly*S}=6n_i z1#{SU!X(86Z2&ei$!Ni>PXi@3%XIk7yGK~1n9~kCrB#s>jQSuzVx#_rH@FCU6vMg! zrL@PYz?7O~V;`2f_irNEVl9~UNr+bLp+7x(*lwsM;FMkpN-*hHfsvX-bz;G+|MLcF z12!wD!8G&2nD^*xaof|N4coL|dt96;P`)r?ny;PWFB1uv@;-Yhe(v7ky;5^mF-wq= zie^N3n2>pcPJtdSUQ^3wGNRo=qJVA68;Jx=`7n)xsd7sGP>jB&tfD`J0L;id^00a} zqzj-*hHT0si9}`!Yg%{!E(sntv`R30G^iPOL*79~7VBLG9p>ytBT{9M>b9(PU^ z%kPjj=hzYWFvGl`*bE}@s3Tnlb$dZadmJqn)qI~e9tn>qu3m&C4klbus{w01N9fX% zj}J0?lQn}|rTgKp)^4hm9qhwLyD48ko8~)@5vw!ddrdA zO{W;Wkcfh+r9zT>fRQI2k>ZdSu#3nlrcNcMAREY#=KK{&)5NaXPnC1*^vKRCqJ)d)N<+2_$`-!CwEtjBkKBkY>I=%rktY# zvwkDZx;N=-EYo$aR$I103dSWqqY(ckKC9D#S^Uz7;^rT>$u4q}uDub#3Q3sqVMda4 zcG&z}2W=whR!G4(ZVW}yibE9Kq-&{0yn>qw5-{fCPs8ak4HDB(VzLfQF_4I`MiL(k z2>4z9?d!h`r#x;f@_=IVJOEO|(;&2s=Snh)2~z|YGGLWN_Gw**h|3xxh6RzUWC~5G z(Eauu|5wtVQ_SV~pmtS2_~`#4CM0)%nv5%6sM7fh{gK5?F|X|b)_)n!DJ}ow!u0h& z;c(ag`~Usl-~7jW-L8#ow=3MKSQrA1JI&Q&5Us0Sd$n=LoWxGemo6R1E;s%uwr~Ps zVpaq~?;;+hey41(C?=Z`HkL6Q(0B0!jmLI}18N5fe<^0n0f;363_9Lx{L`3@Jg1c+ zL%GnQrPm}7de>laaLC|<_1bH0UZqqL7C{>P9R@iMJT`3-MBvgQA=OLUNBENJ}KvSLcr$CpA11fP1$$ zJnnaR&yj%s{(PtjX!Es4fcgtMJU4mSetkYMHPbMFd@Jonwum=%M1lJS-I$i#=-a|V z!vONF-dJ8**up|00QZaDygwX@RB2(MVF0cE2YkH!V(Vg8(w@lmQTbJS&DJ^^W;-J44|sj#-85k#^bWcYFbPd@LNtU zR7NQhYE*;0y{sTNPOINxe1m(<+%PP|VOZ zH^<7r9$)h~yR#}lvF;Ey>MpN!*2eb~V@*TNl&3=B zE3lz|)$5Pv%URVuUeeV}@@1!(1%sb$XqoLQ0fz1+=$_EXY|akrK%UmHKot8unkyIOcHZ`!@Sat{P1yvJu`u+z=R$>ql^ie-uYP z{NA-u5Ou9$k{gL!=YU)QcKA0NJ7GpAnAy%k;)W(~Hg;s$4FV4Xd|fh}_b0d^BYvx{ zRhPt2C{o+h=DXp%P^1)NV(@mUNO>mId@kcLxR4Gah1btz2^`|r5mg?ppjSDadY9h? zqu8H<7*nr~b`r=8o}!`sq0pu?#9q}IpqP+5*MO7{E2u$l6Pq%h@VTmwXlrfGw=_NM zdT;>;jZY&DilfWKZsc@Mn@@%C;X1DiGNr5lTYRNDf0LDJ4u`(a?)=Cb%kBvr;=WRq zzrTS>wJZQT{2O$B%H3;`{A;~I9S=HN$awQnRmm4ugY2ERz$^|bzU^h_66_)d5huk4 zmsJH=aG@G9vYEj!<+~u=pz17DURFAWL!X97Y)N0x(j&SAN<>&Q{%(U8ntT94>2jjf z?Mbl)Z=^gaoftEr=lhb2Noi7Ot-fSHLhT}A$5*-uCn{#UkZbaI85%VF8=b%H9w%p& zs0KN0O<&eAL}>Z;%F9`AT56Lk7Q`W1r3OTdh2}POh-qe*7J1r{58+159G4AlUtkFe z8oN#-j6et#&Cp}662YKzp|>0ixs^;uR0svlu%ioVBNA}{-wp6-|Lhix)(Qztjw?%m z2B94Hr3r;H($&F2dH%A`akNJ`OKVrtpwt5duf)MYfs& z;1b_}fcI%|#P?OaOzu%^n+6^R8Ske4Y%-U_Zf)IUNf5XUH_;ga13T6wa;@f7UUF81 zgVeT=O6p_HG;ggAv5F#Ry;mYK>xeK5BEF&Bu;+-@*lhu1$Cou}G2Z870#u}X@xtvEa^li?zm z)f{bQJj}}+(LS}Wzv}e<@cTj4rzvoeuM}zS!kac?#ww`Lm4F*lajaD3=yzXlEG~gn zP}x{qNTn_=U*6hWTs$j_%a^w{7Z=Zh%AU&?M_=ALtzH$PqiAv!vYEh@wF;41N2@N4 zzW%BZsdi=O$g>cm9eD5SuL{v=tx^}44b}rko|VPr55M1BTs#XZTh3#JL{apF3OUVz zz`rc`rUxTxO+{abvgqReZ)h;GUsv{=$>rKTZrXeObU5sf2a6F)Uzq=u$H=KPc zxUK+QrCac(V%F;%-Ndsu+~ag4C{Ib$L{~A^Sdh(`h;2c&5ZSd=leq344URfAk=%dI z3uMRXu^)P z+d}6@IX;=EQMGlN})?WyYy%MFK>x#plMN+^R#6lCLvwu`|jzFn<_b=LvHytV(X@MPU?&oTz^AxGUw226h z*8~n)?;X)1o9ELBZ6a)%(bBhc00DmS=%-t>q2+8kqqVF8|Bs4B3x&1$D~14liP79M zDZmw*YB{urM;PGW;Rmv9SBe$%0&D<4?$RMmwCue%ql3`xAHpMwl7Mj5a{mc`_&4xX zd_$XZX7k0%s(L=?$%;`i@9rVSPyUlYB5vFM=OHcUXg)dSgG((3gG%rqYfzMAo@(zw zkAu=BZxD^6CMO0c-jF`DjE-eN2$y6E$%N*ff7<*$>y1xjXF}0> z_J~5{ED&nJi_;l}5;1G>=ctP#%0R5ASQqX& zQZJ=KH9YZ2pDLMf4 zQjQ0~OF@vet=f7$h229ZUoo>fV@aQEog*l%y(f6zv%3xuqYM* z1NfGOy8}@LT`_Cw0`qDAk^}sE;R(T3v{6Gyut~AMZsY$!m#Yttdk8j20jSpqTx zSmz4*N*dfI%NYp3&fe;k9HMPwFEfDMvaz8JM59Tv#avUvr8y29;4cABtMq7_yvQAz zhDFYIAPBe|GNk+{?;mPY5-lY|kCSZO4$TyxU1E+Va=B}p#AF7r&KdO8@BWu?bsLK< zB|%S5)8m!fpe-duPewiYZfS)!6rf#cvUF4M>JpCt!A^yOg60)hjA2C>&URcc#^Dh3qsHl6@41|2zqY9( zVxpOM$P-84pmoz}@hYMf)w^Q7R-rf-pwPYG9?xdHly6ANym7@L=DoHZyX}6$LQFgg z_Fqjj3aO+SSIoq9P($!RcYWIGp1<+i)ew>gHPjH%hRV1)Z&z|7 z7<4{ysYWM-_fLCt)XwpWJg+!7qL5Q+(Xinf2ciw4Jds@27FF!&brfF+3dBfpG_ogS z%sX5r2a9F8qfD`_w?7FKCmX(qu#lx{Y(&k(*HltRb2@jmJ3BcN)tD;70%1l|3&4Wf z{KbaV0x(yjNU<74aYJ#7fc0u~xgV*$C!t2bTD8~1A2%B}2Igw??Pk+00z&O=SL#H3 z6ypu)ptCKzJ`z->O<|_lKVPnC8cL{WW@-b)6|f=|k-1(_@nL)MJLAviulFh7T>Mwdz#j5{_F#4lgyL+e0;bLm zaV`W^uyiu!s|DX!+v9OuI^0U6y=Ki#KtMA?BEB>p5cK%`5BHgdQus7OA+5MnC!%H2 z1v;#teweqSf0~vuRjb5@PjxL1N;J~qpDejo^_KR8Ov@!0)TkxypLKth9IH4JF9Kzv zRs&#YQ~l+&$8iWB8c zKqmqOsMHCkuLg856#pT}sxBl24rGr3oswtznz~|S_L#aXOFp4hXsGHLi|{fj4`P=f zHXZh#C$DeCCTfHhIt~Si3;o&aDIN9B{}u62w0&$)OOGf(U$noUJ)ifI>*O@)V1NCD%%cP`nWozo`~?dGXD6M}JL=i)IyZQ8Qse^|DiaKx@-_ zi~BqnCH$$GyUX=r8kF{&5*hN4PQ1^hG+8f~5;$mGa#~Nm+kbp`|EY+PrZ&iBK!U<9 z6#iVyhMF>45D75oAboz=e_Rx5mp(BKO4}|*KMcot+Gt*ud3-zy8YsJTgd1-onaBku z?aFRoWhx_@HOcPyXsO~^P`T**bwsTh84t}XEq9jXfPTTz`&3j!_SL-lbGX5P{Q=nY zDxw4PdEl5XdO2FsmSkD@H6slLtr8a6A4+XHK$C}COX8ZD##-@&3w7kb6Fy^hHXF+m zZ`$RIz=FzE7f1eus&O~QFH%u6te8hG0YVS8-C1>ZHc57rx2x?yg2I-I5q(da8$?Vr z^KyAi90+{G!0cU1GGV(IfCL4^fU2GJ^1OC2a3JuJvv|||rgBzbK?OOBf7xixN`TOV z*Vt!CW!=te4g|jUnyrH9tl4;=v0Zs|)fus%f|k{CF&t5sXFQiVDX&V;O_K>q<5-m7sugk zOFaID`@7J(EVZ(m+BE4FvkPkS<~E_%U(DoYH%*GImNQ7i?ut+wQcr)pl$%5}ql2pj zL9N%M<)fnHZAO!+wVGKvZbVb0Wa`_aQEx0Sy4r-MrPjr>KTb2yCNwP-ntMqe%JQsc zjmddgXl1S)3~9^I#&eLRB9>`tp3pJca!0@>JZq_Snxo0fq;;|hO-qGlnwoUcsVtnE zNKFHUV(Qr`@0{CsYFcWoCY`tR1~d(|PIEp@k4V}?YFcWYCQV4ZfgEJ1(7c+|2e0zt zsp;9BS0gwqRAs(p$0u*j_4BQRLUG&0^N7yFRrC(OJ|wnMcmqYeZgq#>>txWh-?RH#$WRoSPtmOL&u{f-JLX+Yth@~ zA&-Iv%7hs~ocB%95PoV`CIk*z=tc973%Zp)9R$3nVC9b15>URrb~FtZN7T1r@Z(#=U9tD^XDUMU}qgfR6f|?yQ~mWFc%<|2j~C zznQl_@#DAtyDo-f`R>r{z|X68g1~N+w(-Pu#^X7kb|t~1py7Q#$$C63eQ!bFqoj=| ziFewSG=l*fd4D|lacCOh8_4^C1r?w7C$r=Vu6F$q+CNMj(9u`mm#H5HiPO1VUqRrY zg}#FMk*1@LlI~l(zCuic(oI()roC}B>KsiLbVE_sd=N>b*)M2Ihy}$j+5#Htc)Qz2 z_$KUJTC)mewRGT?br+NA8_^A1=)Nz!ZO2BewCor>R&4ND9cRggKFT-^{mA}wyE1Mt zV53b_D&g(gG$29YJ?Fi&bZgdm=hb&ywvi91bxFPR^4MRyR%S{>Trl!%f3F$;Yd7+o zA)$#BG7l^^(YpZ&3aGc}dm7#_Ep}0jw5zvb8kEqFvcGZHKnS(#M@2B`z-RN`i)yhE zpMeAgyjM8qRht`w5;$lfefY=CjX}jUD514NzinoG$brB|i-NvhPP621*P0G2sCa*w zi_G(>p?3M%-dt{JP(pk-D!s)bIf1BMd;$w9Xs7Zo8|txn6f|zQTAH_7QYV2nZ1m~0 zs*_~zkABTi+?2?fQ1$*B(m)>#B+JdBE&bo~-6`Ec+cjgnT@f9{CgB)l92kEg$q>IBKhm2I=p-JYs%ZPhgiO^TA-5Ml zOgjRyLt+#eGe#8jEE9rPpJY*AHw7IMayMerXz<>D6j4;{^7a8sJ{4d{zaIxV>piEc1|>&`D@I9tz>;`^ zhP=qT?ocP8yKdeE6M|cVqqEL{hMn?DdlY?b4s5fIpa6c6e?J*7bGBj_R$O@cgs()x5BDG6&ownE zRihbznVd@|+U$NTcWJhj6F|saM(p_CZhrl+CS#Q17U3Y}Q;<6b=8X9+_1WptTKWEK zn}RtN!dr;rnEw#jMbRQeV3A!c2?E=AhDO5ZR1i5at?2R~xR3w~B0e9|7EyY~4>p%E z1Q2p>rN<~Wzutohz)>3TAv3gNmQLrF3l9}_0|$1_i79};&A-$CMbh3ne=vist4>7rKbj9O5&i z(|km}QS|JE5Z5~b1}T%}=ckjG)U!?&L^sXyfdcpr+d%&6KkwSRv_%{gBRL`t0tAU) z4u&siDYpPC+M4Nm+(H1oGMM!F(x%S6N&f*IOn9(N?*h@h-W2J3wxO&w)qeE(Can*DlOMb0E!-NlE0W$?OkD$sXT>^P7eVEQ)@e0POfM3F_=PqAe?5eyz9F+}q+r^|*0eJ^VT?{s zwr!51;g}A5>1Hoqb>%^^npZR1eLjZ|J6xufcD$z7wn!^=rajLBLx#3{g9z;`@`^T> zjp{kl1`K8Q>J-YhHu+P#9oJVfRnZ0CnygComSRu&}cNLcqcb;gM6sy&NF3P*tH=c># z8S0!+BcGrl|AEauHW1&L+@s@R>68GzE?q=l{m!bw77scW1XUkfm#uf{Gi^EO!;D@Ma(Nap82g{Vkf z(`-1KpA6+N&$_7_VIeExdiIl{vQAKcyF7o|uMMbmLc%bB~$IT4CCGR0^1 z1nc1}ixwTjmMcyh5u5lbs5R`K<)+F`!>H519EI z9=Ej(dD)Lr3_K<(84hYT6==Np$E3H=JQW;7k|}2mkL3=S=41x}`CX12k5I^#o+4?J znWn%2`sY=;Gg)zje@bOU0KQ7bGFt!{0pM@U(px%0YcQfdIvsx1uSQ*3LN@JE_0zBT zGGsb0mqtoN3T=VN^&J$7*Tv(suG9W5`v;1q zo519%5g5u>MG(vnid0whO9Uj>^;oFN_=a0SgzozBjlfX8a7?G6(z(w3U!kU09bkjn z=tYziO}#&PUP3Fhp(N-bO@*y*wWTCzmXoWr+E{HVK=1KLU;m7*SRGY8+K1kwWoN?Y ziuM)|*6Rfx#4g}T5)>kucbel$5#j*86T$gU*_KdD$s&BJU}2Ei=8trI*phCDqFd>t zvlPn=LU6AW(;#ytJjZ|W#K2fCiBh!k10&IjkPy5a9_GKY-F%AGCxK9qGeC%$w6f7Q zVlrlmcHe5Lu=49>^dQ|pP799C%=K}VthN- zkIhnLS_qlJ6$=v)+9rrZL1G&ZxqpR+6l-7*TxwV?|MJ+wQ|@27T}LK`CVx5mOG1W+ z80|ugx-#QA_hLkxG{v+e6=)FprJYO=^cG2OW?HI%S2u;oH6-t5;7t&WEY3^`Nva|a%@7`L~fP~;)5FE{xg+`cSge@SF zSOy~GcEhtYRJ@=o97PV%Wc9kpfd{FbAVqh}E}O3`3*nP!IUIy;ga`R*=Mi0zOUJg; zCJGTXO*g47Y6-R=yqGL#9C0$EOL@tJjR_~%g0S1pjQzOrRO~u2POuP;DgaiL?d)|b z084|+dnbJ}-Jjl4a_{ARn<@O z?a++r0I>5SG0k?M$uc>^U9m$jGBq$#a=yO1Ia#jk-g7qFs89<&HC@rpNK6+f#Nd+C znV2g&Wv*8Avl9tWK;Ln6x>>NARb#)I!|vfw^nVk6;1m^RG;<;i17vt-aY`!;PA4PTOKNU=;6P!U{6|A;w9$qZ9RHMb{}j_1k^2P({4LAp!RhA- zUD4u_bU?snzw?o=JjN+K)6DOI5tDhX`?{qzFhJ%M=u1NJ4LwqrGG@(RBTFef$dvOfWY4cf4uA#G!)}sC5-@s z&Ne+ZrEPm05&l=iMA02Xa70D0N+NVZz_8%n)VL|wF(gg9<%m4;&x(<$D3a}SXX44KO23=>ElxK~9DXevG49U^ya@SU9 zhU93P{}HLz3e6Cpw@!Yd6=|5z5o}F+o&#H#2n^`khR&<-?SzrwYhDDBAAz9ou2IMi z7SiNu$reWdy-gQ{Y@qcD3XJ_ZeIbX^6m}*#+8_Yj=1+WT4PCbSyt*Yzw&D$i;3f(2 z0jwI4#%)z_3nHOl?%^q(zM->6PH0E4$SsQTR3L;<%tMSW;K{SW?}dn>M}?q5ggF_U z4mjTkoH>AdH%*V84~}njPtSUC^J`l-#XN{zLR@Jt`Rk;&r5G+kXyGY`g2Y8UG(YYA zPIyaEJ0PqSU=Z*j2B*DSx8(NN)-kZCqQvjN7I9cdf>0%iFaNNySTG6_JMbl?!6ZMehKBH2ob7aY=-3B{^U{A*MlSi?%XPf9&vo(z@rYz_nq}M@Y%2p6VspX9hL(As z$WD`@!{8hdlG;*$b}2C)^@yD`N!p}@2SH%l8Ze&I!H~4vPBwZJn$H-WODg95(q=3XfZO9%jOl~)X2rIjrYdEGt$YeFC|xj0h1R8_A7z3D z1qT879rJVAA9q&tYTFy=u~C*AT?L2ognMLPD*bl$q&wXZoYW{cUd&j*FdQvbY3R!S1Cu`rB}-b;pI zUWoQot-|?_>%5n0@GvB*rOlJ>)T4qCiX(+Wij@2$(J&w?XT|`Ys_)LH$zEnv3l?>J zNjzX79F;C3?DB~@O*PY3oJF`g@);dwMDJ^32EPtQFRE^~{Y%m1S#5$KLq5%jHsNhf z%r_UToe^_9457XZ($Dz8J;`H(qUKlZcMYUcPKdz}{~`pj;*|fa56l!0ZP=u0B{>G8 zQLCkBNR0@LN;4>DN^2CiACo0nYiH1m4l{m{Z(~zT(5L-k-md8fZFXoO3q^+aZ&q}^ zz(h_%DMoA%-nun~!SXA3jP5Vw6~D)HMx1N|E4FumA*Es<5fYMn zkt8{mN33PORm=?okw((@3@Eu#P*ygV_6UJY|>uWHzBU7~TAymk&)FswT^%SV+eu(?64!kTptXLWS_9 zD9-8oLo>Kq6Hi7#Vmp$^22T{TPY9kC2g8C$TolafDZ7GZjiL~Mkc*4L@zNG^dJ%7` zD8xue#<`Q~ZF}DHW^-qXg>;-d{WBZQoe34fv73iuinB?Hjnz0Y5|WpZ-KY|i8z0h)es_2|S2>fU25}a1H2UHdLH-0hFlqOI(QiPUdh< zbE7n{V{c!Y$SrqmJDC|2vQb9K$3@y_6w880RB09c*}f+6I7meq#<$8glwkr7Vo`?i zKYEMeRch@sOwNUPRA*BAgtq3^WSRDLW`-?D+cw(9r86v~{g~l!epW3`>GrJH&uzyH zJq$9DbFIu9h#^}aVIl3u4`Ed4G?BJLc_|a3v0L*d^%`!qFvvvjKUcqsI;u9Ot?e0RotPAMD_el#X<+R80~f zsk52xA%Ouk61D??i#DrUT~*y(nA%Xw^fb)QKj25{|6ccqcq76+BC8`Kb0jkn)0LUe z>mK_azRj{Z6hhR-s39$$`Q{-?&|EIr`~`QB1)vJ!CO%AgD}4Fv z7qt9@&RSW~O;pM8GbK~jO@W?(bK<{xQQ{g5@vE~fmFYV^6J8{*f?W-0Cc9165h#Mw zjdyA9wFd4%fWOSQ^9h^V?`JRw0Ppi(_B6%Oc)VZilhY(iGJt2;BaN&Cj*l^S@Ex)r48Hr0wTizXpUgUrK7X0_nOhv^h{Nx{{q7DFNWmwD0Q`D}N_ zw;9i==;V1jkyc8U9hO*;s=%zf!Yp%Avaq0JI_Q7}76`F8ev?DpN*a&NN_<3IPUeD^ zd2SO|=Y3Lx^ z#Xh%Krb|g9pb(8>jSkSIBUojb(k0fwgH#l2RD?~{wv{fi=5P>-e4=Im-2*8*R9$=m z4^mOK-q8l*ezSETLheRL_&c>KrDRmJDb+Iz5>d%P=ZFmFD{8c=&6{0Hj+hC_E8lEa z%Ok!rMr5vnwvYMHv=agX)T{m{IrUZ0Jj2);zOPzYZN_N1!zJrjVt z&y%EPQSlKqTgOk+^~D8E<-jlwgg+x>PLMBG=~*x!A$TX4Ln8zHhX}rcVle=ed*DIp zUU+jp`tBlitsp4`gc1ux$Xzo_cBV&kTf4jfr(iFn`_yXix-^H$uxBE?s@XH2=H7GS ze8S|AhpOy(Z)P}*rcQ)h!5D4El_oO0dk|R=3=qNvZJY+-2nfAf?p3?!c`TcV1tXmq zC69u}ZTHfImg1VT6ooql^<+jQu%L1WDt0v^4fF_^g2{=TOn^ZLA?8oI} zao?F@*KyN&spNqAlET4eo;V{(9@JiUY7{$@skwH{{vg7yq_9l|6C^b622EU%D&z|4 zK}U%FBRNll5>g*M%eYmS`T`3oZwG&<*Gy-I(|rftlsJVH%(LblOR>=k*k->pnP=Y^sojQL43o2J_x;UajPlQ*&2|Mn~xI|zI z$jB%38&3rZdR;yNDWmZGWFrsItX422C?F?BRe4;x)aAqo2Ax+-Sjw(X!O=CkJ#Y6F z07})`DP_3RBbwj(WcqA6|Eyw*6&Nm-GeF4Q!>h-m?QHzvYI!n~x4aZpqEIu9_pBK`; zF#QM)eQGVcK({8&XIp9jh>Tq@ou(i;-yImb@2F3VFi`P z&il=bc6_O8p^A!vOyV8`2ALa>NpGDfD$_C=^2Qjd_3b;jrYA1ZimH{I1TC!PYn~G? zsA;BFOV)Z}Nf4lt*_ttZKAx_V4Zua!aK?{7gU}lgqE_hN+Y7gUbCHy!1q0LIh!mGV zA?pjc@CJ+aQ^08^M174xFZ5eu2q5HqzK)-6KOL>tI$yUaR&?-sKRg)n)QPYufaO=G zU(#vTo5{ztc7L^z9rJ>PqCh3;nhSBCey#Yan)t3wzkvp!hcL}Q`f#o+tCK=XpBASdfPBtur_R0e=Ip@C2p| zkb;&TK2G>y!qMBG%sJNDFJ>OS{psXmt^INe@(Lx$v!l^?B?G4*$(s*d$N+(0zv`*- z2%duJ-3<23rxs@|Eg=+HsKQ!CC~N7b&ej?RxXxNy?AX;>Mu6(VmVS~azgL8dGdXluL1l!Z(yG6XF-GUf9eXNeV#*-n)%t?BM+kDk zJf+GI9s`?Sb99-33rgh#97;78x+`^pRz>JC0+v!)N#QV=p3Xr88mt}x!tv#VF?jo|Z-_ zsd1?GpQaA4VM|<+SE25%dF8pwJ`xq8@BUF z_k3&_;9fK3-8{{51=EG9sB{pJT_~tAwTe)PM$=pzmPJHd3cjw=dU00o%siW=i8hOMO~w`?w1n z@NFn_4?G?-Y#+)@0MmxD>3+x1_UXYO6jc}L71X#yw{b@;72bp)!k~TJfdY$d*z$Nm z91QKlmI+|mur;0f7}`D*#JGShC3l3)rg-CHiAt6)$&5bO|K3WV5u;nmaqbh{n$B_>oZPnUeiz3eO%EDi}Y zC7gxBh&RJ$_C0TaaJ*nHGk~)CfeY#T;R`Fx0WVYwCKv-Ft7?!Cycu5RhOv+;m_Z6( zD=7nmNED#vf&>1_98w@7v`c_$E~H;tv@f~US}-O6_cpZ~=r$pq&X{hFem$9dLHpoG zr_(R=jTt40Ge+6qi+@q@yaiv{9lXv85qsS&P;gjqZ?T>6g-#z*nD3@`u3sn@Y`}8} z>vaYPt=sO!k3W23<%CelG?9hJLV*Ppc=S0%HOA!n@x10`_*?i!d2)Ke3$(b1PC}_YJen2Zqr|RbQI$t7KPRATzD9ep{9S4IB z!i)|j8}2E7dI&R*g2sIpuv|czh)EJ#!Q#$LqEuN0$yi7?;+KE)ICjLqmor zY0sunp@7gsc+s^WDoNFam*s$t96`VKlVTkRe8dN>KcaR|A1M|jt+1!P;W~usVjLtW zP?>JZB=frtrJ{N;Df~PN8V~3=oZXB%$YbiVP{KX>^=31Y3m*$MU22Fe3A1DfzplUe zbhM<_s2sui?DC`8G$tzzHpK7iufCY6zDmJbQ_aXK8!%*(!2bPczL#mUufVos2>(#q zO7mKdG+?uhvr&gVa^|WGAC7mL4SR~ zAR6^MpKd6i`2KEvblGwLrX_kX@^20pIhoEWHk+&*_itq?2s4wE76m(>;Vq)Juau@W zV9c9In63A;ubfXliU-&VZsyXUY+fIGIt)ld!(K}@bOo+3qqopd8ZhQP?ZgSK522&^ z+=5SG%kO$hGfD!c{Dn4!8~NtaUplIWj)FAD2g{z)zxHHNUI~W1oimJ*SF*>qV2_bT zWz!6s13rv+OMl5P(Oiz>kyRDdB#9$Jt1-nwjl?kf)|iAGbXflA}e(=nZy#hb9=60R>( zlmtxqFFJboJv#T`>2|u|dWp8tC(CyKt*3Zukb-GRLgx2H8jHiJuY{b4z?>f^A$3Lx zXfn2w6lvT0pZW@=R0bv`Wic%i4<>y%I!~?Yt1Qkd6&seeo?nzu;QNF+*= zk~XynT3*X4%7ebz)Ts(0@4p^Q=zNjP*=Dt*^BLqw<^T60(z{TDfiLq~2N5U*^Q>xm z#UKEDbvfG}(Ji!s`Tphp@Moqr#PQ#v&gqm%BAj;<($YX`D|lo+#Lx2Z#;%ED>J3v{L6m z7TB*63KM{PnaA5iB(_g@1_9u0`fEd{er=A1Lt2$P913{BwkQ9+2@L-iXjvVaHtA8v z(6TyoCRmR;h6bHGk*9nEsuC*5S{|SS&f%bR&%Ze2#y%AiN~>Vt)*})v0HOB4ziQNW zw7N(qih`MV56S2O3B~*V`2lBS}RSf|utae1Z0t!_#N2c^3{hAExUa-!$T zse*}lPe{^;<3THK-OQG{0PfPdu{7w!bu>Mp8zYocUFv8LgqrYbwNX-?yfQTCh}1`` zrIk>pG+}X268V^Ri1(b2JrR1sGrB~iPtPn4N^v`2Mr&ZF{k8)lBou{j&y(cQDb_3w zN^#vh@3X~WU{HzkmM@UwN~KHQ@<6BwpL8zn(%zWI?Ty$cU+DMclLx}5xV%U!kuK$h ztV4uOQiXKV5j990N6S9boq^>-Z8<$vMMM{GEG?_E(n+q9j-f#(4z;9I=#sKUoe`&j z^-6agyLe-1@J8zBs;Qd})1VXQR9}tsl~X+sYH>YC(*Qm9t^yHyaVVzMV3$yowP5U5 zz7p)xZVtqpUuhNC#V=U{UiU3gy`#Ng5tsi~wqltCKO+7_j&*n76AAnq-UeDAEBm|! zOT_%g$^k|}A>^OYZnvTSz20Y7UwcPDs0Dv`5KRna*85{nPza@{?NSSk`cl-vpc2|} z^uP?537z^joX0^almKRF%ja@`X?;!sE!A-&a>Ai{9nhe2%_qv~w?d*|DYO4nre^|y z9^wT9973Z$UOWy;!4GxgWxXE+0zJgK8*vkE)W-&B(22Z|Q(GOp2$LZpxAP#IaG^f8 z8x-u16_))e5DE$*CftacaHBpZK!Z*gb@Ah9LaBb#CGemX`DFW7LaBpKj+W7}eV)E_ z91S{ADxeOJ5b2Q47?o4l_f>DrXmrvm-1LQ;8FLd(6l^E+U(2G=vfxD&?>r9ITU}yQ zhz6a|Dx#q=;Yod~h)IsW|EoWRTHX%636c6*-oY|{sDp(%_(3G_qjalJOX!ep<6{$| z7`J^H5l|g+x}(99D8{$4nc5+why;EV-`n9*o$k{izAX$YQG8JMNCZ`f_+S(iLTj75 zj=i?FBOug5YY4-T!l(MykjFtO3OVY436%~Z$0#U-mWo>aSl?2K&aw~vU)~2mHxQrE zb>hN}`u=ZBgf}5QXDZ0=+G#s$RYLCGYR}ql29=(tCISX z#Gs%M!k-34d-8xuDW66}d*U-G$CpPe)yF{GW(fH@(`2a6*Q&)3S|)DPQ-oA~%LKGE zv~-nTA6jvZ9{g~loIUvg8vF?T1A4NPo7n672bKkmkTY~8ULRI*9sUwsz9E9AVyz_+ zg1OtHKYaN4mybXC-KSp&Zo%nCE4MC}{u>w|-{fB(|MAJ!Uw!@SuYdQIU>BS&6|*A> z=(m{u*%cTs?h z&ny8{Yo~6LwzV^EiCUt*pQSC4zlV*S5_s>2>Y=ww2@U|Ju`)S$x22Wldl0#xF-Q4s z=(aZh*W@im$8G<3_jcLY%HvcgSLbGzltPafEHo zvGwgLj=%ufgbK|pF4WmYEknf-K;=-GOrOoh(_!{z;C7*+NlJ zU5_X;VZjkJsqI6{fdZErykAxh*0(D)?DrsY*=Bx`#_6VSDTU z+_D5{%XJ8FO^V&J8^YR_X}|)&>e;%vvpNHQ$5C?G~C<8y@3)y|@wEuH7Oq z;B&i$A8_qBOp;i;c8lad;Z3JtPsF4RIA>F8A0=mgl&s1NNspy6KxlG1nqO%WYuAp} zB&cwYo}ZaU{BkrOZs~vkkwx3}=u;MyxCEf5<8#?=ZC3&~0GM2A+n?mbaJy0)1Vx>m zcIp=q)et~+{!i87i`M=#08HmU{nXKaL(o)xrfus`oiYJb=f4ir*8Vd9Ojoj;ZdQ9b zpFmxZ*1BW~81T82rFb+CWQEYKlno4!d9;Im(s^oFyX(3wzo8<^6)(c^?Ea-YuHrl zv)%B0Oo7cV1=HXZ9c3cQ_0}oaF*JF))#;%<*)meHE`e&unKEeGHB~SG*1D9YO>Ldh zVmn<9e$I>aMWnUP!4?5qxzypKzcU3|yHY2DfX(4B+mgky1Jy1Z8~{x2XHaY;999MHp3&btkc5&qq;IggsW4Cbw2T;sz;|9cx#|=1+=Ch^j zF0_jy^EqtfQkLs-J@?bDlm!7)PWk4y4ISGmtMYa!KZ0oXf{!`v%61U2xprX5XRG;s zp$uKPy#Tes7x zOu{W~HQ!5Ow~>jt8QF-5i_te~8D~2i?e`#ZK3j~QPHBckR59)H83>?qX=r|%ZDdYp zR~mW*xZKiTOcy7U;n-XxBTR1B(ia%;IStSy2;IWhd@qPkbt%>|#?1F1a*eQfdNMm% z3Gdt0UJd}J@%!mgZO~|IC4Ubh*9S|Q{S!8}s}IcQF)tZAZpSm9gU9Kff9N*S3j(N| zK6&Wrh&G}oLr`TyDCTpFO9~c5c%aKX;9FppqlFCPl2w52d!gcCkl~RhBSTlcFIG$b zr-;mwCF(h$2nQ)1eu||wbXk_Xj;?G>%`k*lPRs%!=VOVoWfFe1u>=-GxXL#6&;p^Y zY7dmGmdyp7LqWpF5Z!W1J-a;}`rAtkMYsm3XCqav*CqxlWpI%4$(uT|qaEG)CVZ+* z-X4~dp(_yjld-Uz%%V>j3xkYL(&T65*ln75z=8<3p3Pg-KU0^`mkmRw5|#u3pP*+n zr}b>YjdT(DwW%z^K`Qb^SI+gmFbM)a|MR`yYF|uk{&y%yM8Wk9O#$&e9z6w@$3ZIc zCh6tXdn0;$J_*mZruQRUsV$Ykf*;&{FsbmHl^PW-*@2NOlMM)X@54M(>eu=J7DRjj zN$u3dSYJC>TR?hPR))h&L`WAI150G6K|k+J#={`vV}?$|PgH7S1}up9nAuXREXnn? zLFQqQ@y#WE!cEXbs(E!nA)E7AfDLfoI{T$3zdY1g0k2yjiD&nDELH=VP1 z+_c?z98IMF0yg(R*ZOv`c0ES(Ie6Sh<{#wp&~|-f`@JCY@Rlf9TN2Ipf|vwlOQQK6 zM3a(N+u8Hs$!PLyrtY|Hx2j?-I8ZRz(mk1zH+m&YS?2e>K1G6xX~39g)G?=3@o`dX zH-c)tuoTcu?Gos63bWm~RD=)nm?rHdi+x+htN9)l^C%MC4nuJ&f}-6hk^>0lp6*@m z#IyjxOqU_Iv{SA>=CPl(`AHhuZp;$|Sjy#15=HIG8xccX=JF3od%Ink>k+V%(-QwE zeQ%eR?DrtvGsIIG=AbKw=!pGfMP^wK0aDYV^B746b(@2`yZ`RIE5J2TsgIl_Bc`~H&6uObiF7OyGMl~ax z$RiEF%QRJ=x2&6RNRxoj0|A+z<_VcIO1m(GRLvdvb@Oyp~?LQHm0AI(V7GmQzy7Jys;}S z>jbq57*xGntUWbeFUBnb@DQ&CwyVGG z_aM4Z?YJ_Pn90gi^INBtsUW~sQ;zhq-jm5#H43^dM|RwjmPJ(Ca>OCPb*W*~b+sqi z>=-Fo=ZV(ojL31W@L{3B6=4x`U2f~Pij)FEuOg+Nw56?caBQdZKkb6F_Ft|dHU9Hh zifpE|wABKT3QP_*Kgo%|mgS-&q*OUDQ$r17GA3M&lG=RQGF*XxwLV;B2fZR(4y}01#KEJmkx{lLlMM zQp+H zCQSAA%a&ovpMz(u+$NJEZLPEfP)+{7paC$sQKMx#wE!?Vo$kgo{;)n(t(bP{G%zHY z+aO)ZV1Uf+LtZe`rG03>2a!{&-{=|_SnX1)M}W)efL0?XLviiW0SKV7|NF&g+humh zelLiLmF-&GdofHx5kV`;yn)S%}P+QpJbfXlH&Kk^;x9cn8O1U0j- zs$Jag)vhWN_sMFpmN8|%hn-yZosZPKdb_gEd=4I4$Ul4_!m^!(_IpkIMMvTKj6lOmGyf?B2s^F4?r{`i+JEnzp$2PVyDZ%6ydjDq%=SpY6lTTuXq@7>sL_(4pa z)3Bs`vY0(rD|G+9hoLJ_qiW`Fpk94HtAOp=y#8 z%>GMm#DT!8{01FhA)=um(Fibq58yQiOfE4hXz6IExV;GAsUDcG02>A@zQM9o-wk&g zJwsM7qAY9<6u_^oXXB^yDV>tGke#%GRSE7>n=T>@*w-VrY^9Z?3=7ooaF#MG=gsjV zb<|mIFxqndu@B2F2lQJuTz0F~oDP_qNr8fCocQx7d;$+bcjGrtr^}TZqAfUmJtibt z4hgyY@yn|8-umh3em9%bscF<6oTTTvlmw?kShWl<5u>@w z$&lkz71y<5F%M$5;Tg{g^MP9;jTg*U;d|khhe75(UgIaT#hOcTxl5#=&I2Qn@<7Pl z#j7lr3BiID{2(M^4hN}+c##?i8}FLTY$X{WmpT*@l0GoabJ~+lbHY-vHZTP+k)sjq z)%@9XnDpIh!jL#?t#=E`h zoRvf%AXX872_zJMNJ~hp;>l)8dtSFscdPY~u3Dv)+*7@h{_}#u3^=LX0EZQKycOS! zo{ffd<+;fFC3z&T>v5^le0DtUQOV<=bldy17^Ol5E0O*8GAKdI>d;LvvV+t~$Izg2 z!`nl`9F*?j7h3VT;-kRTU~NgYmQQej2d#%e>tc7d zS`LqCXk#q*j(l95vDShK%?F9*ex{aY)R!ZWG)O4Ep%rPL>6&(V$&6gkyYn2GP@Jfz zLiauYzI%fz;Q4exM-0TpMAjmdK1)2;#Tv>h52gpxH^N!6Elph4%B_jH@iK9saa^Wo}XPzia} zJ{XSXvyp5=)#p`#gyK!_mmRx~2mT9Ix%sbU4wd8JA&!uKVwL(h0u8=|()E0{{NVlJ zbV8$>D&NMQ%0LP1oG_4QTYL5u2nT5L|unRJAt zsGfHpyTlQrpg`#_`dKFRqV(4&5ynb_7u-n_fmQE?L8V^s&wY7eS*E;kg_oB7qhx*UqvH2zK9cuWUyr)6H}( z%ZrjMkVb$Yu^g@e#7FGK@NTBjg`HR(87DnldbJ<2#5WL~3F zhthNF3+5&HI~(5s0C|lc@${2E(5N7Z3Mv=?U*V_ep2>ouSzzUU$?NO$i8=0+28QJF z!IF}OzO{i6Ltt+}(`cE3@4oNW&YB#>!uc(Noq9~a- zFQ{YO$HpTG0{@=)nJ$rUEFeX zOk0iUq^FtQ;9XFBJA#Rv3=K*T@r;h(Tg*oDoLWIn%Bd+L6mPh9=`d8iu(TkaGC~dn z{!PJ`&F+F0U!y?iIv{rFB(7C1yy{{nrooqc&YIKFVv$V<1^FlAkibFfy4TvPn-2?G zR#_3|fQ~Su)&swLObd5Jsa6+eF%3$$;0Ns!pfNr<;8f6v%eev+G#t+v3@3xu9ckwz*=mu5F=-P(-sX8RrmT|N5JCgeZ>^$INQ8@ zwHTtrD_D3Q*~(ah0QWj`DFSK4PECXs^vz?iXMp?~Jx!?vt0yC>{XQnH_Zw9nwI8-*i(4ce=gCKt69tiqMJ zu%`7schqT@#nfE8eMS=k`ois!k_QZzQ!_-^|4z_b(~#0+=p@Y*$0E!>xqQykvy^Uz z4E=}xn=viR*+5<>7ff?`id2?NXx{U0Q#*Wk%sZ#$P(?{un-Ag$2({oLKjiV5bojL1 zL&=2ZyTU`SIi#W6*+O<;3Z}9>Oa`uy1{xNGbQQfu^OwWjg{mIv(^ZZP{hxTF&0G5o zom51JR@nSBoKKgh>Xg&3s+0Et0aznb9A&e9Q=9`r?M>l3e5Q&@HkO`r@>pP@{B~A3 z6WagSi?#zp{SBech3N2@TDz)>FIcYPIcb8Asn88&_KY^OZTN1*=W^n!zRZq^(0kq6 zM?KT+bVyyp;W0HuM4?%*JjP?Bn+gimxBTn;51*Bi?a=>F9knSJ+QDP<4xcxbR#5dG zD=1X&^6#cD-q7j`YDJ9XAy*}%2_VQI4m@au^3omv=fgM2w)N#@jtu=!W6+!`AK%t& zKz)soMZndWvzyX~ds58T`<($p{pDmqM?r^N zP52uGfRwe@8(#9YnYtA=wEkbM87WxO28t`ivq(tN7yzCtp^||}_pK5l5b)I4*sk`Q z@zhMJ^R^AWGpnev;TTRQLxdhxg5fCz%S)eq-KUC1Sc{zRP@X17D*cax;h|H$jx-#+-x!d4cVeuBY2=k215u1wPK@hu%HM7MM_B|yt;#zc|`trI$xcO$SKGi00^}}gV1ff zXCCRf)q*Jle4pwt3^Mod+HUo9O8Zoj*}8&E2!v3Ic@Xn~XCI!aWiYjY7ibWA0F&&a z{btVV7)4AKR0V)!`~nezH@CF%Z@i;bH_z59wV115=EZ&Ogaio+*WEkQgkLb1pW#~$ z=r`OOPpOn_zcMw0cc6s-?S8tK5m8Xsm1$>r7sXCA0J1QcMeZO^8(T{b=5qa;Y|r#3xC7_hHy&*(m;qvZOif)#-FOGow) zfXQh7jTVThRUQT5k&rD#q0U2&)mjd+ z6h)-@RKOVnwzr&qd|xE(O3Mug^jioQ`Zeh#m9zmeK?4*t?kbJd@i)Scl1imnhG|fW zy`grQEXC@*F{qpdFL)5H)N2@2PJ@md?8^^>g2o*eD>Pv8beQ&5N}4Zeq(m_2yybLw zqQUHSr}F{qwh%d$Q!ujaNO4xlQK9@sq)b!gbYJplK1@2C1!H3kx{?XiHzQSQfz#;( zS$7M@dmCgG6uJ-H>oZ;)H{}CJ$Ub#wbxDgVjZ{s9;ytIxw_hV_MQ$iqCziIEC~Duj_=f6F(CXZn6=LMrGU_TwjSW@=$eUF*Se0-ef+(fnvc>*eJ1Yzf_dYfJN(1N!Z){guji+C98b zGob}*FWvXCLSSW7?E4~FR;xG`RIWQ))+4(8S}4?ol;wc_2I%H?LB3Uk>N$=Xp;S`S zrEy|!ER2~@y$99ZnVExpI#b>1lJY+z7~`PzP-)Sh$&s@qwOg|sh){%gn-Q&|%mrti zcLE2k`_4P+AP&!|Hl^v36FDJXGRBkoCV5apzM`kS<*UGg3c`cbzxn>#IN}<#E(IMdTqO$oJ}@I=Vxks zp`^ECKeglt1NO~`O&TIcmc&CI&m<_^+R|0Q)7{aBpMLe*;U|wj6A~pOB=&RbfkHv! zPOS0O7r*}Su}~=~ksDMj3_91H&Un76Xt$*jmIL}5pi}#4H>Jfp%Oy=wR2-D!IB}5C z%${OG^}bZ43|Vn-O|zooLG6Zn^JKGHs76gmDV7GI1A%`#;-`n^mz4c^3Cn`YU8h3j z8x_g4qq?FlOLbxzl#nLq*<^Y$+Rt}fcdz!cAyCqm&*~{ARBs0VPQIPU4FM&kLRQO= zpnz0Iex1?z+Q%0hjv~{R)Sg+Lh}Wo=97)h4B4;a#M}zxS8+Jq0Koy<3w4vVj%RQG|8n_My@)QM7%~d zKIFKc9AMQ94{C3^usj=Whm-wiP7@3?6g^u%`<0L^8HY~8GXsS#YRt3UO5M0tGSZQe zGMpS;w!Q1=VW|bu-|U1IOipMW{3^*-b?Hw5;mti4NA%d{1=19;Q_|l{gG}I{75T)aM8H=ZsX63z1?J#o zAyu&U9wh5aGZxaf@PX^a3cZpd(n%;i(IFbTj$J`G85bkO?S)l${NZ4*Ei z2+6nDCpVPks!ARvOZKRibgpCf8jz5Ez_Qcjeqqx0>|{2kQd9?*dQ zr0fs>{>vWNOi9@vJ?VqZ6tHg~yubSB^Uo!`q_|81++tGt$4@@~Tm(xU-C#iXY2~X= zKI|ps zQfE0+z_yn266s`NaeK=>26SWjY)r#4XDiw0DCpJd?hK`SkAlEM&PuZ_J)qrQD>_ev zF2T_AOeHID1I3q;87fpC2vu_u*-~9=UsCHF67^7M-i|a+7SoX&cPbgrZI-h-9iqf#8oqI^h0HGD9C0h7H zTEkP?wz^h>8{N{90z*448{8{rvr~BtTDP(xrb0C?8{BifRkK^!5J90SQjXpq(lO;Q z4m$ValtVMPv!u=_8QVLMcsvt|aavt(X;e{OMcpl}Iv})S@7BKjZ98(=>|J2y6u;e% zmb8;g^~Sn|XJA4xu0_(|>{g3d9+d7yX(bz&CEcUu!1PGyQ6As};g9H~%k$Mn_1z0v z8}4&g{Yw-ys6^ohbUw)XXhx@|nX$Uj&qeWBRHArFB$rSRsvf@(RiZ-m^_;KcpG(=2 z(YO#~jm|O_x^Fk=4#z)#Uj%f?&Vn*+gNA;C-%`6bzu)(M=XKwIG2u;E_?r*!_kTVd zzb}36E4&>V`VD?d?Y_dBT!L;kFONSENvx;5Ow_}wzjz_4zqmy8moG&1mzSu@Wg2~j z@UJdW{o5Df>)&3Y`rlrN>VLaL^}oLm)&G82bs`I@p5m3L2XoFu788A`hEgIfoff0D ztMZSfY`4-$VBu|pt}LE<(+%Ylx1#oRng~rmj*~6LWvwXw95uZ_!MD3kgC=x0L%Y3C zq}Y-f2y1056VsqXL*~XC-UJ{diiWn#r?G^=fK4rF&!$yXJGlp>WMVk=!R)FwEU3`% zoKeXHQ^_jhRKkJ4M_gc+B`sza0aX_lF%3$$=zwlotH{@1bLx^ybV~ZD;d2`&;ctV3 z&VyLzY)W(JiCRhjJJ1ug0EOo3i6*UUUaO_eCAsx7RfmP{{YaN)k20bq{l{j}z=Yyk zQjz<3dpbuhakgYX`9WPlhWgD&oemLeol=_>nFf`YwtJZg3a&NKW7R|e?&_BAD&D7u z;gn3HbTq!8%as#PpK(xPk)%yeVjW zZ6T6x+kz%g0DsNeuChhJ9XkA-&lc0?1OW0OKcb>$INDw;$ES1xCWnfw4T`GpNFalQ z++RYDX343&My1towc#TSOm2Bf*@ae8QOt;d`?6rBGj@>mFXO|Yw_p$z33RIYb1F?Y ze2S_*Z?t5ZK--W(LKeYp>R&3vC&yF|cMo=rOXQZ5&1yyqX=#S%*|dGXPv)ajnSR@r>H^-Ib2dliWpB1BDDNw!gkncotbvTa!zVSqOcQTpATzfK$4YR=l` zfbnHpN`siGv&`d@F&#E7TNZ8Wte67Ch*1jGBG>TigR*|!gab!8ALpZ*ZsjH&6%^@L+;B$Qs zKEYfs&#DMMMT6K?PLb9#5qKr1R>W!9A%LZRHet7Pw+)>9Hf0=@j3g<=CM@LNW_ez1MK{}#gGVQHIwviJU(JUzxo)py=ZQr5BBBWo8%#+X zy+mnvXby#zMf~SwjgknIvmk;)-?Z+d&-fK;9MIvK87qF*n-xL=wwRu+vW25Vr0c>i zdxU8U34@0ABb64y)){K$@LnWg#P53vh*SgCn94tLfmY=4%`3S$DYz|8xt0qLB>+2g z>ZJXFIUD*(oe>=RI(70ZBI(3^&wf&8A^}@WWfH{+9a)quEWYR^ZNzj~V4Cr4Uyr?~ z3=VRp_r%XH>)phW(6;wf!iPa72KWQ2tNQFcH6S5t8vOK5Uk!eRf{bbY(z8CAzYzv_ z(%)svbSUir)^(Pp&-MR z4{d}ynVlXDxdNtDadcNCUClS#(v*W9nJ;UNI35c7!+03N<*j>@?XdqGo|zjClQHJ9 zf-Y}Io(?nK$eKZ`A4Mfx)*`%ApRo|;`Y!dK-jJ=avQf?w<#=zOkj4%_n*fC0Wi6m) zb%loSD(?B@ZtjM^n7B{rFoUyP6a~p;NhPbFJwc^@leb1R-Ul(2&{)hI-Xf#BYeI{# z5a#JO<)zdt8(L|OWY!Fci(3w{9BmllWBWz2Dp?@lDY<|J6h3nAE*4dVnh-B*K^|~d z!(qfb%7_aZhhOr(*`!O}HCwGE8U}EqB?<+bpEHT9WH*Q>WrAOTAs&@y)R%V_9`9#! z*}v^lo@p+mqpW4G@wI_4l!NVEvX;U^n1|lxD_RrJr##X>L^><0u=#TYu|PqC+iLuP zM}W0N+0clV00{~_{=)B2lZ5`09FJXc>WT%#enc?n@HnE;G5--^RW^I59kD!L!rr9C z8q3jgc|o`J(7GfcP_V?ne{J0Ge_0lMc-{Z*)>=`&jBZzx1!_U@<}p%CL7{q&dgNR| z9!*BO5!aIX)Q*BVcp#i$%7fTDc=KdGpI^}Q)t+VqCOOrDas(`)ngv7tEp%%{?My83m2@I^Ass8nb5rF-=-!P|68AV zUC@g22q_o=p?2TD8Xg{tq*KtE@{A_AV_&9)5OsRoUz^Fp{^~-`j zA;o0fw2lN%Z+q3n(+U4ugla(--hVIUK!bO&4o`LVr(Qw)^cE`XX z6}q5mwLRL6Cp2^*OR5LF6V?H%{b4@3k#x<=|_jVNj5u&$2AB0Yl7alKg|h!GHS|Ah`}+8u58Yd#H^?oarJnmw0| z{uYct8>$P`B0lW-p|pqgE{|u_)22a^(QLlo$QjF`+MMJwhNNIv@K@4;%_&W+(*6Yw zl<9_wZ~EV1x+dl8%jYDT!sLJgYm!I>b)104#bh6Hc?mdQMAecT@|CC@L6OJQz4J7y7aeHX}hpT1~v8)wE`9 zq%feq4$gpKfhvtT$TG|DI+Vr{5t=GbxS?EH#3*Z>4tXL*LiLe|Yl>jH(Pl{Nd54SH zb}^!iECRb=|646qr8=W|MJ!r%Jvjet;mON1|V3F%@3Iy&WezmtJnG?J4IWXXiC%v1c1-IKugS??yg zzOT&?i-r|PBCW|+-CtCxZ_kEyJD)J=pR4m*$)(tF88%G2QBAZXS?E)R(w9GHj5oR`#5V z-0@Q?b%&f9Wd&Q`YR!OQflMFNfZI~HfvVXBZ_nCLKW{qT(+sF;V$`RPLkh4-*80m; zb{A`XtseoQD95UJYH+yU%#k2O!COC8m0+PR>wy*R@m~x_2S(W9da=G9xLgPJ{aBQ_ zt1W8EF&$w_2PDvbZ#jeiS#{l%XTuJeW97Tgli}_99GfG<23dARZ&I&=a_#tB78~_t zR~8K`WUh@~wKsy&RN3yrEYTB5w?5Y%Qh-geEDK+pOsF`~o89WmvJ4m&3>wnu$#zJE z@R+V7<`ElO0z!A9Kaay(^Y}`Jbt!Z$RcGOZ^C{v!*x6ux3z^C|x9Ck*laW`tITfOg+3EiKFxTP&XbXfGkVW)!i*an$)q8s3_ zM2CRg9&h?Uq6O0>1Y#z1*Rj=z&Q)!{;?Jz09GC@hz2G-Yf&ozbct8|xzF z)vwWP=EELY>&W-bD9QS%TrE>y>omY&$)S)jme}uKNXW!|*dx~xWsIk0$xw$*{aT^} z0dL38ngRn!_5f>!$~DBbR-yAfvI)86A|flwHSv=_vKxTK}G=de*E zuD;?@2*4uQ=b)KJx;>9(3>NDA$of8qKtffvZRizsNJKn?Qs1^oxzPVxnNoOsadt91 z-tY#*;exOBa@z-avW*YDJflKepFcLPPch|!uvo5g-Oi`eHQSc1V6I=~s-RH*a~W22 z1SKUBw-$pMWi%s7i!(%mEjVJrFwyLHgVY$ejU*Sc!mJ^51$kRY}20S&rnr#IGWD>&p?~d|hOA{oq$W zCiOQ5!*6!FTy3U^WLft9vA3YpDhM?>rff!5*BADJ84*bJW6F{VUD^}>e0RPXt?5dP zi5`0^IzhmF?z$`z29+CLh4y^NEmcK(`?DGb1%==Tbt(Gu!@;0J=Q=o3wrAA5RkPeh zd;7DlfCilqUK}+d0n~?=K|$f6uRZKlIMkR-mb#U6n9&S$dvg4r_QY!kh3FeWbnLEj zvcCuqOXe=Tj!ky{Plbi>y&ybY?iakrP)=EtOdWU;r5T8jyC2D!?WV~=nX=9iR~sf{%ia;i=gQZ6C;5 zw`3thle-Og7!t)Sz1eTfdLYE!6J8s!MxRS2Zw~mJ!eK-l*XGKzs@-vo(g6v<>$DkQ zdNkV7MQiFZw}J~j%(u3jjVWN?G0*8lM7p|-@~vL^R8mJWHV6n5RPIWZ#E+5{gbgx= z1)T?}&QP89S2AvPK#Flti@oBcN}q}9x7I7Lpc8xLp7rHbgoD~u8-|HDzba_CtAH~M zaPJu|*GD#qBv-1Hw2`HNfluKC0*z z1Nv3TYnj+C6d zo60zl=5y$&G4ndU1A%{SM;Ch1aY#pBkL8G2NyXkB)M2Jf&M1KfT9z~eU zMttx$Sw`Ea=$Mw3I{mI-C9^{a#1b)*cB88BJ-=jA`I^OFyO~*kW2t2ZNkHn zmI=Mr6TRJvZ50J#$-dFcMI9K*zC0oqw{(`r@#;C3iL0k{V8U44cw90k<_w5vBDka9 zW0gy+`F2kWfAj^Uy<6i|V9k#ZE7EGS&M*@^CG+O3f+rS&O>gIIx|nX4^5XZBH7%{I zu@bPOA#BV`{~2Ku3&Ey$GGRmWZ0G5riX|&+$^$28z>-`n@mtAQQopg}C16J`ck@eb zqFfX&{pP1w1=jc`=$6i@id$fGX1i*y7nF6mDkTqwzOUo;YuxHSRbw=jb$k;VHuxCP zFWL>JB1S6Pe+^_6-@hFJAVMJ)HJ9S{q!J*S7-NH>vAca#U9TgU1j;##w zm!_t=r_-gGy3XAPRIjV4(7oaP<;JOSvNS|fCk+Y;cf11rAyi5xJrH;@C_N5JHZ8I_ zw8zDLBeY7Ua`Rdd5Ng+VtHqplgB~R(!j+5+xNn_D5eRsSnDDD?ik1wHHSt6D=b@QK z`KV5QdgoI#}V(rs3 z^>j(GF%yz^b?~aRQ&LAB4%aB@L;-p}nm^5y^<4rqLc+T{!8`L*Iaf0E(BvF=kb1*N z+10zQ1~tFPy1KNyb(~P*=D?7C6if3;1G?jc54rcwi&js`23mHy$%L!`OtD43`;_1G zHVo5kv<0Jvv1dtOT&+k8t71f7&T9a5kJlvVL3TVO2z^%i<(Fh z5-`WsPRR^ z!Y4C~)9c_$dOGyI)zTnH+z1kz(YYwPO2#KrK2rpoQeejTw(vj!{3=^cKWno~ru}2H z9Rk=}bcNH7?&zf($+l;swOo2p(kr*0+fY|1Xk2p|+;bB_Ub3_!gQ+mXTZAdR>FF0AKY>3o=}8oVnRc5TpbH28s>X8fQ^P~CG|mjfagbfibD zBU{p4JhC(>g_v0_WyIIU4094XFS_X?-VF!z+lY7mmF};Q_LnT{&cwQBK?SAJWO_;| zOU6T8X#^4!5C@a#d?arJtBV860Ub3E-B3k0;EiP<)zv^A1r5}o6P<|aYEXj#8>QYv zwejjoJ*I#htUi|mgSA!@25f{noh_Bt$aSIaQ8|sIHm=tYbumgJ-X_0Vj^{JgM5-%^ zVj8?bt*Oq|ud6i)0xn7kZWpEPiMmoEu%Locf}iMaWnC!&QlhZhBn`<*1xJDc(kzb{ z^pu`F3L5uanavMOgFX=|8J9}SZOMZg;+~$;s*GnNS$fySePBTattWb-=MC#xPYwir zH&Y2cdMfs@T$yWRV~9GIyq%?Sc7^4e@WS*cpP zF0VNd_(-3#?X%f-rZ3Z~OP_%S6@>hJdLqN8E`1sd*a#t>n^PU3x)5?8@Da0fX?b1D z5(He-KD=*xzEXpTb*&kXf(F7p=`7TRyTO1B`{}ra*>bIJ{jRg$qo9GZC)X0ID|$`6l%2Ev^lB-LkKxPz2YNX}cRRxl(e zpadahb+TODXo=;3?&EhQi;l|pB?`zseph^{omz@i8NWb5!>9VaXqHx{`n|Uu>1IPG zVA7$h0$vxZAi?qnu0-9?v;(zUHnwvpgi0n7(=t^7p@&pt=1zr7T`IC1&@pOae$DjR z>PAgs8kA7u(KA}?nY3%_YP<;MboPJsCm&+7Q`M-i3^BujA4s`s7i3+^B?!0(9~%it zkyIBx5ezzLS<>|7nMh7`ElYy|+xtN5OsBKbhX8{P+I}RyR>fak+s}c(N3O6xr-fi$ zu83(+Li>!K(E4{FGT{8X;9sLO?x z1NvL86sBL#SDX1{yrO&NW^~+{8VxF0m7EsEIVzN+{PVn@{PWzG0TEkvIjZyKg=hQt zNERnl#)sh`RM7UfgJ@L1i=e4%`v(?OQ1_ZAw18u|<)yYls;=%;KXF&xq zy_?ZmD&az1Oj{1<=pF1I zr*>!rgAURvH$_B5*QHg10s9TBM?1>U%%O9KH~Kt+l12Jy+aP5^6{VkQ?$nij1OXRm zYQN^IB}7=&r6~sjA9?P4Hc?%Ix;$q&prh4Ed#Y(9ht2^{dS!L3PRWBB+SBf7>QY^M zTHv7N!)-&igNSIU3^&689WC5*{&nbYwoUGBscYfps8B}Ed`@>a3%BZWrom|TML%qV z0sHOU1x*GYeRM%*cFe{f(l(&&ujv5U+3{XQPf3s&lwFK_fC}kbR+^kz?Wum3si9=t zNy`NiB;K$RG~*tw(>|urd|3yS?99-&%k~AengGQ@4or;}?UX7Hb#Zt7ohK^`4*O4x#&s0~tq#U~7>(bmheEV;K zgVtRN!AOh4Q^Zr5R}E5z2Bm9GX{>kHm6QyrHwFXtL$J-Z<`sn(Z_$=1u4FezMn(~# z_?AOA9z<&N&*|`tP8^X*uw;B8 zFBbu!$7LVK6mQ2Oxk*yF*Od|i2Q7poU7KSpF_-9wNUIA;$%EQ^&NK0JIGIwtHqxUg zC3~RKAZ;SU0^|aeB*N9YT;NeTjSa1V>Pf?(pn=kTLsiIVZsJbJ)Rpcr4NBa?;M7RB z!SWRK(4>%&URhMqYf57)WkMC@en^z*=>v7;z9vHPO}a3Wj)$3Y34L@tv&Tx(Jf|v( z3zB6FGHu292T6wb{rDBSC~tbIH@X&_JP~*N3;2UBU>qDk!zilE^8`uU-!DRC2i!I&;Ne3 zoXl1Cw=B!#WEB*uH@qsZr4{M7pt0vamM$6;6u8*21}*4vo1-y#CS=;UWC%*jLm~LC z5~TZQX(Vv8->tS3pF+Ffj1CFQX)8X=2=QsG=KmQc$Ig|N^il9-3pH51s8BhR-*wP z4wC zAs8|lmH~b_-BQF?t4dcD6siw>@N8&B-m_`0q%Nz9Z8U4qmiuw#&Si z*BMJiTB|vwGi&AWQ}-NAB904BWl2KM&6&`$71fKb<3d-Z?9Kd}mFkc5kg^>WnzF1W zUro6xYN3)2<|Xk8Y@_OSJy!!?y{K9&RAre(zV4T)x82LE2z)>}^|&Wx>GRuU4If&) znVP#Vj*j=U`NVX>RJXdkt^g`7t?`?{!+VsTc!{P2>6XFgdQnwLuRuDJvmk;)ALS?X z-8eul6bjDHQ~{c^K?%SP9T(I;I^z+w_X#O-Tt9Ik@J%+5^!s@61=t|)utBE>dWp}6 z(nD(fq=yI&eU$G=5A;gasKn)o5o9R8ML)#3k^bZxU}iKyCj!5udn!q}WEj(7!Ik}< zZaUyOEFt*8((DBHEIPKZW%L4O@I?jrV^kC{!PY z7tCb=?oT0F&~5Y-PRqgCQ;P6)u%z)_}-q86@;50VaCG-AG;xQ_$~> zFin~U3*FdH45#<#r$<8X7VSBpACEqq(*?l)sE(j1DVFT#);EQM#zSbVmP?u;{?Z(2 zpzhZ#DcmzsiU`HqP&CZ|?N-4qGWWf3%d?S8ur!ZUq;&{O;NTNd_*c|h&{0;G!a;%p^66L8 zT^eR}`P8GJftbMq6<&2Q6TzT!gCcNC{hi6tZ>H1MYYF_vXud=!DBSlieQIy|PK3%@ zWEL%jVj}doZDHU2f(~{6ihUE!+LEpn2vRNZp!M$g_H@Rb$1}Sma7!~9qsfrQg}C|< zvIPsuJZ!g^|HS{1CBuOC@R}W37*ZFEHUZIC>S8qZ z=7?}87(@ophQ2dNS`pJ>$UFFscC5~i$a@-+7;yt^xZli#4Fz*rUV)5tCRi>OQYwVs62i2^{A{(RNqGK`@Vcbk*{CeBkbXl*yP1n5xJ#<7 zM&TF=S)Vyfplta-rXeqeriL1A$vPR)Ix{((Qm~v9o}>}pz=tt1*=^5eCv=88&7lpG zJJ&lUI}L`skNsz~UxCk4ICB3`d);eeKZAwzJI@#MqseN)gFYX9{^=9GTb-NCCew+e zSKv8VCj9Y777Y0Zc#BT`ov|6|w0S|Ht06*Pk|F%I{>BK~j)HKzAlYeDv%KTO2=D!R zKc9E@9uOgqA8oio*n2M?ck>>oW_jiPj}UGcW;&ey3Mw4{g$d1cgvMX;cQjc#ogO{5 zss9Px)v=%O&F!Wj8uG4hwW?uq`MhSp(m)JnDkI^ID^Y}rj{-}XIJ2gTH2ZHa#x_X7 zsCN^izUDCeaJ67(g+>3|uSG%!=KOWuoG&)3G1cQ#uRNixADg`y&k@F*y#V9#sxUQ; zPUF#6`(qco!oHrPQ%k|9H}m25$4@^I*8KhjgcfVS3{y6VykQKcSDt(%4Ef`WF@#iL z%8&CQLYJYeXt%D}TPQ3Vz5t7a7z}$WZ`fq7u2lQO3oyutz>tQ7%&UeeuTh>8;qxLA zawG+#{yZN#;mzbS_t6UoCnX2tOoJ;;-gFR^E;Ik>1sLUIV9XEmAvN2&3QNS^zrF~2 zywYVR(GrTZZTLb=@=7qNp+ri}c@ZU&Y`FbZKElw(8S-kQyaW?oUGqJpufODqs*m~f9%%Xakq$czVBTZC@GU>^|P zbIpU;4ZLY|giOJ>GCmeEmIMLsjrlnfkG0;!JczvxgUDSTMxivc9qVhJ3la`6mLa^; zWJv!7zVR>Mcr$a7?2txpH>wmW>;rJr9Wo@V1G7xShzZ^-vx#R!T`v*Y1uKBz;2~QA z90r(1v@l@5%tXp(WyRiQVd2@3=j69pkB{gA8fs1)aa&D}q7@8XN(53vLT!*t4@m1n z(o!M$(sydhU3!<+7f$(5FZWN89SWxIK!AT52dV4d@iO!gAFlAh`$D8( zdA0f0D#R49Z`!))!O{4FXJp##O7a8LO}^U;XLNek3FdmZKBEt`QHU!Owic`vHwss0&;Rl0}YbK?tswlfxVfPK(T9`A|qu ze{f9A&!-{;Dy_93&o#Hj_rbLwa9?v#ClhEvmdJ&KXMuiYOxFOWr-l`*AIReY1D~v? z!}XSGRb939js^M;Ce!1+90#h5OA7+`Rk}w#IS8;|Lr*2@=J6ytH2gC?{i6)F<`!u8Iq{9){#JdnXX*y zrGzvbP+!@lji5?<9SP)D_jIhRZVgr@JD|Y6LQC~#bWp%ZZc?gjs{|PMKj3qKWs<9G zO;`}P-&f~#Ru&o24JogjpV1;3*&?irKSzSCKR7>|s;aXx3@pfT_kX&<9g*>3vRa!f zR=FSY>R@0_UJ$wQKxMk;iT0mTgYsl{O2<0d9*IXf794qfFfivi56(v0vjJayFd3{b z#xl$fbn~3pVlt=eEwogg4C$MLfot>)X6t9a67C)7-(BLKKtk$akm3by1G;9Ej{1~N z9vE9MloV)4-x~~UYi@8nJ0*wd3}C5y;INrXbW<)wZv@emIxOzMs8*pI6Crfh3(?^{ ziz(f?D7%aYmdll?1uP_g;w5=RlDi*+?YDHm%yd8vqv>+X+ss8;`se16$ub)b=)fpS zU@kT|<1S|3nZaZ@cC%F7)r3NR$3W%Js4cgCyndrr#|4QVd7o=?XE8eBe^$-S8!%B_e9p;rcj zq)&aI0(U7XU(1P3^;HWV=rc(Vw7xEd8yGBy0Bw#CrCcWghCzUG8+$Z(Zkr%7-Y<`Z z<}eCGNO3ICiUi@ufkyBp`Pra=er=FTM3)CrQ_giM68I~F0hbL_*9hY;Z6N=A&tG77BEeDng6P`VSRynNCAdWm1ADx=`gyJZZbGs(NYzW zuAIcaep!a3fD-rtdBirt_%T zV3N*!CvVj~u%gj;61{{CaT-i8;w#!Nzun5wsrtbL zfrQk3DK(%)v1)euz&@=KC!G%t3|Uml>!+s!JGdiCvW}H$%utPt1G}qAQcZ>q z1E@!5EaSz$#m(qZ3&)q*32*_b2`J=&Yh8LI_RBEsaP_7u1cUTq$C; zV-r$vA?gFxic&6FtZCtn(Cr$q3Jqx#2c{i0p#HL~J31Bz5fy@n$;@h;jx9Gwgb)qz znFywt2O0%fQhWG#dNz7CTWuQZl==a_%XMHBV%iVg40w&A4D*gLtdVFtny5Vp>m^XiRpa6wSq49J63KI4B5ABoYO7YgYjU#qK#css^q4dvF>3X*b7`x zNap!4;+TZ2dfz3!}>;LYO9t+90Lek;^^BE=b z*>Pr^idIzFE;KY8|Cy_t&L&c?E3>bVOdKIhsa+0 z@bk|;e)8MlS5Ll{)na|;jz+)-F%^aTRk|+vC^IKou*8zTG+Qjf5+nL)5Hi6VmhFx% z8SqBH*)h#?$V5`FH1d&p9ZJbY{sR+#)DYW@HWxo_@I!6acL7BUh~${jfoaQ21PluC z@X&g&Tn+e^dg^|db6jLd9cZ3jB9&kv`-+hri9FUvgjlXDRqMGSNm;HeTkE-@bhTVr z!q#&`8GDmEw9Cn8LwRhhw#^;r!6Q2T*D9akcf&+n-ovk?W$sNt-@Wjio~G zS_n~jep4T@r_xKLB^%m(7cY^JjII|_tVC+E7U?5#h$1CYlCy_>qzhS^L{hS<=_6gJ zTpel2Lh?mq=SWP>z4Q@VA}dEqavH0T*pj(8)ZHd%MG6*?z(GsxZJz>Xe zNs|+N6e~>u@Pd6=+WfI6Q&JUJb0fA!4u_N^GViVK90lwk437vgIj+%{SQzIJVlr6! z5}W#lj1ZGIp!X$qk{6TRgTBN)#M)O-C8;s&{S#txy-;7Cg=IrR zOzz?9ODt?66=HJSt1q!I4kpCp1Y%!en|#ujRefJ#VLVQFCWpQH5(~p%_d|(!M3d2U z8xSoo6V>p6<+-iuC9WBR0xE)Akv<=}Bcu;3AZ;ye;849v8`&yHjj%T8+Ahc2sch> zRIE2Q3=D2SAsH#@;y@T4d)0=LY)5oKhp=&InRdFMgVk4z)kzL3IQOeDPB}x1Ty=-8 zBw14lLWy)T-O=GjtxHM(R8n<6dn#i3-Z$IT@@ThOanqU$5`8L0LI2z!l%B^9)ByEu z|0Gv>99Zs);_9$kh_1V_kTW9Ai+wxxFxKOL^VT@kK`H3e9(FI{A_m`%b!i0MuIL|( zw&R&>VHQ*chs8A<7CcZE{3isqkld~|yTQ}xh0H4jgB6F}4OlpOD|S@h-Pw0~x*mzi z;;hF^66HoZP)#=;Iww~y-y9cVcqh0;i=Pt7f&qlXvBr`BL-XN!HhxMMT~aB>ZI;n; zxuQi*vY}MqYfMqaUG!)W=KJ1^ekNU;FXq!{Q`tf4Pdapw?n-Iimmr!7{b`0-r2A5n zVu7}cy&%=lKU0xQ8zDyv+I0VdbVFC|rtntIP4*YMAu&n47oUQpo*W47&%cm*q~424 zts&h=J=wAE&%cmf9@^!UgTaCpk`7&;?PwsIs z53KM+3#^q1w0Z}{@auUa8I^1l?|#FX=3P*v@}t!|9X)ohETk{rCnc?-1c<5zd3A4WQzmaXizkm z?^U_PzePlp211M9=~v4Ty%ue)=1fJdjj4U0vN zu}0On}YUO*PR zT?Iliy}esKoi6EQDr)&npX-KLL4($RuS;IX9fZp8mVY<1QK1j1kU6deDOtJqArm}` zWMnq)Lne50!|dkgw)u)q+!dwofdk8Yql?Wc$ku9-mVF+M`a#b;HPcuMPX z)q;U;u6*rX@o|zH;VY>Pn#%(akt<(wN$kTO11uELpv#@z-GV7(5758v(e@Atpvy6X zZnlRi5_Gu+wi`WET%gNae!9^^P6J(zLUf~t0vvQX2iA=qN^a0)FQFSf6sDl}S+#{y z6!bnTn^3sD&HZE^qN5hbcFd=OQ5%tt&7$#5*(p45un}5`Kz*lyVZJNmJ4C!O@}ZJ;ur z6fDg1_BMs7!@|L9{sW5HxJ2&5v9Jp&l96q&K4d~NiDYDBtPhzGO_7YeKcWwrr@rfO zZNHyQD8VNq7XRz=Sr7B6P6LFCW;}pT&XX=!)8B|UFeI+q&H?_BH;BuTosz)f0LXa} zh|q#JEGZIl7jFy<3a?skJ`?mVQSq6NX@{02Xcu%CB6Mik?CXLK^8gMlhq$|-!|?VU z+8@HVhTE0(d{cr5^@3q;2T+N}{z`Mlh}0WiD9L4AMM4||5x#p_cv7$j;-Du6m^!l< z&18&sbtd$>Zut<)EK}_&6BZc;8M{77gj!db&^WyUZ)CO9RUjlVFCa5_SAmeYynyUv zcNGW`?geDZ?J5wW+6&0;NLPUn$+szzJ1t_u_i1Uu*klnCUawxn1VDqHUc_`0?+<9_ zO#7ui__{$&tSWjNFVkvV+Ga(Y_(%D(hz=a*i;)GO8gx@W%DKqjnx##b=!&IHSMhTD z^+x!z!M#vK1P$3hDp*5viAI=^3>tEzue(MV?F$;Rm)%{%cdhq-dX2Bqq;agpzw-^6 zFC85niJIYO%}wLe`D(kRSrOZyWW<2KMxuK8{oU#V!TNbCmiZj8m;UbWlaD@m+`%sMxrcr7n}3pqwM!c2bHHBu^vlnMVeOpc zuRZFE$1?2Oq4;Z{uGy6F=!2jA>}SHd1BYE^60W5T3#<)< z)jF1T>BJ)deP^`2SdPy&tL19HedG@Pf3z4aN2h9V^uXX+E`%a1t-djL2@HURIGy}HJs-_zTeMpH)Dr6%z+O9^EvdotC|Ok1u28oWdECNX zx>RtpI-gD+(FHYhVfs=H?j0C)%fvBYeA|tK!H3t5FLu+hJ|wJNso)WS-r--i)LD8u zeY86MhK`L8(RpABIcL0Q4IB$Huko^yBv#wm?hyidOlwwz$?c&A0q76X8sq&|Rg$bD zZkj(I(d8<$#Qg)8@n! zG}I2aA>qA?=U)ySJAFXIqu|F?7MY#ysrD1;rCn_uK>)roUTtUqP~WiDuE+`uVDI{$ z9`U+DJ|a-q-L72muz`m`=n5Y+lvaxE><>s zH`!c|Kq%-E&p|HG^U8iS zdqEzSmW9c>AwVd<=mz4qY_v?K9wLUqPO-GW@7Q~3&#ory29i0CVxd{IZ9vZ%pgoF0 zFDEiy44)s5I{jC6n=zSEOW;}oPKjLzKC4t~PB@&@J>(s-pk+_j89-C#)-);s)@#Jc z6c%8r+Hf9EU-bu_BDiSN?wCyFdMI4f>mA10E$8-8!K`B|icMzUcmM@_r*fV?*~yPN zJ71(vnLXBI%Nv1>*hSw2qr7*zR3g7s4aVnw=Ne6B)iI^SK8sOdG*cGSjFWJVMVP?WuI@)MR=@U|IsB z;B$xFSMYM2z$a0im6PegfK)nOJy&xcF_~PK{2b@Chtk2EO!yQ*yW!$ddjRo+QDTO0 zG6{(o3cEmNFdtxd>U8R45<*yfeBCK4)k{nU=gg%9>B-z|j4vRTe}49s_-Cv#|8tT5 z;(5Psw|tWcVQfT;k+dcA{KebxjRmN(Z|pp8NJ{?w2?dk3G>Nxm>8OwDb$EiEaWD>3 zxu49j6Va-s<{aubiLVN@R-de!nK0ofM5GoW=_o9vBy_QlXZ_EQR1&4X-nQ6?)OS@ z0F#{}%lis9OGZ==)5}|%spwB8lpd(OEx3r3v*)Bw&YC=dtpKKkmNdNK?VQ^vTHU$L z(#zgpgf$UjkH7kd6(up*9QJ4s{)ncnnp08-?H%;1oduIAW+kIYp2V?(rt5r%P$b-+ zKwkwnWeK+ire!=fz?F)qc0L$69pw%jg$3ckA|0 z4!Th3zjMUZRM;P}N;THe-AHNi<$D{rM?1hdGIxlV&qkeH4rdy|5Ao%)lxX*P7h?`5y z%`q8DhLen`SkH+-xJ%CnsvuN?fB*I$T1TL^+eZ@1@c4*!Qdqb#n(a~-l3AVtwC?^`N$4&W)0AWzv>+hx_iP& z70k^Ejbek0!d+w&fbIniR5zWRu^e_9W3)gv6JwsLDigYZI~lVi+x13+TRFrF9?r4YEaHcSz)g(p$Z=HpE#kp6J2muE@FO*u|2RI-L-{)%?Bmas0qt^zqbi?ecvonT-DwYdJD4HQe~^%q z!uKFcYv8ccgXV^qjAJnq`_hQTI(+xB@_3i2k705?Fu4cc7OLkNk;-g0lrdZ>Sn4nZ z!aAvP^}WZ2M9qw!EDflolf?qLnN^;J#Z#GuAa#yZ`mH~h7G*YOK{4D?#o*tsU+{rm z32Vtr!O&lWJ-7gez5uDmP@8D6-FewYOnC>_?rk6M?UnUt#w?O4-a`Q_KO9vgcWu=_ zEbcNqW|&uNB(IBz+U}#G4TyT5mDOdLgaWT${QI~ckdr@a@Z5*1fr!qP0>>sWaf%!|S82Lquk%%Kl)Ov07AqqSVZ7+2*q-4p?&I$% z!Uh}N$48W2LJQQ!37qc-#YT7V5}p8F8>WfctF89-_MmHvAY}$I5Vb-=NG*?~qVg*! z9MdnE^O~@(-;B{m+9sg5#XGp@tlP%vm9(gjF2_JzM3@*7s!$8n5X!7+kcj;cl1es|f(>vVRKSof!X;5bKR!by+xS4gqEACTtuV@ISg1$B+ zGN&11NDzXX#)fc!J(;YlXv7pXLeBMU8#3!`Edj-FpL+Z3%VHD$9NA4j)#R&UjU4OT zuqC35sl=}Kx{Gx)?&(?%%2@7di7b|6xxN?eW^vRvY|AGV$B5$QOBCY>l7GySnREmN z!M)49N|HfMXm7KBj83XjgFNFxlCCqahDn^DVaM`howxF4PP*%Pe~>?ZhG}7`3O4K5a8Uy_IGgNB@|wE)LDR`ZyKAq-fccX8?QctN z{)~h|iAj3wP0G}QlI|G85(E}Ev4MEiLmWl0B8kRSdq@Fhh}bBtv>B(xX~ZI+n_Ar{ zo+v!Xor5*oEfvzwSo@JujkPRDZkZY;u(oNl^3b2{*-^?YPC81V{-x~Hm|DQnJ;tSI zof`qmXz)|oguMhGDY(n4;|%}v@F*ZS$X-R>WTO@w5&nI*2#tl>1fA9cIFpKJq?}18 z7MTD930BOYwY%Rg$#|3LV`y0@H%p3=u#5YQ4U%(2GTD2X-pmNTj#hNClyKbCy^v4B z+6ZC+muSB~Y8}Grw_=eoFKY=UFz(V*U>1Uj1~Hj1)!vLu0^=@i=+QK{hWm|d3sUXv z150PpeoJxO99b#|neYK!OzmB+;b6ulBMVW|>y;8pV89{1rs={=;UZHgI$c|)HFF}{ zfC~0VyT7;(0;LekPISm2L=m$ zy~?Q(uobL4H|mgDRw5oOE%jo-}fLp44|7H`$`WQyr-CdV@= z<=hDk)>({wuit8Gg%;b14VY7eQG56zVbNl`ORJFpr zlo|p9vBm;YY2l-L-leo~>ymvsUQ9{^p~GL6i0ZzuY^Co}^RYokAC8dlePl<-V!QV@LZkn@ySXqKu>Svk&>Gn<$jY@|==qcEQn*K^u8lW-IK z)plAX$YrNCwgV!|Ql!v!#008DUbkcw(w)E06%ef+mB515Hf4sF7ug0k4JzN2>08Ei zm!BRVk}I>g<4M8oCOQpUE@?b@3`_B485_PV1QixMoIC$OJdreS#d3!JJUHGT!EhgR z+m(ZnjOBbP%@VBp5XSP(@qp^7ov?55p`{C!f=WMvQ=;WlVXXwbxk|U#y5@_mh2AI! z3K=clAkIWbP;vBV%nz(S*3hP3+%(`1Gky7c1V0@2$cdRC zzCZMUDIJNo!<8btS)r~`6IK!i{ZSu5Ql?jaXug=j*5~)FO4O%t9X#CR)<%HSXvmbl^ZHhQ3P zS^WgV8WBo#BeI*`2p`aupf9Ccp>5*ZEgcEl*PCxTz_k?Ia^wgH@*)__Sul{2_hfB2 zGhY#DTo1LBg1eINMKg1gmnG)x167F;uf?IM6d`Jv%lH_|0;;_}o;8Yo6%y`p!rf+k zjscwx%whdDlO^LvFY`i6M2QbVbJsWU4>>=2KeHu^5ySnoRF{N1CTv$nJ4dbV&U5Tr z_j|Ct$qQ7OO%rrY-E101!hNv0_M{-<$Q~x*1xNS7OBm){l}((Z(Dqh;ld71v#b${_ z!lryvWphDCGRT%0&Iv4{deMro?vj)Ql>1LZu--ks;#k9+}yLfPl|gaX=^NLq))5N`GNl{GgqdPFt@?NZC3DCl$%&~ zPQRfo7cgN*%0gEBq-4-BL7gM07L|a8$%13XYl8i*TCgRxUD!SR(3_B0)Bsgz#Vz{{0r))kG)cg%tEb>x?4E*IIO9>_b+cc`?S+` zm<%0*C>eJH+c^G!{p-EgDAYq6*$r%&yI6$5>KCW7TC4E4nzLNDE{$b45Od!??e2kH z9N9_`EFvM9Ysy9--!h+S(a}qFP5AYgHbqMW15+xk^8ZZGpkN)^)xXrJNDar#NeLF+ zJq6(qH;0+u6Bx90juYj?BkLThP~JmjiqiarYxakgm z_XqpdN&i2a55_5zSSiuXl}gFI{{wv}ej>W!oaG5T?Dr34{#KL?Z-TavWo|dQkDK#Z zv$N9P;;$%$Jr)p9&q|Py;eNMkox~GZHsc3MV0D}-@*z|Atdg0V_#Rm)t3eRk8|K&+ z+XRM(H?~%^=aVTaR2)0wSK@P46rX>=_SHt<2}`%^?V&((tPe@*4D0{eTw)><^=c-5 zk4k?;M?143y|l`1@kBAaJeq))%2p?IA--t|w$i^*p6(=nTRW6QV>@Gl=`&u0=^L!o z46Yn}Ug2QpXp43`Te8~`nJPPHCRhSkTJV1T$dq?o`fGSjXxmjXhQ~82=IZ}n%vO!# zz-%;*b<-0jDuUKtZ&5x^D&JCx&XCa_q?3!(z65UPthbQRnFTf26to4`eVN;ffl3-InYyrn4GeA@~R zKJ^*^?k1RssQFDtf^7fI!Y+M{d|5xAje^L;Nd{jCzwM`iMM6LtKY-cEdj%Sec|@8V zw0a#-rxHJBP~XHA2uX{O*WEu*dhA4QeD(6Wlr~VX7Eo$WU)& z`*?&B9-Pf-L?q)|j?~HlQe{B*zJw|Cex}VypjUW$X!3G+7>mN#zRj3Jk&&7K)V75m zp{tiymBU!gh9}GAz{aqJ94tKtNPRsGRLSdu{gq++HFBG&G^)-W&xiqb*D01Ra5H?g zAq5(C=>l_f%VNS$9WxD%8%|+HQ6;J`a$@-w`DwH@Et1 zi*?pxNrV?Qa@=|~z+|f>mH`T62v{l2=y3s%F|~C+4eX?LDhtva-%Z(SH~=b#~;8Cpv_D1kPrm?0FMrw zZoh2zP-~_K9erXN+#v26MN&e(VhZCfKZ4F3Qi`;J2fcSWtj-WRqs}K|0?Q>w(WTcN z;Nc8KFOB+j3wA~n`LYxW7(l);ZeXFmqz^5cTe<^u^0Cn2YO-=KQ?-39=1@EB8h8%s ziaONd5*x#AO#z3?{Bvx-aI%7|VTskS!P5<5=t6=Q&a99W;3rExw6OBjQ}is65}Kpm zqY?;e106#bS@~+9gXDD`1PkS^Zg^D0n&1i~tP?RP>YUtyXT&U1ry)+@%JS!d-1~Rr zc0OE^HhPZmCnVA*8DnVcto*We+%qPCPF*ZAgQJ}l*?jpHGsOVtW<3jumS6Bh`Sb%O zd&!#0=q#m6^>A>mne>CdbokcKxHcm$~FWE#(nDvZTOmv zKGT&-`SA6BU-Ccjc(+f!L_{&wO5h8mV$aj&jLR6LD^G)!RoasFKtOWKo~yg$M5QgB z)=9X8w>n#gWH*~G$SCPl$f_ysgvUiVVO-6FDyQq=%3L9VRxZ&mFrkMifQB1`s*7xf zv<~(NQDATvhqhMmFq1tM-Xz`&d!YI49u@dXV$aiFZV(D8?<-}(N}}m?>BSu4Z|W3x zqmiVy4Gl$73Ny%lg=38rWBaU&9w_qUJ` zvVSt{Dd_~#P2HhSg%Cg!7c}BfS079E`|;+P$u7nzP5;F<{_ls>#}-CVhxBt4O~j6f z(`fushiXhHfmbjO)Zxq96!g^s5LFAo^^}|go62vd*u74j($Lo-V)FQcB%GzyDu^O6 zuqX_WstwvaCEsA?){!@OZki%4Q*->XP=(vGcZ6Z{l$(x!uH9uww?uoed!CTzff_#V zSqL$+hI)f$$EaEr0UF8p6l#&mVT@2S0+v{)P65(4gf#a4A#xi5^|DtpTr}8?)^&b8 zu)9V*0pm9WYQxx<^_uzv^Md$4Jl@~0W2HenY%MDZ9NeeG0G=ddz5LO_`!?mz;JIlQ z`ouPY)}hAIuk7^C7-Bi86ChYYI^aZ*H%;gL)HdUqDHt+_icH>Lpve6+_LY)Ik&_*Q zb@xl$l<_6nCa8ZI?JJ!xhXh!tbIAR@;{B&j@cE-l`iwfJ9O9-*Mkh zqO`P)>$zceQd|PI)F>O+-0!Q>{HlwhU5w)UzXsA>zavj+&*TZE0`SiEu=9H}&9oT6?hiY~x;WXX9@1V14c0Bm8~;@zY}M@!fmH`lDj=hkM17 zf7$%u@uTAQ%2&5mZWVVQuRVKs@6qP!=KAAD)E~>+$Ga$=0FN0?evukpRU(;vycc^$ z@Lf@d2IHO|!-2^}xB|F1{5^FTij|zx%=p*joR)yxd!D4I$x_zoy!kb9QO!VPEX1)5 zmIe?K_7u|C_z2zXDPm#t+kHbZ<0j9VX-p`=bpK6g({%H6LhToxbN%Dd(Q$}ZKcGsQ z4IDJG^cf|ih!dbU(6 z|F4^W^I!gk{+HTznLY8iVN*P)Xc@EgEd3(aa%rL1kQuAYDiAdDtrcI}I6}Cqw3@;n ziNNGFx)?(XHp}`(-%(rB24%c;!EJVvDd0_=ejdktz~o2})`aHoeh0hFUw6!NZ%JQm z^$%M<0?*LT*y@qKf6MEENqEKt}pDy>zm-&Fh<>I2OYRkEvTNg9r<&5=>Q zx*G9YZJeM+!YLZe9FNc5yAl188ao@v(yhOiY6EYUUKL!XDqsoG`~DVSCc3~x(bVv| z>FA8a#U;OVfLBFKh(|JLv2-+uYffc4*)m(CQ%NfxseZpj(nq4ZI2TI%f2O^e87?Xd zf=sU^Ba3Q#>_MDbwlOoTUPJ2Jo}hkIF!U@Q6|3YMOpTd~ zM3(rnV$`4*6avj6EkSVa%Zx0D7CnMvN7hoTQ?Zr97CA|A=2%vn4W>+KZwERC&3$kL zztxB=Te{MW_!t)VBQ+jWeo2Qp?d6QN&?#F-U!mNGLXQ>-`in<1@pREJPj3@-9hH=L zW-k_pIO*~L;%0>G<9M*Sxc&33)-hE@(tr#*ybT%(1V6l0D7WBGbl|+(Mck~fzBI*r zLLGLxR_iyY>4;Z^T#Dg75P7;O%kERH6;`0|3U0EX{=AIeqdeSpAGgoHg6$)=hncFG z4H*-=34lPm21_?&7k7}C(WR<82L4n{KyOgU_HHkbQ5@8w6GW7j>-~%@L|)Luih6Q_ z@7DM=YUtt)j;e9zCuPp`cSo<KF9Sy&`c@x{m;mQ#=XQe;byLtO& zm_d4|Oz&#n{%WVaZGbYD%_z{p5a+Sme&q1Fn_64Flj^qjc5wYjcXxE8&d^%N&ZE;= zt~+lWi|wwi5!w5jPioE`r{N@q72U=rwp0c!vvtu1>$}?I1ZiABw09^X*>r4Xgk(0* z8-c<;4EQxX2-$)nig*(20A%C!Y>n8AEuc+_L8p;a3DGS--p6@m@f=0pTO8)im(oG% zW{E|*Ji2Dfo6(|UjR8~=zfI*4kh;#t!L`+*FA`BH_>pSu%(M$_g}@&mi;pTus^!t;uKAKEdoOb_e}~VvUCUUE;v5 zAsM|FdphwP#es$c?_HwF7Qq}Nw@}TorUrKdNva9wC?l$pxjb%-qYnLVwN;J1{0 z4?*nvKLI@t=n*_1vHoQ$;+g2LIM8*4@+zoq9#n~tDXlq;cy4v|+s2)0H_)5DWhn;E zdGIk^3NG&KQO#_4^UMG>7<;_vDFg(Sr)dJkX=*iWBcp{>D;V4W;x4Ztcmjjo-iE`c z2+vu@aCEnaT0qv-knyzzr^b%H>06>7A-Hlm6M=%nqWlo~r?P`DJ5VypF3^Iv^7knj z1Lm&z%b@7y7uXf5a=eI7W8K_&L8YW1=VqWXwXwBBlS!JQKo;nuzY&UBc^(1$l^BQy zBL*{(OX+Is1Vn}5-Rkwp87upgiL;N`H=Km6(Z5NlM^>0iOsFL_x_oN5>8p%OGLkKA z#p^KL^)#H8e^GE|pf5UkSzeO8Oe=gdvFfO0rHl&6!7&4yrzAJRjr@ql^osCugiR$Z zRMdk+$}Ogm>6b>Ky|v6#VBL3V*ThS8lakVOwGj`Wf4K-ef!$fdu2p)ChObuL61k|t zQLL8fKaoCR*}1`V5$}zd*Mk<_aCkgK=|=u&`s&emqc|@^W3b(4TgaIKe_Q?sTU&*Y zFSg<%8p)}h14QolQ2$hxGK+z#0KDoaXM%xk!9gbtL1YRdI=1I0rJxu>;c?u469w9p zcG^Q*7&W8D#QljEDL^E&BA}?6neot)i($qrV~~vp_c#haOQBY4+K4H|8} zK%%&VKu%OAfRxLT`wjUmR$Cg>J*rwqR~1rtvlYBdtWUD8e(j}#n^OO%{m$%1p@_(G%Xos7f z&`jI}HeUQ1B%vmNbVZ&r5$??!L&bf(7Vp*z*V!PZV4be|)X zsWNn#;F8$NS|yeMx-WcX9Ld4nhjlRg67G+Y+|ASJ@x@`#;bK{F^XbB()+>rtH@%)Q zgSGiT(tU zgbA5c7~Un)c1xQv`ITVF=f@DLB(Q=5k%My5W;9sJ5P5~2N^FRLz!@6=(N|XikB%F? z>EWejX7i3w^P0wCv#KJhI*iH2=CXeYSrWV6M~m1~BUYL1yY}cH4j|Dffw?)<`G@nD zMv%WIse!wIT?cUB?^^$TMtS4{8x5ZOdX=vRrHD#$P#~}X-f4+Y!D2_7=#&2OAVfV% zAf`$)y`k67n6AjouqLee8*O0GJ)?W?P=v#?2R|a;b)%8mR0j?c?`JEqCF2y?syQXi ztl2tFh$aTzAfstJJs>W5wHLdiEATeo8$x_wD<=l2=9!9*vg+RSuQ#4Q|pHZ1?S2_?mnH zN*(6CP^XS+W8~O~utCL`N|N13^;#%76Zfs8Qz>J><+W@D)y+MILt=nLham>b-%||% z(jQXdK5n<7RAXBwAX8(p84Cv4{dd*(T$}(mu8|?dRH>Wv)Q=T@A@vK;WAOP>F>{P9 zNf`DN{TICu`e!;UvtsJt((uFTBZwgW2G5=M;eSMoM+n6JjF_f6WtSPD8iGJkjmIQY zRQKr`Gxbkx=@h!EIzCAZ6>WbVJ8#l{#iNZCahK{_EV|5a=F)%$Nt8*~mwTcFO#3Y& zSiLy_*3zI~I}{D}uUe_ZV9*9*0JDd@S4lU+{`F6dgf-Z;`m%bcJ*9VlMX2(U*{VUk5NlKAq20B_x>B++{px0g zwd9n57)(Fn(7+7Qzn`w*v#h4rHKg2^3F}yPaQQj*f4TeQs;%jhGL~NcYq#bUQttDl zHT>ILOJH}E#+4^JeDwnCF`sb#2Ap=H4R+87qX)t{zz&`Nz@?B!&rx6}Ex0nXGki&h_cdOL2FLe!*;6toYQ9f*J*Xi0k{8hy4DtGKZ+BOai6VnO-67NBabEg zSGXyd8wm1mE8I(|5R4d24)D!ws4(B;n41|M!~A$E?$gM-{EG6`nHOn+vOc4%Qx24s ztjxhs81@?O1jwD^tSXkRD~5*dhApv-$#N>Oi0GDtD(?^cuA5o-wPyhbBQ4ZM-R}%( z@reiMl#~e-Vf5hUnMCU}3S8|6#bb#FQpk}9X4>-sp}OW-rT}URv5zytaG42{$#h%| zC<1mor6}#BrQb{VFcZ_TkqOW{g$;`dqti!t2L(V(d@_y+((G8rj=R=}_2f)rN4;X$ zNzhS8wanO;?AZ|F;PLiY9;wDqtN#l2r`#b+rgx38+QEzH2BQ)!+z10L*|SV7PGD z2*gL8-mVmVLy>$W#i1BPZ+jr;(WxoaU=vtFeJr$l@4iqiget0sDOL1@swc8^aMm%FQY*o;Uv@B`KLObx1A(hMc?dyV=+3;ppyWTgW) z9rm632*It@KMi~__1x3}yDMNwzbL7bAU*LH2~VwCrjO1jJ>#Hre5o3tq;!e@snODB zQzI2fH@_aJ#1emh=SPbSOj?OLC-8DY&ytgO%Z9|#A9=YUG|QJubI zrs*gu)L%gdjD>dZDSvf3K*y1;x20YTmSC!t&Nhw}NcZg%p;9Q7;`9FCyTbnv|LQ&m zbx7ly!8P-}Ca>o&<88<+SIPuZ$WmyTkfiu2_v$hkJ}a91BaLR zt5$m-iz6*NEvoU*>JJceY1I4K_P|Z3sE@|mYq;)jfI1kIhLEa(%u#Db@FSMHxDjx% z+^Xs!IilS|?V;w`R8Ixc&2NGVZ9)Q-!~nw41XX5#s|HXN(=9v`I@SOx{5)ZEos!ar zsN`T|Ivs;YXPWTivE8*F{qeuhEzOyEgycaCaOK7jLsYKv(nKKmeQzt5v7*??H>ye| z7rQEzh~+NAyyEyz*6-84NmXxd#>eTsxm7ZPf?MkOD=KpU$LhfW^tV>wpjuY6?OFD8 zkJ^Xb`gG+cCa!S67^YJ#s+)O2RMOM7E1oLL6qgBW3F@Uvy#(lHrKDKebWdBlD9S}TtunctCEAs)FT<9^?W%WVU_*oq zPPjRJ0bQe6GlsiJo)6E$988NfkAp@@2KJtiB7rm0Q>2J5t(t@pne%V^xIR1QGHSO0 zLjltLS{b1Up^s%|P)zn3$EM0-!S4h?h(^Wp-T+xZ)Zh5f}kbOi>Hj+I|Pb#!t3XWerdd&Cf{7Y)db z$3$fSFB8<%2mQULLJN`rjYte|;FT@>mk19k;<}}~=(ry!t8Z7u}Riz4+n4_W=s54laMz3XX3TS<*6h@k``l9dv19XJY^x?8x=yKqY~4)AVgBBMbU-rbR?evl{Hl6`+P5 z!#NT|<{_m^(^42aY$Hy(g`1U1G3yPCCdDX`P7&Qz+_A)E(mKT>qLeZbIIEqMnYCJn zwC3U)OJx!DZ&n<+% zQ_@kq=Rhi^-~0-T%IKU2DM%5ZChO9yvtfJcL)2z|ZWUIBBnf?7*ajq}tD&J3w6 zclGoXs$PVqxZFD`E28SI8PAL^s!d%=aonO0jlSDOm~}w~Q9Gp0FGy|qlIJ8-NK2>4 zQOBqB1ps#g&-hXTiV#o9;i?&;HLpJ<*A3P*tI-?81XO4SAl2dvfdt&_$b;xu8ktpU zY`b76dL*}SmpYFw&Oy$mprcuHs728`z}W|#7h@-9#;kz_;9vJ5S;BI2u=xo!-5dsr z{?)faQL(V<3lAwp$fUFpwJi;`j7(~e`d4lH2**t+rTeRYBmtRGD!9y|BpnS#u9l7< zx#j!t_ft?>!LDn%4Mo=E(3LRzd*#gDvksnOx%1dGFe(~%MH`1;Scz{X1INl|gQcmq zl_khhW?N{ZUdEiNu(P&NvE2C$e~WZF6(oh!HtwvH6w59D)E{tqJzuP(k3klSMWi#F zTc<5-vMk8^Rzw4sTmIuQs!<@O2T3Qzrk=lh!Z^-LGMZDu4P-WEMxzN9NmbgfI^A6} zhj%^DZJe@)-dZ)`I&v%0Yz59zLXcIr2^&=EWaE!eh)&{ha2 zqY}Vo_%jX;)wup`pG`6b(_K+keiC8@5_8q0Ajq# z`=BkINIJbL&(^avmL+=Lja<;c_CW1ZB)I?HbC?<$EP-pd_^| zet|$zp@AO3EVL0fnaI^R3#)l_1mhOSK*C=(du|C&uysPGqk^1V-E9?UgPlE2#!!)O zI6?tjy==D*748gAE4ihb2L2L$-8-P`&@JiArY*L%zC2Nahz)Us2esJ_m92pr3FkMr zSH3o4o-r&!swm#k!HhVquhERV0oaRk_`c5c%y`aJZXn4RnF=*UbBmE8%65x&ixytT z3crJ~q*1kV+V*b)UsZWhkHvM@?*^iUo!jh&fGsCg=n$4_x;(S6Xg8FVeFRd4e_7Fy zyw^K?NlwBtos1kuVZzQSbyU`)y5)6{V4FbNjF^A%lR{MpZ(u{WTdAtZ?2Y}-ExfOT zUcsY5*N1k?7#_3B*>rNo8WI0=WV}pRz_4iy@WuDXxMP?^JPc~tBb%|h8gw=s@b86d z10lpHE~hPKS$YTDT8p7UmPJK~MxieK)ed>O;aW!#3&bWN-V7@s=$bBUumZ}9zVyL3 zOjrCwcXF-|(W-5{yvgBh`CI~hI|o4EOoyA*cV zOWGM2TA5VBgciLP=rD%68usCl)I&mt%wS*e682dA;cA1m6dBe?zX${kl)H8l=r`#Z zwp>zJ`*AGV_YR$AnHDx$Pb=Bj41?87>lK|8xF+RjpYjdRz)SRXi>_q0+BUPcXm8qk zM-m)&H6cdOcAE@>b?PQl`oyanyy$x}fq;g=C+JVQM>pxdxlWI-q6--}scLH?mv|j5 zRe~1F&E947w1(@fCs^0E29iQ=m+2`~AeXdn!M}hN1QT<&UCNkmuwGXvf_#F8Bo+j> zun&g`N-Ifl@bSr((GCkGijDdqkbTNYJ5HM)fYBjOCub zd6VA^eP2ezHaa1r&Rr}dd_e-(_+1JX>)9XSK2A0OQFjQjq0e#D+qSvUnN%ooYU70( zwvM!7emwQVeP^&LrwZ)rJ0D|3*o5`yx=$a=%46Vr|;w=q`O4ghoc9$ ziStAb!b?Z{2+(kKLA!Nuc4KMctRyG)$bQ6{t-powVd0N}8 z2^_oy5gR1u0!bll=ru8}>N?b80{w1(XA_c=nsb*+6e&Nci37osaJKa^jAT#5%$qHZ<6-DH* z?f%dI_&=!HfJGw|FV$jlyz72XxgyDhE~u|i&_KC+9IM_cpzhZ{^k4Dqdzc_(6Trmu zLp4Nk?VbMKAq9srYeCn;AJan8_bZs7cErxA>kXirCYIJm1)X~Fq8dcAuCD1>MN_fd z^kc4NTHN1n?=iWc5u^em-xc(hW}`)Pmml+G+kA15)d*Kr48)V(qNRX#L1tDq@CVgO zK^fDnY`~^NG0bOl!{&Fmb{ZEM8A(7=eY>D&Z8|Gq^ZQB-gYdi<{xUXJcIqVj5u|H1 zU@wTTm6&0_eS`>e!`4|PMzL`6>rvUJm4${xAr&F;`|3H;w4WOHssvp>BKlBzoMjf4x-{Q2Y)}zs&^Q(kYFqpge zn68yrtb|~1`*?)2Bv{<)M@p@P28&fKCh zG}5MG!bRe|pR8k`!Gx={Ss5^(ZdsWi_e#nLk2d_>Z*{cGcrXuzLP~jxxV^uQl*cR=PPgLN7(jlSo}BQoP_&r?Qu*b{;jz zHL8#u1B>vB#}C(OjSnQ#u4Z+1h^b!7$63^w0dv!&MpA+>B@YmcPDkWpG}&3^Rt3<_ z6JaV0pAu)ms+&#?jz=mTt~h#|DihDrPK8su>P`I@`lw(~-EjGID z2uCJqQ+Z%1in5meSq9dCxewSTq{^{tcUL!8H^@^_#{oOUaH%*sH_{$B69*}nn`VWD zC5o{zyI`0e;CK-g-$%H}@u0ThnJ}L63Uze6zYoNqLF%9pQS|uXJ)*h6G}94S>Wn&? zu2RcOg9r!`x?vl)#Yh^C=cNW0$7Y*%Ym;?+&5K=JZAq6~nL)@H4e_KrY-eGSYZ8@K z(g>*TV@}(`J!B*W9IdFeF2ZjxM05Hg6~HKqM8=aAeWa4isYfPBK@UQ6pWWqiJSsRn zEbeqiue#kszLbc|fl1yco3)EwD&EfJVOuzCLkz`<>6r!_tZIqb8cer%j|df;s6$)a z_k>7RyL7<_1wI{iQ1SU?Z?76O(qOfVHx`Y-b64&OA?|=jkq~$|Pw$k2Co;hdaya2% z5>ZqHH&0}M#bnm+-s4XGu)Dk4+v#C;ASRO>3|lbaDE8^F+Sts*MBwyIoRn$Sw5P1l zRCkU#(n7nt?EdMA!{wllbs#WPylS6trR%^z&MR8bh%XpIoXIcBl zSSRbVgP)y#z({ks3oX%I@re94N9K(sQOXp)k-XXRf7hy(26Z4#XNUN!P^mT8KC0o1 z->zHx{^#51s+2cF$t~RzQ)d(0r|S4}%47W?K7DJPMf}nTUQM|m_b`brhQcVH%mHD# zNaclzdnKjdrpWyadIgSj$Uu3|@PgHj%9YX&3^Q*0`U|2cWClMRdS^xU>c&gBG3z&N}4Q)q# zT;>i_Bg5hU{Z=`w(sGxHOFXY~x?nh^OW(|RK6-ncF}9oe(-Y80NAex)9Bp<;Cg~(v zv2Zh0vO^e2qKJCCHZmPlaEWHRVR-{8K&q!Q%XgcqtHavn4UYZz?G^9X@FsBy(arG# zs1UjDob9rUUA^72X$zzM9bWbNDJI~cyv+R8-6H4-JgJ|`gpy36-GI1(~;_EAxfmN367QnD@F zB0iv4Pa`3j9hxq)R03*8WwDADiOX={Y=hpQzQ2ln0+raJ>v8r$y>_8*s9-94=5g5A zA2HRZo@lz#Pva%j{oo>ib{rb)4&jcg4V5yOZW`1P=jutI6Rva*kKyjukQ&V+YB~xy zP961c5{91|^=R&Yz<XIs&`-IM(slLKJ^ntXR&xJWOmS~Q6 zJ2=Cw)*?%WiA?5TZF>WVn<1JA29U~4G#RAP6k#WaG1H@&^qe|U7RW7c9B*^)(VmBT zm>h=Gx$kz5`a9Ne`Ra7Th1%g~6~C_XIRmsY83h^sRbQqV1s2Gy-0SRhdC}rZP{rn; z$C>z=T<|&n{)<#)&2|R^oQZ0c8`GH?14fxK%G)Bj*?aV$@IFRfF6NOLgS(-_9dA}i zX55>nE>>k+_?P%mxX{hpF}RJPKPU%|Wz2_2xRO`V4Ok#Xw>*dz6nF^D4Euj;7o`kA z?b*@=!xjtkpIpf4K%SFRBr|{+GO=B?b}olMQ4{zNik0_Q#81hSt%|kV$kG^33vMGa zdZ*~08gi6YZkqO{28 zW5HfkE`@Y(2T@RjPs&Y-dy?=QhDHNh+$^(#1={61`@$DsityZrktxptA5O1P{+xHV zT#YZu2-oS|j6w>pk7vf>BC@dXfvt%;elOs(h{aZLMVWb-DR3L!zZqUFi%SXEUAq^C zOuSJzbdYYM(Yd(m4_6yYY@93gUZ@DDhSN2i?#Am2UJhH(MmTYSzs@u}6RA*pJUkxN z{e5~e932Y9whtH3yA-^?P}z~xfzKHDc#ndqDCG%Dhp)&#I>tKC;^oh9o~iLOp7YZP zxW_*|N8)!MQ4Vbsn*rs2>-~H2yMHYH?LYtHf5X{%fLw!rF9vNC=*L`43Ov7hj(`Z7 zkL?b{1(0);V(r3nE zT>IBnttJH`nD2|kcU8IG8t-2qCiw-Ktnqyuk;>if_vvO02;BZju{wN#Df-7_Bn7B> z$}{KyWvqG~cqrK8jmmtq;F)eZ%M7YVb)Uz<(=ICi5|-9b9A+O-gD6v(7zShg!+q3J z_SeH(#ge(_oI0rz1CmE}{})emo+KpkLwFFMe}3}|x+jo62SvlYQfhTOT)O~yY#;J? z@`O()w+8K38gfDx2{Nkb=(9}tQwg|#SYw%l9RW7MgAZ1bP%C`Z@8AyiWAfNiO9E$I znN2(h$ONPEB3$qob<*Hr_rX+#{Zr(`#9z?>j7N1}206ixz_u4>&qKjH6h0`6JNq&L z9v>oS3stB2T!<_g!(QfCY^;n_5h*QF5+NQ85-#Ot4XR&!-+^V4}GFckFRI4~-nT>R7eCT~EH%_IR{OC|Cr z2L~_B*kv|ir_*ONcXJ(!-60m`5j>c*BqP|&cLAv*^b;+^bV1h&D)gN25Y9+lyt)vo zjAg7lbHo%4j&@dd_9^^Mr3#Bg*y+2O`&9cdbvn*5MejVOA|C06Ftblln(6Ba$pp~d zSRW3t17sVVvf6M2X{syD?sm3%hd43rVa+eqK*?Obq8w-ulHCs0;E3WrT92PdKT7C9`s)!IE6c8 znvwnJ8Cl3EVdb>G;J!h0Q^ep8U

    MqoMpItXey8kt>~60W=8pcWUGJVx^AG`Pe+ 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

    >8B@@8b> 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Ƚ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Ƚ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

    @(*iE_bW2hNOwh%=2j8`#7zui09;)t$ib zGD7%sA)=#0uO?TIDQ{sbyjP*My4qT3FXSPxUoQ{5_}9&+R^lxTb4qnFRLSZxm~M?m z?K6&q_Tm1BFZ$cKs_|eOFT5a3Sfl-?a>**XDzo7W)xk0j&Z!Z+V98f%HoRW zj4kM)O7cl$NY&RA`;nWV=w8`v-M}dX$tcJ>QTv5;ce8LuUbRb#zm41;bQ|tG5Z++5 zqu0$$R*v=u|4z;zKbocGSl~J$Y)LIM`w$hrzKO@GLQ{w1EF$$64p%D1r#I~v$A`O! zgBc%U0o}tmkyBZcYnu;|Fo|@67dN5#s>5eghq7W?9$kM*0Z6w{1>(W|{D_{k4^~>A zfHy(sI{caTVB{P^fuvDu)XETT^PAeQHFaeSjm~+xBvk#vvInfF&xlf;An(T2e_+v& zgE~#1oAwC81q{YS-e7;L2py2t@|V%caqi#wR3m21SAkutu3nPrqj6M z4cv&M>^A8u@Xi|x%4%YpAE%@+cj=%)hXXyQh{rn4DLklXJ^j~W_jF|m1SEMq(!)YL zpy6O?kNc zN1^8Asz$a|iqG>Ajx!Mr9Zfos7D$gSJ@8+MC(i0Pi~#w#PJVO61ZySJ9-?oB-oTPe z>MNVjc{oiqjF%4t#=WFJ8^dVNxCd*A52xvAP$iviUD_cVp6HTvE%P=Vi-h9(gP{p| zWp$H_yrZ-nc-9euoV#&VkylO=2E`_dQRJIoku?$`;UV75qLy-NcBS z8UOQjy96Y*kD)GcR`9<4BD(79IfeycSDKADFY`2CjZ zqMH!VJ!3Mh5}VWh5u3?o;(CT(Fv98v!(#&@18j$B)wdWyQ{x^}5J_c`o>X8!&`nKH zz?!Sl>Z6!_oBY$p*=1a6Oe(X7*^RNR32L4=fkpjyb>Ka|~1G-$N9Ah)Gf8zh^hyRa4N_P!Af zez4MDvoEbx`KI1SP~}}^6$aRTwZ4!8Xch1mdVN;XcNG{0y$RlZrM^3|>sjv)qU3w5 z2OcZci_jqZL%kos>-X7fH^i#HkQMnyy`Mpmuc#D}Ny5$0Scg{bpUb_hUsaY%B9H2i ztmtQZzle-9RU5tIJxwcWV7*1z^6oU`6krTK{eq)!}e`XEtO-zUS2X zAJHOM@;awUFt;Lq{M7pQp@>9Yzy0SBQT=P5hkri&ul?J1{JeiV_&5IT`Y-smGrwrx Q4qy5pD$m|HJiOigKUx3Rvj6}9 literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting_started.doctree b/master/.doctrees/getting_started.doctree new file mode 100644 index 0000000000000000000000000000000000000000..49daa7921f9ec75c8b0a99aa9a5e391612e68ee5 GIT binary patch literal 37280 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 Ha_#>EFffRY literal 0 HcmV?d00001 diff --git a/master/.doctrees/guide.doctree b/master/.doctrees/guide.doctree new file mode 100644 index 0000000000000000000000000000000000000000..49fbc7f1ef65eba06643f5c8e51afeb44c097ab3 GIT binary patch literal 2789 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 literal 0 HcmV?d00001 diff --git a/master/.doctrees/mlxp.data_structures.doctree b/master/.doctrees/mlxp.data_structures.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b0b59fd51e7ffa8ae87c1c9aa2cadd070329616e GIT binary patch literal 217826 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

    (0Di5L<$;<$}`b;n67+Y z(3tn#9<*r-&0cZpqESE4R}hUw1_S>%&@;~12Ihp?%7c%0qPT60?g4xo5CX{Bu5-g~ z@Xz_}eqvuj3AQA_r3i4R7r2)_=)N~9`${s^rT(#1fosYdI(dQP-phc<+%=#F?%l!K zhMdBQjId^yBJKr>Q}%?^R1L!tNXF_)V4!Qw2(|=ohGw}Xcndx;OTeDy*Ai^^#g7Y` zgG~WDH2E;_HQJ?3@W;Ac!|-7gz6f7iO%yQqa(X4Ii$?DQ0t*@l zkqV6%8L3vnuk_MXEL)i{6`1|;{X!O5rsC<(V2REu9hN7vHC5q<(jDA~^YcwOl3psS z1NG(xHhyxwTB*ThqkQwdic`#0^?C#!4)mKF+DN=N&BW2brIn&^;DkXkRhtPI@mfEE z&BU3|EH@KRz$a!V*wd_-3A;n4t{WCl#(INc3 z1{c288hBsp`g8hA_y%H#mGVRzZlxN+%YF9i#?os*1hf{dT;4IYp3V_8&r&DXV>W(qA%imdpiPtFPZ0_GQA3rCXp!LJry0NO)9{zG*ek}V zPWQx|-KZ~Miec|YJz0cP(XiVGO5jbK=hbjhW*lx8k(9fyHQ^`Fgj0LNj)kIu=+aBK zLZJ(9C3^r|KsJ%0J%WUy=yDa^=6*+)txO`0?q-WHo4IA0P(Qi|=7yk4ldPXamr(t< zjckI}4+~wE!!A@k{va!cexZleOUTxWY!Bmfc7-R$rA!@sF3Dlmw-QI3x0>F!(ezR} z_+}^?2qS+*w?e@PZzWsPA10efQ4>Le4I?ly<7`WY%?`oeH1obnw^3!)mgHBGAEU z>k2wfMIVF=F8Dy?Xiq6gwD&j7g+ZDN6rh|9MFRn46Wt00D7=+yK)IT1B1K^Y2^OH} z#RSi^#|^~aNVi%PQnCZ_X_)d%CX^hQ63X9wG^Kt_5&R9ol)K3KNlXbP;nidlw2D}m zlCfv~Eo3`IkcCs26Itlb?LF(>sLy`ev;J(Dlo=b3F?cTatm}U9kea3`+6INPmx%K0 zS;ubhwV^MA1S9-Y?peoYT>Qp8>oPtEs~T6r>(s4W-KXgKnxjY>kU~;){S%hvi?hiT zUEg=Awh<$AH~Dv=7HUPu5URDC{6|nO=WcQo3G60EL3mPh9pF)CP!*IV6;4O(!mSm* zK|1*!@vq>cyGQ)2pwwJAaZ*czd5UPy;E=<4>;46Mb0t7@{Xh@>gAlwNeHrfIX-;(@ zT?pTKUnxT}@zzwM1c^pU?ebpOq*H@Gterh9p*YOlCVG19P!P^pVZo>u?kuT6HIUSt zt?05Ua5vE2a;sJzu2)J>u2b#BY~`3EU0iO`Y$&PyNq60Xi$}a2!y8Dly2i?Os`zQL zds;(|%BvyKkyzqnmJrDhMbT}S8-q8t@8AoS=Fawk;I&BK)^^!@7_gkCj4hTr?}fFm z64}8K+FgyffaGn)W=d67GJL7ET}H+A!*c1gQT{P;4-?JT|i1{=h zfuyU^ zyIo=_bMtI2{g&SAH(A2UF-q-SGXjW{0#3#P}5ub`|2;pYYM6#lY zEH}cV4TP1HppB0nY!2B7&x;M%HqPEQqRhSGb_Pnj%QuPbjwo!7*Y2mIK$Vp`c4#-q{RLH>PqRtn{u~qyLGEvnO{5^Vs5}$7AEhgw7v$!Bw}-4b*iGd2 zic=Sj-Usv*L~gMS-aiWTBsO+1+*Mn(w{cYh%?|~1d%qAs7MlOzmf?1@4(aw_6Fgi5 zE&!d6O~Y-5Yy7~YMlTou0`ANi1E*T~*|_gx2(C``?ap_sG@lF16Cu7*LcwItXkoC(c}y^i?A_d4R!{Mv-A)(Tfq zlMr$ppBM~QdtF)tXCclt2%AvS+#on#YI|@QepApMT%yWKdtl%G%@(*=r-BZt?o!p| zwg)?)Xox-dBeIDUdmt+J*aLe3uTEE9*dAmp;8C7D@4G!*O?)uzfmfWmXtV+7D`*eI zZE)TpkZukfrIpqoMq!I+r@%G5^!p;g{tRny!&%_?Z)ucjqvEDFxYcdCG}&tIt&QsQ zPT=FWR3>>a0t2P(WA>g~jGat2+qF(@Z>1kkQZ+2ofo24a$G%#;`2lOz0gbT??gK`)X}oF*ip}MNY`atr0Ak2=ky#>lJ_Y;3anLc5NI_c1<;E&zhCjdpF-JlOYZ$%tJr6RmK2%aJ*>(~dw!xdztd~aVWGLNtNL;q^shkC5QF{$vWXOf zE-FtNba(yyXLRjFEqeC)Ic3s$@3mc~f^%Mp>Y~v{fxv<$T^wX1#znee_v)}T??)by zFz$Zc&xNqdWHu zJ*UAiA7J0NPGbe+3n+COuC`#c@Qt24s&$duXQ6qR_UR75)Q@#Rzl2WUOMf>s5*!bF zO!w?fC(toAYk}Lxio$`DL@69?Yydg5o&`@52ccPRY@Ucu%-FD}Sur+tha3*b`L0|v z2U6rxdI~A&2jVsfK#GhiT?Xq3HWZpbO&c)k8DUD%8}T+M-Q&Udd<4aBcJppFId5jMxi z0XvF%pL0eZ2h^O4+E|Ty9B?tGK&&0JKeS!CGoxYZ_@BRFb^Py!R{_5KFSHzJ&>}Vk zF9zYL71ra^#N^vSyp(?|Hx0`_wNAa3)G6|4-3$~3pEBec;QQ!SsC~k`m2A-a0NF&! zd`6I9?GskJDDc?-$CTRVzHVOA=pGyua^OYW2JxAJx+mTCwGm)IubZ1=HXnCXWE0{XiXCl`S zUZM{`j!b+niT3=WX+NE&ojQJS3KR{5m2>D;C|KdGWNZFqWD_ZBBSqYzS$zoX70^2p?+8q%ngB+X|jG2RzmgTg=7=7eps-wsJB;+EPT{M=^nC$BBu^G zZC%00F~0ev4?lYJhmt(=l_v8&G?|pTy$gy4BF4w)Rw%^atz;|p=gB5gG(wP26fwR_ zx4GXDPHO0+z`ZAd=zQ3sT(#zNjQpZg4T~P#3+$16hRD5TUUs2 zR5I4&!;9teGl>@Zg~p1DX#y#%xB!X4nR6$&wUE7^!~GucFnMhFsY z!~njgA_o4ZnRgrAW*B0`hct(y8Fs#yXJVg;d-TdJHbJXN7;s!ewon8(IBi`4$5DD)3k4g?E#j zWDG;mK*;FOtx%A`TgiruJIN+ebU~0%6f$P$Hs=d6Ucm&D!`BGq@q1``{g5Ge90D01 zBkLz2Bb0>ClTFZS5(XLHBwHu~8JxE6AtT$jVEzo%QF zAcMD(4H<_WOIm!tItvntLdGd{oAU)3YoJ@Xyo^vDUrf_W@;C%Ct|IFvAtRK8>&Yfk zAVa807-Wo)Efj$a-h5Y(ac=%iu*}hL@>(yK)hI7Sz0i;Tq6kQP{*pPx5XVQYCb~c)K(QO7o3g&UKCN72dg5Ad?lEeK7W$tHaLj71G zm>Ys6UnT1&u_Tm)?~_f?`e9+oX}y_S(&c~)`BV?Z$H^WR!6MF^uCV9?xw#(aJJzOp zALK0MUrYMspPI&Ht0}`z&aMxEqJeO8EZqtPH@uZ>xH+9{B1N492^QS+XvT7m`nI6L zH%6rO0=n%$*qQZs$vI3w*{s`6ci#^tymDvb@vTzP7T#*G=NV-EWTu=@5-Ma9Dbg2} zCzsw9;~5o$fHqxwQTg&_iX=DZJ-2ZrV60}V!b@pN{i+~FQHWi616e<5S3-f{on#X! zsvt

    |n;**S1RT{;_nJb@pSfL8Yfor_cM&j>j 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 literal 0 HcmV?d00001 diff --git a/master/.doctrees/mlxp.logging.doctree b/master/.doctrees/mlxp.logging.doctree new file mode 100644 index 0000000000000000000000000000000000000000..448ca7a4d87ddfa632cbb2432b346640c8982d93 GIT binary patch literal 48384 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 Q0WYRt#)#0z*jSkVe;$w8x&QzG literal 0 HcmV?d00001 diff --git a/master/.doctrees/mlxp.reading.doctree b/master/.doctrees/mlxp.reading.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fba94a216a98c9f1e09df14786eafe6d0e023547 GIT binary patch literal 40739 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 KS`nwf(*FT2L~c<4 literal 0 HcmV?d00001 diff --git a/master/.doctrees/mlxp.scheduling.doctree b/master/.doctrees/mlxp.scheduling.doctree new file mode 100644 index 0000000000000000000000000000000000000000..e0e9adec3b355adfa4fce9457b16a23310fb10ac GIT binary patch literal 88288 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 M#U*4sk13A*KeaCh?f?J) literal 0 HcmV?d00001 diff --git a/master/.doctrees/mlxp.version_managment.doctree b/master/.doctrees/mlxp.version_managment.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7204614d370becdd7362225ee2dd624805a4af98 GIT binary patch literal 30905 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 R?&6(okR~IAzR0{?`9C#&F5CbB literal 0 HcmV?d00001 diff --git a/master/.doctrees/tutorial.doctree b/master/.doctrees/tutorial.doctree new file mode 100644 index 0000000000000000000000000000000000000000..04fbf466d7e668484915adbcc7f1ada656d6db36 GIT binary patch literal 3892 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 C2BRVX literal 0 HcmV?d00001 diff --git a/master/.doctrees/tutorial_introduction.doctree b/master/.doctrees/tutorial_introduction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..5891a40398c0490499406b6402735040d89f120e GIT binary patch literal 18664 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 z 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%0A9G$4 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 literal 0 HcmV?d00001 diff --git a/master/_modules/index.html b/master/_modules/index.html new file mode 100644 index 0000000..bfc542a --- /dev/null +++ b/master/_modules/index.html @@ -0,0 +1,264 @@ + + + + + + + + Overview: module code - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + +

    Hide navigation sidebar
    + + + + + +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    + +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/data_structures/artifacts.html b/master/_modules/mlxp/data_structures/artifacts.html new file mode 100644 index 0000000..f4b2202 --- /dev/null +++ b/master/_modules/mlxp/data_structures/artifacts.html @@ -0,0 +1,319 @@ + + + + + + + + mlxp.data_structures.artifacts - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.data_structures.artifacts

    +"""Artifacts objects that can be saved by a Logger object."""
    +
    +import abc
    +from dataclasses import dataclass
    +from typing import Any
    +
    +import dill as pkl
    +
    +
    +
    +[docs] +@dataclass +class Artifact(abc.ABC): + """An abstract base class for any types of artifacts. + + This class can deal with different objects structures + such as numpy arrays, torch tensors, checkpoints, etc. + Instances of this class are meant to be used as inputs + to the method log_artifact of the class Logger. + New classes inheriting from this abstract class + can be created by the user depending on the need. + + .. py:attribute:: obj + :type: Any + + The structure to be saved + + .. py:attribute:: ext + :type: str + + The extension under which the object obj is saved + """ + + obj: Any + ext: str + + @abc.abstractmethod + def _save(self, fname: str) -> None: + """Save the attribute obj into a file named fname. + + :param fname: The name of the file where the object must be saved. + :type fname: str + :return: None + """ + pass
    + + + +
    +[docs] +@dataclass +class Checkpoint(Artifact): + """An subclass of Artifact for saving any python object that is serializable.""" + + ext = ".pkl" + + def _save(self, fname): + """Save the attribute obj into a file named fname. + + :param fname: The name of the file where the object must be saved. + :type fname: str + :return: None + """ + with open(f"{fname}{self.ext}", "wb") as f: + pkl.dump(self.obj, f)
    + +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/data_structures/config_dict.html b/master/_modules/mlxp/data_structures/config_dict.html new file mode 100644 index 0000000..ebef063 --- /dev/null +++ b/master/_modules/mlxp/data_structures/config_dict.html @@ -0,0 +1,344 @@ + + + + + + + + mlxp.data_structures.config_dict - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.data_structures.config_dict

    +"""A dictionary-like structure for storing the configurations."""
    +
    +from typing import Any, Dict, Type
    +
    +import omegaconf
    +import yaml
    +
    +
    +
    +[docs] +class ConfigDict(dict): + """A subclass of the dict class containing the configuration options. + + The value corresponding to a key can be accessed as an attribute: self.key + """ + + def __init__(self, *args, **kwargs): + super(ConfigDict, self).__init__(*args, **kwargs) + self.__dict__ = self + + def __repr__(self): + """Define custom string representation for ConfigDict objects.""" + return f"{yaml.dump(convert_dict(self,src_class=ConfigDict,dst_class=dict))}" + +
    +[docs] + def to_dict(self) -> Dict[str, Any]: + """Convert the object into a simple dictionary. + + :return: A dictionary containing the same information as self + :rtype: Dict[str,Any] + """ + return convert_dict(self, src_class=ConfigDict, dst_class=dict)
    + + +
    +[docs] + def update(self, new_dict: Dict[str, Any]) -> None: + """Update the dictionary based on an input dictionary-like object. + + :param new_dict: Dictionary-like object. + :type new_dict: Dict[str, Any] + """ + new_dict = convert_dict(new_dict, src_class=dict) + for key, value in new_dict.items(): + if key in self.keys(): + if isinstance(value, dict): + if isinstance(self[key], ConfigDict): + self[key].update(value) + else: + self[key] = convert_dict(value, src_class=dict) + else: + self[key] = value + else: + if isinstance(value, dict): + self[key] = convert_dict(value, src_class=dict) + else: + self[key] = value
    +
    + + + +
    +[docs] +def convert_dict( + src_dict: Any, src_class: Type = omegaconf.dictconfig.DictConfig, dst_class: Type = ConfigDict, +) -> Any: + """Convert a dictionary-like object from a source class to a destination dictionary- + like object of a destination class. + + :param src_dict: The source dictionary to be converted + :param src_class: The type of the src dictionary + :param dst_class: The destination type of the returned dictionary-like object. + :type src_dict: Any + :type src_class: Type + :type dst_class: Type + :return: A dictionary-like instance of the dst_class copying the data from the + src_dict. + :rtype: Any + """ + dst_dict = {} + for key, value in src_dict.items(): + if isinstance(value, src_class): + dst_dict[key] = convert_dict(value, src_class=src_class, dst_class=dst_class) + else: + if isinstance(value, omegaconf.listconfig.ListConfig): + value = list(value) + dst_dict[key] = value + dst_dict = dst_class(dst_dict) + return dst_dict
    + +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/data_structures/data_dict.html b/master/_modules/mlxp/data_structures/data_dict.html new file mode 100644 index 0000000..70ce146 --- /dev/null +++ b/master/_modules/mlxp/data_structures/data_dict.html @@ -0,0 +1,800 @@ + + + + + + + + mlxp.data_structures.data_dict - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.data_structures.data_dict

    +"""Data structures returned by Reader object."""
    +
    +from __future__ import annotations
    +
    +import json
    +import os
    +from collections.abc import ItemsView, KeysView, Mapping, MutableMapping
    +from functools import reduce
    +from typing import Any, Dict, List, Tuple
    +
    +import pandas as pd
    +
    +from mlxp.errors import InvalidAggregationMapError, InvalidKeyError
    +
    +LAZYDATA = "LAZYDATA"
    +
    +
    +
    +[docs] +class AggregationMap: + """An abstract class whose children can perform aggregations on arrays.""" + + def __init__(self, keys, func=None, args={}, map_name=""): + self.func = func + self.keys = keys + self.args = args + self.map_name = map_name + self.name = self._make_name() + + def _make_name(self): + return self.map_name + "(" + ",".join(self.keys) + ")" + + def _apply(self, data: List[Dict[str, Any]]) -> Dict[str, Any]: + """Apply a map to input data and return the result. + + :param data: List of dictionaries containing data to be aggregated. + :type data: List[Dict[str,Any]] + :return: A dictionary containing the aggregated result. + :rtype: Dict[str,Any] + """ + # Input: List of dicts where each entry of the list + # contains data corresponding to a config. + # Output: Dict of outputs + raise NotImplementedError
    + + + +
    +[docs] +class DataDict(Mapping): + """A dictionary of key values pairs where some values are loaded lazyly from a + specific path whenever they are accessed.""" + + def __init__(self, flattened_dict, parent_dir=None): + self.config = {"flattened": flattened_dict, "lazy": _LazyDict(flattened_dict)} + + self.parent_dir = parent_dir + if self.parent_dir: + self._make_lazydict() + + def _flattened(self): + return self.config["flattened"] + + def _lazy(self): + return self.config["lazy"] + + def __getitem__(self, key): + """Get item corresponding to a key.""" + return self._lazy()[key] + + def __iter__(self): + """Iterate over elements of the dictionary.""" + return iter(self._lazy()) + + def __len__(self): + """Return the number of items in the dictionary.""" + return len(self._lazy()) + + def __repr__(self): + """Return a view of the dictionary.""" + return repr(self._flattened()) + + def _repr_html_(self): + """Return a view of the dictionary compatible with html.""" + import pandas as pd + + df = pd.DataFrame([self._flattened()]) + return df._repr_html_() + +
    +[docs] + def keys(self): + """Return keys of the dictionary.""" + return self._flattened().keys()
    + + +
    +[docs] + def items(self): + """Return items of the dictionary.""" + return self._lazy().items()
    + + + def _make_lazydict(self): + all_keys = [key for key, value in self._flattened().items() if value == LAZYDATA] + parent_keys = set([key.split(".")[0] for key in all_keys]) + # try: + self.lazydata_dict = { + parent_key: _LazyData(self.parent_dir, parent_key) for parent_key in parent_keys + } + # except: + # pass + + self._lazy().update({key: self.lazydata_dict[key.split(".")[0]].get_data for key in all_keys}) + +
    +[docs] + def update(self, new_dict): + """Update the dictionary with values from another dictionary.""" + copy_dict = {key: LAZYDATA if callable(value) else value for key, value in new_dict.items()} + self._lazy().update(new_dict) + self._flattened().update(copy_dict)
    + + + def _free_unused(self): + for key, data in self.lazydata_dict.items(): + data._free_unused()
    + + + +class _LazyDict(MutableMapping): + def __init__(self, *args, **kw): + self._raw_dict = dict(*args, **kw) + + def __getitem__(self, key): + obj = self._raw_dict.__getitem__(key) + if callable(obj): + return obj(key) + else: + return obj + + def __iter__(self): + return iter(self._raw_dict) + + def __len__(self): + return len(self._raw_dict) + + def __delitem__(self, key): + del self._raw_dict[key] + + def __setitem__(self, key, value): + self._raw_dict[key] = value + + +class _LazyData(object): + def __init__(self, parent_dir, file_name, extension=".json"): + self.file_name = file_name + self.parent_dir = parent_dir + self.path = os.path.join(self.parent_dir, self.file_name + extension) + self.used_keys = set() + self._data = None + + def get_data(self, key): + if self._data is None or key not in self.used_keys: + self._data = _load_dict_from_json(self.path, self.file_name) + self.used_keys.add(key) + return self._data[key] + + def _free_unused(self): + if self._data: + all_keys = set(self._data.keys()) + unused_keys = all_keys.difference(self.used_keys) + for key in unused_keys: + del self._data[key] + + +class _MyListProxy: + def __init__(self, list_of_dicts): + self.list_of_dicts = list_of_dicts + + def __getitem__(self, key): + return [d[key] for d in self.list_of_dicts] + + +
    +[docs] +class DataDictList(list): + """A list of elements of type DataDict. + + This list can be viewed as a dataframe where each row represents a given entry (a + DataDict) and columns represent the keys of the DataDicts. This structure allows to + load some columns lazyly. the content of some columns is loaded from its + corresponding file only when that column is explicitly accessed. + + It is displayed as a pandas dataframe and can be converted to it using the method + toPandasDF. + """ + + def __init__(self, iterable: List[DataDict]): + if iterable: + for config in iterable: + assert isinstance(config, DataDict) + + super().__init__(item for item in iterable) + self.pandas_lazy = None + self.pandas = None + self._keys = None + + def __repr__(self): + """Display the DataDictList object as a pandas dataframe.""" + return str(self.toPandasDF()) + + def _repr_html_(self): + """Display the DataDictList object as a pandas dataframe for html.""" + return self.toPandasDF()._repr_html_() + + def __getitem__(self, index): + """Return the item at a given index.""" + if isinstance(index, slice): + return _MyListProxy([d for d in super().__getitem__(index)]) + else: + return super().__getitem__(index) + +
    +[docs] + def toPandasDF(self, lazy=True) -> pd.DataFrame: + """Convert the list into a pandas dataframe. + + :param lazy: If true the pandas dataframe does not contain the results of data + loaded lazyly. + :return: A panda dataframe containing logs (configs and data) of the + DataDictList object + :rtype: pd.DataFrame + """ + if lazy: + if self.pandas_lazy is None: + self.pandas_lazy = pd.DataFrame([config._flattened() for config in self]) + return self.pandas_lazy + else: + if self.pandas is None: + self.pandas = pd.DataFrame([config._lazy() for config in self]) + return self.pandas
    + + +
    +[docs] + def keys(self) -> List[str]: + """Return a list of column names of the dataframe. + + :return: List of strings containing the column names of the dataframe + :rtype: List[str] + """ + if self._keys is None: + self._keys = list(self.toPandasDF().keys()) + return self._keys
    + + +
    +[docs] + def groupBy(self, list_group_keys: List[str]) -> GroupedDataDicts: + """Perform a groupby operation on the dataframe according to a list of colum + names (list_group_keys). + + Returns an object of the class GroupedDataDicts + + :params list_group_keys: a list of strings containing the names of the columns + to be grouped. + :type list_group_keys: List[str] + :return: A hierarchical dataframe grouped by the values of the columns provided + to list_group_keys. + :rtype: GroupedDataDicts + :raises InvalidKeyError: if one of the provided keys does not match any columns + of the dataframe. + """ + # Check if keys are valid + valid_keys = self.keys() + for key in list_group_keys: + try: + assert key in valid_keys + except AssertionError: + message = f"The provided key {key} is invalid! Valid keys are: {str(valid_keys)}" + raise InvalidKeyError(message) + + # Need to handle the case when keys are empty + collection_dict, group_keys, group_vals = _group_by(self, list_group_keys) + grouped_config = GroupedDataDicts(group_keys, collection_dict) + # grouped_config.pandas = pandas_grouped_df + return grouped_config
    + + +
    +[docs] + def config_diff(self, start_key="config") -> List[str]: + """Return a list of colums keys starting with 'start_key' and whose value varies + in the dataframe. + + :param start_key: A string with which all column names to be considered must + start. + :type start_key: str (default 'config') + :return: A list of strings containing the column names starting with 'start_key' + and whose values vary in the dataframe. + :rtype: List[str] + """ + diff_keys = [] + ref_dict = None + + for item in self: + if ref_dict is None: + ref_dict = item + else: + for key in item.keys(): + if key in ref_dict and key.startswith(start_key): + if ref_dict[key] != item[key]: + if key not in diff_keys: + diff_keys.append(key) + else: + if key not in diff_keys: + diff_keys.append(key) + return diff_keys
    +
    + + + +
    +[docs] +class GroupedDataDicts: + """A dictionary where each key represents the tuple of values taken by the grouped + column of some processed dataframe. + + The values corresponsing to each key are objects of type DataDictList containing a group. + This object is usually obtained as the output of the group_by method of the class DataDictList. + It is displayed as a hierarchical pandas dataframe and + can be converted to it using toPandasDF method. + + .. py:attribute:: group_keys + :type: List[str] + + A list of string containing the column names used for grouping. + + .. note:: It is possible to directly access the keys and values of self.grouped_dict + by identifying self with self.grouped_dict: + + - Using self[key] instead of self.grouped_dict[key] to access the value of self.grouped_dict at a given key + + - Using self.keys() to get all keys of self.grouped_dict. + + - Using self.items() to iterate over the key/value pairs of self.grouped_dict. + """ + + def __init__(self, group_keys: List[str], grouped_dict: Dict[Tuple[str, ...], DataDictList]): + """Create an GroupedDataDicts object. + + :param group_keys: A list of string containing the column names used for grouping. + :param grouped_dict: A dictionary where each key represents the tuple of values + taken by the grouped column of some processed dataframe. + The values corresponsing to each key are objects of type DataDictList containing a group. + + :type group_keys: List[str] + :type grouped_dict: Dict[Tuple[str, ...], DataDictList] + """ + self.group_keys = group_keys + self.grouped_dict = grouped_dict + self.group_vals = list(self.grouped_dict.keys()) + self._current_index = 0 + self.groups_size = len(self.group_vals) + self.pandas = None + + def __iter__(self): + """Iterate over the groups of the GroupedDataDicts object.""" + return iter(self.grouped_dict) + + def __getitem__(self, key: Tuple[str, ...]) -> DataDictList: + """Return the group corresponding to a given group key.""" + return self.grouped_dict[key] + + def __repr__(self): + """Display the GroupedDataDicts object as a pandas dataframe.""" + return str(self.toPandasDF()) + +
    +[docs] + def items(self) -> ItemsView: + """Return the items of the grouped dictionary. + + :return: items of the dictionary + :rtype: ItemsView + """ + return self.grouped_dict.items()
    + + +
    +[docs] + def keys(self) -> KeysView: + """Return the keys of the grouped dictionary. + + :return: keys of the dictionary + :rtype: KeysView + """ + return self.grouped_dict.keys()
    + + +
    +[docs] + def toPandasDF(self) -> pd.DataFrame: + """Convert. the list into a pandas dataframe. + + :return: A panda dataframe containing logs (configs and data) of the + DataDictList object + :rtype: pd.DataFrame + """ + if self.pandas is None: + all_configs = [] + for key, value in self.grouped_dict.items(): + data_dict = value[0]._flattened() + for name_key, val_key in zip(self.group_keys, list(key)): + if name_key not in data_dict.keys(): + data_dict[name_key] = val_key + if len(value) == 1: + value = [DataDict(data_dict)] + all_configs += [el for el in value] + self.pandas = DataDictList(all_configs).toPandasDF().set_index(list(self.group_keys)) + return self.pandas
    + + +
    +[docs] + def aggregate(self, aggregation_maps: List[AggregationMap]) -> Dict[str, GroupedDataDicts]: + """Perform aggregation of the leaf dataframes according to some aggregation maps + provided as input. + + This function returns a DataDictList object where each row represents a group + and each column consist of one of the following: + + - The results of the aggregation maps. + - The original group keys of the current GroupedDataDicts object. + + :params aggregation_maps: A list of aggregation maps. + Each map must be an instance of class inheriting from the abstract class AggregationMap. + :type aggregation_maps: List[AggregationMap] + :return: A DataDictList object containing the result of the aggregation. + :rtype: DataDictList + :raises InvalidAggregationMapError: if one of the aggregation map is not an instance of a class + inheriting from the abstract class AggregationMap. + """ + for agg_map in aggregation_maps: + _assert_valid_map(agg_map) + + return _aggregate(self, aggregation_maps)
    +
    + + + +def _group_by(config_dicts, list_group_keys): + collection_dict = {} + group_vals = set() + group_keys = tuple(list_group_keys) + for config_dict in config_dicts: + pkey_list = [config_dict._flattened()[group_key] for group_key in list_group_keys] + pkey_val = [str(pkey) for pkey in pkey_list if pkey is not None] + group_vals.add(tuple(pkey_val)) + _add_nested_keys_val(collection_dict, pkey_val, [config_dict]) + group_vals = list(group_vals) + + grouped_dict = {key: DataDictList(reduce(dict.get, key, collection_dict)) for key in group_vals} + + return grouped_dict, group_keys, group_vals + + +def _add_nested_keys_val(dictionary, keys, val): + dico = dictionary + parent = None + for key in keys: + parent = dico + try: + dico = dico[key] + except KeyError: + dico[key] = {} + dico = dico[key] + try: + parent[key] = dico + val + except TypeError: + parent[key] = val + + +def _aggregate(groupedconfigs, aggregation_maps): + # Returns a hierarchical dictionary whose leafs are instances of DataDictList + + agg_config_list = [] + for keys, config_list in groupedconfigs.items(): + agg_config = _aggregate_collection(config_list, aggregation_maps) + for key_name, key in zip(groupedconfigs.group_keys, list(keys)): + agg_config.update({key_name: key}) + agg_config_list.append(DataDict(agg_config)) + + return DataDictList(agg_config_list) + + +def _aggregate_collection(collection, agg_maps): + value_keys = _extract_keys_from_maps(agg_maps) + + val_array = [] + for config_dict in collection: + data = {key: config_dict[key] for key in value_keys} + val_array.append(data) + config_dict._free_unused() + + data_dict = {} + for agg_map in agg_maps: + agg_val, index = agg_map._apply(val_array) + data_dict.update(agg_val) + return data_dict + + +def _load_dict_from_json(json_file_name, file_name): + out_dict = {} + try: + with open(json_file_name) as f: + for line in f: + cur_dict = json.loads(line) + keys = cur_dict.keys() + for key in keys: + full_key = file_name + "." + key + if full_key in out_dict: + out_dict[full_key].append(cur_dict[key]) + else: + out_dict[full_key] = [cur_dict[key]] + except Exception as e: + print(str(e)) + return out_dict + + +def _extract_keys_from_maps(agg_maps): + seen = set() + extracted_keys = [] + for agg_map in agg_maps: + extracted_keys += [key for key in agg_map.keys if key not in seen and not seen.add(key)] + + return extracted_keys + + +def _assert_valid_map(agg_map): + try: + assert issubclass(type(agg_map), AggregationMap) + except AssertionError: + message = f"The map {str(agg_map)} must be an instance" + message += f"of a child class of {str(AggregationMap)}" + raise InvalidAggregationMapError(message) +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/data_structures/schemas.html b/master/_modules/mlxp/data_structures/schemas.html new file mode 100644 index 0000000..a49298e --- /dev/null +++ b/master/_modules/mlxp/data_structures/schemas.html @@ -0,0 +1,607 @@ + + + + + + + + mlxp.data_structures.schemas - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.data_structures.schemas

    +"""Structures for validating the configurations."""
    +
    +import os
    +import subprocess
    +from dataclasses import dataclass, field
    +from typing import Any
    +
    +from omegaconf import MISSING
    +
    +
    +def get_defautl_shell_path():
    +    try:
    +        command = "echo $SHELL"
    +        shell_path = subprocess.check_output(command, shell=True, stderr=subprocess.PIPE, text=True).strip()
    +        return shell_path
    +    except subprocess.CalledProcessError:
    +        print("Error running the command {command}")
    +        return ""
    +
    +
    +
    +[docs] +@dataclass +class ConfigScheduler: + """Structure of the scheduler config file. + + .. py:attribute:: name + :type: str + + Name of the scheduler's class. + + .. py:attribute:: env_cmd + :type: str + + Command for activating the working environment. (e.g. 'conda activate my_env') + + .. py:attribute:: shell_path + :type: Any + + Path to the shell used for submitting a job using a scheduler. (default '/bin/bash') + + .. py:attribute:: shell_config_cmd + :type: bool + + command for configuring the shell when submitting a job using a scheduler. (default 'source ~/.bashrc') + + .. py:attribute:: cleanup_cmd + :type: str + + A command for clearning the environment when executing a job submitted by the scheduler. (e.g.: 'module purge' for SLURM) + + .. py:attribute:: option_cmd + :type: List[str] + + A list of strings containing the scheduler's options for the job. This allows to specify the desired resources to the scheduler such as the duration of the job, the quantity and type of resources, etc. + """ + + name: str = "NoScheduler" + shell_path: str = get_defautl_shell_path() + shell_config_cmd: str = "" + env_cmd: str = "" + cleanup_cmd: str = "" + option_cmd: list = field(default_factory=lambda: [])
    + + + +
    +[docs] +@dataclass +class ConfigVersionManager: + """Structure of the config file for the version manager. + + .. py:attribute:: name + :type: str + + Name of the version manager's class. + """ + + name: str = MISSING
    + + + +
    +[docs] +@dataclass +class ConfigGitVM(ConfigVersionManager): + """Configs for using the GitVM version manager. + + It inherits the structure of the class VersionManager. + + .. py:attribute:: name + :type: str + + Name of the version manager's class. + + .. py:attribute:: parent_work_dir + :type: str + + The target parent directory of + the new working directory returned by the version manager + + .. py:attribute:: compute_requirements + :type: bool + + When set to true, the version manager stores a list of requirements and their version. + """ + + name: str = "GitVM" + parent_work_dir: str = os.path.join(".", ".work_dir") + compute_requirements: bool = False
    + + + +
    +[docs] +@dataclass +class ConfigLogger: + """Structure of the config file for the logs. + + The outputs for each run are saved in a directory of the form + 'parent_log_dir/log_id' which is stored in the variable 'path' during execution. + + .. py:attribute:: name + :type: str + + Class name of the logger to use + (default "DefaultLogger") + + .. py:attribute:: parent_log_dir + :type: str + + Absolute path of the parent directory where the logs of a run are stored. + (default "./logs") + + .. py:attribute:: forced_log_id + :type: int + + An id optionally provided by the user for the run. If forced_log_id is positive, + then the logs of the run will be stored under 'parent_log_dir/forced_log_id'. Otherwise, + the logs will be stored in a directory 'parent_log_dir/log_id' where 'log_id' + is assigned uniquely for the run during execution. + + .. py:attribute:: log_streams_to_file + :type: bool + + If true logs the system stdout and stderr of a run to a file named + "log.stdour" and "log.stderr" in the log directory. + """ + + name: str = "DefaultLogger" + parent_log_dir: str = os.path.join(".", "logs") + forced_log_id: int = -1 + log_streams_to_file: bool = False
    + + + +
    +[docs] +@dataclass +class Info: + """A structure storing general information about the run. + + The following variables are assigned during execution. + + .. py:attribute:: status + :type: str + + Status of a job. The status can take the following values: + + - STARTING: The metadata for the run have been created. + + - RUNNING: The experiment is currently running. + + - COMPLETE: The run is complete and did not through any error. + + - FAILED: The run stoped due to an error. + + .. py:attribute:: current_file_path + :type: str + + Name of the python file being executed. + + .. py:attribute:: executable + :type: str + + Path to the python executable used for executing the code. + + .. py:attribute:: hostname + :type: str + + Name of the host from which code is executed. + + .. py:attribute:: process_id + :type: int + + Id of the process assigned to the job during execution. + + .. py:attribute:: start_date + :type: Any + + Date at which job started. + + .. py:attribute:: start_time + :type: Any + + Time at which job started. + + .. py:attribute:: end_date + :type: Any + + Date at which job ended. + + .. py:attribute:: end_time + :type: Any + + Time at which job ended. + + .. py:attribute:: logger + :type: Any + + Logger info, whenever used. + + .. py:attribute:: scheduler + :type: Any + + scheduler info, whenever used. + + .. py:attribute:: version_manager + :type: Any + + version_manager info, whenever used. + """ + + status: str = "STARTING" + current_file_path: str = "" + executable: str = "" + hostname: str = "" + process_id: int = -1 + start_date: Any = "" + start_time: Any = "" + end_date: Any = "" + end_time: Any = "" + work_dir: str = os.getcwd() + logger: Any = None + scheduler: Any = None + version_manager: Any = None
    + + + +
    +[docs] +@dataclass +class MLXPConfig: + """Default settings of MLXP. + + .. py:attribute:: logger + :type: ConfigLogger + + The logger's settings. + (default ConfigLogger) + + .. py:attribute:: scheduler + :type: ConfigScheduler + + The scheduler's settings. + (default ConfigScheduler) + + .. py:attribute:: version_manager + :type: ConfigVersionManager + + The version_manager's settings. + (default ConfigGitVM) + + .. py:attribute:: use_version_manager + :type: bool + + If true, uses the version manager. + (default False) + + .. py:attribute:: use_scheduler + :type: bool + + If true, uses the scheduler. + (default False) + + .. py:attribute:: use_logger + :type: bool + + If true, uses the logger. + (default True) + + .. py:attribute:: interactive_mode + :type: bool + + A variable controlling MLXP's interactive mode. + + 1. If 'interactive_mode==True', MLXP uses the interactive mode whenever applicable: + + - When 'use_scheduler==True' and 'scheduler.name=="NoScheduler"': + Asks the user to select a valid scheduler. + - When 'use_version_manager==True': Asks the user: + + - If untracked files should be added. + - If uncommitted changes should be committed. + - If a copy of the current repository based on the latest commit should be made (if not already existing) to execute the code from there. Otherwise, code is executed from the current directory. + + 2. If 'interactive_mode==False', no interactive mode is used and current options are used: + + - When 'use_scheduler==True' and 'scheduler.name=="NoScheduler"': An error is thrown + - When 'use_version_manager==True': + + - Existing untracked files or uncommitted changes are ignored. + - A copy of the code is made based on the latest commit (if not already existing) and code is executed from there. + """ + + logger: ConfigLogger = field(default_factory=lambda: ConfigLogger()) + scheduler: ConfigScheduler = field(default_factory=lambda: ConfigScheduler()) + version_manager: ConfigVersionManager = field(default_factory=lambda: ConfigGitVM()) + use_version_manager: bool = False + use_scheduler: bool = False + use_logger: bool = True + interactive_mode: bool = True
    + + + +
    +[docs] +@dataclass +class Metadata: + """The structure of the config file. + + .. py:attribute:: info + :type: Info + + Contains config information of the run + (hostname, command, application, etc) + (default Info) + + .. py:attribute:: mlxp + :type: MLXPConfig + + Default settings of MLXP. + (default MLXPConfig) + + .. py:attribute:: config + :type: Any + + Contains the user's defined configs that are specific to the run. + """ + + info: Info = field(default_factory=lambda: Info()) + mlxp: MLXPConfig = field(default_factory=lambda: MLXPConfig()) + config: Any = None
    + +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/launcher.html b/master/_modules/mlxp/launcher.html new file mode 100644 index 0000000..35678af --- /dev/null +++ b/master/_modules/mlxp/launcher.html @@ -0,0 +1,718 @@ + + + + + + + + mlxp.launcher - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.launcher

    +"""The launcher allows launching multiple experiments on a cluster using hydra."""
    +
    +import atexit
    +import copy
    +import functools
    +import importlib
    +import os
    +import signal
    +import socket
    +import sys
    +from dataclasses import dataclass
    +from datetime import datetime
    +from typing import Any, Callable, Dict, Optional, TypeVar, Union
    +
    +import yaml
    +from hydra import version
    +from hydra._internal.utils import _run_hydra, get_args_parser
    +from hydra.core.hydra_config import HydraConfig
    +from hydra.types import TaskFunction
    +from omegaconf import DictConfig
    +
    +import mlxp
    +from mlxp._internal.configure import _build_config, _process_config_path
    +from mlxp.data_structures.config_dict import ConfigDict
    +from mlxp.enumerations import Status
    +from mlxp.errors import InvalidSchedulerError, MissingFieldError
    +from mlxp.logger import Logger
    +
    +_UNSPECIFIED_: Any = object()
    +
    +
    +hydra_defaults_dict = {
    +    "hydra.mode": "MULTIRUN",
    +    "hydra.output_subdir": "null",
    +    "hydra.run.dir": ".",
    +    "hydra.sweep.dir": ".",
    +    "hydra.sweep.subdir": ".",
    +    "hydra/job_logging": "disabled",
    +    "hydra/hydra_logging": "disabled",
    +}
    +
    +
    +interactive_mode_file = os.path.join(hydra_defaults_dict["hydra.sweep.dir"], "user_choices.yaml")
    +
    +
    +def _clean_dir():
    +    sweep_dir = hydra_defaults_dict["hydra.sweep.dir"]
    +    try:
    +        os.remove(os.path.join(sweep_dir, "multirun.yaml"))
    +        os.remove(interactive_mode_file)
    +    except FileNotFoundError:
    +        pass
    +
    +
    +atexit.register(_clean_dir)
    +signal.signal(signal.SIGTERM, _clean_dir)
    +signal.signal(signal.SIGINT, _clean_dir)
    +
    +
    +
    +[docs] +def launch( + config_path: str = "configs", seeding_function: Union[Callable[[Any], None], None] = None, +) -> Callable[[TaskFunction], Any]: + """Create a decorator of the main function to be executed. + + :example: + + .. code-block:: python + + import mlxp + + @mlxp.launch(config_path='configs', + seeding_function=set_seeds) + def my_func(ctx: mlxp.Context)->None: + + print(ctx.config) + + if __name__ == "__main__": + my_func() + + :param config_path: The config path, a directory where the default user configuration and MLXP settings are stored. + :param seeding_function: A callable for setting the seed of random number generators. It is called with the seed option in 'ctx.config.seed' passed to it. + :type config_path: str (default './configs') + :type seeding_function: Union[Callable[[Any], None],None] (default None) + :return: A decorator of the main function to be executed. + :type: Callable[[TaskFunction], Any] + + This function allows four main functionalities: + + 1. Composing configurations from multiple files using hydra (see hydra-core package). + This behavior is similar to the decorator hydra.main provided in the hydra-core package: + https://github.com/facebookresearch/hydra/blob/main/hydra/main.py. + The configs are contained in a yaml file 'config.yaml' stored in + the directory 'config_path' passed as argument to this function. + Unlike hydra.main which decorates functions taking an OmegaConf object, + mlxp.launch decorates functions with the following signature: main(ctx: mlxp.Context). + The ctx object is created on the fly during the execution of the program + and stores information about the run. + In particular, the field cfg.config stores the options contained in the config file 'config.yaml'. + Additionally, cfg.logger, provides a logger object of the class mlxp.Logger for logging results of the run. + Just like in hydra, it is also possible to override the configs from the command line and + to sweep over multiple values of a given configuration when executing python code. + See: https://hydra.cc/docs/intro/ for complete documentation on how to use Hydra. + + 2. Seeding: Additionally, mlxp.launch takes an optional argument 'seeding_function'. + By default, 'seeding_function' is None and does nothing. If a callable object is passed to it, this object is called with the argument cfg.config.seed + right before calling the decorated function. The user-defined callable is meant to set the seed of any random number generator used in the code. + In that case, the option 'ctx.config.seed' must be none empty. + + 3. Submitting jobs to a cluster queue using a scheduler. + This is achieved by setting the config value scheduler.name to the name of a valid scheduler. + Two job schedulers are currently supported by default: ['OARScheduler', 'SLURMScheduler' ]. + It is possible to support other schedulers by + defining a subclass of the abstract class Scheduler. + + 4. Version management: Creating a 'safe' working directory when submitting jobs to a cluster. + This functionality sets the working directory to a new location + created by making a copy of the code based on the latest commit + to a separate destination, if it doesn't exist already. Executing code + from this copy allows separting development code from code deployed in a cluster. + It also allows recovering exactly the code used for a given run. + This behavior can be modified by using a different version manager VersionManager (default GitVM). + + .. note:: Currently, this functionality expects the executed python file to part of a git repository. + """ + config_name = "config" + version_base = None # by default set the version base for hydra to None. + version.setbase(version_base) + + def hydra_decorator(task_function: TaskFunction) -> Callable[[], None]: + # task_function = launch(task_function) + @functools.wraps(task_function) + def decorated_main(cfg_passthrough: Optional[DictConfig] = None) -> Any: + processed_config_path = _process_config_path(config_path, task_function.__code__.co_filename) + os.makedirs(processed_config_path, exist_ok=True) + + if cfg_passthrough is not None: + return task_function(cfg_passthrough) + else: + args_parser = get_args_parser() + args = args_parser.parse_args() + + # Setting hydra defaults + hydra_defaults = [key + "=" + value for key, value in hydra_defaults_dict.items()] + overrides = args.overrides + hydra_defaults + setattr(args, "overrides", overrides) + + _clean_dir() + + _run_hydra( + args=args, + args_parser=args_parser, + task_function=task_function, + config_path=processed_config_path, + config_name=config_name, + ) + + _clean_dir() + + return decorated_main + + def launcher_decorator(task_function): + @functools.wraps(task_function) + def decorated_task(overrides): + co_filename = task_function.__code__.co_filename + + cfg, im_handler = _build_config( + config_path, config_name, co_filename, overrides, interactive_mode_file + ) + now = datetime.now() + info = { + "hostname": socket.gethostname(), + "process_id": os.getpid(), + "executable": sys.executable, + "current_file_path": task_function.__code__.co_filename, + "start_date": now.strftime("%d/%m/%Y"), + "start_time": now.strftime("%H:%M:%S"), + "status": Status.STARTING.value, + } + + cfg.update({"info": info}) + + if cfg.mlxp.use_version_manager: + version_manager = _instance_from_config(cfg.mlxp.version_manager) + version_manager._set_im_handler(im_handler) + work_dir = version_manager.make_working_directory() + cfg.update({"info": {"version_manager": version_manager.get_info()}}) + else: + work_dir = os.getcwd() + + cfg.update({"info": {"work_dir": work_dir}}) + + if cfg.mlxp.use_scheduler: + try: + scheduler = _instance_from_config(cfg.mlxp.scheduler, module=mlxp.scheduler) + if not cfg.mlxp.use_logger: + print("Logger is currently disabled.") + print("To use the scheduler, the logger must be enabled") + print("Enabling the logger...") + cfg.mlxp.use_logger = True + except AttributeError: + error_msg = cfg.mlxp.scheduler.name + " is not a valid scheduler\n" + error_msg += "There are two options to prevent this error from happening:\n" + error_msg += " 1) Disable the scheduler by setting mlxp.use_scheduler=False\n" + error_msg += " 2) Configure a valid scheduler: for instance, you can use the interactive mode to select one of the default schedulers\n" + error_msg += "For more information about scheduler configuration, please refer to the documentation" + raise InvalidSchedulerError(error_msg) from None + # scheduler = None + # cfg.mlxp.use_scheduler = False + else: + scheduler = None + + if cfg.mlxp.use_logger: + logger = _instance_from_config(cfg.mlxp.logger) + log_id = logger.log_id + log_dir = logger.log_dir + parent_log_dir = logger.parent_log_dir + cfg.update({"info": {"logger": logger.get_info()}}) + cfg.update({"config": _get_configs(log_dir)}) + else: + logger = None + + if cfg.mlxp.use_scheduler: + main_cmd = _main_job_command( + cfg.info.executable, cfg.info.current_file_path, work_dir, parent_log_dir, log_id, + ) + + scheduler.submit_job(main_cmd, log_dir) + cfg.update({"info": {"scheduler": scheduler.get_info()}}) + logger._log_configs(cfg) + + else: + # ## Setting up the working directory + cur_dir = os.getcwd() + _set_work_dir(work_dir) + + if logger: + cfg.update({"info": _get_mlxp_configs(log_dir)}) + try: + cfg.update({"info": {"status": Status.RUNNING.value}}) + if logger: + logger._log_configs(cfg) + if seeding_function: + try: + assert "seed" in cfg.config.keys() + except AssertionError: + msg = "Missing field: The 'config' must contain a field named 'seed'\n" + msg += "provided as argument to the function 'seeding_function' " + raise MissingFieldError(msg) + seeding_function(cfg.config.seed) + + ctx = Context(config=cfg.config, mlxp=cfg.mlxp, info=cfg.info, logger=logger) + task_function(ctx) + now = datetime.now() + info = { + "end_date": now.strftime("%d/%m/%Y"), + "end_time": now.strftime("%H:%M:%S"), + "status": Status.COMPLETE.value, + } + + cfg.update({"info": info}) + + if logger: + logger._log_configs(cfg) + + _reset_work_dir(cur_dir) + return None + except Exception: + now = datetime.now() + info = { + "end_date": now.strftime("%d/%m/%Y"), + "end_time": now.strftime("%H:%M:%S"), + "status": Status.FAILED.value, + } + + cfg.update({"info": info}) + + if logger: + logger._log_configs(cfg) + + _reset_work_dir(cur_dir) + raise + + decorated_task.__code__ = decorated_task.__code__.replace( + co_filename=task_function.__code__.co_filename + ) + + return decorated_task + + def composed_decorator(task_function: TaskFunction) -> Callable[[], None]: + decorated_task = launcher_decorator(task_function) + task_function = hydra_decorator(decorated_task) + + return task_function + + return composed_decorator
    + + + +
    +[docs] +@dataclass +class Context: + """The contex object passed to the decorated function when using decorator + mlxp.launch. + + .. py:attribute:: config + :type: ConfigDict + + A structure containing project-specific options provided by the user. + These options are loaded from a yaml file 'config.yaml' contained in the directory 'config_path' + provided as argument to the decorator mlxp.launch. It's content can be overriden from the command line. + + .. py:attribute:: mlxp + :type: ConfigDict + + A structure containing MLXP's default settings for the project. + Its content is loaded from a yaml file 'mlxp.yaml' located in the same directory 'config.yaml'. + + .. py:attribute:: info + :type: ConfigDict + + A structure containing information about the current run: ex. status, start time, hostname, etc. + + .. py:attribute:: logger + :type: Union[Logger,None] + + A logger object that can be used for logging variables (metrics, checkpoints, artifacts). + When logging is enabled, these variables are all stored in a uniquely defined directory. + """ + + config: ConfigDict = None + mlxp: ConfigDict = None + info: ConfigDict = None + logger: Union[Logger, None] = None
    + + + +T = TypeVar("T") + + +
    +[docs] +def instance_from_dict(class_name: str, arguments: Dict[str, Any], module: Any = mlxp) -> T: + """Create an instance of a class based on a dictionary of arguments. + + :param class_name: The name of the class + :param arguments: A dictionary of arguments to the class constructor + :type class_name: str + :type arguments: Dict[str,Any] + :return: An instance of a class 'class_name' constructed using the arguments in + 'arguments'. + :rtype: T + """ + attr = _import_module(class_name, module) + if arguments: + attr = attr(**arguments) + else: + attr = attr() + + return attr
    + + + +def _import_module(module_name, main_module): + module, attr = os.path.splitext(module_name) + if not attr: + return getattr(main_module, module) + else: + try: + module = importlib.import_module(module) + return getattr(module, attr[1:]) + except BaseException: + try: + module = _import_module(module) + return getattr(module, attr[1:]) + except BaseException: + return eval(module + attr[1:]) + + +def _instance_from_config(config, module=mlxp): + config_module_name = "name" + config = copy.deepcopy(config) + module_name = config.pop(config_module_name) + + return instance_from_dict(module_name, config, module=module) + + +def _set_work_dir(work_dir): + os.chdir(work_dir) + sys.path.insert(0, work_dir) + + +def _reset_work_dir(cur_dir): + os.chdir(cur_dir) + sys.path = sys.path[1:] + + +def _get_mlxp_configs(log_dir): + from mlxp.enumerations import Directories + + abs_name = os.path.join(log_dir, Directories.Metadata.value, "info.yaml") + configs_info = {} + + if os.path.isfile(abs_name): + with open(abs_name, "r") as file: + configs = yaml.safe_load(file) + if "scheduler" in configs: + configs_info.update({"scheduler": configs["scheduler"]}) + if "version_manager" in configs: + configs_info.update({"version_manager": configs["version_manager"]}) + if "logger" in configs: + configs_info.update({"logger": configs["logger"]}) + + return configs_info + + +def _get_configs(log_dir): + from mlxp.enumerations import Directories + + abs_name = os.path.join(log_dir, Directories.Metadata.value, "config.yaml") + configs = {} + + if os.path.isfile(abs_name): + with open(abs_name, "r") as file: + configs = yaml.safe_load(file) + + return configs + + +def _main_job_command(executable, current_file_path, work_dir, parent_log_dir, job_id): + exec_file = os.path.relpath(current_file_path, os.getcwd()) + + args = _get_overrides() + values = [ + f"cd {work_dir}", + f"{executable} {exec_file} {args} \ + +mlxp.logger.forced_log_id={job_id}\ + +mlxp.logger.parent_log_dir={parent_log_dir} \ + +mlxp.use_scheduler={False}\ + +mlxp.use_version_manager={False}\ + +mlxp.interactive_mode={False}", + ] + + values = [f"{val}\n" for val in values] + return "".join(values) + + +def _get_overrides(): + hydra_cfg = HydraConfig.get() + overrides = hydra_cfg.overrides.task + + def filter_fn(x): + return ( + ("version_manager" not in x) + and ("scheduler" not in x) + and ("logger.parent_log_dir" not in x) + and ("logger.forced_log_id" not in x) + and ("interactive_mode" not in x) + ) + + filtered_args = list(filter(filter_fn, overrides)) + args = " ".join(filtered_args) + return args +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/logger.html b/master/_modules/mlxp/logger.html new file mode 100644 index 0000000..13d2706 --- /dev/null +++ b/master/_modules/mlxp/logger.html @@ -0,0 +1,572 @@ + + + + + + + + mlxp.logger - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.logger

    +"""The logger can saves the configs and outputs of an experiment."""
    +
    +
    +import abc
    +import json
    +import os
    +import random
    +import sys
    +from time import sleep
    +from typing import Any, Dict, Union
    +
    +import dill as pkl
    +import yaml
    +
    +from mlxp.data_structures.artifacts import Artifact, Checkpoint
    +from mlxp.data_structures.config_dict import ConfigDict
    +from mlxp.enumerations import Directories
    +from mlxp.errors import InvalidArtifactError, InvalidKeyError
    +
    +
    +
    +[docs] +class Logger(abc.ABC): + """A logger that allows saving outputs of the run in a uniquely assigned directory + for the specific run. + + The logger creates a directory with a default file structure: + + .. code-block:: console + + parent_log_dir/log_id: + ├── metadata/ + │ └── metadata.yaml : Contains the configs of the run + ├── metrics/ + │ ├── 'file_name'.json : Contains a the outputs stored + │ │ when running the method log_metrics(metrics_dict, file_name) + │ └── .keys/ Directory of yaml files containing the keys of dictionaries saved using log_metrics. + │ Each file 'file_name'.yaml corresponds to a json file 'file_name'.json containing the dictionaries. + ├── artifacts/ : A directory where each subdirectory contains objects of the same subclass of Artifact saved using the method log_artifact. + ├── log.stderr: Contains error logs (Only if job is submitted in bacth mode to a scheduler) + ├── log.stdout: Contains output logs (Only if job is submitted in bacth mode to a scheduler) + └── script.sh: Contains the script for running the job (Only if job is submitted using a job scheduler) + + .. py:attribute:: parent_log_dir + :type: str + + The parent directory where the directory of the run is created. + """ + + def __init__(self, parent_log_dir, forced_log_id=-1, log_streams_to_file=False): + """Create a logger object. + + :param parent_log_dir: The parent directory where the directory of the run is + created. + :param forced_log_id: A forced log_id for the run. When forced_log_id is + positive, the log_id of the run is set forced_log_id. If forced_log_id is + negative, then the logger assigns a new unique log_id for the run. + :param log_streams_to_file: When true, the stdout and stderr files are saved in + files 'log_dir/log.stdout' and 'log_dir/log.stderr'. + :type parent_log_dir: str + :type forced_log_id: int + :type log_streams_to_file: bool + """ + self.parent_log_dir = os.path.abspath(parent_log_dir) + self.forced_log_id = forced_log_id + self._metric_dict_keys = {} + self._log_id, self._log_dir = _make_log_dir(forced_log_id, self.parent_log_dir) + + self.metrics_dir = os.path.join(self._log_dir, Directories.Metrics.value) + self.artifacts_dir = os.path.join(self._log_dir, Directories.Artifacts.value) + self.metadata_dir = os.path.join(self._log_dir, Directories.Metadata.value) + self.session_dir = os.path.join( + self._log_dir, Directories.Artifacts.value, Directories.Sessions.value + ) + os.makedirs(self.metrics_dir, exist_ok=True) + os.makedirs(self.artifacts_dir, exist_ok=True) + os.makedirs(self.metadata_dir, exist_ok=True) + + if log_streams_to_file: + log_stdout = open(os.path.join(self._log_dir, "log.stdout"), "w", buffering=1) + sys.stdout = log_stdout + log_stderr = open(os.path.join(self._log_dir, "log.stderr"), "w", buffering=1) + sys.stderr = log_stderr + + def _log_configs(self, config: ConfigDict) -> None: + file_name = os.path.join(self.metadata_dir, "config") + with open(file_name + ".yaml", "w") as f: + yaml.dump(config.config.to_dict(), f) + file_name = os.path.join(self.metadata_dir, "info") + with open(file_name + ".yaml", "w") as f: + yaml.dump(config.info.to_dict(), f) + file_name = os.path.join(self.metadata_dir, "mlxp") + with open(file_name + ".yaml", "w") as f: + yaml.dump(config.mlxp.to_dict(), f) + +
    +[docs] + def get_info(self) -> None: + """Return a dictionary containing information about the logger settings used for + the run. + + :return: Dictionary containing information about the logger settings used for + the run. + :rtype: Dict[str, Any] + """ + return { + "log_id": self.log_id, + "log_dir": self.log_dir, + "metrics_dir": self.metrics_dir, + "metadata_dir": self.metadata_dir, + "artifacts_dir": self.artifacts_dir, + }
    + + +
    +[docs] + def log_metrics(self, metrics_dict, log_name): + """Save a dictionary of scalars to a json file named log_name+'.json' in the + directory log_dir/metrics. + + If the file exists already, the dictionary is appended at the end of the file. + + :param metrics_dict: Dictonary of scalar values to be saved, the values can be + either int, float of string. + :param log_name: Name of the json file where to save the metric_dict. + :type metrics_dict: Dict[str, Union[int, float, str]] + :type log_name: str + :return: None + """ + invalid_names = ["info", "config", "mlxp"] + try: + assert log_name not in ["info", "config", "mlxp"] + except AssertionError: + raise InvalidKeyError( + f"The chosen log_nam: {log_name} is invalid! It must be different from these protected names: {invalid_names} " + ) + + self._log_metrics_key(metrics_dict, log_name) + file_name = os.path.join(self.metrics_dir, log_name) + return self._log_metrics(metrics_dict, file_name)
    + + + def _log_metrics(self, metrics_dict: Dict[str, Union[int, float, str]], file_name: str) -> None: + with open(file_name + ".json", "a") as f: + json.dump(metrics_dict, f) + f.write(os.linesep) + +
    +[docs] + def log_artifact(self, artifact: Artifact, log_name: str) -> None: + """Save the attribute obj of an instance inheriting from the abstract class Artifact into a destination file: 'log_dir/artifacts/artifact_class_name/log_name'. + + The directory 'artifact_class_name' is named after + the child class inheriting from Artifact. + + :param artifact: An instance of a class inheriting from the abstract class Artifact. + :param log_name: Name of the file where the artifact is saved. + :type artifact: Artifact + :type log_name: str + :return: None + :raises Assertionerror: if artifact is not an instance of Artifact. + """ + try: + assert isinstance(artifact, Artifact) + except AssertionError: + raise InvalidArtifactError( + f"The object {artifact} must be an instance of the abstract class {Artifact}. Instead, it is of type {type(artifact)}" + ) + + subdir = os.path.join(self.artifacts_dir, type(artifact).__name__) + os.makedirs(subdir, exist_ok=True) + fname = os.path.join(subdir, log_name) + artifact._save(fname)
    + + + @property + def log_id(self): + """Return the uniquely assigned id of the run. + + Ensures the log_id to be immutable. + + :rtype: int + :return: The id of the run. + """ + return self._log_id + + @property + def log_dir(self): + """Return the path to the directory where outputs of the run are saved. + + Ensures the log_dir to be immutable. + + :rtype: str + :return: The path to the output directory of the run. + """ + return self._log_dir + + def log_session(self): + + os.makedirs(self.session_dir, exist_ok=True) + filename = os.path.join(self.session_dir, "last_session.pkl") + pkl.dump_session(filename) + + def load_session(self): + filename = os.path.join(self.session_dir, "last_session.pkl") + pkl.load_session(filename) + + def _log_metrics_key(self, metrics_dict: Dict[str, Union[int, float, str]], log_name: str): + # Logging new keys appearing in a metrics dict + + if log_name not in self._metric_dict_keys.keys(): + self._metric_dict_keys[log_name] = [] + + new_keys = [] + for key in metrics_dict.keys(): + if key not in self._metric_dict_keys[log_name]: + new_keys.append(key) + self._metric_dict_keys[log_name] += new_keys + dict_file = {key: "" for key in new_keys} + keys_dir = os.path.join(self.metrics_dir, ".keys") + os.makedirs(keys_dir, exist_ok=True) + log_name = os.path.join(keys_dir, log_name) + cur_yaml = {} + try: + with open(log_name + ".yaml", "r") as f: + cur_yaml = yaml.safe_load(f) + except BaseException: + pass + cur_yaml.update(dict_file) + with open(log_name + ".yaml", "w") as f: + yaml.dump(cur_yaml, f)
    + + + +
    +[docs] +class DefaultLogger(Logger): + """A logger that provides methods for logging checkpoints and loading them.""" + + def __init__(self, parent_log_dir, forced_log_id, log_streams_to_file=False): + super().__init__(parent_log_dir, forced_log_id, log_streams_to_file=log_streams_to_file) + +
    +[docs] + def log_checkpoint(self, checkpoint: Any, log_name: str = "checkpoint") -> None: + """Save a checkpoint for later use, this can be any serializable object. + + This method is intended for saving the latest state of the run, thus, by + default, the checkpoint name is set to 'last.pkl'. For custom checkpointing + please use the method log_artifacts + + :param checkpoint: Any serializable object to be stored in + 'run_dir/Artifacts/Checkpoint/last.pkl'. + :type checkpoint: Any + :param log_name: Name of the file where the checkpoint is saved. + :type log_name: str (default 'checkpoint') + """ + self.log_artifact(Checkpoint(checkpoint, ".pkl"), log_name=log_name)
    + + +
    +[docs] + def load_checkpoint(self, log_name, root=None) -> Any: + """Restore a checkpoint from 'run_dir/Artifacts/Checkpoint/log_name.pkl' or a + user defined directory root. + + Raises an error if it fails to do so. + + :param log_name: Name of the file where the checkpoint is saved. + :type log_name: str (default 'checkpoint') + :param root: Absolute path to the checkpoint. + If set to None, the logger looks for the checkpoint in 'run_dir/Artifacts/Checkpoint'. + :type root: Union[str,None] (default 'None') + return: Any serializable object stored in 'run_dir/Artifacts/Checkpoint/last.pkl'. + rtype: Any + """ + + if root: + checkpoint_name = os.path.join(root, log_name + ".pkl") + else: + checkpoint_name = os.path.join(self.artifacts_dir, "Checkpoint", log_name + ".pkl") + with open(checkpoint_name, "rb") as f: + checkpoint = pkl.load(f) + return checkpoint
    +
    + + + +def _make_log_dir(forced_log_id, root): + os.makedirs(root, exist_ok=True) + log_dir = None + if forced_log_id < 0: + fail_count = 0 + while log_dir is None: + try: + _id = _maximum_existing_log_id(root) + 1 + log_dir_tmp = os.path.join(root, str(_id)) + os.mkdir(log_dir_tmp) + log_dir = log_dir_tmp # set log_dir only if successful creation + except FileExistsError: # Catch race conditions + sleep(random.random()) + if fail_count < 1000: + fail_count += 1 + else: # expect that something else went wrong + raise + else: + assert isinstance(forced_log_id, int) + _id = forced_log_id + log_dir = os.path.join(root, str(_id)) + os.makedirs(log_dir, exist_ok=True) + return _id, log_dir + + +def _maximum_existing_log_id(root): + dir_nrs = [int(d) for d in os.listdir(root) if os.path.isdir(os.path.join(root, d)) and d.isdigit()] + if dir_nrs: + return max(dir_nrs) + else: + return 0 +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/mlxpsub.html b/master/_modules/mlxp/mlxpsub.html new file mode 100644 index 0000000..d3cb732 --- /dev/null +++ b/master/_modules/mlxp/mlxpsub.html @@ -0,0 +1,439 @@ + + + + + + + + mlxp.mlxpsub - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.mlxpsub

    +import atexit
    +import os
    +import signal
    +import sys
    +import tempfile
    +
    +import yaml
    +
    +from mlxp.scheduler import Schedulers_dict
    +
    +scheduler_env_var = "MLXP_SCHEDULER"
    +
    +
    +def process_bash_script(bash_script_name):
    +    shebang = ""
    +    scheduler = {"option_cmd": [], "env_cmd": [], "name": "NoScheduler", "shell_path": ""}
    +
    +    with open(bash_script_name, "r") as script_file:
    +        for line in script_file:
    +            line = line.strip()
    +
    +            if not line:
    +                continue
    +
    +            if line.startswith("#!"):
    +                shebang = line[2:]
    +                scheduler["shell_path"] = shebang
    +                continue  # Skip shebang line
    +
    +            elif line.startswith("#"):
    +                # Assuming scheduler instructions are comments starting with '#'
    +                splitted_line = line.split(" ")
    +
    +                if len(splitted_line) > 1:
    +                    directive = splitted_line[0]
    +                    option_cmd = " ".join(splitted_line[1:])
    +                    if directive in Schedulers_dict:
    +                        scheduler["name"] = Schedulers_dict[directive]["name"]
    +                        scheduler["option_cmd"].append(option_cmd)
    +
    +            elif not skip_cmd(line):
    +                scheduler["env_cmd"].append(line)
    +                continue
    +
    +    if scheduler["name"] == "NoScheduler":
    +        print("Warning: No valid scheduler syntax were found")
    +        print("Valid scheduler")
    +
    +    configs = {"scheduler": scheduler, "use_scheduler": True}
    +    return configs, shebang
    +
    +
    +def skip_cmd(line):
    +    lower_line = line.lower()
    +    if lower_line.startswith("python ") or lower_line.startswith("python3 "):
    +        return True
    +    else:
    +        if (" python " in lower_line) or (" python3 " in lower_line):
    +            return True
    +
    +    # Skip assignment
    +    split_eq = line.split("=")
    +    if len(split_eq) > 1:
    +        return True
    +    if line.startswith("cd") or line.startswith("#"):
    +        return True
    +
    +    return False
    +
    +
    +def handle_launch_cmd(bash_cmd, bash_script_name):
    +    if sys.platform.startswith("win"):
    +        # Windows
    +        if bash_script_name.endswith(".sh"):
    +            command = f"{bash_cmd}  {bash_script_name}"
    +        elif bash_script_name.endswith(".ps1"):
    +            command = f"powershell -File {bash_script_name}"
    +        else:
    +            command = f"{bash_script_name}"
    +    else:
    +        # Assume non-Windows (Unix-like)
    +        command = f"{bash_cmd}  {bash_script_name}"
    +    return command
    +
    +
    +def run_python_script(bash_cmd, bash_script_name, scheduler_file_name):
    +    cmd = handle_launch_cmd(bash_cmd, bash_script_name)
    +    envs = os.environ
    +    envs[scheduler_env_var] = f"{scheduler_file_name}"
    +    code = os.spawnvpe(os.P_WAIT, bash_cmd, cmd.split(), envs)
    +    if code == 127:
    +        sys.stderr.write("{0}: command not found\n".format(bash_cmd))
    +    else:
    +        print(code)
    +
    +    # print(process_output)
    +
    +
    +
    +[docs] +def mlxpsub(): + """A function for submitting a script to a job scheduler. + Usage: mlxpsub <script.sh> + + The 'script.sh' must contain the scheduler's options defining + the resource allocation for each individual job. + Below is an example of 'script.sh' + + :example: + + .. code-block:: console + + #!/bin/bash + + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + #OAR -p gpumem>'16000' + + python main.py optimizer.lr=10.,1.,0.1 seed=1,2,3,4 + python main.py model.num_units=100,200 seed=1,2,3,4 + + The command assumes the script contains at least a python command of the form: + python <python_file_name.py> options_1=A,B,C option_2=X,Y + where <python_file_name.py> is a python file that uses MLXP for launching. + + MLXP creates a script for each job corresponding to an option setting. + Each script is located in a directory of the form parent_log_dir/log_id, + where log_id is automatically assigned by MLXP for each job. + + Here is an example of the first created script in 'logs/1/script.sh' + + :example: + + .. code-block:: console + + #!/bin/bash + #OAR -n logs/1 + #OAR -E /root/logs/1/log.stderr + #OAR -O /root/logs/1/log.stdout + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + #OAR -p gpumem>'16000' + + cd /root/workdir/ + python main.py optimizer.lr=10. seed=1 + + As you can see, MLXP automatically assigns values for + the job's name, stdout and stderr file paths, + so there is no need to specify those in the original script 'script.sh'. + These scripts contain the same scheduler's options + as in 'script.sh' and a single python command using one specific option setting: optimizer.lr=10. seed=1 + Additionally, MLXP pre-processes the python command to extract its working directory + and set it explicitly in the newly created script before the python command. + + .. note:: + It is also possible to have other commands in the 'script.sh', + for instance to activate an environment: (conda activate my_env). + These commands will be copied from 'script.sh' to the new created script + and placed before the python command. Variable assignments and directory changes + will be systematically ignored. + """ + + if len(sys.argv) != 2: + print("Usage: mlxpsub <script.sh>") + sys.exit(1) + + root = os.getcwd() + bash_script_name = sys.argv[1] + script_path = os.path.join(root, bash_script_name) + + scheduler, shebang = process_bash_script(script_path) + with tempfile.NamedTemporaryFile() as temporary_file: + yaml.dump(scheduler, temporary_file, encoding=("utf-8")) + scheduler_file_name = temporary_file.name + run_python_script(shebang, bash_script_name, scheduler_file_name)
    + + + +def main(): + mlxpsub() + + +if __name__ == "__main__": + main() +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/parser.html b/master/_modules/mlxp/parser.html new file mode 100644 index 0000000..449777e --- /dev/null +++ b/master/_modules/mlxp/parser.html @@ -0,0 +1,499 @@ + + + + + + + + mlxp.parser - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.parser

    +"""Parser object for querying results stored by the reader."""
    +
    +import abc
    +import ast
    +from operator import eq, ge, gt, le, lt, ne
    +
    +import ply.lex as lex
    +import ply.yacc as yacc
    +from tinydb import Query, where
    +from tinydb.queries import QueryInstance
    +
    +from mlxp.enumerations import SearchableKeys
    +from mlxp.errors import InvalidKeyError
    +
    +
    +
    +[docs] +class Parser(abc.ABC): + """An abstract class for parsing queries. + + Any parser used by the class Reader must inherit from this abstract class. + """ + +
    +[docs] + @abc.abstractmethod + def parse(self, query: str) -> QueryInstance: + """Parse a query string into a tinydb QueryInstance object. + + :param query: A query in the form of a string + :type query: str + :return: A instance of a QueryInstance class representing the query + :rtype: QueryInstance + :raises SyntaxError: if the query string does not follow expected syntax. + """ + pass
    +
    + + + +
    +[docs] +class DefaultParser(Parser): + """MLXP's deafult parser inspired from python's syntax.""" + + def __init__(self): + self.lexer = _Lexer() + self.parser = _YaccParser() + +
    +[docs] + def parse(self, query: str) -> QueryInstance: + """Parse a query string into a tinydb QueryInstance object.""" + return self.parser.parse(query, lexer=self.lexer)
    +
    + + + +ops = { + "==": eq, + "!=": ne, + "<=": le, + ">=": ge, + "<": lt, + ">": gt, +} + +tokens = ( + "ID", + "LIST", + "SCALAR", + "EQUAL", + "LESS_THAN", + "GREATER_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN_OR_EQUAL", + "NOT_EQUAL", + "AND", + "OR", + "NOT", + "LPAREN", + "RPAREN", + "IN", +) + + +def _Lexer(): + reserved = {"in": "IN"} + + # Define regular expressions for each token + t_EQUAL = r"==" + t_LESS_THAN_OR_EQUAL = r"<=" + t_GREATER_THAN_OR_EQUAL = r">=" + t_NOT_EQUAL = r"!=" + t_LESS_THAN = r"<" + t_GREATER_THAN = r">" + t_AND = r"&" + t_OR = r"\|" + t_NOT = r"~" + t_LPAREN = r"\(" + t_RPAREN = r"\)" + t_IN = r"in" + t_ignore = " \t" + + # Define a rule for list literals + def t_LIST(t): + r"\[[^\]]*\]" + t.type = "LIST" # Update the token type to 'LIST' + t.value = ast.literal_eval(t.value) # Evaluate the list literal to create a list object + return t + + def t_BOOL(t): + r"(?i:true)|(?i:false)" + t.type = "SCALAR" + t.value = ast.literal_eval(t.value) + return t + + def t_STRING(t): + r"\'(.*?)\'" + t.type = "SCALAR" + t.value = ast.literal_eval(t.value) + return t + + # Define a rule for scalar values (including integers, floats, and strings) + def t_SCALAR(t): + r"([+-]?([0-9]+([.][0-9]*)?|[.][0-9]+))|\'[^\']*\'|\"[^\"]*\" " + # t.type = 'LIST' + t.value = ast.literal_eval(t.value) + return t + + # A regular expression rule with some action code + def t_ID(t): + # r'[a-zA-Z][\w._-]*' + r"[a-zA-Z_\d]+(\.[a-zA-Z_\d]+)*" + t.type = reserved.get(t.value, "ID") # Check for reserved words + return t + + def t_error(t): + raise SyntaxError(f'Illegal character "{t.value[0]}"') + + return lex.lex(debug=False) + + +def _YaccParser(): + precedence = ( + ("left", "OR"), + ("left", "AND"), + ("left", "NOT"), + ( + "left", + "EQUAL", + "LESS_THAN", + "GREATER_THAN", + "LESS_THAN_OR_EQUAL", + "GREATER_THAN_OR_EQUAL", + "NOT_EQUAL", + "IN", + ), + ) + + def p_expression__binOp(p): + """Expr : ID EQUAL SCALAR + | ID NOT_EQUAL SCALAR + | ID LESS_THAN SCALAR + | ID GREATER_THAN SCALAR + | ID LESS_THAN_OR_EQUAL SCALAR + | ID GREATER_THAN_OR_EQUAL SCALAR + """ + p[0] = _binOp(p[1], p[2], p[3]) + + def p_expression_inclusion(p): + """Expr : ID IN LIST""" + p[0] = _inclusionOp(p[1], p[3]) + + def p_expression_group(p): + """Expr : LPAREN Expr RPAREN""" + p[0] = p[2] + + def p_expression_and(p): + """Expr : Expr AND Expr""" + p[0] = _andOp(p[1], p[3]) + + def p_expression_or(p): + """Expr : Expr OR Expr""" + p[0] = _orOp(p[1], p[3]) + + def p_expression_not(p): + """Expr : NOT Expr""" + p[0] = _notOp(p[2]) + + def p_error(p): + raise SyntaxError(" Syntax error in input!") + + return yacc.yacc(debug=False, write_tables=0) + + +def _binOp(k, op, v): + opf = ops.get(op, None) + if opf is None: + print("Unknown operator: {0:s}".format(op)) + raise ValueError + return where(None) + _check_searchable_key(k) + field = _build_field_struct(k) + return opf(field, v) + + +def _inclusionOp(key, values): + _check_searchable_key(key) + field = _build_field_struct(key) + return field.one_of(values) + + +def _andOp(left, right): + return (left) & (right) + + +def _orOp(left, right): + return (left) | (right) + + +def _notOp(expr): + return ~expr + + +def _build_field_struct(key): + field = Query() + field = field[key] + return field + + +def _is_searchable(k): + for member in SearchableKeys: + if k.startswith(member.value): + return True + return False + + +def _check_searchable_key(k): + if _is_searchable(k): + pass + else: + raise InvalidKeyError( + f"The key {k} is invalid! Valid keys must start with one of these prefixes: " + + str([member.value for member in SearchableKeys]) + ) +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/reader.html b/master/_modules/mlxp/reader.html new file mode 100644 index 0000000..b8e77ed --- /dev/null +++ b/master/_modules/mlxp/reader.html @@ -0,0 +1,515 @@ + + + + + + + + mlxp.reader - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.reader

    +"""The reader allows queryring the logs of several experiments and performing operations
    +on the content of these logs (e.g. grouping and aggregation)."""
    +
    +import os
    +from collections.abc import MutableMapping
    +from typing import Optional, Union
    +
    +import pandas as pd
    +import yaml
    +from tinydb import TinyDB
    +from tinydb.storages import JSONStorage
    +from tinydb.table import Document
    +
    +from mlxp.data_structures.data_dict import LAZYDATA, DataDict, DataDictList
    +from mlxp.enumerations import DataFrameType, Directories
    +from mlxp.parser import DefaultParser, Parser, _is_searchable
    +
    +
    +
    +[docs] +class Reader(object): + """A class for exploiting the results stored in several runs contained in a same + parent directory 'src_dir'. + + Once, created, it is possible to query the database using the method 'filter' + to get the results matching a specific configuration setting. + The result of the query is returned either as a DataDictList object or a pandas dataframe. + The queries are processed using a parser inheriting form the abstract class Parser. + By default, the parser is DefaultParser. + However, the user can provide a custom parser with a custom syntax + inheriting from the class Parser. + + .. py:attribute:: src_dir + :type: str + + The absolute path of the source/parent directory + containing logs of the runs. + It must contain sub-directories 'src_dir/log_id', + where log_id is the uniquely assigned id of a run. + + .. py:attribute:: dst_dir + :type: str + + The destination directory where + the database containing the runs is created. + By default it is set to the source directory 'src_dir'. + The user can select a different location for the database + by setting the variable 'dst_dir' of the constructor to a different directory. + """ + + def __init__( + self, + src_dir: str, + dst_dir: Optional[str] = None, + parser: Parser = DefaultParser(), + reload: bool = False, + ): + """Create a reader object. + + :param src_dir: The path to the parent directory containing logs of several + runs. + :param dst_dir: The destination directory where the database will be created. + :param parser: A parser for querying the database. + :param reload: Re-create the database even if it already exists. + :type src_dir: str + :type dst_dir: str (default None) + :type parser: Parser (default DefaultParser) + :type reload: bool (default False) + :raises PermissionError: if user has no writing priviledges on dst_dir + """ + self.parser = parser + self.src_dir = os.path.abspath(src_dir) + self.file_name = "database" + if dst_dir is None: + dst_dir = self.src_dir + self.dst_dir = _ensure_writable(dst_dir) + + self.db = TinyDB( + os.path.join(self.dst_dir, self.file_name + ".json"), + storage=JSONStorage, + sort_keys=True, + indent=4, + separators=(",", ": "), + ) + self.runs = self.db.table("runs") + self._fields = self.db.table("fields") + + if not self.db.tables() or reload: + print("Creating a database file of the runs...") + self._create_base() + print(f"Database file created in {self.dst_dir}") + + def __len__(self) -> int: + """Return the number of runs contained in the database created by the reader. + + :return: Number of runs contained in the database. + :rtype: int + """ + return len(self.runs) + +
    +[docs] + def filter( + self, query_string: str = "", result_format: str = DataFrameType.DataDictList.value, + ) -> Union[DataDictList, pd.DataFrame]: + """Search a query in a database of runs. + + :param query_string: a string defining the query constaints. + :param result_format: format of the result (either a pandas dataframe or an + object of type DataDictList). By default returns a DataDictList object. + :type query_string: str (default "") + :type result_format: str (default False) + :return: The result of a query either as a DataDictList or a pandas dataframe. + :rtype: Union[DataDictList,pd.DataFrame] + :raises SyntaxError: if the query string does not follow expected syntax. + """ + is_valid = False + for member in DataFrameType: + if result_format == member.value: + is_valid = True + if not is_valid: + raise Exception( + f"Invalid format string: {result_format}. Valid format are one of the following:" + + str([member.value for member in DataFrameType]) + ) + + if query_string: + Q = self.parser.parse(query_string) + + res = self.runs.search(Q) + else: + res = self.runs.all() + res = [DataDict(r, parent_dir=_get_metrics_dir(r, self.src_dir)) for r in res] + res = DataDictList(res) + if result_format == DataFrameType.Pandas.value: + return res.toPandasDF(lazy=False) + elif result_format == DataFrameType.DataDictList.value: + return res
    + + + @property + def fields(self) -> pd.DataFrame: + """Return all fields of the database except those specific to MLXP, excluding + the fields contained in the file 'mlxp.yaml'. + + return: a dataframe of all fields contained in the database + rtype: pd.DataFrame + """ + fields_dict = {k: v for d in self._fields.all() for k, v in d.items() if not k.startswith("mlxp")} + df = pd.DataFrame(list(fields_dict.items()), columns=["Fields", "Type"]) + df.set_index("Fields", inplace=True) + df = df.sort_index() + + return df + + @property + def searchable(self) -> pd.DataFrame: + """Return all fields of the database that are searchable, excluding the fields + contained in the file 'mlxp.yaml'. + + return: a dataframe of all fields contained in the database that can be searched using the method filter + rtype: pd.DataFrame + """ + fields_dict = {k: v for d in self._fields.all() for k, v in d.items() if _is_searchable(k)} + df = pd.DataFrame(list(fields_dict.items()), columns=["Fields", "Type"]) + df.set_index("Fields", inplace=True) + df = df.sort_index() + + return df + + def _create_base(self): + self.db.drop_table("runs") + self.db.drop_table("fields") + all_fields = {} + dir_nrs = [ + int(d) + for d in os.listdir(self.src_dir) + if os.path.isdir(os.path.join(self.src_dir, d)) and d.isdigit() + ] + files_not_found = [] + for file_id in dir_nrs: + path = os.path.join(self.src_dir, str(file_id)) + try: + data, fields = _get_data(path, self.file_name) + self.runs.insert(Document(data, doc_id=file_id)) + all_fields.update(fields) + except FileNotFoundError: + files_not_found.append(path) + + for key, value in all_fields.items(): + self._fields.insert({key: value}) + + if files_not_found: + print("Warning: The following files were not found:") + print(files_not_found)
    + + + +def _get_metrics_dir(r, src_dir): + abs_metrics_dir = r["info.logger.metrics_dir"] + parent_log_dir = os.path.dirname(r["info.logger.log_dir"]) + + relpath = os.path.relpath(abs_metrics_dir, parent_log_dir) + + return os.path.join(src_dir, relpath) + + +def _get_data(path, metadata_file): + data = {"config": {}, "info": {}, "mlxp": {}} + for key in data: + fname = os.path.join(path, Directories.Metadata.value, key + ".yaml") + with open(fname, "r") as file: + data[key] = yaml.safe_load(file) + + metadata_dict = _flatten_dict(data, parent_key="") + + fields = {key: str(type(value)) for key, value in metadata_dict.items()} + keys_dir = os.path.join(path, Directories.Metrics.value, ".keys") + + lazydata_dict = {} + try: + for file_name in os.listdir(keys_dir): + if file_name.endswith(".yaml"): + prefix = os.path.splitext(file_name)[0] + full_file_name = os.path.join(keys_dir, file_name) + with open(full_file_name, "r") as f: + keys_dict = yaml.safe_load(f) + if keys_dict: + lazydata_dict.update({prefix + "." + key: LAZYDATA for key in keys_dict.keys()}) + except FileNotFoundError: + pass + + fields.update({key: LAZYDATA for key, value in lazydata_dict.items()}) + + metadata_dict.update(lazydata_dict) + return metadata_dict, fields + + +def _ensure_writable(dst_dir): + err_msg = "Please select a different destination directory." + try: + os.makedirs(dst_dir, exist_ok=True) + except PermissionError: + message = f"Unable to create the destination directory {dst_dir}.\n" + raise PermissionError(message + err_msg) + if not os.access(dst_dir, os.W_OK): + message = f"Unable to write in the destination directory {dst_dir}.\n" + raise PermissionError(message + err_msg) + return dst_dir + + +def _flatten_dict(d: MutableMapping, parent_key: str = "", sep: str = "."): + return dict(_flatten_dict_gen(d, parent_key, sep)) + + +def _flatten_dict_gen(d, parent_key, sep): + for k, v in d.items(): + new_key = parent_key + sep + k if parent_key else k + if isinstance(v, MutableMapping): + yield from _flatten_dict(v, new_key, sep=sep).items() + else: + yield new_key, v +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/scheduler.html b/master/_modules/mlxp/scheduler.html new file mode 100644 index 0000000..523b563 --- /dev/null +++ b/master/_modules/mlxp/scheduler.html @@ -0,0 +1,724 @@ + + + + + + + + mlxp.scheduler - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.scheduler

    +"""The scheduler allows submitting several jobs to a cluster queue using hydra."""
    +
    +import abc
    +import os
    +import platform
    +import subprocess
    +from copy import deepcopy
    +from typing import Any, Dict, List, Union
    +
    +from mlxp.errors import InvalidShellPathError, JobSubmissionError, UnknownSystemError
    +
    +
    +def get_info_null(process_output) -> Dict[str, Any]:
    +    return {}
    +
    +
    +
    +[docs] +def get_info_OAR(process_output) -> Dict[str, Any]: + """Return a dictionary containing the job_id assigned to the run by the scheduler. + + :return: A dictionary containing the job_id assigned to the run by the scheduler. + :rtype: Dict[str,Any] + """ + if process_output: + scheduler_job_id = process_output.split("\n")[-2].split("=")[-1] + return {"scheduler_job_id": scheduler_job_id} + else: + return {}
    + + + +SLURM = { + "name": "SLURMScheduler", + "directive": "#SBATCH", + "submission_cmd": "sbatch", + "job_name_cmd": "--job-name=", + "output_file_cmd": "--output=", + "error_file_cmd": "--error=", + "get_info": get_info_null, +} + +OAR = { + "name": "OARScheduler", + "directive": "#OAR", + "submission_cmd": "oarsub -S", + "job_name_cmd": "-n ", + "output_file_cmd": "-O ", + "error_file_cmd": "-E ", + "get_info": get_info_OAR, +} + + +PBS = { + "name": "PBSScheduler", + "directive": "#PBS", + "submission_cmd": "qsub", + "job_name_cmd": "-N ", + "output_file_cmd": "-o ", + "error_file_cmd": "-e ", + "get_info": get_info_null, +} + + +SGE = { + "name": "SGEScheduler", + "directive": "#$", + "submission_cmd": "qsub", + "job_name_cmd": "-N ", + "output_file_cmd": "-o ", + "error_file_cmd": "-e ", + "get_info": get_info_null, +} + +MWM = { + "name": "MWMScheduler", + "directive": "#MSUB", + "submission_cmd": "msub", + "job_name_cmd": "-N ", + "output_file_cmd": "-o ", + "error_file_cmd": "-e ", + "get_info": get_info_null, +} + + +LSF = { + "name": "LSFScheduler", + "directive": "#BSUB", + "submission_cmd": "bsub", + "job_name_cmd": "-J ", + "output_file_cmd": "-o ", + "error_file_cmd": "-e ", + "get_info": get_info_null, +} + + +Schedulers_dict = {"#OAR": OAR, "#SBATCH": SLURM, "#BSUB": LSF, "#MSUB": MWM, "#$": SGE, "#PBS": PBS} + + +
    +[docs] +class Scheduler(abc.ABC): + """An abstract class whose children allow to submit jobs using a particular job + scheduler such as OAR or SLURM. Can be used as a parent class of a custom scheduler. + + .. py:attribute:: directive + :type: str + + The string that preceeds the command options of a scheduler in a script. + (e.g.: '#OAR' for OAR and '#SBATCH' for SLURM) + + .. py:attribute:: submission_cmd + :type: str + + The command for submitting a job defined in a script to the scheduler. + (e.g.: 'oarsub -S' for OAR and 'sbatch' for SLURM). + + + .. py:attribute:: cleanup_cmd + :type: str + + A command used in a script to prepare the environment before executing the main code. + (e.g.: 'module purge' for SLURM) + + .. py:attribute:: option_cmd + :type: List[str] + + A list of strings containing the scheduler's options for the job. + This allows to specify the desired resources to the scheduler such as + the duration of the job, the quantity and type of resources, etc. + + .. py:attribute:: env_cmd + :type: str + + Command for activating the working environment. + (e.g.: 'conda activate my_env') + By default no environment is activated. + + .. py:attribute:: shell_path + :type: Any + + Path to the shell used for submitting a job using a scheduler. (default '/bin/bash') + + .. py:attribute:: shell_config_cmd + :type: bool + + Command for configuring the shell when submitting a job using a scheduler. + (e.g.: 'source ~/.bashrc') + """ + + def __init__( + self, + directive: str, + submission_cmd: str, + job_name_cmd: str, + output_file_cmd: str, + error_file_cmd: str, + shell_path: str = "", + shell_config_cmd: str = "", + env_cmd: Union[List[str], str] = "", + cleanup_cmd: str = "", + option_cmd: Union[List[str], None] = None, + ): + """Create a scheduler object. + + :param directive: The string that preceeds the command options of a scheduler in + a script. + :param submission_cmd: The command for submitting a job defined in a script to + the scheduler. + :param shell_path: Path to the shell used for submitting a job using a + scheduler. + :param shell_config_cmd: Command for configuring the shell when submitting a job + using a scheduler. + :param env_cmd: A command for activating the working environment. + :param cleanup_cmd: A command for cleaning up the environment before executing + code. + :param option_cmd: A list of strings containing the scheduler's options for the + job. + :type directive: str + :type submission_cmd: str + :type shell_path: str + :type shell_config_cmd: str + :type env_cmd: str + :type cleanup_cmd: str + :type option_cmd: List[str] + """ + self.directive = directive + self.cleanup_cmd = cleanup_cmd + self.job_name_cmd = job_name_cmd + self.output_file_cmd = output_file_cmd + self.error_file_cmd = error_file_cmd + self.submission_cmd = submission_cmd + self.option_cmd = option_cmd + self.shell_config_cmd = shell_config_cmd + self.shell_path = shell_path + self.env_cmd = env_cmd + self.process_output = None + +
    +[docs] + @abc.abstractmethod + def get_info(self) -> Dict[str, Any]: + """Return the scheduler's job id of the submited job. + + :return: The job id assigned by the scheduler to the submited job. + :rtype: int + """ + pass
    + + +
    +[docs] + def make_job_details(self, log_dir: str) -> List[str]: + """Return a list of three strings specifying the job name, the paths to the + log.stdout and log.stderr files. + + :param log_dir: The directory where the logs (e.g.: std.out, + std.err) are saved. + :type log_dir: str + :return: a list of three strings specifying information about + the job: job name, path towards log.stdout and log.stderr. + :rtype: List[str] + """ + job_name = log_dir.split(os.sep) + job_name = os.sep.join(job_name[-2:]) + # Creating job string + err_path = os.path.join(log_dir, "log.stderr") + out_path = os.path.join(log_dir, "log.stdout") + + values = [ + self.job_name_cmd + job_name, + self.error_file_cmd + err_path, + self.output_file_cmd + out_path, + ] + return values
    + + +
    +[docs] + def submit_job(self, main_cmd, log_dir) -> None: + """Submit the job to the scheduler and returns a string containing the output of + the submission command. + + .. note:: There is generally no need to customize this function. + + :param main_cmd: A string of the main bash command to be executed. + :param log_dir: The log directory where the main script will be saved. The job will be launched from their. + :type main_cmd: str + :type log_dir: str + :raises JobSubmissionError: if the scheduler failed to submit the job. + """ + cmd = self._make_job(main_cmd, log_dir) + print(cmd) + + job_path = job_path = os.path.join(log_dir, self._get_script_name()) + with open(job_path, "w") as f: + f.write(cmd) + + try: + chmod_cmd = self._cmd_make_executable(job_path) + subprocess.check_call(chmod_cmd, shell=True) + launch_cmd = f"{self.submission_cmd} {job_path!r}" + process_output = subprocess.check_output(launch_cmd, shell=True).decode("utf-8") + print(process_output) + print("Job launched!") + except subprocess.CalledProcessError as e: + print(e.output) + raise JobSubmissionError(e) + self.process_output = process_output
    + + + def _get_script_name(self): + system = platform.system() + if system in ["Linux", "Darwin"]: + return "script.sh" + elif system == "Windows": + return "script.bat" + else: + raise UnknownSystemError() + + def _cmd_make_executable(self, script): + system = platform.system() + if system in ["Linux", "Darwin"]: + return f"chmod +x {script!r}" + elif system == "Windows": + return "" + else: + raise UnknownSystemError() + + def _cmd_shell_path(self): + system = platform.system() + if system in ["Linux", "Darwin"]: + return f"#!{self.shell_path}\n" + elif system == "Windows": + return "" + else: + raise UnknownSystemError() + + def _make_job(self, main_cmd, log_dir): + job_command = [main_cmd] + + # Setting shell + if not self.shell_path: + raise InvalidShellPathError() + shell_cmd = [self._cmd_shell_path()] + + # Setting scheduler options + + option_cmd = self.make_job_details(log_dir) + if self.option_cmd: + option_cmd += self.option_cmd + option_cmd = [f"{self.directive} {val}\n" for val in option_cmd] + option_cmd = ["".join(option_cmd)] + + # Setting environment + if isinstance(self.env_cmd, list): + env_cmds = [ + f"{cmd}\n" for cmd in self.env_cmd + ] # [f"{self.shell_config_cmd}\n", f"{self.cleanup_cmd}\n"] + else: + env_cmds = [f"{self.env_cmd}\n"] + # try: + # env_cmds += [f"{self.env_cmd}\n"] + # except OmegaConfBaseException: + # pass + + cmd = "".join(shell_cmd + option_cmd + env_cmds + job_command) + return cmd
    + + + +def create_scheduler(scheduler_spec): + specs = deepcopy(scheduler_spec) + class_name = specs.pop("name") + info_method = specs.pop("get_info") + + class ChildScheduler(Scheduler): + def __init__( + self, shell_path="/bin/bash", shell_config_cmd="", env_cmd="", cleanup_cmd="", option_cmd=None + ): + specs.update( + { + "shell_path": shell_path, + "shell_config_cmd": shell_config_cmd, + "env_cmd": env_cmd, + "cleanup_cmd": cleanup_cmd, + "option_cmd": option_cmd, + } + ) + + super().__init__(**specs) + + def get_info(self): + return info_method(self.process_output) + + ChildScheduler.__name__ = class_name + globals()[class_name] = ChildScheduler # Add the subclass to the global namespace + # return globals()[subclass_name] + + +for key, value in Schedulers_dict.items(): + create_scheduler(value) + + +# class OARScheduler(Scheduler): +# """OAR job scheduler, see documentation in: http://oar.imag.fr/docs/2.5/#ref-user-docs.""" + +# def __init__( +# self, +# shell_path="/bin/bash", +# shell_config_cmd="", +# env_cmd="", +# cleanup_cmd="", +# option_cmd=None, +# ): +# super().__init__( +# directive="#OAR", +# submission_cmd="oarsub -S", +# job_name_cmd="-n ", +# output_file_cmd= "-O ", +# error_file_cmd= "-E ", +# shell_path=shell_path, +# shell_config_cmd=shell_config_cmd, +# env_cmd=env_cmd, +# cleanup_cmd=cleanup_cmd, +# option_cmd=option_cmd, +# ) + +# def get_info(self) -> Dict[str, Any]: +# """Return a dictionary containing the job_id assigned to the run by the +# scheduler. + +# :return: A dictionary containing the job_id assigned to the run by the +# scheduler. +# :rtype: Dict[str,Any] +# """ +# if self.process_output: +# scheduler_job_id = self.process_output.split("\n")[-2].split("=")[-1] +# return {"scheduler_job_id": scheduler_job_id} +# else: +# return {} + + +# class SLURMScheduler(Scheduler): +# """SLURM job scheduler, see documentation in: https://slurm.schedmd.com/documentation.html.""" + +# def __init__( +# self, +# shell_path="/bin/bash", +# shell_config_cmd="", +# env_cmd="", +# cleanup_cmd="module purge", +# option_cmd=None, +# ): +# super().__init__( +# directive="#SBATCH", +# submission_cmd="sbatch", +# job_name_cmd="--job-name=", +# output_file_cmd= "--output=", +# error_file_cmd= "--error=", +# shell_path=shell_path, +# shell_config_cmd=shell_config_cmd, +# env_cmd=env_cmd, +# cleanup_cmd=cleanup_cmd, +# option_cmd=option_cmd, +# ) + +# def get_info(self) -> Dict[str, Any]: +# """Return a dictionary containing the job_id assigned to the run by the +# scheduler. + +# :return: A dictionary containing the job_id assigned to the run by the +# scheduler. +# :rtype: Dict[str,Any] +# """ +# # Not implemented yet! +# return {} + + +# class PBSScheduler(Scheduler): +# """TORQUE/PBS job scheduler, see documentation in: http://oar.imag.fr/docs/2.5/#ref-user-docs.""" + +# def __init__( +# self, +# shell_path="/bin/bash", +# shell_config_cmd="", +# env_cmd="", +# cleanup_cmd="", +# option_cmd=None, +# ): +# super().__init__( +# directive="#PBS", +# submission_cmd="qsub", + +# shell_path=shell_path, +# shell_config_cmd=shell_config_cmd, +# env_cmd=env_cmd, +# cleanup_cmd=cleanup_cmd, +# option_cmd=option_cmd, +# ) + +# def get_info(self) -> Dict[str, Any]: +# """Return a dictionary containing the job_id assigned to the run by the +# scheduler. + +# :return: A dictionary containing the job_id assigned to the run by the +# scheduler. +# :rtype: Dict[str,Any] +# """ + +# return {} +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_modules/mlxp/version_manager.html b/master/_modules/mlxp/version_manager.html new file mode 100644 index 0000000..5bb05a8 --- /dev/null +++ b/master/_modules/mlxp/version_manager.html @@ -0,0 +1,684 @@ + + + + + + + + mlxp.version_manager - MLXP 0.2.1 documentation + + + + + + + + + + + + + + + + Contents + + + + + + Menu + + + + + + + + Expand + + + + + + Light mode + + + + + + + + + + + + + + Dark mode + + + + + + + Auto light/dark mode + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    + + + + + Back to top + +
    +
    + +
    + +
    +
    +

    Source code for mlxp.version_manager

    +"""The version manager allows to keep track of changes to the code and to automatically
    +generate a deployment version of the code based on the latest git commit."""
    +
    +import abc
    +import os
    +import subprocess
    +from typing import Any, Dict
    +
    +from mlxp._internal._interactive_mode import _bcolors, _printc
    +
    +Ignore_untracked_msg = _bcolors.FAIL + "Warning:" + _bcolors.ENDC + "There are untracked files! \n"
    +Ignore_untracked_msg += (
    +    _bcolors.FAIL
    +    + "Warning:"
    +    + _bcolors.ENDC
    +    + "Untracked files will not be accessible during execution of the run!"
    +)
    +
    +Ignore_uncommited_msg = (
    +    _bcolors.FAIL + "Warning:" + _bcolors.ENDC + "Run will be executed from the latest commit\n"
    +)
    +
    +Ignore_uncommited_msg += (
    +    _bcolors.FAIL
    +    + "Warning:"
    +    + _bcolors.ENDC
    +    + "Uncommitted changes will not be taken into account during execution of the run!\n"
    +)
    +
    +
    +
    +[docs] +class VersionManager(abc.ABC): + """An abstract class whose children allow custumizing the working directory of the + run.""" + + def __init__(self): + self.im_handler = None + self._existing_choices = False + + def _set_im_handler(self, im_handler: Any) -> None: + self.im_handler = im_handler + im_handler_choice = self.im_handler.get_im_choice("vm") + self._existing_choices = im_handler_choice is not None + if not self._existing_choices: + self.im_handler.set_im_choice("vm", True) + +
    +[docs] + @abc.abstractmethod + def get_info(self) -> Dict[str, Any]: + """Return a dictionary containing information about the version used for the + run. + + :return: Dictionary containing information about the version used for the run. + :rtype: Dict[str, Any] + """ + pass
    + + +
    +[docs] + @abc.abstractmethod + def make_working_directory(self) -> str: + """Return a path to the target working directory from which runs submitted to a + cluster in batch mode will be executed. + + :rtype: str + :return: A path to the target working directory + """ + pass
    +
    + + + +
    +[docs] +class GitVM(VersionManager): + """GitVM allows separting development code from code deployed in a cluster and + allows to recover exactly the code used for a given run. + + GitVM creates a copy of the current directory based on the latest commit, + if it doesn't exist already, then sets the working directory to this copy. + + .. py:attribute:: parent_work_dir + :type: str + + The target parent directory of + the new working directory returned by the version manager + + .. py:attribute:: compute_requirements + :type: bool + + When set to true, the version manager stores a list of requirements and their version. + """ + + def __init__(self, parent_work_dir: str, compute_requirements: bool): + super().__init__() + + self.parent_work_dir = os.path.abspath(parent_work_dir) + self.compute_requirements = compute_requirements + self.dst = None + self.commit_hash = None + self.repo_path = None + self.work_dir = os.getcwd() + self.requirements = ["UNKNOWN"] + +
    +[docs] + def get_info(self) -> Dict[str, Any]: + """Return a dictionary containing information about the version used for the + run. + + The following information is returned: + - requirements: the dependencies of the code and their versions. Empty if no requirements file was found. + - commit_hash: The hash of the latest commit. + - repo_path: Path to the repository. + + :return: Dictionary containing + information about the version used for the run. + :rtype: Dict[str, Any] + """ + return { + "requirements": self.requirements, + "commit_hash": self.commit_hash, + "repo_path": self.repo_path, + }
    + + +
    +[docs] + def make_working_directory(self) -> str: + """Create and return a target working directory. + + Depending on the user's choice, the returned directory is either: + + - The current working directory. + - A directory under self.parent_work_dir/repo_name/latest_commit_hash. + In this case, a copy of the code based on the latest git commit is created and used to run the experiment. + + :rtype: str + :return: A path to the target working directory + """ + repo = _get_git_repo() + repo_root = repo.git.rev_parse("--show-toplevel") + relpath = os.path.relpath(os.getcwd(), repo_root) + self.repo_path = repo.working_tree_dir + self._handle_untracked_files(repo) + self._handle_commit_state(repo) + self._handle_cloning(repo, relpath) + + if not self._existing_choices: + self.im_handler.save_im_choice() + + return self.work_dir
    + + + def _clone_repo(self, repo): + repo_name = self.repo_path.split("/")[-1] + self.commit_hash = repo.head.object.hexsha + target_name = os.path.join(repo_name, self.commit_hash) + parent_work_dir = self.parent_work_dir + self.dst = os.path.join(parent_work_dir, target_name) + + if not os.path.isdir(self.dst): + _printc(_bcolors.OKBLUE, f"Creating a backup of the code at {self.dst}") + repo.clone(self.dst) + if self.compute_requirements: + self._make_requirements_file() + else: + if not self._existing_choices: + _printc( + _bcolors.OKBLUE, f"Found a backup of the code with commit-hash: {self.commit_hash}", + ) + _printc(_bcolors.OKBLUE, f"Run will be executed from {self.dst}") + + # def _handle_cloning(self, repo, relpath): + # choice = "y" + # done = False + # while True: + # valid_choice = False + # if self._existing_choices: + # choice = self.im_handler.get_im_choice("cloning") + # valid_choice = choice in ["y", "n"] + # if not valid_choice: + # #if self.im_handler.interactive_mode: # no need to ask for this anymore + # # choice = _get_cloning_choice() + # self.im_handler.set_im_choice("cloning", choice) + # if choice == "y": + # _printc( + # _bcolors.OKBLUE, + # "Run will be executed from a backup directory based on the latest commit ", + # ) + # if choice == "y": + # self._clone_repo(repo) + # self._set_requirements() + # self.work_dir = os.path.join(self.dst, relpath) + # done = True + # elif choice == "n": + # if not self._existing_choices: + # _printc( + # _bcolors.OKBLUE, "Run will be executed from the main directory", + # ) + # _printc( + # _bcolors.OKBLUE, "Warning: [Reproduciblity] Run is not linked to any git commit", + # ) + + # done = True + # else: + # _printc(_bcolors.OKBLUE, "Invalid choice. Please try again. (y/n)") + + # if done: + # break + + def _handle_cloning(self, repo, relpath): + + self._clone_repo(repo) + self._set_requirements() + self.work_dir = os.path.join(self.dst, relpath) + if not self._existing_choices: + _printc( + _bcolors.OKBLUE, "Run will be executed from a backup directory based on the latest commit ", + ) + + def _handle_commit_state(self, repo): + while True: + done = True + + if not self._existing_choices: + if repo.is_dirty(): + _printc(_bcolors.OKBLUE, "There are uncommitted changes in the repository:\n") + _disp_uncommited_files(repo) + if self.im_handler.interactive_mode: + done = _is_done_uncommited_changes(repo) + else: + _printc(_bcolors.OKBLUE, "No uncommitted changes!") + + if done: + if repo.is_dirty() and not self._existing_choices: + print(Ignore_uncommited_msg) + break + + def _handle_untracked_files(self, repo): + while True: + done = True + if not self._existing_choices: + if repo.untracked_files: + _printc(_bcolors.OKGREEN, "There are untracked files in the repository:") + _disp_untracked_files(repo) + if self.im_handler.interactive_mode: + done = _is_done_untracked_files(repo) + else: + _printc(_bcolors.OKBLUE, "No untracked files!") + _printc(_bcolors.OKBLUE, "Continuing checks ...") + + if done: + if repo.untracked_files and not self._existing_choices: + print(Ignore_untracked_msg) + break + + def _make_requirements_file(self): + _printc(_bcolors.OKBLUE, "No requirements file found") + _printc(_bcolors.OKBLUE, "Generating it using pipreqs") + # Create a new updated requirement file. + reqs_cmd = f"pipreqs --force {self.dst}" + subprocess.check_call(reqs_cmd, shell=True) + + def _set_requirements(self): + fname = os.path.join(self.dst, "requirements.txt") + + if os.path.exists(fname) or not self.compute_requirements: + pass + else: + self._make_requirements_file() + + if os.path.exists(fname): + with open(fname, "r") as file: + # Read the contents of the file + contents = file.read() + # Split the contents into lines + lines = contents.splitlines() + # Create a list of package names + package_list = [] + # Iterate through the lines and append each line (package name) to the + # list + for line in lines: + package_list.append(line) + self.requirements = package_list
    + + + +def _disp_uncommited_files(repo): + unstaged_files = repo.index.diff(None) + staged_files = repo.index.diff("HEAD", staged=True) + all_files = unstaged_files + staged_files + for change in all_files: + file_name = change.a_path + _printc(_bcolors.FAIL, file_name) + + +def _disp_untracked_files(repo): + from git.compat import defenc + + status = repo.git.status(porcelain=True, untracked_files=False, as_process=True) + + prefix = "?? " + untracked_files = [] + for line in status.stdout: + line = line.decode(defenc) + if not line.startswith(prefix): + continue + filename = line[len(prefix) :].rstrip("\n") + if filename[0] == filename[-1] == '"': + filename = filename[1:-1] + filename = filename.encode("ascii").decode("unicode_escape").encode("latin1").decode(defenc) + untracked_files.append(filename) + + for name in untracked_files: + print(name) + + +def _get_git_repo(): + import git + + try: + repo = git.Repo(search_parent_directories=True) + except git.exc.InvalidGitRepositoryError: + msg = os.getcwd() + ". To use the GitVM version manager, the code must belong to a git repository!" + raise git.exc.InvalidGitRepositoryError(msg) + + return repo + + +def _get_cloning_choice(): + _printc( + _bcolors.OKGREEN, + "Would you like to execute code from a backup copy based on the latest commit? (y/n):", + ) + print(f"{_bcolors.OKGREEN}y{_bcolors.ENDC}: Yes (Recommended option)") + print(f"{_bcolors.OKGREEN}n{_bcolors.ENDC}: No. (Code will be executed from the main repository)") + choice = input(f"{_bcolors.OKGREEN}Please enter you answer (y/n):{_bcolors.ENDC}") + return choice + + +def _is_done_uncommited_changes(repo): + done = False + choice = _get_choice_uncommited_changes() + if repo.is_dirty(): + if choice == "y": + _printc(_bcolors.OKBLUE, "Commiting changes....") + output_msg = repo.git.commit("-a", "-m", "[mlxp]: Automatically committing all changes") + print(output_msg) + done = True + elif choice == "n": + done = True + else: + _printc(_bcolors.OKBLUE, "Invalid choice. Please try again. (y/n)") + else: + _printc(_bcolors.OKBLUE, "No more uncommitted changes were found!") + done = True + return done + + +def _is_done_untracked_files(repo): + done = False + # choice = _get_choice_untracked_files() + # if choice == "y": + file_to_track = _get_files_to_track(repo) + # If user input is not empty + _add_files_to_track(repo, file_to_track) + if not repo.untracked_files: + done = True + else: + if not file_to_track: + done = True + _printc(_bcolors.OKBLUE, "Skipping untracked files!") + + return done + + +def _get_choice_uncommited_changes(): + + _printc( + _bcolors.OKGREEN, "Would you like to create an automatic commit for all uncommitted changes? (y/n)", + ) + print(f"{_bcolors.OKGREEN}y{_bcolors.ENDC}: Yes. ") + print( + f"{_bcolors.OKGREEN}n{_bcolors.ENDC}: No. Uncommitted changes will be ignored. (Before selecting this option, it is recommanded to manually handle uncommitted changes.) " + ) + choice = input(f"{_bcolors.OKGREEN}[Automatic commit]: Please enter your choice (y/n): {_bcolors.ENDC}") + + return choice + + +def _get_choice_untracked_files(): + _printc( + _bcolors.OKGREEN, "Would you like to add untracked files? (y/n)", + ) + print(f"{_bcolors.OKGREEN}y{_bcolors.ENDC}: Yes.") + # print( + # f"{_bcolors.OKGREEN}b{_bcolors.ENDC}: Check again for untrakced files (assuming you manually added them)." + # ) + print( + f"{_bcolors.OKGREEN}n{_bcolors.ENDC}: No. Untracked files will be ignored. (Before selecting this option, please make sure to manually add untracked files) " + ) + choice = input( + f"{_bcolors.OKGREEN}[Adding untracked files]: Please enter your choice (y/n):{_bcolors.ENDC}" + ) + return choice + + +def _get_files_to_track(repo): + _printc( + _bcolors.OKGREEN, "Please select files to be tracked (comma-separated) and hit Enter to skip:", + ) + + files_input = input() + return files_input + + +def _add_files_to_track(repo, files_to_track): + if files_to_track: + # Split user input by commas + files_to_add = files_to_track.split(",") + + # Add selected files + for file in files_to_add: + repo.git.add(file.strip()) + _printc(_bcolors.OKGREEN, file + " is added to the repository") + # Commit the changes + # repo.index.commit("mlxp: Committing selected files ") +
    +
    +
    +
    + + +
    +
    + + Made with Sphinx and @pradyunsg's + + Furo + +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/master/_sources/configuring_mlxp.rst.txt b/master/_sources/configuring_mlxp.rst.txt new file mode 100644 index 0000000..1e0205f --- /dev/null +++ b/master/_sources/configuring_mlxp.rst.txt @@ -0,0 +1,87 @@ + + + +.. _Configuring_mlxp: + +Configuring MLXP +================= + +MLXP is intended to be a configurable tool with default functionalities that can be adjusted by the user. +The package default settings are stored in a file :samp:`mlxp.yaml` located in the same directory as the :samp:`config.yaml` file. These files are created automatically if they don't already exist. +By default, :samp:`./configs/mlxp.yaml` contains the following: + +.. code-block:: yaml + + logger: + name: DefaultLogger + parent_log_dir: ./logs + forced_log_id: -1 + log_streams_to_file: false + scheduler: + name: NoScheduler + shell_path: '' + shell_config_cmd: '' + env_cmd: '' + cleanup_cmd: '' + option_cmd: [] + version_manager: + name: GitVM + parent_work_dir: ./.workdir + compute_requirements: false + use_version_manager: false + use_scheduler: false + use_logger: true + interactive_mode: true + +The logger +---------- +The options under :samp:`logger` are specific to the MLXP logger object. The field :samp:`name` must contain the class name of the used logger. By default, it is set to :samp:`DefaultLogger`. The user can provide a custom Logger provided that it inherits from the abstract class :samp:`Logger`. The remaining fields refer to logger's options: + +- :samp:`parent_log_dir`: The location where the directories of each run will be stored. The outputs for each run are saved in a directory of the form :samp:`parent_log_dir/log_id` where :samp:`log_id` is an integer uniquely assigned by the logger to the run. +- :samp:`forced_log_id`: An id optionally provided by the user for the run. If :samp:`forced_log_id` is positive, the logs of the run will be stored under :samp:`parent_log_dir/forced_log_id`. Otherwise, the logs will be stored in a directory :samp:`parent_log_dir/log_id` where :samp:`log_id` is assigned uniquely for the run during execution. +- :samp:`log_streams_to_file`: If true logs the system stdout and stderr of a run to a file named :samp:`log.stdout` and :samp:`log.stderr` in the log directory. + +The scheduler (Deprecated since version 0.2.0) +---------------------------------------------- + +Since version 0.2.0, there is no need to configure the scheduler. The :samp:`mlxpsub` command automatically detects the scheduler's configurations from the main submission script (see :ref:`mlxpsub command `) + + +The version manager +------------------- +The options under :samp:`version_manager` are specific to the MLXP version manager object. The field :samp:`name` must contain the class name of the used version manager. By default, it is set to :samp:`GitVM`, which is the version manager based on git. The user can provide a custom version manager inheriting from the abstract class :samp:`VersionManager`. The remaining fields refer to manager's options: + +- :samp:`parent_work_dir`: The target parent directory of the new working directory returned by the version manager +- :samp:`compute_requirements`: When set to true, the version manager stores a list of requirements and their version. + + +The interactive mode +-------------------- +This option allows to enable/disable MLXP's interactive mode. + +When set to :samp:`True`, MLXP uses the interactive mode for interacting with some MLXP modules: + + - **Version management:** When :samp:`use_version_manager==True`, MLXP asks the user to handle uncommited/untracked files. + +When set to :samp:`False`, no interactive mode is used and the following behavior occurs: + + - **Version management:** When :samp:`use_version_manager==True`: Existing untracked files or uncommitted changes are ignored. + + +Overriding MLXP's settings +--------------------------- + +It is possible to override these options from the command line by adding the prefix :samp:`+mlxp` before the options. For instance, setting the option :samp:`use_logger` to :samp:`False` disables logging. In this case, the logger object in :samp:`ctx.logger` has a :samp:`Null` value: + +.. code-block:: console + + $ python main.py +mlxp.use_logger=false + + seed: null + model: + num_layers: 4 + optimizer: + lr: 1e-3 + + The logger object is an instance of: + \ No newline at end of file diff --git a/master/_sources/easy_launching.rst.txt b/master/_sources/easy_launching.rst.txt new file mode 100644 index 0000000..8fafd5c --- /dev/null +++ b/master/_sources/easy_launching.rst.txt @@ -0,0 +1,269 @@ +1- Launching +------------ + +We will see how to modify the file :samp:`main.py` to use MLXP using the decorator :samp:`mlxp.launch`. +But first, let's introduce the :samp:`mlxp.Context` object produced by the decorator :samp:`mlxp.launch` that allows using MLXP's logging and configuring functionalities. + + +The Context object +"""""""""""""""""" + +MLXP uses an object :samp:`ctx` of the class :samp:`mlxp.Context` that is created on the fly during the execution of the program to store information about the run. +More precisely, it contains 4 fields: + +- :samp:`ctx.config`: Stores project-specific options provided by the user. These options are loaded from a yaml file called :samp:`config.yaml` located in a directory :samp:`config_path` provided as input to the decorator :samp:`mlxp.launch`. +- :samp:`ctx.mlxp`: Stores MLXP's default settings for the project. Its content is loaded from a yaml file :samp:`mlxp.yaml` located in the same directory :samp:`config_path`. +- :samp:`ctx.info`: Contains information about the current run: ex. status, start time, hostname, etc. +- :samp:`ctx.logger`: A logger object that can be used in the code for logging variables (metrics, checkpoints, artifacts). When logging is enabled, these variables are all stored in a uniquely defined directory. + + +General setup +""""""""""""" + +Defining a default config file +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The first step is to provide all default options that will be used by the code in a separate Yaml file named :samp:`config.yaml` and contained in the :samp:`./configs` directory. + +.. code-block:: yaml + :caption: ./configs/config.yaml + + seed: 0 + num_epoch: 10 + model: + num_units: 100 + data: + d_int: 10 + device: 'cpu' + optimizer: + lr: 10. + +Here, we stored all options that were provided as input to the function :samp:`train` in the :samp:`main.py` file (such as the learning rate :samp:`lr`, number of epochs :samp:`num_epochs`, etc) into a structured Yaml file. The user has the freedom to define their own structure: for instance, here we chose to group the input dimension :samp:`d_int` and :samp:`device` into the same :samp:`data` group, but other (probably better choices) are possible. +MLXP will load this file by default, just like in `hydra `_ and provide these options as a hierachical dictionary to be used in the code (more about this later!). + + + + +Adapting code for using MLXP +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To use MLXP, we only need to slightly change the :samp:`main.py` file. +The first step is to import MLXP and use the decorator :samp:`mlxp.launch` above the function :samp:`train`. +We also need to change the signature of the function :samp:`train` so that it can accept an object :samp:`ctx` of type :samp:`mlxp.Context` as an argument instead of the variables. +Note, however, that :samp:`train` is called later without explicitly passing any argument. The remaining modifications are: + +- Using the option values stored in :samp:`ctx.config` as a replacement to the variables provided in the older version of the code (See: :ref:`the old 'main.py' file `). +- Using the logger :samp:`ctx.logger` to store the results of the run (instead of printing them) and saving checkpoints. + +Here is how the code would look like: + +.. code-block:: python + :caption: main.py + + + import torch + from core import DataLoader, OneHiddenLayer + + import mlxp + + @mlxp.launch(config_path='./configs') + def train(ctx: mlxp.Context)->None: + + cfg = ctx.config + logger = ctx.logger + + start_epoch = 0 + + # Building model, optimizer and data loader. + model = OneHiddenLayer(d_int=cfg.data.d_int, + n_units = cfg.model.num_units) + model = model.to(cfg.data.device) + optimizer = torch.optim.SGD(model.parameters(), + lr=cfg.optimizer.lr) + dataloader = DataLoader(cfg.data.d_int, + cfg.data.device) + + # Training + for epoch in range(start_epoch,cfg.num_epoch): + + train_err = train_epoch(dataloader, + model, + optimizer) + + logger.log_metrics({'loss': train_err.item(), + 'epoch': epoch}, log_name='train') + + logger.log_checkpoint({'model': model, + 'epoch':epoch}, log_name='last_ckpt' ) + + print(f"Completed training with learing rate: {cfg.optimizer.lr}") + + if __name__ == "__main__": + train() + +Seeding code using MLXP +^^^^^^^^^^^^^^^^^^^^^^^ + +In our example, the initialization of the model uses random initial parameters which might change from one run to another. To avoid this, the user can provide a function :samp:`seeding_function` to the :samp:`mlxp.launch` decorator to set the global seeds of whatever random number generator is used. + + +.. code-block:: python + :caption: main.py + + import mlxp + from core import DataLoader, Network, Optimizer, Loss + + def seeding_function(seed): + import torch + torch.manual_seed(seed) + + @mlxp.launch(config_path='./configs', + seeding_function=seeding_function) + def train(ctx: mlxp.Context)->None: + + cfg = ctx.config + logger = ctx.logger + + ... + + if __name__ == "__main__": + train() + + +The function :samp:`seeding_function` will be called by MLXP before executing the function :samp:`train`. The parameter seed is read from the user-defined option: :samp:`ctx.config.seed`. If the field seed is not provided by the user and a seeding function is passed, then the code throws an error. +Note that the field :samp:`seed` passed to the :samp:`seeding_function` can be an integer or a dictionary or any object that can be stored in a yaml file. +Of course, it is also possible to perform seeding inside the function :samp:`train`, but :samp:`seeding_function` allows you to do it systematically. + + + + +.. _launching_multiruns: + +Launching locally using MLXP +"""""""""""""""""""""""""""" + +During execution, the default configurations will be read from the file :samp:`config.yaml` located in the directory :samp:`./configs` and passed to the object :samp:`ctx.config`. The code will be executed using these option: + +.. code-block:: console + + $ python main.py + Completed training with learning rate: 10.0 + +Just like with `hydra `_, we can run the code again with different options by overriding the default ones from the command line. For instance, we can use different learning rates and even select multiple values for it (say: :samp:`1e-2` and :samp:`1e-1`). we can do this from the command line by providing multiple values :samp:`(0.01,0.1)` to the option :samp:`optimizer.lr`: + +.. code-block:: console + + $ python main.py optimizer.lr=0.01,0.1 + Completed training with learning rate: 0.01 + Completed training with learning rate: 0.1 + +In the above instruction, we added an option :samp:`optimizer.lr=0.01,0.1` which execute the code twice: once using a learning rate of :samp:`0.01` and a second time using :samp:`0.1` . + +Launching jobs to a scheduler +""""""""""""""""""""""""""""" + +If you have access to an HPC cluster, then you probably use a job scheduler for submitting jobs. +MLXP allows you to combine the 'multirun' capabilities of `hydra `_ with job scheduling to easily submit multiple experiments to a cluster. +Currently, MLXP supports the following job schedulers: +`SLURM `_, `OAR `_, `TORQUE `_, `SGE `_, `MWM `_ and +`LSF `_. + + +.. _mlxpsub: + +Submitting jobs to a job scheduler +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Let's say, you'd like to submit multiple jobs into a job scheduler. You can do this easily using the +mlxpsub command! + + +The first step is to create a script ex.: :samp:`script.sh` in your working directory (here under :samp:`my_project/`). +In this script, you can define the resources allocated to your jobs, using the syntax of your job scheduler, as well as the python command for exectuting your main python script. You can then pass different option values to your python script :samp:`main.py` as discussed earlier in +:ref:`the launching tutorial `: + +.. code-block:: console + + #!/bin/bash + + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + + python main.py optimizer.lr=10.,1. seed=1,2 + python main.py model.num_units=100,200 seed=1,2 + +The above script is meant to create and exectute 8 jobs in total that will be submitted to an OAR job scheduler. The first 4 jobs correspond to the first python command using all possible combinations of option values for :samp:`optimizer.lr` and :samp:`seed`: :samp:`(10.,1)` , :samp:`(10.,2)`, :samp:`(1.,1)`, :samp:`(1.,2)`. The 4 next jobs are for the second command wich varies the options :samp:`model.num_units` and :samp:`seed`. + +You only need to run the following command in the terminal: + + +.. code-block:: console + + mlxpsub script.sh + + +What happens under the woods? +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +Here is what happens: + +1. mlxpsub command parses the script to extract the scheduler's instructions and figures out what scheduler is used, then provides those information as a context prior to executing the script. +2. `hydra `_ performs a cross-product of the options provided and creates as many jobs are needed. +3. The MLXP creates a separate directory for each one of these jobs. Each directory is assigned a unique log_id and contains a script to be submitted. +4. All generated scripts are submitted to the job scheduler. + + +What you should expect? +^^^^^^^^^^^^^^^^^^^^^^^ + +MLXP creates a script for each job corresponding to an option setting. Each script is located in a directory of the form +:samp:`parent_log/log_id`, where :samp:`log_id` is automatically assigned by MLXP for each job. Here is an example of the first created script in :samp:`logs/1/script.sh` where the user sets :samp:`parent_log` to :samp:`logs`. + +.. code-block:: console + + #!/bin/bash + #OAR -n logs/1 + #OAR -E /root/logs/1/log.stderr + #OAR -O /root/logs/1/log.stdout + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + + cd /root/workdir/ + python main.py optimizer.lr=10. seed=1 + +As you can see, MLXP automatically assigns values for the job's name, :samp:`stdout` and :samp:`stderr` file paths, +so there is no need to specify those in the original script :samp:`script.sh`. +These scripts contain the same scheduler's options +as in :samp:`script.sh` in addition to a single python command specific to the option setting: :samp:`optimizer.lr=10. seed=1`. +Additionally, MLXP pre-processes the python command to extract the working directory and sets it explicitly in the newly created script before the python command. + + +Once, the job finishes execution, we can double-check that everything went well by inspecting the directory :samp:`logs/1/` which should contain the usual logs and two additional files :samp:`log.stdout` and :samp:`log.stderr`: + + +.. code-block:: text + :caption: ./logs/ + + logs/ + ├── 1/ + │ ├── metadata/ + │ │ ├── config.yaml + │ │ ├── info.yaml + │ │ └── mlxp.yaml + │ ├── metrics/ + │ │ ├── train.json + │ │ └── .keys/ + │ │ └── metrics.yaml + │ ├── artifacts/ + │ │ └── Checkpoint/ + │ │ └── last_ckpt.pkl + │ ├── log.stderr + │ ├── log.stdout + │ └── script.sh + │ + ├──... + + diff --git a/master/_sources/easy_logging.rst.txt b/master/_sources/easy_logging.rst.txt new file mode 100644 index 0000000..9dd5deb --- /dev/null +++ b/master/_sources/easy_logging.rst.txt @@ -0,0 +1,239 @@ +.. _logging: + +2- Logging +---------- + + +Logging metrics and artifacts +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The logger provides four methods for logging objects: + + - :samp:`log_metrics`: For logging dictionaries of scalars in a json file. This method can be used to log the loss and other scalar quantities that can evolve during the run. These dictionaries are stored in a json file. + - :samp:`log_artifacts`: For logging more complex objects such as the weights of a network, etc. This method requires passing objects inheriting from the abstract class :samp:`Artifacts`. + - :samp:`log_checkpoint`: A simpler method for logging serializable objects as a pickle file. + - :samp:`load_checkpoint`: A method for loading a saved checkpoint. + + +File structure of the logs +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When the logger is activated, it stores the results of a run in a sub-directory of the parent directory :samp:`./logs`. This parent directory is created automatically if it does not exists already. By default it is set to :samp:`./logs`, but this behavior can be modified (see :ref:`Customizing the parent log directory `). + +First, the logger assigns a :samp:`log_id` to the run. Every time :samp:`main.py` is executed with an active logger, the :samp:`log_id` of the new run is incremented by 1 starting from 1. Then a new sub-directory of :samp:`./logs` is created and named after the assigned :samp:`log_id`. +Since we executed the code three times in total, we should expect three sub-directories under :samp:`./logs` called :samp:`1`, :samp:`2` and :samp:`3`, all having the same structure: + +.. code-block:: text + :caption: ./logs/ + + logs/ + ├── 1/... + ├── 2/... + └── 3/... + + +Each log directory contains three sub-directories: :samp:`metadata`, :samp:`metrics` and :samp:`artifacts`: + +.. code-block:: text + :caption: ./logs/ + + logs/ + ├── 1/ + │ ├── metadata/ + │ │ ├── config.yaml + │ │ ├── info.yaml + │ │ └── mlxp.yaml + │ ├── metrics/ + │ │ ├── train.json + │ │ └──.keys/ + │ │ └── metrics.yaml + │ └── artifacts/ + │ └── Checkpoint/ + │ └── last_ckpt.pkl + │ + ├── 2/... + └── 3/... + +Let's go through these three directories. + +The :samp:`metrics` directory +""""""""""""""""""""""""""""" + +This directory contains JSON files created when calling the logger's method +:samp:`log_metrics(dict, log_name)`. +Each file is named after the variable :samp:`log_name` and stores the dictionaries provided as input to the :samp:`log_metrics` method. + + +.. code-block:: json + :caption: ./logs/1/metrics/train.json + + {"loss": 0.030253788456320763, "epoch": 0} + {"loss": 0.02899891696870327, "epoch": 1} + {"loss": 0.026649776846170425, "epoch": 2} + {"loss": 0.023483652621507645, "epoch": 3} + {"loss": 0.019827445968985558, "epoch": 4} + {"loss": 0.01599641889333725, "epoch": 5} + {"loss": 0.012259905226528645, "epoch": 6} + {"loss": 0.008839688263833523, "epoch": 7} + {"loss": 0.005932427477091551, "epoch": 8} + {"loss": 0.003738593542948365, "epoch": 9} + +The hidden directory :samp:`.keys` is used by the reader module of MLXP and is not something to worry about here. Instead, we inspect the remaining directories below. + + +The :samp:`metadata` directory +"""""""""""""""""""""""""""""" + +The :samp:`metadata` directory contains three yaml files: :samp:`config`, :samp:`info`, and :samp:`mlxp`, each storing the content of the corresponding fields of the context object :samp:`ctx`. +:samp:`config` stores the user config of the run, :samp:`info` stores general information about the run such as the assigned :samp:`log_id` and the absolute path to the logs of the run :samp:`log_dir`. Finally, :samp:`mlxp` stores the MLXP's settings used for the run (e.g. the logger settings). + +.. code-block:: yaml + :caption: ./logs/1/metadata/config.yaml + + seed: 0 + num_epoch: 10 + model: + num_units: 100 + data: + d_int: 10 + device: 'cpu' + optimizer: + lr: 10. + +.. code-block:: yaml + :caption: ./logs/1/metadata/info.yaml + + executable: absolute_path_to/bin/python + cmd: '' + end_date: 20/04/2023 + end_time: '16:01:13' + current_file_path: absolute_path_to/main.py + log_dir: absolute_path_to/logs/1 + log_id: 1 + process_id: 7100 + start_date: 20/04/2023 + start_time: '16:01:13' + status: COMPLETE + user: marbel + work_dir: absolute_path_to/tutorial + +.. code-block:: yaml + :caption: ./logs/1/metadata/mlxp.yaml + + logger: + forced_log_id: -1 + log_streams_to_file: false + name: DefaultLogger + parent_log_dir: ./logs + scheduler: + cleanup_cmd: '' + env_cmd: '' + name: NoScheduler + option_cmd: [] + shell_config_cmd: '' + shell_path: /bin/bash + version_manager: + name: GitVM + parent_work_dir: ./.workdir + compute_requirements: false + use_logger: true + use_scheduler: false + use_version_manager: false + interactive_mode: true + + +The :samp:`artifacts` directory +""""""""""""""""""""""""""""""" + +The directory :samp:`artifacts` is where all data passed to the logger's methods :samp:`log_artifacts` and :samp:`log_checkpoint` are stored. +These are stored in different directories depending on the artifact type. In this example, since we used the reserved method :samp:`log_checkpoint`, the logged data are considered as checkpoint objects, hence the sub-directory :samp:`Checkpoint`. +You can see that it contains the pickle file :samp:`last_ckpt.pkl` which is the name we provided when calling the method :samp:`log_checkpoint` in the :samp:`main.py` file. + + + + +Checkpointing +^^^^^^^^^^^^^ + +Checkpointing can be particularly useful if you need to restart a job from its latest state without having to re-run it from scratch. To do this, you only need to slightly modify the function :samp:`train` to load the latest checkpoint by default: + +.. code-block:: python + :caption: main.py + + import torch + from core import DataLoader, OneHiddenLayer + + import mlxp + + @mlxp.launch(config_path='./configs') + def train(ctx: mlxp.Context)->None: + + cfg = ctx.config + logger = ctx.logger + + # Try loading from the checkpoint + try: + checkpoint = logger.load_checkpoint() + start_epoch = checkpoint['epoch']+1 + model = checkpoint['model'] + except: + start_epoch = 0 + model = Network(n_layers = cfg.model.num_layers) + + + model = model.to(cfg.data.device) + optimizer = torch.optim.SGD(model.parameters(), + lr=cfg.optimizer.lr) + dataloader = DataLoader(cfg.data.d_int, + cfg.data.device) + + # Training + print(f"Starting from epoch: {start_epoch} ") + + for epoch in range(start_epoch,cfg.num_epoch): + + train_err = train_epoch(dataloader, + model, + optimizer) + + logger.log_metrics({'loss': train_err.item(), + 'epoch': epoch}, log_name='train') + + logger.log_checkpoint({'model': model, + 'epoch':epoch}, log_name='last_ckpt' ) + + print(f"Completed training with learing rate: {cfg.optimizer.lr}") + + + if __name__ == "__main__": + train() + +Of course, if you execute :samp:`main.py` without further options, the logger will create a new :samp:`log_id` where there is no checkpoint yet, so it cannot resume a previous job. Instead, you need to force the :samp:`log_id` using the option :samp:`logger.forced_log_id`: + +.. code-block:: console + + $ python main.py +mlxp.logger.forced_log_id=1 + Starting from epoch 10 + Completed training with learning rate: 1e-3 + +.. _custom_log_dir: + +Customizing the parent log directory +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can change the parent directory by overriding the option :samp:`+mlxp.logger.parent_log_dir` from the command-line: + +.. code-block:: console + + $ python main.py +mlxp.logger.parent_log_dir='./new_logs' + + +Alternatively, the parent directory can be modified directly in the MLXP default settings file :samp:`configs/mlxp.yaml`. This file is created automatically if it doesn't exist already and contains all the defaults options for using MLXP in the current project: + +.. code-block:: yaml + :caption: ./configs/mlxp.yaml + + logger: + ... + parent_log_dir: ./logs + ... diff --git a/master/_sources/easy_reading.rst.txt b/master/_sources/easy_reading.rst.txt new file mode 100644 index 0000000..295482c --- /dev/null +++ b/master/_sources/easy_reading.rst.txt @@ -0,0 +1,227 @@ +3- Reading +---------- + +We have already stored information about 3 runs so far. +We can access this information easily using MLXP's reader module, which allows querying results, grouping, and aggregating them. Let's do this interactively! + + +Creating a result database +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +We first start by creating a :samp:`reader` objects that interacts with the logs of multiple runs contained in the same parent directory (here :samp:`./logs/`): + +.. code-block:: ipython + + In [1]: import mlxp + + In [2]: # Creates a database of results stored by the logger that is accessible using a reader object. + ...: parent_log_dir = './logs/' + reader = mlxp.Reader(parent_log_dir) + + +Under the woods, the reader object creates a JSON file :samp:`database.json` in the directory :samp:`parent_log_dir` and stores metadata about all runs contained in that directory. + +.. code-block:: text + :caption: ./logs/ + + logs/ + ├── 1/... + ├── 2/... + ├── 3/... + └── database.json + + +This database allows, for instance, obtaining general information about the runs contained in the log directory :samp:`parent_log_dir`, such as the number of runs or the list of fields that are stored in the various files of the log directories: (e.g. in :samp:`config.yaml` , :samp:`info.yaml` or :samp:`metrics/`): + + +.. code-block:: ipython + + In [3]: # Displaying the number of runs accessible to the reader + ...: len(reader) + Out[3]: 3 + + In [4]: # Displaying all fields accessible in the database. + ...: print(reader.fields) + Out[4]: + Type + Fields + config.data.d_int '' + config.data.device '' + config.model.num_units '' + config.num_epoch '' + config.optimizer.lr '' + config.seed '' + info.app '' + info.cmd '' + info.end_date '' + info.end_time '' + info.exec '' + info.hostname '' + info.log_dir '' + info.log_id '' + info.process_id '' + info.start_date '' + info.start_time '' + info.status '' + info.user '' + info.work_dir '' + train.epoch 'LAZYDATA' + train.loss 'LAZYDATA' + + +For instance, the method :samp:`fields` displace a table of existing fields along with their type. +You can see that all the user config options are preceded by the prefix :samp:`config`. +The table also contains all fields stored in the files :samp:`info.yaml` of the metadata directory for each run. +Finally, all keys stored by the logger when calling the method :samp:`log_metrics` are also available. +Note that these keys are of type :samp:`LAZYDATA`, meaning that the database does not store these data but only a reference to them (more on this later). + + +Querying the database +^^^^^^^^^^^^^^^^^^^^^ +Once the database is created, the reader object allows filtering the database by the values taken by some of its fields. +Not all fields can make a valid query. Only those obtained when displaying the attribute 'searchable' are acceptable: + +.. code-block:: ipython + + In [5]: # Displaying searchable fields must start with info or config + ...: print(reader.searchable) + Out[5]: + Type + Fields + config.data.d_int '' + config.data.device '' + config.model.num_units '' + config.num_epoch '' + config.optimizer.lr '' + config.seed '' + info.executable '' + info.cmd '' + info.end_date '' + info.end_time '' info.current_file_path '' + info.hostname '' + info.log_dir '' + info.log_id '' + info.process_id '' + info.start_date '' + info.start_time '' + info.status '' + info.user '' + info.work_dir '' + + +The :samp:`searchable` fields must start with the prefixes: :samp:`info.` or :samp:`config.` to indicate that they correspond to keys in the files :samp:`config.yaml` and :samp:`info.yaml` of the directories :samp:`metadata` of the logs. Let's make a simple query and use the :samp:`filter` method: + + +.. code-block:: ipython + + In [6]: # Searching using a query string + ... query = "info.status == 'COMPLETE' & config.optimizer.lr <= 0.1" + ... results = reader.filter(query_string=query, result_format="pandas") + + In [7]: # Display the result as a pandas dataframe + ...: results + Out[7]: + config.data.d_int ... train.loss + 0 10 ... [0.030253788456320763, 0.03025251068174839, 0.... + 1 10 ... [0.030253788456320763, 0.03024102933704853, 0.... + + +Here, we call the method :samp:`filter` with the option :samp:`result_format` set to :samp:`pandas`. This allows to return the result as a pandas dataframe where the rows correspond to runs stored in the :samp:`parent_log_dir` and matching the query. If the query is an empty string, then all entries of the database are returned. + + +The dataframe's column names correspond to the fields contained in :samp:`reader.fields`. These names are constructed as follows: + +- The dot-separated flattened keys of the hierarchical options contained in the YAML file :samp:`metadata.yaml` preceded by the prefix :samp:`metadata`. +- The keys of the dictionaries stored in the files contained in the :samp:`metrics` directories (here :samp:`train.json`) preceded by the file name as a suffix (here: :samp:`train.`). + +As you can see, the dataframe loads the content of all keys in the files :samp:`train.json` (contained in the :samp:`metrics` directories of each run), which might not be desirable if these files are large. +This can be avoided using **lazy evaluation** which we describe next. + +Lazy evaluation +^^^^^^^^^^^^^^^ + +Instead of returning the result of the search as a pandas dataframe, which loads all the content of the, possibly large, :samp:`train.json` file, we can return a :samp:`mlxp.DataDictList` object. +This object can also be rendered as a dataframe but does not load the :samp:`train.json` files in memory unless the corresponding fields are explicitly accessed. + + + +.. code-block:: ipython + + In [8]: # Returning a DataDictList as a result + ... results = reader.filter(query_string=query) + + In [9]: # Display the result as a pandas dataframe + ...: results + Out[9]: + config.data.d_int config.data.device ... train.epoch train.loss + 0 10 cpu ... LAZYDATA LAZYDATA + 1 10 cpu ... LAZYDATA LAZYDATA + + [2 rows x 39 columns] + +As you can see, the content of the columns :samp:`train.epoch` and :samp:`train.loss` is simply marked as :samp:`LAZYDATA`, meaning that it is not loaded for now. If we try to access a specific column (e.g. :samp:`train.loss`), :samp:`DataDictList` will automatically load the desired result: + + +.. code-block:: ipython + + In [10]: # Access a particular column of the results + ...: results[0]['train.loss'] + Out[10]: + [0.030253788456320763, 0.03025251068174839, 0.030249962583184242, 0.030246131122112274, 0.03024103306233883, 0.030234655365347862, 0.03022700361907482, 0.030218079686164856, 0.030207885429263115, 0.030196424573659897] + +The object results should be viewed as a list of dictionaries. Each element of the list corresponds to a particular run in the :samp:`parent_log_dir` directory. The keys of each dictionary in the list are the columns of the dataframe. Finally, it is always to convert a :samp:`DataDictList` object to a pandas dataframe using the method :samp:`toPandasDF`. + + +Grouping and aggregation +^^^^^^^^^^^^^^^^^^^^^^^^ + +While it is possible to directly convert the results of a query to a pandas dataframe which supports grouping and aggregation operations, +MLXP also provides basic support for these operations. Let's see how this works: + + +.. code-block:: ipython + + + In [11]: # List of group keys. + ... group_keys = ['config.optimizer.lr'] + + In [12]: # Grouping the results + ...: grouped_results = results.groupBy(group_keys) + ...: print(grouped_results) + Out[12]: + config.data.d_int config.data.device ... train.epoch train.loss + config.optimizer.lr ... + 0.01 10 cpu ... LAZYDATA LAZYDATA + 0.10 10 cpu ... LAZYDATA LAZYDATA + + [2 rows x 38 columns] + +The output is an object of type :samp:`GroupedDataDicts`. It can be viewed as a dictionary whose keys are given by the different values taken by the group variables. Here the group variable is the learning rate :samp:`config.optimizer.lr` which takes the values :samp:`0.01` and :samp:`0.10`. Hence, the keys of :samp:`GroupedDataDicts` are :samp:`0.01` and :samp:`0.10`. Each group (for instance the group with key :samp:`0.01`) is a :samp:`DataDictList` object containing the different runs belonging to that group. + +Finally, we can aggregate these groups according to some aggregation operations: + + +.. code-block:: ipython + + + In [13]: # Creating the aggregation maps + ... from mlxp.data_structures.contrib.aggregation_maps import AvgStd + ... agg_maps = [AvgStd('train.loss'),AvgStd('train.epoch')] + + + In [14]: # Aggregating the results + ...: agg_results = grouped_results.aggregate(agg_maps) + ...: print(agg_results) + Out[14]: + train.loss_avg ... config.optimizer.lr + 0 [0.030253788456320763, 0.03024102933704853, 0.... ... 0.1 + 1 [0.030253788456320763, 0.03025251068174839, 0.... ... 0.01 + + [2 rows x 3 columns] + +Here, we compute the average and standard deviation of the field :samp:`train.loss` which contains a list of loss values. The loss values are averaged per group and the result is returned as a :samp:`DataDictList` object whose columns consist of: + +- The resulting fields: :samp:`train.loss_avg` and :samp:`train.loss_std` +- The original group key: :samp:`config.optimizer.lr`. + +Of course, one can always convert these structures to a pandas dataframe at any time! \ No newline at end of file diff --git a/master/_sources/easy_versioning.rst.txt b/master/_sources/easy_versioning.rst.txt new file mode 100644 index 0000000..ddaf5d7 --- /dev/null +++ b/master/_sources/easy_versioning.rst.txt @@ -0,0 +1,137 @@ +3- Versioning +------------- + +Sometimes, there can be a delay between the time when a job is submitted and when it gets executed. This typically happens when submitting jobs to a cluster queue. +Meanwhile, the development code might have already changed, with some potential bugs introduced! +Without careful version management, it is hard to know for sure what code was used to produce the results. + + +MLXP proposes a simple way to avoid these issues by introducing two features: +- Requiring the code to be in a git repository +- Systematically checking for uncommitted change/ untracked files. +- Systematically copying the code from the git repository containing the executable to another 'safe' location based on the latest commit. The code is then run from this location to avoid any interference with changes introduced later to the development code and before executing a job. + + +1- Using MLXP's version manager +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Let's see how this works! We simply need to set the option +:samp:`use_version_manager` to true and make sure the code belong to a git repository. Depending on whether the interactive mode is active (:samp:`mlxp.interactive_mode=True`) or not, an interactive session is created where the user can tell the version manager what to do or the job is executed from on a copy of the code based on the latest commit. + +Without the interactive mode +"""""""""""""""""""""""""""" + +If the version manager is used without the interative mode (:samp:`mlxp.interactive_mode=False`), a copy of the code based on the latest commit is created, if it does not already exists. It is located in a directory of the form +:samp:`parent_work_dir/repo_name/commit_hash`, where :samp:`parent_work_dir` is provided by the user in the mlxp config file, :samp:`repo_name` is the name of the git repository and :samp:`commit_hash` is the latest commit's hash. + +MLXP then proceeds to execute the code from that copy: + + +.. code-block:: console + + $ python main.py +mlxp.use_version_manager=True + + Creating a copy of the repository at absolute_path_to/.workdir/mlxp/commit_hash + Starting from epoch: 0 + Completed training with a learning rate of 10.0 + + +We can double check where the code was executed from by inspecting the :samp:`info.yaml` file (Note that this is the 4th run, so the file should be located in :samp:`./logs/4/` ) + + +.. code-block:: yaml + :caption: ./logs/4/metadata/info.yaml + + ... + work_dir: absolute_path_to/.workdir/mlxp/commit_hash/tutorial + version_manager: + commit_hash: f02c8e5aa1a4c71d348141543a20543a2e4671b4 + repo_path: absolute_path_to_repo + requirements: + - dill==0.3.6 + - GitPython==3.1.31 + - hydra-core==1.3.2 + - omegaconf==2.2.3 + - pandas==1.2.4 + - ply==3.11 + - PyYAML==6.0 + - setuptools==52.0.0.post20210125 + - tinydb==4.7.1 + +If other jobs are submitted later, and if the code did not change meanwhile, these jobs will also be executed from this same working directory. This avoids copying the same content multiple times. + +Finally, a copy of the dependencies used by the code along with their versions is also made in the field :samp:`requirements` if the option +:samp:`mlxp.version_manager.compute_requirements` is set to :samp:`True`. + + + +With the interactive mode +""""""""""""""""""""""""" + +When the interactive mode is active (:samp:`mlxp.interactive_mode=False`), the version manager checks for untracked files and uncommited changes and asks if how to handle those before executing the code. + + +First, the version manager checks for untracked files and asks the user whether untracked files should be added to the git repository. + + +.. code-block:: console + + There are untracked files in the repository: + tutorial/script.sh + Please select files to be tracked (comma-separated) and hit Enter to skip: + +Here, we just hit Enter to skip. The next step is to check for uncommitted changes. + +.. code-block:: console + + There are uncommitted changes in the repository: + + tutorial/main.py + Would you like to create an automatic commit for all uncommitted changes? (y/n) + y: Yes. + n: No. Uncommitted changes will be ignored. (Before selecting this option, it is recommanded to manually handle uncommitted changes.) + [Automatic commit]: Please enter your choice (y/n): + +We see that there is one uncommitted change. The user can either ignore it or create an automatic commit from the version manager interface. Here, we just choose the option :samp:`y` which creates an automatic commit of the changes. + + +.. code-block:: console + + Commiting changes.... + + 1 files changed, 4 insertions(+), 3 deletions(-) + create mode 100644 tutorial/script.sh + + +Finally, the version manager creates the backup copy of the code based on the latest commit and runs it from there, just like in the non-interactive mode. + + +2- Using the version manager with a job scheduler +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can combine both features to run several reproducible jobs with a controlled version of the code they use. For this, you can create a script (here :samp:`script.sh`) containing all the jobs you need to run as well as the options to your scheduler. You'll need to activate the version manager when executing each command. + + .. code-block:: console + + #!/bin/bash + + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + + python main.py optimizer.lr=10.,1. seed=1,2 + mlxp.use_version_manager=True + python main.py model.num_units=100,200 seed=1,2 + mlxp.use_version_manager=True + +Now you simply need to submit your jobs using :samp:`mlxpsub` command: + + + .. code-block:: console + + mlxpsub script.sh + + +In this case, MLXP will go through the following step: + + +1. The version manager asks the user to decide how to handle untracked/uncommitted files and whether or not to create a 'safe' directory from which the code will be run. +2. Once the user's choices are entered, the jobs are created and submitted to the scheduler, and you only need to wait for the results to come! diff --git a/master/_sources/getting_started.rst.txt b/master/_sources/getting_started.rst.txt new file mode 100644 index 0000000..8485a6e --- /dev/null +++ b/master/_sources/getting_started.rst.txt @@ -0,0 +1,220 @@ +Quick start guide +================= + + +This quick-start guide is meant to give you a overview of how MLXP works. +To get a more in-depth understanding of MLXP's capabilities, please follow the :ref:`tutorial`. + + +1- Using MLXP +------------- + +Let's say you are given a directory :samp:`my_project` containing a python file :samp:`main.py` and a sub-directory :samp:`configs` containing a file 'config.yaml' with option configurations for the project: + +.. code-block:: text + + my_project/ + ├── configs/ + │ └── config.yaml + └── main.py + + +In this example, the file :samp:`main.py` contains a function :samp:`my_task` that performs some task when called. To use MLXP for launching a job, you can use the decorator :samp:`mlxp.launch` above the function :samp:`my_task`. + +.. code-block:: python + + import mlxp + + @mlxp.launch(config_path='./configs') + def my_task(ctx: mlxp.Context)->None: + + # Displaying user-defined options from './configs/config.yaml + print("ctx.config") + + # Logging information in log directory created by MLXP: (here "./logs/1" ) + for i in range(ctx.config.num_epoch) + ctx.logger.log_metrics({"epoch":i}) + + + + if __name__ == "__main__": + my_task() + +The decorated function :samp:`my_task` must take a variable :samp:`ctx` of type :samp:`mlxp.Context` as an argument. Note that :samp:`my_task` is later called without providing the context variable just like in `hydra `_. +The :samp:`ctx` variable is automatically created on the fly during execution and stores information about the run. +Importantly, it contains: + + + - :samp:`ctx.config`: a dictionary-like object storing user-defined configurations, usually loaded from a yaml file located in a configuration directory (here the directory :samp:`./configs`) + - :samp:`ctx.logger`: A logger object that can be used in the code for saving variables (metrics, checkpoints, artifacts). + +2- Configuring +-------------- + +Just like when using `hydra `_, you can provide all default options needed for the code in a separate Yaml file named :samp:`config.yaml` and contained in the :samp:`./configs` directory. These will be passed to the object :samp:`ctx.config`. + +.. code-block:: yaml + :caption: ./configs/config.yaml + + seed: 0 + num_epoch: 10 + model: + num_units: 100 + data: + d_int: 10 + device: 'cpu' + optimizer: + lr: 10. + +3- Logging +---------- + +Logging is activated by default and as soon as the run is launched, the logger creates a directory :samp:`parent_log_dir/log_id` where :samp:`parent_log_dir` is provided by the user (default to :samp:`./logs`) while :samp:`log_id` is unique id that MLXP assigns to the run. + +- **Logging metadata:** Once the job is executed, the configuration options used for the run are automatically stored in a file :samp:`parent_log_dir/log_id/metadata/config.yaml`. + +- **Logging metrics and artifacts:** Additionally, the user can log additional informations using the methods :samp:`log_metrics`, :samp:`log_checkpoint` (see :ref:`Logging tutorial`) which are stored in the directories :samp:`metrics` and :samp:`artifacts`. + + +**Log directory structure:** Each log directory contains three sub-directories: samp:`metadata`, :samp:`metrics` and samp:`artifacts`: + +.. code-block:: text + :caption: ./logs/ + + logs/ + ├── 1/ + │ ├── metadata/ + │ │ ├── config.yaml + │ │ ├── info.yaml + │ │ └── mlxp.yaml + │ ├── metrics/ + │ │ ├── train.json + │ │ └──.keys/ + │ │ └── metrics.yaml + │ └── artifacts/ + │ └── Checkpoint/ + │ └── last_ckpt.pkl + │ + ├── 2/... + └── 3/... + + + + +4- Launching locally +-------------------- + + +When executing the Python file :samp:`main.py` from the command line, we get the following output: + +.. code-block:: console + + $ python main.py + + seed: 0 + num_epoch: 10 + model: + num_units: 100 + data: + d_int: 10 + device: 'cpu' + optimizer: + lr: 10. + + + +Overriding options from the command-line interface +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Just like in `hydra `_, you can also override the options contained in the :samp:`config.yaml` file from the command line: + +.. code-block:: console + + $ python main.py optimizer.lr=0.1 model.num_layers=6 + + seed: 0 + num_epoch: 10 + model: + num_units: 100 + data: + d_int: 10 + device: 'cpu' + optimizer: + lr: 0.1 + + +If the file :samp:`config.yaml` or its parent directory :samp:`config_path` do not exist, they will be created automatically. When created automatically, :samp:`config.yaml` is empty and needs to be filled with default values of the user defined options. + + +5- Submitting multiple jobs to a job scheduler +---------------------------------------------- + +Let's say, you'd like to submit multiple jobs into a job scheduler. You can do this easily using the mlxpsub command! + +i) Creating a job script +^^^^^^^^^^^^^^^^^^^^^^^^ + +The first step is to create a script 'script.sh' in your working directory (here under :samp:`my_project`). In this script you can define the resources allocated to your jobs, using the syntax of your job scheduler, as well as the python command for exectuting the python script :samp:`main.py` with different option values. Thanks to Hydra, you don't need any for loops and your job as be as concise as what follows: + + .. code-block:: console + + #!/bin/bash + + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + + python main.py optimizer.lr=10.,1. seed=1,2 + python main.py model.num_units=100,200 seed=1,2 + +The above script is maint to create and exectute 8 jobs in total that will be submitted to an OAR job scheduler: + +- The first 4 jobs correspond to the first python command using all possible combinations of option values for :samp:`optimizer.lr` and :samp:`seed` : :samp:`(10.,1), (10,2), (1.,1), (1.,2)`. + +- The 4 next jobs are for the second command wich varies the options :samp:`model.num_units` and :samp:`seed`. + + +MLXP supports multiple job schedulers, including +`SLURM `_, `OAR `_, `TORQUE `_, `SGE `_, `MWM `_ and +`LSF `_. +All what you have to do is to use the native syntax for specifying resources for the job as commants in the script. + +ii) Submitting using mlxpsub +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You only need to run the following command in the terminal: + + +.. code-block:: console + + mlxpsub script.sh + + +How it works +^^^^^^^^^^^^ + +MLXP creates a script for each job corresponding to optionsetting. Each script is located in a directory of the form :samp:`parent_log/log_id` , where log_id is automatically assigned by MLXP for each job. + +Here is an example of the first created script in :samp:`logs/1/script.sh` where the user sets :samp:`parent_log` to :samp:`logs`. + +.. code-block:: console + + #!/bin/bash + #OAR -n logs/1 + #OAR -E /root/logs/1/log.stderr + #OAR -O /root/logs/1/log.stdout + #OAR -l core=1, walltime=6:00:00 + #OAR -t besteffort + #OAR -t idempotent + + cd /root/workdir/ + python main.py optimizer.lr=10. seed=1 + +As you can see, MLXP automatically assigns values for +the job's name, stdout and stderr file paths, so there is no need to specify those in the original script :samp:`script.sh`. + +These scripts contain the same scheduler's options +as in :samp:`script.sh` and a single python command specific option setting: :samp:`optimizer.lr=10. seed=1`. + +Additionally, MLXP pre-processes the python command to extract the working directory and sets it explicitly in the newly created script before the python command. + diff --git a/master/_sources/guide.rst.txt b/master/_sources/guide.rst.txt new file mode 100644 index 0000000..8a55f34 --- /dev/null +++ b/master/_sources/guide.rst.txt @@ -0,0 +1,16 @@ +Guide +===== + + + + +.. toctree:: + :maxdepth: 2 + + installing + getting_started + configuring_mlxp + tutorial + + + diff --git a/master/_sources/index.rst.txt b/master/_sources/index.rst.txt new file mode 100644 index 0000000..3e90e80 --- /dev/null +++ b/master/_sources/index.rst.txt @@ -0,0 +1,114 @@ +.. MLXP documentation master file, created by + sphinx-quickstart on Sun Apr 2 05:53:07 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome MLXP's documentation! +============================== + + +MLXP (Machine Learning eXperimentalist for Python) package is an open-source Python framework for managing multiple experiments with a flexible option structure from launching, and logging to querying results. The source code is available in `MLXP's GitHub repository `_. + + + +Key functionalities +^^^^^^^^^^^^^^^^^^^ + +1. Launching several jobs automatically using `hydra `_ and hierarchical configs by adding a single decorator to the main task function. +2. Logging outputs (metrics, artifacts, checkpoints) of a job in a uniquely assigned directory along with all metadata and configuration options to reproduce the experiment. +3. Code version management by automatically generating a deployment version of the code based on the latest git commit. +4. Submitting jobs to a cluster using a job scheduler. +5. Exploiting the results of several experiments by easily reading, querying, grouping, and aggregating the output of several jobs. + +.. |green| image:: images/Green-checkmark.png + :width: 20px + :align: middle + +.. |red| image:: images/red_checkmark.png + :width: 20px + :align: middle + + ++-----------------------------+-----------------+-----------------+-----------------+ +| Features | MLXP | MLFlow tracking | Weights & Biases| ++=============================+=================+=================+=================+ +| Configuration management | |green| | |red| | |red| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Hyperparameter Sweeps | |green| | |red| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Launching/Job submission | |green| | |red| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Logging/Tracking | |green| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Experiment Search/Filtering | |green| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Experiment Comparison | |green| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Lazy loading results | |green| | |red| | |red| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Code versioning | |green| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Code version checking | |green| | |red| | |red| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Model Versioning | |red| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Interactive Visualizations | |red| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ +| Collaboration and Sharing | |red| | |green| | |green| | ++-----------------------------+-----------------+-----------------+-----------------+ + + + + +License +^^^^^^^ + +MLXP is distributed under MIT license. + +Citing MLXP +^^^^^^^^^^^^ + +Even though this is non-legally binding, the author kindly ask users to cite MLXP in their publications if they use +it in their research as follows: + + +.. code-block:: bibtex + + @Misc{Arbel2023MLXP, + author = {Michael Arbel}, + title = {MLXP: A framework for conducting machine learning experiments in python}, + howpublished = {Github}, + year = {2023}, + url = {https://github.com/inria-thoth/mlxp} + } + +Acknowledgments +^^^^^^^^^^^^^^^ + +I would like to acknowledge the following contributors for their contributions to the development of this package: + +- `Alexandre Zouaoui `_ kindly shared his python implementation for creating job scripts and submiting them to a cluster. His code served as the basis for the implementation of the Scheduler class. While the process of job submission significantly evolved, by integrating it with MLXpy's launching functionality, I am grateful for Alexandre's contribution which were invaluable to the development of this project. + +- `Juliette Marrie `_ tested a premature version of MLXP. I am grateful for her feedback which was extremetly helpful for shaping and improving MLXP's functionalities. + +- `Romain Ménégaux `_ and `Pierre Wolinski `_ provided valuable feedback and suggestions to improve MLXP. They also found and reported several bugs in the software which helped improve its quality and stability. + + + +Tables of content +----------------- + +.. toctree:: + :maxdepth: 2 + :caption: Content: + + + guide + mlxp + + +Indices and tables +------------------ + +* :ref:`genindex` +* :ref:`modindex` diff --git a/master/_sources/installing.rst.txt b/master/_sources/installing.rst.txt new file mode 100644 index 0000000..41b5ade --- /dev/null +++ b/master/_sources/installing.rst.txt @@ -0,0 +1,73 @@ +Installing MLXP +^^^^^^^^^^^^^^^^ + +You can install MLXP either from PyPI or by cloning the GitHub. + + +From PyPI +--------- + +You can simply run the following command: + +.. code-block:: console + + $ pip install MLXP + + +From GitHub +----------- + +You can install this package by cloning it from the GitHub repository +and then installing it with `pip`. + + +1. Clone the repository: + +.. code-block:: console + + $ git clone git@github.com:inria-thoth/mlxp.git + +2. Change to the package directory: + +.. code-block:: console + + $ cd mlxp + +3. Install the requirements using `pip`: + +.. code-block:: console + + $ pip install -r requirements.txt + +4. Install the package: + +.. code-block:: console + + $ pip install . + +Note: You may need to use `pip3` instead of `pip` depending on your setup. + + + + +Before installing MLXP, make sure you the requirements are installed. + + +Requirements +------------ + + +.. list-table:: + :header-rows: 1 + :class: left + + * - Requirements + * - hydra-core + * - omegaconf + * - tinydb + * - setuptools + * - PyYAML + * - pandas + * - ply + * - dill + * - GitPython diff --git a/master/_sources/mlxp.data_structures.rst.txt b/master/_sources/mlxp.data_structures.rst.txt new file mode 100644 index 0000000..265e910 --- /dev/null +++ b/master/_sources/mlxp.data_structures.rst.txt @@ -0,0 +1,40 @@ +Data structures +=============== + + +These are the data structures provided by MLXP to handle configuration options and data + + +The :class:`~mlxp.data_structures.schemas` Classes +--------------------------------------------------- + + +.. automodule:: mlxp.data_structures.schemas + :members: + :show-inheritance: + +The :class:`~mlxp.data_structures.config_dict` Classes +------------------------------------------------------- + +.. automodule:: mlxp.data_structures.config_dict + :members: + :show-inheritance: + + +The :class:`~mlxp.data_structures.artifacts.Artifact` Class +------------------------------------------------------------ + + +.. automodule:: mlxp.data_structures.artifacts + :members: + :show-inheritance: + + + +The :class:`~mlxp.data_structures.data_dict` Module +---------------------------------------------------- + +.. automodule:: mlxp.data_structures.data_dict + :members: + :show-inheritance: + diff --git a/master/_sources/mlxp.launching.rst.txt b/master/_sources/mlxp.launching.rst.txt new file mode 100644 index 0000000..070df9d --- /dev/null +++ b/master/_sources/mlxp.launching.rst.txt @@ -0,0 +1,24 @@ +Launcher +======== + + +The :class:`~mlxp.launcher.launch` Decorator +-------------------------------------------- + +.. automodule:: mlxp.launcher + :members: + :show-inheritance: + + + + +The :class:`~mlxp.mlxpsub.mlxpsub` Command +------------------------------------------ + +.. automodule:: mlxp.mlxpsub + :members: + :show-inheritance: + + + + diff --git a/master/_sources/mlxp.logging.rst.txt b/master/_sources/mlxp.logging.rst.txt new file mode 100644 index 0000000..9df5484 --- /dev/null +++ b/master/_sources/mlxp.logging.rst.txt @@ -0,0 +1,13 @@ +Logger +====== + + +The :class:`~mlxp.logger.Logger` Class +-------------------------------------- + +.. automodule:: mlxp.logger + :members: + :show-inheritance: + + + diff --git a/master/_sources/mlxp.reading.rst.txt b/master/_sources/mlxp.reading.rst.txt new file mode 100644 index 0000000..df3e766 --- /dev/null +++ b/master/_sources/mlxp.reading.rst.txt @@ -0,0 +1,24 @@ +Reader +====== + + +The :class:`~mlxp.reader.Reader` Class +-------------------------------------- + +.. automodule:: mlxp.reader + :members: + :show-inheritance: + + + +The :class:`~mlxp.parser.Parser` Module +--------------------------------------- + +.. automodule:: mlxp.parser + :members: + :show-inheritance: + + + + + diff --git a/master/_sources/mlxp.rst.txt b/master/_sources/mlxp.rst.txt new file mode 100644 index 0000000..b342a1f --- /dev/null +++ b/master/_sources/mlxp.rst.txt @@ -0,0 +1,14 @@ +MLXP package +============= + + + +.. toctree:: + :maxdepth: 2 + + mlxp.launching + mlxp.logging + mlxp.reading + mlxp.scheduling + mlxp.version_managment + mlxp.data_structures diff --git a/master/_sources/mlxp.scheduling.rst.txt b/master/_sources/mlxp.scheduling.rst.txt new file mode 100644 index 0000000..10f25d8 --- /dev/null +++ b/master/_sources/mlxp.scheduling.rst.txt @@ -0,0 +1,14 @@ +Scheduler +========= + + + + + +The :class:`~mlxp.scheduler.Scheduler` Class +--------------------------------------------- + +.. automodule:: mlxp.scheduler + :members: + :show-inheritance: + diff --git a/master/_sources/mlxp.version_managment.rst.txt b/master/_sources/mlxp.version_managment.rst.txt new file mode 100644 index 0000000..9c1b938 --- /dev/null +++ b/master/_sources/mlxp.version_managment.rst.txt @@ -0,0 +1,12 @@ +Version manager +=============== + + + + +The :class:`~mlxp.version_manager.VersionManager` Class +-------------------------------------------------------- + +.. automodule:: mlxp.version_manager + :members: + :show-inheritance: diff --git a/master/_sources/tutorial.rst.txt b/master/_sources/tutorial.rst.txt new file mode 100644 index 0000000..6331c71 --- /dev/null +++ b/master/_sources/tutorial.rst.txt @@ -0,0 +1,45 @@ +.. _tutorial: + +Tutorial +======== + + +In this tutorial, we will see how to use MLXP to run machine learning experiments. + + +.. toctree:: + :maxdepth: 2 + + tutorial_introduction + easy_launching + easy_logging + easy_versioning + easy_reading + tutorial_conclusion + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/master/_sources/tutorial_conclusion.rst.txt b/master/_sources/tutorial_conclusion.rst.txt new file mode 100644 index 0000000..ac45bc4 --- /dev/null +++ b/master/_sources/tutorial_conclusion.rst.txt @@ -0,0 +1,6 @@ +Conclusion +^^^^^^^^^^ + +In this tutorial, you has an overview of the main functionalities provided by MLXP and how to use them for performing machine learning experiments. +I hope you can find MLXP useful, and I'd be happy to hear your feedback and suggestions! + diff --git a/master/_sources/tutorial_introduction.rst.txt b/master/_sources/tutorial_introduction.rst.txt new file mode 100644 index 0000000..37a7596 --- /dev/null +++ b/master/_sources/tutorial_introduction.rst.txt @@ -0,0 +1,152 @@ +Introduction +------------ + + +In this tutorial, we will go through the three main functionalities: Launching, Logging, and Reading and explain these are easily handled by MLXP. +Then we will see how to enhance reproducibility of experiments using the git-based version manager provided by MLXP and how to submit several jobs to a cluster in a single command using the MLXP's scheduler. + +To make things concrete, we will consider a simple use-case where we are interested in training a neural network on a regression task. You can find code for reproducing this tutorial by following this link https://github.com/inria-thoth/mlxp/tree/master/tutorial. + +The working example +^^^^^^^^^^^^^^^^^^^ +We will now give a quick overview of our working example, where we present the directory structure of the code and its main content. + +The first step is to create a directory 'tutorial' containing the code needed for this project. The directory is structured as follow: + +.. code-block:: text + :caption: tutorial/ + + tutorial/ + ├── configs/ + │ └── config.yaml + ├── core.py + ├── main.py + └── results.py + +The directory contains three files: :samp:`core.py`, :samp:`main.py` :samp:`results.py`. It also contains a directory :samp:`configs` that will be used later by MLXP. For now, we will only have a look at the :samp:`core.py` and :samp:`main.py` files. + + +The :samp:`core.py` file +"""""""""""""""""""""""" + +The file :samp:`core.py` contains a PyTorch implementation of a one hidden layer network :samp:`OneHiddenLayer` as well as a simple data loader :samp:`DataLoader` that we will use during training. +In the rest of the tutorial, we will not need to worry about the content of :samp:`core.py`, but let's just have a quick look at this file: + + +.. code-block:: python + :caption: main.py + + import torch + import torch.nn as nn + + def train_epoch(dataloader, + model, + optimizer): + for data in dataloader: + x,y = data + pred = model(x) + train_err = torch.mean((pred-y)**2) + train_err.backward() + optimizer.step() + return train_err + + class Dataset(torch.utils.data.Dataset): + + def __init__(self, d_int, device): + self.network = OneHiddenLayer(d_int, 5) + self.device = device + dtype = torch.float + self.X = torch.normal(mean= torch.zeros(N_samples,d_int,dtype=dtype,device=device),std=1.) + self.total_size = N_samples + with torch.no_grad(): + self.Y = self.network(self.X) + + def __len__(self): + return self.total_size + def __getitem__(self,index): + return self.X[index,:],self.Y[index,:] + + def DataLoader(d_int, device): + dataset = Dataset(d_int, device) + return [(dataset.X, dataset.Y)] + + + + class OneHiddenLayer(nn.Module): + def __init__(self,d_int, n_units): + super(OneHiddenLayer,self).__init__() + self.linear1 = torch.nn.Linear(d_int, n_units,bias=True) + self.linear2 = torch.nn.Linear( 1, n_units, bias=False) + self.non_linearity = torch.nn.SiLU() + self.d_int = d_int + self.n_units = n_units + + def forward(self, x): + x = self. non_linearity(self.linear1(x)) + return torch.einsum('hi,nh->ni',self.linear2.weight,x)/self.n_units + + +.. _old_main_file: + +The :samp:`main.py` file +"""""""""""""""""""""""" + +The file :samp:`main.py` contains code for training the model :samp:`OneHiddenLayer` on data provided by the :samp:`DataLoader`. Training is performed using the function :samp:`train`: + +.. code-block:: python + :caption: main.py + + import torch + from core import DataLoader, OneHiddenLayer + + def train(d_int = 10, + num_units = 100, + num_epoch = 10, + lr = 10., + device = 'cpu'): + + # Building model, optimizer and data loader. + model = OneHiddenLayer(d_int=d_int, n_units = num_units) + model = model.to(device) + optimizer = torch.optim.SGD(model.parameters(),lr=lr) + dataloader = DataLoader(d_int,device) + + # Training + for epoch in range(num_epoch): + + train_err = train_epoch(dataloader, + model, + optimizer) + + print({'loss': train_err.item(), + 'epoch': epoch}) + + print(f"Completed training with learing rate: {lr}") + + if __name__ == "__main__": + train() + + +Training the model +"""""""""""""""""" + +If we execute the function :samp:`main.py`, we can see that the training performs 10 :samp:`epochs` and then prints a message confirming that the training is complete. + +.. code-block:: console + + $ python main.py + {'loss': 0.030253788456320763, 'epoch': 0} + {'loss': 0.02899891696870327, 'epoch': 1} + {'loss': 0.026649776846170425, 'epoch': 2} + {'loss': 0.023483652621507645, 'epoch': 3} + {'loss': 0.019827445968985558, 'epoch': 4} + {'loss': 0.01599641889333725, 'epoch': 5} + {'loss': 0.012259905226528645, 'epoch': 6} + {'loss': 0.008839688263833523, 'epoch': 7} + {'loss': 0.005932427477091551, 'epoch': 8} + {'loss': 0.003738593542948365, 'epoch': 9} + Completed training with learing rate: 10.0 + + +In this basic example, we have not used any specific tool for launching or logging. Next, we will see how you can use MLXP to keep track of all options, results, and code versions seamlessly! + diff --git a/master/_static/basic.css b/master/_static/basic.css new file mode 100644 index 0000000..30fee9d --- /dev/null +++ b/master/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/master/_static/debug.css b/master/_static/debug.css new file mode 100644 index 0000000..74d4aec --- /dev/null +++ b/master/_static/debug.css @@ -0,0 +1,69 @@ +/* + This CSS file should be overridden by the theme authors. It's + meant for debugging and developing the skeleton that this theme provides. +*/ +body { + font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji"; + background: lavender; +} +.sb-announcement { + background: rgb(131, 131, 131); +} +.sb-announcement__inner { + background: black; + color: white; +} +.sb-header { + background: lightskyblue; +} +.sb-header__inner { + background: royalblue; + color: white; +} +.sb-header-secondary { + background: lightcyan; +} +.sb-header-secondary__inner { + background: cornflowerblue; + color: white; +} +.sb-sidebar-primary { + background: lightgreen; +} +.sb-main { + background: blanchedalmond; +} +.sb-main__inner { + background: antiquewhite; +} +.sb-header-article { + background: lightsteelblue; +} +.sb-article-container { + background: snow; +} +.sb-article-main { + background: white; +} +.sb-footer-article { + background: lightpink; +} +.sb-sidebar-secondary { + background: lightgoldenrodyellow; +} +.sb-footer-content { + background: plum; +} +.sb-footer-content__inner { + background: palevioletred; +} +.sb-footer { + background: pink; +} +.sb-footer__inner { + background: salmon; +} +.sb-article { + background: white; +} diff --git a/master/_static/doctools.js b/master/_static/doctools.js new file mode 100644 index 0000000..d06a71d --- /dev/null +++ b/master/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/master/_static/documentation_options.js b/master/_static/documentation_options.js new file mode 100644 index 0000000..add8e0c --- /dev/null +++ b/master/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.2.1', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/master/_static/file.png b/master/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/master/_static/language_data.js b/master/_static/language_data.js new file mode 100644 index 0000000..250f566 --- /dev/null +++ b/master/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/master/_static/minus.png b/master/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/master/_static/plus.png b/master/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/master/_static/pygments.css b/master/_static/pygments.css new file mode 100644 index 0000000..c2e07c7 --- /dev/null +++ b/master/_static/pygments.css @@ -0,0 +1,258 @@ +.highlight pre { line-height: 125%; } +.highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #8f5902; font-style: italic } /* Comment */ +.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ +.highlight .g { color: #000000 } /* Generic */ +.highlight .k { color: #204a87; font-weight: bold } /* Keyword */ +.highlight .l { color: #000000 } /* Literal */ +.highlight .n { color: #000000 } /* Name */ +.highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ +.highlight .x { color: #000000 } /* Other */ +.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ +.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ +.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #a40000 } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #ef2929 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #000000; font-style: italic } /* Generic.Output */ +.highlight .gp { color: #8f5902 } /* Generic.Prompt */ +.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ +.highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #000000 } /* Literal.Date */ +.highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ +.highlight .s { color: #4e9a06 } /* Literal.String */ +.highlight .na { color: #c4a000 } /* Name.Attribute */ +.highlight .nb { color: #204a87 } /* Name.Builtin */ +.highlight .nc { color: #000000 } /* Name.Class */ +.highlight .no { color: #000000 } /* Name.Constant */ +.highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #ce5c00 } /* Name.Entity */ +.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #000000 } /* Name.Function */ +.highlight .nl { color: #f57900 } /* Name.Label */ +.highlight .nn { color: #000000 } /* Name.Namespace */ +.highlight .nx { color: #000000 } /* Name.Other */ +.highlight .py { color: #000000 } /* Name.Property */ +.highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #000000 } /* Name.Variable */ +.highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ +.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ +.highlight .mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ +.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ +.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ +.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ +.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ +.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ +.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ +.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ +.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ +.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ +.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ +.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ +.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #000000 } /* Name.Function.Magic */ +.highlight .vc { color: #000000 } /* Name.Variable.Class */ +.highlight .vg { color: #000000 } /* Name.Variable.Global */ +.highlight .vi { color: #000000 } /* Name.Variable.Instance */ +.highlight .vm { color: #000000 } /* Name.Variable.Magic */ +.highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ +@media not print { +body[data-theme="dark"] .highlight pre { line-height: 125%; } +body[data-theme="dark"] .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight .hll { background-color: #404040 } +body[data-theme="dark"] .highlight { background: #202020; color: #d0d0d0 } +body[data-theme="dark"] .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body[data-theme="dark"] .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body[data-theme="dark"] .highlight .esc { color: #d0d0d0 } /* Escape */ +body[data-theme="dark"] .highlight .g { color: #d0d0d0 } /* Generic */ +body[data-theme="dark"] .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body[data-theme="dark"] .highlight .l { color: #d0d0d0 } /* Literal */ +body[data-theme="dark"] .highlight .n { color: #d0d0d0 } /* Name */ +body[data-theme="dark"] .highlight .o { color: #d0d0d0 } /* Operator */ +body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ +body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ +body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ +body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ +body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ +body[data-theme="dark"] .highlight .go { color: #cccccc } /* Generic.Output */ +body[data-theme="dark"] .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body[data-theme="dark"] .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body[data-theme="dark"] .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body[data-theme="dark"] .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body[data-theme="dark"] .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body[data-theme="dark"] .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body[data-theme="dark"] .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body[data-theme="dark"] .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body[data-theme="dark"] .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body[data-theme="dark"] .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body[data-theme="dark"] .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body[data-theme="dark"] .highlight .m { color: #51b2fd } /* Literal.Number */ +body[data-theme="dark"] .highlight .s { color: #ed9d13 } /* Literal.String */ +body[data-theme="dark"] .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body[data-theme="dark"] .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body[data-theme="dark"] .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body[data-theme="dark"] .highlight .no { color: #40ffff } /* Name.Constant */ +body[data-theme="dark"] .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body[data-theme="dark"] .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body[data-theme="dark"] .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body[data-theme="dark"] .highlight .nf { color: #71adff } /* Name.Function */ +body[data-theme="dark"] .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body[data-theme="dark"] .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body[data-theme="dark"] .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body[data-theme="dark"] .highlight .py { color: #d0d0d0 } /* Name.Property */ +body[data-theme="dark"] .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body[data-theme="dark"] .highlight .nv { color: #40ffff } /* Name.Variable */ +body[data-theme="dark"] .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body[data-theme="dark"] .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body[data-theme="dark"] .highlight .w { color: #666666 } /* Text.Whitespace */ +body[data-theme="dark"] .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body[data-theme="dark"] .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body[data-theme="dark"] .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body[data-theme="dark"] .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body[data-theme="dark"] .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body[data-theme="dark"] .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body[data-theme="dark"] .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body[data-theme="dark"] .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body[data-theme="dark"] .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body[data-theme="dark"] .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body[data-theme="dark"] .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body[data-theme="dark"] .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body[data-theme="dark"] .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body[data-theme="dark"] .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body[data-theme="dark"] .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body[data-theme="dark"] .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body[data-theme="dark"] .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body[data-theme="dark"] .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body[data-theme="dark"] .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body[data-theme="dark"] .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body[data-theme="dark"] .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body[data-theme="dark"] .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body[data-theme="dark"] .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body[data-theme="dark"] .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body[data-theme="dark"] .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +@media (prefers-color-scheme: dark) { +body:not([data-theme="light"]) .highlight pre { line-height: 125%; } +body:not([data-theme="light"]) .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight .hll { background-color: #404040 } +body:not([data-theme="light"]) .highlight { background: #202020; color: #d0d0d0 } +body:not([data-theme="light"]) .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body:not([data-theme="light"]) .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body:not([data-theme="light"]) .highlight .esc { color: #d0d0d0 } /* Escape */ +body:not([data-theme="light"]) .highlight .g { color: #d0d0d0 } /* Generic */ +body:not([data-theme="light"]) .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body:not([data-theme="light"]) .highlight .l { color: #d0d0d0 } /* Literal */ +body:not([data-theme="light"]) .highlight .n { color: #d0d0d0 } /* Name */ +body:not([data-theme="light"]) .highlight .o { color: #d0d0d0 } /* Operator */ +body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ +body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ +body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ +body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ +body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ +body:not([data-theme="light"]) .highlight .go { color: #cccccc } /* Generic.Output */ +body:not([data-theme="light"]) .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body:not([data-theme="light"]) .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body:not([data-theme="light"]) .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body:not([data-theme="light"]) .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body:not([data-theme="light"]) .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body:not([data-theme="light"]) .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body:not([data-theme="light"]) .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body:not([data-theme="light"]) .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body:not([data-theme="light"]) .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body:not([data-theme="light"]) .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body:not([data-theme="light"]) .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body:not([data-theme="light"]) .highlight .m { color: #51b2fd } /* Literal.Number */ +body:not([data-theme="light"]) .highlight .s { color: #ed9d13 } /* Literal.String */ +body:not([data-theme="light"]) .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body:not([data-theme="light"]) .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body:not([data-theme="light"]) .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body:not([data-theme="light"]) .highlight .no { color: #40ffff } /* Name.Constant */ +body:not([data-theme="light"]) .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body:not([data-theme="light"]) .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body:not([data-theme="light"]) .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body:not([data-theme="light"]) .highlight .nf { color: #71adff } /* Name.Function */ +body:not([data-theme="light"]) .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body:not([data-theme="light"]) .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body:not([data-theme="light"]) .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body:not([data-theme="light"]) .highlight .py { color: #d0d0d0 } /* Name.Property */ +body:not([data-theme="light"]) .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body:not([data-theme="light"]) .highlight .nv { color: #40ffff } /* Name.Variable */ +body:not([data-theme="light"]) .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body:not([data-theme="light"]) .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body:not([data-theme="light"]) .highlight .w { color: #666666 } /* Text.Whitespace */ +body:not([data-theme="light"]) .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body:not([data-theme="light"]) .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body:not([data-theme="light"]) .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body:not([data-theme="light"]) .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body:not([data-theme="light"]) .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body:not([data-theme="light"]) .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body:not([data-theme="light"]) .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body:not([data-theme="light"]) .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body:not([data-theme="light"]) .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body:not([data-theme="light"]) .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body:not([data-theme="light"]) .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body:not([data-theme="light"]) .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body:not([data-theme="light"]) .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body:not([data-theme="light"]) .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body:not([data-theme="light"]) .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body:not([data-theme="light"]) .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body:not([data-theme="light"]) .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body:not([data-theme="light"]) .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body:not([data-theme="light"]) .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body:not([data-theme="light"]) .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body:not([data-theme="light"]) .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body:not([data-theme="light"]) .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body:not([data-theme="light"]) .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body:not([data-theme="light"]) .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body:not([data-theme="light"]) .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +} +} \ No newline at end of file diff --git a/master/_static/scripts/furo-extensions.js b/master/_static/scripts/furo-extensions.js new file mode 100644 index 0000000..e69de29 diff --git a/master/_static/scripts/furo.js b/master/_static/scripts/furo.js new file mode 100644 index 0000000..32e7c05 --- /dev/null +++ b/master/_static/scripts/furo.js @@ -0,0 +1,3 @@ +/*! For license information please see furo.js.LICENSE.txt */ +(()=>{var t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); +//# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/master/_static/scripts/furo.js.LICENSE.txt b/master/_static/scripts/furo.js.LICENSE.txt new file mode 100644 index 0000000..1632189 --- /dev/null +++ b/master/_static/scripts/furo.js.LICENSE.txt @@ -0,0 +1,7 @@ +/*! + * gumshoejs v5.1.2 (patched by @pradyunsg) + * A simple, framework-agnostic scrollspy script. + * (c) 2019 Chris Ferdinandi + * MIT License + * http://github.com/cferdinandi/gumshoe + */ diff --git a/master/_static/scripts/furo.js.map b/master/_static/scripts/furo.js.map new file mode 100644 index 0000000..4705302 --- /dev/null +++ b/master/_static/scripts/furo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/master/_static/searchtools.js b/master/_static/searchtools.js new file mode 100644 index 0000000..7918c3f --- /dev/null +++ b/master/_static/searchtools.js @@ -0,0 +1,574 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/master/_static/skeleton.css b/master/_static/skeleton.css new file mode 100644 index 0000000..467c878 --- /dev/null +++ b/master/_static/skeleton.css @@ -0,0 +1,296 @@ +/* Some sane resets. */ +html { + height: 100%; +} + +body { + margin: 0; + min-height: 100%; +} + +/* All the flexbox magic! */ +body, +.sb-announcement, +.sb-content, +.sb-main, +.sb-container, +.sb-container__inner, +.sb-article-container, +.sb-footer-content, +.sb-header, +.sb-header-secondary, +.sb-footer { + display: flex; +} + +/* These order things vertically */ +body, +.sb-main, +.sb-article-container { + flex-direction: column; +} + +/* Put elements in the center */ +.sb-header, +.sb-header-secondary, +.sb-container, +.sb-content, +.sb-footer, +.sb-footer-content { + justify-content: center; +} +/* Put elements at the ends */ +.sb-article-container { + justify-content: space-between; +} + +/* These elements grow. */ +.sb-main, +.sb-content, +.sb-container, +article { + flex-grow: 1; +} + +/* Because padding making this wider is not fun */ +article { + box-sizing: border-box; +} + +/* The announcements element should never be wider than the page. */ +.sb-announcement { + max-width: 100%; +} + +.sb-sidebar-primary, +.sb-sidebar-secondary { + flex-shrink: 0; + width: 17rem; +} + +.sb-announcement__inner { + justify-content: center; + + box-sizing: border-box; + height: 3rem; + + overflow-x: auto; + white-space: nowrap; +} + +/* Sidebars, with checkbox-based toggle */ +.sb-sidebar-primary, +.sb-sidebar-secondary { + position: fixed; + height: 100%; + top: 0; +} + +.sb-sidebar-primary { + left: -17rem; + transition: left 250ms ease-in-out; +} +.sb-sidebar-secondary { + right: -17rem; + transition: right 250ms ease-in-out; +} + +.sb-sidebar-toggle { + display: none; +} +.sb-sidebar-overlay { + position: fixed; + top: 0; + width: 0; + height: 0; + + transition: width 0ms ease 250ms, height 0ms ease 250ms, opacity 250ms ease; + + opacity: 0; + background-color: rgba(0, 0, 0, 0.54); +} + +#sb-sidebar-toggle--primary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--primary"], +#sb-sidebar-toggle--secondary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--secondary"] { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms ease, height 0ms ease, opacity 250ms ease; +} + +#sb-sidebar-toggle--primary:checked ~ .sb-container .sb-sidebar-primary { + left: 0; +} +#sb-sidebar-toggle--secondary:checked ~ .sb-container .sb-sidebar-secondary { + right: 0; +} + +/* Full-width mode */ +.drop-secondary-sidebar-for-full-width-content + .hide-when-secondary-sidebar-shown { + display: none !important; +} +.drop-secondary-sidebar-for-full-width-content .sb-sidebar-secondary { + display: none !important; +} + +/* Mobile views */ +.sb-page-width { + width: 100%; +} + +.sb-article-container, +.sb-footer-content__inner, +.drop-secondary-sidebar-for-full-width-content .sb-article, +.drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 100vw; +} + +.sb-article, +.match-content-width { + padding: 0 1rem; + box-sizing: border-box; +} + +@media (min-width: 32rem) { + .sb-article, + .match-content-width { + padding: 0 2rem; + } +} + +/* Tablet views */ +@media (min-width: 42rem) { + .sb-article-container { + width: auto; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 42rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 46rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 46rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 50rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 50rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Tablet views */ +@media (min-width: 59rem) { + .sb-sidebar-secondary { + position: static; + } + .hide-when-secondary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 63rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 67rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Desktop views */ +@media (min-width: 76rem) { + .sb-sidebar-primary { + position: static; + } + .hide-when-primary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} + +/* Full desktop views */ +@media (min-width: 80rem) { + .sb-article, + .match-content-width { + width: 46rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } +} + +@media (min-width: 84rem) { + .sb-article, + .match-content-width { + width: 50rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } +} + +@media (min-width: 88rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-page-width { + width: 88rem; + } +} diff --git a/master/_static/sphinx_highlight.js b/master/_static/sphinx_highlight.js new file mode 100644 index 0000000..8a96c69 --- /dev/null +++ b/master/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/master/_static/styles/furo-extensions.css b/master/_static/styles/furo-extensions.css new file mode 100644 index 0000000..bc447f2 --- /dev/null +++ b/master/_static/styles/furo-extensions.css @@ -0,0 +1,2 @@ +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +/*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/master/_static/styles/furo-extensions.css.map b/master/_static/styles/furo-extensions.css.map new file mode 100644 index 0000000..9ba5637 --- /dev/null +++ b/master/_static/styles/furo-extensions.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/master/_static/styles/furo.css b/master/_static/styles/furo.css new file mode 100644 index 0000000..3d29a21 --- /dev/null +++ b/master/_static/styles/furo.css @@ -0,0 +1,2 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:3.5rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/master/_static/styles/furo.css.map b/master/_static/styles/furo.css.map new file mode 100644 index 0000000..1924b33 --- /dev/null +++ b/master/_static/styles/furo.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KAEE,6BAA8B,CAD9B,gBAEF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDAMF,gCACE,wBAEF,qCAEE,uBADA,uBACA,CAEF,SACE,wBAtBA,CCpBJ,iBAOE,6BAEA,mBANA,qBAEA,sBACA,0BAFA,oBAHA,4BAOA,6BANA,mBAOA,CAEF,gBACE,aCPF,KCGE,mHAEA,wGAGA,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CChCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,ukBCYA,srCAZF,kaCVA,mLAOA,oTAWA,2UAaA,0CACA,gEACA,0CAGA,gEAUA,yCACA,+DAGA,4CACA,CACA,iEAGA,sGACA,uCACA,4DAGA,sCACA,2DAEA,4CACA,kEACA,oGACA,CAEA,0GACA,+CAGA,+MAOA,+EACA,wCAIA,4DACA,sEACA,kEACA,sEACA,gDAGA,+DACA,0CACA,gEACA,gGACA,CAGA,2DACA,qDAGA,0CACA,8CACA,oDACA,oDL7GF,iCAEA,iEAME,oCKyGA,yDAIA,sCACA,kCACA,sDAGA,0CACA,kEACA,oDAEA,sDAGA,oCACA,oEAIA,CAGA,yDAGA,qDACA,oDAGA,6DAIA,iEAGA,2DAEA,2DL9IE,4DAEA,gEAIF,gEKgGA,gFAIA,oNAOA,qDAEA,gFAIA,4DAIA,oEAMA,yEAIA,6DACA,0DAGA,uDAGA,qDAEA,wDLpII,6DAEA,yDACE,2DAMN,uCAIA,yCACE,8CAGF,sDMjDA,6DAKA,oCAIA,4CACA,kBAGF,sBAMA,2BAME,qCAGA,qCAEA,iCAEA,+BAEA,mCAEA,qCAIA,CACA,gCACA,gDAKA,kCAIA,6BAEA,0CAQA,kCAIF,8BAGE,8BACA,uCAGF,sCAKE,kCAEA,sDAGA,iCACE,CACA,2FAGA,gCACE,CACA,+DCzEJ,wCAEA,sBAEF,yDAEE,mCACA,wDAGA,2GAGA,wIACE,gDAMJ,kCAGE,6BACA,0CAGA,gEACA,8BACA,uCAKA,sCAIA,kCACA,sDACA,iCACA,sCAOA,sDAKE,gGAIE,+CAGN,sBAEE,yCAMA,0BAOA,yLAKA,aACA,MAEF,6BACE,mBAEA,wCAEF,wCAIE,kCAGA,SACA,kCAKA,mBAGA,CAJA,eACA,CAHF,gBAEE,CAWA,mBACA,mBACA,mDAIA,YACA,mBACA,CAEE,kBAMF,OAPE,kBAOF,oCACA,yCAEA,wBAEA,cADA,WACA,GACA,oBACA,CAFA,gBAEA,aAGF,+CAEE,UAJE,wBAEJ,CAFI,SAIF,CACA,2BACA,GAGA,uBACE,CAJF,yBAGA,CACE,iDACA,uCAEA,yDACE,cACA,wDAKN,yDAIE,uBAEF,kBACE,uBAEA,kDAKA,0DAEA,CAHA,oBAIA,0GAWA,aAEA,CAHA,YAGA,4HAKF,+CAGE,sBAEF,WAKE,0CAGA,CANA,qCAGA,CAJA,WAOA,SAIA,0CACE,CALF,qCAIA,CACE,wBAEA,mBAEJ,gBACE,gBAIA,+CAKF,CAIE,kDAEA,CANF,8BAIE,CAEA,YAGA,CAfF,2BACE,CAHA,UAEF,CAYE,UAGA,2CACF,iEAOE,iCACA,8BAGA,wCAIA,wBAMI,0CAKF,CATA,6DAGA,CALF,qBAEE,CASA,YACA,yBAGA,CAEE,cAKN,CAPI,sBAOJ,gCAGE,qBAEA,WACA,aACA,sCAEA,mBACA,6BAGA,uEADA,qBACA,6BAIA,yBACA,qCAEE,UAEA,YACA,sBAEF,8BAGA,CAPE,aACA,WAMF,4BACE,sBACA,WAMJ,uBACE,cAYE,mBAXA,qDAKA,qCAGA,CAEA,YACA,CAHA,2BAEA,CACA,oCAEA,4CACA,uBAIA,sBAEJ,eAFI,cAIF,iBACE,CAHJ,kBAGI,yBAEA,oCAIA,qDAMF,mEAGE,+CAKA,gCAEA,qCAGA,oCAGE,sBACA,CAJF,WAEE,CAFF,eAEE,SAEA,mBACA,qCACE,aACA,CAFF,YADA,qBACA,WAEE,sBACA,kEAEN,cAEE,CAFF,YAEE,iDAKA,uCAIA,2DAKA,kBAEA,CAHA,sBAGA,mBACA,0BAEJ,yBAII,aADA,WACA,CAMF,UAFE,kBAEF,CAJF,gBAEI,CAFJ,iBAIE,6CC9ZF,yBACE,WACA,iBAEA,aAFA,iBAEA,6BAEA,kCACA,mBAKA,gCAGA,CARA,QAEA,CAGA,UALA,qBAEA,qDAGA,CALA,OAQA,4BACE,cAGF,2BACE,gCAEJ,CAHE,UAGF,8CAGE,CAHF,UAGE,wCAGA,qBACA,CAFA,UAEA,6CAGA,yCAIA,sBAHA,UAGA,kCACE,OACA,CADA,KACA,cAQF,0CACE,CAFF,kBACA,CACE,wEACA,CARA,YACA,CAKF,mBAFF,MACE,CAIE,gBAJF,iCAJE,cAGJ,CANI,oBAEA,CAKF,SAIE,2BADA,UACA,kBAGF,sCACA,CAFF,WACE,WACA,mBACE,kDACA,0EACA,uDAKJ,aACE,mDAII,CAJJ,6CAII,4BACA,sCACE,kEACA,+CACE,aACA,WADA,+BACA,uEANN,YACE,mDAEE,mBADF,0CACE,CADF,qBACE,0DACA,YACE,4DACA,sEANN,YACE,8CACA,kBADA,UACA,2CACE,2EACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAKA,oCAEA,yDAEE,gEAKF,+CC5FA,0EAGE,CACA,qDCLJ,+DAIE,sCAIA,kEACE,yBACA,2FAMA,gBACA,yGCbF,mBAOA,2MAIA,4HAYA,0DACE,8GAYF,8HAQE,mBAEA,6HAOF,YAGA,mIAME,eACA,CAFF,YAEE,4FAMJ,8BAEE,uBAYA,sCAEE,CAJF,oBAEA,CARA,wCAEA,CAHA,8BACA,CAFA,eACA,CAGA,wCAEA,CAEA,mDAIE,kCACE,6BACA,4CAKJ,kDAIA,eACE,aAGF,8BACE,uDACA,sCACA,cAEA,+BACA,CA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","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto\n display: block\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #646776; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2962ff;\n --color-brand-content: #2a5adf;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #ffffffcc; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2b8cee;\n --color-brand-content: #368ce2;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: 1rem\n width: 1rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1rem\n width: 1rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page svg\n color: inherit\n height: 1rem\n width: 1rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: 1.25rem\n width: 1.25rem\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: var(--header-height)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 3.5rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > p,\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 0.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(0.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(0.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the

    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Ƚ$rm7^RNI5u^3CR z49l?+tFQ)Zu^t<+37fGM+pq&Wu^W4^5BqTthj0W(aU3Ub3a4=v=WqcRaT!-|4cBoK zw{Qn{aUT!x2#@g;&+q~-@fvUN4)5_1pYR1=@g4u+Cw}1%0(}S|2>wDa1V>1OLKuWa zctk)XL`GCZLkz@3Y{Wr4#79CTLJ}lJa-={iq()k#Lk46-W@JG&WJgZqLLTHreiT3< z6h=`LLkW~bX_P@Zlt)EWLKRd+b<{vD)J7fDMLpCq(ypUKqh2HR%AmCs} z6h(2AKq-_)S(HNsR77P|K{ZrIP1M5QsDpn{4-L=|jRWY?a(=*h+CGy~wp{33?P4s! zGAzeRtil?s#d>VOCTzx5Y{L%h#BS`tKJ3Rq9KsPC#c`a#DV)YxoWliN#ARH;HC)F{ z+`=8)#eF=$BRs}aJi`mT#B034JG{q7e8Lxe#drLNpZJA82$Um$AovTx5F8;93Skfy z;Sm9m5E)Ss4KWZCu@MLH5FZJV2uY9>$&mu7kQ!-`4jGUUnUMwAkR3UZ3we+i`B4Cc zP#8r~3?)z!rBMduP#zUg2~|)P)lmbrP#bkn7xhpd4bccq&=k$l0MjcJ<$t&&=>tN0D~|XLoo~^FcPCN2IDXu6EG2zF$L2w9WyZtb1)b4u>gy(7)!AX zE3gu)u?Fj~9viU-rX8+)-22XGLFaRkS394B!KXK)thaRHZb8CP))H*gcT zaR>Ks9}n>ePw*7a@dB^#8gKCqAMg>M@de-T9Y63Bzwrlwa|TfFP5=$i5RK6U&Cnbz z(F$$Q7VXgiozNLw(G5M&6TQ&~{m>r+F$hC26vHtBqc9p{F%JJ?0w!THreYdqU?yf` z4(4G#7Ge>WU@4Yk1y*4-)?yttU?VnT3$|f9c48OyU@!LL01n|Wj^Y?j;3Q7t49?*^ zF5(id;3}@;25#Xt?&2OE;2|F437+9OUg8zr;4R+c13uw1zTzAH!w>wzZv?t)+X@n} zLTp<>t(4#hflvsIun30;0d#2@F+dMQHWU@n5Cbt08*va1@sSXTkOWDQ94U|rsgV}x zkO3Ky8Cj4G*^v{ukOz5@9|cedg;5m6Py!`U8f8!pe2XiqW3$O@_u@uX&0xPi^Yp@RMu@RfF1zWKlJFpA8u^0Pr00(gxM{o?s zaT2F+24`^|7jOxeaTV8a12=IScW@8)@eq&j1W)lCFYpSl@fPp!0Uz-hU+@jz@dH2c z8-EZuR{%i}6u}SzArTs35DwuH5s?rDQ4t+65DT#p7x9n)36U5{kPOL@5~+{|X^|co zkO`TQ71@vjIguNAkPrD$5QR_#MNu3jPzt3{7UfU@6;T;gPz}{l6SeR+>fj&LLjyEK zV>CfCG)GIcLL0P2dvri2bVgTnLl5*sZ}dSw^v6I9!VnC_aE!nxjK)}u!@rn-NtleO zn1&gciP@Ngd6T*o8gVi~Tr&LpY41IEE8A ziPJcPb2yKSxP&XXitD(6Teyw8xQ7RLh{t$>XLyd6c!f83i}(0|Pxy?l_=f-R1HbSa zfpP~B7=Ixsf+GY%AvD4w93mhhA|nc-Av$6r7UCc-;v)ePAu*C78B!o6QX>u0Aw4o8 z6S5#HvLgp_Avf|O9}1u#3Zn>$p*TvS6w071%A*1*p)#tX8fu^>YU6Lz#XqQz255xF zXo_ZNftF~EHfV?T=!j0}g0AR}9_WSM=!Q9BgRvNoe=!l0Fa=XF z9WyWsvoRO*umB6O7)!7W%drxxum)?f9viR;o3Rz!umd}>8+))1`*9G5a0Ewj94BxJ zr*RhNZ~+%_8CP%(*KrfKa0hpB9}n;dkMR`G@B%OK8gK9p@9`0z@C9G-9sl7ce&G)S zltDR^M@3XZ6;wra)IcrNMjg~eJ=8}-G(r zP#h&u3T03hRNBxPXhej4QZ?>$r(qxP!a6 zj|X^!$9Rfoc!8IAjW>9Q_xOlU_=2zaj{oozzwifv@&ynCe<2uxBP2p048kHjA|MhX zBPyaH24W&M;vgR4BOwwY36df?QXmylBQ4S)12Q5rvLG9>BPVhp5Aq^E3ZM`QqbQ1@ z1WKYb%Ag#|qarGy3aX+yYM>TsqYmn#9_phZ8lefAqB&Zi6 zdZ7>cqCW;;5C&r?hG7IoVl>8J9L8e;CSo$CU>c@lCT3v{=3+h;U=bE$DVAXcR$?{Q zU>(+DBQ{|RwqiSWU>9~{FZSU84&pG5;24hMBu?QB&f+{S;1Vw5Dz4!MZsIoX;2!Sd zAs*ogp5i%P;1youE#Bb+KH@XJ;2XZ<2Y%u={vdGv0D>SWf*}M#A~eDv9Ks_aA|VQ* zB06Fq7GfhV;voSNA~BL68ImIn255-JXo6;Fj+SVJHfW3X=zvb>jIQX09_WeQ z=!1UfkAWD3AsC9`7=ck3jje&II)6$l_O{z6a$M+k&MXoN*LL_kDDMifLt zbi_m~#6eudM*<{5VkAW}q(DlfMjE6;dSpZ6&UgLsIKgh+%WNQ&f0fmBG1v`B{x$cW6yf^5i+oXCYd$cy|afI=vYq9}$ED2dW2 zgK{X3il~GtsEX>Sfm*1II;e|!sE>wdgeGW;=4gRdXpOdLhYsk7&gg<}=#HM~g+Azu z{uqEk7>uD9h7lNv(HMhq7>@~3OX_$_gn1wl*i}_f9MOcibScVl?iPczxby$y$ z*n}phJIE6Dfi}SdEOSp`yxP}|JiQBk?d$^B>c!Vc- zisyKNS9p!Lc!v-8h|l zh>f_2hXhE7#7Kf?13IBIx}qC;peK5x5Bi}$ z24WC~U?_%T1V&*r#$p`)#RN>kWK6|0%)m^{#vIJUd@RHwEWuJN#|o^%YOKXNY`{ir z#ujYDcI?D1?7?2_#{nF|VI0LVoWMz(#u=Q$d0fOLT)|ab#|_-VZQR8@JitRd#uGfl zbG*bWyun+%#|M1EXMDvs{D&X-h2IENIDo+T3qcVaArK0o5fro4AELxQqLEfJbe-Nlh07386wcr*&f@|u;WDn`8gAewZsQK_;XWSX5uV^Fp5p~x z;Wggk9X{YAKI03%;X8idCw}7(0v8P+2!bLQLLekUBMibJJR%|zq97`wBL-q2HsT^4 z5+ETGBMFirIZ`4O(jYC;BLgxaGqNHZav&#iBMi?Xolu!iB@QXwrGzI=!DMbif-tEp6HD}=!gCoh(Q>F zp%{)47=_Uoi*fiD6EF#rF%{D=12Zujb1)C{u@H-}1WU0TE3gWyu@>vF0UNOyTd)n= zu@k$n2Yay}2XF|7aTLdJ0w-}AXK)VZaS@kr1y^w$H*gELaToXS01xpPPw))S@e;4_ z25<2mAMgpE@fF|jAAaB$ej`w^00QGL1VwO!Kq!PpScF3aL_}mnK{P~1OvFMQ#6^50 zKq4eYQY1qPq(o|@K{}*IMr1-3WJPx5KrZA)UgSdo6hvVZK`|6ZNt8kvltp<|KqXX0 zRa8R_)I@Fkjk@>;_0a&0&=^h83@y+StkJp30=??-O&TR&>MZx4+Ag|gE0id zFdQQ>3S%%9bXihxkZ{ zL`Z_9NRAXph15ukbjW~=$c!w=hV00RT*!mG$d3Xjgu*C_Vkm)Z#S zfsq)EF&KyOn1G3xj47Cg>6nRGn1i{Pj|EtS#aN1ESb>#TjWt+@_1K6_*n+Ltjvd&A z-PntLIDmsVj3YRP<2Z>^ID@k|j|;ej%eabbxPhCvjXSu9`*?^)c!H;Rju&`^*LaI} z_<)c2j4$|x@A!eA_>DgZTq1xV2#R0`fshD|FbIe6h=@ptf~bg&7>I?~i2FYU_tXOh z7K8z`wr$(CZQHhO+qP|OyS3e|ZQC}s=RTZ#nICYINoEFd5g!SV2#Jvt$&dmmks4`` z4(XBcFMqF!XOgoZE3zX8av?YJA|DE%APS=hilI14q7=%YEXtz-Dxor}q8e(TCTgP& z>Y+Xwq7j;)DVn1NTA?-Cq8&P*BRZoCx}iIIq8Iw0FZyEu24OIUVi-nXBt~Nl#$h}r zViKlcDyCxwW??qwVjdP?Ar@l^mSH(oVine4E!JZLHsK#^!N1ss?bwN3*n_>;j{`V_ z!#Ij#ID!9g3a4=v=WqcRaT!-|4cBoKw{Qn{aUT!x2#@g;&+q~-@fvUN4)5_1pYR1= z@f|<#3%?Pd#9sm;FoGZ$f+HkCAq>JIJR%?xA|ooIAqHY1HsT;2;v*pvAqkQqIZ_}M zQX?(WApm8<1OCd13uz2zTg|a z<0pRM4+50@OCSVBPy|B=ghXhBK{$j*L_|UqL`8JOKrF;YT*N~HBt&8)K{6yqN~A&> zq(ypUKqh2HR%AmCs}6h(2AKq-_)S(HNsR77P|K{ZrIP1Hgi)J1(X zKqE9pQ#3;hv_xyPK|8cZM|46LbVYacKri%0U-ZKO48&jz!7vQRNQ}Z5jKz3Nz$8q@ zR7}GR%*1TW!92{zLM*}(EX8uHz$&c9TCBqcY{WmR;u5alDz4)OZs9iW;vOF0As*uip5ZxO;uYTDE#Bh;KH)RI;v0V8 zCw}7(0+#wqAOt~B1V;#jLTH4=8W%LyVLdit6EGOpqpZr~H1Vu1}KuCl}7=%N3L_{P+K~zLX48%fg#6>(LKtd!&5+p-%q(myDL0Y6o z24q5JWJNaQKu+XF9^^xQ6ht8uK~WS(36w%9L&RfEW{!#!BQ;83ar9vti?KPz()Lo&G;8vu^l_G3%juw`)~jUaTrH%49D>w zPU1Aq;2h55A}-+yuHrgw;1+JghK>GL}WxkG(<;C#6ldzMSLVcA|ysqBtr_ML~5i#I;2NN zWI`5XMRw#sF62gDMSl#yAPmM(48sVF#AuAcIE=?cOu`gQ#dOTT zEX>AS%)VOCj5gf_!rx-9XqiLd$1S#aR7&K7)NmoC-5Im z;WWO7Vh9K?&AR-;W3`#8D8KeUgHhk;XOX$6TaXpzT*de;Wq+& z{!2gvMi2x;aD+rCgh5z@M+8JdWJE#33BPQ5?q!oWv=d z!C9Qg1zf^qT*Woqz)jr79o)lxJj5eB!BafP3%tT>yu~|wz(;(>7ktBa{KPN(L4YrR z35381ieLzVkO+-12#4^9h)9TnsECdjh=tgQi+D(Ygh-4eNQUG{iBw2~v`CK($b`(u zifqV%oXCwl$cOwWh(aiWq9~3MD237}i*l%dil~e#sP>nxt-}57A1pUV&__f#33BPQ5?q!oWv=d!C9Qg1zf^qT*Woqz)jr79o)lxJj5eB z!BafP3%tT>yu~|wz(;(>7ktBa{KPN(L4eYK35381ieLzVkO+-12#4^9h)9TnsECdj zh=tgQi+D(Ygh-4eNQUG{iBw2~v`CK($b`(uifqV%oXCwl$cOwWh(aiWq9~3MD237} zi*l%dil~e#sD|pOiCU)=!M?si+&h@ zff$S-7>3~(iBTAXu^5jDn1sogifNdEnV5|^n1}gTh(%a}rC5#?ScTPCi*?w5jra$f z@h`SwJ9c0fc4II0;Q$WeFpl6Dj^jU^#A%$tIh@BuT*4Jx#dX}kE!@Uk+`|Jr#A7_c zGd#yjyuus2#e00fCw#_Ne8Ug?#BcmTz%qXcgdhlt;0S?G2#v4^hX{y>$cTbyh>nw!YG1bD2|dSg)%6M z@~D7HsEn$ph8n1e+NgtisE>wdgeGW;=4gRdXpOdLhYsk7&gg<}=#HM~g+Azu{uqEk z7>uD9h7lNv(HMhq7>|jVgejPc>6n38n2ouZhXq)O#aM!6SdNugg*8}<_1J(-_y=3? zFScPjc48OyU@!LL01n|Wj^Y?j;6I$gX`ID5T);(K#uZ${b=<@)+`(Pk#{)dVV?4z( zyueGm#v8oDdwj$ve8E?I#}E9%Zv-g&mw*V2AP9!w2#HV#gRlsX2#AEph>B>4ftZMm zIEaV%NQgv8f}}`}6i9{CNQ-pHfQ-nDEXaoJ$cbFYgS^O(0w{#SD2iezfs!bVGAM`g zsEA6af~u&F8mNWZsEc}NfQD#{CTND{Xo*&6gSKdo4(No==!$OWfu87%KIn)37>Gd_ zf}t3W5g3Kh7>jY3fQgulDVT=on2A}KgSnWG1z3c|Sc+v>ft6T|HCTuB*oaNoj4jxT zZPu3Z+pNg4(-tqozMkc(H%X|3%$`7{V)InF&INI z48t)Jqc8?zF&+~z36n7u(=Y=wF&lF*5A(4Qi?9Ssu^cO~3ahae>#zYE@eelRUu?y8 z?7%MU#$N2h0UX3(9KkUh$A379(>Q~3IFF0Cge$m;>$rhixQ)BGhX;6w$9RHgc#fBN zg*SMM_xONM_>8akh9CHe-}r-o<^K{0K@b$d5dxtQ8etI*5fBlP5e3l@9WfCLaS#{r zkpPL17)g-~DUcGWkp}6I9vP7dS&$XkkpsDq8+nlr1yB%$Q3S9uqMMQ!o|NF$1$O8*?!a3$PH2u>{Mo94oO3Yp@pUu>qU#54PZ6Y{Pc! z#4hZ?UhKyK9KvB7#W9?~e>jEHIE!<*fQz_{E4YU1xQSc1gS)to2Y7_Xc#3CuftPrV zH+YBl_=r#Vg0J|FANYme2vFfK0TCEM5DdW)5}^iB~cn>P!8o$5tUE{ zRZ$%^Pz$wD7xmBp4bd1)&6w9yzE3q1Dunz075u30XTd)<|umd}> z8+))1`*9G5a0Ewj94BxRr*H;maUK_N372sd*Kh+jaT|AV5BKp9kMIOf@fnp$odAJ9?lOdZRD;VE_hVFos|lhGQf~ zVGPD%JSJcgCSxk5VFqSmHs)X+=3^liVF{LEIaXj5R%0#JVFNbeA8f|I*oy7gfnC^* zz1W8XIEceIf@3(2|8NqgaR%pb9v5*5S8x^AaRaw-8+UOJ5AYC=@dVHC953+-Z}1lH z@d2Ok8DH@YKkyU3@dp7b{Us2BASi+(1VSM+!Xg|ZAR;0o3Zfx8Vj>peATHt~0TLlG zk|G&WASF^G4bmY!G9nYQAS<#X2XY}d@**D!pdbpP2#TRNN}?3Xpe)Lx0xF?0s-hZd zpeAag4(g#k8ln-JpedT81zMps+M*pgpd&h?3%a2@dZHKlpfCDk00v<&hGG~-U?fIk z48~zRCSnq%U@E3#24-P4=3*WeU?CP`36^0wR$>*_U@g{T12*9wY{9?ShV9siUD$)Y z*pCA^gu^(BV>p5Ta0;h!7UysQ7jYR^a1GaS6Sr^&cX1yN@Cc9b6wmMiFYy|0@DA_s z5ufk{U-2D3@C&~Ypz>b=A~1p=7=j}tLLm&oB0M4>5+Wliq9F!iA~xb69^xY*5+Mna zA~{kZ6;dND(jfyfA~Uie8?qxOav=}$B0mbC5DKFxilGEbqBP2&9Ll32DxnIhqB?4z z7HXp|>Y)J|qA{AF8JeRdTA>ZvqCGmG6FQ?Sx}gVpqBr`WANpe;24M(>VmL-%6h>n# z#$f^`Vlt*+8m40=W?>HIVm=mN5f)=9mSF`}Vl~!a9oAzbHeoZiU@Nv^2X>MqI>00whFYBtbGH zM@pnZ8l**fWI!flMpk4)4&+2`vbu zOu!^e##Bth49vuA%)va&$3iT^5-i1XtiUR)##*ey25iJX*o=R%72B}`yRaL3u@47u z5QlLD$8a3~;UrGu49?*^F5(id;3}@;25#Xt?&2OE;2|F437+9OUg8zr;4R+c13uw1 zzTz8x;3t0L4+2*GOCSV6Py|N^ghFV9ML0x2L_|guL_>7ML@dNXT*OBLBtl{&MKYv7 zN~A^_q(gdSL?&cGR%AyG(26hm>8L@AU(S(HZwR6=D`MK#nwP1Hsm z)I)tVL?bjoQ#3~lv_fmNMLTprM|4IPbVGOaL@)F~U-ZWS48mXx#W0M(NQ}l9jKg?L z#3W3?R7}SV%))HU#XKy)LM+A-EW>iF#44=8TCB$gY{Ea-f`73M+p!b7um^jw9|v#< zhjH{Tf0vt&$tUn1PT@4p;v6pEA}-?!uHiav;uh}UF7D$29^o;b;u&7xC0^qV-r+qy z;uF5$E573ge&II)RQpRn1V#`9LvVydD1<>+ghvEKLS#fmG{itm#6}#%LwqDeA|ydl zBu5IQLTaQ%I%GgbWJVTbLw4juF62R8I?~h>LhgfP_elBuIwj zNQqQPgS1GG49JAc$ck*pft<*VJjjRqD2PHRf}$vn5-5ezD2sBafQqP$DyW9)sEJyr zgSx1X255xFXo_ZNftF~EHfV?T=!j0}g0AR}9_WSM=!Q9BgRvNo z37CY*n2Kqbfti?%Ihcp}ScpYff~8oF6?sVoWyCI!8x4AMO?xaT*Y!81I^OT5Axyv2Kbz$bjh zSA4?{{KRkkLBJY+34|aBir@%=Pza5%2!{xWh{%Y7Xo!xOh=n+ai}*-@L`aOJNQM+h ziPT7gbV!ek$b>A&itNaNT*!^Q$cF+bh{7m>VknN1D1|a8i}I*|N~nygsD>J-iQ1@x zdZ>?vXoMzcisop6R%ng3Xon8yh|cJOZs?Al=!HJ$i~bmZK^Tmo7={rTiP0E?aTt$@ zn1m^qis_hvS(uHvn1=;eh{affWmt}tScNrMi}l!mP51{}@GrJuJ9c6h_Fyme;{Xof zFplCFPT)VB!fBkvIb6U+T*eh#!*$%mE!@Ff+{Xhv!eczeGrYh{yv7^6!+U(hCw#$I ze8&&`!fynq`ImqQj35Yx;0TFO2!pT)j|hl_$cTz)h=G`hjW~#h_(+IENP?tDjuc3R z)JThT$bgK6nRGn1i{Pj|EtS#aN1ESb>#TjWt+@_1K6_*o-aMif!0|o!E^%*oXZ%h(kDn zqd1NeIEhm@gR?k~3%G>KxQc7Ift$FEJGh7Yc!)=Mf~RXLyd6c!f83i}(0|Pxy?l_=X?& ziQo8xfVKY;2tg1O!4U$X5E@|-4iOL$kr4&a5FIfQ3vmz^@sR+DkQhmk3@MNjsgVZh zkRBP430aU8*^vXekQ;fC4+T&Vg;4~>P#h&u3T03hC&g4js@DozVr|&>cO|3w_WR{V@Q8Fc?EI3?ncSqcH~KFdh>z2~#i? z(=h|HFdK6*4-2pmi?IaDupBF~3Tv#+fw@DH}&Uu?s6?8GkY!Cvgg0UW|%9K|u5 zz<)S}(>RNBxPXhej4QZ?>$r(qxP!a6j|X^!$9Rfoc!8IAjW>9Q_xOlU_=2zajvx4i z-w06WF98u4K@beV5fY&g24N8%5fBNH5f#x812GXBaS#vjkr0WH1WAz`DUb@OkrwHY z0U41QS&$9ckrTO)2YHbn1yBfuQ53~c0wqxzWl#>~Q4y6;1yxZUHBbw+Q5W^l01eR? zP0$R@(GsoD25r$E9ncA#(G}g$13l3jeb5j6F%W|=1Vb?#BQOf1F&5)60TVG9Q!owF zF%z>e2XiqW3$O@_u@uX&0xPi^Yp@RMu@RfF8C$Rw+pq&Wu^W4^5BqTthj0W(aU3Ub z5~pwmXK@}Ea0!=j71wYBH*p(xa1ZzK5RdQ#Pw^Zt@CvW-7Vq!@AMqJq@D1Pb6Tk2W z0qXuG5CS78f*}M#A~eDv9Ks_aA|VQ*B06Fq7GfhV;voSNA~BL68ImI-{AVf*>e@BLqSrG{PbrA|N6nBMPD+I$|Og;vg>KBLNa2F_Iz~QXnN#BMs6aJu)H_ zvLGw6BL{LJH}WDM3ZNhgqX>$jI7*@v%AhRDqXH_SGOD5)YM>@+qYmn!J{qDCnxH9~ zqXk-_HQJ&bI-nyuqYJvBJ9?rQ`k*iRV*mzWFot3nMqngHV+_V&JSJiireG?jV+Lkn zHs)d;7GNP3V+odFIaXp7)?h8xV*@tfA8f(D*oN)ciCx%(z1WWfIE2GEieor||8NSY zaTe!r0T*!@S8xs2aTB+22X}EF5AX<&@f6SS0x$6zZ}1N9@e!Z!1z+(UKky5`5upBG z0wOSiAQ*xpBtjt!!Xi8(AQB=YDxx6LwhGIBIU=&7UEXH91CSo$CU>c@lCT3v{ z=3+h;U=bE$DVAXcR$?{QU>(+DBQ{|(wqPr^VFz|%H}+s3_TwN9;Ruf6I8NXsPT>sB z;yft+dSpN*WJXqG zLk{FbZsb8e zJTBrAuHY)J;|6ZwHtymc9^fG!;|ZSOIbPxw-rz0X;{!h7Grr;*e&8p5;|~Hh{7WDN zK~Mxo2!ujtghe<+Ktx1F6huRG#6&E_L0rT~0wh9WBtMLJ|aMr1}7 zWJ7l3L@wk(UgSps6hdJXMKP2>Nt8wzltXz`L?u)~Ra8d})Ix34MLje?Lo`McG(&T= zL@TsGTeL?9bV6rzMK|<7PxM9~^h19P#2^g8Pz=WijKXM)#W+mBL`=pMOv7}{#4OCg zT+GJ;EW%#|fOoDV)Js zoW})R!ev~=HQc~W+{PW;!+ku&BRs)VJjV;X!fU+6JAA-Le8v}i!*~3|FZ@A(#(xQf zzzB+92!W6YjW7s@@Q8>=h=Qnyju?oA*ocdGNPvV$j3h{g5jXcPQ{3wV*D1xFWjuI$^(kP2^sDO&7j4G&x>ZplYsDrwwj|OOj#%PLWXn~e! zjW%e9_UMRC=z^~3jvnZR-sp>d7=VEoj3F3?;TVZg7=y7Gj|rHB$(V|1n1Pv?jX9Wy z`B;cWSc0Wkjulvi)mV#l*no}r2b=LPwqiSWU>9~{FZSU84&pG5;24hMKb*vAoWVJq z$3Q40fJ8`)q)3JoNQu-)gLFubjL3v6$cpU9 zfn3OqyvT2TD2wu_fJ&&0s;GtK)Xo}`&fmUdZ zwrGbA=!nkff^O)Jp6G=>=!^asfI%3Hp%{h{7>UssgK-#-iI{{bn2PC`fmxW1xtNCq zSct_~f@N5al~{!}Sc~=8fKB)ZTktQoVLNtW7xrK;_TvB!;V_Qk7*60noWg0G#W`HS zMO?-eT*GzT#4X&xUEIe5Ji=o<#WTFXOT5M#yu*8Z#3y{gSA540{K9VpX!@6c2#g>I zhTsT^PzZyt2#*Megvf}BXo!KBh>bXihxkZ{L`Z_9NRAXph15ukbjW~=$c!w=hV00R zT*!mG$d3Xjgu*C_Vkm)uY=#4(;hyECdK^TIe7>*Gbh0z#`ahQOKn2afyhUu7zS(t;ln2!Zm zgvD5jWmtigSdBGUhxOQqP1uYr*otk~ft}cmJ=ll+IEX_yf}=Q&6F7-eID@k|j|;ej z%eabbxPhCvjXSu9`*?^)c!H;Rju&`^*LaI}_<)c2j4$|x@A!#d_=5n={t^g*5fs4? z0wEC^VGs`C5fPCP1yK&4bTXU(G<vF0UPlTHsfDx#dhq#F6_o$?85;Z#95v{7kqKFl71@ykxsV%q zkq-q>5QR|$#ZVk2Q3_>H7UfX^l~5T~Q4KXv6SYwX^-v!T(Fje@6wT2BtTvoITTF%Ju{5R0({ z%di|Pu?lOj7VEJAoA3{|;9qRRcI?D1?7?2_#{nF|VI0LVoWOrLh0{2TbGU$uxQr{f zhU>VATeyR}xQ_>TgvWS_XLx~^c#SuBhxho1Pxykb_>Ld=h2IF!;x7Ra7(oyW!4VRn z5C&lp9uW`;kr5Tq5Cbt08*va1@sSXTkOWDQ94U|rsgV}xkO3Ky8Cj4G*^v{ukOz5@ z9|cedg;5m6Py!`U8f8!p#-4=uo+vh72B`_JFy#kun+rj5QlICM{yh{a1y6*24`^|7jOxeaTV8a z12=IScW@8)@eq&j1W)lCFYpSl@fPp!0Uz-hU+@jz@e{xB2LW3CB@hB5D1spbLLxN6 zARNLYA|fFQq9QtCAQoaHF5)2p5+X5@AQ_S)B~l>`(jq-FAQLhpE3zR6aw0eKARqFh zAPS)filR75pcG1@EXtt*Dxxx~pc<;9CTgJ$>Y_dxpb;9QDVm`LTB0@DpdH$yBRZiA zx}rOJpci_hFZy8s24XOVU>JsDBt~Hj#$r4sU=k){DyCruW@0wxU>@dUAr@f?mSQ