From 76e7d80a550b105eedec245d80a5cf8b88a76abb Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Tue, 17 Dec 2024 16:55:07 +0000 Subject: [PATCH] Add dry-run validation for Loft (#4820) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * WIP: mess with shell selection validation Will eventually fix #4711 * Update from main * WIP: not working yet * Working loft dry run validator * Clean up shell (still not working) * Bump kittycad-modeling-cmds * Clean up * Add logging * Add proper object_id and face_id mapping, still not working for shell * Fix faceId * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest-8-cores) * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores) * Trigger CI * A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest-8-cores) * Add dry-run validation to Loft Checks one box for #4711 * Add extra check for non solid2ds --------- Co-authored-by: Adam Chalmers Co-authored-by: github-actions[bot] --- ...uld-be-stable-XY-1-Google-Chrome-win32.png | Bin 40568 -> 40704 bytes src/components/ModelingMachineProvider.tsx | 1 - .../modelingCommandConfig.ts | 3 +- src/lib/commandBarConfigs/validators.ts | 49 ++++++++++++++++++ 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-win32.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/extrude-on-default-planes-should-be-stable-XY-1-Google-Chrome-win32.png index 7c00fa129512b1bda19e714c2525a1e9c85527c1..6358dca594289e4eb5e82eb2a0a596ac537fcbea 100644 GIT binary patch literal 40704 zcmagGby!tv_XUcIbW1lVDJ|V1-3?NTbR#JtC?$w=cS%b~hk$@cw@3+ybV+yJiRb&> zzwYzg_c_PofxY)y>y0_b9AnHKqN*%|iAIWsfPjE0Co8FrfPh$zfN<*oYi}0s=LHoaAH8SE-vb?z$Q}RLDEdm2Uz#B&8G4ZfCzi^Lu|Um0vBB zxmm9yl+bSM{hiQUOA1%bV%qF#y@!9_YN`D~FQTPYeOlo@fk(YRdmLe-fp#mpoV;al zG+(7I)$6YuM&z~#`XgRm>57BIB!>NybC&ZDayops-l&9!g(=C&$?4R>or$WQot<@e zcN@;2A$&#tFfxXTfZ+WV#cy?;9s%KNK9&!`9fYadw`t(!Z-#d^HO|fR!1&65_W%9k z_djnwQ>yOVbV`fLONc2)@6y3eSn7=zF^n#4ZBq=J|W@tGLIo6ezZ=kw!XHup0+kA z(ea;zCb7}A1FBkEXIHYz_T#s9Etb8{vHthOzhk6xhJTFR3=#|^30Z0!O`V&8j(9r& z$G?@jMIlde34?^|!0DTok(#lYTRc)|AWj>{2jzS|R=HetDca%Vw`4w;m;&ze(fgUL zc3w^;Zzv@Y5Kd%QH#QPtV_jSyiaPDky5D{k)!O-3MP=~o*RK;36GKCh?epc6o2B-{ zGP!wqd3AMlnVHn=>}4N62J|k~7fVn|*zKWEb;Yam~a&CML!CY+Wmr8bw0d7^Wvz^*e?u$+|GV?RYrJs0b&9*O|_T zXq7Ua|C>%rKE%g;sRA1M`YD4e3GwmYJ3D2hq;_9@DYYM$kuo$iRJj?0!^2Un&o#BR z(?z^$tWs?VCOLI=bQti_^hGGzIVdA!@<*$ys$L1F>$1e}Gd~G}n`#w#-oH+=@E!H8 z1dmA0ZqBbOWfdh^B?eQ>Cj_A#PsqU4K^DpWD95UonHFAD`R7S_?2;FX``MKt81xMZyIx%RgoD6 z8X6f&cc8cu+6-sk-9`0PN#)Sa%IiUe1CiOTlrHQsoGld<71eUF*V`S#ppqdvGsb#5 zSaIzgHkC9AtI?N}{uDmDPj=seaqlrGS5;RpIr3|1X(g~3PPO>@3RNFa(8mav_Yre- z&D1-~43Bypta3Unc11@=$HvAosHA^+eNIU8v9NHmM4t~G9UU3@-E^%35dlH9L&}`9 zCiB?f;P%dZ`{Ci?mhMUb>b(~)Ucekq6%QPzW@KbEHN7@4__Z-!wy>~ZV{P5gAeCu@ zgUAV&v$5HTjKpzj!Wpu{yLWGNWW>BLarf+SqtSi4CkEAuI~m4^SUIeelX)AJpKmJ1 z0A}Y)v>;7J#4sUE7?)6}BvXF= zD_dCcfokp}NAe6VtG4f%zkg?j_3+f)z1bxc_E#6Dj~_qY-Q9)lBI350C`l{e{?|Z< zZ(YOU`E$p`uBe_K`GBFQ`!ePOsf7ohSkVG2jN6fPbjBkiBX8Y73J47B=;$~-KhMw4 zpZnrb*+km+oFfQ}LQh}c>-y?7A0OYEq48-LG3TG3CHjGZfr|+Z4Gkz+BO@bwdwT~5 zun%*L+k;-KZ!409)!2-ewzah#Dfz<+F7KaaD3eN}6c!emSyKYf3(`|FYex{*SX|R+Q2SqtekjMU4-EfY~T)lJtlA
*TwMo$ZZC>CnEh>^1 z{rj_II+jTTM6khSmc&vXG;m`={{E%9($kb>ray&SvidUruHFvGBvYuaOUx_Dm6{(jCML*v ze!F>MqEA*MP1&N{$$4Ls7{lOO{*bEOWg`P|xzAQoB~c?6j=kZV;$gGFGTH7+Nbylp)((JaC>_mWs zgruBt^>=(DS0RDdZYlr=4HHuekT6NB z;M^QpuS49K{o?UNIumxwpFc0?m_2rWx1Q`SXlZIXIXg2br|RnIy~j!BfBB~)l;|eF zz1sQhwmE1^s;T&IOyMn({#@JKWWfvhv#>BdB1=FJ2l;@6nD_&wNQ1*%b8c=f2?+@t zI`(JH2fMq&qoe2N+bwYgHRa{yRaHN_x(a-+uh!Ss>8{~_KMq@NozS-EkRD;1nwvvN zzbb!3{NXM-A-{mYW9o}KII_N17Z5~B?PVD}R7R*z`GPxM@L&WiBKy-R#Cu;~9{0Qc z8n)!dXrD6EEt7rlf`iya(69l|>Ir>bp2S;K!8}d>l0rXJg?)8y0TE&rPitvuSJsS@ z0la&RLbU}c@#b<*1^k0JQfEg~O(e~NB?FLR)C~2XcD+vc^zFrGL?SY>l*N^m>ZVtZ>VU|zMxk=qu(v-4zsXEoF-W_az4u7qNJ2m8vjcPh`QgtEkb?(6uRYvs-dAFn3kTFR+60!G0%~_tfWLMJN?U-FOcFa zEiHfi{ApC@*g7x}zS+IFe`>&Xyx1MHXs)r9Yb+KAiKVIO^6T3>X=!Ppp`qQMpU96F z=H>B1u*rJzjy7N_5!Ko0W>AWF9za5eEh;1=1XISUUlSW2e|CD>ec?S?1X1Vm$6CeZ?(_3cGXr@QPKQzVQ!EaA46-0?(B>nk2y*| zQieK6+1>w7c3X5bUciGT0s`77oE%j;MArNFHI$V6rL*FQOp7;M^3|{UrQGf3Dk>`M z=fn%d>#XOcMvd#~QZhHBZzpFwfyt?<8t?bb&CQLCjU^?l z5|(fVQ}`UyN-mM}{$er!q_zOwF^i>MC)kqi_pK`je93?i!&G--+T3KG6DEiv7 zJsRz$lT*V>h(=_5si~=5Sc(-sd$P_6)PuAN(XahcXn0dDSBG-|7-OaN1sNyi=dXNv zTG_>J(Vx7uwpM7M_5J&I$g_(J@aDLOI?0KN7YCy%faHWc9EUO=SDN>$3kp9X#-N}` zgY9_lUW|bAvaY`VLmg~6Y8==N>Wuh2)$V-!Ns9D=5=>CK%yCc1zJ7fPPj!8^!5*Lr zk2+;E4PmFas0hHp4d%+-psAc($?(0}9~6Tm%|K246)?eaf692NVQ5H*8XIQxHXCW! z^73*Gq)5mzBbHSF_F=#Va#JQfIF~7=V^B<_zLX3$o`5hX)a<(LrSJyN#nly%G-SWz zhtHSl4>f=IC&EA`YP&5gkTxwW@ak_1sWWqCvHox=1YvkJfUVgBeSEY)iL9;|B;Tvk z6$&A@Dm{#Lj*5Z2xr&;y8`fZnM+rP6 zriuTpYu6O1oHM>N`yLfFE3ft5J&EC#jh|nF!>a$zG>&OANxl_NObqL=$jrMoBg{!h zl2y1g{Ji5eks=X*qbEvGYs=yLfS0221hJ9ae<>lWNU!RMF|JeQ@pZcx)&92W29tmA z=Q~%IHc`nDrK0Tv!rzQmXj8?>R8+a%54jM%7{rqkk~(vbXL(xTy7BYtSMf)WDy2JX z?WSvdF3%vL^gK(ct#$9s=NA(4h2T0nJBvc&?(Pm{7)?EG#Uj zHE8$aYHMr#Z^jc%%^w%1``v9UgvEJz-&ix=@A_A%j z5{~C@xb1kW%=>QuFX}ydVc)A?P%Ho@fUFAdffEDaak9!PrcWW#Fx(V9*Y#+9Yy;xi z+qZ84ENx_d&Z()XnV-K&lRk&*1RjfH#X8O_1D9L1b1bZ^1SMhex$+5Ck5QUl?Y`KW zs+N|Po_l>vk)|wzqLd~$*4OvRm_)$J+FCi4|K;zmZ=r;R8!?Ti-roS4vELtBz@OIqL9sBL2Ax~Hw9Q%iSGUJSd$sA;OVxA*&Z^X_Q6 z(LAMgj!&$71E_wEE-t2ANq~3Yga7{h3;SAr{AU(aUl0cxb^KI;z;x$gQ_BD=-0lVkLn#8sQ z0<-z7dIW^05#?GVPp*Y+(>srxuSJR{U#!%4$(H@_Y(haryp1IzeU_(QxY&TS1vQpx zAy-2sOUb7Su18&+#6g8zn!483w741axmH$|!zAmp#!WdTVaaIK5mMMT`;;Od!Y~gG znYfXZakxoyzhvVNm;3#RK0`8jvA^e3a^>al1bbUS)^@0a zq2LP=r={h5o%_5h%i|Vu+zTKq96Mz@iYW za#!7Zw)2edkX1t9q-^ybm8RD&$bIAgPg&k;R}FbAPeFA49M7qH?k`oWjQC zVyQO)J`7NHPuP1~l9+CTdZ#4-@sJt9sl@Ef&5tH6GH?+gmSX~g0TD9;@ERN>K;DtQ zlik6=DCp>+g&O%r^-h7(IfjjHVdR{|R8%Sh$rI(q{y{-V^_~8yt1f4mkNwXM)}FX! z;2}aGEBox(9AunSVUH1j4%5>@OiXKKEmzUL8qfErY)*FOApt~Ci76{7QSjN53-rYe zuBaq((1?j$L-L{6tx$+6#*!tfvC08*Kp}z6!^5MxcS6m?#Dq6xh7GfwLs3EDAq@=; zRD0~~gWtZH!V$7d%Ab1q!o(y=aTy?Pfu^;ao13kzt=E{a>-rCfNQZxCyf!C3|NQwA z3eT;g_&3VWZEY0?k$gkNW|rvcd1P6gkcO2* zf9`WK@LEj@B@A6~**_bvQRU@4%1GPzwIAWd@1+9&o@c4oKD~DZnj`oZ;>(Um#{9!b z$2~Gc?B%iDl=M#G4~a%_Bv3GuT5Q&0DQ%6_4qCQreU*vg8PexS4oaVIXa`D#k16vn zHXl{AmCY_y&nDo)$zrmY>nbY$yc&NVJyVjf=u}TnPp{-cUjJ_OU!33=A$sQh z@^o(rPRrlv+Om1o<)Hk{na1(i+2&zaNDkvA`W7}eLNC4r!_AiJRa*m~!=@4yhPV## z+3e?aKi?d=sCOdy%c(8^A;4u&iTOZ{frLR!Ez)c;nBL@dT>7+f8B#x-K!Zwi%t_yg zgX~Ak zP)|XT6DRw?9~m1qBh=I>fQNNiM4>uL=CSei_J*85cskVBzHY>bQly z`Q*j+Y!jTS2c5_R$vhhX%N6N0t^}K!n$8b5fEywpBMV*Ne~jZIm?ob)H9Z|FnZ3HY zT2N2`yPxS`>S%3r#rOI=LzPkZgT4lZ;KYqN}?WB^(avVq%;N|7r8=qXV zwy|M1`Vx#o`zUJ!R;<~iGaM=;SqIZ9wU;kB>%ZHYnwn~B$Cs9}O&VTMdYe z+H=EMnVu0l(cS<1?mDT*ZKmA!8eibqTdgLgSEvkRd97N;z~z}JMRrdF&G;6#(YDw0 zj^Ce9y#Dj=^ak|T>H7Vfv3Usf&a_}$?(}+fpT!Zsj1f3`$@eSoWLXc+JcW&nqSLudPpOf=?Fss zUd~ops6h1f*k4Y9WIa`_kVTf)gDk;(_wq!*-em7@?};MI4x*Hx(AUZLCoBB#dn1SA z5_E!$KDG$`wN;`HK+KPSyqvb)>h-` z8oMyAtdNk9`g(zwZs4=3%FB0-j(-05;eB>c`1WmUPu#=qfiUUA!9-4f;oP-KKps&3 z!IA9i?*3d^8590yYdEJ962$j#ij>GmRb5?v=jA@YiBb0}SXfvfnZfSJ$;p9Q49MRW z$N9Epqud&IxjW+FO~Swsa^It8VDR1V=L6_Rqw_^GI4Vl5ot-S~0YGTT43OIPybbI% zwa^a^4oI=Ov9PfR2L@)VtnMYD0s+d(%4(*ZWb+D@Eg=+#)?IX!8z7`Xwe=VrHaKFL z`T6e0e`kP2fT~T%{VzvSpF_(fFE#b^rJgu6%$;*M9G4dtU3ZUPlJjwL3iw={l<3z2 z-v=57AkjxwBM<0fm?*NDupv_eFA_#B-~^e`G?Ln37ozpZ+5ymwQSJ7Pt{e2eX{Dv5 zadB~)%yHyn_b<7{|KiGIsY0sK(uzw-Nx5)s#-1|6K45RTa9SBi0~u&>x*`n4PgYTp zn}=s>uBAniw!5dN=+h@nPw5xESQk00ale4tnQijg8fRQ;5@WrEHt)#af3>N*Rvsvk zbpH)S%Ml4k!>{r=YGR2? zXWKUStUb6)JS-+;Kli?>ef)T1Wv)+J#Bdf>3c8~tLT+PBFhro%7R0ijZU zq&)PY)Qn#|jh_-ku;ctWY0+2*^bRcH)T#t+lqG~GfbpQ=0K2Zkh*`sgV}H<^b|v@P z0d06H2mhsidCB$P`kX31b7Z%?$}zz08s95Yx=k^>Cqw+0Jf>ADa`ZBI=!bkS92`_; z*L`6B0p$bF!|Mi1?oNl-4Pwv54okx%vp+YOs{p<(w6h{J3 zD`^JfZ!gqC*sKs_q5KsBgan-Mq%Cid@gs|YzOJs5wfv05q_T&G6?ANDr9j2OMBPuQ zy8x&Sq~XWV9@%`-zpx?4P;D14z7i6~S=Ax*e*j3KQ@EM2IvH$)JWbH(v(& ze0#1XBQ9>~_iqjeI3OHAiN~xt|1Ny9t;zdz53n#Ghhw;-y&&qxICf7j@3wQ0cV1uY zt2}w~1aPlWljm!+lyFjFV(xMDvk;a~Xr>R#tn8h#s<9gB&!zer%fiiwXw%Xc^gb0= z^AKp^NNBqm^&ZQJ1c!u#rkGrAqmHPOYDv#NsW9iO^HkFl@Hl95;L~XIN(&G5a6Fs< zw7O_``Q1R@FkJoP7vhThyL);L+vZ4#%_(6g4%dGg!zEn3yzX8_R=oqBZplp`T3$r~ z#AX@>bB#jHJkn9|vPMuCib~na7`0kYmU00V(z8EQQq@RLiBe=Z(H8k&`D&&&;UzwE zb^hnaBF}X7p5Fg{O+jk)!Wz^eew^qe4n{`H{pEi7UvD&=h9}}icca|4eOiIi(t20u zcWtDXY?2b{hC(y%TUm^kUsYCD#}BeB5m5s0w)5@pGzxzJwv#^=tgNbffbs`6_F@9; zLj5|&tlV6)!E_NGZf;-!C6z^CC&Hi>`=O_&H?rnpVzK~iV5H5`JU&sN0}20p?~Cs-?@zOMTIoPY^Ll?;1wD80kyWqo4pDmo8h2$?@C9K#{!r*@=?yr%&g=pg;(P03O7U&n^IU-Nr}$A zJ4d~cn-oIx#)#M;nv%kOp(x1;{d|dIPSi z80TW3x4L=85O2SA;mL`RHZVwyh`{#nr4bbs6}TBBf8%`w-@ktk0RcYJ)O*|8ZT|MS znkb|2MaKPbefG^-d4oSmK{zR_VFuy01ezLzfss1;dVlI%kC76R_gg;c`_j<&Gixy$YTrYs>gr`_{#Dc&XB@j(#|yh_1A19#4~+-!{{{)6hy$ z;$Ed8|HH-2ll$7u^{n<%KJ}3UH>cfBqj_AD)I%(_xt~02?IjY6za)y6k&P#hUL8}n zY|b!!Oh*cqj-x<7Pi|^to4r*#4VVPt`SRbtqIOf$4ozrBwkjj$^=BI! z8;IHPf1_)dowN$$%FjRRVj$%}NE_kPc=_^kw!#)qNlSg)C)fh{rKQa;I^GjJ)Q*%X z&|C-cm%OjG^~MYT9=&2gSy_wM zF(6Z$u^&GcpA922vT}011SV;5GY^hT&8`K6Xn&}uj6T2U0O;R+YwHdYM&__3!0H6{ zhs|B$cR;nxS5BjqVf*#P<6h^q;M*^GdGxfjZBtXppY}mQAF+Ehr6z>b8(zHM6?GrD zi^|WRKUY_SVDY2Ete2ac8*+;SeN16VN&k{lnL&NFWg2{>OgQ;44B+m@#;PkTN8#?A z>Ls#UPSensR5B znUQg5d^~{yCDf1YTSKXlCv(B_d8XJXf4FF|FR_{KD`y2-Pu#TX3!CwhCvGJXkI6G~ z?_i?mTuT-xk!?^@@ZK3Sy>_F?LwV^f{j^f8vgKDBnZaw>$b1Si0@{G(?TBPQELMFt z<7bM-*qwJo7QHu&!n;!|U2G?cW|aJsYnqWIwvM0pdTe#mti-2Jr%xJezjy*wCT7Cz zD7?@PE}}P9@>h*In#@|u8N(oeef^r*Zk(mb+?4)IN8?>47DBpQ`(s~S` z9ntleL;~M==;@`;j&GJVJw5#nGS-7TG%5Y@N9TvD!~XKQKmiEVF_77!=`5~K8sX!P|`4o z?3R7`Vjy@27)_vRH`dldI{rYt|N2|4mm|4~{LK(_UdA|m0R=h?06Q%n`+3Fs$bzb1 z3=o)?&D){d;5R1w;=?a;h#Y`Z)ZI|;{B#ICVCeJVITEFj4>g-KwW=C!Ui!1zD=Gau z#y`5x(Q7;mLrLhw+x9jIEr_Y~TLza-*6+N`LA--8lKU$^7Vql!y4JPg$Vi zqzIE=*q5Ru=S-aX^}hDtm%(caJ3$2lnvV(-o^@|tjQJ*(mySpVwyBOq|Hem(Q#Vpm z)9x=`LI3swH^>a2P$NIY%KSg>={5i@J~V317{U1jyVWyz@bA_eZBif%E@UD zM9dr85AZj@J{7?hG-WUb^#PDQ1i0kXRB|e+YmfmzIy;4M1M>AAAJ`k#Ao74tD(v|C zE4E%l`4Gj>WXvRkwkY9$8Jdzfy)0B|`F775_LcVu(c7Djh0^|y6 zeVY=v9X^I_Pgbq~d6nzsfG~s#m+=5_4^<{6rLgX^XTD&e!9fvH5-PQiSU7=;cF))w zeR)OGNrKij=&&N@BTi2laih#087`^QM&T0@GJnQhdKccgASEO7uqq4dL_97wwyJL0 zw6Byd#+}A=X;pXskCZ>1{QI^9C9D5ebcziGU?yL^!ncwYtk2~+qjo?SsQ z_C0q9yJo%l!BzcP^vikeC*Rj%`BY91o;Pe zJUrFfD*3~fKwB4;l`+KV76+y@PP-oUt=UbxdpG@xphmfEY(}8fU04VQSGc*nO1`Bw z&d}%aEw(J2U_D*cqWoeh9TRg?i@X*&i^?Bk6H^xz%u%|uc3(?pyi_u<5PKxid zpS_&Aa&)vY^MeUYq2CuEebezzRqMVe@P9E{e&O^nKk)kj1MxNY(Nku^m|tqey}~{h z6F-0Q0_{jclQq8!^t@AUz|fE?MmxlVGNY!mjk1>L6hTB}WZ%Ov9dL6%ScFWs*p?Ee zjEfeik}fRZvKpCPJYhH23_M;qF=yNGFsG2vIaFxj;o+F*<+`812NkJsS00<5j*jlZ z1CUuGADZG55G19f%r(DG@%BDg9foblg#(2x&^_aWgDSL9-#R)jkER{$dmP<0m-^$ZM@21?Q5NLX?C&Ji}%v5#}b z?`eGeUX@s&Y^kQR3T%y)l~sHH?T?P+41C;e-T5O0Uy_r*wZx#IJ2TX{(x8TGk}$f|fBV?D867fdsYR^ygIcGkFw^rET6$MssJdN=8ND3RIxe zRGD;Q0V0EHqxae>D76xVK+YH6P((A>MPByAG65*BgTNsxD+@w&my}toCC!N`F5+;$ z3f0o=MCQ!e#zuRKl#D-7{k^ZDpKw6AhN-N*7$$V#_M`TLLiEWKeZ$cCg-oz9tk-y@ zNwX00q4`)_TcZ=PUCh6uNc@ixy4Gzr@Pi8mc7)>Vk(%1MG}lV0bJlDojX7(9(=GMhQWc_d%`wQ~|5??R!(Q z@aLsm%eaqUTjv?Q@XSfd)@zD35yfSZn zyLQeYBgyu)8htcz*no%bZ|)g6l)#l>`1`^m7ayCb?R$V~R?fO!td^ft%Xj-PUz1Cf zeFkxMw{AL7ARqvMDJZkPo^(>3yD1Pq~j+B0*D$8M=XRm?%)lgT* zH&iaEH|~G&xvsSI@4fnzyEm@sp~qa09s#Tn0dY`e9!n@=aAp4#oZyq7n_WX;xVgC* z-`MXVoL*Do2E-}4*c@mQmue%TS^)N3G za*@c=#&Zx`YeC%kGPSoS|G}?MQL$+DC+!1#1xXnnA-Ai|H6r#YyD8uMXc#1~uU!Ws z)ezp`W02fMcvE`!iS!&5;^Vr829Q3ELG;+RGdc?fFGqhO=K@rwPZgL_u`z_0nhyl@2my6U1uZY=ROlG-sU z;CH;vkI>-Su`y4i)C}yP*RUWjtyE9L*8b-vS0@g-5f_Anyg={<>ej|1jAW>Jb88D~ zfzxS+mZinTE)QRDUPHwSHuEL=d(6p5xDtaIA{1gj?Mzh5b*U!~O?Ea8Flq!9{0rYN z;Gw>?-Z*t3Rnqq_Da+R}(0i((v)$rz=ZRLX|1u^oqDTM&!qQ`GaGkrbuF`nVMG7Il z^74YbZ%B>fSpN$)GK?d=HpEB>5Y5e^_5FqK-=ih;($(VV99X=S&iOoPOBum%?Ja@i z|JaR{ITneGRP@E7#Ul%=@<}y5+KlhQOiav0C53s^A4+oVEKL^|xqjFk)Byo7ny>8k zEje51F*PCrBle9M--Q(=V4IbKf&%NE3AlbuO~1`MPT0EX)UM{JLm>}#RaMoFlzjSxD`90-SjYtb zbi-e^n$Nw_lPS2Ei@Gx_Sp`cd>==sPUgG`p@_+Tp0_6ZkJ>6=nS8i!(xN?5wq%CtC zGhrwl9^gUT&<;}~+8eV!a1TnfQ9GyJd#|RKR#xDjnI^ABLu(uKBH&K?9DZML1;t}( z;ADgf*!hbtulLIYxuF&LYnU>JIWB2G5XuWZi{yucqQ zLDLyn1XgcGeDcnY7n~V`L@0>;cH-BMZED_?^KM()&5jM&VIcf&zmJawy#cmH&=`>x z(fS-Eu&vboE&>%cd1v>@_!#DzW^AcF0=y0?hP={J;Z{rKrql88=?7iQ2;66yCE z?9M&y93QArz-{kC3%hsdlp6Ckv}^>ux`i->C>o4_AWr1>tPSA}uOGA>i0ij@;@(X1 z8*Kc8|KCoI|BnU_7XdVH<~s;3s3&80{w)>)LI&f6+rOTW%-(s!nSYHTp8waC@%!H0 zw>bZMov7OXbr&G~zIS*vK=S}4yEp}*fjG$6a0U@xl<6FKylPAj=J(1bqPI8|RFQJa zWOvkQ|9k&d;PS?XjlKP>0MSDxCOKKz6973ddDO_amt^O7BQfCNy(Kdpa1e%g%6E2l zAT_uSbhx;$pLDU=tm!Ec8A#t$j8p59&%Zd23Jw*LINJ>#Eg_>~Ox zzh8qHhdBrFF-VsalasD{uB|c{T>pD#&l3wqN3CPvCt9m%HjPNZ@^ z@Y%pX%KB$&;iE~N1w}nYI7@=3f}tuq{tXD=?uc#Jk%l7(JCC6cA#fA<-!H|dU8SjG zPbbraWpiBDA4u=Kq@Lqt{ZjVtmk0=ZmP`?!bw2_3Z)IciP|d;2Yzh2uH|MqE`A18c z=N!Z+G@o@9kG}ahGQv(i4UjN)zAM)q%W=6_R%;1a}(*_|TN zo6`E6{QB~vgav>kYoedvu1f%-1WW+Wd@l)T7MGT)Er+v#(*dc3J_gW}5Fh~hn5SA= zt{^o-IYk=)TF58}b0DGe=;WuR%>cOF+S=m8=J>1fja5Jvfh&QM2K?x3&zik~PdyzB%r*P(nJv*fZqI{(?9r?#{pDryh0|iN zai@3N7{oo1S8Y>#xWx3ntQw1pR$-|i1L2^{1PwZV?n{m*Q=RlrzN)bF$lR)k4qaGJbU9=fe@da zodrJw+>NPANO15(g&EiyLSteydJh%Tg-P1WfB*gsocH|zN->`s9SI~q8A(Yf@WG-D z6-;o)AJE{yeB>v*)XUyN&TE?}PTkeh6aCY~!UB|ETWCfAEe3)Im@9*HChMIoe0-Xr z!6Q6eSzUbuh*F?SaU{TkNAbuUBTZRFSy|L&6-@3kFe~8J=O6|L98@dk$J;AT^&`>T zq^yF1XSH)a_f@u0z>NeXM(*g^h)+u(IuTcrq7^&sQ!p7RFyhO%#2yjC@{-fUf?@}e zYniQe-jR^q=mN|o%Yv8u6d{^3yKgZD*3}B zNO|6GQgZY0VWXgAsux2237BHgeeN|8KK_G}do*B`UtU~>)Q&X_0*MgA^ z>d*0_sXitYDV~+x7SF^h`{J<>ir|#NY>mgASl0fYJg&Jgh#{=B=%*b{@BI zC7>VbaA#)%T%EAP&CSh0(1h-Rh0ciD&!6R#l|dq_E-u~x61w{~NaB=~l%@=JP%Xg@ z2O~lQOtKp}7YMz9IP!9GRwg1!t*X$oc{3Jibf^zfIs1E^&qml=mUpdlk!3Kb&UWTa z))E-5_;a({P$sYU#~*5s|Ew7)qf=4+#$gMtFSs~3T5hx?Y*G@E5Xo#Pk3EuE0V;k2 z+xJmTR8#1U4;PAMTnYUeTM}MdU0d7DNSY@Au|QD8m4F@=a@bcAmLRqO83f@2YVn%N z%4yi!j&8@|k;5Y)qXh9nox%M7IWv9ymezMQyTvhn zw2;{;ItYBXKrs)%tEzxJ7&tcTXZ5iZe6G3S>g zKf*^*0wv~wB7;I2LUz7lQgl)h2`+9FZ1TlLZb%+hMZ5d^WYB5=CV9OAW}ufL1_7vp zy*e`60d!4>q|@b@D{0uzCNKBBOvvo2i~yB$hb>|C7ayYq(kj(M@R{@8S3)<89hoQu z@MxcN4AwKST!C8+>XJqfYqr3V?!59|G8^L3)?}qjYl1u*Xql`m4LLZ1X|rrhYytxH zK(zGtv(nM!`V*G?FE3V!&%Q>1bNrI)Lb2a=Zn>x&f$@5PY-1fZZu_BnEi1C zJr5Y6%t&ww`S1Zu$CnURJ0qx6uw+uX%;drOo6}*K{Qkp-&Do~LmX;P!NkQ)j!XyLG z1x9qJS!SDGZ~XbwX3Evy-w$cWKwW*WlgbwuK{(0DH#&Su1Tm){`D9{rbenl4bR{Z= zzrS%)g6V|JuxoNM=@Yy$taAZaD5wBm*8c)A1!Qlq%yW;oL97Sv9)nVN;@2;78hmnc z@6{n1=)SA@;zEvP0jLH1n=l}z`R*?(InVe*Ab=%5JUZg#;6TB^FsQXRban;j4`{Pq zUS5!zt5h*)AZfuz{o3Qj16xvYNePfN7^tX|jqYW|#l^IP*#8}XA$q7>o7}dL!lWxX zwv!HyH*oIN00V@6l%aK_JiqgcgB5g3!V*BGC1F} z4X(wq58j7`%~abEJsoLl^Ghv~85r6>I*QlE!^Leizu{oPSs{SY4)f>*ZXu93Xac}g z`*&r<{rt!dEl^!o_tn9w8do3^B4PmWA02-{kav2u0-hacnF93;>`6~@hNEL*GQcQX zP!02_UuzG0?Dkvg2M-=FFsy)Deq%7-TZGDr23d}G1#-@f>Wht?Ap2kui)7?hK@Sr% zb9DWDfQ#~TCnv6_)B*xe&7ERMs8a@zY|*6{82^{kr_c#0DQAB%IEjh1L=Md*Q;z@q zi3Oo@Q(#}e^z7l>T}X@$o~hKqTE*IS6XmyPKEi|=G$tvUgL0O;tKtKpN|TvKM5Jl> zrPI3*>4)Di$ap`2h&x=trbs{9-3@l~2!oTVEZFJ5N!~brp>^nVe`O>j9FX|Y(Gfrd zB^9e8Kw?ncf%(_I`lBLacb0~m*>a1p}{xP@%w(Z4(7%~|h4yJqibo`<3nRk36f*fMoW zC7%;Z<4BHfx1mK+$UtMewsui*F&HPXt1@spUxrAwE$nv9h{hr~aQt_pi^J;F5T7uy z#U`^77#O~|uF{Dh1=m8^&jCdh%vu33t{y5fu`A_P25{^GQkP);0w;oUtnPF!ga6ZNvxgUl{ z?Y)YuG{<2$Mfl%yh*BEfLy=o#IG47<5&e57iTd9EK-FJCVI1CC0^|1EBjJxvGO_jO z2Za!4q0qh=U4EVj}v$YN~Rl}=(YZ%Fd!fR{Er&>$|ZW$ z@4HQFJZV4Sp$g)EDg5t}ssmp?m9RdA@piV-;0R3^2l9GxUq7?Sz(8>F zOZmqVARsV4o)xbHZ|-*UIU5A*ixEg$8XAuv06_mg3*n7)HCbT>y3ll!S1o`P^uw>n z?nBML|5pjW8Nr`$qvhm`^8UTDk`GLCj!Xnx8rrXAWI90_(9zNYN0t0Q5eJ6<;BIEv zZ`KMbU`P*M13n4l*x3G3e&z#29}bG3vWN_u4ltL zD`ap)R3V(xaS~%ddm@JIxT+-5>(;@KA7D;z(FR z9~o3rrt~a~j9r6+zGnwkK0cxnt00IO&gjA$&?5P8R8Q_EI?`Hs<27v%+>Vksc_Icue1B0A@ zCqKg{`X>Sttdb}-+A)r~g$00Z*aGnCeo$k&x>mv9KrzY-ACBO{!gb~0=^0HExrrc& zLO@6enj-@p9fg>WFdLila=nz4)M9EB09WwOMIj4ZJ32Zh^4P@t``__M{SZ77E9*1) zbP%XH@k;!}CllbF1pol`6+a(eLhsW1ju&2D=YZ`YU{)xC6d_pgZ>OpTx#ZnE57aH- z+92x?``2#|OKA4JMccxeJ5`)fDFhS=h6rbV@_`j)2mr3juw{L4cYTDgD&ODH0uT#o z3UI~V*aY{!iD9%Smy(R`$U28a2^$$0C|+GdvkDxB`w?Ws#IlX|D9Fic9Oje>>F>}a zVPt@KpOAojGp&O7kjt9wrg`h%znJ(y@~9cqSkTx50|Fq0&<2192^_mna(M!x29H*E zeb)q3N`T{yFNqPv-@O$_5f#8($f&G*bc%4(7q7r|7$s0X{B&fXeVMV=yTHlfB|kZA zKeaq)1v8Dv=BA6jhnvL?SDs3^?Tmuz2ZDx#re-WOArV%Png%r%z}lnOcn87fT7rLK6+^<#@HjEfp&BL4m82tuVj=@2P=|zWX?Yp)bd9^o&4wLH z3<>E5?jKt9Z@y9B zsW-TpxF13X>uazbhN=Gn37)LfXdmSD8~4#=2N1K^dK-LqZ=&{4H6*7czA7vFVoo2Cpvk$x%GXln5lC^EI$Fxv;5z@U9&d z6_tj89O>@e>Ls~b2wyvI{reJ~9V2kw(NY0Gf$KqMI^b_O*5F0=hQf1kkNIOzRxr$8 za)KV_TQmagGt{2ZLPk4;IC;Cn_5Nx{s5_yHk(q@>66G}zMNoSz!g`#NGHdrM1QRn<((_8Y8p=SKfP`07=%){G9{JRmIWJ>M1x zt@%(>Lto*I<$=RkB8Rdv$k0M5LLusPNLcBFgvV(kCIRbDW-Iwv=L%X6D-cV8#ZYC$ z_oF6cGl2U87JqUZ%_a=e`+u|B1l+^7C8rchpl2W%D~O9D1WMEcp9iKhD9qp%Nu_eM z+liBSQyva+v-OCLsth1be2<;LIsHZ^{S9avFeG1(Kl24Iib6a~NLU!10^qc^vuwEg ze>?4@9I)nHL`3*D8b4~NfNuQB4zt3iI#;#=Y`j~~Z4+=9RkWOpN}1L)M#smmmlB@Q zD<;0d0qfNb12aKoX=-`^&8NIA7m#mS{o%_u5D>m>gGF2age{?01ezM6=@f`Df&fH8 zuRE3R1t%B_<11rQANsnPqr_I$s(O|Oa>1lQZN%`bRw|T`LiknraMcs6cXt+~VDA!w z!T?zV4_fD8Yu{)L&EECUVF7$7#Pw@n2H=~1!U!sI3R-yfs1UyKD=`hpYw3+X2nC(}-a>uEW_kbJ&qcu=} z92oGt$Nxrxz0$A*Ut0F)k=|cJ+fzKWL&BP&dlLsPSnqC3qI->C*w(AERCC_q{4iy(HSmp0fS z>Y?BJH%9Di*gNh7xQ7h}7aqAi>P=_+giJLA_)?36rZ#J|3g|PnEJ`DvVobTF1zN!_;Q@LP0Sgh+^pf`llgAPoXiqV%S_LAp~q zR5qeglG5GMDXk!_AfYsflyo;6&a?6R-81g}`<}xX-(dK$W36|+?~`-R$F;9-H?ha{ zTvohUlKWiuqcyLYFp2Vr`wge)H7ia@r||yP$nW7T?AQiI3LZ%di;Lt=1ZJ<`Ie~Gp9VuU^+v@&UR3yAo-d|X| z${(?dq0Qekl#q~Ux{iMTIWqf_>Go~!PUshP5K0&SBact`9IY@Udu`Hv&`HxpzA1f| z_E%s0J_?aSLv;Q#ulZ>fm-drO#`57ABDdem5`t(`BYMT|q0NXhFs0+G@{5Y7B~Br@ zo))@u=Wa&;JH3^i9W@md#Dvc`wMXh>Ut1y=vB)kqeJrezR{beK?ah@u4O@rL<#>Ms z@@P;=&_CJy041S&qizCJ=n8g^*v7(~oFA-O!=~amih6ps0;g=%^O5S?wMq@OaLJIQ zB%_zjAgSgg^DBhPoASar5hHFQJ+~=;{ew>R@_UTH!q%#^)`WtNV;PjlwT{bfBCWcVY9CE3W1hM-IMT)je=E~4&#U@csb?BW+h2rjh?Q_Av!Kq;gQ7C${4Y_yz2r4!>IKC66SY0=DIqmvnup`U$l_(~*V zA!}~sTAzW5NoM8iAAhm|h!`TCPI~LY=k4e(av@}UT}dXwVuU#jZ5&u635=bRw_`mGD8e1tc{ zJu?;Z8%MME@w1rz(CKjLNon5VTBDtUE`{m{3)X^=&t@=C4f1I&BJkro5eT;LbSgM) z3H1CSv1w{rTC9_r3r~GhRdLz`aukG73P)jJU&wjDBBa>Qx+upcWItYtkmDSeq@QhZ zc&eP}gOi%ZD3l!fzh8CW)v)}imkH(n9_xWEtr7dty>}eYHYgC~HI*Jn`nz}JPXw@* zx!`jtlEt~;-Nn9og+{aAxVGq+gr!W-QTL?anp8Ng6c8l(AKv8#xWTq5sol937D2Mm z(unaW&!p%O)(W%DCS9`l!Dv#>nS2ntP?^o`&org{S}CP>7($NzHbvsoN^uCa7+)cM7}YDx zi-&XWbGxPg`?Ifg)$#)kRY<~ z|1FfoUphh{e(H+8tw`~sDtre-V=&UeqPBXq`N1lt{G z9kV5pSy|zZe%8QsTxeuC0)s}h;NSR8 z;~K0U>1l_7D+QArrg`~=g`}d^lMUm4`k@Xei-m;{!@T~pbJmScM{Z3n-QeCsJ&w5^ z*#=(IknfCX21B6jVD=<4}d%QcYQDWN_F5-@g$m?$w95} zuR6y#30Ifw)97pUSq;^$`$`MS2JOmp$YMa;Kf9{j}MwHTD$XI4JMIvm6I{m)$5ulYA|MWVdo2Yf}xjeh^nktOyNn(X6-+oY^o@_utP_7u5&V^E2YfwBnh@|>OU z$^NwOL6^SIW<)aWajMsJ@I%Wj7CoPX*#K%E-X1?lC}Mlx`GnKbA;}V%tMj_ZIA?Gf z5^kd)wfWfMiS{{#TA>ri6+{eAD-McK_;`J=VYi}RUKrh_f8yxsTII44sDJ#YP58uN z1rViW{R=waOiltWBSdEkAANFqkbJ5Maf!=DxC{$>W%Y7t*Crn<KA!(E0vE0PWI%EcFSYU}R74 zdBh7To{-L@mi7;dCj))IW6(FP@`RG@AOZMAeGbuL5Ogm+4!TbAzK8u#o;i|zI9_f& zT>5DBQ+id^;E+LU5E-G+{_g}nr=a->_%LRm>M(b4fUDJ|$)_36IA)&9Rq})?d06jx z(YsRNLsldRuITfryAoT3zWdF9&f1BeJf4FUwDDr1Ai(zfLdIzdyz+e+{X-?6R$N%O z-Ynh`>&gx)Nm~tJpC6aK8*+HOxlC>u73-w_$5KAp7;HS*8L=u7gck5d zTGwnGMCc_(ZMJnAtq|7Ddq8+iQnVpVbF# zCj->+^If~niy|aVEjs_&`5uizLDs4W+Ti>CtX@-?4Z$FM(4lQxEq3}bt)T(ag%o}B z5bEJ@x!>nwU;|$+WzH6e5t_0-bS`-?&bJf6ZP<5QJw56sKKaZU33aZ}mS^BkMK+36 zXt++MmiCT(VWZXU)vxJ7SOEQyvB}Bgo~d&Pg*q>x$xmxP`%@}&zd@yHQ+t87XXx95 zt!1-~i%lp_hHnN=6+8mrD-9aE)n%DMRpFcP0_uEkM zFnS;Vd&PM3%T1gISTf*eUKo?jRDp4`8F{-ppezr`?@DfVlE>b-tM69)WZmwF6^0+R zqH`NiK-UgQI+4mcj$v%$c}+7*hpuirRhw}%-+L;klTn4oKE8mvDCEa}VbN@Pdmtpq z&fHv*H@pEbeGr^N<$t2suz6=tUl`Ef5>)QSAm(*I_5eJ$nOB)zd5oDrl#n5I+&x{| z1YkIJ#C@Jo$t`Hj5XC`sX=^H86BL2@gY{DQG#D(k_-`45i#=Adyz^bBC;_iiyr z{DnSoryt^dc%~6Uxv(K2CI9w4%`^$%m! z)Ptb@jas%=c5DM&W~Jj>KJz@xgbmWib(FdD?EiW;u`y)w+!wQfbXliP;Rq zMPP(?6;kr&86%=0C~0nPE@i$I7(f<ue<5==WmRBRns$+jFhUX5xI)0>f}RJy9lDE+FDwruwjsP zXP)-$%#P<_7Dp@3oRdVbFr`z+vl`EWo342S=Tmn$89;}l#Y+((8Gs23Xu#gICTmUN z3`pXkpo@w-SfP<4A;eV8l71((rFFUs)p|MgIt45gJr2fxF;2%`n~pb#)mfF%8~ng= zF)QI^tb!KOmXG~Wn|T0{sq=kr#}yJp%2ba8xO^<8qt2WCi5m|DyU5ZNo5Gu%e>OQY zNCn-!Y^r}>MYW=)Mhhp*{zsj=fsn^`PRq%;l%XMiB4F%A2twTY9&n6ZGrC*e`dlNC zy;D<$s;U(aEQxuXdsmf6#C+9H6(@hTeyR#)?z(3c)Zxx-(ly2*q@qZIE~DiFkebhw z|BX$4Vnj^MGA<{;3PfmdE}owrea3ZAIKvh51BqvMkJGSprWIFS-rcS<+Q=JU>CqJG zTDW|sJYS-!FDb=Xu>s?hh$M_viKCZybbkNcn(wR3gud6;46`-QE8 z&Aq3Hn8mXN%IWTw+gjn@NzTd-wb&B#`(ofofSl0B?7lIMmoDtH%xYUv0ctM3QWGWv z8ACalk6p+vy>LEz@14fUWD`P<+sN*han>A$j)X?Ph|Bmw^|CV`FF~IcvM2+L66ogv zBcTlrns_=2@npxt93Q(HWX$J3j|u3-nyd+E#vo4Ep|m32y?Y69^K5hTl06_tx*9d* zZnrl7RqnGx^4;a?{~MEC@#@e^F%W&^B?JlU*(Zy9>3x>8G4vK?5Y1AY89x;3Sdn^? zUU^-%ruaiMzA2KFVvbgX{saDnmx$}42sR8_HHFBe8V+JXir#(X5SlJk#k_1d2&8rC z%S-2e{FzY-EI)Hk+e~wT#JNQ0U+`gyWd7|QEl7Etd#+@Zll2&C>=7#B9Vwzj-H5b|QMFa~*9_Pszn*R0~T zjz`~VvFlLf7E}aIdbG%f5>PQ!RrMzQ8{-*$=q0qGa>(rZ@Y0KgcbF|dReCd1$+X4! zx~LH^GDaw`hymG-n!EMQScUeRxxe9N+~>T!`%>ZC_tIO#Xdmt#c!kqiD2v0ji%6fH zuArIU9|ZKd#hV?*G1vWTDj>dqCe$X;Q8$er@-ylsXy$^+RnHoO8G7 z&hFWkLYXC^%ateof%|ICgcIg8ct+6Eb~rFQQ|wiy-5ZT>tJ5qqwHYp@OV37#l$2=O zVQ9e4cED8IxHY*i9`gDk0`c@V(T~tXwot)^Ke0R}&TeiRN4XAsX>#$m^LALfN=t%; zTnF}@>q|E3E>Eu!kut2?$fg+tx_oY?LLVk&SNs zvJbr>9t~=Fwm0S^PbCfouL-E3i##B*ta$ujF!LLV-$q-pKA2YO(8{~5cP7&V*PYdb zV8AEuxzOBiSuM*gu`1hf%Zaz$YkO_a*aIQ;Nrj~Rvpx(4iFPIk6li)_Q#p=)^ z3-81Y5En#}DPu`Wg_py9AQp`4=ncV9VJaDV!<9CpGOYE^qc&COeqpq-TpK_hl{kmD z=?-cdgcLl(>Ta`*cU)_oeWewvxW?%&XxJo4TsS}T{t!6IDCLFkKsRTOZ#yT#-u_7x zL+?YuMnO1st?e!0cK$ivG{Xc22q>;IJad^%sOt2?7UwO#U>SU6Qe4i1zox{MHz~`^ z8Ykubi4fmRC~yGN_-kw|!JfU^8cr)oW@c>1_-pMRMO>zhK5ib16p7jyv_ap>9iwlk zR@&0r`2|O<*L@ zfGwu>B__~1_Gu(agYJg=PRhy1VeAf1{C8fw0k@{7o6A2?MoYmKoQAK=Yql85n^z-7 zV~TGMm0wP6S$kYnUJj|5wl>C|JQIlTv<3plr>>kV3={ohQFm_+Q~|h@58q6n4${CS z9A+qc$C)=hAYDRv6tJ40*>uBx@D@93cg-xwuv`6N29Gd+d+v7T*l_`%vrmp1Pagr= zGUFivVGv1Fqr@ZmP+z6!V%#!ggn}^gZ@-2ja&^oY(XrDUY11l@t>>%IMBcq&8fZ@mNXciHgv;K*}uE}TmduB1O{sRfh0#x=wi-z2&Hd0XU*UV>QmXQ7VMckUay&b=U;xy2?48B^DP8dUoF zMai;u9J-v#3u@#lkjo&^UDJy5oP2l^&Z@AO=&-}|VKwgg4j zn2*ay^Op({UeSK+=N4nxXiQ=$E*Ux)CjDwG;fO7a-6(!{aU@a^;xlR+jsongp!1(& z9Lr`fdgJi1HbDK9^SFRWY0u5`Xrpwc;CKG}X!0P0=Ri5)J+3Ul^B8uc*F<+nF4GlV zACOCxtp1MdbfPCFy-c4kOyNXlxY_r``REVr=|Ie0xN9W)aP@5>oSZyM?;|nyU2^PMjk{-^^pJ zZvk_y`N#?Hy>S5UWI<43^h{X+lKTNrlUw^V9fB#YPM+*m1;?`SMbUj&15*qN{(8g! zRmhTg(J?QdAy6PxEg8d>grc!vMap$cp4`SIzjfhl=9uQpXY|G8`HRzZp~r>G+Jdv14b;x znF4XI@mKAKQG2aFZk+U8t)ADiCPavZT&6)F-AnJ!AiKx9%e_k!QH(j1eQ*vz=&Z_R zWn|R0b|q3-PAX=LZ_Z2ZU_2;bfPq3W=Q?r32ON6!<3386nA;{~oHXfK*0ElSijk4o zeGD@{d%Wg2eHu?8Sq)!MCqb+eocS7%!ItepC7&M8Lk^guFYmgl-xR4hU8mq(YVJsn zOu8CZY#1a}hRW8~caO2R+Z21iWohwaM%ii}>9t#yTt6N1NY8yXiaq%f;s?|>3_6u* zQ;kcRB(hclgLU5fKB}y$65bs$(xTTXHxF~^b)yjLl#0?~SHOGeVW^<56!RW;2Mf2F zMR!=?gDst5%^kzes&7SBFYUo#FEj|jZpIWY+JtsX0K1oMbpavSN{%Vgs5H@R78De~ zIwuqTiPp9SVb1>aP@%XV6EVNaAqlyhs;1Phc4d+2Fo>a-VXTl^F2>gArcoK{9D~ll zN1!kdEPcGF%%Y6c69*;o*i99W;Akw&#z1kIAD=&e7FB<5|s!#^%wi$;N z*K9yRVd1YqqDAVd3D31eZYxp=g7YFg%OEeg->Kff!A`ieyzGVE863>lymkePVeTyy zS}$pNb-FnzKe#sGu~ZOFTcF>l*JwMYNNp2Mij_& zJ!$%?XroLf_!~l*!!N`hJFL}zv)js0e3`9$$)xHRvJ$v0MXe(2@1rw6=z*`0Hhp(q zWS8FTgCcw+0!x$9%MD~*G1h9$bMl(#G3fLSGNEAR2cCgeFRKX&GUi4cq?AGnDuI!$ zcMLbR9#8A9c8E33EVatzv)&ybi2Zc5TFd81gm7$<temRsmvGaM+X*JN7XOv`9Uvo1tyj#7(}vRQpAg)ju?plPF!3X9)m#KSCi%@{2EY zrl2V-a=!b1LO9%~l#;xBsLLEGdXJbCo1T?}=R&k+K%K*5KD;G=~ib_W&Q z>R7(|R?x?RoRjNuI%*~tUVa9slT}@K?=f<`z5UH@lbcX#FQ!f;CU^&67>k75NuH^V zFqlQgJ$*N=u~GkY0lKYo-HA-7p*nZYTO9}yTS#jRr0){R5%MKv-NL!3mama&BWT%2 zuO7;os(z#GhV=6h3e1z6p}-XMGYn2xFM@l=YIV5rSB7CjV!h&aPkNj^=ey9I?1%huha;Px53BcGYg3M_eZNO}cP)4Qb%zF9nSJ zR*76F8d0$$M8r_#{2#bH%!umDsY7nyrC7bgj@U$k%HV&7?ZUfnJo`*^P}` zoW_3Pn$t9Ap>dsh<)#I?Od+a+D&!@3=ys!p>tMCz2l2zna1{R>rPtlFAyga+?12?nmJq2(tQrP$9*Gj^nEYk$r08Geh# z73vPk(~l=IUu|P&M9f zKJnV`jDP%@IKGz0%WDfIC|AlizBB*S@5sM?;L+)|^tL1>t4~PP=`ZzGX-_2D>IC^e zwQ2Sfv)ep@><@mJ!zfKQ6b3PGjEd~$moJTytR(IkW9p0-y0+>$zFPQEa4Va~tR<$Z zO;oou{aYQTllJd@vk}j))DthPd9F;P`Yn059@i4(H9y)VNXsLRpfsX*1lbJcmBr$f zGNsMZ^xx1Esg}s#(91NDZoE_rRgM9)!Mdk+&rZh+I!kAb(hqrIFWI%JbZ!+7nI(lJ z5{b4Ggc9GPN|#MaI(stxLFCjW)uzZ@#{6(y&VT3f{jHKPmw+n6QVGMT=FyZOm-s5f zPDaf4Y7j5@eq>%x#r4#&&PYcusE$~n{fY5igpPXDY^y$eC*$AzE58jM>Y79DinN;UaWR%$<@Oq@Bm1`s`InzJ zD9kk~gj>_wLTUOV{Ad6PjF3!de^aiqbIu`}=M$R~{r%TbyI&bH3W#5bUGwT}#VK2Q) z6TYaOwJ!ns{B9;6CX%ZWMRpY*F=acfr6)>FDHvCm@lbY$a@AelhB}^RTICr z@I)xzI8FZFW?Y%7;xS^5qhLqz*2Q<&r&a&{^8a-<&+yNT!c0iPx49&mM*^kw$RQaM z&seA*SZ9_t-&Ik4i~q4C%+)7|fT?6^-@NJ#p?s$S?wRj>e_c#*#l$C|s&`88%Uu4O z;Buy38g8Mqr&wusSMKoSe|;VG_dU@c>c=I^D=B~T!zoR6mGlKTi11fK38;dC%eywe zuH0aNzy;UyCgL*%OxHuO`R9c9PsJ{+^NiF7i{iGu!oK5oWOUa?RFz{%GJGY|$Lv6$ z)-~xpWy$YU$#oIyzr`8io7~Rm4tNrb6qv`6g*CiV_^4U+xis?t86MReEW)qN^?VCM zb9pXq^2MI>!!nCa-bDfY`q2aSavpN%PcXphc!vPd{^mYz6edePr|dtjT06#hL`=ue z>oxP%zGrtxvX-21HviO(k*AMpVUmn&Xl0!z`f#G?@;#oud$=;HZ2)cdg3gZzz@B%Q zCihz(0v8{osFW)i&g{eIAr)1}pUn5-x2{UP3Hv4d)I(oAO5oS(fEzFWCsrQkADR_8 z#&e#kbfkpOrHs6%KLL$TIr(tlEkn{i(2wwFR%@0Dfli4{g>O#&_0Hu>Es~S*bG6-{bP6HUfG%#!(hdfwmAwCz zA+6WEruE}?;Ac&&_ty+b#uMMVkEcU?Yeg;n!mzVRkK>tTW&6&XC&!fg$Z5a*a7a=j zTKDHgEmG!FYuOaB#=ic;&WQ)YD;C~#@wVv~JYT0jF>zwSe_l_q;`w|GT?{7>ekP`J zv~-k4Ih^fv1^SY`?LLgf)qLI$piU0=p65}|G+Vu%x~iV$T@+k~DfD0-l{ibR>Rhe; z-yi9GQhsK~{c(MczBR6%qowzWFVhU{n_K@?(ER=9FKjftkaX-UC{x zb*Ru)!oArH;b~;=MTWwCYdI?TH$l}&iS=%P|2SvJ=)VJbTcu;lLW68!nEaMdTm*q^ zUrGxWY0GN@h>qOn@=26hJ-=dd4v1JEi79rO`tk~Scx~@j>g@2%RkCZYG8u7sczq;Z zVA|1-TnPTRIa&%~UmDkXW~}6nxzw6%$@kYsHFM>VS)e19^X zvh5D5OMBKQ7EAHBoKARE-`)>9r@pdje##P9_1^`vYHRxSkKW|p)k!*Bv+*=pn@e6S zvG18nZaA)$H}(DflwbN&m2qpSo3ThRfrf?rZA{p$kU^sAHkVHUc?CIT4~@^SoyvNp zX**o}%EsO8M0fA^M0cpj7-QX6&DX5Lxm=8XogG$2rNYG)OKV1fihJB|W{$Ig8{K z6CJnb=xIT6mUl3?tQY17Wb%(tHLyx!N~v33GdRa zdRD&Ve=H|w&q+Nq~2?@BZ1kEc1)9zM+NJ~l0}AH-W7na$IAHW36)2Zzt@ zRM>QcbH!;?X!7#L)_u{L4bLQhrv4sT&k=bYPe@uCbBCzfu^}?!<{+Y8=~z;ZVn4}7GzTO<1FGs_3&&398}NfuSz4t89@iKiyY^sTLz`Y&$ef`d*(!nkk=n z>$d1q1Q<~Y5=QiP!zUB*Yv-O~?eW!ZA<6&S8#l~aUg2tpFrw^FtgFanO7=yA?{z1y zB)vHI^%Zu)b-e%Qh1axmXYxbvsS{sF@cmk@uvwLBM=hFv+ZD|=`aXesQ^fgi@k~Bx zWuG%XZw$z!AVjW~R9pRAcSvnzm~#lhb_tA0D<7~dQJ@Us9b8U~;bKG)S?UCDkBn7p zOf}z|1Y55hqBg{u6U-9!t^LDjZ5vG4=A#}p`@+br;@@7A3`rRi^Bg75M@5^56k@2c*l)8bv`h` zwNNOt{MpG=RO2NoZrU+F_g!AnFRrIs-+uJfwTL1J624&Sj|c>j=n%#Adk>@dW+TNG zY&9z^XJ79$_H0(m1!T0U7732xxXcBW&o;n2*QskKr9ZX9+eGwAIP)O1hW{9eS1k13 ztem?k6;c`rpcHq7y{=Oq#;$o6f=GWC?9-zQ)Sact$a}rF|GPtYO9^rfG!fF%Q<EPHBH%X?r1Qd94^@* z+kY@u+pQ(_YP`E+hE&w!O}bAs(uF)vb6wOxI*z~MZV+~31Hw^8D(_s(;Kj=Yg71w= z!Xj&JZO7I>5&h|8Vtx1vw|QzE03WIKs<+jshgeacY`(m0<)1QV-WBa}SSfhA%W?IV z)ZnduM(wI%-&#%XrN%CnT9rl^4Z4PRAK$Y4x9e8j!J5u+BkOZ=3ad`W|9Nd%bLrid zNX751_@VRM=Q>OCGsX_-o_r)+mj8gbmTb!2!V%QPAo3iU=&r1Oe z2k4ubmOapP^r$JY+I(92;lAR(lFn@u`K>TYi=Npoz7Ji`53U1$Oe+_?&7_a6s+t%< z!?Ma&zmyefcY$q(**!EUqK#hL_*&a%NiYU>wQlL72l)UOccL@w-sij&*VxZXl|~J; zN!0e$|K|>nf9^^<|4>_ue<7jk{&QAVmVr*+&XRwj^CL_0i*rLV7o;=fmC_gf$F6*6 z|Eve5#YP6gHR*ba4jKz--UKnF1ZKDp774!P~LrfLn(}=oW&L@~&#kZwNvh)M);#dhc5-La=(9=t%hU-PsM|Df|7B=Sy2?=Kxn9F1H{5 zWws){Z}BO^5~FxrZS;~$9h#>Bp{oIiE`~R+n_-N>@!#~&6}Xh5(8>=3(%qZ;k^uVE zhItQqZJ59S;V&MJ%F8RvQ@(S-Zg%H!?c@kx!s4S;ufu4WcWKb<30)o8nZrEyom9~` zN~hR&(Y298FNtEVxTv;^GAcEUn8}ff5{rJHyug;bd9)ONI++Z)*ei{{F|{XxB?DChXHV6)-qUgkLkN3lHcuuRldKW*`Sy!-9oEPph(j7#ZR=sZ_ldUr3gv?Wkpx5Cn7 za|hm*(AlyBd&m8;Q_V3WvFFV+Q?sv9MZ#b7K%y<=Ubh)0kNL_Ui8)EPz5eboe z_nzZG`B`2SHU|l{5CzrHw8bZ6xKrKdwM{0qOwXlAWhV+8x?#m%#rMZfqlqmcz&ka- z98QI0@sVW3NPCOletgTy(X&}u5I)p`Ptxo*pYpz=}fAigO*zWVoodZvgXm42m)aIT!Z3z{jIb)mk23^U7z*q2rNiI9%NAtw z=`?2^P$m7uOFCB6`eb=n0Jurlgew|*QrEZj7gx674JE_8@ZH^v<@3Mdv> zi_fEfnggEbvbvG04eM|Z?^VK~OjTec4ZOwL`fNjiaeI8tOZe!-W|h2WtP5WERU#y) z3>#w;jamDZ$soxenJ*H2PY0D8#c7k5g!j`0r89)PCR|oL%1ZOn0DPku33QauHhs^P z3T&Sf1^LiSziHVaLHs1XkK(oZLA&)rt8y4h%q%bFh#SO(jhA)K>5wlB^Luz%?batc z_q~;6Xsn<93+LKwGPTylzs#d!Jq*9o+>8hPFUY!mJ-)5Kn1gDS%)(PT#{usl@*-H* z?gkAPH3I61oYq&GyRHA~Ws+jSs3R9XCV7`04Pv}i^{Ak|^>2K`igPw~(yD3A0fTrZ zTt^@djJcHeakK;Wr`qB5<;?3esrNT}^o?FOKCJe0zmNr3$DMductb^K$jy-xIh#HR*r8_8snhHA?+aA}gJ9 zH$V`wNz7eaLpkWa9CPde)zw>M7QXaJND>;Kg6 ze=QjV!d+cS=?_e>2afR4jz>Mq2dh#Eu7f+fA_H@Tqw`Ofotk#}9I72lB_heR>+~TyG`Jr@pq$0!F zRxo3q@m& z$G`i38U6G7F|Sorf!1sbLOg)^B@Jz3@Z|MRbDSzzJuIt9YE*oS#o)+XiOM2EKU>gTv448xog4kxI*h(VOi#;ws6WzT=6C(uQ*NyINn^ACf$M){~ zFa@6-uI z5^&0Lda`z^2je}R=H<|xFzpe5B1s?_)3Dje^y|n$ElGvvD14%EGVwUNKErnI;8fYY zbLBe2_+J|hy3w)Tm*aWFAm`Kmo_2J(kX#j4rnKxN0eh_CL28Iu>-eZa+piI2+mP*g zax(TK|7imcxMqXHb&qk0H@6)5nwXFlV0qT42o>{{n zX$+_vBn}Qc7?R6}t$|X@6K^B>`jo}CYIMr}X3;XtS%C?uz%(PPkVB;S~{U2p3R-~@R9S`Db3s>`#UF!FTp~SWJaSw-kr6^rY+WE6` zty_-g2dP{C9<_I5R21xxOs|gssDU}~uqd8?Qv*;$z$&-1v8jjE0kkuqtB-evPa1D$j164BsTmmcnWKq4bX1xgy^yC0W(lvYdv&aVumid9K4MR&i zR03}6Ff9yls5-#$Co@ZM03B}Nj|h@n21T8zf~twWR?t{-1T-S3F+wy^;3``GG?ZH(iTyXsN6xvvkP|7-!z!N zYDG-4S%VxY*j#E*<6KZ91Wojo=?$}FZ?#64=n-weHZ(9mi;4jXJg{Vm2?BsfFfcMg zP7nYrEhtG>NRP*wB@ItZ=&7l>0QCr-j+%v{&7e z2oi395`x7GmtnE6wsx-85lUY3Uh_;IT*3@>yqBG@dC=oKVOs^H2P@!GJRGz4BTCE4 z!c5LJOMLzd&|)htM7s%1V+o7j&uCET ze`XdlUAtCC?0X1OTR+M-e*Ee>^?McDnvN4*%{r{Nn8RBQtL>n|yo;DlZ`1uLGge_%hYqa$9Z~u{^L|*I$>jZ9-yX@O2p9P$5Yt!L||OIN(K1&^Yn4C{5ITly3|GAU@XH+Y$_sA81niGBTRC}wee^irsyZCxV5cCJ2xh*!T*x z8A~u0qHnbA>Yu{|U#%W^)k(K&Lwdar4E(FDsUZ==^%uoF#0xK95Z$35IGuagI9y^B zFt~&U;;+vyO*7ER*JU!Yd~(?Ou)*QaTZYBEcGlJ~y{H3VZe}Z*^NFrW8%}igYAo-z zGYL`Q)=oXeAG*V>yEn7q?|9oW_8J^WJtSE5x$U;DNP{9LTmN?SsWQRt?~j^>!3HMO zdrA`*J0trw)@JWVcP~s5h08Kwy{^??JvthP(c+G9*Vz1i@IK+2X;5lETRGl z$WV}oh0VIs<93!ZcWr+D{9@wvZ1B4@b2~7U{>_FqnSVep6O`yGREB^4R0XP$mezgL z4?^MPg@xV=sV*Ognr0on*Zrt5vz|cB_`4}gEa@*KBqX$o|8>#t3s4rSMibdGP^H;} zOHn48zQ16^TPxZm%$kn-!K8B3o4l{0Hogm<(?_DE!($by+1>@41FX0-w8LchR3zcL zIH|`*j#`!qnjwhD*F*i3A59WrT_WZ%Sk=HK}`IZyq1f4>aZoUhH3-|}9+ zSMc(?=5>Mfcn4pv|9r(ozsI3%>DX-PpveYhMlcZ;OK21k7!D9Tw6d|GZ1dA$QMa)v zi2eh=*=_=3CVCcV%mpvUlkQky5VRm6p$Wt;7&FK6>G!L>#?zJNembeXh`g>@X}*(- zF15P8(bbZta%Ml%G;)|`Yb~um9kuj?kjrJfr_|%7TJ>3oR+z`5ABWzDJ8S??O+VL@ z=R0efPRqkq{zT!&yV=pkwbo3%df0?QeYMl^t)AnYJry6iOF8z3)~D=GyOmDG3ga?i zhuklL>i@uj*C5`*;ObkJE%~PR$_MN4t^OU;yEm_R)aR;4u7Jmb(P@~o2?L!Upm-ND zB0#O61||=Jv>khO341CXcuE-9umJK#C?fDOFGURC9iZp1xUy3JH!bkk=M??~+}vBf7nn?*{^6vL4~#I|O;EB7GpSBX`!fm< z+Zzq*{?5U0RuZEEzdhnoO8X)?X_eHI4&GiC89e>0MGQA*y(DSD9Qw4uz=kjw4% zr_8Ih#qHjw1m?$T(Xr6ZD?@5(%k_)hnpp~T1!y{q=RVBMY)X)%>sMUAu(U@E3 z!l8kPrUB1)jd2T)2KAn9LHAY-jA86MWavqdS)t>UsMRA8eR}A^C*Y*>GaHx2dNpq3 zx-cL=A~*da2be>!Cpk`w|Fd+kguey{vpx4x1E>x^_#S+Sw`(}~rEM47@(g_R5x9&( zd9t4sz;3Io)brl?nVsO+86hteJJtj6ZHx#Y2m$Chv|KM`wi~b6fljCb31)28!wI)( z00s+kaXG_yYUqigZeiRz;6Q=VtDzVP+)s&gyTMO@&IU=8eIR3k$Ra$(Y50VjTSgEl z?&_b+>i^2uyeriQd{G!y`o7R1!`EzhIq>@M(9vDd)6Nx9i1CieSn+0|Ca2*N-pH8}LpI ztjVZXE>pREb?v1daDz7`73hZ$R7vreaeeC9`;zTZId0*lw!hCq^VHbh)jC5L=PG#W zy+hxD#I2OPR%6fMA73QWo?t8cT$X4_OTBB+$V@J!{S_AzS&}o}y9blDzJSQG<%Bip zB#d;k3=4G4Izlw%;_Uo4tTaC#sZGR)f=;iH!{I_Ua8xJdczgAtXF(Tudv|wnP%~&;*Q-FVfs@6?IMS&C@$`WqP_%462DPgC%CdNekGKD|F%CuM_TNTiqT` z;E`|_=*zzEK=X7qZPcIWg58OJe3^9PzKhIo^q)Vqc0F%srAo`B-{M=~T~+4a=wsm5 zJKX%?&gZ z^8yGWMf4|vT!1ZC2LT1|`-PkNW5lbIl!TO9N%qgzUktzX>VU`bRg@loz>StvILS@% zZJT(3F7kP;SYBRhb3Hx2DeIArSH@2P{L3`f5HC%iVeVd>9~d962Yn9EPh`e>5&N!f z8m7aRj;IEJ7-egGXw8xBq>cM>uV6W23LJaR!VaCVmUkf@OE#To&EmkKSJo)4Y+d zeg_@a@Q~h|r ztwLVsjP~tOfbC`ay6H8G-xTPxCbiNSRYzU z;uTNeo>etsPR4Aj+NL*7{D9KEd{wp~$42cd70&3bJG-xoz2$UZ@vfS*lCFIa^_>1v zCEBJ>x$1LwsNRVp@n4||P%;=54h$;u%xnE${C)Ia;p4JQ`5p2?JSG-8hWZY};h(dP zS9nX;@?f;w^v0)g+uHF}dtMY#uQ?ZKU~otXteFC1q(y+zZK8G`4a}9Z*<5*Wvs0CP zpxtn|Y%oHW5QZDW;3K*0{tQ`KV$7^$h)H&A&#H?lZtnFHBO_WLy0}-Vpnn9(F5As- z3!m6J9OJRd78F!}LYxRfbz6)%4*ZEi$wgo&Yim92?G?f^*zF9@&_D0gqb(G0rW~t5 zqr~aqo!`1JBfwiIIf^UC2@~u0EbVAnATbROk&R9c{JG+5w`1V}9idAT94sSD_=s>c zI#B=Nm-`3Rrdn~_W2C)RGdN9+GSoN%xup&){=eJ^o{V{SR z(7hbLuC9~Xs0X~Zj1ZH{Ir;hEEALH$II{kJ(~WMyJsor>C@X^ik*_cX0mDO=+HqJE zm=C%@g^{NK^2oBw5u`tmw^rIfdU4?PwaFjPp9o@&PMa!q9fuY`njaobp8AZ;Af>{Q zF82>d1{*3tGY;4w80{QjGz05ics{{NTtdPZg0~E7eQoVWyu3M#xmA30XGI7#AQ_2) zpev-}rx^lhAb}`>G&m+U2NqR=>q%^nSL^QSXzgfBRw)<3?`)Dq62@wlCl)c1%(=JCVp57kwd(=Sf zW?f3kv=&O5vPLX5lU1S1=Tn51zux64akHaS@3g%nq4~J=myPpdTlUqUzynbj4D7Xk zHk&E)K{^v8CzY&jgDGtTLe}WW$k2_Vf&w}e2>pUKIjAUA!G@}I1?{vUd3HqwV}&t0 zBmXUwkk5J1_Vtuq_qDC)E>|j7-uWBNZEbDi-kTZpQPP;<0pNi#f|lwSQ=_C59uuRX zrp9Ao|evK8_vKd00 z64k>XL{@t;GuL{s=UO29d=M*{kXZD1ZvX9*ryq@()XnIAQsjCc=+_=`QqC+aSgfhR zOi$3HkdO#iX@McRpfYCw0^#-b^$|XSJ@cb@D2ft|Z<`Kh9WbBNJ9q9-P%O;O!sWaL z<`d{6%GY%X4b`!3Y;3^4D>axwLkj2{sYRgB7~MRTAmn}ct3aE1iCW0(Q$s^iArkM( zm7sU;U}6Ml(=stK8lYL-7+&8XkgvN*LKazh;Ckc4VMCZwo*w<{_>H^ozLi#UE}r}< z6aB=_!nT9`F37X78#le(U7Mu7b*t8Pyk=@jiYlHcZEy(&)$uPp$UobT2xLKVu|j$; zhypvdUf?RP~?r?KQo%{l6 zH_(%X>DC|gec)y@)jk$zi*IdhxeMsQcxM>6!bsvgy8sH0YA~!8GnG%LTGVc#&TZpP zat|Q^foU=pXi@=6!G;{BB|rla&T8)eYU$jgp-kgA{_feWq&QPeLTQo1=m<3`A+@zq zZi_@ylWR=mRx>G$&9!WlBPNEVTuPJ0c45cKWxC)XXD4cA*_M@L7!fgHT=qLn@BcIN zzVAHG@A*C7-}C!?J<8EiJ3l*(`ko2n0i0`)?qehtdY0ZioJG>l+cofI2d`i5GFW-u z%%_4|?2~M!ws6QdF8cM`3fF(1IL`^+c6UrZj_Kj$&8;m}_pEoV=Z?{3vQ(E4;G>~X zp_EgZy?Ch}-Bdh6?})Wg#12B7k)IFPeI0IOH&J?st? zTuIg~2g6JlV#BqjbN$Tek6o1<4mroEah#h4?`1GDX}bU;hkXy0VPU)sSUIT1Cg1lS zP0s$%-_P^7kI0qRJv{UxAjot6lwI3{N9W6I%{}t!_KGeP&7D3|bl<+=M#Hi+)fC5T zjpb=Pllc~q+b>Xh5ufNAcs+Q#*rC@uL zm6w~Q6u$7^{MkH+ZhAH}^rZ|GUjN@nY1A8SRh>b=%k%l?e0}5Q;quWt(dRVy!ZvWb zOzYkbcSn`6Wm5)y5z>vao7(NOvkv(`F{XOYv*nZQ%Tmv|z=$ZCU$sMlf97HxGKrMV z;jlod1@#>Y-An%0-Z|88P6h`D!+GhK{Mp$IxKmI}Ol-i{f^m!d9YE;rJP-YA!d>#| zY3Fqtz8ZT`QZicmCsg(1(OPhUfaQ3B>pj<+3m=^+WZT&Jyt(mQcOED_m6JtVRogXS z+79A;*1?*|bcm`LLI`}=p9RpO-7l?p-Wf3@v5-hdpL~uq)hjj_9qn4vRm!NB%H5iS z)H+*2w{s$jqe{~I?|F`j9dsUiSTHbx0#wm9!F9( zZBiiWQ&S(+a?{iQKrbJ5U5_dv91Sz^J)L!jrd-Zk=;4Wnl9yE8?CCih9$56svS0J! z9*}M$frrdm^h)WUM9;3RS_M8d#>4xubEuA-c^@(26aLR-2=nU8m%|$4ID=98Cd4#b zIxyfxqjiczA4W%e#Nq*t@o6R#OA{C$)%5Vghq;}hregbjP)r-%(4V6g*A#M;Ro9pStxAt3& zi)Ch3q$6$lI~BUA{{vU@R!d9C+jr~K5m^vn;ScT3Lkp{@uyj+76W*stC=|?pZ2GcR z1-FIwJ{4p8oQqX>#;I#!f_2lS$-Mo9MOU5fjD|8-iaeIK{VqcmOHz3%lB*>pks=~S z1%lm|zGDLjS$#S%Hg*Ah_Q*!G_Q@tEHyiBBQywxWKKZ>0sa%{G?|1DJh)-CG4o01_ z(7yUonr!Lu_2@l}w~z^XY+TJ;m1^8^yTLzaTyRMFqX4?5H6Mq-dTUIK+q|`t-B@#j ztSl$ebDNLP>`oz^ir<9DXJ&$g!`=Q5%%j^FL5`3T6;^SMU!QbRS5_mtx%I{x?Gx??B!z{ru&9Etg00tG2_1#p zdd>X6&tsZeYxJMZw8~U-2Pyju{VI)BF*I+|s|brG7aMf@Jib=EdD_w&De{hrv1N02 zZzW+2m$yROyu5QwdSIlC%T zQ&av)48(WLp!F3r1VZ;Ep4h(qT?ArA^=3oBH3Z4E_qcHRSBI`5F7n#Hzs}r4{r|r# zwt4j-{~h0Ro5q@(dwW}3vpoeR;Gp$UFftN<0so4-z#p%Kg)7QXu2cN)?e=%clD6O6 z&>eoYDk`qaT1w)X5C2czfz0 zt^5IR;hUCHbXK$x-X($svKnVaVMV;JsZU^i!WMkOrXJRP@Y}p_=~}Ns5uP~bm20mU zCPn)EyK8%*fYd*oamE%FjCcIo+S?<-!&B4Jd_`W#SFC+a{r1h;=<4`0JNv_cB{w%$ zKAx+WrK=3n35$b`O_D0y(TNr*LWjpfi1qN{!xRO&h}HqVwvV^rqPEBPwk6)sJP-d! z?PByfqUHD^A}TCCOe~w|1ARoRc;&6cRo;3<@jD;SC>J6e;>zjp0*+jr*xkKX-w7cR z%Q)_*2P7O8>J}CjR#sN>6{u(JBO`B_dlB$y&QTV1nM~Bh6Xy+wV%~O58o@X3% zXt-=cZ_Z$X^0nKDS+Ab$(Q#6?GL6}Q3cD~l3c|i>r9Ts1=3`;m8MkiWw_EsK^t#2R zS`0zq4c9vA;Ul*Vor&x%(!B z{NwB|zm}GkT+f6W9X2A%w#Y{if+Uwpb#z`{Ua*9B?%pNicZrOQRDm_>e|(+aJ2eaa zE)5qqx9^7!bNeDf6;e`CtsNcltj1kw5}^e;H5qa=>HRA%E-spv--iYVvt!T&$4{Cf zrRp(!y{JCnNTKJVu(RL$m|R&Glo>>HLibIUDlD+k&R>N-?Bk=VQa!TV6eb+;4|RBW z6m*ZN()D%Flv5NszHk`I{2t1u&?+^zAtuMYj;NjprpQL z>;X0hM5wWW!PORME^>2g#zZ;$`BUVKIQ(ncuin9IyhsJAA3eQmlYy_PElfUzqe#)> zQbe~?VYBnybr%sl7+VN~sP+qR6-Ke6_U5xa}Id zx|o=mnFRz$DfZyP<+O!`B_xcy;<+Kmg@uJ392`(nQ)_CwLxQfZu0FDbyEW?g@*bDR z>FNM};=RqOk}v7A{j-2QO3HPXmELI0gXSd zS!^ezk=;+%FjWUrWDY;R@r;O)*W~}4h_hq+RlG*Y{cU76MfmTYDA74t#+Y-n;Kge* z)Z2q138#V`k(Qd;sQ=XO*N@gDa-_NW+IWSv(+lNH*_fT9?bi?9+r4?y-qu!{ zwE#sZf>wU0xAzep-4`AQv$t=#MNC!)vLT9!N=k?Y+?-WZRE*gx4Hb&Yua3WxpUgEg zqobo$=$}hVuSz~#v3K$C5b*nDYhyEGR|QW?RaN!gy?YQG-e}nRC8J~cV`@rDO1ipM zux*{UUcw{0U_C$CPwQVvIHC|#i#@otu&@Bd;OtkI0She2>dFfG`>jQB#eu6N^X!>x zHO1rtx0LtMAz@sn6%lgV|3_OCgW&mI{}9jLWqTfB+ys_9HTo!)7+Ey$6m9>~N9M%D z{_3d@d|!QkIzU0S=)3ZPkC!GcEG$7si+OIj#1OBIfo{Xl;P{RKQyEkjZCCr0Boc78&XAJ00!@rGd1?b+FhR%JL=YC1XkZYd%rM#IwbaY!W8&V$24kl!$TMQScOe*XM9?Qz=q{d;nK{l(r&e?dV3GKE2{;G-zzdm)>J z-?!aLvb*|9lceS4yE{8AmwQrlb#>vwoYy}MIlzvsIKH!i@hcC27(CURn zxkhHD-0@G(%j3HWE;{P-*0Gz+nk-swNDQOO%3GrSH*VrsxDqf$uPrTc+RO;~^vpE{3SOSQfp_7sT?*R7 zY1I=TTwb`joek@Gl8};y$Ol2;dXcAI1W*0x>t_4f9f*J$r%e|)$J@8mG&ECnt^`iS z34Cu^o?ac>L-|@uQ=|{Bj`%NMmS<+3K>f|2W}jPGIbKSFm0AK+ zl301;?r>;DsUxzMfXV+9?Y77RoF(`ae}8`+{+Q0DCRAF=TCTXjz(B`+LL#CUDk?KA z?Ck8(%zA)4gZ%v!(e5!YFsP}i(bCdxtQxb#(9qDJqM{BB4Z$-Xs3w(V#E0Y%L6x0( zxObg4u!&NtI5jo(P5(<)s1Ht?Q%$++SVU}D^JNL#Z!$76j3Ai2Z{8ZJCXMf$n4E;? zd@`hE9ZbSI)YwP`C*tR?OHLMAi?K!#?pd+d)0>8p(G|xTDwj!1b#?H)-AQ-td)dRf z@j0HwFkmO>6ZuC7FDLi4#KX^s$6o+O-oO7fBcuGqciX=QX}z5Db8~Z6i8#}2(Zh9} z%D*OV5X^^It**SV&skV7P*(1T1+H-Or;-Y%8kF*$cH8ZQCo^gF)Qj9E;jx~b-D>E! zkXNc@WoN57E=7eo8D33B>>ow(QZaLK5+0oVHn8(g4@)+%Lsgund)0H_;U_JNwA{*l zq+z7!$)@b)DLT5``Dw*CeXt2GQhDcNy2ZdwLp;ks%Y*wXf{*cS6P&fZa7A+Ul=n)G zoDO{$=Q>E{v>zy{yf<6zJxMYVxs7q0G}noKdC?m4G$@v9VY&hTzS!~{|C}?{b{66h zUFjkxOATJHrq?1y*rx{=;Nc^{OaLUWdEX&+UhDi z@HS^=mpN`&CGH)uWT5Z}FN=kR`-7|do@`=?1*V%CI=;-LkNTun0_WMLcasXE# z>y?$2K_can2_<~0|97H_WW~Cus7RyICIzB+XT=K@6N*D=fr2|=(WBUxExA8q3ZXbY zjKNL1rHHo=yN#6JWdIT$v`V9+Ro-fyj{Ynd;z6*Cq6y`snA%Bn24akAI{ zY%_S#C0!$TI=he_ElKa(~pz=W+j?EP);Z00C7 z7cBds{uFGR!Z*c$+=^M2?4)>`t1u^f864y&-(e2#A|YRO4+?++l~)! z1^Hjgar5HnR1R`XS?F5sAW_lq`(j^e(bsQ77m;So{D~kIi;jIZxs8WyGSI~{<2nWW z_hjD6_=5;E&QN>w8@qmz!5FfwXu>JGMi2DB8k6~q-o5^-KuVh}m zdet^%wwG|W;)YVNaE%{+7T@U{{NG~QZP*A*Y((jDtju1~G*VmrDd&QK2vSUftc&--;nW1K zuBhZAk&rjf1a_R*UkxozejF(itj0@`qVOX~UXGk%t$jP!@iBNh^=s0x>zCxV(@cT$ zol>H252w-x$sQ9Lw+MHx)&7WK`xT-beSdqgxjzO;;UmsCT4(lwL_&$^bn|dy^lx}u zq;ic&BEH4+*w%0V=2pM6p``w!e%=a!nFk`~za9>*6KfC)+}7FFs>(bMzyAI^gp*;n z#Q=;M~~9d)KXPsGhL^{k4wwl6-_0#+rh*P zl)(yiVI^eot<;tGqljv!R*LaDskqF`$!Y7|7JUDNfx#T|4b;-BYEJ55Vq}!jOJqb6 z8`_ed_AR>o^oyW7QS`wkO2djS#^Sx^?$C>?j+Z`(d~M1koYxmOHO!<-5>>=xPe^*S z^XSxJ?x$xa!HXe^aG`cuhRA)V^u@=6LqpPE`{3a-RA7+_XzS@UR9322`F0w4Lehmo zUk~8phxg6xktgf<6;seFYRk%YT%4cA;TT#~x7WL$0yPm!!ujNh4TKqNwg;?69bpe8 zh6;3CXTHDx^5qLO6mm%dI)>*Ev=@ido}m))9IPH^&d;9xf@&o5wU6T22fB()s20=p z?y#F|AqlFe3_w~BI=!VuY7Y%;!nW=8o*ekBXMQ-oetyJ+gfkk(xoY30svXSx$>`Wo zQBdOfT^%9o(;s4EVcFZ-qTjj&wMGy)8(MZUUtixkXhEGn5`;uUihh8TX-aG(L7jmW z(CrQ7j({LKD~m3^I4?hce{WBn@iT9tL@1ltZl&!!&GXoSTs7tic6*>U zN{qXko0|n(_K*ZN4h}lC&QHC6^kgMKj}rheR8kV?EIhHNgjhtufByWTiIRQ|lvP?9 zyXDfmYd0p00he?&C~GI=P#eE2nE@Ao_V%^} zT8r`S`x~qSXDCAl75Fq{rm<+lA0))ZMMCN@1^ANwn}|KNSU2fRf;BJW1^}=K1l$23rIrc zMMa~4`@{)k%WnCw-ErT}_&IvA(x3i-@`zK3oA-Nrm`gbcwNdVJ8$+JZVM(IZp3H;R(lwk&jhEA^u&?(0Kc zT~>g~?$XKujllHiQ4FW`R0s+0)<;J8D2);$4R!U#=4J>XtBFe6(PG1VcWIK%a5O|{ z9iQ7#AKl)Bv#{@ICFEbftPshXCNUe zy0ExtIbM!!{4+g0-Q)ZuJO1Oy9l6@6j(G1+cKO#Y2c+v0}i=u@VMlD`)a>b3cud zg(V3dd%M#26@D>!|sbj7pue+NYRCItjq=RXE#NQ{sP)YTfltMS4 zr>D2S=0=0>S;FYC@#N{ZLkd z{urKKfnLMZ+u**b-Tphtw@E{XSHo*VXdd{BE+Sus9^zx&)0=*BI2laLSrG3*7c*Zn z^UMcV#Nm(In9ex9qpJJF3gH}+E` zuM*!DNIm%!Yg^bUlx3t&4@BZ))is=(z@r$F19W}D!tygzDjZL0fdzGNxJ#PSjEZi|L)I}uP7@^0ESms_{U8$w?gR3;ir!-lcBiuH#IE+*XSHwSoq}i>-mgxkH^qj zGijEZOjbKUkMz1o9d?uDz;sYt9C7`C`{q;~Ff|9OgXVLM{%vZDcE`{qUWpd=D}8Ij z-)d@V=4X|TZW@8aK@8eSiBYf+xyfrL*B3AFb%(DB4yMWwA=V)=1I5hmyhZN!ivp=X zRr?m&4n6n%D4t!1D4B998k*|L%Ju06vTyU3Pzk@p#W4^>Dax_)!MfEPD*f8MF|MwX zv2y(hP=Tk=V8n(fL*dKI%^ioVUuxP9pb}VG=*Kd&E5sKm08bunPH)c5^;sy!Fx?{~ zONxtg-CI_Sku87u~=m; zJp0V77jk*s(Po9fiyRN52`&5L|U}b zi@E$v&ycp|4Nu0WfB!W7%B304t~m*=E2<~@TKJP|BFx#!T}X)GhHO%o_*sSLwy8u) zeOz2w8%edSscE*O6Sq=ZTSsYeF%8m-9M+(@?{!Sv{^xco_Oh}l)kPkktm0Z(iUNj? zPP}1Ne1puVbYW=;)H=OeGs2WoY5PSi)_78FxoZZ`UmO>g7qv=SlOkj-&K)cqbOx zueP?;cIJl0C0PvLpF>0CD|XL1=?K;s=;%JR8c<1<=Uqb9rsq}Ka_+r(iMCE%jL6^PXpPz3(DIwu? zG;z6o9kC7pfQ2?c^TV5)n;Rb=KlepGh%s}(_W~0&d=LU5uFP$^1zVH>1fvDlIE>u(LBWG5Hu2 zG?1DA+A{FtK&OKA;bd!@(raSRa}EUUSlL}CO5imOjg3!FPH+gH%)l*Tp}qd$g$kqv ztz7(f9m@n~`Q4!xRqMYgc+FYF%2PVtIT-2nl* zGmcZ99CxNC#QX_6dz0VYz@}Sd0s{qQ-T94;ji{LTGi#V2_yL}U!=`L+P*GFU%*g0- zTwLy4netm|8TaPLLbq>smpfYsx_^IaxHuu}!}Y*$VP|GJxjMka=Zv@SPUwa!hwE^{ ziQ}*4e%lz#pVkFtxi%4L3{CFbp6k&e5C6z{ST+ZJP1<-R-aVb){OV1P@7-Wt>y<2i zhVz3N?GZtp(K0SfidQ=+4^3usw#t?U)~LV(K+k-0eu~dQsUH?<5KAq8pU21`{TA75 zLj2h$@w70i=Zsc)`2{(*0mQD}BKvdB#ZXrsK0VyW)=>IFU5_D}VVNo=nJz|Uf;{TQ z3l*ErDttcO=kBC~>3%johrfgN*c>#!3RqsBo!cJhn3a!H-A2jh7Ip3GsSQd-o2~K< z$-niJ$mDQOSh1;Jr%>R}M>%B@OdX3PQng;x=y4(C*nO5Lg&f6eOaqSx+#3aMd zmeWErWMle9Mw~as%3wdPt*o$fa2(k8>w35eT#gjIb`}*WB+%L#(Awe@Cv z{DTR3{a3Gq!wrm#XmmA|&4G%CDzcI1IQR7PQg@P*o!w7|sj4@$51%!C9l}{{d^zgi zFxB9B3H=+etJ+M%Q&WlUi>u4az=qRAWM^j5;$f5>Rlv?Yo%JJ=m6fg3E`Y)c7K4t%%xU%ydnSSoRE{2Ofh zvEt>RLSXoaAns~Uu)`;GKmXMo4*?Rj0B6i*Zd--ih6&2p2kxT3wbgLwg^`cBartkM zxExOQpUz9K^VOFq@8-HPF&WS1_|KXjmSUMTPiP<=rf!{A?MsNqYdhE(%bC{&KDVu! z$dGwY*J{8Lh55ZS{bG=TC^%y$l8cq~As5%e>DCjX;9fejtXxmZu(tJl%g4_69OdV( z_m>Iqqt&-8x)KB)&tP_JoGh1^mi-i0E_kjeWop$mznAxb$eZFbTi>!hQEIz^lCQ{9 z^P%|X!~!o$UYYfA;mU0%Pq~!io9H||nZbRokefPECz~32+#mCv!ze4c>G$f7gGjr+ znL4cN6nIHevb)espfR%9BJaiYxY=i+->efjSz)@R(kZiE34HC*$w|lq?!JM6JrHc3 z>(MhZrqfARDII@*f1|Ub!$!>xpm2Y-a9fP)_4mm|McY4pF$K@IZiF}jymk}NOVfCE ze0&Ufsf}mUqP%U~X7*_T_za+|f7iOAVgQ?^JoB3q`aNqCdF}ytfQ=}>x|%53V#v8j zePVUO#3xdxZ?ypxF=jK@h>qsH{p*$>G!B0j7eVHG3tX^mg-bH3ugLpMDJMR|*{4Nr z0@F}ZRtIzITn`JfvX=8yV|gnQ)WyZoNSns)nQoz`D$pId)$ce7M6|MTaxU3bS#a>u z(1@?ysx2;7;=Yk2o@QI6&B_W{(s6AlKl;cnR3t_6`PIP>xmrXLWB?GS;h37b*q(3U zpXBNB#lXbewlR;Qd|@@?YkhFJK4P9k;iI5qHBjL6?C(P#9P0_ez0<*I>Sq5Y9-iZ?Snc?F6$8J&Eaa(ndm zVNnPUz5k@AWaoUM7TG(;MD2U`{WIzB3Fx5OcP}nPwLTVIAa76|yz~KD)uzgse%~--~up4^Lym+ZWB4-jrES3sh;>J6fI|RwnnF(4VSc zU}8`yp@Y?Ys&E_ryegJ2&9 zgGw~tT^Y2X&k-mAa#R>7@|&zFY$K$;jBc8t+V7c~BakUtm$*^#pZu@2F^O@8qlb{* zk@~c!F&!nwyf;e8y*6sHtXxq;g*z8^W!!*5)+r}tJypvM0R=gahMF3lmh<*p6Y$+o z5-U9~Jv24PdQzSN53&I)DCCrK&&!L-h$lQeE+=~{zzzZo)KpUH^CR=%0)zp59i+SL z>2$DuK+_A%{C>@5ea+k5jL^`~;Na)&ran_sQvmiMnw|OGeH5&${`#Qbjr5jzE-Q=A zr2Qo+3GnaS+M1STx#d4>PbXT#Q}vl|cGqmvE_#(Lco1#oO;=)axW{Cd(aM z-wuacifjAKOQGk-4eS>c6x=mZ;h*{xSw$`})n%B|ed}@_EAeBy3MP)GE z&;W=uq*(Y4k(H;!aO#}CZ+tp#etP9Z$H2#wmbR|;R+spuS8HpwL1OpVm149<-%Yw6 zknrNC> zS~|L{@^TIeifhcZqZS1IqVS9ppglCL4wwYu%#>~H%hT6BSAs3n?Hksg2V#x0nxTD?g0J* z0k!H^5+x$`HWKB^V)Nz?mM|{;Fv<;`1u^dDn*ojjNlwi-5Vbbo<^z^aTSsSHo$5M8 zofc&qA)>&miUr*SwpRzJl6Kf9KMZ+cnGt<>KT%?d0mR&u{_v*xXD zXL&sK=Xo)o1q}Pkrzy2XqB6oMrJg&tBSIE1(%VH}|H(1?dvpU;^eFOI~0ejp_Joygmk~4|es2lz*6_ z8tu`M`Yz++$_z;gaSU#$K3pl*8N#u#k+HFZdx6A9hGI=kVn08)=$twPwRHqWFyJWp&4(BP z4CduAZmeD@@Kp)jOA-f+Nc}*I+VquO^1` zFL?Ku(aIWBRV)H7*}J~(pFJV&&@TrY)zxMuN9q=oBQkK zGCeNEZ5cXgiYR5TwjA+C`|0IF9r1^qKept(IURI}1}>WS{@IQZ)L!I3Vjrfhm@A1aA-QqNO+a z!S>u!lI*wj)_W5dj-DDP>mqeVT;$fI0Ixav-FHQ!7EIBB)^BpaVhgW6Ze%~#NbX+& z%QYQdj$jfn5pxA%!F?~4(^`Vu-KU7r9?0z_g*nat-I9@6TQidqwFwG(%=nnUPU0ja zNkv)9b$vOkKwY_%`pR&mx%g)tIAMc|L6QR=su4hKYq(c>i2791;0)OxBzJx z8SuPdVqmnjwW)x~$ej^CkQ|w!Fme!j=RYT?vqnP51DulLVn=&>yVdDwu-y0dqEkf1 z#Ds+7eE&YA3)Qa1KXUC+6weoOz50}Zh?7bZz1 zOLNys7se|lLt71`slpSjP!Y_x0O-%_$#bS_h4D`!5Z?pyQ&UCs^vLu?)>g{l|8u>l zq`-a%It4fq6Rj{2GfhLQsVwmLnQA}B0y_v~D%iwL*fixUkTC9m4z^fEd^Hsnkaixw zcmZogT?y`eAy*V(1w3jzjP3jA2*kU;H%)O7J-44UVj_AdY$)NH_>msyHxN8X7x2%L zpk_Y&Z;hGhmMQ+NHsYNc9?JhF3=qy@R{`+f@&A2!*_J9k>KeiYp+F?p@DsepEhbZtS|qrkMEUP`5`0Ms2~Di6r}=LJuL}0rD^IzO4#|R0GRfjF zS~#5MT{LnJ`#Qn}?e^{4S5n7c?k~Wlf@BEe8sHzdr9nydCddDG4asFzIw~2(#XAQZ z7_RH_?(R)n2@ajfu&2 zLw{FZ#vv4$N=L|hHE{!%kx|Wz%MtAMoUDJv9zReltyl7nRRD4fdbtI=x6ht=%hH%1 z(;JBVI}_XB^ZR*aI6`RNuS`sSzkEWD?d2Fom3{UzixF|&@$Wq*>BjnBATBdEAs+er z5L+TJRp7gR^S_@8wKzzStGxXi!r8Yn$>V>!_QBS0M(`%g(_9@wB$kU$IpX+%&jFqF z@hV6)^)|C!3Un4Vgh6;47!bG=R1vK<^6Qv>R8kL)sqRRbqgK~J623ZWea0|+Ams*~ z^HK;lNCvuCTITDzZj=F=9rcagFUU-h)g&$?1jqY_31@&{Hy(zsC}r>PFic!Pm0-Lf z^ZVb&^w?VNmjd=Tj|LOn@v&H?`E4aVPRQMqVOg14z38Hp;JWP7mpE$s7gWhKgf550 zAZ0@HaP@OA-^e~i{qM7qWrWGyMn6#<+u4UH;-S7l{r4NoN;W^SFYXZ%R)X6J1Sie$Kj+?cLMJr2xyc(XXodj3MYn#7h6s8 z;0MA7alPF!zz=MQn|!332~JbsKomx*zIXv0-sjJsL2aaX_;7xGv}APv z9AId~#Kb-dfacZJzm$~hf}@F&k`iVgc)t3+fBzmz4w52U#Rb@8C_}jo%#4q3{C9Ig z5+?Xa0N9D=T(tX15=Sc|Pt$NNU3|pT@;x}8toMW_RDMQJkTWh)$3nY7v9Pgm4u(O1 zizIx`pPKYHrs~E)-2pllHp%PeAdOO!u;=Z-tm`$jwZTi7CpTMISZJi>=H~WA_74awP%3It z-@-k>tjuJCr>Aj~%)iI-?t~4=4ernFBvy078MCvnfOnipjiX#ThCj#l#qN& zvqtLOkj3{pN3kcIhQ22x-adjH7JZm`3(4bkLS)~C50R(hcz;pz9ZebA--ngsN z4VSP9C?7tIGUTuv^C4r@D$fhffoM3K`EeuuzkPaqC76eDT8umaXB60?BB-kLn}9tE zgbM*^HI%0@zqxq{$_8KxNY`MQwj3*M9UB`P9pz?cFH28H8EybA5{51S017&9 z2~mcjprAm1ZZTP1_K=KRWEtpRV3)@#to2HIzksO_1Tav&;I@F8larA-1tu9nQ9P71 z7!#xq=$$Z~`d|ZsJ@@QrJ`_5Kc4|U{V&T1k(itgM7qox-Qw zVw434ZJ!>HDPb52LT4B3br77)4QGAB!xg6FqDc5;XtgPPU;(exB^Yz^@$+i|6EF=8 zr4KZWYv3rD4Tp=UT;QB`>;I-F2s0=^1cE(b_G1k=mf-o+R91q1CP-8_YIOA^&rclU z|GK%mN7Z?@d2nZ|j5UXVRO$%&P8zYo*Nj&zV1*+mM;t!mU@)?>3Tgkhi4iV7pLgdZ z!yl~hyAA(!f6l3-Vtml?gb=Gr`=Vc7ux`7V804yxKXKN$B7=j2K!7vi%cK=WUVkq{ zbtgL>1*i(}Q5KivCMSRY^(zhfdB9rASwiIBvs-`v&H@WG_!%0<0Rw%JH7daX(7Ejm ztzC?4Mq1kZ%*Tn1aowY6Tcv6_Z4sJnWH2c$#({YdINQeen}ybXg{(2zq8?@AH`hw$dg z3O7^`!yI%B3?i84xiZ;`s{*?WJRMA65Spp(xBLwScDyS_eA zE)%+nx!|kyu!6z0)6Iryae}Wbj;m{H^W)1`W)n~zz|30%u>^beCKh4OSUqTPFfag* zd2lODDKIQdkvQHIC#ob$4i zt8Eq`tIegr)nVrL9>Ldybm^W09Y`&1u5caYZg=-u(~lndbGW@ zRakL#kg*zJk&b>zOzfJq$&gP9kq`q@usx{boj5?3_?qwT@884l1@#3e%iu?MM_-c3I z{UISC@GIJdFRvxY!AM%ond%j7{hDt?=LAV#AS9H8-SpSh=>S% zz^!j-NkT^UEq)mspb!?HBO?0kqCbQD78D!|Ic3sHD(b)S=3%SprRT((Uu$b0gw9)9 zcG2gt0ANp6W+zeks!&tQLk+zkt!YV?Ea0CS)52VKm|qSuKdfIuo7yu-k9W)lCa z_}|;}@=3wQNTj8edv-?ocols2IRyoOg?_#J41^9)u%){BOH}|<`eCmAzhlO5=mj~S z=fy-vOi9M^^MTYU7(>D&=(>v{tf`~PNEIK7d=-O|U{ln?W%6lD_v^F$UND;~~ zpqmTT8F>91Eyd36Z2?5mTj7>Q)7fa@>UZsWd>g8BH5_WZKi z%(JoY&j0IOcnWA;kx`+K0+g&wKO<(-$x6?D?wM%)yAS8Ld$Qz>TQTk>Y{<-0A?n{g z|6aGRX1e8*KN(PHdd;wfJbu}`JbM@Wz4h&XKQ&uDrbv5S@x4~K2M>ks-)q&9PAESe zdC|2#Z?^q;7k%ID?Z4L*$R<|)*Mq<}6=(kJ1S@mXV z#Nq%nb{PI^02eQa?ZA7)3wnCMT(ONf&cF8~m~kBlq9EC-H+b+Tb?X)Bivi}fbA`TF zQc@C(#h}vff@g3O>?)5QWtT~_>FA&#*nc$rTW&;YvK9Fm{9N#OAp+3I*#HO)Jv~nz zKL$+|zS#h@tD{M$X%cp`fkb{+KoR3vH{~XTm%Oa;{+(a5f2REIqeqX9gcTG%L9>yN zpaZ9Na3}-V0!@^enHi~oTb7Y3itzWhe9PoV82{F-N0^A29=;wTFD zG;OBMMzkNrA%tRGgSx5?dXciK! z7~vPNvxt#VY8SdN(hn)m<7n28hldA@GGKy%3P9$zC9KAA=W3xQ8{672Bm}^40Hw&> z+#G85Ss!$pkmX?f0#qMeP0co#4g62fg>i`!n3jEH{w@-p5;JbFD{^;dCm=A;xHC5D z%a=-Unn52$=5dr_K6dpD81D*v=cgyC-q<1=N!}q-pklyE!ba2cIHrF3RB^E$P^EL1 zq=CT#v~64BQ>=gg{vR;^Upo7)Gx+||(1K@kBO5as%N zSh6>7U{cxI#N@jn=rsdT&#!>gJB~=!b0G2gK>Mt2O2AAslh`scoIX!*-Iq2D8nAYQbU(I2TOc?j^aFA*B*RsZs z712>qvzO3M%z$aixd!IHi+Ot|C*1)_RzAV;;krLnWbNnK=uUw*IEvBJi|+_p2G*sNj(EO(`ZV$7XwQPE`?pkTYc z!qo(KrnX85yXpm5C_6P$ z|Mw>fWXjdZf!eo6OiUSc7@3V3?*1F%+VC)+oAx{#i3BPQMsynWuk4QS?Aazsu4qLB zVt@8`CYDFr5yAcYfW81tztGe?*_wT}ak7Yq(aDr-FQ1fB?ACrQx9xT&7d6M43>9(? z@Q~H#J7p$MfM}v*(>25cBOMY8Ykj>LJ`j=24YSzLY2pxbti!EUBNx87E zCOd&oaaPER&6bs_5va=;!wG(TO2{4?owY*MJk$ok@u=h~B(GX8qer$d;PzbYTNQw6 zfZ4nkv%uS8=AQ?8U0va_28^h&5p_a31OqX+IDuuL9_zP1bi{PBxpQ+g(P)v~O#CJ$ zd?p+^^;fp;cJLLFJk@UmKPj_rt%;!_d}9L(5Jn-jwg`kXx)Avlj7oF@s0*iT;s$52 z9T>M;Ldll4of8PJv(x82+Mn0IIj>hk{gzMH#Dp% z?g-){QNR&nz!KvoAPAoVWU_VrF^#S+syR`BWVi(^43ButJgDk^%#Nz~Q?$uhZOPO_w&44 ziiK1MuHz~la$L95jfyx9OG+sgdU`XMw1+9+*=^^}RK=QCSecze7^OjhtKECbtk)c$ zP;>ZBJNJLAv=}W0a_@>iu&Z)|p;2H!D%0UBa`Kq}-x&zB%*<9{mk?s1i75h84WFt} z>s)lg;8{*Wpyl|)Q5va|NzZ<3ID97`Tvq@I9N`O1uD&J++W+E=^Y_3ILYiCKYPkgu zmG9p}-7SDb8mxwT{RjAX)C#o!(?Sa3;>KYY)kB9+UJ?<@;OS_LR4J)Ys45C(0qzTC zgnuTDL(ttK$G$#N1fI2g-MX=f2{+(}pwYO1lmP=d zQHBF#RHFw8%c@gB^^X>x3~=bGn$@VAf8&VL94#Gz;ij#GWiT4SNdh=ITqWS50j>sD zz$br0{u37x_1awJvZTmy;kFC`-lGWHR82rBht^8&t$6@P^$J@;`LN@r{`%Wt@Y>XDC9GDp) zAQc{a#GS805>q^4bz_XK(4aLO8a|ksv8$Q@776Asve$1nxyQxQSVA~!{HHS_X1Kq0 zu!0qA@@af$WOOtcP(m<858u8rZ&w91PIJ%m;4hy*LG{$-(P6wsM2CT8xTDb+Td8l4 zNQz}&@uSpt7}EcTx9<+8I{g1WEule($jpvxvgwq)vp3nYLPl1Fl$pKB9+h#d>?mYs zZ?ehWo9BJ<{XWliJ%9h6=Ui9$!#N+HbKm#pJzuZad(q_9lf3u$vN0ESrZ#ccRG;)N z*>AkMGL)^zGeLqK_9J=%)XUTGfuCv*?%Nh+RpTpty?TrzziIY#Jstx8uIP zVDxIvt!7@p!s4i7zEa1lTIvYW+ZTZa(Bzx+_mnhf>AA@H>Z7oUifZ4?Ray;{adTTN z=i0aFU}XiNoo*S{J{Gzsnqo@Ztkk!Wh~IG14M>Zgs!2$!G2c29zduLz>cRdBj<_2B5xtD8@9>hDinJ zj-Yu8y1j%=e^2!m=V)flr<$4vJ;|qza02LzewP#%+uavJn18{j4`8WSkkLO3gRiOz#T*}8Z*OnLyA1xR)h0sNmaJjZ z8RXZ3+MkZcAKTccbJ^zC3U9S>`r`JVU76ZDlJZ7;DkQ<&v26uZpL;MQ?^R-9=^I~H zWtxq{BW2g5Ys{CMjtK*Pu-V$WKb$RA-O4I>jf>z?yEF-9ENIb@1&N<+M%S88_@v=s zBEG9cvovUaS)-L1l%bn_aQId5Y7K}w< z&&?o+cfUY)??ya4=WOk?Dws_Pbo{}wso;}YCo~tIc%`UfHVI}ciufoVg@Tq92@mx2 zKH1GWDaR&cJz5Hv=Nyxyn{9aUL^;tDGbNQlI6371yz9WdW?7(%$;bC2#seD~BlaVp z9s%+3E0Wh#x;JTI@5mR|+S+<9=)xz-f*i2xVn5wOqS%S>|Jo;EDBoaf3#RL%6~CI^n~}E)m{qm>0hPvh@A<@6WpM={)9TWBa5pMbyb5=iMB{ z8TZ`MzS5O*x^lP>zrXW#TXQr4BJ;-iLRn0F>~sFr_93Acqi4+glpw(3_hBVtY}xjK zdx+3(OhX>RVAx2R7=ggn0{MrVZmp($I`!fl!@a>r6)`K$q1kbbn<7kV zevw=W#HVmE+ugQ~PSPJC*zQ3umo1U_`E#t1?;2PTqkP)=kTxVsDEAOAkq}ck3O|Tq z)P)tj#_!?ih&~bkfMb-Une+BbHC)}5hATdO53M;;^X7xFfb5e z==Xnj%p_{D=ho!X4eC17%t%oCi5EmfWZlHr21|3jbYbNUP{T@+hN2)6Hff$HRu$Jd+(J8#w=~lAW@iYbfaf*A7+(U~k7Cp~{S*Z4Lb$Ube8QbOW z8Ad}ZOPt7Dp4&>yIU_}%NaHhzG6`sKJMlaN`m#O8bwmtLBc@M?@Zo}b&1NKLr{GqA z{_!(s=Q5`aa0$l}!kf2NUOG4w^(?yod2@AB1S%K)^7Vvi(|Tu79^`lTl-?}bG^@sT z@h5kdK}RCN`5Hob_>QtTP{o|5gB~89oSvOboI%K3?z92kjk~n`c(Zkj50=tjMgC@H zXC{)Dy>+G0*)fGiN{uJ-L(}x(bL(g&#OtoX=a~A?p?(e+S%|T51lPYqxtdw38~SvC zHy~rB_klKMW5vrQa@Uzq_h3SJ;!rPCcA3R%0yndwFq)Q|G?aG^+#xDNonj&wFpOl0 z`?hy?JvYOXtEPhmY-$eXK=WYCbw07Wy1Eeq2;DA_($2TV8VT;f#f%q$E~go_2t6%q z!y74$Q)cW6k;4JdMhqmxC6NmIsh0-Mhyb%hB+hHyo1*IQ@8^mA#)nC+bHvlylXkp! zu6M++PlM2b{(e2tCZ{}n;b5MIF4H2pT~YfVha28%3*bE#(-=qYc+WxtyQ92_c5kiA zgCA;-XITeyoyVYV6hx%UG63y}U=V76Ee3Mmy#Z=CwJt%d6?Zys_x9svCe(A*Nfc+f z>$Kp+xU-}-4?J3OYGYLaQcW8cLNZE|^0>pf1`t;cV=o7Uj+TqCY^B1UkX%MkmVGfR zbx*HM*yanCeQpw&I&_3 zmZAIHcb1!-pFdG*9gq7ALR`3AUE!wd2vMbvCVaDX+gN5GO=rE>k(2xdD}1h#Y@(6# zkTA^%E&0SuSTuMC;qRA$ow9+WUpsMDlzg(BxaK|&=y}`n*(jhVyWhk?yq=ofI%xFB zPr@jXGl5=T*n~8_Yon=6teHpvJuY1WpP~HGll~rR1ObkW*Ob@7V+t)$rGSMjsg(yi zc(x^Swlx*N>Ny*!o(CEXx|L2?R3M_%|8A2KfjBUFL1KnnkdCfvWM|~^b5Q2|icK<- zbnk(Pj_H0gG0%?+OJ^}y36Ps_7?;!MzjEEQoQ1`)U z(me#C;m6vZ^UIeeJ>DBCuZ%v%|5-8KthvlIHGOyD+iJzqYVDcliVob@NBl#A7FlH-`%t#A-1?cNLuZ$rvduWE_RbQDWS_ia zPcP^I=J8*BZSljBvNt#h$~2O^VKt?tyAbNd2)XS-Zfgto2NjOv!+~18Vsj-=@oNat zF5-#hyAS4w6*3eC-dk*eJQI5}EP3}O7gbVV5q6Io!fv5L$ zC*LdR$-POt{qp&wqo4G`DRM1nY7F;)jsvuR06UzoQ_j&z4S^UV4+%HMuNkENX7v@8 zS;ybtiD1;c z;q!3R&buKhH+LM+M9`D+B22r8Ko}J~oscm%3Y)+d=_2;aQpNn5EWNgOgynK6=>y4D=T;vvUR=AjIA3)&(OYfLS5F;f0(Ee_c#G%C;N!oocp{77l#Hs#U zq`7!3+oR2}2C0-pKEr#4`ozhd627>Ir)Wp2_#U=svtfoNN{Q#L1f8rpjqKj&%njYm zQ1TMdn1Y-@sT{UhB76k8I`BzUvr~!gL5UIlJ3l`YO&&rV&igoY##KIj@0!b&R>EzI z_dnQo{0j{%P)RotzJcibq1rq;$<1|gc786>Zpv<0f85NTW>8_%!!0u)?3dL>FR1bv z*YY`L36oJCjd2SDBK_RS#V#LP;9Zf6I-u=5lXYRA``N{wY~$O286B3J+sFm2)*9Q~ zaXPB^rNza@oLY#OadfUKi{HGow=HK9Xx%m+Oyb2q7uMjor^UXil5+*QWF`-7_<(~{ z#K)Ux7mg&ryc{S}QgbUiln@g-YLXmnK`s|lto-zCnJ;+RqUXHLOgH>uhdR1Rl`84;pCl0)D|Zm8`>vS$iR zYrl%(6i@S^^IBSFwsqmrF#2_sxjrFJik)k5l627~`;-f3FR=b#t1cQvDw`|pHrX|zO@ zo49AEG8~#onfH&5R)Jru3cifUWO1txLpoOwudPlB?iSGs-S5Limi);*Y`HT7< za^W-x0 z@Nv~Oj^QvqbgwxUx`oK(M5RqnuS=i;BU`1(m$zxUZ0L{->S=T}y=D~>S}bh<|s zlX1;zkhT6A0O7oW|JSHl%nwHoS%p%nt4=QnoQZz*!WIf zQVh3;t$2)LWMi?ue&H+TE$_W|?w(Hk4^p4p_dys0|9cuxdh9*;>MgqBaO9rK-;hfZ zj>DZ%QRT)E+iLKM?ce*7FE2aP_^lzE@1*TR6}j^Tgfbu!;keH19SH~slu-XEVWJC1 z;?s1}$+`AE*_7vOzQ9Ul9q0EWfe0(y79?t(s;VYm;h#&&5KdMQh!k!ele=J0@$Xsx z#w?x_p~sCEG z_N+Z6gld4~2lRJNx!V-cI^yU5jpqbju-v#dgaV~^H*wYWQCdzR&O zn3WI=&7^cw)S}GhOAn7vyZ2ll8B~PR2ew`*;Yb@d+k92;6H24g*-W(q)e@|%?s#pe zc<_W=dj0I<3tu~^j$pw~BW9u|)&}q+8m{;>tAhao`RZotHW^oe$!6R+GO-|)XIy?0%gB18^RPplji)bY|(8z-bAv{g# z0)ovVbNf~`)Jfp^+?L8Z^fj=2Ku^6EeNG@aH!erJf!{SfaqjH8anixsDCWD)5rwGMY)^KR z3Qkkxbmig8X_xJ??x2bNsHC327Y_|(o_;0Z3nnw+jU-1jawRdQi30|O^VAV4#jvlf zCorT#|s7yI3P)x1T>;%Uov z8&-0sGbmC7KvBiqgb;IQ-xV3EOzkZ?G*CVLxPJ@T3_pA-BsELI!Y9Nhk$5)xqIa-p#wDjCJ#I{@(db$3K1rWY~Aij(gI--S!{5NzDpmLRe%Oe?Du(zS+ z126&r8Lpw9HmEhSs}IHgzL-LHzZIC+6VPB(NV=zKFKu1AQ zweN736QNjaUwZXApyXeZT3TD5OcB*WFR;#St-1_!+S4&%Xn$XZ zWx}E|@ZAr?YMK~D8rf(>cxSSttCj}@>4t(>kGu6^5)wj>AK`KF@MsA}o+i1iDiO@W zHzh5iMNp1_S4N1Qg2=+jf`kav$|~pK4Z!Jygv7+rt$tZ<8e25JJ=2;cZe6Wnpu(|_ z58&PLJ~vDH0@Vod=^Sk~sDau1!?PCJSe<2q8GC7ZXOArQs(sD;B6DK0m} zagdtIzzA8vug}Scy;;YeXGAsYS9YsW`ni5v}evgmwMtW8=St@VMe zc1<}n?wXN}5v1la{BbAT6icD3W|M7ld?rB4ytn&Pb5?&x>^`^z4*=-ZY_>2N3135e zqQbrSJt9jI3E16W*%6|<<&O$lm+g&(b`#<0rksiQ6d<^7xNG?shuu(9`!4SlRk?)@7Q@{ z?%36fRmVl!NmkcLv(0ie%$WE<#}8I$z}#XT_Ec8VyOEU=K}id7maK)=qsGIqGT9L$ zj*RP^T69(L=+a7QRXSO>REC9I;A#}{Fe5s#+MA&$8Nr`Q@U*Mip~3Qdr^GA<9P7%cOZO{-?g0z*69^OX{rTLI>Td=Id(8Rrt} zt0nnZ2ufwRY`;*M%VYyy{)| z!4hl+WD)_FeEmr6D#f_-ga^2$iIY`lU)x6>vb||y|EygFRIT~AQK~;I4 zygI3Pal_D_P6c9C$~c=QB_UEe0<3U#yvFGbA0=XkPm$a{i(sZKv${X$LZ1-q3Qjo2 z1xj^ZKU~De*G1S_G(z~&VKD3>Es-x}w%VuRP4l&DJ6~d|3fRV!cACxb=pruQ`+I7+ zRc|?3uuXCySA0uf7gSe|&2I^9{-Q>oVoBI8rhkQ6EFt{W@oH^MD264-XGLukN4hl< zr6~S#d7Vk;A?6(cUD z>@K+PY18UBGo1|ao&4W3sQY&@FM}QBn~n^eGy4n3?_#3HEvz7Porv}CEzo6G^vd2C zy>=o7+Gj0yONc;==THF}SLg-@)lX>Y4oYGm>;oX4Rwj94_v+UM*O(|}0f6GImz2VJ z%3md5RafxVDCYLey@%+Aavq%yQ(oEfqJmVJo2^5D`?Pm{E2Ao}mJI}__U?LBSoF|Y zBblM7_OHo{P)tYh??V$jFuHA`9`RbLNnZ>uU=(g2%6Nw}xiscC(v zFY1LH*7^w?XNL^P^+Zj?cbe%n$TT7PehP2>v|y~&n#vPH;jTc4U_00!`G+_2CqM_k zP{jEk{b?+F3mLo2jzFN$Jr49bo!>uRb1p8Dq1!m*QtYp7b?cV0vSD0=;_v+}((`)& zr^&$Ei;(!U}$_?>-8=ZRokKZ1A-3Sj98djW1F7}@B#A7x`*b{N3NpJFt;E*1V zgp-SjTdc8z{CCbimnT6uOrZueE(|=5l0n-+Y53^m9nMVn%$NJIt~F`QxQkxY-9>UA zwwby<OwtsifHY?mN+=>K6FU?(S&SDZsj7Bej`e0OMO|9dGn;&N%J=7$hMdy zPv70zUu|jHZ}Q8P6gD~ROZ>aS$=wG)1S#X_%2iT{gR1opUqi>qa!KNU7D}SVR6X8- zKBA-Dg!zCB5=*-p+KH5Imyr&a>!%dW-(>y1*r!4vf~ZOyQzrcOM75r}$@3xmjwlmN ze38}eRh4EQ`)y|=mS%Z_nx0bhDQ-!YYbxn*?g6p=}ldQSiiRpmi6u z@aOb{tB%x3d6CF^YSC20i_yDegGLTfBQj=j52?>DM;p9(rR$9l{_Z!s&fV2$k-KF4 zTs0%qm)w?<#J6}zWdZYnKtv6WmQ3Qu(=ERUYhTP0VI>iyT+SFjpdb@Eb=Ukcn@fVT zs!c}5&oj5uRae~+7xmuaE>sBMW$OWHrlFDRg21#H3Q45 z6~jed&m7bOUEP>_X$4x^M$mON$d&Mhl!P^#elvxh){yPNl!cMXlL=o%vhhM^T-C^! z|(hVb1<1k#^yQykq>8^sA^7F@rWNoAXjm7dI#rea_td#a6tXd`L zdf?FJ@3_|u!ds5Zpz-MB5;3@b$9i+y3Vp9JroH>`+qsQU5{8k>ap%O-*Q4))iUq1} zgbQJRCLPBxDITf1fi8l<9fnDs-8Ff$r!YAEjGAnv^Gmnh5^IEc!B)9fseNU&Rmblx z`t}h;s>>hWe!zK10i_kUm8 z__Xipj6a@bz-63>eb%JqH!+Mibnu8rKLNGh zmgYI~LPc@{}%UPm<5zgn&A42}VX@9rcS0Uc4Mt<;pck@K+X&T`g2r!Sb8vgr$ zg@Tfb#DSo*b%0{z{(9kpWF^Us`(Pn7+Kq-jTFDQsMv{_C#7?M@;D(V37t(SR=tpr5 z`lDxE!AmnVLG|XEd!<=$`(mV(Nmx7I1sv7sTin85p1ckHGr91`^VVI3$guM_i}|C| z7x*@kw=mzNQhr9NS%_GyY?--J$5td0iRP`(11$DGR{o#aGq}etvP)TY8Ib{5f+v|IPXH%kcESKheMmSl!XW z$e~eAV?T+~Xe_rJE7ou_ld!KUPA)#V_X`cVc{ck)x(sP~NGVnbHzuWsna{rrbnD$Rvx+o=^AD;(TiuNrzNt4uv{c;@WXY^p$8+Ac#RQ7~~dI zT1LB>>gPVW>K7t>dv%ELu7&z^O2Q5WPJ{R`^@#u&FVgYGrxR`}R1M<%w1zoFM{|NAixqx4_F z<_IP9ZnC8@@8oAr>6=2IVqH5JSQ*}`e(f`i-y~} zv4>-l)pH|2gLxMko6Mv{uB zq7UEQ6v=CRhgu7Pbo2EWbE%Kjb_hgI$a3Bmm(Hz4uLq9D2hHTI+HfGk+BG?r>IWr1 zleF&gy1{uTpcKR0p-}q#yO1+iT+KH^iY-%Ug}%7@y%bW(SBG-t4P%{J|DV_*j^2%E z$%&<*y;6gQtmhXWaK9mx!b_>^z3Zt(bk{=p*<+J8GDc}*mX4J1dCQtN(J*a9Cb2{x zG3`q;912~cyNkb2pW{SZ-_9oIVHGc^ztYklDm$PT`kHUtW9?|LX6Kk~)nSs77oFyj zA6!WRPas_2yEdt6fQ+T~yPIEwBo2$#R=P)?65a9IOY1?cjn3t6w^eiWo=6wlHu1U{ zKz9jV<}+cMCN%-DAW`95F8v~3Ssv_Vxs{bY_0c!LGZY`!>cKd_M8+Q8ghnyV*a(0{k3iC6!Htg2ymeyKLy+j9vroSbg?<6vk z6ijDm(u2ZDBfiDoG&i)Y43w-E?9$CXn{`N2nN&$!|M%pI7Ag~zz?M&?(TgiswW}r@ z+1w4Et>F+)qc3F$t$BLZ5IZjU&+IBLOPkg_F0GUpPU^5Ob9;C~Gp5Za>m3JSLrVwt zd|(kr1v)(d+n3$E`bxd8ev*30H+QDgEZo{?*IGXQc9Vqa^bd*t%IAcww8Bfyg{|o2 zc%7<-=W=E~e{G{HFJbRX;-lm$HM_OUU5q~&&mE*yqn&xCSmDfgS372s z5Wf%Eo!Mb*(R}%efXjc(#eN%~F>hXxx%aEM_ih;fmg$w9&VN2U1~Yi`pzF^YcM;lG zJ&cRvPqi$!PPhMD@N>>{y?c>Lk#bXAneofoQzHE%cc!16+UBagAD)``X$|+BKJee} z_fjqt`iOJ0bM)8uQ+E+D&8J42QE~INtkm8|E9B=c?T%!}eW}t0iAp->J1tXxt9B`H zUbgU*&3xgoczk~TbV$ct@zGI3b{czlnU&XC`yS$+_Yv8+E8UIrAjUtS=vm!mX6Uo< zdR0gSWoWpkG!o1!?8$ydJgf8W@W1lE-}vFHioIIXyAZkWX{4X`hIn4m8zWzGnT`xD zYE;`^#K0xvzsL94_bZp~rJI@P+(hw-)v6Y^J2HFYgKNTciqO4Gh6g2D%qmx@JNkf- zdIOuvheVyan#bANeP6O=56kC!MB44$YnEv;Gq|-i(9wuCW>rmnjK9k}GT~-jX6v7< zX)UmbP4#3*w>G&z;(5fvN8>Eyzjy=rYnOwYCt+3B?*|kDwn69+@Q5v1Ggl@iH@g1fFtOf+P5$0^O+AvefpGp0zR>{*^ z5O;Xj$6i)7tL^P&C#bnYR{Ty{pL~E+&mDu@X_GLzb6GI z?gslu#J40k4W~MmebFkhKdG27J=v{B+(iV^NNBc*#-IeVj}FcR!)6@>uC^fE-kxoZLw{ExGs67if2<=W zRfI;SGmtsDx)h^AzA^^5T^hSILan*0Jn5L}#uR0rrqs6_UwRp7AU);wqi00rXy*aU zC86ulXC3bGyf@McGF1%k+NmQR<|_p4irO$18V)HD;_T7u;Q0MuiDsI80F2V(xv@Rd zgHf-uLtW&1oZ|xp&E2A->NV%ASm#6g&JQyIs2^$RBBtJFYiMIZaEq3Qc|@prfWmEg z11do7LWBXeyTeQP99%L$zjfw{O8rHw91%qS^a|1~R*Etmi76|koaN-R@n?Vt?m&tg zu@xtpQgYRvnJ3JCp#8>DG67QOW#8>aenVbT&y|vak}~X{m#*SqQrYO+p$g@BNdl~w z`BJJQf9cUZqh5SEcTtop30WgQR zrL8nj8A91Y6d(!!a(eBiMIiVVl@M#Q6ek$EoFN?neLQ$!rZkEhOAI?4*mum@>%N$U z(K~9EA}8I^XFEX;cip#E-IQ$%!f{ZE=fSopCe;)7;*q($_!u)j(%}5@9TTA&mT__N z2Y+?-op?#{*)K|=B72)8D!Z!{&TWb86t%SDZ?(ViuO)O}?%W0}KaIYvCI4*h=lq!0 z7Y1c6NvA73O6PZ0^Ce|;A=Yj_K$D{9tf_)}=JHs8#8N5J)EPK$HiilPogF7j*c z*KQP{3?7YBu+y2%GIo6$GEF~^`WnQ7wizu)=aNDPvOxRfAz?t4+rZ3Mox<|xkuDlR z+p)z^?1yj8z+ag1BY3k)ecfqwGXD6`+IvWII#F!{Ad8d8oq~ z6-;`R$ki``6NBa}BR<`cLK3fdmOJ)eLHk>##GTcyyl9#f$TUSUXMFE5AD@}whCgAh zosE{2@X4XAt*seeQ_#GLXZIO%(`!zW+f9vAB$28Q z$~skQj+(YJPfnF+q&huw!9VsyGCvDbRLSf%(E6xKWwN;vpEFMW>pkA$3$;X+UJdtR zf%(K%)N#u5yu(fPRl%KJx|NokEFQFNFKq@>^R#cYv-pK-B1>g%ePX9JnPGUaGBgLH-lKZc$^;crS5PV)!hsOZPJJ6D0#uZS&yF2)#OL3AJ7vW95B$jmwsSVBOnxV^2Mk{;s@v z@salB!aBwf_Yd95d+Hu68f+r182ypGi4Q98Lz2cQ6Z=($xuW(D`VdpbroZzG`QqGe z?&NaUp?eZoy0CK<&PIj%NkZj(DdVfLOJ6kk9bFRB#W|~^(SV>e6{^{n0R!%P`Ux~k zBbRHX)O-_~S>6|Co%}3`R+Ykgx>0P@&Yf7v~ zc7s@}Vos>7@+=j8kUWlrzb-{CtHeEc2c*kr8P5vb zWe7cGb{i>q?rfqerm6~ziVYV*@{qN`!s(Q&6pM?6j&@a8m05M1W_{*+0bMl%jbk4G zcZMQG$2168PL!M4P(tfHA#I5L;eM3m`N|i2A3BqcfjM6ma2&|9Q)49-uFxZ1Y0IQI zkJHkhZMl%BHU1EywpO^tZ8Q1q1Eo}H_fRxQAWl->?bTpw9Y23s5jokRb`vaSvpK88 zGSBKR<%VsLC-Kn>v{VJDf0lOK|HYpYXgYCj(hyI>eMnZl9;2e8u8gy)&GnlnFW{5+MCmW%`Z4Z;cGYUib%Fj8;m^BCk zN5cDRYTaYkptrWd|4G}26jhq_=A5HC9bD#{JFscH^PhN2(_}ZkmFBt=ay_?@ik5?t zM#?Ed#wny-lSQB^Y>Y{u8kMF~8r@*@qwvq0Uw_^V+Qla%52Y}o%T4gyI2%L28csGF zRxRuF%KB#h%=#~<{N-(Ist8HN4_EpY6p!0~@_u=8wQsOMu|Awb<0xJ5pX^#DJ?$6q z`VGl7KF{RZJkQf_?&;mUdoM>qWP64^hXt-*Th0 z-11v-xVOt^c$Dx>hi{0wCGf#GtM6_T#>AZ!59^tq9d#Y*Osy&YE`se)_| zUD*g(09u>+ZQUOzdYR(vvv32S=8~x5ymc+XqxTA5Ne`ivussajGTUE6LKo>58!b3k82_mn7wMg#S zsh5-H;)Tx&sV@fd5uM)aKB*6lUM-Bl8dAZ4zZ_$uqH1k!ZpWVpS_1Sp{^k;n*|6pa zoO%t&wsJA}V1^_N?v3mTv|M!PJb+2)YBuN5NRJ$7_JAZBDD=>~QC>+;Kh;qm8=^1u zdAvM3HC?9Cp(A! zQD>!3X^JDGqZNJuPzMZ<5A?r5y~@DuRfj)mGOR1+>Y2$mvm;|1lPqNIeTbk6XHF}K1@nUJRG zNjn#i(m6ZKKN}t&A0Hb_Je#a-uRS}e1@0dV_foD!8PvUXTP-((4t##qrvHv-LS$A% zdrk4)nlpW^32RQgYu%Yzk`t7gAG+REYvyrwGziIk;;?mrgQl6M^0T;Vec19Bku@r3 zYnkln{OMKe0wb9fi?Sz&dO?9PC-pDbgwXr$;Zi*g1LRi6?gAG6?KPG`7-B5LTI~q( zLbdZkYa0jdB7h3GEym8Xb>Ln$YTt^cmH3Gq*O?XpY91t3v4~GczKz+y0E#MmP-p-| zInaSjdPCBV31~S!9tt(n2?$ne*OIKdjZIo)YaP={9K22Xs$ckxTE=E*^ySO>JXR??{4d6Ry$Dn9t$~1n>C_ z!n{i0qpPax_H}oofKb}$KF0~{)8vP?dO%GWvI2oCB0U#Fz;nU;D;A#^kcyd&)`w^C zY`;mwW~@RLQwan<>To;@K>Gv+`+T5J;(fK9t)_MS+fTUIZnD0vt`3BuKrQDK5J}$_ zQUem?&46>&I(yi_>d6iiaT%8KpG!OBFzFI4Ahf)!1B7x-v&5G`;f0mrB*6ZvUwaz# zaQt_p4yd>Tvl%Ve2k0}vZz>XGu^zI550^%L@-HkSW zWG*+9Z2XN74mMR}`@yHm)#Zin-v`rzjNP4^#J=t^%JrU*6QtUJ6?d1O@csz9q%Y`_s7TcRR4AW9~Lx+Ks4;GZ58ZIVQT7B z>4=Rsi2MO(2!@)Vc{QwB#gdpCv9RfIaAAIDP}4L3J}qE!Ve9PXf%}^0US+l38bH_N z1y+hXJ$H+oDm_5FC4lfj1uVHQE)Wr9qL_gR;s92`v}^>;+|7`Qwxrep%X5-9JN z+s|GVUcX?S01Q#&d#}@ZFFjD(2T~f0HN62m1t8&O9mRdiB@{b!&UD+eRuRKg#hgs) z(sA4M67#+)u2A)~XOkl1jf@X&u)p%>=$xcZ{^`lh{5WiBHO+Q9o3q+ z<)lsZ{-r&e%eKOPS)uNtsf8ySIsHta9 z55YA`%+55ztR|DJ!Ojj>OJOD3sU-Z(=H(WCRj*q8Q`fCOzV_QSVY(5WT)Z63-S)6U z=fL9Ax>bv8fjz3BNx1_Hq>zBsINg?l?7!k(jIbcNLIt)V;P9DSfpUHr2}-{qO(pKM zJ}!$H(d4fdsHmP$;+osoz~Gj7z+zQ`(~zXu{E4qn1$;0dpO=lldakS-{$mn$|7;_~ ztIDjCJb%Cq%`392y8;;@h!A>$fq}hX^7*z>Izq^-@o5L%m1GNGz2PMotO>0JMt?kP z-|>SEXN-#%sGjhWo&x@}#N)^*f8eMj-(w}gp<@UbOKOe1@3w*3ast=vml%gR$iOid zIayQ~E&>beOe~^)(QGzVQvVQA0G_?;Zi~##bIi6CeBFB$csHVw?R)+t`Mvcc$46#| zUg)d}F>gJ1cQb!wWP^;#XPKeM?XLHcC;93KG4X!IM=LFMw$T&&iHS8eRc`lZ&re)& z_*&+nhohcaSEF8=algy1b7HB(;|~RqU&TW&y&wtk;p7);EGo}ZpdwsNugeMD>_JIC z9xhrQ4tK}LLkW=(s6xx9!#@)&B9vGQquWp^EuOPKR>^{<)O5U z7C?Q1d?RR&p>Pn znd}z{Di$$feZJmNTXRbGIYh)c5f>RYaoihb6>UvBy!0nUf6wOZ-G<&?+tx}((UBBzO4COvN6Z*{P=53AG7anY?{~!BVq#+A3`lcy4|(W{jX@}s^}z$(!e=mHHzR`<7jqdt z0V`BpT@B)+g%fLN{VC8k+6=NOb8~TV0ks7f7B*S$dq|fGW)f{meQ`k(F`3gWSnp6~ z9>$=6(riWs6rF%YY3s41oqRMp-_3nOI_3vlOk?(1Sd~r=2)cC6a;TWd57G-S4PtZ@Hbg$iY$W5+=_-UwCO}uQKLnlH$}Do*Dv84%}0Z1lyf2`S}Was}N0W zf}uK&(zYoFdjy;ZPz*(@Kmp++57wxpWGC)<9^XoF&*{3K2+dv*#2RoubYFrFfSzjx zb1QHKT>s`|5s0}0v(~0!F%wY1Zsz6-p!WkY3)Vvbfd_zP1a2;Hkzkt4d+~`cF94eT zK#R0kZ?*JeN_n@)ti;h4+F`4a-thw!Kdbqs*lY4VTdb*KWDv2)! zHs*!H7OzIE(1x|&#@WkyPC1moBjGC8opt{O)sxv&0Uz8;m1nJUU%FXqhMtyYeB0k0 z;k+jWq4CpakB5;zBjjtAbAqEG7JBP|&M#k2;bQyV3;hKK02IMwpe;A&8 z7kxl++FEH+RD>U&?!^RT!Vbf?L5Gi3v5%gMD#W zKEx*kOs!?rM5P1rzxAR)=G4YMh)XUzRf2T#np0)6>s%}-SeR?u#D&vXfIt|8nD3u- z6IPp zfh5R$dwdqz>{U6bv7yK;kDBRxb%4Xr)xV8Y*sD4GI!@ggG!*u)PQ*4A7#z$`8XU`M zw!6J8yQ_gMX7#O4@9CO_26y*qbThe(XM63!8;!Ny-~lf_Q`e71P*_F0wvY@U_`B(5+HtXh+c)!hJ{1_01QPW*m%?fTwI;C40nwU=_c zpE#yj_SD-fS#mU&vo&Z)$+>$=&pIDIpSV^q{*MBLh&dg#DQlYEIQ4Fwja$AYSCeh6 z_LCfQqRM_fBs>Hdi^eY6tvI=*dsfa^XsPun9Iy!*Hw|W1N8b z4`|odA#&z^(t-{cs@FVNNpI3WbgCSKMFFt#A~~A33ze&7rz0T0`QU=uSWv^W1DBsL z>CP7yuGeB+25w~5BwBZOWa89mct%z#OxEfCVT*bV3gni6&?X4VIZ*Hb4=l1)wIwbg zQG0f>mSv@{tqt;v*$g>leCKU1HC^|O1`u=Qwfplu9U?OQeGsAi;aszo2>Dfl^J$KP zM~i7uGs?Y@*i3N$k2l}4E2u!3C420G_cId09S3_yM%*~Iu*6IaRj z3xr6CBD3N*BA=n+PofNKa(2Xu*6vsQ41L-o8GmuO8>TYz`(j$YJu`T(6=@=EY)Pmg z`Xov+P(1Yc+j870xKgiR*q5scTlT727$l6bsW7}JLCFA$cAfKO#l>u2Sn)o9S_OI< z^ioM3XhA`307lmqXJz>roEqM{Ii$a3{qDsi1yBV;x>IjRiKtPr3E zeZsfvn##{V$gzIDrRUJ?f<#9_VzWSc8h#fk;E#FY;pQ3Cs*tjm3jeHn(qsLk5{JH4Tkl`}*rrfnp&Z z?(7U44AxEgd4RO{sz~bG|C(`2#&fHw_}#UEB$21??gO7kT04dSgO3cy5^2Hs=D*mF(>M_U%QGJqK5bcbSSX0LBNz z#l_*_<72&D-`!nZS-Bn10K)@7#jQ2!0qE`ZmH`n;O;`5;VE|fuZE`Y2?Q>RHARz$( zw4vA6?QZ(P^!e--hrZ$A`;pQhtl_@Y|G-ja9zv#a9UD74wk@tZq@-3b60+x$B12ne zXLReVbcX$pcQ-&5aAj%9h&O=yjc5T#p}{D&60Md0RnvKRHFd>t{GpLjnnGMTiV8;4 zAPAvs4x$(YAsC~kn8t{J7&*!=OO}EjkfSN21Sm9t&=e3-5X6XeA=p9yS(c#;Q8CCe z$Ov1A{e{r`2fXv%yZ8Rqy}!@5`Ywtzkx5j9Q+=H#*HzNT`^VPjPO~R+lfD>LzqLE7 zODobKN^_#Aw~{kEMXjK5XypnGT> z@VQ_NaRma<(0RzrCAR_#o zskz^k$Bzc5&sWm*Fou*bX(e)xq2|%UCv$H~C10m#G6lQH3_Z_Ni`rw`0{Xh+0_T@a z{HUERF~pcPLh#oBnsjtbIKD?VK5l<`(W2Q)WqRYIAXj+a(n2H>UtX}FjQ)ZbwU2vTsRum5C$H0P`0HYHr2tRnrN|?&Do2P!4k_6# z6%|mb)z;Q-t*_V6)HF0O5Yo?O{a~1(lT08IQ+iB%{U~6r07M)RU<{q#AK_%V4JJh< z^S^o!a(I~S9aDBF5=aY&JbVpxXQIcGtVe%CD-X?pQy1#;O%iD20I1&B^XcowKS1`O zxf!4;M)Jj%ut^~6pE;eF>ozyn7k&GRzhm$6^6omil}@ra<;0#%z$FCIFpGf+P)4sv zbyTuqpm(B+9OTxqiaNMT(-SMxwn zh#SG(i}}td~jCnJcy>H;Zv^?X$S}i5G0tkYKq_)D~DRJG|8&tFa)s?eNkI7 VL9^eHr5(y|BRf$YOC7wf{Ri7%k-Go@ diff --git a/src/components/ModelingMachineProvider.tsx b/src/components/ModelingMachineProvider.tsx index 3b921bd48..faf2c0ac9 100644 --- a/src/components/ModelingMachineProvider.tsx +++ b/src/components/ModelingMachineProvider.tsx @@ -625,7 +625,6 @@ export const ModelingMachineProvider = ({ } const canShell = canShellSelection(selectionRanges) - console.log('canShellSelection', canShellSelection(selectionRanges)) if (err(canShell)) return false return canShell }, diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index e66e4ffce..d6042fdf1 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -9,7 +9,7 @@ import { Selections } from 'lib/selections' import { kclManager } from 'lib/singletons' import { err } from 'lib/trap' import { modelingMachine, SketchTool } from 'machines/modelingMachine' -import { revolveAxisValidator } from './validators' +import { loftValidator, revolveAxisValidator } from './validators' type OutputFormat = Models['OutputFormat_type'] type OutputTypeKey = OutputFormat['type'] @@ -297,6 +297,7 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< multiple: true, required: true, skip: false, + validation: loftValidator, }, }, }, diff --git a/src/lib/commandBarConfigs/validators.ts b/src/lib/commandBarConfigs/validators.ts index bd59cd4ee..41522c25c 100644 --- a/src/lib/commandBarConfigs/validators.ts +++ b/src/lib/commandBarConfigs/validators.ts @@ -104,3 +104,52 @@ export const revolveAxisValidator = async ({ return 'Unable to revolve with selected axis' } } + +export const loftValidator = async ({ + data, +}: { + data: { [key: string]: Selections } + context: CommandBarContext +}): Promise => { + if (!isSelections(data.selection)) { + return 'Unable to loft, selections are missing' + } + const { selection } = data + + if (selection.graphSelections.some((s) => s.artifact?.type !== 'solid2D')) { + return 'Unable to loft, some selection are not solid2Ds' + } + + const sectionIds = data.selection.graphSelections.flatMap((s) => + s.artifact?.type === 'solid2D' ? s.artifact.pathId : [] + ) + + if (sectionIds.length < 2) { + return 'Unable to loft, selection contains less than two solid2Ds' + } + + const loftCommand = async () => { + // TODO: check what to do with these + const DEFAULT_V_DEGREE = 2 + const DEFAULT_TOLERANCE = 2 + const DEFAULT_BEZ_APPROXIMATE_RATIONAL = false + return await engineCommandManager.sendSceneCommand({ + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + section_ids: sectionIds, + type: 'loft', + bez_approximate_rational: DEFAULT_BEZ_APPROXIMATE_RATIONAL, + tolerance: DEFAULT_TOLERANCE, + v_degree: DEFAULT_V_DEGREE, + }, + }) + } + const attempt = await dryRunWrapper(loftCommand) + if (attempt?.success) { + return true + } else { + // return error message for the toast + return 'Unable to loft with selected sketches' + } +}