From 11382e15d614b3a89a8a7105d1d5dde073022a49 Mon Sep 17 00:00:00 2001 From: Lucas Franceschino Date: Tue, 3 Dec 2024 12:21:50 +0100 Subject: [PATCH] This month in hax: 2024-11 --- .../posts/this-month-in-hax/2024-11/index.md | 76 ++++++++++++++++++ .../this-month-in-hax/2024-11/sourcemaps.jpg | Bin 0 -> 42564 bytes 2 files changed, 76 insertions(+) create mode 100644 content/posts/this-month-in-hax/2024-11/index.md create mode 100644 content/posts/this-month-in-hax/2024-11/sourcemaps.jpg diff --git a/content/posts/this-month-in-hax/2024-11/index.md b/content/posts/this-month-in-hax/2024-11/index.md new file mode 100644 index 0000000..93ba05e --- /dev/null +++ b/content/posts/this-month-in-hax/2024-11/index.md @@ -0,0 +1,76 @@ +--- +author: "Lucas Franceschino" +title: "This month in hax: November 2024" +date: "2024-12-03" +tags: ["this-month-in-hax"] +ShowToc: false +ShowBreadCrumbs: false +--- + +Despite some team members attending an offsite work week event, we +merged 24 PRs this month. Here's an overview of the work of the month. + +The frontend remained stable this month, with only a few pull requests +focused on small improvements and bug fixes. Our CI now tests the +extraction of [Rust by +Example](https://doc.rust-lang.org/rust-by-example/). + +[cmester0](https://github.com/cmester0) is working on an annotated core +library, which is extractable via hax to multiple backends. The Coq +backend now uses this generated core library, and ships with an +example. + +I want to add source maps to hax for a long time. A source map is a +file that maps transformed code to its original source code. This +mapping is particularly useful in debugging, allowing developers to +see the original source code when errors occur or when stepping +through code in a debugger. + +Support for source maps was added previously, but was not really +usable. Source maps are now being automatically for the backends using +the generic printer (currently only Coq does so). Here is a preview: + +![](sourcemaps.jpg) + +Lastly, we fixed a several issues and enhanced the engine. For +instance, control is now rewritten correctly within closures. + +Get involved with Hax! Submit issues, suggest improvements, or upvote +the ones you care about on GitHub. Every contribution counts! ☀️ + +# Merged Pull Requests +* #1149: [Revert "fix(engine): item ordering"](https://github.com/hacspec/hax/pull/1149) +* #1147: [Engine: F*: fix `\0`](https://github.com/hacspec/hax/pull/1147) +* #1146: [Improve `setup.sh`](https://github.com/hacspec/hax/pull/1146) +* #1140: [fix(engine): item ordering](https://github.com/hacspec/hax/pull/1140) +* #1123: [Engine: source maps: fix bugs, add features, enable for Coq](https://github.com/hacspec/hax/pull/1123) +* #1122: [Various tweaks](https://github.com/hacspec/hax/pull/1122) +* #1121: [fix typos in the book](https://github.com/hacspec/hax/pull/1121) +* #1118: [doc(book/include-flags): improve](https://github.com/hacspec/hax/pull/1118) +* #1117: [Upstream fstar core changes from cryspen-sandwich.](https://github.com/hacspec/hax/pull/1117) +* #1116: [feat(frontend/cli): improve options](https://github.com/hacspec/hax/pull/1116) +* #1115: [Cryspen green.](https://github.com/hacspec/hax/pull/1115) +* #1114: [feat(engine) Extract vals for trait impls in interface only mode.](https://github.com/hacspec/hax/pull/1114) +* #1111: [chore(engine): ocamlformat: update: 0.24.1 -> 0.26.2](https://github.com/hacspec/hax/pull/1111) +* #1102: [fix(engine) Fix deprecated attribute for compatibility with ocaml 5.2.](https://github.com/hacspec/hax/pull/1102) +* #1101: [fix(engine) Drop return/break/continue inside closures.](https://github.com/hacspec/hax/pull/1101) +* #1100: [Fix spans in error reporting with unicode characters.](https://github.com/hacspec/hax/pull/1100) +* #1094: [Fix ml-kem ci job.](https://github.com/hacspec/hax/pull/1094) +* #1092: [feat(ci): test rust by examples (extract to F*)](https://github.com/hacspec/hax/pull/1092) +* #1091: [Add example for Coq](https://github.com/hacspec/hax/pull/1091) +* #1090: [feat(engine/f*): add dummy support for floats](https://github.com/hacspec/hax/pull/1090) +* #1080: [feat(engine): keep track of parent items in spans](https://github.com/hacspec/hax/pull/1080) +* #1064: [Move to annotated core lib](https://github.com/hacspec/hax/pull/1064) +* #1004: [Restore neg_equiv_lemma](https://github.com/hacspec/hax/pull/1004) +* #983: [feat(hax-lib): intro. `hax` feature](https://github.com/hacspec/hax/pull/983) + +### Contributors +* [@cmester0](https://github.com/cmester0) +* [@W95Psp](https://github.com/W95Psp) +* [@jschneider-bensch](https://github.com/jschneider-bensch) +* [@spitters](https://github.com/spitters) +* [@franziskuskiefer](https://github.com/franziskuskiefer) +* [@Nadrieril](https://github.com/Nadrieril) +* [@karthikbhargavan](https://github.com/karthikbhargavan) +* [@maximebuyse](https://github.com/maximebuyse) +* [@paulmure](https://github.com/paulmure) diff --git a/content/posts/this-month-in-hax/2024-11/sourcemaps.jpg b/content/posts/this-month-in-hax/2024-11/sourcemaps.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1a7458e805026513d23970a6e75ec19ab02a9eb GIT binary patch literal 42564 zcmb@s1y~%*)-K!x4I13tf(Lg(aCf%^26uNt0)gNJ2=4Cg5Zv9}g1b8e_=jZgea?5k zd+vX~=eetER=u^XrmL%~)^yL)?9)%+m6VvI7ytn#dI)*|czOiTh3$>>9gPf0T+AFz zNyH^(6`s~!lt~H;zgJL_7n76`1zQ8ai!@7+l>?L@09aW&+AE0*k!WaYk-+W%hyWyj z0001vKFGoLoq~c482<;lng+m;0APaQIo5wL`cGmcLn8+e06>s{4Fo~9_Kslu0gO3Z z9BrR*92jGOO!W=HxCo5t?ZICVjAx(a27mCuGdB5+Uw|QiVXvYj3_dpuFeWkiH*D~4 z7-VX11-4-W+fW!>&c!09JthZ-3zV8h~xU z^sljXFlJ@>ErLK40s!dcr>ApD0Dz4GfQN5SPxt9hPY)RY0J#VNt=9kYw@Cv4u1m1| z+rMNKsQ`fT1psO~|0Oes1%TSG;LAN{t8cIWyB|m}e_?D40B5-XfTRfk=%WAtul;A- zz`AEWkU0YYD&Vn_83KU#1OT8i0ms()59bXBcKB!9{*N|)jo;G(APhjhc=24o1O+b8 zaL~|DP|)zOurP3l@Q8>A@CXP<$Y`&SkWrBl5ME)uLPf{G#Kc5I!N$SDz(K>n#CQ$@ z0SWejf_@1N{SpHS0SV)OOi%3qDje|b#W*AcD)0go0umMCsT05lPy82<&-c+k1O@#9 z5(WYmti*f18=vVP9RTqHd;%~}^8g|w*zpzQEAT|Vk4^L+c1@dZH~=M0S1?wxO)87l zM`o4QSSA!-NpQ?-?`Cq3S>o-TCV$aOreTdgb5+-Nqnho^pSp;qv})pT=(kbhPKlCQ zFzm~is}QQ4EDMpgGS94)>nIfjTKz>RQC~v8`*G4b|1$gYuGR-Js%Vk3x^Z`H+!q@q zR0%^lABbPA_RBN6hjriv>k*-W5|@jzifTNgr;nw%xrZ#$2A2xetz?p^3;Z zbw}`#z18+vJfkv2ZMByk9k3P_hhw?dY73gQ7e{2pD)r;hYCGpBV?Cx|t(&g(BEk1# zR;GHQKbnfR4Tb9WZ^iKxM&Es!7haMqaL5ai6=eYsm_{T)nf4kkhu=Q|e0+ShdX?Cv z{7w#Y}`C2cH82vQ%tUH4ypJl?+mxLDr- zyTxfWNBfLF9$hXxx$(_wIqQ!{V$YrLT88fM!83h=hNG{+#4!F}R}$R&HZoT$V8)U1 z3F1`@A{;vi5G;LJ9!H{bgNM|Wn^^{#N}93|R;$?@dNHxU=UqBL=6@HTuiE4FHF&NL zfY{w7Gycdud%n%YHAkKHPhgCk#qIaVEVXrYoyA9t%yb^XA)3znEgt_E00ySh1$Rz2 zxdL8dc9w8o%HaG(zCny&8?V*H*?R0=tcd3f;KZ^XyhLX{%0znyO-&ydcP#{OtkI`! z*;TdOZ)^*mb5cejlHCUDXwTgwA91kK<(yGD?fmY;{rSd*SY0L7%G+PrTD;i~(TPNn z*kDnN-yKdI$xKOV%iEHkP#m&Q@p@2p2!>3Gudhvy+Ac54j~t%uTiW+@5m4f6LC)CM zoF1ICaBCj=s*(86rL6+ka5T0~2U9gcJi5QRBu-I@H#yv7D z2mmyaA`>0k%hp&w&fA<8V=^w6DIQ%reRNQf@RyT7c5}v_9ytw3Lw@WnGTm+yGQ$Vk z72Vuc=FJPgw(b@_J{Vu^0Yo_3*xH*ZEh!_0OV+{)nrJhcNb#YjGD>r!O56sL=1Vok zKR{{Qh4t-)9~t*Q%7c3auaQ4~${>H=2ZQh5HE@#NGkRp-_Q=&A+um7A?G8IfyoB*x zve0uNnZs3qWHmFR3R$~PVZ1%7>t>14EQ@HeoGL$_1<(37waFu;+gw+3wLaE5{V`P4 z^#)l~hD<_xG&<+pwF3Rl%Vk@ZM)f~vt~ZXZH+3@$!x z^04*fTRJ6~R8OXP6{3X~@WqE&!_iN&Dvu#N?v7t~xSEx#UL(@of+P7W${X;N_SsK7 zA(AE@n1m>(P3u-H@$X&P-A<|CXO&mx{r0C908&#>0kyxwjlMIq_!rSiJ}7le>P20h zfR80NWIZ=)0!IoeNW`Ci03b?%Y!&UgJ?^{Q z&EtvHm|>rItFhh^f9Ga2psl7OJJi@+`mr?1B{SvcUp+oo*_7xbaPv#@axEl10%41A z7H^6Z*DM;aW6!yqj94c(a@1NGtUKAc zo}fu7^~i`aHWAZ4-*g)IB5Q5UT(T4?ynK9f+X_HHouvF7?w|U34nRipXn%B=X_>kPE{fGiH#!Ai_V%pXPs)Dy=MO$ z{LPRDuaiFgab*cH1z5r%HUSvLPypy>P6HM~jTmTNCjbH-BTGY|DVXgY*9%1*q59Uf z%l2XGEt{-lZtZ~=26M6(6WK;1G_Kcf7Y;75{BE5UjxFLn1qJIudc(=`h37v3*j(U-VFT(e7!4f14G zMk}D~a5-br++lD)o|Azz^nG+nvztB1UB*JlMp4y{Osg=sZ=7(%pUOmgW*fYQC11LM z7jr(fgyHPjMDs$tXybjd0X$7C9UHP-yig{;;q!75S#1km&xd-XtqIMmA8*2X@VCb? zriXtNFgG%6t7w=Do!)`mUDZJ9{LDs0H}1Np`vVu8lUc8f^TKP;m6!zH<^J(60nTq;KtqA^0x&^=69s4h1|0(x4HFBSl$jNlgpB;nD;7Zo z3Q9H(aQ*-X&MF|FU+^lxF^^P-u}3MFSzry9S{<(MiCXQ8e*t}~LoQSB)AmP(O7Nlj zLbwlKio8sIMkqsZ^400(G0`vkO`;ovTm&Vyj@9xQ?R@Jr;q7Ju1FY7%W5&`=7}u?c zv7;80>Y!#i29fzwVg~|{TltOXO2G?$UnxfzQbjave*%v{PuIHur5vM97LHm)%0T?m z5yiJX(w=M-QEos~Gzf<|%AuCVg&C4Ev;~>$;2XvH`fEK;x%OOAX!wp4djl#G+t;Et;%6EoZL9g2uo;u38si;%aCBVD(L-m8c3C&CbPQ% zmwB-%ksNhu2rE3@u1GcEM>6&O5(V=^n4PsqXvdz=7n)iMW&W1}H0zaIX2#`Z{B6C( zM+2+LY(_9<7+7$c5hx0V`dY2BL#l5o)y37qOtID^WX+tM(W|4sxbgf94HG0w;zgd^ zU)w$($@Y+t=r64x3stzc)(NX6vM03fpe(7i^Lq(;Pb%y4;|rpo!9?|BdL8^%#J;w% zbC>ZA`*trq<%CDj`EX;O199X61qW|wvETPE}mq1 z9!g}FIn3tP6V5^2(}QTWgiWE4Z6HBLwNu}~NZw_i#hg*ZTyP+sh`QD3R!(Fo9*mC3 zK|U049{$I#JN&oPgd1;uF;CFL(XHEn^-<0U>k?c?%3(b^2N5Ur!T>o`fp_pdX)9$ZuILjb`}Uq(W)4Pp>(fc0L|&1EXVz#Z|%5w2rw%P_k3vV$Ho&@8M_))9@>W z!LPiAN3C^j-?z!GxU{gG%*+}o63<_+$f57wcWJnHHHGebL|{_UrU@OlX8*97ePvWAIWCh9sQm2^`LW>9;;sEJ zp;X5A0m_>Lr|_Qj+IMex2R>)9O`%4_N_SeyOhM z4Jpx-$=6gWx0kHFk`Xw!VE%3KjBtZugp>-!HEUplqHoYs>GoM0?3!oi!be(PI?J*v zgiB9UM?b*k-7dZyye&W~AIsE9^DuCwd>^}pVSf1pkScmaW2*KRhKcI9(`E$}%qgl? zULNK$zOqhF@<2k&=s-5h2{3eLp*`)GP+7mTPMeivl68HUA1(Ma*+Hm^T$XAQWk9d% z-wah-;fci7I~c1j3U_BdRz!GbH`-xE)_ra2-5F`9?&Rw+#-4ynJOyjI^fRLHYizd}g5b}Bbh++RRZNeTu zWbB}sG;K)TDfC?bBLLB-M{yVR%ytktXa<82-VYi(;3jpOFvt0^JA7LiK8UVkFTA+Q zzP!*pg5v%kmHnMqDyE@j*PIb_I(O=@5yBK+as(SbXV-(%x%J8(lduuQPHqd-K8{$Z zki?U-1WWJLMZ(}*Cm>>kVG=P|VM4R&wIJ95pK)ORTw(=KdmdM** zg$Kj5DQ9xdDK#YDXeHvly=Q1c^wFRebo^ywg%cA6EqEUM!hBuI%%eV6M7;y492q4= zMlH!lM0X|1@VK$OHl{4ms+Vp`osr%I*<@aBw2)rUbd=Zbm(y@wP(ff&UfeUAw9iyr zfxEb=H~c|bWN7p@B9Jspy$_RFX%3Mx3elfsEn18{yC1a@%~Od!CalV@vd;`dX@Ei@ ziZ23%#y)x@t=2N5IEyx;4;O?cBerNQy z6%^Jzz7RM`eZOl6HL)N-oueTu4I_-fDe)pzWi_y}h=l`P7H3^!%70cm zp9uA34r-aa46kRhj?|JAS>AN@=hi5tti^~laSEy*9I($4Qu4=)f?&>sxz-iVs$zk zI=Lf!wV^$9_(UMH#^o_)?|6UF$#QBsq=ZorEKYscE*!wez44V^g2~IHCL^PnfCKMB zc6R#_y8e!LGPKjC`*{7d7b%5u!Q}fFleP<=RiNMJn4L7>eg05XkXa2m!FJ1-n&tDl zpz7dIik6xOuZc_MqQmU|vlpv;SYGZ~r0Q;OVAOcooUCRpY)ZhaxuMbe=o%9NpH83c zfC&`6bL7>C6&;Dsl%($sL8r52C5L7reV1QAYW1HZVvub%QL3;i_+Il~lOnUdM~av5 zUSl@X{>H}2a;e)ch72fOyu~b~)t~PREwk7kOUI+P@ zbI#(f8od@sb>s3>oR?pB+lsSbOBW-pU?q;OT-J>l%lx6Qil^!^utbG~BGjez5{vaR@ zq3RK>UKp)RP!M;iB3_WGQxK}x)WTo9S8Sqc!BZ%q=~~q}!df+Y><84)Osgtk8&~zn z)D%6QAISPmV~J&8Xjb5v!JC_Vk14oNhxOrgcV9$3K!7u<(hGOPqJDgY_v5wqJO*PGw4zapiYup`Z})jUFO!?yhgbOZ&9~kA zSNM%=QcCM|CP?~2LnQ1VKKG{!#drAG(XECSAfi!+hu<29Qhni(5cE_T6O_TTe3v7I zIgqIuKXKq1*g8YxauL%=Ci9O0Ym@DbK#Aoi!@t>atBT>B^BWyKIMwZ+kjas^&) z1zN`2f@+glm8QPADXW)qS5=DY?TOv^SY*AyhreVFO;g3OGm&U3r65Vmi1nYBG*l@z zJ*z6$+iRFCet`!oa@Vif8)N+OAmL+!8KD$grDd)nW?9GC_nI3}<~ovNl~L>BSGF@Lc@m(kDRgd3n4=tpCDVKYPz1nzX1qmbZ|n z!^Fv5mzzOy{RU^*+QA_)q|z{$u*$w~XxQ4JGC6XA1##QtEker|Y=<+C0Kd=}+32Jv zV3iS~&yO-NzlF%AC-HRam)rk8*vI5tAG$gJ$hQ*Cx!xHarjo$kmB99oWa#G9$iVo& z1hOty{$u^yNL1Wg=y}DPT5ehzSXyjaa^l>rsQVUQJc2qtBaSu56I=h9U1Bg+ZVoYm z8Hx0JO{qpt(f%H~>=RH7z5g-|=QdslN|9hBRQ7y{tTc+|iXi6Nu}(CkkZ_JsC|QO| z$dFq4!G5a9$qOxGe60z!|H8a}XVGCS?m83oSd4vGj9n*SVXIkd^dJCRzIY)0lduH6 zm4K%I7wCGJK%|oMPZbGmQ(LpLCNI$#7LIjhhCC=(q~yj}qskd}HxSRPh{nx}bG04> zgmbdq)CQ+Wd6gY};LjoY`3dHB>kUFznHTP+ybkV0A|_JNF%IUQ20CA;@aCdy3rENB zoH4g}c#;294 z%)*1*vVH_3nhdWW&vX7)4CY{&q-i=CwsQH2uzFAEw$e}T5??fS^!?wz#EZfd7+j=Yo4QQ=@@w_&%L$)&ax-#c>1>0z9@Xp4=qR|J zNv@rExir=w?~~;&`qnl{I@%i)eavce#HloCy-|x%o}atfM7DIsr4B$0KGsZJOn8Pv zDnG{sS{Gek3XNfmIcYEtyrihgxz9R9$s&T~brI^1Id{=Ll#eu5A20{R6sBoqYH@3$D> z2lJ?Ckm#h$iWu)+k-cHjhay)J6jCs-V-^08{yC!U_b+bnbN;sw(dMcN(FTR=wEdOJ zU>Y=c3ui7RvvlI?a>SIXD4GsXHO`HjEPPfEn)8%wYL-&Ronsp3WaO)XE!9*58(7|U z4%p$jl9yehu5=i)UL$&hCi~4Ad8&UkG*iUH3ULq7jusVP{D?W4U$58x>I)N6PhE|n z%g3lhR$Pxig~{k(&=|yIIcRhkTgeHl4!f%H;ctaJI12e{j-DeLOu7uXAA1HYYE#kfJKx3{wi@wL-d(A3Vlu@~%70iz$KP-O@mczZKfuG21#+oTsnoHg!YKdj_r#U=;gTy9Y9IfL#?l{~Zah5s zn~7GSbN9am9^dh?Ya+vyES^X26OX7t*O09GezMHD~d&Mh9!aXUSlq1*7GR z(|)@X8_JCatk$v$O6LlLs;o+&NIBm~Ewt|?8CVQTqeEKCby*4dG_Q}0N!hNbAG6+` zfodkTA0fKR-vv?TRV!qqn=^>!Rb!=#Vr5J!fpj zlc8}nG6r-t;p)E0@vtywSs8+83$94A33)NhWm7B)G_DS~II_ zOF>gL?g87f8ax3v$V7Ol4%xRnHV2L^;Jq{~Ua6Llsc-yOGSe0I1a(zd?8fd#IWY4s zpYR5O?cPWIVYx><@=;m0#1pTNneKSxBOX|^d%;HIo_7q{^`34_;gqKv&3v&vkvC`W ziKN&2{*NN@f43t0t~dDKJjZkg{%ee#{}Q&?3lS;y7M$Yn)GI`evvX+SG{_$QvkbQ71m zYb+qs^as?MBT@8arT7NPMKdhgNtm;V@>SD60ki4lvb2;+FZsI&Y5PP~qx8&4X=6&n zu>zRrqX=GeDJz*#i?GGo+o?Lf@!AQCiHpdz%(BYI(ecBSDi%-ADJoLqnd@8a=o_@7)<}3O`d^stz1fvQ*t4DP-P3Pv z&UvZuUeUisr2J$)8~PH*!jLJiL!0ca;#bUfUSfE2gkoq1PB>1*$QcOA1)nEZkA(|9 zPYJr-$U8dWc;e1lO@CGXT8*58AQF~?c1@o5#VcnSZ^SvyT_NKG%CdV^fcp|eMNe?1u)ZY!%ZDvwZk`Cu! zE&IQiP~lqbag=6I?$?B!O$bUPM5iHw7de{{QKE<(&5|cI|EX46zQLE1gjE7J9&na1 zDaG?$l<{?N?DMO0rso~{`Hep$B=leJ&!2Z_bVyP~=6Cww9U6m00g6?STzRJPbgxb2a6-8J$?Lts;&uJWSlsH)dM zD&N?p_VBRbN>##jN_{mE;hwFkfU~Y4c}~y2Z_-2)*>{h_8C!qCJsMjIArtN5anedr5mRU` z+^c6&-afCS!@};UiLPAPIJhPg6N*+v1)WxHi&IVXpx4P8ebOvmGh#eP%`hT5SV^XT zFw$7f$Y3&xrQBRHUNic+P#A$lzYEwVUNcgrcd*D#K0l0#D{c)G2(Ds8de8|ZcJg^B zyeR4fB6Wx*8BwxgVaKIEKSpP3VTn}y%aWWx#*Vr3UxL3P{BJ7C07dECF2>R^YrhG7 z&L(~`5p4<8l5IP+!@ieF5_?}qW97jQx7)F8M71oPc5KvW$C8pMzG@wD6rS#?O69f8 z&*5@g4!y1Nap8ENl;nO34Ne7qX9OQ#?yAQ9_zy?nV%Ns=(HWvA^L%`ik@zF%`7H+H z?VsSSFsG@Dyh$UkF=%R0tz>f`Qde6v`)`720hag$R^)3Z4llI5`O)@&anbhL{z-_q zvNVGKBslOi8Q}B?)c`|P8r6Uz|FrksOJE}Z>dq_U@YjWO>B)NKthy8CBn?@JI&wx{ zP(|Yftqv_XJJ=iUaZmOeO?@93khT%UBGOEGN{~5OPpM4CLjGJZqW;wX#%WnHX<5?E zsq~tmBvoT7X4))%R-b6yFnD4$BfN($_4#jtX>k+9!5?6<&v$z!*KDD)V`z0~=>#Sw z{L&%DqI5Lhu-=^Bs;a8A=?z6QGt&WSDXj0aH5nID*)Vlv!2(zV!T&1-g&g#PclnyG zTvCy$TKyh_=d5Z>1RUd;%Bsq*=p(|!xUnQEL_ie%(yI|l*;3K8D*6Aag42mxNxjkK zVvg7fxc=k?4BPT0Ft!gbWf5qvOFL zXx{#Li5QL8kx^-zB074i5m9N`)zY^ZK|%6X13kA5}7km$$#8)@zS4ov^pCXSG*N%hhrtr)FG0wYN75yx%cA zExV-AZNOaib!4ZQc{k!thVGnY)?%cw#EUHeP08q=dEJ)56MZ1AbQtlH6R%gv#vRYW zQ8M8PsOf81dJLtRqEJ&Gjma*x>zfWlORl__h-y%jZe&sW&f=Is@KF5yYSg!Z=FVIy zGNc8(#E{GO75DC`j)o-F=5#0Rmlt1qB5`O9Xj;%46;;PnOg}@0XUH-Q&R_q)XQ=@3 z#8ls?g7f^G^z?ZY#aFOvs2j5yDiov~$t< znyYm@Y3Eb`@*6J7TyT)(LM@A#ay|AMph2;wVlkWLT7? z?bYsxG4iVGn@yyHPY8{ZlXl3WrYiIZqtw13I@^0^Im0opw4SPmL9|Jhrf*4owoy5T zv!G$JPe43^cIgR_-#hbGi_R2o!$QMCga5Mg0uq1%Z@Z+-&}1y{6!jz0F<9+Bld}uie=lzvgL#EX z!J%Z(KE6uwMnTypvqDffGUEh`O~k=B>XcGN)iLX@7u7ItUnIaJN3YQm!_Ufm4oUi8 zSNLt>mDPmK54TM3MRU`f??o?gHpNs8T=x37_7-2i`S#8Al_|?1p1P6h4W|+A2hR0{ zj*{XBS{GIsoIDK*rP=ktWiu*&rPI1z%ZdKs`>(Hx9;Fp@7IpLu5k?edDJHL9Pe@ku z8lpC**(ITd1YOjakqCZXF)vE9K89pl!_}#9jP|7=S{E}tqA(RPmdzQu_-VHiPCJ1( ztS#4UYt(-ga*A0QWJX~nYL8k5xAw9d7JjzJc5s`=T=s#x}x|noyE$?I^IVT0}=hqbv$yL>zGJ&LV(?-I-*0e5I$(IXOWiXl&xJU z-7)io0(ofB)oEOAh$l0d1SeJPqcyA8@%Tr80E>IQ17|&D4;yQ6=;X9hq+lSV4A!nk zF<(R}cCIFdoNJ^eM#Ff%dl46(WU^v&RxG>hha62Qw_GshU7v)aZ=Eg#R;a@C0^2Dsq6T z26sGY*lwXAgG?z$U7={Kk@1Sat|RPVJRWiT?UKlucNSjI{y0GgO}m4(vIlm!s>s#> zS-(`iy}Ik(O6z2(^?dfkccj(?|1}OPv^2ZsES_+6UG~9Ew)z`31-DEJ8}5|{vLY5F zbJ4b({73JjAnnc+Q_6AFFYb0^zDWeW^RCX*Y$F#g_XTw2{n)k`D|lo*UwYeisXWbM zq#L9CW<Ca_aXbgc05-TI~^9@1-H3Bt+V4%!YV z6^`M1*>9ux)#51hO7nYD1cm|kQM_Lp{aA{w(X@XBNbS$vzo|dX`J5RMBdGG#ua$h6 z7T1ev%gg7xAC;}hhb!xmFmsE5t!On+fdr@JTzSaJh`N=~n%Rc5=K*QNXNk(W#!BbA zfIHE_2vO2_k_i7#+q^d}lb~@%DCR|XDM1`FltOi5*Xv1jX}+3slCik*5uI&Vl1Wav z4iVHck%yc$PuTcE$$0<%6=kSH`!^_`ZHT*IJEXDt6`9&N*g<*MYL~F{uN}np+C#jB zPlCn~tn%t;h-MTZSkaE(_SZ|iv$lp_$_v!iz|(-iKR?V*;boH0q+kC!{kj85PkV2C zF02yKJpKw^B+%(i3U#-;ua9}VZGF(|O~j=yyFHVp!aTcHSzmGY7(3lm@-Z71dGlqN zqj8pc+%Wq_6V-#H-O?rrqkPt>?bru!@zl0oaEuW9cDbW#SN}Mr2PLf|tN7OCFSTcV zpIg+fm&H3`49U8743)H@HI3xOLTvi_u24F#_yLdC14JxAXt=u?R$`;e#!@mgFDZ9) zZNOKqW+!jNZDDi0bx@`4&yrs_KYnl86Z9C|S=u{E5N*ZhBw&9h~@ln3MFJ2(5Bo`uUWbrj*}cO|%pY{d6^(4o-@8{E8XxDAx(&Z0_KKSw0MT@-Qay!J55Qp~AvN?6s~T*LW+4-);Y(bYC54Ta0ToMnx_^{QXb)C5Ad#5;}hP z*Xj^p1!k+t7!CAVtDSEnIeY70B6SGGmvFk72Qzld7N1I9B$x$A%mlXOQ_&QOH3YnC zj-HSvNA%&@-I&XBSsoNnS9P?=)WzGG5o-`|8apoub@bd48d-V_e$N%qe>|@|y|4TyzWLIL^bBUz< z>j_xGSh#jpSZS;%GD)7sac1eMa`;?G^LfL3M^9&Afy(c~xjvv)?EzMyZKTD|p1*7F z9SdZRMSLc~v9G21h?jU7Em`YCrax~1IB!|Xo}_;qGAItYekD?HJLV_=FT03jg%m_1 zN{KF4%y&e$6nbeH6A0R|m-VHBX=nBQ@p)B!C%j~tceHqCPsP&BuPP*YVd(uw>Dk?_ zZKJVaQQbC&;Y~uVl=sKV8xc!WVFjDqq*fAS5v(CL_@O#?e3aj3aq%bx%0J)j5hleX z;xZVTsZGJ>9P*P#MfFr;vA9^4874ck@+LY!59#*Jt5R zfOT_VVQq3Uadnc*NwLdNWsIDR=(cA*OtGNLacSFqa2%=8J0Mc>6#-RPHHSH2JKnpz9?LSEajwO~cYRY-Ve=tYR_hJ(1LzPo z6b%;~EP1)?goi&0P45LOkdTrBg^re)J4(`&^y_}4=)=De3XGZ-lUFz_)Ghas4ww7- zE(B9~n80;vvuS#8$a>XD1Wpb59e#LC31tvDMM1sBz4_keX3$1E4>LLGh(1ip{2pPJ zERnQ3Yj+FV{<>Vmr%&>46kt|QLe*!`tI#AWF{VjL8|Yg17I|ARCNM@ai%b(m+mvJa zaPRi{yeqVF!H)(TUMK5#6y|Q~zNOv0RhRE?_^5K)_f;Inh&-Uk;;bY!+VR)lS|wo= z7WSWXzioL8AsPa8Mu!F|Tm-#?8a}E{JlpCt^mdL=ja4pu66oi#)<>8`q`t{B|Aw_s zYWF+73O1G441C4sso|cb-vVWE(iwb2O!832Uo9DDz2h)OB3r3bUZCNcvPF5Q`7B-$ zx+Gq6{U5eNL^4w}z7%^5BYjpnUR4a+bqNN=#U@_6R0*23aAjq;F}sg6hx?84=fILaEXCr=s{f@5`WazeY>+p6%Fc8@iK3MT#9v zb_xHYJ4E)dg`Lwy*NZGblnV-ve1}7QTmpGdS>T;|pV27m+~k~a=zhpPe>rakvHtM+ zMwpX!;m0mY=I&S(g%L0MoVJBFwrfLtg5gLdRWs8Qz$3p_8vFzdN8RKb`}gQrB@q^7 zHrD)CP2t)TaGv!@n}AV1`0X2kmC;f}#EckIpZwTV)qHcRiFByv`$xyruJ_naKr;2I zde;-ME%{6J)cbba8`F}y(vC4S2i^KcZz7C{xk@lwL*Y4Y(;^M?8 zZJoQS2-bC%oBWN)9x0N^LE|XfCm^T=meGx8teBtD*jN)MY7}Q!@-R0_tcjdQ#fB|X zJUgO0n?IwD!B*>M)h(p`Rvm*B`FJ<==zZ9F$U}9Th0j!{dEFZU|K9!9w^p`Vv_NYK zf(};9jC?!JV0`z139*$V-zU>|QJ)nBz9F2#7NoeyWY}1de>yBd5J|Gzd(1Dec^*`~ zKg0UaaL9h|MBMU_X0tT6APh@vg-D>#)_u3=n6T)WGS9`uU*%zOk|P}$iP2Rzy$zXW z5xEwo8YMk1N+PzLt7ToyPnjG$UVEto!`H# zUr9Y#|El`Fd-^Ko8amTLKV7u}|HADg|B4gK^sKdDp75QUQ}WWGI_}LAaQ11=+pTh% z`4Nd|?-%KhQGP1?x@Y8&d2ju;t02>7VbCpR>2h9&_5MOk0X|Li6qY0_PAC?kOfsjKtBa5)Kc|Y--n^tlQdKRTEQ$ea3Xh z#9or&eGEg~!xMh=YGr3e8wX!?`nA>GT3$^J+MU@@W^YZO0PF0oLdnL$B z5M;>*O0En!q?Tk|42z<_kN+&IPK)cU!sJp>%E(yHqHItJoAB!0_&hc)znA!mB*Bm9 zej4(Sf`H0Yo=rECn))C&MbYMIdY(7(^7iybPLclZ~Moy&DyoLgOZv!XY!%XJ1vTzP^9dwzes|FIZdqsh=xe z7yGulg$M`Js&;WquuJfeEI6HO1^Pm9kbFm-r8%|fh-7#+fn$iVn-Q5B(_8)U&Hlm_zjzIOZJ07O&$mTY8`)k%3cTDG{f%TxBmf>dV&F~EH+HsQ_ zBM|&+f9>NR-R=KN-CzB=J;$tnY30Up*FQfh^RmuY>XWj|lq`O-L_`XvH!jnYRp4Dc=)x>Gt}OD-dPGuIw@yu1Yy=nESe5OD-G!twRIdd zYqPa&87WW@o$8cwiGn2|CKiTjo|hkpO4vd4E|F&QqQk0+rK{L(y``V)nCz-TMJfs| z>j(vr8!FyQyVcZ^YBZE0F*Mp96&^CO2Y1zm##swGdTr&3wM6&fqL~VIH2U)uOuDNS zmn^YuP`91C*Lt~?D5k1SYiKzk_QTk2ys%S$#XpmkDq=P*6a-&(rJ5jbYl6+utpxu$ z+dl>8b|pA+v$ld`@Tf zLy)W66Hp`xzbrDnnjjja8iJbQlvL@KEp9(^b;=qs=OJHg(-<6+fiQ{t(Rq*VeV-{HL66JW+(BW-qtLv7j$a%nCG)P8O8XL!8f zx|t^P0bxm?|1{;g-YOxnpg{$FU^n7!tZYfXR4K!ZdC>jJaD-FM)^R;SW zu$y6m=~d%ve+k0Iy;)(5T9`FfGRxMV%<~?*)ZuAMRgJp2y#4|4kLg0P*f4xQYudU~ ztq-QhUn;3Q7;@*!tL<^J${4Z|__aca$)j8mCQtovc{xY66_OO}{g$$YFvY3UyWN5y zzb_>o{1@HMvyV>zMv?Y1)x>@7R?Fwd^yfq&^K@Q^EHp{$(&iAeJ$k$ObC9Fs@@|i> zk_3}gb%tdJ{x`Q~{wW)j9Kk|3Qb*lqjh4G=PAj4*`sP(D&Zd^#HUKa zn41M+zJS%taXM4BwmC`_ak4eiLdaUpW32Uiwc=|{;A)*KUtvjWH~K1!pTx#$>7l*l z_^Rc8|9TSbqhhtV-zCjLZdn*RVuz74Nt6>EA}ugR?X9{LVGvbt}} z%71vADmbnaypf(9W!2nZSIMlNIj!e`h^=&_e5ifAC@VTyeuDft$LilK90b8Nd6?i; zrhJW-w!~u+id?sTPi;0nsZO-qu*uayWo?8U&j*8H176`@R! z5}S0zgPDLuPJTwZcuV%}l2qR%9%`GL9U6Kp z5so1q$1r7>soPhrh-o|DnFe2MhVZMm!w2ipE$?w`P~Sf=#T+xhswjK1xZ-UK>-SsC zhZs1lH?;8oBHo1a`1wMAjZS8w&-@7}l^P}|R4KrA$D!7L(-9jfiiH;KI*(QbebC5$e6Q)z_!oLs5L zNr=)Y$PC6=lfeCgIF`%(z_=h)^<|Fv$Vhbp0OobI`_o) zJ2uihibCl)?=kdW41WbeT@E)R)WmyubMbwWTYC%4QGBo{=E5GV&)z)AIeB*sW{{g9 ztI&-q5IZn2sZp9eWtgt@rohGqw8 zTXwp>XqPL3SeR;0uXoKcC7SIjc^!W;|9K@0v;Wkzeg%spY<~7lV&Yk<>7r zqAXMtX+t!G2%~DX&C*I^dqkR;i1r6(nL6L4e4ciMW6^X!eMB=WVHEpnrOs-Smwa<=d#zfN?`&16le>4cD(rkz zDGbS9^@epp7?OA2cG4n&ov5D+mp{70+sJlhPP-e$2r-1He;bLqB4;jde%A`34t+{V zdr4<8duu>3Oe4baIvo;rxHQY7FH5u`4#PHX*Rhtt-dkYJLV8HUZ9P=wT>3@bwv*F@ zZek^Yw#hq7R69R|#u0*}e9JSdbWRtPDiXqSlu^R()dMbcE`#NX@i2ZJNVF2Xl`}fU zPME{p0`gq1OmU(TaQ60BlB`Qq=JfDg53R;kWZ_-D^?VdZn(F284>+RI#PJ|!gbg6V z7%wgIm)MZEE`I{LKAIY!8@eCtcDtM$Wh1s4ClWyPTtTWl0dKFxFFtJSasxVWmkyyD zAZ`O!kA3f-$4|g=s?*1?@Z8)bh2a(74+F@KoSV=~Dg3H;d;%${PDp$~C%*=EYH#v0 z3nTO_ADb?;e_$ve^je{~zZbnK_SEE@`0xlHiJu}Gx%LtxvwLO?5U+n%IyQE3abI}h z>cuax_drA}FW=B2{&iyFsB~-_|ECdAbiAJYDW1JOl?39ey_U{Ff5~Y%o%JOIp(AN4+Hs4;I}WwEZeUCP5t2 z9ni}{+l28{S;?r;8_TT{jwuh^UBa}2PHo9CMh584oQOw+lhz`XMhr!}-~6a+nBDn!hK_U`}V>>c3iYMRIK8{4*RyRmKC zHXGYc8aHWd+iq;zR+BUh`@4Of=Y7BYGdtOxot>F;J|`!4_wMY>kQgqHBJmTs(<8c# zHfcJ)^x^M^OWeH&|1}Hf_}pc|E!(Cb^MU)-6hk?0QiH8%Sm2cg%90MLt1IH)Y}2mK zQ~QyMIyNoe6oy}qH+UWBZ81u$%fs?DZYWE`J6E#h+ba&zLvlOTN~HtlA=TGLp7&P| z;$H$49m*`eSg?;(mgU@DSC+7#nq&x7Aj!w)1XL88+T+S}L2i(ZDy}KZ(mP+_Qkat} zWR4ngdFJZr%T;kIQWme&dYQK2W->Cgs1#AUD^uq8dF~g)>-xp7Gc9#s=Z3|*i zefTmSFQdy=zf)CwdXp~$T`5LiST2M zSLkp;@IvZ7nre9`o0?Ze$E0 zfV<4T*>)|~c7#o-pnb_2JX>pTu9xpF{Sv1XO-5y7Axl3h;j@Wc+QAsk|+3{M37n!U@U`E_VV%-)Hj-`)WrYiTBidS!VaMRTC2aITsp! zP-Vf%U&IB7`C*0hK_?D+8`e8~=F6?DQ|}eg=?+5o+54j9w&iuKT0b}bi-Hqnn6wqE zezh(LLxs;#Z@O>us`w&FT6; z?<+XlCcVq%eTE*738#aP*h!h%CrHk;U<+ajs{V*Tm?e~tqYvz zLJm$&?g!(_xfcPp!kv;@i)Qn5DdoG;0DeRai$whiw^qz*@~p#^-t2IK9C?4l^4zr& z;PHp|tI3O}6&mDw+xQaz`?aT)0delf%NIp3tB&7*1Kt3i&I*zuPbSe?IrDD7=1<-UAqL)UxiAchitBfwTw=7(ca1KATHQJE(-Fx7ukT8 zAbvWkFjOzt8FgRuDKJZtMNr@K^`DlX&n(w~N2*7v5LO8ueHZ#mWQEhEHk8P4@NQ`i zwelH$uF5$BQUz4U>YC0GHu5d5aG8KZ$ zFa^1YMfu*CJlP*$m zus=0ptgIej$zIraT^|08tQ9)QwJoLVYvpu}{XF%DtC(%YJKF!sT5;nMSojE@T zp{HnqJ9?7QTCm_9K+1I)HE(@+Rgc{US7hD_j2{Y--PB}yUN=8_M^pNd>)j$eAIv?_ zRbx3(mwtMALtmaUk=c3GW?|0$XQLk7rwBh1&}$yPmnZe~kqxz0#Jf|^g@P|U)7R%+ z?I@>t2vVv%AfxZF5B7~0YiAoaCzh=o_D&mFVi4Wk0ntBCq}}5<_PlabzmtY=A6vC8 zR$p;%Nyw(g;1+?T%by@huoNjZI|Dpa22GvFM|iUvlGU5xtSKK7$EL~3&PF$6?b_SY z2u0Z%U+SxyUKJ1i{-}(PGL6@|>n6uRua^Z!70X3;`;Jj(wa0wBmUjG0WfXN3-?m@L z2$ptTCMg(!91tF-Dan80PCE>aQqfX}!VNOuYv7(P=dbuQU`9{cTrS zi!>a9?|Yov@;Ffjle$BH7~NJ*-x zH4Sc*K#04u4r*HLI3(DC7sjw{^z!`v^1A0+Dn%YL_E^69yH) zsmr@Jwd(fKX)e)Pi!w%HqDhqODLf|GzZ~VE|{2?9( zm7K&Ur|YG!4aIHo<|tEfMRu8d;avFFwXzRo%xaQ_Mm{_<1isb_^UfCc_Ui$_S|DP;FK)b1p7-mZF0SznVp^xi93JHg=S>b;k2m%T&aW zx&eLzj;nuadZlxFK&VA6`PG|9P~6h@pCa+KYt*fn>)LAzAh@s^;6q( z_hkLr_N0Ii{gN{7_5*Va1o}<1dM~RCRaoDSXgCR$ze^=l?|_L zYGu0IP0~>^bTI9cc9^|lN?OM8r*HaVxY3e(+oh63A;P(Xj0^v2uM*X$( zv7Me8hSe68V(H-aPHHSc;{nSC0kjW*nLmv(7!!YQR8 zaIUhh|6-HBTwg~B=_0taZ&782L}^s2k6!C1fO}!5Vu~4O;BwRHYHR9gu8q^*Ff=d(MlQ_w-MQ6TVxIe zafYem)OB}8xYJdhYv6zra;)3Nd1M{v(*n;z(jo)n^Zju_0RLBbKM(*42@CKH3NYqjU&23$ZJQesKnCCGKWi4xatbqR#m4vL8{|HK8MS@eftSrRcvu|=VjP3 zsJa=g6wJqKjcYw)l_!=1`wNq>W{$!QqPQZWOdGU|aXW>Sb>L((Py<9j!h-M^RP3j2 z29oQid*bniHsQSZR~ZqY2eVjV3LGj&2+AoNLpEMmDhW0Fy3Qu?FK)#ukuUv0Bdhz= zbcSgub9v&7^kE`5um@FC(IYq}@f)yN%9)vMxt(%=MLe;b0;iyOm&~5(gQ|hO$U4gwLlZ z`t`o6U*J6kD!&-oR@snnN>r$fLek^;jAZ3&(eeyK%|(auGA!89SGAlnH7#2Qh{Zo^ z`h;yN-@-zZ=XjDeU|$8~z&)*PYlymSg>@sX!C_f}nA_^+$*IWX4Uz_xSC9trGdY zk2`v;C6^bBA-BU;YzWyX?~X`+15jVrl*}g|AT1s6Jvi^-t29-|pqwGoLou~AYNy?y zkf73=tThBa%fvK;)^XuZqEic(t3*1tBp(SjL^+(feYGE{U`tvx8#w|M_StR(Kjm5M zI`+WK(cZ%L2Y8j4RN@Y5BnXt%gGeGG?h9BSBeg&Yya<;?oJ(e5SHUlvEDkGz9AGpI z6#oWHiD`#YYUWwE^7botyJUSebECt8CJ~uvLujOUXMtYvW1;Pt1fbsPs0JS`CH^Xq zNpsshxMJj=MF>ki?ezFOgb)E3LT0zxrb6b#x!3r`l$^WC4@X~UJ;?VI96VBwApjDV zYa~+X)LdBTLu*f3gG%FvL0FG~g~K54g6Phol?o{|<|x_#xJbt&41V}IN#zEx z7u>Y1_z)}i`tQvAc{L@}3d(o2F!~JItmVuu6+tI>-6~QZ1~zZ$St*ZItZ>$6efpzI zLsyQ??mU;W=J?_G;n-DKwMizny)f-uqlH?k19RIKZ|VOOD??G8h#EqwAj^Lj6QLLe ztAYdxFHA4Yzcrxfe35`?(i4v|RB{`an?y|o7_@<{`^tWz_=-9cWjWNiuez_gt9?)X zEu>}VTcr^<X^391k6&3i`)FwTa56}%u;f=ph=sX9JtK-tzqLD?_M0f+o-;pjH2{&aj2|on zilBtDLwNDR5-R5yQ^I+2Vz5XYE|HW#Jtl@pwCHh0?;jX{jPPyHh58L}JoWF1zVNH* zO$2}yB_C6M2WMuv3-}Iz1bx@&+DK~^R3cPoK=z{#naT-NUHK)1!HF)z{$4g*96~C( zELNezcI9|;4w8x%Jfiy=AgF}&GX|_MGvN+DdKa`kWNTdm%}_j4txto#deFqQ1N@8inIhk|Ytc(HT6cqk~KWpx(ig5MvBZIIw+H z|Df5p705MZf#>WWW#lp7m8pdKg#Zouz43+Dr?lc9DA-{crJZD zGxSLQXu0o`?9+HBAPvph2z37(;g?~gH-%qa`F=J+t8Z07I~+&Hm+`V@-kdl=qd{2z zfvIglfbaejZ;u0_U$pm#^~#|AgHzi)qjEXSL~B-O6BzJ9BjvQdi(|j6^(J&_9U4vx z%N+MzoJznwyV|<~0cW$oCe#I!FXFBAHR6ryH4owAnAnk>57-`!l&Kr53Pfys{YBp6 z!>Omk;w|LIdmrH`G@bvOdIU1>1+vsd8fNHJYswcdXil^ij#O|>DBpzh8QB=!E#$p# zl0tCk9chu4Qrl1aS6)$G)tlU-bbP~~`uxj2tApV?1dXz%lyeaeE&5W+fu)o~EF!8ZfG6yhoGbCqfqms@ccKm{&iWu{Qrv3Losv&xo&cc~>vB zY)o+i`?}{{%g;gm4iHors&eU>#x}|a{6kv|Q)cm`5Twqr+pSDDGZg}Nsjp;q`0cjd zqnJO3+Pa2C(Yk*MbM5>T`AU&T_EPV+f5vUxFsgP;&rp4l4tft$1R)dA7+l=0onew? z=CXVI9N2e}TB}4GXLnAk1Y)-CQb{t$?o+4O;XUAX4N;e zAA+mER#Oog-YRtUZIJ2(LPc#2#V`UtLsKC7l9`+@2}kWp|5K!VsL_zsjXb!^|4owK zm3nT~8tt0K|LVOfMOPv>unhLuGKf-$@{oE9EAwB1??e_Jy-5+M&zY^Z+-3zm1lV65 zOZ%us|8GhkWv&*#hV&Q3G;sT?DZ41llv~89J^+|-?J*J3>sKV6+xy(ZPR&n*u6rl{ zQBm`riiW6_0ZxAd7V9Tm`N$TvegjMldMmv58oo2a);-Bx;I5m1SobzXHF3<-u+~m) zRWJrezXrtonehDPEoY=97_YC&dM4AtBJ9r*4<~bKOPkb5aKYpnqD_U2gu^Er)8NXg zpT0}*SmV!$U%E4xB17~v3d=$5u*{-bc15$8_Ik%_d!*{>7B`~R3kO<$^V`~YF>v|c|L$Wm&4U(9wvI)uB>8NCPLtaa0&!=6Txk*M%8H97&`xGqGKA!~ZSJr)x*fmQ)x zA@+BW<_NP#y$aAd^o9Ocl9d!Qdk|UR;g?88Ml0xailkocIExDZ#wT)DzKO_ju&6O8 z*vjn*9_Nml+c=FnX0-IX3pkGBX4@KgiY4LZF*^drSLGWzBsDOX{(# zVM~TA*GOC-NaUjuRP^`LcoVU#TRdL79aq7GS11tW#)Y$!cp9sGGO(@qbxJIcpr@ss zrCO^T&P5VQ*QBy#Yjb`M)%Wm%nZKY*oyv@ng2^WE9Jh%lP3^5W1*=i||Ka)CScS@C>P;)wuRgtrDH6gj1|7{Th-y>NYq5T^K6M5FqRm-X}y5(R>;nN24y-ZB4N)*Q+S8Wo1eRdpuPPnYp8R^U;l{& zo`h_duY_FxLYv9~C7JpxEEsxWo*td1a$jZDmg0`aO1WV#6|9gB;AWf;vN}+QQ4!k- zSX>x;p^%nSRXd#DAj*JKMDGNN&%WUx>~UHrJ~RS@-rOprOA+;@KIB1Q^Xb*ZnZfzOy{aPQVyhCxB6pyLj+v_{Q6byT_U z!^e4Wc71)^wbiM>a(v;u8b^}Ko~A~uLa+QCWZBu!I_n4_ofNLVRGr>G#_Xk2Cj!5s zv30p}g^izv6SHnd^a>JTM@}0aBSRG9A!KQJoE0<-J_bVy8aklxHvk*q{%DXh^f>S* zJMt(|tp@U}*XmB2M0kz)M{>_tZGDVOpQY;ir>_MsAF%ZjhWgf^gN=Bk3L2(^4D6-z zYSc{i?S0L7{gaHspC4v(zc%4%BqX&&+vv^NI}{S_T|96TsM|bn1R-s@Lqe3x&E~kj z;QLij*;nk!)(PM&Ma^CdAYCYe$Q%e!iJrgVTreQM6?in|^ zP8JpdNtiTg6S+Wz!2Z>RkOIRDGa!_gY*z0s>HuwoR8rEc_nGxK;BewMAcg5e4kXDr zkiF($D4)|~0!-5G@3E;{ZjkHoA1Yufb4vw&!0#|)f#Qy4e<>i|#lAdZy6?sS#yV^e zRFmDHV)|bB#q5Nr@}uX1=Ft;r(kj%|He2;GdDV85L34#$?S@1jj;4oc*XYkoSq%i& zS_cX!vxv5(Ffs*`$J~*MSsBczs&nm3$6{dy&O!OUx(~k8gN}Wub`H&+$k%a2j24SJ zn^ze=EJv*YzpsiB7YSW$sW>`lSms}xpWUu-b|?ukGo7H9{B}#cyLj8a@raM%nmo6c zX}ZzTi~ApMSrK_|^ChGURX3YbrNf8USQ6HG5{y$9{v3N$wuGTIaQ&*J zsUE|?Zb&<*UDS}GBB`e%^pv9-Yp5hG&K02n&J?cjv~V+iCFy)mDR-UFR`|xTL+wF+ zpI~CVbI}l?Vl5Sln9EDB_X7&J*sW+7Fmz>EBRE4_>!FNe5)=ot2bGU%8C`rWfN;)@ zdy-3#t9Yd}650y>IriYP!ucuM#j+8M`hytgSqdTRawI_7(jY~TQq9jjj=y+qG0jny z;%JKXV>8*ugha|s3`bM|3=BIT8F4+sh#wdj1a0i=%CqaQ{7Tef&H2)GSkZb^pyPAi zmBWF%lcF1HIeau0X!C4dH8r@&_F*jM?Kk=GWsAqyP2t;V2!6x=9x=}2Wa ziBP=XqNk9BF=dh1qr>YN=D}OHX_{->bJVZ!L(ydRvuNyvS+S#e?x)k*N>hp(OnckZ zH8WStI_!qv=pov-QxRqrj=?tk+TtQJqtfNPj9JRyR|HeBYrWPDi}dguObr7Hkn02S z9lC6$3szLx`v!Buo8kwfmmdAB~NML;9WX zz;L4$q)}jb-#YzDhAfqc1p_`3PW^j>%OBj~38c0;gQ!!F3VCb24a7=NgVHc`j`_sBGtS>fY^BLwlK7Hq7s>0 zt-_Zm+%eeCzR_V@_S<+(_%=Q6QEyLx{vn*zhA~7na(}tD zFAn2v5xm@2U{u^$;KchwBQ}CQjImI@vi!ITWvx%+%drMV6zZZ`2s#-6e9yNcBnp@Z0u1 z*MXC;8Mr(wenv07|E;@gl#Ofh@1enHe2{3sL_Uj{G$-Z1spGyu=CLXNNfA7nshr}! zl(v}%UcL*8K0avf)*Q#AFw7|9I5sQXbDph}xKnF1kh?&HN4PF(B36dhb&vP0BW59- z!yH{TMe@y|t&212_B> z@ksRZeFg)Z^1HbDm(TkMYMS{^GU&=1$P{{ACE#0>f6IrMT>a@I}@m#^JV?0`m4wP6q5{=lRs~kTE%?j^mSWfqD?oQ+KTz6lZ ztlwk%c@9tFRN%ghhG(gSM>j3vg>yrrl7`OS)J!0tB~W?(ScS{m*)vxuiUD(2>8$7{ zUbGopd@_7TL=q3s@4}Z+WX7{KugaQ)&TgKzD#_L^#9d>*br6SBTGu1UN&0CM(J92$ z{V@Yvo+VC`$;=u(^-LN$jDLej6xMiYI!1yzD7MSBWr~I3@jjd(kX+BmSoDoP5*(Es&rnjJ)2ix8>;On#i zpf&drY}{k4(nb)Cn}f821W+vu1-8g$CuR~O$TQi~fr9cg1eN+wLxH zP6T~L?%x2_X~D(5xCO-YJ~08eLG@7tx1hLltvuR;Qr7c+P9kxQeC$oA>;V`dKqHe5 zwEF4+7<>A`Z9wFK@~@FFuHOK$r2!r4nDrkw<;n-DqBJYES1dHRwY-%);~Qu57QPrQ z3vdomuJ4NocXbtIeD zZd=Nc3UP(2$*L5mXvxpu`i%dQ@P>Yj%FTD#1E`(%efh1Wh6W{i86+qu~`MPv9A z^sNdd+eG`7Kcj%mjoQRfQFLJnO0n4KyGr#Ojou=ZD81Q+e78%Y zQdhCrWO&~0G?3M^H)UqF^cXRs`NUV5>h*o}+D6EVi7r2m+)RbAX0%4S3uXF!C$?OX zl=9HP>Qm_EU4^+bc5R`)>2>J!G0bp#T*{A@f-0Y(YsX8w5GeOoB zH+f#5IF*QcM7)sd&71F@cu4_V8ghYV%8{-qPM z`XDo&yai+d-=oE)f2-$i)Ba6(tLMJ$E6_UjSEj4Ka)lu~VIbe~3_d&Q1C8F8ARPfH z{nXIX27iWL zXMnOmBoT%@5kQvTM+^WV4wOf5blJG6)71-UZ>VWf05N56d;>ps$E0QM*!^s6(GcQS#->@16 z0+Ov^s!{_{kKKv?F#O>GNRz)o69)@{CrcAFHXkMn!F|}*IU2FMApFe$tih3i*|LO* zlR?Pg7wwDy;K)*1Y_>;@Apd3nBDlN0$!liGe({9*e`yXN+j$WM|LYR}u%SXhD-ARU z=xD6m0B?^N^`9H~XY>!J5M)dObEEXQu%0`4s)F zKXHtlMw*;engrMl1W`T@Vp+c?^cUy>=Ia9^AZ@!teI03U3!sDJzrd1nQ;{aOJ^AVD z{7VRPu4s%r*=7)i%`P=@zaRPl0TxC4H$XF^oEV@{B%b64c?zXwBnUL%(xCtixFDe5 zkig7weNE{a()#&4xKW7Fgyc40`p3G}TP+@YzS6@^v*ilTSMfRBV$X~{^INnl)Zb>tyFsRE`GN9Hppg~Nu5x5g2wgiVGSH=o4~Oqxcv=Hb6a%6MTj z5dxlT0U8O=9w9>z8vG#Y33q|D93MsiK_p~?{1A>PL+G$Z3%jYzMox>#wQM#AO?dy~ zr>eq)s_n<@?Z(f` z^)DQ=rSVUz@MolKyOC!44+9JBiQ0J>D_iB;0A{)Zy&0$rNkFIuR@?(Zjse`npPyfs zs^E$zw2bB!koR=VT$$QIUE}?MzXAM4rEjb(uaPGAOy8&0I;NJ@G%+3O{4gCF-9y$g zJNjgRNah6#>r$j7b=EzX@vJ}p@xL`JWt?Yv2Czp&=>D=}EW^pn8Lu#rX;=Pw4aQ#6 z9Lugs4`4JRmc^IUPEtj~r$sSnWOIbh=QPUDr-C}?KBUFAWyZn|J$k0T4a7w;lR^yb z<)E95GvP=BQ#HW^Qx0f${6M}q0!8Zxrl0UKTy5h<$ zxo_I`$ev#CUU%gC-$;vPV&p~fYYV)Vaswl=XSr-8Zqu0yH0oZmwycz1*>Qg;lj%}W+klKE2V3TZ)%~PEB*wCr1;)& zP2c-oOJ;ZyyYeLk5uzMUWj1qudoql`PPDDP%n*+LAzx@3esO`V3D(y^tW|lvvuPSw zSEgB1Fp|4Vqqc~^qps8SBJPOC)zhlK3o`64*`!lZneeErw|j6$$DL;2bX-lxTvLJA zEvW&`bUkV}06A{sr9-}0Wx@kEEj=`I~>aEAl zFu!q;(f?5T(oHv;0am13SY+7XTwK8+I8R7Dhb%7`ykXz6Vc%3iZ~R>{Qn-l%pZFK_ z9ZZA2PLNv`*#)SbpAmI@u7z!{_CT-Jog_yW&KE}CZ*jF%>U7KG%g)q(dJu{ag|ITQ zIO{mVKBM5c{SlT`_3-1gS@mUIS();dwL`caE8D2yZ3aIoAvm08DYX4DoS9USWjMkq zvPMz>;s&)$-V(8L1-7g|Gtii<6Bby1rXB$U0%PkT#xCnl0NAo4XX}h}DO2@z!jT=vJhk zYBN#{sU}}nCI|QK!FM}+XS)A_X5T)Cos~cIzX7Z?(mG2tFC9%ur3ftjz2|F3GpL*mtJbZ)Q6jZg^5|v~zBawOs!{5wVq&yZ#F| zjZn8y99Wldk>`KWBdNtV_22YEqN6+hmum!m4}e7KKv78ZDa{|&-mr+d+g6p#(j}r+ zn4`s>zxU=hXV8d$X^%o}i02ypr1G?&fNPsTGlJf8sFqZ(w?lu04zW061=WhgmDI(d z$#g@sIdz4FkQLwzbcdk?^;+)slFhUiHSk2K)Wki&n1rh70oR`)_3@{KoS5k{jbs{E z7a631{rQ~c*vm7jDYc>zCns}qgKdGi)p~)VJd+9vaoX`5m}yR8ZchQxO&l{EQVBYt zM^SEto7x6h#5b8{C}O$|6$ZysM%F;%ziy`X`ki1&u21yRt6!1ZrUdHQ*xGJxj(lT-$Nsv#?R-} z;faMRAFfwgBP^;d<4U7p$B^49dtDzqp{i2RZ3dH?h%V4XUcx(kL= z|KJ#%1`%CIlB-Wq6ML z#y=DXf~m#jGUp$ErK$bw6;T#)bWEVe9o*Olo738B(zL~x@D6@QRyn=Gk2JL+Q}YP# z+n2XPMicjzPpuOmLVZS@uT}Gi(}blQ$3I}4!%e(m*cFvR7n4hbgFr!}3jTA7@2^E5 zFs~leztZsjy$DPKt^x~gk(q;lQ4E1+_=x{r1OAC1jEuQKXrA_kZ=fIZZEBh7y|}n> zQo7h=$-z7lD}xhi3HdFmjESXE_5!ov9zDIMUfSlKnyB-Y4fZIK^6nUp-oSjNBV{g`~d&Z8PXf26o_vgF5sw~+tM<(5KPXTN#O zB&Jr^AhH(4(a7yMRz`X)^Q=$t4ppX)eORWlm|9n@RW@w1;SVL6c`_;q9T1-hRQFgs z&tUjF#`+u7cKSNmXhjbm!NNC>rxVVCr_)dvLgXG!}g5aBD$Y`6ER236I z;D(PVt}LMER(y&gg2nPo`HP;#;T0EcBWSTJUHDE$3}QWCJNZtf$46#1PGi20L5&ke z{g`=RUoE@ZT&4`u#wiV?0(&7=Xg~^%knsADB)a&ed{jLr<H3*PB;?r&ocMKY&FK%o)?e5nP{zdW-{SuT6%s?RNPae`a0^me z=S9C~AzaIK<@kj2*=nCMJNS6z0=MGApglu1kuoW8LT0<++S8K{_wngQ5M1MJxC)N$ z3@v1IU8j@xjfLx2ovs6c<%WIA8FkiH@+U0Zsc?*1$1?}0a#-z2f$$$=`amifYt-U)GunoXXX+WHjdg2 zX>~MohJw9m0Dly+kMl3AjZofc8GMsf{oCe7eeS;j&fvqp0rC09Z1mrM1NJLqZf?Ua z?h2UpunptP%7UDwu8^7b;0ljoXpL_El4bVH)DG#=v<&!}_zNgLl4wN6VDv5HiGugT z2ujBj$`%= z)Ju-rS4C}gXK0qIjgsU*(fS19X;<8k7OYmb53&i zw3PU|_2z#jNE@7x*SaQawvVA~9wu}rO<)+10bkovRR>np!xc<6x&T-cQ;xK>a&2wH zgc7K#YCV4*Ikn94fNft4=MQ1mE#@UqefhR1cfLdGe()*ZFTCS?GMA|yaZ>XRZGx`u z{jb?INSj+u{`ig6R)HQJ2Ng}NOHP}p#sJ&zNeXuxOc^&xgB2Npj z{`dhdN_04+9GSr<>93r%Kspwd!TZUcPsRw4=C@;L1`ATK^91yKow(8Naz$lEn+aS>ND zHZ3QGv}JTB%(t(%0=r&r_sz#gfiqA5h!D-+c&KR}}EPLqo6qsu&eQp^rUz+-S z>A_2X13pkMQ%5}Hp|qS!j%sTlj5^#C!^OK z=quai`IWuiQBVqoP>NMX2+aY~!kEPu3d4wO`Sj^f$cM<;8G#+KeW7W(Tz$vS?IGh_Gv|)MQKP*)&?gLU z1FmXN3y-5_Ll)NFKTDRfpmA7yc+7IyP?Mvo$>$AD18IO*=oon7c~PO;^H#XmP~tf? zgi7~KjALB?D!oVUD7mMx+U2?z#Nz1P2w~GugQ*g8(on;2*|hSD>8@MtKHzlfIYPUe zaVgDeqS?IjEg7|>>ybD-xWnUR0^qVz)D>?qEW+A2+S~L^J0782M~-B-cIF2(7Ghg? z;8m%DNg4-Ut-kNL{CRKdIW62DYd4 z=2|^Hc6ph{&gc;38jcvm#yLM}~rc@3TUB2v{CppmaAneCr3 zP)F(RbAJO8zn^NP0iOtz%-bY}S#MdZA*J>ZRw3NB#i1O{#d4<*g=WQzX3no%Q~&iX z;V9iM%})lvQ<4nAQPTOi1@_Em#jaPikCR9~&Iz<8XzGAZ5E{#1h4Ao;qv`C~G% zuu&f|x4?r=KA@iS%LIP8{W5HUxKc|uaRoZ{$I0I=7Js(rfQgTRNss?Z@&JMY_{+uO zw%<8u4(MZXN6cI=q_p>M7Yk$+8t@4vDHQf5A=5$4FxBK@foz%x>p+*vGK@nKT{5v~ zQa&^o4m-VOYglMJP41DLOZdcB^up8_6<9c278Dd@F)=i}K0u39cp5ldBi!za*g};R zER1K+K;!|2yo?k0C=_HJF;8HF)wzqYb_^cZzB5W0aE(|)x#~e$ASWLc?55a&btWOClw{8b{9k&f{H;5vFpOy(0%2C0WBsEPt-eUSO`Tl+)HbLVax!O6vLAd5J4At@RLqh1@)X16 zXu*gZb`LyAkGUmy!bo*W1jJ|eIX?}0m>RqtBxc&0R2G_V0n0Ul$TcETg zs4K`Bbm~B8A*_3Cj1^v~u+npc`)aX&Va)WL)+jFFQP&Y`9whdk*BcwQ?%e1{rVWp-HAPR;xnPPyn_gdMa=Dx2|c8?hp_= zrBg}TN>TPc_@5~7%;2Ut=X$g}am3+YcmwR}S81sMBp@;Bo9|!>Y3ql}&ap(WP_tm% zhE*0~x6vl`p1Ub{^CEk2D^#(_k%d2^<3)b7l>so*;H>ePxkpx9)+6%g&|6&gb0Cez z*wOW%cqsSqgvGz)Q>Jxs%+f%RvKbl0$|#P$sFbVNE;0a@To*+i6&VKoCTpB>`B7o{ zc5n&g^uq85VhLPwbIs@0a6?8e#VhoF$&lX>xrR77<(U1Y(63Y}%#?C5?;f}9N49`| z8zI)b81y=!94H9f&${HkD4}c2xcWm3dQsx>_m)OjfV8sH;8)FfQDkk~i%K9#CLGH#CGSO`25p4{Y@@Wq13pnSteK&%9=xT zcn<(xt4TmYuSN?M1lAwQ>;#;w2B>^_RRIp-i7t-rum+V85Kb@n6~6&o^?P3jjqU*$ zT5LU^Po`nWTFoK=M@gx4H(z=3&Aj>~pfB?G6E)ACCk%MC&n|v;&#oKw-#SS9^E$U0ktyi2@ zCM_J(hnRWww)UT3^+hp9bPo8%;6@ zxxotZJg*Y?eh#e$iK>T7ZA1-y^{sDJ&GdghearmMpvjR(yHfL6kdkol1nT zgHo;i3MZ5;h)iSTg-5K@>Q)6CsT589g`Smcxz2=}K_Hq>9v&j%l3- z^{HLV7@F}+sfze@hwmLp+)MjGaU!Jf*NsT~9*2UTKklUZ9HAnrgXG>FIW;d7`YfCT z2Wm<;M{G3o#+H*C*X!E)`YBv(^NV(%$_%;mAG_Ok9(2f7)1l>GiJ716ui*+QeDJL$ z3TF^g(VaklSK?JHqE8!NG?E;t|Fy43s%Z1=C(+1LQ2>9)1IX9QY+lUc9An_0v! z6GHP1)B}p)^dX-O{~}*)P80%^1IgNTr>plBii|~=lLj~XaE#Z83pxFN0dJ1N+)tK* zk>OdL&m*Jne*N>~!|&6TpSzvk#=dz;COW|UC$(54Rl5FFG3|St*4OM<4@c%&SXf+? zO4ir;^fXjqnj*>f{6+CNXKcaM#;COaKir8}rmpE^&bH0d432T1>mKT?!4zMmhkg_6 z2m80${`ppajm=A8`}!skxnR{7|M?H~tmUYT9pUWy#tYevGPMhjwnPNbypC?(sI!dm zli{sGu8>c5BEgrOvS8s4tHOd=Po7QNdCo4H(tDRj%%RUbSRdLZNi0JsC}1{Ed;Jq8 z(FllczP;AV=od^0iq^4aIBNcG1=&utRd%HRIqZ@?TD0OTdLBmWmPkdFYUFjS*1Ius zk6$jX2RYcjtq`x13?ChILa~!{fU&nHsM%$GMYuAt7Y^TTOD7XlSLx?2iKzuogVmf% zOrs7-}uv(f}A2-%kHsbk$6_#aP6D1{s?D%%sh>?+9!J;2c0) zzuh<&s6>W1RH1!gOPC@0{s~_ zTBM~`1`SWa&`Nz@-^1TBs*}S>{T3UTEv=w}DOpk-wG)~>4zve3iT%#aXLtY9K?Q`Y z3^qfTsWL+6gjen$W&#W;8{&gY?n577s^6NPY)akpGaU%IkIS$|t`GsmlSsD=e#Dmx zW_<8fMOq63aNMLh3LL+=8aQxi>D^)WH#^><7tZ-jH&+ABgwA8xhgh4eByz{!1$5i} zcZT;bU~fPA=*at?u+8*Ul)^KVl4tY5?@~MPGb;6I;&IXK1j~Gv$ine6m$*Cozg)TE z;-^mG^w66O@14XY0j-S>%gE}j)>b{vn=&tt+$lF1LwvODbiHv#);<-%Hi#Pzt|q|R zCxu>Emz3ig%RYpprd8N;rE?Sys)@F_n$PrcY3uQWALb)YRbOR=elC~z^R;Kfot`v& z3>#Qj;84TpBZCjH;&j4rVCKew&8#YGM%JfX(d&{_2qZt`Z0HnWfs&`W%PT!hw;9#M zOz1$kU9VczU8K~QJ?V4-G7|4o*r<{H=82jAt68PUX9P{JEWeBV{XOH*G z#D_{%ZC@uIaL@=hu9ULEKWJyJmTL&cYybj?(o>H`tIC7~5HajIn)>R~-Va`rMZF4j zg*GVREqeA5ep&nUuO&!Lh-UrlWxoNI*y>OxibB<9mnu>89T{oqWDO0-?*JkfSf=m$l`M6yiQ@!BwmH0t1`Nn?HLU-kYy_=dPy;p9Y{p4k*Ga5d*OBl}$ zoGJkhy{|{QNMKVS?uAq|f3~WOEz?i)SI;gLvD7?DD_Gs>IPi*B4KDd{`fns!uLq)Z zwJ#@<4FA`*dr_=pzmX^zM3uI2d~tp=n^M*cSmAjCrSu-=P5KK6(5VzhFJO>UQkOnP zD_-z|f1uC|vQM9iHjauO+Lo7j$lfy|XmN<$8f$BInX-P~J-7RNTiEcvjLTT|Kgq~8 zs4h(>Q^q$UGnPc7k(f_#F77fBp)xy;+lc`)0)|PT7ZvGS6DPjKpGJNRYH3+Un*tv) z5xtH(5TQGIKNZ$5WnEfbQ<@j^4@C}$U^Xfh$gt4V7nGO$dIfNzSv}0CILr_!br84E z#+g`AD1{^e33!bR+0u*Yb3yPqs7*92X3tj1#zH7}s>5ib6MDURo=-ueW;13!zS^S{ z+E=>Esf)=%rxS;DqzDCD71f1V|QRxho>Wk!dyl4Y*Cr( z;xaWYq4b4e-n-jiEl^iOpFtD7IEO#F$&4ns@d_i zblR-x(@+;{q92%q6JS@F;BQ*}^O3Bf+>@63bVDJifkvW4OMJP;m{siI11o-AD;)r8 z98IoTfHK4b#QbIyfNG*Sqp$<1IzlgvTS1;n$2FXnDZ zT)~@FnjUbcZ21~J_PMoril*kj0M|*m%qkCL+Ru@i*0@@X(R=M0t9z|%T<~X5BQ8)} zi@7R(W24?KhgQPzSdrO;Bl7U+g`%^pBL>;jdL0%_3;1xwASGub21k(RBumBI=-0{M zB!>rGqckb=@LA&7_!9R8drMz7wPH^mt=C3agEA&=-WdyV`flnODv8Y!bHNHJ_V#n$ zuWEo6#C}fRw*4&L~IU7NNVq$!i2MnOVye%PYUPFr^oTfH;!X?Xw3vN*fH-Eju-5Rp+uH6+a!&!Ex8@d``SVEPZAo*yyw?~@*bj;wU%6oF+puT?^ z{0EG$gPSR~@(aqzu*y@}koK*>%w=^(MhBU727e3PYFg7YQXaKno?_X}y8Wb+kB#ZG zOSJPABZg6Z*ag}rBGki$+fReaq$CO@-(Qo8(mV!!&#N6f?BF}}17;#&qPW{dMHi8Zg<^2Mr>eo=CR zj@EK}sYmX^yQ)5t@eC`yj1=^+L^aII-F%PRtnRu7JlL5Fk(QGXwNI7#f_jl6pLhLo zIZkBHU))u$k$zl$Wrq9*Z;OkaoJyo~KS+%F!7-ZneC0cKIE%2}6MfT}tQOzD%ce+O z%&}ilDQg$I4*8w*zGGvl64)QtIa%0R6QAoRL_PxiDbq1=Wo()f=KZ;ZqEOe)>H5@B zKU|WRVWOrz%8N|nq_k`RupUYwhF-dD?hi~)OWsjeFYlz(7?aft)EV?Vx6_h=qHPsg(5xqF7FR$d+p24XKcjR9SZ|~3 zuxF!w42iY6zKnhSC@_E$O(mU-5~1PstaVii9$vkyJDM2M0qo8U`uP`drvZ~jh+EE3 zs*gK%VwI@x^pNXv^@%*ofzQx>(Yw2`~}E%6`#;Lqv_Yfep>yS_WFK-;T7Pm zKhlU8+EQf$!xTXBQs%%NbLzpT76NMKQ0#Cgnt-7z|6=HJ#w}bpL&Av=egg&9=y85u zAOFBd-X7*%_zRFRW2CqNKP(9czy9zSP?<^3@w~FJW`|PEC4HS&rDN(Y1;=teUuz4T z6H!Eiv=eYyF|+CI;6o2P$b?^_ZPA9v&1oz6g|#nfcSePE!BivMXUq zlf4oZ=%olm_Gd;9`q~Pju7MNTmIL^FRD<{o*#i&JkCxDJd!~$^WPim^nPOaykz@xWx z&?-u|DZz0MK6L!d`RQ(WMrmeq81PX#@&4ptFVm_Z=Znxe`7$6p@SU<#ahaTF$m^Eg zqyZ1hZ=J)R?YH`k7q*2XaKyALQ7G1$P*}hHkkUp$wch9XjWK%0lCh33Z&$D`PEwu3l3yn@3%;VL7ZdA?#(=>< z2MXH$^2imOSs)cs@I9v5ty6Au9F6w}Asr;pJ&TXFtIeI&;RehJuL^ zVS~)--f-IzX~xwQ+3xj}_?BJNsUwwCa~{LDc|NI>Zg4}LZ$L(=s|4RLWdA-@M>7eRAHDvUQYaWVTTKbr>kawaBisNL#4 zjN@fLp#7#4!bKzFq1_3>$?;>a$WqwyeY%(cq(C-54zNqw*E~;9?!Nb0#p*mkP4QrN zD7wx+z{0!p96Rw?FlkZO_(s?+=nnEelj^qn!RwtQE|(jQ?bdBapk*{r`r z-@%OTi1zj1K-u~cj)xgvH+vHw&hYZlGi)q&NI!^nN;5}H1w7O7wIxZTZX6{lPTQk2 zf_*t~Jjg`fZn2aWKeVT>jayX)S@xEr$u4wVkL@9O{Anz8pXCfVudnO8J!fC!B*Z1y zQNHUcNnLBb^H%Ih0l@UJAvFY`|HwRWbu5VvB3?60>6Pd9ZhPsnR`}&T0cl9|+AxC2 zxX!4dVXGa#1z=Pu%FmO}0O9=wMo2nq-OG?ahlIt_)xaUOmTA>L4ZD8mn;wY1>L)1E5X|N?mtTWWjjRL}Ly0-1c?9B7XTo2A=F-XZ<_i;)azS{G@K-c; znO)(HGfXs&o3U(pk1HTh%Izkh-2r5ln+Q$=2sqzTtVJoZLTSV|^WPGF7{zXj$i6RH zgbOL@a3?Dh4zOaD-E<(Rx`6@4*z+aGv%fEZ5+Rq=$GPjqR|RwihU{4iI0lo?DFZiX z9H=xa37WvXG8hadn|@BX-B_Qar<=2wwW;3U1qB3wBCk#T-=K>(O5W*qtpKzKoBiF+^Fh-$1){QRBNKdf?D@{#Z?4=4Tvf|GPWV09N4hOelh46#a?>FCI%5QQ z<{48^uFPbE%pU9h^R8c&ncX-bEW6_}{!uER`RqD_d+(@OkUkiSKjy>UudIAdCdV%d z-SPpNa_Z7)NaGjhYu|TolW3nA@agtIEzcbV*Z5TO8y?nMzqiYpcSU??ec%suXDw)c z;zbpvz-m9B9*$ArSiP_?iTo;H^2xZEMms=`$LwKojB`E~GAc|THw_>2@ZTQoeHlWw zsMgGZJ1x+;tgJuzY1AMWIfd6CA+)e% zjdp}!fx)4S8{SP(2(aI}!PjeL1+Sk(5!uQvF8pS|_d!p*gUZnzYu*YJvKF!fZBQ*U zSZq!L4_rM?etRdcqLhNlGzJCVznTBKs6m)kzos?v@@L*X*ZDD+5vbjIg;~e|tdZBg z$7RRfo9i*2NGR4`(4?Iq?Kz^=7_1=MAd7 zq1SDfRpdygo;Ma}KcqY<`3iG|Ck}JZ^l?Y zp(lRU%b=)&upl7?+QqlzyQMOTOAwUgy|x;ob-z!;%@0y8dr}VGNPk5ZM^w=~6y}a1 zZdj&r*ZTMoY64vsi9tvfmZJ-^S64t=cDAixp5e!nIz2euHQrB&%hhPws(Mc6KUe1d zSx*M<#!@+HW5)yI1!GjuM*y(L@CVmHAF(=3Gv%ru#xcO>l;XZcmD=2KW-unuRl4tx z-A6;t<|=XO&GO|J!m}u&OR^uB`gZhUxdIT{#^!6nKU>s9QFq^EYgSUg%=i0vu1@c< z&nc};-wjJlV-mB0+uCdkAH<5vjq8QEF>&9ADw)vHSiOtNxl*+!tz?2I8|HgN2O^Kf zA5{(XJhOXU>m)j}n8eL)NU1~t5}>-Jochr&^fpx|gO?tO!a1XwmS}nC-PC1G2c>VW zu=jko&6hjb%p?x5yqaBm9>o?U;irYHy~H>r8S7OyL2?ydkf)>6Z+JRj(9zky3eH5wt)A$}Yo_ZUJ4L&~Vp zl=w?FPMh9N5p_NhO>ZCkzJIbZCce1|*e4@W%&$5oeqj->~IskC5 z&j=kE8z+b;dTv|VY*M*+=6UAuqOxzok4)gvD;XW&OPFY*lSLy^Iz{&{DP7h`y%FH} z(>)pDf8{>EhV;foaBogo`sMrlNlStEo zalz+?_sGyxLf;U(B}ZuL${U8U@#4~} ziA0HBA=W){_4i(BnVCr&bL882|8C(0eF|D2wwF;r$nfk@H_};zDXRf*Cz_o0t>*fM z_o*N>5h6fNFKg6&qqQ`Q8loKnSZ7Tc5i;3a>sU~W%&H8Ej!g8ra^p}YkfaI5p6BY_ zH(z!d#psuJENFEh4A}9Ic~p>ijj1RypPXp>bsQ+&q+O+3e7RTdoZU#NB)oh1(5MZ9 z_ox}+w&lLUD=79zmT69&nMGX@#zkttR)Vo*7JHI