From c8f5ca3d5b10f3a2da40294cf92da668f7568892 Mon Sep 17 00:00:00 2001 From: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com> Date: Sun, 19 Jul 2026 01:10:53 -0700 Subject: [PATCH] feat(desktop): artifact evolution chain + Board/Timeline views MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a version-evolution capability to the Artifacts pane: - Evolution chain: LCS-based diff across successive versions of the same logical artifact; when a blob is missing, the chain honestly surfaces a placeholder rather than fabricating diff content. - Board / Timeline tab switcher on the Artifacts page. - Auto-grouping into 5 kinds so the Board reads at a glance. Files: src/renderer/artifacts-board.js — new Board / Timeline / Evolution views src/renderer/artifacts.js — wire Board tab + evolution rail src/renderer/index.html — script tag + tab markup src/renderer/style.css — tail append (~200 lines) test/artifact-evolution-board.test.js — 23 new tests docs/artifact-board-fixture.json — fixture seed docs/qa-artifact-evolution/ — 3 QA screenshots + fixture.html scripts/qa-cdp-shoot-artifact-v2.mjs — QA capture harness Merged as source-repo test-real @ 7279870 (with lane-side conflict resolution against test-real @ c1d93aa: style.css tail-append union; independent of Lanes C/A/D CSS sections). Test suite: 1727/1727 pass (+23 over Lane C+A+D baseline of 1704). Follow-up L-3 (in upstream ledger): runtime ArtifactServer to grow a snapshot store so the "missing blob" fallback becomes rare. --- .../desktop/docs/artifact-board-fixture.json | 86 ++++ .../docs/qa-artifact-evolution/01-list.png | Bin 0 -> 81929 bytes .../docs/qa-artifact-evolution/02-board.png | Bin 0 -> 96961 bytes .../qa-artifact-evolution/03-evolution.png | Bin 0 -> 135378 bytes .../docs/qa-artifact-evolution/fixture.html | 99 ++++ .../scripts/qa-cdp-shoot-artifact-v2.mjs | 179 ++++++++ .../desktop/src/renderer/artifacts-board.js | 426 ++++++++++++++++++ examples/desktop/src/renderer/artifacts.js | 284 ++++++++++-- examples/desktop/src/renderer/index.html | 4 + examples/desktop/src/renderer/style.css | 262 +++++++++++ .../test/artifact-evolution-board.test.js | 403 +++++++++++++++++ 11 files changed, 1704 insertions(+), 39 deletions(-) create mode 100644 examples/desktop/docs/artifact-board-fixture.json create mode 100644 examples/desktop/docs/qa-artifact-evolution/01-list.png create mode 100644 examples/desktop/docs/qa-artifact-evolution/02-board.png create mode 100644 examples/desktop/docs/qa-artifact-evolution/03-evolution.png create mode 100644 examples/desktop/docs/qa-artifact-evolution/fixture.html create mode 100644 examples/desktop/scripts/qa-cdp-shoot-artifact-v2.mjs create mode 100644 examples/desktop/src/renderer/artifacts-board.js create mode 100644 examples/desktop/test/artifact-evolution-board.test.js diff --git a/examples/desktop/docs/artifact-board-fixture.json b/examples/desktop/docs/artifact-board-fixture.json new file mode 100644 index 0000000000..58d96ead20 --- /dev/null +++ b/examples/desktop/docs/artifact-board-fixture.json @@ -0,0 +1,86 @@ +{ + "_note": "Fixture for lane-artifact-v2 (Artifacts evolution chain + Board view). Each entry is one artifact:event payload the renderer would receive. Multi-version entries share an artifactId; blob content is included so the evolution diff pane can render real per-hop line-diffs. The real ArtifactServer does not include content in its broadcast — that's the constraint the strip's fallback 'content not preserved' note is calibrated for.", + + "artifacts": [ + { + "artifactId": "session.md", + "kind": "md", + "version": 1, + "seenAt": 1747000000000, + "path": "/w/.artifacts/session.md", + "blob": "# Session log\n\nTurn 1: user asked to build a landing page.\n" + }, + { + "artifactId": "session.md", + "kind": "md", + "version": 2, + "seenAt": 1747000060000, + "path": "/w/.artifacts/session.md", + "blob": "# Session log\n\nTurn 1: user asked to build a landing page.\nTurn 2: agent scaffolded landing.html and hero.svg.\n" + }, + { + "artifactId": "session.md", + "kind": "md", + "version": 3, + "seenAt": 1747000180000, + "path": "/w/.artifacts/session.md", + "blob": "# Session log\n\nTurn 1: user asked to build a landing page.\nTurn 2: agent scaffolded landing.html and hero.svg.\nTurn 3: agent added responsive styles and OG tags.\nTurn 4: agent added README with build steps.\n" + }, + { + "artifactId": "landing.html", + "kind": "html", + "version": 1, + "seenAt": 1747000030000, + "path": "/w/.artifacts/landing.html", + "blob": "\n\n
Welcome to our product.
\n\n\n" + }, + { + "artifactId": "hero.svg", + "kind": "svg", + "version": 1, + "seenAt": 1747000045000, + "path": "/w/.artifacts/hero.svg", + "blob": "\n" + }, + { + "artifactId": "config.json", + "kind": "json", + "version": 1, + "seenAt": 1747000120000, + "path": "/w/.artifacts/config.json", + "blob": "{\n \"name\": \"landing\",\n \"version\": \"0.1.0\"\n}\n" + }, + { + "artifactId": "config.json", + "kind": "json", + "version": 2, + "seenAt": 1747000200000, + "path": "/w/.artifacts/config.json", + "blob": "{\n \"name\": \"landing\",\n \"version\": \"0.2.0\",\n \"port\": 3000\n}\n" + }, + { + "artifactId": "build.sh", + "kind": "sh", + "version": 1, + "seenAt": 1747000150000, + "path": "/w/.artifacts/build.sh", + "blob": "#!/bin/sh\nset -e\nnpm install\nnpm run build\n" + }, + { + "artifactId": "README.md", + "kind": "md", + "version": 1, + "seenAt": 1747000210000, + "path": "/w/.artifacts/README.md", + "blob": "# Landing\n\nStatic landing page for the demo product.\n\n## Build\n\n```sh\nsh build.sh\n```\n" + } + ] +} diff --git a/examples/desktop/docs/qa-artifact-evolution/01-list.png b/examples/desktop/docs/qa-artifact-evolution/01-list.png new file mode 100644 index 0000000000000000000000000000000000000000..50e3eb72a93149b3c80d9b0e3ee092fc70c7d161 GIT binary patch literal 81929 zcmeFZg;$pA);Ed@f`Wi_g8~B5NP~1EjdXXTNJ>eIl!PE4AR!>#9RkwbT>?sX=QrK! z-RIly{sYb!XN>a<#~N$l;(6}-y02@_U(F|2QC{-FeWLpa2nY|PrNopG5bhZuARwcl z+=icURobc`Al#z26ctrev9>fsK%kBE{KzWXqKFgFsD3}q>>(~G37hj^=BLaDW2xWE zS0|ok%nq^R6w8Sc4c6xhHc!gEdYD=o61_n6>lYJB!KZOFIw}6)_G;wq=lIHr2$m1- z>JhN7XIhm{tv4gzZhBGiY+pL|UCKD^Mah){lXQr#%QAw#5P?QM=X<82v5-?42by2j zopGt;zEzPVU)XafwtZgMhx5JJJoV{mytN{H(;U1b@w$HaiNP)H5kj^MN%A-bxjvqj zCm|9K{IF_AvK3Q>0!Z9s2v%_hvW=88WFkc!WtKZ%vl!pey?&;};}vw(>B#FDTEBE} zX07ND(>?yVhSI_s&+#wv3ulA=Job+ca;JL8D|l*xhHhv!9j`^yj}+8DQSy^GD|V(w ziryfh#mG$^jtSpFK%hX7786!={jxdhqNAdIfv`*5j6!K+;{O~e=DF#6_d+e(Z+%v| z$F}oK`T4fC)?58r`A$nB`KaO#aU(yVu;G5JS10gcx#PnkLeaSsF?_-)cN_8j*L@Gc zt3ygIu9G?b>JuuS{^$LVcF#P};9>o*7Yl1g=m}iJf4$n!sZjp=r=Nu=gi-$M|NDV> z`<}>u{S4s=rWEGiUGbkU79SyB%>VoW{QJ9mh**EwvYuptrZTyH{P<+SzsX_HL}N%P4s7{Ye=g5FsT^ zQVJvr4hsWp$aHNEBq&TRF>2qVJ60|{Tm@;or=QuRbh4pg4p>La^u*X$#fSUrA^7op z&K|rbxBa?T=4za1=;)C2ho+{~G&C*`Et_K*iMKYdtA!0e#__wNG9NY#&dvF7iDk=) z-u##kfL~AX)`JSrGX6a`UC=vOO;NGRa`x; zAEx76r9(A4nU6@rp@bu-tgM_6d;BX}p#s&j5-=zRM&nIm@O=}203SYlP*F}U)UGrG zSg(9fL;<6=uuxx4&emk!5n1WwOMpm(oQd@wXIL?$IDgA|HTu1Kp2rMF-rnV-ql3dk zdJFfw9$~fpkLI}sW%B;Ldr-`qYK@kbmRz=`MkgnwQx(t8&wni~G3(V;LDem{9ycP0 zjgNQx(?@!EvAVa^j(GbK1;s+I6lR*^!$3n{N>o;~kkHVXa%=pQen~;x^t3b-#Acs6 z$cQR*I!q@}5WG%z9|ankuvNo-F17?gG30hykMV1n_q2cl{piu7`uh6F$Veb^1c7qN z{Dj`;lH{H-QBl4U3*Ry_W~yE PIRMlX8WzUE!Qp* KJ}n3#~zZSR+O6IpO}c6Jh<3!vSREbohBTSmrwVlF#0 zwpI$iCX{>kG^<`cN~Q=64u)2}dvGva{e~v7H#R!jxO5V(3l>P^4Sl$QOJQa~0h8l) zs ^YOkGK z<-4k!oE!&7Ic#R#`nOJlY2uC7=k#;;TFgqv3-$FC72ln&Lz4_A;VA)(4ua9`d3hI? zlW~3TtL08?AWioJ_J6g8@VRXJ2LvSXyEzPHH15QbUH-fFpE3}ccE344v>efimdd!k zzTVw^b=c4-p;wKVnhjX!^2&2*3EO_A>S(J{KlK3N8|! CwRfP%LJ8`dYVVp{?uiU`0GV{p#yyLkWk07_U0M)tJ!bt-tR2v;ie3fY(E^ZGL`y zbo5(M(dt+}A0UTX7w>?Qy7bA++S-lT+K12)9N*R(>~Ip5`x#D*d_R_v@m6oHbJ-Dg zb}j(Sd3pBci9&_2bZ-#GO;=}Utvi=d>xXY5#0qk9peA6T>{gbPj0`AB;&MRwl}{09 zUwj4dK9)&0qo81JX68$LJn6$d0A7;OG}8-79Y#RhR+g9Po<^DVeF3O0`Xm}aXmnKa zOZ9Oe^XE|iu}N>expc)0NNY6feX61o9geQ1tn2_7URv5xrt3}9&!O(Nr9BZ5ku#5L zU!(&>?D(kKw;UOnfo3)~I0UEY0Y(FplP|Tj@UR@7(a`iya9e)GsiL?i3Rj^|NT>nj3WBuA#r z-i~0~3yyE0K8Dk)&+7{;tv`gw8&wS1Q~NqP?qf6t8GdeT?2n;Sp~dk7s@Kz#*VD5p z8^`2*x##S`&&0&e9xC*4vdA$1+c%`R?%sapDsRE4PLsKM;z!(4@_8d8hZz|-w|$CC zIz@ RQTRF=vSOvm8)xO=NA_M_g`^) z0>FIz`kt!QN^3}5rOl+jw`5-S*T8^TYOG+;QxZ9QRfL6oByyo$SeluQt#prjpRGt9 za)z;?Slkxj;DArOUS2i_Hr(6G$jdu5Hl|il!I`!+OYNVqGB-B|cZXHuiu~A+7?(Wd zeTiQ~!!QYH7MK%ppFTmK1Pt?FP+NvN^nctjX5xtU=~8nAZ|@r@K}lb}u%OX1GR~G+ z4(~MHG`w0Ak(2A)X}H*~-DyAtnWD3^`puv4_(=o(C4EY042Fh=P=iD8nI)J>+>SRV zw`Xf%Wsi5}cNQ0Y3^la0rnu(8u{g1V;$^?n=zUvELPEgf6hx6ds7xH3oOYI$_b@O7 z9hN(wJZ#U^(^sW~q>YUoy|7?_jEsD#J_ RnVqfe?99yNq %6YFhPEK2EYt`;2+l7tSHJ%s8P>t_9@u69Q%n6dJ7IdJL{)q5! z0q0E(506X06uW5AjxJmc*{V;2T9nk)$xS{qbw<-jiizRi Tp;AcrA#L3bL}(#c*4sd<8nyzJEF*AGI*a zL~Su^S1|DNUk;{A`c8x9XK7>e<(WD9dBEJn#OY!Xd5K2eY^@8kMv;)NZvEG<1~=DN zAk_{5xoGgbuz1X$XZDPimX@7;1XeuJzM&Z8OtyGX)}Z~}?6zPO>NghT=JMse2YC(1 z;?UY5yc>pt78##&sLVI7gI+FL*`WPQc*by%l1nIV{B!F1o-Y*@F$oB&OuJ*Hqn~_= zjrF?Ns%&a%dh+B6NK<0d)!sMPaGQ8cI#u@b0!T Jp zX&EMf?e;^m?dyi7Ql!7(XJ6mTjv-=^vhwl@`x~Kb deSU&x*sw`s%lDrlh0{3JND2 z)@riJmg$OUWBI6J8@08yu=+`Y-rs9#+Pb *tgP`u6nXkLWDT13_RNx!L3fbRE6Z34bWtZOw(g{w zTUuG!%+?^)GXsLjRd1Y~>H>@|rO;2%jcBN&1KgT4z=*~DIP@WZeQ9ZKUES@LBBzbp z&{$c}D5GEM=q3e=#e-N68j3XMV`*B8vZ?HB3$&J422F04?fG~Xb#-%d^Y*V_OU1>h zqc)}XQ8lsPfV%8RfWv^gLcsRyjbaq>&79!O6>y{8 +#SCjoTOK+>? zX$0c&^6+r;%5Uxb`ThHM5)XEr_l;ia2TZ84`d(**$sP|-cK tKn)YMRG>*Tl#5m^D43C=s$sX*ED@|s&)rC)g#|EqJ<)zyWEJA2>E8-wP+fjC~6 zlLOnIjfF)6 islIx+BnwpqYd0wdT@MxBmB+Z&QIUQY` zP)0|mFzRqC=;?XwX4 ^PfRv5HAD@p#25-yRn@-;$k6bi7Er+4@2Rane==#YdpG&I`SI)K zB@j&oV`oin&biF%QoG60OA|wtCc$&YZz%#@bZOLcc2+kjiS*`l$<@gzY=HCswg+u+ z#$;tfA|f!7sY)v<8XVV@ot!xI?3R0f7_h)I^0}Uc7dT>6Sl&>Npd{QYa9-|s$Q0+k zI`F6tV`_f>W}(UNZ}E$yl-vyfElDzh3?#kLfq@?^FSNDY4}SNirltbseep!)RbDVq z_?7NBB=`0B7r(#B#=+x>AmQ <6lJm^6zXBWweJz`5n+9OsjNxzNd+ zdj!A;s9!4>j*gB3P+BnrFIfZy$-T#*)Pqw9g@BG7A?C#sU}*)_)jZtX+)tlc9j%YH z@CG_ 8K z MiRy}e-~sr;VjWtElq%twc-gOp|Xhku|66B7|t*iIkMx$mS>t7OSPhu#Q6jY1M{ zIW#U0i!ND^j-235Mu@&XashE`r~X6_=>FPp7PP^0kkRfJ2%7v<%hwW5A0#0qMOM(F zp`igx|Ko?yA&`>a&`LnR+FL9F@ydOFxf47)@Djp?9&mDU0=5Q2Yz_L*uCbJijEJa` z(idr}A#k;zv+k~jZBj}!J8Lw5Ml&&C?1wjEMdNeb{Tk6fk1flnQ}wZB(F0n6-_G_Y zw#<9Y0NMx%LU%n=6wB|xt&Jxun^f-pnNhi=H}-= CGmaR&|lqhukiaRNae7X2+;z|u>6^Wv$7 dRPjQ@pX4s!9xIx4w71Jzd=LZZ2?Z=PG;iM_N0AGh-$;uiPP|;~t2^YJ zA5gYEDL@R)zR %a`a (!$U(@L={Xx3STeP04x``Nc^{;@-D7-VBn(= zg^8&tV4b^&h+pUP!Aj09SRlT;6Ct6?4yH8l3p*>TsRmCzts&^AT3RxxivGM`L4=k_ zRg{sH1#?WvoK#N|hlY}JX?0a9YuJ)K!N7N*w^uGZt06lZrKRZIJA~9?VUSm`p9yE@ z
^tAUaj}ODs4+(OF zF4&y88U`F??>v|jQT$Du^7&p+Rt)BwH*bK<`}>1;2G=2r)}r`S+`>wfoSYmhn2IR7 zsf8()YMKTUMK+d!$Mf9L!GVnkBd9GFy8QXs**!bSY_0ta>FC?HZv#3~(a>1^%^B+D z_Ygb;uoQ0Hy5%Y?ZvsgIxPQDJ*+-%hJwJXd45W&RZpVqF0-#OdbFpg)d|)wBQc(dQ z|HiTA_sUA@NSr~?F}y24^Qh?P#Ds)_TOjGA(lJ7Kz^_f_VX#=!R_Fqy#Qr}81Cdby zkjN*QZ;G_8&X}4NHj{u*#R}up$38y+T$!xs!Z|eGPr6_I p&G2g2Ne_@xF1RJwuabWGpw_NDK1G<*k!qQT|f^8~+lztO7 zYb%RN`=I$o@@kXLW@vJ &*F(bWxWGFTW+4XcMu z2ApDW1z45qXw`R>EZV0}Ioa9os}YJHiO `w@LlJfB!t0BljXysdpkX(@b?&arKe#YI #0tAbM`Wq_6 z2Q$h*Drwq*Q{rM_Py>cWll*;I-W%$6eEYUy)V@qd+fiG4L;4bUVrO(dDr!h+>6=|) ze sNiHmEl`icu4`|l6?5y(Y9 z9uvAHwiRI!pi!o{=`hHNS*~ n0=4bz|{n37}8C246!9v;8y-7!2oGE-SIMRW4=`MmhEv$FnNos9GG@k#H7 zdP@ySr2bale3_Y^E(gVXO
TEM6+p z)91p0PfL3YmmrXG1NswMi+@{v>R=E600ul+7JUKN332I$D*# ;{|g{KQjXZ$?D426Gs~?|JCJ(whs;u4*@FzoA7V@g2rWZXA%_T &s)4U& K6q5E!?e!x$)iN5_)Ag}V&>vcy}FJ%k25Wh z^>A@ (UyrKoE6ldpf15YKU zxDY$!s<#|eR8*=K);I3fRspdgNfXlQE<;o0)&+VGAVenMetbJp3UER(2#mY0h6fb! zb@g8{J2^SBSIHeJVFhQTrVau#QxV1P;(DJMLPf%o5FL$AN=jLCd3I3tr+;`?@a4-+ zKN<*Y{XKdwRaHR%Wbd#NovPUKTWa@%d;& M~r)TJ0eE=<}P5_;t3Dm88DD z#~~Wpp^~qnMfK{12nFVQF~Z^#kM~9_T5th5IXRYPQ+<7Xb9#Lg>HO_xH6TTN0ksd{ z^qXhtSy{+P`Y1A);a tOi3$FO5+#tLK!w%%+Y?+ZMYhmR z8_D1r%i%gGUtn-$WtnGWnM0A(()i57%gfEjckjttpd%17efCU+Ek4v7`8B;d69}Z{ zrIV^w-|FkPJ|=?02AeIwtD2Aq{i5Y9w{6Vn88I3fn*Y;D83NINLNaYXe)lGV;tsky zNZMe&!3(JSpTE%-W~x&OaDt)g@_S!jf=*SSTYKC|lk!oD>Pd8P;HUQm5qN311H1q7 ze2a?# GcSUvWHM7AXFYECiHp DgIE z=lc?ej+ZjtlOXfmz0VN;0-(gNSKO|jRO$A2ci)GG)`1KLyac=ukdXd5EsR=+2mONS z)rSK-5mC0jieL8X5()~o^R@q$4!G+#4h|(HC4I@yt?li-FHc{4_#eI!G@`N(YM=Yq zeq2K^j0gsGp5mO71|UYX2XwT6ICuqy>!FUNd%q{epO~3}WF4cMrpP@whXWSn3duj8 zyY4DBBQ9G1Y%;V`SC3nDNR7$@Voobu1(6H1mZwj%LHz(P*PD`?1f2*Ol1Q{ug|iSN zcoHpM+l>5cZOzWqG(I5#Jg3=#0Z9JjXMYuN-5qFezesYKBeSqU4jK*`Lc7B;mYrLf z6~wq`h!!lu`s&S_hdTSe#GllBmwZLBurRI*dSkw}AweLcc7 (`_!Ru39Gcz@< zsgRr;D@b?97Xtr HQ)!tUkE*(Q`tZi|G~Z8wE|Ut3>Hz3@An_Uv8_3Aqe8}-@ z!NCgl?}P9STTn}9KXXiE OIG>cnfBsBBNH}Ow_T>u+^o2oOsHJ9RPZCb$UhyQ!w`W;2r9LAJcrW%iJ~46F zq6{c_SV@*ho}sPxWQi#}PGc}xgoK0~9YLGp@VZLdg3j~4;md~)_t9Dqk+XvXcyGO; zEMN?FrkWyx#5ET?I|#-Np_>$GSy@1sfdp3+Yvh4B2ysd=F|ij3>}w&+4MO%7&d$dt z^WMzIXb&^;@-C03f!!ZZ!%{%_1?)@Ly m4aCF3@-2Lp7eUZDy;#hpxbb}X ~i-XV=8C*%@6`Rpr_gG$5%Z ziTsx&8xwGP)_~sC|3kZ35!1t?&eNk#sfHTbAq`E0Og;z>GqA@vFXLzfi;G_y8osv8 z-*r`V3_~5&!L`=FFG)#>NSVhhBr-MC(fI;J9s=&C7Z+flyypJ$U1bZYomjf^7NKS~ zc*9oK8|xdyKLtL-%I@K8tr?~WctQ}*&9w>+wHQnLo29mVaB?iSq#Q8F1pwYCsj7P1 zTpe+8j=2)$rTdk;pO7_iDAgOWGuR(W3}m3uzoUw3&XDH)$BA1ub{0>yLVNz)=1DXi z_shG!eVA@;ZmGVfzz^WhPTc{gUsFe4pDYB>S+qdN{thVHoXagnm;kG$YicU6fd>I7 zMs8r>6zmV-ta1HnEU-rJuEicg=J9TQ*Lo{c982Io9Ve9V&Ye5#vD+Pyl$Ms3BK4J! zo4-Wg`X*HV9rkyEg$zVGe*A!dEEH7HSKLyPl9J-$NC6_k!w=XwIUmsl a^yknp;Xi{Y^+@`8?%A{Jz? iFsDWnZ!J2&ANZ`V>G$YEf!opaaFyfJ9MCDX%F} zt}Hz-k0Esofst^TCF4ElVS4q@wa)8L=0tJD_U;hV1~9~e5C<+euwwI`&ygu9{br?u zn}NP}Z{7=2*#xx*fP+y{;S8f8?(Ve<0V>+sA^j?+TCTPqG*1o>b!wd wbIxp|gF_{Sy#sRmMGV^Or0)x)>NN2?N)Z2N`v?l(Jt W*N(azD53?9UtR5Swvt6l9v>ae)zOu$ zpDd3*%sewO@pHvtP)K8qY>{>mA1Pr)X;)D7>Qnm?xJ~dUI2qUPV{~+BaWOda#t`i$ z2!x`E!SgN6|HX??aKD%fG4uVQ^zlmt+?tWC`8Y`E`!vMN3}UZ;g(Qr=xUzY}0HUO{ zJKt#G^7)&Um6VmcmiBPblf+z;Vp|S1Zc%aUjnjob5mK*jiy<7lfsod?u_0Y9~w%4 z2yzg4!|2%9uY R Pg5RYM@ z_ygEmU8RZQS8||j4L73pZ&@rWL)*(2{WnpfaDq@Dq>%ZXFRhhBfB!a1RU*o!!Es7z zWCd*#h{5>C2)k()PTl6>7oIm0Hpk%p1mNR=YM}3Vgqzr#3|^F0T578B<46m3EzuUi z#?-zPL1shbzxqZ%fVjMTA8gaT0Jtn #&3{qZI6_us!?Qnfz z5CYp+Y)-akeVr&E;18!mJztCCoHEYi!i3H3cTYT+OE7^zgB2Wtf3rch0vS0>6#wV$ z$0%bF&%LiboSiEm2}hyQ|22@6j_%$L>H5~zbFa&))r2VaM4bDreSJ(oH@Ue9^e5ni zT%F8gqaYp{1$~1A2pESUA3hM7B*A11&?Zo;OEhi{sVmCLP&h9@n=)bJp{132rB@Fk zAfzR0YiiQIzOJ5uqwntSjw;{MX;chj8ZTbFP;^#ojv#mxRn{^T7Q75O6KY2r5_IGT zwH{%0oRlb{qB|_{FI-&4A%+1|Ojf1~{EnnABsx0R93C=ivG4auL=>QV3YlBk+9oY5 z5RgR#o$pa+z`)AauLIN57Z9h)(|m?V4!7ocxXK#Qo&t`3QKGV=Yl#L-Qz$7#K)UjG zUlL=2lH|dbrL}cfrbMnkAWBHzLNrCB``NQn>M!c9{_}^DT}~BT5pnTvAjwEumBW&M>D*)iZdG3XQ0E^M z$>eN9-8V784TcrZS$tt(<-&5khk)SYUyl-& {6ut&r%p<-a@fgat}{T=NtrC_5Fm>d=?xn;+E35w~6hE7g$5N`BqQEdt`GEMwL9WCw?vnp{XD%9TYD4hb<{78PkExstjG$Hz~K$O6)Vu3l4H+tR#U zpp8#^stBTNu`$g(#AXb^%{F>|w2{NGOld+j1Q3QGE|ZbLf3mkXHhz=!7E~+2H&3cE zGDfDS51 {k8=VX0xes$sjU5yVS05>e2Jp(Xx6;NJxl^ zdJv0u*XyRq!uOrTI1D uc>*$$2Z>DDZHBsO&Mi2o9h3;ojza)hd5J%bYj~b%a}&rpCWiOQEUtr zGWa5}$)T?UNrg=SEe@2#Q!9CS`Fr>7!D*M0mp?u@(5`=b)a^~G+-AU1VLu;!-TUVN z&?&Szs4r*_9{f#-d6Y9ZUY3AZDj?w1 chK^r<0M8`28~&8xTPsG(&Phug#T}m!NY)ZsgTsGcv}{h{p(N z&YKg$-;_aiR@KpgzyFq&1}ri%DaqEz=<%_tcRk?UNU4l;$q2johUe7Ot>fe4AaQhe z=R&Fs>cWZ_C&(X0t@l&SVbTlSAO^j<379=oSLcFseOVb0h7-V~?c?zr)?+j&9uAkM zd(^VAu5NCG#KZv1TU%RUoD%Z7?uU{BdH-_t|6+ftpZ)y`upYaqgwM=8fZ~Gl2ies< z;I+VslLfu?G&H1A73Gt7IXZ5+y1GI%8V3(nX$&%>l3(A(aOzOPaOJgw0(r+V9>a z<8hz@{j$3|L_RAkBLn19@4Z%hST@Xy7-5}8uPac+;D`cTAhoEG#Ky)}Q0NB)2^Wos zhzMvO-2A|R06@rjI@MVD>4k;f;7kD{wVNvI{Fm+Y9e`g1x#0HZCS(fZ!2eD7X%7Au zJnxAbr;R+#QiwVb5fj_bH_Xn@H-ckTMtV=s$RFaxvRqH1rpv9>g@uJdxb#Iry}Z1H ztg?|&8jOYH=32vK9W9rDnO?+0|H;YfwKZnY+tgqn!SHiU&3P0x1Q{Xf^}^yS8ZRZZ z(CX?lU+LSBYlCDxS__PH?QCAUxA8&LU~4MO@WB}sCQ3HdZ^(7|8h`qmjZLa0Aibhu zX4coeN}-Z*J-yPcg+YtupC3s*z;I1SAhL1ZNfnhuZ1;vN@@&;>R5=EKEk!#x1h+;? z YB( eVjr% QEl2n595)!hy84L}-NuY}CSkvM2qNdgTaR)vT6 zJF1RX80_BHuReD{a9Xd x`^f)qMj-^S zD(Ah=(*?SxPyYr%p|S-81b|OG-RSKNsuXy-_OmtAr+lxM+QJ|kLxmL#RTN;8@u^h? z-J&-*{Tmw_fM;MEdK~ M4c zyro@g_8_DcqQg)%(E<%2!9;8_5{YSSyaZ-45+b7F_mPE#1;|GI`0)cWUS40D8HI2n zr7o8u1jk?kfti^cHZuu{j;d-I$P6&4yCgWO|Ch2rzG=SdwQ=hQTu`MnH8tTJ1F*6O z$ieTnpDG&UygfsAjsxWy#u*^`!@|pZ4uMmsG;o!uFjTNf)5Kx}tR4bYV2Fi5nhKmM z*m{+fC!grmLF5&$ $v!nVs?mB!sl-Nw`G_kQtkr;zFq+A?Yz-0X_BY@up^~ zY8ob6yvOzo59CbX(8FiI8iJd;HCwChD0eSW4jKq35{$YvF--=D$jI$Ke}cO3H_-&v zB$>SGHGs0rygV5C;&pw3_AQ8ymlp=8s=x_{d;!R1ke|{n%Ki?91N0QoB0 h|vL^!zYD2cS1^X;*F&5Gli4KiXZt_9ZCrHj^dy`qN+*)x2LB;v{Zv;wmbo3mphb zFzX80W?pyBs)mL|C>P&zqTnF{2!_E8SAMccDV_Sa-@v7MFT%}VP|ycSM955m?$Y4G ztSl;8|1F@&gbmJ_o}%K{?9za%@c85)smTsIZAU7~H1d@%eG7l$&tV&AuKitnr zOZzqQUB#b_I#O!7();vcN7Bm50%px2DxL#^`^ZS>+vuw+&)FFrs!52VxM*of08@Z! z4R8xc8$7z4T+4qMT)+NsO=Qe~j37yFdv$d}2{7>DgdE5Mb#y1F_^SMGug-<&>AMG8 z7e-CZ%+`PXiiwZ+1cfd;TM{+|&~0|2u-0`|B_+)glSrJCZv_R%gOb|tX kXRftj9&DCVsFmEgS9~I);3BtEwc7n?R{jb3tmFJ@4uAQWBY7uyFyVnxRpj zpTC7`vEWpL8Tslr-`psDp}g>pbaZ6XC>TLYB_>XUw}+$zWQ^U88Jsk {-uy%8rUip5 zh2M>rgX1{|hc3XZ!iW}wvb0)Tfpd%8h5Fm5cs(!;3T)2%pqETk^h3cmM8M2&l)1R@ ztv4EX5{cz76^CnVr;-2k>C!SXUK~%8!@w%U55JE*RXu&XZ<2^1NYd$I3h`dAEB7Gu ztHFT**W=9qQa*v`uF(1Ha(g?wg4}etgaon2YwPl9gH{lgI$ZODI%q+p`^BI2pKp3G z&;Z$=bD0;;GTyq&*uVg{<0{N)78Vu)*1}EjBmt3sq81Kwy}KquER}ev9vu`dU) Uc zmzx{K_7BW1r?p!e8nTwm*6YC-*9qi5L9qe&43mV= TN5 zB`ruSRj~k6o#|=WtiO49C0(Jx(Vv`&X^bpHLnq!hC*BsnuppE>DB>3-+0)%k&%@)^ zaqF4b<2~pD*QZMn(^FF#46&)Hr Bh9};6rPc1%dH;G}ysCflSF>EuiT@^Fm?D}LCCX7=EyI!650-L6%M`bSbmIwt4 z9nj+WLX#kHoMb_T7V@F7vFioD-iHq(VU!DCcT?gX3?g&cXb_W @U9{(C;3dvj& z2Tlql*ooAUIKO`Vf+2$e1`8<9FwEJT$R$~nN8%%dg0ky=NDGlxvt5vr)6?r=Di(5r zFsld9k(BfsZMmJ15x>i}jr9hr3`1vE7v$4^Z;aam 9fgn}wOdXkuiJ3@9sL7( J@L1|OkUy;-niJYFDfq&4iC4rv=lxtgYpfnu0X5YXm>w@(!k*B&7?Uw z%=M$)6%`gX9HJsU{O%_qCmm%Ly(>b72Sg3{;r{-8nCi;R{M9HfZQ7WAuRJug=VGTY z;=SuB7#0c&7(|2LGBd&Nc; PPQs2(Ow=AQ4+;#d$=_Q3L?0J| zj)XmZ7*_I^0l!p@5xjQQhIN5KEGzHjWfK^L$79qoFz3?Trv-okgS5gX%lfKT)Cp34 zLKGA5Wd 9A*h2mkeJ`veaRRj`^6GxzTnywy4M* z>ZJ`QNH!9XM7qA@xpnIrpZPuv`u< yb4Xp_U>*FAIPG?fCx4(Bg@ z@-}AP_JPFqwkc(FCptPhR^BPby?$-*Y0S(xKZp{iZ$(Q{bq3x10(d|*Q@h;z8wFi7 z#((7y6Cxpxh #Pks&Fuf2AN3ma@;q(w_%*};_ zrV{&7uh|JF7Z(6u*liIG;7F6cFsp@cIMUVi{L0h{)#%|DXOPl)ljNU7L+tt6kR}fs zoKS*5kh{YTeliV#gGobk!p2nB1VTSp+)Qy `hDie8EA*9mok| zAm6|5y$xd^tA{s+`j3li`uz`5kmJIS9d@lP*i`rlUmYp1^!^Wf?->?V)`bhAb_)iA z36v;`3P=z|a XUXXYaMv8`fvlW65iej@FAY!yYF&BSYcxW#r{!2F3F@T_p3H zM~|uo u;(c%h0+CO<+%Qh42Q0%i qfUObj2(ElMz zkR{L&cD?p`_xJLj7yr<>m^PZ2G_KinIXfpGb(z~u>D%+}v)@1X{8H?l59j1JzwjYm zl4ZSpa&CP+XWg)r^`P9*P_`LoiB)~n25lr4s@!M#s$8ms-?_U>ZfuBF&Bv#TdZ>!n zZQ`a?0HvNyuDknsN3J}WXqYMTu_uLuuB2{+7DGVl3q2>^9H3gwv)R=vnOy1@jQaAY zPoJomT~o3omj4D~rxrgv>+B{gi+X-kvy(0f-`;r*DHP!@Rs1-mENW1MyH9{^=i6E2 zpByjQH?Ft5K46gDR{HS3DcivsR9)t#qc^2muX|AD>A&4dB-@(!=~JD@+DO-tGWYkC zO%UXjEyc#j%yc^TbP?_rul7-Qtp52E( auazH9#iQa1 z%Bb^Fji<&?gy-X~_$`A*o41f3Vf$cUur}GXks@OC{T%!^938J ;C4 zS-Ir|t0t`Whg*p0{7JTO@ZcXc8(i9sUNnb}kNDhfE3$JMny%n2><@EdPTcYHLdZPb zJw0ipHhM-zT-t6c#9vT=(l#YAQP?eyPfScqM8srqvibV^JI;9`zy5%1nSV2ZZ0+)m z?=L@mxEPu8+Z)c)U3zHf_YXLBmKlfrcs*BEVc$!j2(RoPA~^fGmJhU4CZ#;gxAb12 zli(#wpIJ4nVfq7fdD2TN>bZK7H;sLMN1gZVo%wnDQjQI-)V!bLzgR%_S!Ay1xhTai zJ3CK_ccn7C#1r(skvuO1KkIpx$FF7-443EZ(8%%Vp4ohGq+ZW!9OLlw ksb?H$emmZ|{jHn2gJP17fKmeG zw}~}Oyt8L9o(JFRr8Y%WYZdhV*JqXBvs7gL>+4E?ejJ%)BqETu)`tWNJw3f-^`u&3 zF`Xwa%~-oS%mu ZN?{!(%1i6Dq0y8Ikdg(}VQ?j-G|E(=?*wjQFI%Gg#`p z$bIa)eYdRt*9TAQdGY+`OFo;oSF^FnsBJdS(j@;R=(ydRkgUG4IJmZ!pJm qL%;7j-tnaS|33=D@Z;sU%MNx1@ut6jCL^m+2>CC! zM#o*=Y;ut)KiLPQgQR$`Z~gyo&ClWbzdqqEE>v9~wa>?caxyEtk~XQqB)iRJAm`_4 z2LF_gRZUhm&7zM`n&^qq;9R q7MpvjYJ&5)< gwi}rKzLL_-oT}d;IYRG Anb)y8pf&$J6gU}Dy=TX@0YhPkdr T z9yl>AW{oCUFT8$!KN LVic**RPyJnCy+y@A-L>EnezL zdkC4CnXO~?KTh*)teuvI-gk^Z;q|UbXA9}XWMtP4A|JDIy+_sI9f6j8A6mV7 Gz-YmpOWN zv>V$}LHeN71@ee8)|WITH&3RuO8mHf(m!G)?>9xanE7kaGEELWSB#Vy6tepF&F8^R z?pvd22uTgjZyt8`f?f4LzA1Dtv&C$>K%_dTHvFl4Y|n?EQwV?WsoUS}sS>A}Af`i@ zm`V)z_ghHm)gAk wjsxC^&vl%(_?B-MuJ2$ukL2-|#SfQp4~Np EoeNBj-wEatRsxNrNkEvp1E_DK| zuo+u!$(XdXsg;S0>W*VvW|M&Fh%{HPwwN}$?xLq(hTL;r{jWpEjtziC^-Of(J}~Jr zZf1@xzprfe>K4|6PuYeVH1u{*Qi?lB?Wg%RF)@KP1&f5}>2(mYK<&3_xIA-I=~?sG z4Hr2#x3za(K17<+r`vRN<>l$!dVF_eY9{;0k8}Y8%D!z=_<{%8fL_lU$SD#o0iv2$ zw__SP{9l7{ %a@!A#BCpzqii1*Vmwty!l}9og5`b)W@ct~ zSlie@5eA=y;aCNWDO jKpWsjJslmGNJ086fMkJBU-g;j zGZ8zJiB7k(K2%KNB77jpynG3ma$$L7KvV?uJLon7gP5r)C_+wLUj^C8dGUof9Gb4f z{tSq2z|l3Kg?cM1TxoiS2Rj$nZUWoUM`1!%e-omO&COd1U6e0h4us**>+A22Do4J! z#HsVi%=8q 9SG-`2*MdNv<5&0mJr)thY;FzSEP;bl+H$TE?1plq?b4}F_=dQ*p3!+HZ zbt4UExh(UsLx)QEO6JG9%v;hgQ$*JqkJ`JatIr<^)~?qw>T1JPqNFEj-hM^q bzI&}K 64FP&z zL<6y^sGD#GmIGBgcJ$G(<^fz&ON->7tw=!GC72F8nOeJ@-67(-sBCzaS;W?{A+f=q z?G`_lp0LoRLfje*5Yzt8alcR~Y~BhO)4bPhW6BasFB(kNP}+mm`XKRhMTJ)S&7rRK z`4W`!fFZ)&2Cwz?h2o8sE(`Is*$LEQdWZb;V`F0hAaEn$t#XQ_`3LoW$&IUU<8hyB z(C}pt1hD^1=;Bm^1_QKcTQ+azDV)8L8_p(Y+T;!@v^|nkUnWuMWOYc~QMN|;Pn6H< zlDvHSOd4Do_tVo`mojBTttxaV1>pPbj=aiilUHAV+mL?5cs(0b@d~Ys{vCnx4fz@+ z@2QwXu;$(^W!XqBF7|L*x)*p{Qc<~D$W_SU>x*r{I`#>Ee#-duLYJP^x3}*?PZ_~( zpnL+X7_GD$v1K>&)|Z!{u!o&26y ~8>5VcG(IY2YGww@ws%_Edpy_bjnsN>S>0<38km (q6Lil zpSnymkcN)-mZ_aG(q)hLBHX kuFn5_B6?I#l#q8pDTfUSFMu+p%_i&J|vcQV1ekOc2sbM?o7sDB>E3R%E z* AITl<8B405O)^;j9JLgi3KDhIF_aCoPguSb=O zq|D`H@9Je5cca#`I-ais(~D8F1M;!cbj4RVJ)|*?g6)<%*RR9&$PR^^9xr(QA-K@W zv%Oak8Y>?g#;32Trd9_;mx@{JS(r$Ro5sKU^X%>>rm6yYu!afIpUcbP3>DsC9?Y<3 z_xIGC@Ap~H-f_$mS$N&@N+7(!FoPpdUd~@BB5|cZ9KI|ALJPuH{}6Ol>T~%J@$&Iq z^ao=|KKFcl9oVnJU(djG l(Ir-uA(L^>m5IPBWfdG8y^QC>zSDzp e12Bg)17Ox>340L{fnn9%S(`TkL8mjMS6n%y_|hd9 ``f}8$%x>B$@Em=K~ zvuoEb!d=i8Pw6FMjhw$lX*pdAS`eO~V#`qNW}99=vk!N>9XfMgIXwFJs+|AIu0Ci> zyKmppH!o@~J@;UmLx=T?E0T@|w4Aley$VYsHo55{hjh#{Ie&QtKT(GOwxPwTldMGj zjogxwL#!XX>8dPWV0pn7I3t!)TpU$gOmZF53ZIIfs|V4~c7CB-2AeywfhVK$n AL-T%E~EPTtT`oz9=I4+;##^nu+ oUqX^a@v$ zYr3XCTkc1bEce-3PKReLZ-f2)xrmFib*CSl*Yl>qlB_H~w*rD`%m7s@Xw1%YMvwdy zDWFAnz=W*7LmBQo`26=3KbN6=c0?M$RH5xqveBC^tI~96Y3&w+kfR0bIy-?=0WCY$ znY`3g3uou$#^kme`uecNx*?MdOm91@!0lx$XL0a{k(_Ui5qDx9M+kL2po~rOP1_g} zL=3=~y$gY`3cYLo(HNOyRiQRZO?npVrINaj9z1{<4i_gUv_imk^X3|3ADMG-$dR52 z!+v;e&Vk7ROb~GGVd;mkQ>%AsMA&=_;l|R^pSXyxFE38fJ~)kg0o!5$0Wd~q#kNkG z$jQZ!m~f!aulKN|e)#CSbK5o;gb6#(hG-@ip` sY CEgxqRS!0P)4?1`ge* e$%_Wi~~VKoLFn=PK;53YGR#dg#j};I_;kJAEub z24-ZjwIu8fF?qAu8%(SVAt% UiC&rzE&F@8x$fDKx1>>Zu}wuJO_`Iw7Q`MYCkU#hU9TrWti0Z`G~v_TYm zys2rD{?%G4gmKxKnMhy~FD0fho%er%$>T}pk*wa t}ApQyr4ID0nl)Zf8%#{8(o&QG6NTXprm)_9O~GSX`;a$0Qp=YL86?mzgy zp-}2}h?Go6^8A}ZlTB`CrlPpa8AwxNp6!DC8{&fT|8xF*DXD=#5mP(Za?&|~k*56E zPmgcXMa`b1CMRkpD^-2rqJ3a=e258QkC}j|5+mu&AFn}!$fz?f>xPIlK%%!u97fJX zNl8hdfVgNUX`p_-9Ek(^oT##xXIFHCBb=(9)L_gX$x|MI&8Wj%FuW4j5`n^3TK~kN zbKbw3Etw-nH93(~=Gl1jMm?a6B=?Iq-V&%3f0*fKIRt0-B%izIsS+vkvSIj(VL*ck zCRrp;X(ehJn#qkOSFirKc|Wd#xzT5uGfVS=`+w@#v+S|)zYz``Q{(c#;U4_)?*sh5 zT&&J=@qwv^-Gt|l>n7WOf}dW{;{d`dPaeye;xaZl>)&sY4rnJ;*0kFx7N~x1NuHY^ z4Qa1Cg10=y|Er;o#sB-ocd3adY-M#vR+XbTNrNtxdeJ41bjf67TP5WD0ZQY3wT-zQ z3shq#swQ9_()(>2pNUm|umzKmgB3gREA}zXp>TTh 6gQ#X;QGs {X9}zE3(4B zenvl@%r~>tk)4s>CUZDk*V1u(-mAB%im|8sM?$j(4p9MAd#6N-p%sjwa1cz zuknFWyhG%hx|c#k?6%KP=wRU%pZd`A3l+4~1^%VyGDaDzy40*+JhiYe@w$3>j+Bhb z_$g`U&C<%~J1?*MG8Eg7$Ehcww*`t oqyX7Z#|mzX|oG(F|;4nj_u5Ep=quD7?J9SRB6 QrxGc$Yk$RIb0>Ph@DH6?*PpE^}s-0T0K+O_QFNhTpn6^hz!RX%uPGl&UY zDmu=^Ev|d@YL@%j9n`5vd7r341^=7osAY#jn(t3O{ TkM4VZKz?&zxcXx0VIW=>^#yUCp zJ&fFNDsk!YZTf_ys_(k5bPs}?xsP lyO}j gw&*@6RE~sfEu1*rS?V;r@x=I1MAX1c1HqTo9k0?O&HPF*z z(_uH$^Zh$`Hxe7G4@h>CFJDeVi!PC|k(65W2F*&)CgZ%cGz#aV?YX8O?*|4Py$~k3 z0X9)R3y61^{T(*d;$ROWpog9f8vS}-K_2b28wTd%Pf%^qaTz;pU5#bfykP2RMvIu$ zcVY!k{;S+v1N1OKqCO)$?n_!0pM%IY18-~zdoEs%TbUIK@K_8ErWTK~%G4bD{!y@S zZ9X4GBus{?mgu&^w0_&$USn|;YciBJItOQydBZuCHR-g!2a6Go6DLoxd+=3n+~-IM z=aQyUH$A;Q j}quQQ_7$F)wk}(|p}CLxHRyG+5(tlpZ@# zR`xE#X-;>L8LOD=M;FIYh0@TAFwAJd4=Dw!=a3uA%OeTdCK6F)z%S=tUZKn=9;N}h z(SZX`LPBWh1ivozRFw(CdJOE_G8CquZi1YTAj`*BOQ+}hM0Y|&6XGbJwPB3~q3rtl z`l9*PaNs~wYS%Clj`!SIXg-yeek?8Bw|8$|CU86yeeEO_ iPYz-vb#j+W3_+WclPg|kO!mX@UKZ)g zI``}A?mQ4VDIzp_k=wR5Mvc*u#)g{WNEp;iGPC8Jsb z4i*pqeFMpV&z_mKE{QxiTgpf+epTQNt?b8i7){PzKhnj-t!3YarJ!O{G@ISnB8Gyj zX5h;+r|uLTm-&fm%WV|!asf#zwQzp;LU@sIbu{AsXTlm#E_pzM;KC31CGD18c&gvD z;CuJ 06)lY2txk6&L^IRBQH7HnTojbt)fuX1bR !K{&SG;P?>F6FctuR#0^_}hG7_pgXJihPyyYqhy4B87A zh9AlQ{x)~zrUv7QHZGn0t7cfqBp1IO_IhVoE$&b_Spo}*?&^hho8WiXNIPV2pGd^o zfaLMgM;DxyhmPsGPAx%iX1ltW23w%x8t&}EYwdO`^Alh>@1YZ%zIV)h<@*DVrS~k6 zN*5xa>R9dC$TLrYC~V~WcWEq{HXbW&Q4@s@OLup@hxMSq?bh}dHB^+aw}*%=Z4S7% z&l%smK%tnL!T`_?mT|_7T&v!}L1QP@bv&R1k%3ED=wieA0cK0U2LYi)c5LXGn~x*N z@umR~HD2->wXx}f_o(e8!=YPe;7GN^vr_}xgY9#VfFb`STif#8pH<56rtjtO)6pHM zyS6wr;A_n@IGq_Ad(}NGIQZDHzj^)|> IH>~T#Z)2qAr5MrzW(3#}xNF z^yfVth-(@_bf*05rO<+}kszgC{liBMks`N6uUxY>?+R);N|X)neD~$e`}6&htMT2T z4#O61DfaL7oR$#j)0^0lJG(iGhf&9W6uV_r$FcbSyKK2O+bZow1e(WSG@%#vOiZ)0 zj91uc_I5URTHDx2<88|!F+2>|s`k?gT%p*ti|^*p*N-TH`%v|LmShSNd p#oj zd(yNz6D1kvb;?jNLo=C+4;jX{+sj?MV;BV8ZTkQICw*}-Co@xcT)Z6`U&xE#yBST+ zvN{*FK0Ckxr0bbbciu=piGn-J#lb;KaGk9!WpSIe@;NK4{6=)+I(#!M^2g{9?nLc7 zuI@hH5(ZOWr7-?mu!`%r%JS*vNzAKltao-E_&)95u6pqztDJwu(RmU+DH*6Q#(E9~ ze)Xg=!huJkT1$WRB#3FE@6hV(hkM(F5867pI6D3yyLfIgs(F6q-n|% `&!kRH;O$(BFn@mec0Glr?}^2eY1Sar&ctc zWx8j@Uv?k0P _FLA1=`agJ}fNc;pD`BQ1@0RLz zQd8F%*YnI=s7{WHn~&OXEzDgiwN+7K&$lHd$2ER)8J@3;irjlXrB=_IoH;`Zk}&T& z9M1*HXQ2lUQUkk=JYHDr37RznoVi1%x4PngBztvOqnMH3_;GusNmls=V{u>5$9wmf zWE`xl4vUJu8Xb!FpkrZKct^g0s#iy@O%pH@UH7HH 5B3!S4#7|#^X{;*ox-=Ec$)#(`8bym>MIq;%4A#``7?YJC~qg!sf zciUz_IGjk$ckQz3SHLO|uhf9r^T!Y8MCtqF{;KK?0=Tqvi&UDsu`pi96YytWlnf*s z!V{)|2EU&SQ;L_|(CP^bYsGk03N!5`G@B{1ATgg5S>rmmlZr|=y*Ca%K2&;?+qPL- zh_C~jN3nPiA_h%W)pWO&M?i?V1Q$MQSrobr*C)XGL~c9=X<$hSyxoo|hP=M^ZX?(9 zN+=;ZX9=9vqNRSQO8`4i(R@#AN70>!EB}I0tH`c%-nfznj#5#J(gISLjnXv`T9z^(_Bt(`U8@= z17t=FA5F9qVl)E{Z`3c^kQ4XBd@{XkzEWul{2J7R!RJc3(ALkz`)&<3myp;xU=Aq| z6Ei!P*=vMZ?JaUm$Gq%AsE}^F6~*LLp@2rlwtsgFwV0)z@;NV_JJc*iW-XHj73Lnp z30=wBOYdMD)Kfq;fRzeq48oRn(N`I07;2hY*xzcJ3NY=x_(Hn_l+K4`9zA3bOv#V| zhz?75(5=wgf`=D(x_qVC!Cuj*)DKnVv}3)cD9yr+McqL &rbq z;TI|`ZMyqTqy`rq^Q$nyj)j=YN>S=e2Z4io319Y$%o*R-?Z5YmN-u&@{MM(Mgb1b? z#@?2{m^uT>eR=Mg0iv|Dd~Bm&XBS9wNMyNGYhrMao%Nh%t9G_U`1eu9q325Rs9V5x zU);f#6a$=IGrZ>kWX8?eSsD!S3J;^Uz}G(7b`6)OMV_HJSu1qAm7n!Pe3W~Cd-K|L zQQM)|;NdxEr`(VfCdh2$D1eoxxWsz^J}2CTjX?_KanoD3I%YOv<0mGnR0wyWgb0+s ztf3JV8amWYVv(3X`q72ktr05s29vqC3wr2_rX1<|*G#1S04P6J2=&k+6I~ 8P60;l z1{bef8GUw`ii!R(k)4CXPX7r{mAHdSQUkn~_cZA^T&UiM0rM=1i>f3&tM22uUAe1m zA`%iQ198-#QJjxf(T0GeN>CrzU?k0r`j>wU^oa-a7MnIC0yL73beqqOk91azuM^f4 zah`34WOifHXP|eiPxQ1IpbO~!5o|9nuTO04>G9J*jsE!F?ZN{if4fW+8m-JTwV}yl zfm6jkjny30%GNAB_&O`QXPLgAC%%07IWzNkQ|iWWs)yV4zVd~>tgBEEcOkh~4*pT% z75{i`@_?YZnY#KL)da;05vv(%NPs_A^FBUC6%@p5ffgGC(sUhfKkgi>8?DZfB76E( zXQTDYnoRDxmzVD6s!{SV*{@&w!Xe=Iuu+jE#=&W2LFNMCZarJXpnuv~RYJVas6^3( zPr29S$_Bz+iVfC1he~yX%)(si&a|MV4lI-B*A^rT1|miK_Ia|&Id7~{R~pVNPU-82 zSahx5ww^YYQFNL7){S}}&;gl;`+2g7ckX~6#3b%K3OEj~>T2d-W5E}}9Tf^tq)-tV zT8iOOPt~;<4?MqR3%T74iK#cJw|rHK-H3?L&UwrdDLilCtTjkgNV@M(`=PoHfvK{A zK_F=VV-_AG?RD2qtj?u+ X kZ{dmyN8SnETl5N$O@&uAm0OO=ewGdkZ`pq=1S43xr~nwi#t0yc~bBh zls|>W>^3&frRjVGl}s!wq=pI+q7K`B@ENSF9VW!vNB$xo@5;5&fO|loMpgJ}Q$w^K zhH(wbE3i|#a5Nx3iL~>1GV|G)n4pIjBn4-@+$9Rt_Vc_6;ziL*#&(;0Z%T`Rd>$ z$r;1_>K3L;jtUBmY4Zsj%a6~bWH8soF<9TP 81txP1_7C0> zdV2M&ClB7}4jG|)l-p@`Y6oj3=a^GL!h` -Tn6z$RrL^2R!;6}?)2K#44#vricGhgexML* zikB|+&Qx#I<{l9dDUUr*noi33nWRMeODNsE>tB+*Rw4F|FAQaZE>b)ZsI)ZnF*RIf z7B#<`oitZ9VA`XfX~jpcpTB0D5Ig;}0j072N8ecAMQF)oofW62EPpEBH h^&YUs|xeQNTo8Lb >IpnHnwz_3DE7^7bSF& zdG~I5uyk-$=2WI>SFl=P$p=KOs5lF&<}A&H_DMjns5B$OZf@=dL#e7DU`P$saU_(8 zizyGB{7{#L3nP2$bj#d)&URY_*qtuSg;m2|7b;WT>|3j4a))9mlH+ GEWL@% zDKW{CBT#sFS=+vv58koWmp*amwFe7y?wl5ij{OQ)C`?dGVA)tyy!P#&oIkvAv1`vR zM_rZ90&5jaqm`9~D`m`$HeClXCf`=)ybyOxp)wGa8^4f?X)iwc)=m84kL`_YpgL)D z$&Aq(`H%Z(St6{BbDW>^?CfEran1{p_yOlU=N)8Gc*t|r8ZC0JJ3AX RRrYEWOGw($$i8}!?|-CH#wvt=}rr?-GTQ2y%~!MwHk*q=D* z;QrzpKlroH$rBpZ`m=M_US1-7ZpWFQS`{hkuf~AA%j+($ie+iW*8bF~=>7{Ey-;E2 zr@z2bP0?TyC>?X%?IQm6t-@rR6zL>n&Os#F&r=e5l?CFt+_dePjVJ;uh|VaK8Q1?H z!h4b=SfqoWmvZdgo~#Zw4V&Ds=tb?{sM+; O)`xO`GW;-#CU@A39+Y4HkaB_UhfhO-K|oEI4c*)_D% zFu!B`2a$kmR_NE6+zF8v2ZlJs-kK_t;Lk~cUn8+f6!f{-DPTd;2uv#d55IIB$L~BB zR9x~rXH@m{q9P-&s;FEcWsE*}T5jF4asFNdxDdn)8*@3hEZn;{bWh(-9^w7jvu70* zzdU9=D>8cRWGLdar}73Mkfv%Z%xG$9fl2j`Y63W>-xBDTM}2;Pfsu!Red6QDq^d_) zHg%J;xT1lU<0Gn-1tSVp=R=3Njvv>1GpaNYG!W@BPgk7NFh)N7Y9MN3B#2up(((IL z{)BGlbsu1C@HD}rP*Sq0n>s##+H$Am`_0(F+uPqqCPr7g|I*dqgT&)m{($Ydx3x$} zkboc?+vmQ^PKMW^hNU(jqBa8#&flwxT^sIjNPAn@6Qc&Cw5`+Jc_1Pi%@y+{=~;M4 zm+PoE|AX#kn@>|7H z@g_SvN}nH!i3XDhnMPxNk%)1#HH0xAZ@>=#jP%;(&Q6H#kbdmDU&N4m_0`vksArva zZ?C9X>>;oR9+J?UN%H
2}RF}eD!`YVkx(B#2^B?y3x%`B$_rC^` zX3@Sl_cb>AA#;Rde-dhe51?rUC)RIuwmA)$+Cq=bL;ImvIz9WA*s8-mK0e}$-`0#q zHkL;$BE_7Bhm!^_L`hWEF2aJDSu|+j%c){fne@S{(gCxBBX%n`ZChLePnE9xvCKie zFKoJ;tJr<1ej@l!9f^-MYiIfQGkDXSk@#!;C23UlhisLV+Rw3b2SAw zZ3RfOuueyJ0feGVr#bo9*cQK-gIgsX!v{qZ+NR$~V-$0I4M9BI!+@AEtxsR_e*wZc zTxj5A1yHW+n$QS$0KhGJ-$(Hv-LQYQ(@|$Vhe|vYMIa0VEMb!a1&Mrv#l?Y{&LDTg zV>Rr+{!LeXn05u8-$moVpT%Fv&zYUB_QvE`lfBm1O_# T0r!eSww?^CL~w zwY6!rPv9s7zmwAX;h8O4cMf(I=If>w!?djLQ?Vv0(f97jK}5W^JU2H#Z+<0lw)NTx z3RXODPy{G4L6os?yEjQ21OKd6SW=6K0CRzyAl#h3f3SH8<~wlZ%1lc;AYc{}qdyR& z@#9(4sHmtQL5p$O=%@*VTK`kKiOEoHO#Vk1oEg;Oy25;ee40a|qVcarT}>O?G=q}! zA3LVMad7Axm=S-*xPE1(e cy={6{CRDN@9){PPpR?2ETZQ?$|ivFD^n8O1=A zn>A|3a53)p1#b@A!fLJ?B?D1W#V!kxf}K|e$HwMBh7D;9y?6iq@^nQX%(D6;a377n zEE<`ZB+df7v~Nj|4NmGt{by;qVk4{*RQgx19^UD=aYLO)bN1a>wx1jFZf3`C@4kP( zkpM%g1%QN*L}v~bTlXb4>FF8gJ=iZ`){OZ0gwyn1lpbbh)imbk_)|dms+D00a6g&w z?fiqzD3Lkc2db5l)6M#)zH~8*J2$_7f0hFDxiVBwAw^K3=mETd*?s1(F4vh#w}rJB zn8Z=+VrHI)=Xby^(%zLb52scczx7j8Vs^u@1j%wzh=CC!JtYNlY^~@|rmX9Z$u!@` zLOIn$*olrNi52rNhIjj}4-VyBe_~&`e_r-onx69Q<-!vU_5QI{WvT;=yuy5G3mseX zXERin#=_ L^UNr--p(hy$g5GJo&{aDqAv~hSois``4>O)oa<%_(cqW|ur zS(^H-eka)2*zuTY(#}AE(b8gfA1zsSj&_fY=^z oNK6kXjTr>ur0ELM5`avZ5SfnH>|;g9L4$(&cMK zMMf?CGFs7n^Qt4#z- Jj}1xA -t*6uU*}sVMkTcIC}w;|` PkaegmQ96mv?$D749ahE?0O1Y_i#Taa4IJ!p&;sibtMfCfl+(T)cU&4 z`jp>_`{MPFWdXO)vFn+T6`|rdDNyumG&D6uFB({ga6Twy9p&TKP7M_qTP*RQ^U}U^m^ttBV9+*DFqoDsvHTTFd zmdf&S+LGq1q>be4N9h^)|Lik>an5|bn#~t2EC?_I=LxQel_NzYgF>xtQu}xBX576S z?Mw}7Q`Ak7n5J4uEjDUdC`F33tX7SIT^f3_FH*l$75B&oh)>Hu8xZaUaV^ -vxP9lrr9^gR2qJgc6qLrVIv_fi()Glg^6*EO$?A+@y* zm~O1%kCwAHU6+?Hhc_ZEx3lv7E%6szzP)KPuP!SiWkq*)9eyE!Xi_1_m51mENI1%6 z{A$8fqzjyrtu12y)DDEhq;H(-NF(>xyg2xU!DhA{Xcb5pGv6QZ%DUa5%rDD~kyiX7 zAEC7HVb2B-fa3NLw5JOf_z3$uSUDEWHMThyO7NIJK+_}iF$CAN4^Pjo9}F>LI?xIx zXR1eFc74*Mp1XgntjvdU>-(o10U#gO*f*>tWE8HNrH$WwG~Zt|A49&@x2 f*2W(;If+}g!}oKEsAcBm=xf$g9%;@;9LcbRg8?lW@TWB0(L!9vZGq_ zg)_((@Qns%q$)*Cvo!(Z0P9GU?6hwwQ?h=*kSvUe;^;z?20vi__Vy7l`c_p_{!n_X zXu90BE^1ebwv| h z%idE<-kj2o_w}vB%_GuaTQY8zJbCi#Q>yK(aY_*;`ub{c(o|8oW L!bh;rHfq#qI4bK8<4>`JHD>*qeJ-@7`#)o>N_jmNLr=#IXfs;+;aTdXG`=t64 z9_u!7I@D;{g1cdS@omE}b~alV@a))#gN@v8(cp(-7Zyc|S|x`eTryeBrlsX&drS%r zj+WJ0MXz^{(d8vZhWf!+TU%qqdqyISDCoeM6N)K(Ot(uy|5@&7(Tq(tyEeG5l9)l` z!4vJxl%kGGu;LdJa&jMG8$+<$SAegrKNCL1#K?$!N1?(l3`SV{5O%`I{tBQ!)PCAi z^=_hoa)00PN{>ch?c-e@CqTz}_jfQY@A|h02U@BFC(%&D2;HQ)rC0ibo4 q>5I0=8f^sf5QOIMxfQArL%RkByYju=l#}XNdfCD6aahLh05~$oCCGJ0E_|U0( zauO}{x}a#K4Wb9bS#`}IaG%EpkDOdd=8 l(Q( ??16t?fxa2cKsyI*jBHEyN%a&K_crJR<0-LY@Mdl>RRUOVw6Wa{pa!#3&($ei9+ z1i2kx$nX0|=Mv^HKQ$F8Fven?t4+~8GBWe|Fg2p7*tp2gmEwoR%Mu$*1kE2_PH0Dy z=I(Fb4ieGH!e#Q^3fA3YN0^ue&0l3_2j9x{^h^P4^dxeYa>ouk2aUp+s()b9my}qX zlhd0~y)H}cLtQKvUzhd)^kgX+8?QfzP4_?=G^kk5Fz;|qZk#U5zr+3Y!r$kyuta1g z#?LnL2i71?`zJm-+o57h$(^=C@+(W|*%+pYq7(gC%j*}0*x4LlUTw^`u{G>n<`b{k zl3DfbLP?2SEXE-Fl6eLVHYCNvKj8iR3%288d9CrvAA-28wr#r?caW2h4}H|&y@KWn zOVsL`5jI9kcZ=-v{pvrkq!!wJV@Z0*EOJpx&4}^z+s=<^34ISb*HTs;-w3?&nXWaC zH@$4}01_m$pmT5t9FloLyfbg@pn+@*C`TO$bnSj`;s5o_J=KJV_vtgOdg4}BH**|> z$(Z2&o!74y#@ebJ3a&VOs05%rHmJ%iB{emXadw_W8a$kE#WS%xOnpQTlIJ0#DDHgQ zAwSzmYman%rMJGmo;4=*CUfEoiV#N4&(0Q%q==&6^dj&SIvS!GWVm$H$BeA3+s=x< zaoQBoD(qb9Jo^Y&dQB?zi`tg@v~yHgi6@dbn|#g9Fi<$Y&oWDKLB~3GG}WSyyNiDp zK7x#E=Yib~`3}bK=YeUxakca&@S!k-nl-$ba`N&L8^X}fTFZjTAW~B2*f?XS)54Rm z2p?0$P2E-RJ&KD4JsR~ExuaXVD*Aik#h<=OKkBUeD7?^ALt}%>PL1KRt=(Mq_t|$4 z?nEdJjEuBRK1P4YrI}$oUMV_j7ku5_gT!Nl3JN46w@EngC{tK{lX8`lOK{5m@`a1_ z19~riSvWmAX_>u0S?yT wtQ`E~s zJI}(*qQQ>CB5myS)R_V-ua;K_b|_IzS4YmwE|}En9sBf$ub8g&_l1&rX}|e}2aJ38 z(~tCMJvI+u(D{DZWOiX8+xSw#dOF2zE2}3oC0$+0&Lb0D=P7nEiA#t$KifBwS#wUL zIUxW{cFolm(v1*&(=YkFX_MT>2W2IR_Q8uBT6vb;e>=q}#jh+4*i}lz1O%vo0_jbo zmA!7*=?-65RDKPqT`o&M+|NoBvix=pR1&8ZbhLKP^}D35&a^6tr(d1xQ(c`Jh1Gh& z+%aB(wV!Mn2Ktk1pmJGPhD9YNC4sW@wXshdyPxO|R{Nt(A?piO-M*>3c@qm^3q`yR zuLC^h3uLN2i(A}!ED{(m?Q!Yq=;BT9j$U_vg8wI5t7J{??Pp{XO}b=`4W*&Mqoub9 zs7FrDhYlTsG=;mFsxNb2y<(hU 9QE?iHDk4$;Bs^1cTCa %D-+|PA9kOj?${k`M z)gj1QRjMOdIRiPx#Q`E6W@n$YSg~kH2h~t8bR*klVBA#2D3z@3phw#lj?=-3lq+f` zo7c?F=5sLEi-zegw9 )-yGYO@xEXDtB2-mmutto(*p OOt7T^WkI1n*N#DSkHDtwc_gt z7)){wdm$(kunUpgSb~;X_ckR6mg6ygN+`H63Rzmh&HVcHGYBNXuACW)S9oz+GBp%v z;CM@hAdmS-P4xTCTU=0YXZ?_Fpr8Y2Ovt)U@<&xJlQmRP;O6IV$y(XaRM{PIxK2qY zGc`H6|5SgY`teC+2P&IIvoUXKea=KvUtc8_F*kM5jf@%12&<);$S3a_<;ah4k~h># z1jNsWYU`@85-l?vvc7+#J$fN8KQnXm!@U6TKw!N7lI9Ti7y#5qcPXNTrpzBy9hPp- zv>hTT9l-ppEE5h02sj>G0U l%f?WS+GVsR(+xjaYA zD)=Tk!RXO;J9~bdsdYLU6U|cp;K73J=n!5R)&SXMH{425f6+o5T*T6ecrKV{Z4_xP z!fdTVXJ49<(o$G=1i|jsopeK}zKYllXM&|_6zOCS;+N{;KzBEys)dSR4_HZ>@|h_q zJ^Fa#1*~)m3_$y@d>IWy4!dLpcrK)d?2y8rm!5a(_NF5c{+3*`EjwLRO(KC<8+@7W z)9dZ+Wjn?abkr0D*C4<4U+X1hhwIGUa0_Ou+!*jUr1wNc2wGHK_I0h`7VNUFsO;xP zu8i!g>AM#)lF6>i9eJOq?XKjFm(0H~$<= *ENRvcBYGzE?qY9C z4VM%mxnD(JjyZErn Su`2C;??j{p}FKw`A%{E`_ zLa<1x=dn))Y2EQ5{t>=_@`2NISqn_2t3Q8kP16siDJd(nDk0`W3}6sQZgb%$G x;oVwy~|!9a^|(rCC!xL74LtJN-zu><@Ym91U*}8 zO?vgpU*M>j;~=Q 7VISx=KJ&4f#63Yw)^cKg-b`rp_w zJ&!k08PY&m14bNT29EiB0;X$|1k=-_tKL37-acB_H__}sL%{bw)Y;3gHO?Omkb`{S zJIqAr2(}YdXYZ0O*i+JN`jr8X@%O$s+0{=QtwD9e^uAje{L5}KGmmS0t?O93pGVrF zxNE646IeeWy?Y!Q8u<9}t6Ki_&2neY-Z^((#?N#uPvm~UvAX*Y9soYQ)ta{2Tb7Aj zAI?HOeu74os-#c)@yZOG-$lA+*0cZMCYX#6L|#67_RMJ}a+cIMZxqs*fZ$*c^b<#7 z-mLF84_n>jAE-Xrl?x1G##Z{)NTnt%Epm>t;(Rsztuj(~-|XAJU&y+b8x0lE<1(A3 z1XlY(LW@K3Q3x9ITl0SKd0$I-6QY|&+VbwdL9p1GM`VEUqF<)nHk?MP=caT_E$5cB zkF%83#{9ZDmeGlc TS&{LNYF zi`Q{@PHW?y>FBiO{Q#+qbp!;q7wSgW+2zO)@m~f8!ylCcL5aq9q*@Z$H{M?BT-94` zwX|)SX&15f349@eiz1tU9!GXfE?T9zrOZ~OP$?dj@Fkq)w;F?BnGd$Mk^V)uDdt2`3Pm&3FGuqK9+^#L@TQ{A`LuZ-Zu2R;{V^j zyFYl)CjArZ&yipfc}hdK5Uvy-&{=*nUBc}Us*vd%RId^fVZQYdDw y?5D`&O5KvM{Cn_i{C|wpUAT8|#L`6WP z1SF)9?gk4Gk&YoP-Q79%HE@3G_pQD5S?Bz5)*gS%semwe-{*av`@XL_nb)~ZWKT>L zS!856cSl1
i3X7b-`XC2?@iTkGi!%ga>xRAMknMHTSz z;|V}qz^jmneS`sL@ostmX2zY?C|S!q(opIE@Y}s_9K6W@Z|^{F?`1IZuZwkEv|ExQ zEHJaPuqv*uIC3vX=ZCXp&-3->9Z=u1^L(L_`LD6}7_Po#I}9(x5WAJtdD^;hMq!=G z)lu@%p}PAQFDA^}6kRX)q(!;O_v`x>+!jYVJk$)v&z(d()yo&k_igMw7OC3dqcmGn zBCD#(QsnU;0M(HWT!2uAm6rB)HF*i}g*IlxqT%eLcWIzKZ}z}JpH4?&(SC+!HKBq` ztmD3o*b-(Z3XElfd8BMqH8qLV{F4q~{>4yWMPW2svedIydEHAfA|_@ai?A_Y$xc%> zxetUU6!4^hcf*SlC?sJ~Ph2D(kqNO$DJ4r#NOI`);DtSTPY+Kpb>;W(F*1$<+}w9; zK P8gMe)?j$JE-RrV{vt20RY(3lJb^NT+=N4C7bd%8 zlA7%nTI!Qj9o=8OGBMR(?H8>%)Fhl1CmGAzX`9f?Ni=!VZ8o2GAS7}7wwNPfO7@21 z74`BlM=Y`iuH9^{`}=;wN(a^O!MlFxZTx=USudozX`}>HxQN`v9*UPLp6t+2dKY9u zZXRMlE99@7W#y%&6@*<6VxLP(AFZ}MacMT4(pp1JZd5Ry4Wx%tr`qu66e6eU#pqb! zKYx9ogU4uXetB?k)I1**iBVqv5gMA(r`x8X=L_S~``(%*4CkuUx=(l}kaJ-Vodhnx z{7_v{R1_C*FSJoH NKKq8V{x{gvo_a0T&1q-SJQ6#%-PM)3zZ)T5)6Fc=i4m1M;T dG=@&Ul= zuRl$ya?Fp9GoA!VT|cX=L;WzVAlt=@=jiEgM%JliWK2S@RPjaz?kcB?pnLwvl5$?D z#No?m3b8Wt na{OW2X?tX@gEZbZP0Tc(m#Kh+oX}$MsP!C rU6~{ViwTJV8pi!2u3^ME3AiCd9wz86KvT6@T`4mJbLh;ysYfd;9voQw)FfO z(LPrNFE)ZT6IBqR?Ms@WY~ejYL17gr=^tz>3X?d?Zy5L^&-52;ezvC0l8 z`8m$Mde2vr%Pwa*!b6S6F$g*Y)o7*pn4H*Pi e2|VvKMYy7#t4;rMr-Q~&H)?_HgNnt9 zNX^9twY2nAQ6tc}SpC~!W;QlNyC^?=*w5f4sajxJ#9d4xsb|u7^xYva0WmSx^;JoF z((7Rr I%4dSzi^-oRl} zzp{mwnV-J^MTfWqg8Ei_YTtha+{9D& 6vr|f zuP0LCIqyX!91#5R7g^fi4Ug^=isuu{MP*u)3@a^{FMo5TJi)fxAlg~QejQt|)Z%3o z6Ul^>obSV@hlh{hbOgwSLF{s!*rX$nFQ~W8O-!D@P-bN%=uNa4E5d>Ayjrf-bkB8& zUQJ6Jype>*qL9et_}r3^T!e5QJklzuzoJXsg{=oeTtV~0nW3CDBIaJ_uzUtBn{Hi1 z4sm^Q5peKf)J0IIk2Vw4$Ira2|Fk+8#%DbhjwZ~kgmh?SO5o`}Byvs6%iZ%tiUM)} zR&8x 1sKUs77yzb6xw!wCWFsgFdsphHm@ zMR^M4N2IgYG0uFr-UaYyafKPTU#dK;73B{u^nkiI$}Fys>DiiqARdLnci7=~(>ttl zHy7TrF$fI?Mv$J)LH`xoNtG?|%HZ-a((Tzo{}ppIev@BYFfgMj7 *N%1vhI_p>KG|Dg~2fIXV56$+agI1{yv?-8yXr z1v6{g?Zvf2o~%~)!BS!F!f3gVXk_=bn<@?V(!Np0Jet)+IC(7HKWV+iL}hBKvtHVv zySpe>#_^}tg|B5sX+vnO1s}BvgN6dxQLzw7{Tmi$j0dK@ol|aSl0w1b`-$THJO~mS zeyoacYGh^zUq}^`tM7)r*KFM%f8-;XuoQ}Rwg5L*S0OONM4l&}uPk}ZmGpl^z8Z}D zkFJ;8ba6(YD3}9Lmt@8FMMt8FumADc#pN{pwHr5HAC?*Ky`SeA3M7mYRZdyso8Vvu z7o{Sbs*xrSCg01KFMDL~+@X=(n4iy=rNZhmHJxVn$8G&{XV1c-pQGiDaX-@528SEy z;0b69l)Mzo5CF~>On!ZYba@f8x71lE8#_%r4Z{YD`Rg0QOd- zVO;DxI@OJ#bP(KPnDuMRJc5A^;t40CM_;pV$5kaI {vqV)) zzv6N4dEFS%qz`IL-`JSlcB;F2-Jc0pMgG2jPXWnsrd`GBC_agE4QH&{FK$5ZK(>2D zBL2jQ6PQpzLqLp?3f8H%`^;r;^5bnC!bM|@4j-n9QdP6Ht&|#|rB$`sPeZyry0Ls# z69R@mrM^7tcyQrpdWIR4%yx4_lcAv}j_~g%KU(Wp6G}>m7ZS<=*8uU{n0;RCDwJ&{ z$imIlH<;Ix#;QQC<*ih3_Sr*8#cyiIZ;^*>Sl R z0hBq}c`rSDF2DoPbb*rwXVXOGHX5+ zs56jPkl=q_nem|uwZ{Nad*2S>*&l_uxj>Ri)SDX2SalHYhsaYEmDUnRV!ZrhQEQFH z#Ov5tH%Ug6P&nL=xJ4bo;V=;GTrVHpfGdh?gKQ&;6R!{~wT{^Bo}O&DM`Rli$lWDL zJRRH-FOQDX+g;MqAiRTN2FE1BnGmeR!a}uZxj?%7GU3gMRVKe_p1|qT);(VfFjy}5 z@x##FsTLyru9C{M`|&^z7nY`dK>E99e@oun7kf+R(Id^OHn)_O@2D0OBY7*yo}SHf zX21RT!ttb=Rf(g73?IsSgWdY{Uqg~oi{sGkrqb3%Yc_1{c4AxieOdBkYVkYB3A^Zz zA3sm$!OacN=k=_*PZ7aIMb1xhBm$Ue1QB
ono3SIPJtLm9(07(!+mv}n(7!17nlb|MfL4o(KrXMX*~T J;`a*Zp~jn zkdv3kVBZX`#pnW2%+^I3b5Hh863e%}K?lK2L53EybRRQm9h;k!5FN&rrVqlwaDHK< z^29zwfpKek*0(!t-FELjFFJWP#M73RB3rsP!WjVnl`B`kKY=3ROF=21(ilQ&TEx&@ za$C>lF#)xP6rI?Y;$ONOEdJWa7TlJ2q)z$hi3@YL^=wQxyhXjp7w9etXvH0tVX7jB z{fUwF4SlW-+F!%oSJ8qpl zgf>IaY`_q`7IlXQaMwa}9sM*<2@Q>nloBK8gBxDc6MD3tSVx5b)+TsUN8TE{taAUt zbAC7F>WGX}!a7|y?^?Oq&Kp^uZBJN?N-bD>N25%h+465-XVbtqCM&3&CnlKP)p@8V zp1uLeHk4t x3gw3=07MsXOkJ8;NcWu(j2XE2kA}Zq`0f`cDw~t< z(zE+g(#(mv5}bTA^f{e21=V88t_=uO=sC~%*EoVcW z_O~BD)Ux!mO4FGPn%9&tkMOC8x?TSnjwey_#;uuo-767qn8MyMxhzeWhh-ZsGt}YU z+h9fztazIAUfSdG&8OX;lL smbvkRC zpYLvjktKvBYnBwNBrU8?D#9)+zEqbB^AV&Xw54c9T^|IM>aC8;xpU }Z**&2bKfHX@< t#}TfzjO#iW6glgNjN@Xso^cEyc;E zn^j?12@*QIaH~nXLJ+qt05>2pu`*$uImRWFJ#@reb^(FHCrzQkDR9!>4h5_R nE z=QB^8d#A3}&O@KAzPvM9W*;qIE_Xr(mww|ns1ezfQnj#K(C}{P>rZy@!!TvK%HhZ) zyv*|rm4E7l*%yNsiM{sb-99Xjsij`dAoUMnVUypyb55T*GufJ@`n*FfvY j~a&Fk1WH5Kgx{~z^Yv@x<%Ksb0ROiuuAf}nrqI*JqL#8hwS(E$` z^lWrqbJy=dJxFZHuVIW>U0qRAV`jBD)Y{b5Fq`gWsd2eTBP=-B7Be!;{mmyklZJ!K zSOATOg@lm$nF~krE$0zOkor?0^$e7cQaRyP?fdO9tCsxn5*H_}dDBG6gf`zieq^^z z7KOAltIc;#?a}DyQMOC1l{pSQ37L aj69VM7JSs)~yECUK+tNpn=BtxwGl3&|HgXuwXh z^4Go#bC?hPGRP}F8w62?Yh2uW5R7+{kL@8N(;YP>-N^96`zb$v6*y@)s*=p`rwcwp za2~aPaqES6w7z*cznUB33}S(|=Sffr4<|{-+7j2V<9lHB(hQ#@eFM_#O0WUlR{B +e^R0O1<|d)w#S7G83NN&&tZGa71qHUMza{QT5{y0-{ia2o zwau IoO}V$#G}oSoh@qoDv#{dL$Z?+ zQva3?ff^AQ=u;X>$G@<7=AO9VOqnDSe;Xo~Yzxw4Ws6A?mN57_A<|vVu9?q0JU%!3 zmmDR1hWGqGz~@K(2ONPo9y~lElJ@8c(a^XiC9#gW b5TiJ#4$;v~$ZR%Fva z2bbJHPt04DpPBRyuk88F;Km>EqW$*-vf8Kro-Fo1{i&ZyR=IE99QYTqNqRRQUnU+$ z&XDMT`Pd4i7gkqDUxM@cLUl-`!RBrIc!IPBf4{DX{kv(a`N_@Y`Ol|z{tthO=aKsF zpG07H{uJIYY{6IbNed17BX!UD3dm95NCy1dRjvB|SA5+Sw=4hXWqaYj3{wqwl8uU} zc-Nhc`tx>*B9L&`zh9B=Ywq;)q{HSnroMaOXl5&o04*1mLzYU?CoSDk(u8+QCf^^M z|KCDQUzK1m%A6ceZe4+olemPWdUeYc20rcE&5yMuNz04&*gr~GkD<4>l* Y#3cGOlqIGxNx;1num>-SCK6MzE`tBge5oV zOfYo&2OGV!kM!f5Sai6uEl7)Ri;89e1zB%Tc4_H4W09qmqTuWg0YqCgU(Y%cSqEx@ z1hAogXxro}hw5@r)mV90R##Ne@){Mlt!;H~ZnnaEDb_TZYbLurb@ai}yuUn@HdH z_seXY|D+m5o7&p`hxUDFqRvvucuTp3t|F$Yuv!9bR Lv qc)tO5_P zA_$T$MG;0J-g1BW66`J%oB&1)?i~-2Mo@^Rh6ZN#U`}lNBcI2{9f&z-i73eA;tj1c z;cpt-U@_6I%vhiyl4}z(-4Mn$CafSIQMZS_&vbu}@oJ-eva_v~{^o}1 =DsGe+@SQo;{8CjEyHJCX6001O-tys0K 2e zbaQi;r&~}RkZE3+NM5rmcJui{r?|dcL#41`IXrIs-FQOBIM#4LQcNmKTW6tj$!yn? z!^ &+2*rlG<)zUg*t9*mnS0qoxMcOD0CS=TP<^F+iZ={!q2@8qjk^+5!Z7D z#Dq7Nd{AJd48u|Yn~CmR1ax`-EfUPKYIGi}wUxKiy0WmpikGVT?ZwEtYS0VQ%!ktf zs|Bin%T>kerIg1}7NG;Y9&jaCV7mH`&BxY0?WB{0*zZXWC}50|Z-@H&eBZrW8jAD^ z ID%QeI3T=vzNE=_rN7G3@F*+w&=Qr~l_7xB6|Iv*rS z47d1rHZVIRxK<)#N1t8i8GPKtu)W+tFl%`6^KE$ve?BIO5VOL*uU|W@D8}k*#QSrM znf+9?v?z)+*g>)Sj4W}yvY{ap6ue629TIYtbehyY&V&tIo%sbm8$0Z~b1N9uDPMcc z3I{qay?S3vmoe?Z*cn;X;LJca2$wTK6l4QiyJN%HmX~^ETqsG_%3Qj#;4T`D#dH)b zLhP1zznomGy!r?Ooxsr&kT&72!YUvzhT#$o&)OSbU(BA|g_pFv<7K*v?J*q{u~|oC z1Bk##?6I}BzJVyAPe<+pb0>b<8M})f6c+@gvsvBxe}s?QX7nt(ySrol#_1Hq$j>u} zc?}rUAIr+L8{@p!R~HrIZ QLf>aDojGWPw<$ zs}qjx9QIsC_X3Xuyd4N~Hjr>2|CQgqSugi1LTVR}^}||tg>)?Bsz7FjoeBb}BL-!! z08O^ER75<6wIWC07|erl{6NYy4_P>}R2JK^$E|yIRj!7A`zC}Qi-yN=FWFG**Hdgs z??05KT3fhM_Vl}ToF5=I>3PtV`O>()6|QQk({R}MTZ8f7`wri&o&Jts^xpQ@)vvGC z4ctqCzR!R6<%P$j^_}CCxyQNYaq#SY2=9g&p#EeC)v69FTB8%2s0wknka~ z)3CH+ou-T%KEV*_B%4vNXvP4p1=+4N$?BkSOaR!KnMaxu2svF29RQl;ZB0#QfKf{s zH|bZwq4%825}`zc^UMS6AWLv*11De(rGwynqt6kBe~@k|n)!XlFa3f(0<*O4c>=L1 zZ rchuP6zQ$#$(uVBj-%j$_E#&T^!8J;x-}P-gVcmAU6h8g6%}$Or02!$5_~A&dNO$ zsGeh!z6CT4Fyd0q?+6mKZAP6!VzRR-&$I|{JPs@EFb1nbRKD0^^hmsYXCWR8PZG?F z78}N=uG*R;cknG-UT$s$l8lvAf^a{nTKvP@(vq56KkA80h_s@L3N>YI(> ~i|97rij4!Md3kxbB1M2On^TDW&~_VDC8RaBXgFjmS#gNjnrW`qIgeFQl!nE1 z9MGg~zB;VSP9 bf&!gu9N}hGZJ2t#RaVcpsD>AuYDC3u!Yw31FQ9 z+=Hddt?yHwC)U*&eFRsAt~&2n&%4=&!8n*qm`B2JkPdYXw2J6_;VcXSm4wbAMY${^ILK9@qMv-qmhm%fTUW*^@2t!p3h4zP}Bnc_O{d8eV z-&tm*97S_YF@KcsKMxYIU7xoe1{*nLIVg9XEU!9jw@=;^V-Ah?lIgIPh)8;7ZCpV? z(}}&3hy%vR-^ChrCu$4&uOOg<4SV0Fz_kDS$cR3O&$GK8;d#HAV1R)YVIN&NcszJE zMV@0zfIzmfsR 0r`9du7ehY%}s zO-~Q8nVQG>e671bmsZZB%))_NT _l-g4>;h|v`h z0dLm?ayFo}V${ycREy0sE>Yiq>{uEUIe6-d7FsLUSFRtSqDoOpt6ytr#~AYecSWa{ zQ>_54@524p2R=O;4sTLC=BJ&3a|H=%xx=BLiHJOJGora~lPiOew{el@xR8LM-M#iw zbA4OG1xY&ObeJjtw?{O-i8}r*VwHk&fDWp 7M$GMad@zg0F@T{V(BCdPhg{_Our4qA zd$~b!yPICp%ao^YboBm6Gwg4#7ZfCrfF|LT?1jTz4-I{tlRU<>^dE&R)YK+O8wk9X zyKlfiL(_Eoic$(^@v3^Bw6R?uITJhY^@D;mcQoX^6(6@m8=OYf)z5uck>B*-z56*w z_ddhO0=iDt@jj{(owh4;&|F_N96RD(EhN<05VQWJvQmC!`NWgHzo24mY&;0^WfZwe zl4Wn1lHd1713!+{%S;XoEc|j_#H{#+I3LUh^o3NeTp?glU%Gs`qJJhewHCOyCYiUN zpZ%SAP!YjmqZ|GO 5Bn|^h54?tXTO!GZPn1wNV3s4gDf3$3zV(LIQn8x z&64y@z%2BBO6A|pPD|5!yJ};*N`iOKmnhlV+Un@&xceJSm6AHykNrq3u$>H<8A)L8 zuwM)*vUNkR3Tgwk cX6%WH1uf82Zaq{0=-{RQEoX{Ys5W8VIh`oUNb zGZ8dXrES%b=}{1Dc);T(*CQ#eDvz?CvT2Gh +GRNFS`