From f736116967f5b57d89978e51961f2e78eedb443b Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Fri, 27 Mar 2026 20:26:57 -0500 Subject: [PATCH] fix(app): more startup efficiency (#19454) --- packages/app/e2e/settings/settings.spec.ts | 48 +++--- packages/app/src/app.tsx | 13 +- packages/app/src/context/global-sdk.tsx | 142 ++++++++++-------- packages/app/src/context/global-sync.tsx | 20 +++ .../app/src/context/global-sync/bootstrap.ts | 30 ++-- packages/app/src/context/layout.tsx | 24 ++- packages/app/src/context/server.tsx | 10 +- packages/app/src/context/settings.tsx | 42 +++--- packages/app/src/pages/session.tsx | 41 ++++- .../fonts/BlexMonoNerdFontMono-Bold.woff2 | Bin 1003408 -> 0 bytes .../fonts/BlexMonoNerdFontMono-Medium.woff2 | Bin 1002732 -> 0 bytes .../fonts/BlexMonoNerdFontMono-Regular.woff2 | Bin 1003532 -> 0 bytes .../src/assets/fonts/ibm-plex-mono-bold.woff2 | 1 - .../assets/fonts/ibm-plex-mono-medium.woff2 | 1 - .../ui/src/assets/fonts/ibm-plex-mono.woff2 | 1 - packages/ui/src/assets/fonts/inter.woff2 | Bin 349424 -> 0 bytes packages/ui/src/components/font.stories.tsx | 10 +- packages/ui/src/components/font.tsx | 64 +------- packages/ui/src/styles/theme.css | 9 +- 19 files changed, 251 insertions(+), 205 deletions(-) delete mode 100644 packages/ui/src/assets/fonts/BlexMonoNerdFontMono-Bold.woff2 delete mode 100644 packages/ui/src/assets/fonts/BlexMonoNerdFontMono-Medium.woff2 delete mode 100644 packages/ui/src/assets/fonts/BlexMonoNerdFontMono-Regular.woff2 delete mode 120000 packages/ui/src/assets/fonts/ibm-plex-mono-bold.woff2 delete mode 120000 packages/ui/src/assets/fonts/ibm-plex-mono-medium.woff2 delete mode 120000 packages/ui/src/assets/fonts/ibm-plex-mono.woff2 delete mode 100644 packages/ui/src/assets/fonts/inter.woff2 diff --git a/packages/app/e2e/settings/settings.spec.ts b/packages/app/e2e/settings/settings.spec.ts index 0602e95c7e..1b151b6066 100644 --- a/packages/app/e2e/settings/settings.spec.ts +++ b/packages/app/e2e/settings/settings.spec.ts @@ -159,7 +159,7 @@ test("typing a code font with spaces persists and updates CSS variable", async ( const dialog = await openSettings(page) const input = dialog.locator(settingsCodeFontSelector) await expect(input).toBeVisible() - await expect(input).toHaveAttribute("placeholder", "IBM Plex Mono") + await expect(input).toHaveAttribute("placeholder", "System Mono") const initialFontFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-mono").trim(), @@ -167,7 +167,7 @@ test("typing a code font with spaces persists and updates CSS variable", async ( const initialUIFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-sans").trim(), ) - expect(initialFontFamily).toContain("IBM Plex Mono") + expect(initialFontFamily).toContain("ui-monospace") const next = "Test Mono" @@ -185,7 +185,7 @@ test("typing a code font with spaces persists and updates CSS variable", async ( }) .toMatchObject({ appearance: { - font: next, + mono: next, }, }) @@ -206,7 +206,7 @@ test("typing a UI font with spaces persists and updates CSS variable", async ({ const dialog = await openSettings(page) const input = dialog.locator(settingsUIFontSelector) await expect(input).toBeVisible() - await expect(input).toHaveAttribute("placeholder", "Inter") + await expect(input).toHaveAttribute("placeholder", "System Sans") const initialFontFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-sans").trim(), @@ -214,7 +214,7 @@ test("typing a UI font with spaces persists and updates CSS variable", async ({ const initialCodeFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-mono").trim(), ) - expect(initialFontFamily).toContain("Inter") + expect(initialFontFamily).toContain("ui-sans-serif") const next = "Test Sans" @@ -232,7 +232,7 @@ test("typing a UI font with spaces persists and updates CSS variable", async ({ }) .toMatchObject({ appearance: { - uiFont: next, + sans: next, }, }) @@ -267,14 +267,14 @@ test("clearing the code font field restores the default placeholder and stack", }) .toMatchObject({ appearance: { - font: "Reset Mono", + mono: "Reset Mono", }, }) await input.clear() await input.press("Space") await expect(input).toHaveValue("") - await expect(input).toHaveAttribute("placeholder", "IBM Plex Mono") + await expect(input).toHaveAttribute("placeholder", "System Mono") await expect .poll(async () => { @@ -285,14 +285,14 @@ test("clearing the code font field restores the default placeholder and stack", }) .toMatchObject({ appearance: { - font: "", + mono: "", }, }) const fontFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-mono").trim(), ) - expect(fontFamily).toContain("IBM Plex Mono") + expect(fontFamily).toContain("ui-monospace") expect(fontFamily).not.toContain("Reset Mono") }) @@ -316,14 +316,14 @@ test("clearing the UI font field restores the default placeholder and stack", as }) .toMatchObject({ appearance: { - uiFont: "Reset Sans", + sans: "Reset Sans", }, }) await input.clear() await input.press("Space") await expect(input).toHaveValue("") - await expect(input).toHaveAttribute("placeholder", "Inter") + await expect(input).toHaveAttribute("placeholder", "System Sans") await expect .poll(async () => { @@ -334,14 +334,14 @@ test("clearing the UI font field restores the default placeholder and stack", as }) .toMatchObject({ appearance: { - uiFont: "", + sans: "", }, }) const fontFamily = await page.evaluate(() => getComputedStyle(document.documentElement).getPropertyValue("--font-family-sans").trim(), ) - expect(fontFamily).toContain("Inter") + expect(fontFamily).toContain("ui-sans-serif") expect(fontFamily).not.toContain("Reset Sans") }) @@ -373,8 +373,8 @@ test("color scheme, code font, and UI font rehydrate after reload", async ({ pag return raw ? JSON.parse(raw) : null }, settingsKey) - const mono = initialSettings?.appearance?.font === "Reload Mono" ? "Reload Mono 2" : "Reload Mono" - const sans = initialSettings?.appearance?.uiFont === "Reload Sans" ? "Reload Sans 2" : "Reload Sans" + const mono = initialSettings?.appearance?.mono === "Reload Mono" ? "Reload Mono 2" : "Reload Mono" + const sans = initialSettings?.appearance?.sans === "Reload Sans" ? "Reload Sans 2" : "Reload Sans" await code.click() await code.clear() @@ -395,8 +395,8 @@ test("color scheme, code font, and UI font rehydrate after reload", async ({ pag }) .toMatchObject({ appearance: { - font: mono, - uiFont: sans, + mono, + sans, }, }) @@ -415,8 +415,8 @@ test("color scheme, code font, and UI font rehydrate after reload", async ({ pag expect(updatedMono).not.toBe(initialMono) expect(updatedSans).toContain(sans) expect(updatedSans).not.toBe(initialSans) - expect(updatedSettings?.appearance?.font).toBe(mono) - expect(updatedSettings?.appearance?.uiFont).toBe(sans) + expect(updatedSettings?.appearance?.mono).toBe(mono) + expect(updatedSettings?.appearance?.sans).toBe(sans) await closeDialog(page, dialog) await page.reload() @@ -432,8 +432,8 @@ test("color scheme, code font, and UI font rehydrate after reload", async ({ pag }) .toMatchObject({ appearance: { - font: mono, - uiFont: sans, + mono, + sans, }, }) @@ -468,8 +468,8 @@ test("color scheme, code font, and UI font rehydrate after reload", async ({ pag expect(rehydratedMono).not.toBe(initialMono) expect(rehydratedSans).toContain(sans) expect(rehydratedSans).not.toBe(initialSans) - expect(rehydratedSettings?.appearance?.font).toBe(mono) - expect(rehydratedSettings?.appearance?.uiFont).toBe(sans) + expect(rehydratedSettings?.appearance?.mono).toBe(mono) + expect(rehydratedSettings?.appearance?.sans).toBe(sans) }) test("toggling notification agent switch updates localStorage", async ({ page, gotoSession }) => { diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index a248ebb944..eb3c582d29 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -47,9 +47,14 @@ import { ErrorPage } from "./pages/error" import { useCheckServerHealth } from "./utils/server-health" const HomeRoute = lazy(() => import("@/pages/home")) -const Session = lazy(() => import("@/pages/session")) +const loadSession = () => import("@/pages/session") +const Session = lazy(loadSession) const Loading = () =>
+if (typeof location === "object" && /\/session(?:\/|$)/.test(location.pathname)) { + void loadSession() +} + const SessionRoute = () => (n9qiDT+FKE-m^7XjCa z%#$A#R5^a46y0FJA#(3;XYYxOTZkdpt5Omto!7YO#J-vz5E7*m=a-(77-mXx{2e(6Ua4hUObo7sXU8a4zc z?ZvuViX`23KFkGX$t(%)%=(wxvQ_X-nlXpv@FkN$K+sRiAOYNSDK- ;>wj%YiI`$e$ q3EH9AUv_h62hl0K_o)(2-E&2PM zeSp6ty}~q7)3@^ka5&*OO%^6T@!UpcAO9RUZ~UMx28c6zq?L%?2>Lq3zb6Ukg*U;! z@~a`;y&3MF&jsA2kJdXBgp96ym#717M@%_B7#@tsehnpf5r&WTbioP!Mm2poIite5 z2k&Vst}QYQ$x0+Lz{Z}%;|TNhk=OnAR`6Eg<*hQA6Op#!%Z%Le{yv3@J-g>`ax8s= z( ~ 4zGB8?~!%i7S24s=8N0j zBJ!0&Hgxf^73}<=%IB*vq>7ymAHGk~%=SoQ={?vq^C;P<%acX#+Dn_DbU(vH4X3fE zG3Wi(DN{6KoiD|2awE&-W@l$+?Y!Pdmf{4NVItsdX0b9TW`4MiSk!>6=}fq;yxmy( z{Bt-ZzKj0Xc-iD0g^3W9hv|6E;cB)_z`(ALtjy4m&868lY+e `ywfRwbf)EW*YHU4oc`SfX4^RBs~qR@PL>%HKwqL}iE?F5t1`I--h*;k^cXKS>; zhBoPj!FNsU7G_f-iU}x5R)?nX0a;YMr}yR^6}7 mN$PCj9n>4tn+S zcL+FN3si%S)LelX!2iMl1Nl)FA*%kNrDRo1!a|$#yL$PhLisi|w)g-{JrullAQ{mm z$#j;!<3YFa{e|VtCRks?<3lLsSgIXjfw@Ky`tqb@5(E^2be)w3LbXnhgf#^vrHSNp zQea?Uajv%!BnFXl)P3dGvJtPb%jB%Ltc(v_Y@_C!8H%(NcobrMQWG2qfCysoi%cxl zreLdTy?z4p%XPgk&9Fk``OWTeHSVq7;dLUK?w#3QK1thGs&*cNft?P`HgVs9TNeRw zJ|R-S7rAaQ%_uN=yatJM4bU9zC-%pi&&JVjdqTWi5TOV^PM+r820lc>P#SvEscIb& zsg1(WdwI@I2J{ZfkF*)Eo?s>_0OWe2rJWHVp+*u3$dT203n>vPLnzeY3-1KcAt7fN z3*FwL0wV&gU-a#(ft0bKCU1sYdeTyr5y(C3h#UCd $ zWG8C6m}r|%xps8=0H7Ax|mqdsC6Ov+eyU`$6d@PP>E z4?2IVaqrs`dds}2|+#6 zIo$eB?m?Ckd3xJeVK`R!eR7-jal{LnyEua)FTdQ>52U0~X#EZ=tLB6UAqNW|NG>(= z+<>6=gh>%q*eFXAE=7~KuTYp>c-pxCIPLtCSr<>ej%^SO4ye`k(H|G)^3flih79@) zPt8k>qmezpDjPMMeD1RqQ)Kjc<(Tn-5aoksb#G(9^iy%^12KO+8341hm$NuZqns8U z*%!kX3YDnUgPgozEwG3VMTPxZ9jH`BVWXeFQWPI$HN;R}o>7=$9OdXw@tw8=U@o7- zK#-ByAmyLHYW^f8Yi>j!dGEFAWo~I1YOr$XWNx{d;+?B|__W})pRfadC{JybUv7RQ z6?@Z!3{m2b!ZMq;mOMVD9n9(faoIch`c<~o?{(p9nlax8?l#H_Aq*jQ)=oAup1A*M z3r;aK2K8#&cv{fvT*McOW Tg630~oyE_vWeF0hJSX?6ZsZ?xBC@qup{hB7)&C zndO|PijlE+I0tRf6uVkxD~o*;!sb_l$oNQ;u6Ha*hkR`!MvjT!vmLhjurQkoo~tMe z85xmfJg+#mlw)c7RdyA9=-ngv6@v_-_qdzHuV>+qq}PoZ`O^L6VH4#%`(|^4cUt!( ztZ}g(>oA)uk@|hK6F(BUb6ofm;}KD~cCU+{UKZl0%efCO9^mC>U;S)!?{1z1iBUgK z99o&1Q_CfajJusI)qcfR;!<=UJGs|OWfEW%5C|*CNPMaJSt!X|Xr0Pmi~e0lifh7) z0(U0D!ettXBSIRmpNp3@CJiWd_N=o9qgur5E_)1fEIJK4eO8Jk!iwcFpU_vt!EpK! z5&dm`A|<0Zh>$Xah2?}Ub|Pr`;$a-b#?h#*;kns$C>Z$Ght|-whanq8zx%1K|Hk1Y z@|>7lL3#iZ(N_wFm??A`8v{dRd#YZYi>p6@-^JW=T(R0tv3Z9lM(CuYvh$?ldP2?8 z{qs^vikqPus;Wb0XLmHm`N~aw+LiCQI}x >&J2i^ui4B5Z2fMEr5j=nwVL-u)JM{`UEFaB_Uy zvv7QPr;1rkZ|Pb{u!NvyeQ%MJ7Fr@9WfdV4V{Z`%g={UYt@nl-5=u_rjS-9vKq>|; zx?$lu2SsMLQe%qxd5)}!Vn5i$u2^Pe>=L^3g_)L`x=c) )hvKIX(yTgrfC)Be1Ya0=CCfe+Vnva ^x&$UE20A(hBn70D4U5Pdc8ZFW?Lv$8T16nDY<2g&UBFejwDjqX zVJ%LRO|{kmlh#%Seb g?>BUm&hKq?G>t?SP5BBF1nUs1_*7K^V@!Z947&B6ZvwTg_0ckJ3 zWx-g7Xxzwd72+u;E1qrOP4ySb>jKb(R9E=wkDww91O;1hXaRymN^zqkT?P&&CN cJDw!2}n+)U! 9WF1~r+n`6EH>OlzL0*y3o%n`kxWY;1Aeu&gNGyY~eSP(=b@(6Qy3 z?rr>2Cf%fys9i2nEWo{(c7=wN%hIV9XO 9JJgjgB;3fcuF9>s)bd2HebsE z7J%#%$fFp`rZHUijUT9AibE*KUxzcbXPI 662mW zmnI!P%06TeLKLJA0sznr-vaRPC*2C_ov@s;ye$ns12PShG9vVNtOnt-Q(_4*-Jm$0 zb!MtYk4mW8! rO+lyCg_QBVl_S|~ zDB6tPwtW_$(fO0`;iu!kEC`&AQ0qyQH0~` T-$ng z=Q<5V7Bx%+bI_g%6M9%gS@c&J;`|0;X>sH
6YDy`Ggt#$|s=ds~{-{CHQb6;!RZ4z-d;O)DLlub7Vxh$E~;e;uVQBJ?iDbP$mq55K2iz0`$mg z4!l94A?6-8-7o<3J}gYorSJ|0I`0lfJY`{F%10e^3>IlIdsvLV;KzAA96MM@3|!xr zKS3-aBWlss-9~wWOq%7*Q3ScJH*5&)A>*AMY4JSdfzcTu3GpEb;>(y40F9`Kh=?cv zB!<)Jq5!=D@tuCNyuAVjPVd{>s-r!@Z<#Y=L*r1rcO?UPFSs7Po*mq Y z!upIChliYg(`JZO1>ks@X$?!;Js&`dhCpi;^o22TpxDYbb=H)G&G@Q`5D*NaF!}&C z8lvq=vy+eon4T*3>F9=_%PcAYD54oCCEj(Nl5a+jDIzdJyV}r3AD)p>Z*8^SuGwaR zaTU}8JbCzJ`!4K#(9@=!98OaKpR3suF1ylT2}hw6Un5A*_um>DKPV9$1{JH7sgDST zGKNE8M$5kBDL^}l6_cThP4BX1mk@`Te9fQQEzvxf4^b2*77O$$IH!CC&sTvRyNLt` zM4Tib05I_xveLA=%(x039$F7)OoL0Sm^LBK!^FeH{q;jxI#*zzW(vFE#T!~9h2eLY zADSyUg|?9SU@#Q~Sx`@WwhOWc>z`Xu-6=b9HTiP fR?`3z?2uNVvg!-oPKSX>KQL 1}+oKea#HoJ>5d ztvF=k598)yTW+^ K_^Pi$PY^?PPjE+`e=#hPpalUeNV(5B4#dVT4X*9`)$JZsK-xq zrOkus@@!H=Ng?$&W{vm-2%J{|%7d1z&4wNkWlsD ~k&|MAlS22po7^3ibp-NOuHMBhsu^Xx8uf+qZKkwjI9zX3j9Y{`p|(K1vqld_svZ zYQxYHYE~?t15p|nNWzVoWy`0ADX=3rEV^vGjYq9x&M(beXvZ|!u)cR&$oW><2=1`r zbqBsI<>1);VGbe2j+bq5lK<>cXX-(cPH@2lGz?I*pL9s|FE& CQrZsX@Ne&O- (DHP{KwJG`ETaladiqj zXM}-+9dLk?QzVbfS7hYW!WTZ%Ny@eIYvOnXgB4CT1b6%}H^267cz-R>%-nH!fDUF% z*~r8jJv%C`Djo)X?R%j0b?n1Kw5t?XElxah&l2k=h3f4o%2j?uYhz?a{j+h3B|^yz z*%t+whW;cq0LdX|N`x1M4;=!)r$)ZIQQ*-Td@Pswj)6hdl3D`9p3%G29@o%pnz^~u zVAEr5w&75!KA?{gv2ke{OjiG{tziP;K-wCK-|m_teg*7EmRAoth2mE~jn{%nd(9(O zhg8k@QQj2_I G7J|9kj2-JKqt;w;fd7S=m`*Y)Lffa2k-t>)#r+3`pLg za0HjQwtW~LLS3rox8f2!`|2>kD;PQ!LQTypH^tw9-cM{;BM(o(@$n7(@@o8c@h4FV zTmhQ7s@%GG2!&`PzKq-8IiP*xE13Ts abBO?wy*B=k=r-O3oQ^L9 zf2z<>;epUC4j~-Z$-rZ!Z6GCM9SGq~>QV6H7kS7>-@o#s=IFsNaQSOaY#O~0$Vq&W z*nep*KP{Iejm|5WZM>@G0Fw4dHWgs5JsDYbG>5gq*+3(ot((Mh?_5vdbT9D)yvXWY zd)X3N2WC+91KXi@EMv_>ykH{PZ)7PapykMQ-Du;@ry*Aub%lc$D$Q#fWaN5; g<*P*CCM9MGpf_8rDEcpfjNUVi}F>;2B%i_I+M;VC%RQbV3j4?ldDFks;{t` z#qu-N_V$5w^cpPIj`wjEu*>gkwUjAJkfCDe@$}xtefi y-q}s@vu1(-Q`4u z)rEl|_JIoWT1JZ2lM9nP==4{jvN Etxmu_xC(TNCM|#e zfo2V8-o1GDtmk-3m-OMS@xkh18f5Yq9`KmiLIM)a@B=#P$(6o*GLHQdn^9++nwPg1 zkDs}=m`W>)*Q|^%97xMIe=1;2f|(CDunu>c%fSBnQ1dgoCEM`+S8j^hMZBPd+QYoc z5&ZqCFK*8bgHJ+(xAtBrJFk%WjfTMVqI}~N%@@ rdQGD!n@bV$I>JYLmD75G#eCl=;$1QFlF7&n=du5fHKrH{bX*)ph-j L|Q4phSfr%ZmjE%r_^~L-u(lELA%h Wxr%Kfx-<3GD-(o{*ELrBn@mxi+wg!x8Fj5PZ-g9L&HBZFnpqsS* zX*UP=#Zb<&8V5}4Km%JzA_jzFa;0b#9C^#?%yYeh5@q_I*8q=2&QWc~HH4yzhir~5 zB*I Ip7#K8{%nw0rbxjAb4hgjIQ7u@*z&QxUPFGSQ9CzsL^i)4}DpPdHM z86|D8MdcdU7TaL(gRProozy9Kt8+RFc15o)jb2R%^R8g)l2(tB0wylUx?md|a8bFB z{qRj(OE-m~-9qE|2dWdh>8O+SWS5Z5(#SUor~8!$?yc^J?iw XSH(8?J7W4*^IbFQ6=Eu}*YQb8s5y?0qqG$TF#ZS(>M&x9_E)E|dfF89z!ZHiT ztZ{nr6Zj4Fje%w76*k{36&sDnK^s?K n?wuz~2u+lkmbnd~RD3SFK` zA6|$t`$T6CwFbY{*;-NL{+ekgEtLRbk2fE!aU 5mvuB=ZEpCOmXg7G7J` zG=-dsf3QX(hM$9bJmi|2ZX)$Y1AYAj7jJc+F`7BQ%zm1i*|EUGqZJcGKp1bZYa*rk z`Z#s#iZ*g!k`wm>*?9B(S(A4hhbbl-{PU-!7~}WME#u7E>*nk{9_4#uM=eJUrE~tY zkSAG03^^|u-zLcK?hr};`1B`b-jz?XX&HBKG(6V)=09#<>8c=RIJPAQ7WWq|HVtv4 z#Jp4w(yRZ|&BF0$&q5l}}?j0|a0rp8BGhy6S!x6_UhQUhd#T-w!{Vb&7EG3km zuP*vf2@fJwkWunTm!y{{YpvQkS?WOLv;w10lk2HetBVmZ#j_hMC^tv1XjdM_JRH6e zgXVyczrJE&S;~lEV`De1HtyptT!_4OZa$w U=QdLpQieqN3swyTG2E%z65zQZ7@o)tzk}_56J%M8B?wGWWp-a0)E3J_K zi^UDw{mc(|@#J^e;X_82_p};UKZIXY!N|z?J0fEBWf|!xuc xZS6T6el_pH6sNSPrJlaT)81(Q^3M}kbPvCKJq(~%G@mYRKEh{9-E`3{ z`dV8JhL le_aDpfFX#~>*J%T)e=`X;>eqI(T5g@;sCIVOVTgZ&ksVQzDD?4t?IU+tM49(q zv$glBPKqiF4i21%hrt|yc@vc?6=tAT8V1ib6_3)Ip0e9r>NJG$oKt^)W&1rZ*${h0 zrjEfWZ=-;_B5J0;6($LD#{{KOLEfaan%w_6R{tZ$k7BvZ-R}FXPC+(-GqQ5I*^+k9 zOZUkbHDn+1cwo4>Ldzb5E|K$1p+5LB>aZHz`uY7$76!jGiz|)&ki#sstB7-BKzeAp zLd~8J7?UYK!lXQqywfggrCbS=R(?Td^ b7ar*gXmJ?3B_BoX^Eb`Z5* zh8_Pp&|j(*47M FL!ulXOFhX)*Lw$|I6fr-pg+HUhz@J|L6B<4 zpbX`zIA)U?X<@s5^n=VXRW<#|=%^hxl|7^#o%;RVfo%MWbDYY{)&U6o={C+NtD@B_ zlQjMpbVz(iQx22>fgf0RPJXa@5^9Wkxt?-BvD&A-3oM!o6Q(~S)AS%B#vP>liI zOaO8~Ae_8q^qZ$D#(;ke`bT T_BK96ZqyR#-OWICsvuJoJ0 zC{^M%MS8{yQG}EgPcF4FyPxfKoNK)WO&SF9A14c3XL04N3<_L(@#L3ARlRprnjLG5 zG4j~~+!y|KgwjQ~z9 ZC`_)s@ZIqD?K{2V zEtZ4U8n%!u+-0>?sGU5n$ji~IRDK^#Pd$>!mMiYD1h}q~&cMy12t(<@hWwpghoB}t zexl#k*Tsy`Q>)$dG}g+RuH$!(d`wyXdT}o=wHWdhi~1X&Ler=CeY`Oq_Al zZVpFzaK48t`Dxth(#-w-iR6Z?*_w0wl&>6 z(Jke_m7P3(;rZGL{NFo@ls|c|nMk;oAV? RK9}2l zR4VmnG^cQvWmfSd4I~FZ!JrU5Y2u!nNY_#Yof2Ey2in!Qd<)K0iL?6*mn?*6zyM{g z9tnpj03mAB$ISjiwB2l(4eOrkf<*ad75!!=E=u6KQl_s)2}vP Un zt|MKmvFrF&23jIu` Y=3@e7jnGXA{lUi^m+UWDNR_NyTC0h81x2PfK zOX2(Zqi|t9)M4K};_|2EL0H)Jikm+O!k^jRj_L8{Emi9a?v(dX0*n`O?kRwSSU2^F zH=_FyB6E14X73`?=ON&d{cSpF!^cCjN1ygzz#(^`tg9bdL5Z1atb
T^ zb;eK7kbuiuk~7#Sz?7*3G-RZGmqxaiausl5sdXu=ucjBcU&?lg4QM${mJ83b*@wBy z7ILEb@OhR1$#ES`^3GAC_9wkZ*c86hWRJDBgO!D_KR3JY&d2Xbatoh-Ilz->9sB zO{up1L6neN@UC1l-uvz(ywdW~)JutPWqn0OM^RnINKQ*qUj>Xoke6wwW3;xu!iLVo zJk8zmP;yrrHgX*qgj!tf5C9+!rHTKdh)Ra7^uuLPzI)-!m|UXDd{Q~!_Z0lu@a@(A z7ybUlisRdeUX&ZS@u%1SjePly;h_@N5cI!xexZ6c4JR2e ^6MF|h=Gh!YAQv|66&!qY_FBcGE86H`lh`b-$Cv# z*O$CFsN=F*H6>HmbQQfYjK9B|{0O5Zk}~=ean4suuT3wEZgv0YRC|QJHECsyOSa7# z?qU{Y99Tog$3BX5aKqovcT-%lBd?`_DXamiAG7~rxk;O#=JVUdRQaF~S<#GjwCN`| z+4W_YJdt%#QqqSHH>(QPmF_=YeLXvpPTWK3+6=VaIN@{jXZA`?JvwekR9i%q#1?{z zC$`W&fJGz5IRj0}QI7{uO04!%OLam8{7Jl78q*A7vE;QXU6jA0LST&%6m5*_U)%*y z%Jlz94^o}MEFRY?(`=SGv&?WT*Wz6^OMAN)D3j0mto-NKe(-lzLHCxh$ik~8q%j$L zXTE;Gy$*!FWiMC9oe`IxR}W+?8rn%yidb6@ukzMKs4gU5gRS?(Ft=wvMx(nGgCiQ* zbZ^80vkBgu1X37rl)AIjU!E&edspzFmvl>}A*RzTgt$WpL6i0^!=)@D%dDDX zD?* +mhy#?kV`B^$4H7#OwdqOSDX9Q_eV!|l%d=jXLg2*os*-np`J;7BIuL* zT9H^YAxq6{zees=CWaCQmVg* mzJN^{V-ZjeCL9vd_-@ zqo1}zB&4HK7&U4nQV5%;tetcFU|CjO?aJ>~EhwVLc_+N>kMQBN(P2y@axE;FjMoGf z+siFfeo6|~Covg~LW-Nf4coamI2e+B%P3=7#@=1cGMHaep*vwObM2V2!)ERH9VSTX z?J(kF>=y?lp->2FV5}_vS)zB8pLPCBX!ql)gpp^G*oCEK)?1&gGY@vvn3uUIr;4i@ zD6{v;g^p#Stu9`M7qtsp%`&oBTg>~kQWfy!Q|nRmTUsgt)onWZno7@v&H+-(Dn91p zKBuN}8a5h9M)#;c*Z`${tqw m6*Fs6J@Fs(iMqO7e^1#7sv%jvECFJ{O&Y3J#3g`GoNxC zt=dXu%}XEuC_ZVeQOGYQHWmU*bM1mX+S4$LL^m*-Ni0rSQDRl8w?V-cXd5CSE!q>N zGFufJ-Hn-3P-V#T+8qT1krbGpEau5<1jHmzgvdtT3si|U4ttfE!zD(gG4>z4EnzD+ zo^uk9m@uv=ID*zH)&|$Ch@tpFrp&vEu@ESVoG~hg4GhH1@|6YGuRi$V9Kc2$d-sn# z7;Zk!Bc{j0JJ*j;5Y!0kwL0qU5)4=o1DK`}PO6#=Y88s@h$$7WGfHS|1baA+ud(Zh zRG=U7F;ll;w3Gbtj%S^7=bU7L=-5>BdY!ef7cae^vp&~&rFO4-eX1)=nZPq6P~sdB zF9hU?F *Sip{&}3-t4N$L)0X53lUmN2$uLLYquz-jvTb?fj znkT`(@_ufBxkD`0Y3(M7(jm50V)pBBv;l2WggOP}W;zM=krW@WbYN<#)m-E#bdx0A zI1epdl~DchSN>=d?LGoGwNfQ( 7tcv%tYcOChIHLG|y?V6WNVb46y zW;onl`dCCU!-mYFVGedS;Gi1WT`+^br0c1e^u@Zt4DGy824M&;VMc>fcUUv~FJ}+~ zgpkQ_cO)fEH}aZH= 9kU*=u&2KbeYO?Q`hf(Gt}9oj*%sfeSU$#6OS7{t zgeO#ZwP>c(>xx{mBbUxTWx~i65C+T)4FNg#3R)FUsvOZuO7K|qguu>{rG5KA$~i)6 z#F*aSmoSBk&I{ObbZhBEj{}X7PK z>l*5V8o~9EZM?8Z(wZ7GLfwD5wV#3RCD{oZD#HE#zn_k4g^fMc=M8hI%;fV9etmp4 z@ev*U$)e*TYGRp(_haj!2x!>k)eyJ{8(7J{vyH%Y(|enqGKx^Lav Grb2RX@}rg2&kC**$i}|@h2}Jy6NgR~eT{Cji)-OqRH~&RPWps};>t^Mc?nw> zpkOVnu0oe`aJ#tVi~iVb-EbxjAJvXmdbvtOeEEso0^2a#qcjj1s0g$J8UTfWzCb9T z1dx(*kS2JxM1u`sCidqFiE`T7E^HlYQ0EQoF4yw2lbe_a7I*vQrOP_Il2LiE8pP+T znhdt>bsPsS|5kD2TMJX+Z(tB~g=_$0zVHDDGqf#2U@!70Riox}Qk?^Adh!sR^uFq6 z_D?LbNk2^W@#y^mMn|9d2`sTe>9?e!kJ|g~O$41&C+p?Oew&dCD*ic!ua8YN<*yw9 zxAhRxXg}%{na@2~o#6dz1Lh|kYc>OXCx4SYHDW8BkAO~O=HJ2&l$V}n91c%nb#KX7 zPfWg`^uT^2W +FcD_I>b=r|nv||yV8xh9P}_el*Ur*9YSfE_n||A} z5ho)S1m^NA(P6VhnVNr;yJho_ZhVA(#PSRbh_ZSF?le2>=e@mxeL$=|-!PC*FAv>c zz_*Dk$5|I~N_U_sFeBUBjicWp|B$=UU{uP!=n3Ts(Hu$1M@6>!nO1}*xeVbiyi1Uz zr)9q1uV+*zD?d5nT!f3NkerijH1HiB?sA-FjDnMTOwH|0E{DujuI8uDo)jX!c4*f= zdqPGrN?#1=prUCWVfa+>?^XU>xLH_2sU)Hzsz`@q=;Ttwzem1TdUiu5C<;-Vv^GEH zD&6?%)rf9MuQ63+%FAA>*k3}j`RX;8`g!rv_0`VXB6_RL4*%J9e-d AVSuok(e(sgE234y( zIqugvL-dT#!JWdDv29*bo`?3|C`@|@$NBr7Tuu3~73j|Uz*ZF+`+Jw>RT%Wt22ey{ zKDxp4RIhZm#KyG?#CkuqG|;@Agj>6xA6{(7i^mJJj`7{Oyd1Mq9ExW7=X9A}GX^RI z; `)2#-wD1DT4`B}urPb0S|oP}f2T6K6kgZpK>RmFSb^0~YJ z5gbc!FlXH9k6-Gg+xo^=`{D%|DLqM5X*C_>)bsuaDPLuUQriB#=Siv{{O@<~D3E1N z7~4b4*DUAJ%h@yu!NBfENGv2+G;evgnee&ynvm$h7`Nd&Fmf}<<5$7-qfr${VP95a zPoBi_2jw#NrF9pS*6#ZGCdWI@hP^hXUm(e0sOZD6sHM4>hmi`YnJP+%N-P9x4&hC) z>As}mS!jK*UqajEW; a^g(gl{olQeRXD8H zkPZDEn$3&Dwp=oZ2=;<#q;l847c%C{e=ZFhd3~9e`Q7Q-P>?XyXDkga7bFEHTcU5( zIsXo&3x;|-6up*BjCSb AkbmL#NJH4!eE9DnK*eu zB}kR1esP6M8a(*w uLDI*mNX8$15 zexLlucIRJ^EtapIIlhG}8nvrmJw+`YKf8K< D0qi< zbn3zpicHdqS@XXP1>IDF08jnP=kBCWPcF{xPHrv_m$%pVPLI!Tu7wV@qWG~xNk?`+ z0pknajT>iZ!~a^`FDi%QckTf~#usc*x4zK5s(hGl-v_ZqH3gC;_mKwG+tsTVh$gi= z=g#in`)52kb0+crZei}pxjX2FOr=NqV)_9O5Z0Gq&73P+GMiz?YD}LxmSR)AY2C7# z^FMv-)GTJ5IRx =w^p$Cn`oZ)%VkCQ3k>WmYfi#j;m}V14m_-C#XMoPvLk!nzd&!xsUMui+u48Q z?9&B7sYt&o!DwG~Ls4R2bMm>y@BAgrzUL|MbN1}#5`#7o>1vjf7GQ3M`~Sbhxwsff zOU_QrOwCQmNXbbWne-vGg>TO#3sKAdp=%`ePw|OBurQD -8q>)yHWi|oJGAo#x_ zGg(K>7Liz0mg$h5diG9`fA;b(b(!m`TJz6ddh6Pnb`lna_$P#p{$?Z5+<)@RNX$&_ zX5@GUi} )~&@jl;wdggy6 z(=Yt*PWUf!k^JpKpY{IJL6OM&{^ @32hv54f5A_ZBJojw}eVkiQ7m|CfKg!&uSwKN0z_4Tp*^KpN*CL~0^g>Ze1O zGe=C3v0~S?LrojT14x@iYSMoC+c}ghzb{yN@EJP9Egi!DU&GxO)%UH&lu3guZ}>Pg z86*Y*0W1y*2{aZG5j-ARUSNDgdPs6~c5q@;W>{)$ZcsvGMrcY*&bOrRS>b7MWdHZ9 z1DEGO;X%T}H(>~j2z&%}^K{c#*i;?U7?coVSb5E|nSAMRQfL`PcBqzR(^>?+?Fg)? zw(TgQbI ekN53#YP7T??ZW2N$e&-%d-cFLitxmT{?7R?p$=S2Az9S zE`I`2wop;sVru98;x|1DbAo1=XVp9GAX@aXc6adIM2(_tA;CTommOK9|B?@ZqeUU? z9hJ_mHj!OSa)XH}F9=P^VEW0*mWpP_!YYdirPgBXO1pR* }@fY4L@0xcEPNUY3| z;XcazN?NtaI0LjgtKx*=J4k0AzDS+KVax3=Qp#~ zr>5(sgz^u0>hl7~kMi_IthUb;2gQdoCS?WcQK-8~YHGT1FyXbj40#BR+EB%H`$0 zk_gC+CDr`6zMMCL_x(CTV|;)^JWp)k^0CI}oZ+gcpWX#ooLJGO9TatS``w%Lda~Bn zhf(X^aI?Em%U5opJS{Gw8Q#9kM!5NkeHs^!#dXDEcvlactWQ^U&9OX ZYB)%yY*hjRYTOJ3aMB# zu6~Hzsg5M8* PNn#{RBCx-v zjUnGmu*qSBg8mURRat#bAV^i7I}fh;ygS=AlIvb?AMa-x4Obz}4vHm9{UA4n584VB zA)?{nvPO*#2a(9SZzg8YE^A9v8Ml1&>HcM!=%R-l^Y~*Vsx%FX*ciVby$3<-&Yu2( zsCw5|7uuwqjmw1sy4wYGtYP>Ht F0o~G#Bnp=O zTQ73gPjvn+Q3Ag{@u#0-s7fiRofv6|-J2?#)2E-9Kr;M3P`+*OD<~_4G`PJV3w*I- za(SAUm{Yn1Ls8VR j?`uJ;w0M;`NRKb)eC+Tge%&I4)-E4#=^eIZ4NH zO|j-VrZ&0v^*4qHDQ#>B=I}{Y8cgMo6-xW_ ?Q)1uB= z^JY3PSRwxwe7}_jg{=5&@ena~{%6$JsT}sxTMe7A9z%{B@M>T!|Lz{rp|0HQOz@EN zBH1^OjsP7@V7eaorUE(1XH5kG3i{>O{;}osy1$YXxj=)xAC$~oO7Iqk6NMf6>tcH4 zd%ZtaW8$v>^MFPNti!wKntnPahx<&$;OGst2x_(TtxMgbH*@MYe1u!Rk-?;bDFH2& zfh~*c&;%sze9O)W^Cgrl1B#%f4`tFQU8|P-TortV8leWbN +%EOrwGDh=S|DfN=&D(PQ*SOngo?WWNiU*+*iCWpXGLc^MR5_1p3d-f^8$LQR9xVK9 %Hdcp=`4Lr#{-QIwNZjsT PRd7;#?$6dTk5ujJ`_g()-mQ{lZ(} hK=Z zevkfiZRP_qV!iX35MfV4xW~xwbAjCLg?n$J-c~0x63~FkJ1B9_GD$l_jI3FET`0f6 zR^t)F7bMG4P7r_pIDq66Y}ecrA1@L)!RyZ6r9NbbmP$&b* g zfFjga%A9McAD -m!Qm41C08MpiFHMa}ws~a`#rE{Za z>aQW}atTfz75eu3lTA&Beof7 %OOzss{#7N6e^Wa6ACr3j%A&0h@DBgJL;# z{tHzmV38h$Yxlh;$nK+$A@Cl9iL>Sm0hb!lY-8;hS}w87;`vkg=SN@64GRUbbLUg> zNmZDZbuRWdhL#A?OO>
A>gc4}H30ur#Y zRX3V(=8)WkWjz*no1Gy_#yV_}>JpoXyf?0#xmQw3=n43OM4Gbs^5<~O&E3y?SAN#7So$Vw+k{@+^MMn^sp>7H48~UvK*7D9S@tXak z+>U|)DNRADBIfDv8C)*K6}}ot?)vFTN }zulk=XJ8VkR5Y!&LG^`6YWrbfn$)&>mMGrJ}!<#hP5Zbq PXnfcrwYAR29<;|DHO`y8vubxOcfF?qSf6~|P&WE}L75Sh|O5g1B3O*rT zt?N1j+H-YwAu9(X|F^@P^Off%${vB1pF>KMe2xc%$-Ydi%?m*DQl1qq_y%j9in_EK z`R&*U?wG;Z1LWnxVpJOg-_s`NM0@p`+2i7#M=cgBv(&U2U<87psvS_xIV`lt6iL;L ztXAV;c6~s~t}vycKrmWCH+J7WD-wy5eQ;JD&dat)6oJyL1@h`6r#EgRmBKqp>rX5i z7D5wu?lQwf^Mo6C)2>KZ*0MEoYyf09H`#fFiV#4J;r49S$5D(o`d;MF29GGSU>Gi) zQ2L!#>(}z-lC?IaM@WU~@4=X-*YB?%a?Ukw#pQc6ME1Kdd^_{|tKg1(R9#ALXu0II zeZ6KPiP9u0tb5ejNRJS@T%hOg#YY%OdJIrQ5Pd5HkX@(Jv#YOT#xmB|LSY%8Lh2gB ze&h!_)~5yz9)qn`2D?A7gl_@i1 OF o~hm4$+!Zw6?7N8W(Yh!$rbUb`O zjOvz;Y6db7e3bM!ge25j<|OzSeAM;>6qnQ@7^yd-XZl8t@3a%>QHX;Vf@KNXYz}`# zQsI`m`Kk{JP;XEr>D^G|v0H`mYJgf|cQ4Eo;iGh_p|1HK%cak+WoUBYr)sl8Lq=Wu zNGe>8B(Z`f2~?)k^SX9r_x;T%K6{zm!d}X2T55y^D<7!(fC3~nL$o3MaG^`arg)fc zU_ gkCP0QiLU~j?huM?gf#`8OVBn3Win>R7u9N@WMdI? zubRGo1a`AhKWJB6ZV_!~5*2i<*VuuEItZICATJpH#r#IBqDMI&AGD4pw=3;E%;AgC zGo{q8Mcr8u(KuzzZa-1rRJ&mOs71W7U<%!@e#MJG&45sSQQOLacX@1BtlPHiB-9ma zolA)WgA@Ij38<90qPMUa+EfFFB$pP}pk|cv7h3UPtkx82YaLskID};es1K~roNB9b zV@+wDomqFzk}1W`C}4&0ba2$6tMM;|$+%;IxtZiD{@{3O>U-iD9=*o-(pE4(u2Hbn zUZdBd?71@=KRK%z*a}D2$R9Wlf2U`qPsNNzegfC*G*oB~db~>kq|alUf~8C~>n_PW zFs2}ywTY%snj)=d9~AJa$kwVK*+YO`)4H{p`W0$Z*RU_HTK&5Y#x=tf6jUr;m{6Wx z))lHQs~tVDr|Fnt7Lki4I?(8y=NxaUJ{i L(Z=~lFvDDR&FX@%#)H-b= xmf$P*`gV{cdP|`<$tD30aey1~hLAND _Xl(vO`-pA8V%kVzZ zJ=F@oM>nVTL8)Sn0TK~Z_atcrV}g5pVr#Ja^_^L)EDN~(lV^wHhLwGzsDSZWC*oKp z|E7tK_K?oCBXUItCNJvt(Y14aYN#^IlQ)FO#w_JZO7%*rvZPmJZA D+xo9oDN_YTLJIoavr4i?#JLM9N3OuvQW%$RvX6!t; zDCwov9$O-NJuOrB5;h&0GFJ^yy?Tj~ J5$|W+Yy0RWOd>?i4+ OuMgahA6=2D26az4+ zoZ8cDbDOOBNUBXDK~Kl3eT`hVh_lip(|f^|`UD@8RLEsZ5Q5Wl<55uboGPRBb!wtV zKxH^sgB`FxAMWQfO=wura+h Yu53qultdh&T3RT@cPm!DQn$g1y9Rks$XR~_94%RmJ6X7Ig~91&8zY08*W0l zbbNoDpaGWt02JE}eg9ht7L ~b84#<$20DaUq z`_I}(3(;XEavQN$K0||Z$H-s&_M%Q(HLWA3bEXTmW4dFD5+QLsJ~8NC >Ir#@6nkv#`+Iuyk+FV>;A8g+3t5v67AO zVqsV41B?gP)|J# Tbo=kmS>PJ zR0e_8J?OA3S-rSxsuX8;MGdOMxph^}TPIqjPeq=$Xl)O4RdVSWSvHO;$dJDztP-JM zoHqpmBz JJ(Cd4Tg8MuWVfv9YDu!j&_RH`wXw{ zxEe?6GsBkJM=&3it><_iphC#L-oyfDnv8zIsO|NOCB+5&=5F%i*&KU&uHBWpPDOSv z0p_PU{7OrHU!bX8KNJ=O)_7Sb>Sl?42|DyjMz-f2&4ED=pC`DE&BxQ5(k}=r6rd zwQ$hOnpWmJC%o9X4n5zYe9ApvL5~ZP-74do4kW1dwAD8TIIy;iTwjV><}>@YuSdt# zXUzxI?Yn-sHSc0PX y* z=d1wKz*nrmBQ7)&?uZH&fruRz?D0@_7$czqr2yup=2^>~F7GUNjD{IEUBNZCTptw; z`snd7JnjTf)zO>_fV+aZs1|c0ipnY|h+sU1KJv^E5A5Ly6^H>BSEL^uFfezBHP7MJ zBnHb1Uf =Wn)m4N0izU`b zCDz!8Mo Y#bUnbrrt9zmgjs$L= Dc^rk#?zP7KXv0rFWaj*oj5pctsPmb !yh4}hYH-6XFlLb1K7QU$ SY7C|Ur(%UxCy)Z!m MtqaYhQUI)hA=|#3Fk?mclzb z;x_R5QvIrhI(oWk_-j8@Q#YHrW%qWclE&+IUt1n$NSoX4Nyhx~`RR?X7}=<2jP z-;~XXDT+VhNUD5rIWsVNT@xVzX!PVl(52Q|J(zbIvEMiMfBRpN+#_VXxnETk;rD0Q zVWnc}BPuC1YDAnBuaRO3R1h}C1T%e4 {en3_{{NGo=)7lZ)tm8bK=qg&5qU2E9`?7uL^W1c8(THOM;)tXm*|)d zz{>UIuh;A(5voH}s9t>g_=WoRhlgsE>Zn$giJlCR+09?p(0YgemFl%mI`#2U<2CBL z^{vf#CK$qr=I-$gt2n-Qu=vpMzp-uQoR>#SIWEUxR^7)+ORc0LnXK>H*KfB5an?T` zJ2wP*ORO#X%9vNR?%+R`7YnW5ZmaoY*w5$Soy+!MZ#wN7yPVtQUT@nXX9luK0ythU zj|fUr*LYxxiqsFkt&3`Qw^T~iO=_Gz0oueEfG7i^n|@(X4_Ah z*s&!#w@lW0dQ9HA7`!23`y? G-MS3cf%Dg+$f;+;()l{ZDI9;7mOU)(CCG;iK;GS5rjV*Q1pA#15^-wc-DCI5oF z3sv=Z#Ok|Atox7H-G%mixc(f!hUjAS? 1zO>X=-dE8tUnBEFXZKI0F3~t+*Db9hcI}GT7F}#6ubLv2)pU%(#gL&1 zEIx5XJ?Grnnt2z;SOb&bH6NiFuvW+)%)!l?_mtLX2$%dOu2fEP`6~mkgjgd( C5R}@2Atq+&YCS8!9;s@^#@ tj z#yWG!x-zhPCz`<8CCrI^J0WqYHs6b8w5*bl7Hn_HOEWG(?Agm$C!rDC*R&B299)I{Sf1bX#IO-Ses{PC#K?Yd{j(mBf(4L*X zKY8avC{nC 0x9lJ4mT zz5c!6t=b;`zEesPETnSD{`6|s z)2mc=^ygoG`tXqGcDHJjVzP*+6(TxBYxa}go5;2*$)T_Lryo7|>yfmkok}Gi!r5?C z=UJPrGw57Q`r@oE=lgDEi_6V>89+Av;W}W2 #;wSFOsQ%CzF&NA$lVpGY-i7A zb@{W-7r91|pn8L 0F`=|5~~74l*IKZ>4YEw`lPZVTe3_M<1 nX%qg&z3GmosDAva~ X0e=;G^>f@Ux`d9u&@b=nz zHQi(_E_Nw}ShlNgxAVf}c@6-uUX!iOx3v%P*9qO|>qpGM0B}_%v_eX#cqhaPQOusD z%1{N8n49)-voz`@SK&&5*s}ZhU>wFv@5neqWXvyHR$^AW;ju-`aW5xy-Fvh52>v_( z !Pm9x~;4F;X4;knok!TllPr_gwp<_3{DOjc7e!Ec%k)_ z>i>TbP;f(Uce5t|J8!e^*r5>xA;ko_oLqYogDo9;qKMH=B0vTJ*%uTlrG#4aL_=p* zN(-rEm>r$V9Axgjz$a3AxgmApb|u@w!BftJvgkl50d& 3x0g=6y0~dGc&T)JlT r&^twJ|j54<>n26rBsR zHu^TH2A!E@mdQ*<2&92HkjG9+4<5*>9M#;k$jN&&1(BTG=adi)AmV>lxJpt6qa_Nd zFwKi@=GeL)35AzGv7N4JDJ?kPjC`86i0Y*uuX6iK7|Chl5x-l>N(pwK8&hA~(r@$p z?=~-&_ZtD3^9PWSlVZwu$4X7yFEf8PsLQK+$G^b6>q1Q5OqVk;OsusMUg{;m0ziOJ zkV~~x0mPxoK}iYH3hm}i0J$e HmQf2N(d%YO2~Yb}*No!lFGt-|U>>1e8h z5?*w|u@%DDA;mN-m9_K3ejb0rKQxJQPe+bYi7D*KKFiUJv%fjkwe;659nf^%^<$O1 z@7k($5z!JonT~BDQUD+UK%JfgfRb|NQrI4e+5G(VpZOX2^X9PL7jY0e&!<(0FQ?Zp zNG~4UsF#04{vA(4UjGY+bqoEychYO? JA0#FJRw*LfdKKLnQ4kms+8v@J)T muf1d)Jd9Uegw^QBePH6@?6PI`%+U#XCi%K{PsKAHVsgj7PwnLq+hD zJGN}BacR}P{oR?lN4-|sC`n9Yi{S^)+LJNDpcHsmX${4XB3tdf*9J}Xjt?kTRrguI zg?Vtgo_5w(+ &&4Q7y^h?m9wed{mage@8@}bJ2B>-o4BWw z6}_aU|API^#8RexgPd5A`afifd0Ab~|n|(Or~wk@yC7e=Cmw3zY10Ta#A9j!U|A zq%vKc=s73-r&(usA`w9p_g@acDGiffB}Na&8N*+E;ef~P;=$K`;ReY_Hd0 j+QXwnHG$R| z8=kq&rHR)1jw-`VIy6${QmvGbAcea2=$4ker>a_d-;{TIuU30mdf1Qi2}7P6mH >;GEeBPCc_mQLPCNIVg6T&GO{lJ&tFE@&%6Bm=8ybUF7rnW`RqR-W}Ra4 z7q(yh_K*o&J3l;~O+FxNUcL~u4lp5@2uZlLB`Nna6O|H+Qb}cmP(nxti%zOT4F1Xm zKl$YXePR8?Bq5@(Hk1}3=gXO(3@ivZ6w=C87NSb7e(dy8zwl?9NLT6$6iQB2Lm^V( z*ahnn+0eAkRm`q(btoW5RK @eBl$p zs$65psaXrrl3Kj1Gf{wA-OC}*`ycPU7YeO@s&~=l#wWBPxRmeNz3gn0#;Q#2y5uCzE{d0%TAE#5ceBVo6>^>$RKL0wjP0A*Iw9 z31G4~*_iRs;yOFQ^{3gy6VlyWD4v}St1isv!{kcLtmj&WiVHPiX%V0<|1cFLswmkN zU33$Rt&cHP#y*~|zA(B8L7jZ9A5KV-Wsn&mO%7S6D<#sOPkvvlTwNE| <~5TWRS=> goyA++BZB-8Fe z@ZMXkB+UhsZ#N;j$eJ%TSn5wbY5uan{~qYoM1Su_m*M9rA?A~bpC~{OBA?_U2 7G~z`E1)K(*Kwa@vusS1mI%G~9GvH;S;i8Kg4~$OIA7HjCF>9k03cdd z#mWc|bCv)AIRIo90RG0FQve%3?Y`jLl|mpr{$QB2?hb;f&8HyC+8rn%hzz4Kjwbg^ zKey^$noK+C-}MDeUKA@v$6O9ZDHTcKC%DBMR!T^gpFJx142g%KU(9^0%Fr!5dY%tN z3IQfZyYpWg*^u}dESk>*{8S}PZm4YPZ|VD-|3fLl^6QOKW`)RmA~O@OwT(tY-lh;o zfQFy%a_7i GF-DG6Y?YCdlb_=aSu$j-o%Bn$AIuQIMhE|e zoxe#3$Hynz>1L^wCD_H3e$9*pfB-r#>78F~L3pjyO3Y3Bx=e?mI7rMw2&tryTI6 #VmBzvQ5>8Ng@u2Ja z1y8))p)!KMqz8~-u{D)>oLqVE`%cFaB;;@h^4QJ-t&Yv4n z_4VvjOxFM)9 etHA55`F -ez&ixm#F`r@s=!pEP1&D?xl1B )Vl5zU
+zf0av)x7Xn-;e`WHnhNam~OXo>~0$M$>sMSR?g&NoAcQ#8n$4iu29DS=2VcA2* zlR_?F*9XlaHx^(NnbAf!s9=w-lxF}&tu=09NMV?smXQMaWeqxpl)`yozuOA{3lRYG z$wU1$Wm3wRDGi`qrg9WoA&e-ELLVCeG*E)GA32jksk7~c9Ir$xndH3DdIc##k$Hqe z-H+FEGox!`tR)HXldT|<0%b11Kj@u;M?KD?p^{*O761{esb dE;Goa z#*M|zM*4g8KKtl#1|lC=lggD6S&&}A1B^Ko1`rV~C;(KXrHrTg=WILG+Cn5FK&`PH zrXs6QDKC7b(LE+>R}iALM9~0Lnlx34II{T|zXfzR9|%K%g^mhju$UAr5I*R`G9Dif zgmMW8qyaD|h >o}twPS{>{Y!E3-0R0gQGbDe^M!D^)nu+hxPz(M|6g3W>wt*z;5 zytBpk-bX|+*;}AXrq>RZ4XlP-ocVJwlMOoh4J|nXMApK5Z6Q$i763V_ObOlWr*`MU zManCIo39{tRs28rtX55P3{4{y7?Z3_mQtU|!bSzEG@cZ|+*jq?yFf00 H6a?MfC=o)IB z#<=dD(NaMoLwrSO$elK(xS29KMY2;cEO~4BOPD4loY>1{K0)!7&&Rhn`eB920kpQ- z`sN%5M3qY-S}G#4N?jra9U_S(r3bgL5}>yy0yJi8&L0od>J9BnpNWM3DlQeu%^k zVv3aTFzM*Dl3Qcu5^dv~J8}g}3cOOyLvvLRH5Xj7gc|TICzEVk2&vg bY z%f%Uc3f0#wk$J0rcIkq ILEh9$|pFTH?37#?yPQ2Auy>E(+1z^@ZgXr zh;19UzR0qh%Qu`-l~N*kuOg!afb-q;ahXs4UjeP8$b^)c05xrXk!b7xZy8 b*&agcBbkK2kXsYAV%|w5c#UQ9a465FEfA#I1huf>7Y3Pz~Fs4 zPUdKJq`s3Y?4|+O9Uceo?BxIzRB%85*rfgiyRK=5V%NMo*lT;1muGvQpY4USy_56J z>EiTF^%g4S-o-6BpV_x`UJ|-u5eRFlO0qQ#mjaF2;s&a55vDQ5Z+Yp1n~!0=*M&JG z9{_M{yeA^%LzDnMoci$de0YEA!&HF}jn)qpRl 5FS*}M_I@M@_XY9BGy%1r>d%3 z->*2{)4J;IlpK<&&hRcJM8231OI(~7uuyKv7CiF}L-K>IsUY|GZG4`7YEhQ8J6C0E z>^aeBO98UA{c5wE9tIyeMFlhB!_S^w%!*{9R94~V){W& VjPO-^z}6;r{4;}C`})o#97BH4C@F|~87 z5V74^u9Ca~cvp n(^Rr#o1SgcKI(Q_7&Jekqu97Ewam4f=&DZmfO<52! z(p)-Um!_B}R<~#oxeO?dZa92x6`eJ <}-{vb+}Ip*wa zZ{}#*dgYW_xhsw146E7)^a0J`AOJR~9y@0U>-l<}DTU_rpw9!5ESt7&>r?1SAH{f@ z1B$^K06Vpp&n{bZTC$dlim)is{elz2g9HFa`!w5PI-Orov~^S0aa4_R1gFaJa1xFV z)vjQ_+PJkkh)IZTP@k4@*`DCkJ)C)8B=+$f>61iqF$C5^!Wlerg}TF%ELki=@-YUN zLJHBx5R*^aB9>M1#uzyMM16{IU!jzD=&nMQ+4>RkYS0H}2vlCjqKHLNMB-&u?+=R) z_QmHE!%30$z=hb^Zc(WZex&uQOmE-&eZBrAkk;Op|5mDc7a>&d17CIY=?S7S%L{hl z`nT|ZLx2K_Gp&o9P{gmi_b)Gc-H+{it+f?-GuzDeGqKB@u{Z3NKjF;$#*g|*hlQt; z`h A`MTn?{-Z zLfp+cpS=g=Vd|VEJ5<#PMJg~bv-g(SIq%v7^K?(en^?z~xXgfKg4q(F$j;AZXaZgD z$R0U|c a**z}9oTK<%7zCN`S5Z(hg{3Vv1DAdEiRcNi*cfUVbW609? za^)N-5=r6G(SBK1!`SafU8%<`&&CJ4qk3gl)vVnAdAVx6P)Z!XPdLskGtXiw7S0F1 zW6v%Ow@p9vUom8GRJ7QPimVBG#G_Zr?Jyv&`$m;nxh3pWQuw?}-)|7ti2X2JkKTKa zwrd-twyh6KFOBU}fn|Afb)`b)TI!s`x#cf1d#;MvXwqondrK(<04(Nb!J$D!6l1x0 zS{Nivr(JivgwouQdq~O0=g(TrK7)!?VL!YNiX`#V9kMm*zL`sjuL2bC-6gsZJ)hYv z+2dopr4uRgA&&+P78v}S5x(fEFqFCvE?R};nSQ0__uWTmJbA}<*jEQ$-FpU5&5Oc& zpQMtYK)DgC0x|%|0cdgU>PPOXS{)p&-zI#^8f$FI@0gwA#=GLLy6&RQ+=|v@Xul{5 zBvurP?dW;cFRSn1qm#v^*9Rlg{y}HZtqyIkACa?dS+-4w25q{xtlvG^$H=cBcEbBz zNJP7)A!`W_-s^R?jNgYlB#4cfH#A@9wx^TTGgRu6ggBAQB%3Z3xzgJonS09z3{$)~ z->3fS%#G729Ci4c&JVW=rx%l@v3RXuX8~xX99jT?!dNvN)v|SXV_EI%5Y)ZJOq=S$ z&N`~fb ;wCXJ(N(vHIS{JaMHIy1toZ z>vsDLeLpSOr&JUL1}8V;_I&W^`4hivXS2{!wY+7g!UslejTc^L+w9e}bA3aEJ>k%L zLcTD>o8!wE*gI$0O!tqfvS{j}3@WzjDN=@p<+n($$2@4~svtWW&2hHYW__`^Sh(PS zcNrfnR*>RTuf}NQ-gtk1v*hTSL~UemSzucs7AMokM I#z3Lj48fNTF45u^ z8{81K=KP)|+!B^bVU-cjhGBM4Rb^Q>O}+K^(URR+CGWRAR|%i@!4#H=&X1ECJAK+~ zcs&-zl;wPJWNeq*!ET(}))5ycJ3Ggf{hUAMVg9Y~gTQ;Uc{h*1-2(fQ#bWwc%Hm_C zq*O{wTiUG4O)C0gdb5&BepN{n$ArQA&a_Kcl!&K#PU=m2unCmx;W}~T{bjV#9;|{* zIAV`;TxcyxDl5bhHHE?F^zRihVpBh>Pl{>V&gawNq VjE!GOXv*F@$zQQ$H4r%e|8f@X6Qy~OJv$bbFTV6Q;fOM@QoaPE&e65(% zf}+Ut+&ITB0XXNJ@P;SB0nSghH8#cJbi5h9`(SJ;ye)CQn9t|aEB@kpMdG*V4Ms;a z=tlE!n^lRqkEuw-%l_pDX?L0{+@UkHdppd~Iah3pMVf`GYO1;{%c`oHEqEU-1O&qQ zVm`y$ejv+aoW(=B=~dHRlrg$FqS9I+VNI5>Axmg1GtquAA4(}KU=Hxk9vmwb(`;RO zSBC1a!t%!6vAvL;IJI`>xx2WS_VT-jF}d4={o$By(O%jT8?3=q%%itoKlWhlWrbud zD`d7sT`}@ONQIAu+usybK~&6+_X(M7?P5XA4DQVbpDgrScjsE|J9;wh5^UNW!q~N0 zN&7h=4UWhT^x5dj1?{{#50@b;mMW&Ih{a*X*!zsE3{wAkBz65H`jj%14d8fPoQ%WJ z9U}k$^MdSGhoYXpJ6oVP3bpFr=WA=HhyRIB=7x4SJ)K+fm(c|N;xL3Qmxh%_{ZlLe z5)NIxPwj@Vj|CGNJDwCL@5W*w#DS$ip4j@rI(eg!RH3H_bmJ65UajL5k}vKVcDOF; z<(U)U@4a9sx*+))ej9)pn_{-;#-W8Odn-g|4AB(g8bhMpNW5WgY5;K#0tCS_bVA>8 z7GSGYNwzp6yWVWnKH)uO?JcIZDagU%ov~7Bta tJDRNadz=k>x#KB{poxsLHYkB}sOp0W$MCD>7qssH(1M zEK3TD$^eAwK;zahHimF>shW=45aUldY=`HLxzKI*wc=9_Dw?~-XW0!I!mwJq6Q%t} zDu&g1T-cCB`EHhz$RLAUgA#d`OD(dTv&haEBv&`{6jK3CSkOvLveNvX!)VkGkBse~ z8=Ga2g=2a7xCMCDj!N~9o1-^j*nGGL89TKdC+eAcGO^z}598a}M4hVb(Zxhvu)0*0 zvPNk_Dri %e_>1G zuQ>ha?DbEM-n%<=&K*Vcr)gUd&h*g6a5N=CB0{0A$%Vok#?$vQjL~?e7#X93NMx+~ zxB7T!q=sbM*;lG&JSp7+H*1b*b4>A=R>xE>O)}F88vp=}O|d0IxB*G@(lQ0d(cM@Z z4pVE;T8te4z)vCii5e*~Ea&JPAu$HR$ZFJ6YmdqD3&^q=QI;{8vqR930zd|kLBGUH zy0nRKP4*BuR9Vt7QreIuCU(w|bxhV-%d|crqVdt4bEiWQ-~4iaM)vi-7D`@q#l!Ab zeS5dF#jpEvI*mGeLkL0T!kCY+aL)Nz!hxRu^qFNWoGmuVTlO52_3SwWa*ku5;Jrgm zgrs6Tv83EAdeZ1EJC}kDVcE5NlNTL6ET?5Ttw5}-I&-38^&iC$kuK^*Z`HjpBOWOf ztCY3~K|n|N%YFuo1&^^#pW1M+{z(!3eCrUw004kdhLEh{ Y484B7#DjX{l4Ay6-&1P51)Q{R=!`cvH|ow>A|G_YS5~S!{G@2pzsGn+cbeE z>+P1)dehJQJG5eqbIerGzV$1LuG|0rab#5|TsU zxk&I}^D-$zTy{xx5Jw`~Mg=5itRM8yRd>2=pE|$A@|h)iFpLr^qOTAi8rSbzi(eig z!@w8O<8f6A@&j*~m^>mqje0pzr~I6^kf*6*T_4cJXzwiB3nCjrmgNjMPk)0tI^&9Y zH*^K_t%>Y$>VM+rXr@20UmwSSNKJ?P5ytg(WxaLGk*Kb`4?dLM>S$z^O~+w8nIG!G z>Q%?q^O4vVWnOnp)ok~vuX(84`A@d5D%TdL!(4?a5-bR6ZJ3va-Ey_I!A)B>?7TI^ z ZlzRDI?^gCuzecykrr;)h5f|gfc0sr$yUB=?P+Ol(za@jc%L;cciVCS zO!KjCl*OOqY18$KEg6I(KO@mJWjQ6X*4jwX8-r9W!qUxk%Z>6)N|oCkFjWU7(QYG7 zhCjtxYi)GHsr*$~Dj|XrAOdwhl5}+wEbQ_I)veWO!SZZ9FsoOad3Xirm*@HIK3yMB zb0=mFxow_QFqhVXGd`r&5-76K_Q= Z!dy_-7n@HcH1lOJ82O*}mII5Wm zhh?pBo@g_cJMQ>3uKAj$JWaexd}ujI$*0k67F*KE&0T$P*hLqeceE{+RFh-&b@0J^ ztPMKss{_j#)(0n%*+0E_59Z_S=@^{v3km_5N9$8j_w76tE7z=CaQken_t)$nZ{4!& zc?_c)*#|~uVt&h0uvcg6QHc?-YS6IDbH6+0!-ehHI<_l~l^ZKMPfH Ai5qqVairPqQO62Q~khkkr zCt(Z}Xxi^?RDC*E=!0_!D$WnP#*1-c%XJRVU8B`>mGSs&A8xECw>jFK6IJdw9IqM` zTD4ULFzaO#hc5@o0f*ewgu79Mt2ZHxj24*{HPe#=2c_!B!il+nlNPARDVB-pjqZ-3 zmMp0#3$-vwpc8)RZj90WekGGA }%v) z+U$ja0N;EYf?Zb-0QsIV9&R=`7o0u>exph2=>U><$3geqS>MfbTmqSwLDt}Apfh6R z;Qf$%bAuU@VQuC4j;A|X|HI%E`08a>go0`aKMcGhsf|F<6D{ft)BLOBde2~0*LE@B zM|kUMJ (WY3?p4_SMRHr1%;sbA(6nSQBE@tnV=z)#x8)z~x z&UIF%MMNklSXmjWx&9*P{eWR;>zjd3AuUgk(&Y0m6f8^>j0U)Xe73!(Q;E(ztLlEt zXs wdSFFTQPOR!ni}Cy -Y8>^k-rRho$W_2RDDHJ0)u@RqZ`6*9q1ei5OYsL~sqZO!p zAU+(!IqoFdX%ZjpiC^l-ZDbM$S06Vk@)f9QGO<*74ufPvpi(_2W^54-bx1?SzcRqv z(5uxQR_@HpvbB_0aL_q_Tbs4jBY{b$- C4kbVkE>5XL(p}t-SuhkeeNM0cDJ6qQQvC_=QEFXS9KL|mYl2b-KzD;Iiq1I ztQ`qsp`F<6ggejA06SlIvL2Mf3VG@SU~uCev-kzZb|5GekE(*MG6R*C VQP_oWzP>%T4~A>2IphE>Uc!27}r=drRDsmu72``3apQsB#YB`P<`0k4Sbr z3Tw{s73Oj2l9MiDIwhnr-^?G@vfsZmX?D%wK0_G<>c-}bghCd50Du~x$G(~HVuc8r zLIWJEkFIv_zd`U;wxznR$2In-(aOBt_<7r7L6^F7YkLEZ3=NU4h@l$0tn??peD8;} zPu`~;(}yGyzvUdIgItz;_UCw=tA5W`<%k|fIAYEJ5P((u$`sv@1_>7P0|3d`EwC-W znv|WcGqz97++U>dbrU;7_DUw1J7hIlv+=x`>^O85u89tFcG1NpP1Ptd7n5s1-EBw6 z$)uY7Om_|h5Cjt}Om9xRw#I|?^|t={-To)|Pv;cbfFSR$Fz>wy-W8>r0Wi)wR@t6R z${0^xA%XA0C>+O70!W2jvhQJk^=X}AgChausm%IGh%Z?h%MV $!l+u zT)pc3He7>m@*t*b%=_TWOJ|t6Q~WGDc3$}*2CKJckm5U;OEdb1JC`;8>-cl0T3=PI zQKLLOpUIpUhmEPIOX)9NN49vekx`}-YpnVET`=(D5US94qlXnc+X1qx;o^+0vs~j2 zCb6&$1{cw9?%mz<4)-SbsV*eWTRj7~e?ND-)n%!u^|0Z7#n77b_YbdQ0l=y5%9_a? zMxAGLE>>jCrR&)*+iG2{8%mcr=bSCQ%2##@`wl;O)Rg-ai~O-#`qfJ|bR?t!tuis= z(L2U+Po^$Qf0$mkw2kb{I9t@;XRItxehlHvEG#oYr{vcKW&+U2w|4mDX8?~nDQ(k= z2i%`ftHtn`LaIz>IWaK=GzkO(U}DbT ^wH&|VqYrGR6 zz`puJbd~VdFe7HG0A5F^*^WJS$f>( tM?=qdZ z(OGBh{a^t}yRnYB=88PztgKE)<;<(snkwTkR7n#6%)epp2h=}&LPmCz(b*_60Ko0$ zT7k;Jo(fk{9q~DHol#le36D!3RjTmD(-{{=q^~Ws3Jeyj_Z~5*CrNB9g7>P5wwm?r zDKwswVgNlr!oRBUaPOEtN`3A0G_Swd-{nO0E2lZOcA&Dmu <(kO*Vrxpf5Y{<8jC6W0LGhOEkiwC%Xz%mMimhV7nT63t+0#8}zFdvT zSAS2rUK#qe{D$UT%q*_x&sgu_&}%0j$PyVUax9iw{ wh@NT32$t|BuN|Q|)+D4rzD{cw zFZsg(2lKff%H1aZegKuSBAV7p{#LPP#8{XD8|re_A#SB%>fsW$Ml6elwdV29$)Os( z952;8X4G0&GQAyEoL>a~Ub`iw7GkX_2)o_87~Si{{n#V _h&<8T6Ikldsd!{}03hzAt zw`MEblpy>uFP4^@&Yy>?+8Cv(o+ha`w=DN*>mUwhu~Ijzy4h@T{OyxU&}h6@)tbI^ z5wdi?gF$nuCq_*ESg(Gc1360mv4j@t{esJvZ M$klM`yw~lp!Br`g%kTI&(Avp=(Y>1}_Pt z{FIX*fxe V$jOaPltLw#bKzxwZg5ehI1EW*ncJR;NU(`3c1 zaq`5P7WaR7)eq9V+Xc|hD^YDUj1X%ct67RZnvEAg%G?(`LUFj26MOfTyc-{;wIj|0 zh7T<$+#yh6uE{w6ly-hsSJdc*ORa(OvcuzJ#q{g0Xee@pc0#`8L?;3QroVc~(r`$3 zBt)0EZ;VMIaiCkZSYa>jgHxaU7Hf#jbm?WLUvBw|TJOl!yPsmM!uAvaB<#scRzSSF z8PuEWv~mwdkoWlNqusv>)`k$Qw`q{Q?0b$4WO+Mx)d$sYNq+Gnt8V#L9C1o1egCbt zZ=Vyrv)0+B>V|0O0Zdw#Wto@Yf_07G_8}#XXP#N=*xr2R5cUQraM?!LC2A%q&U(X= z`(M{^!A^L(26wjm>^Y?9Zf0JV- y$iM0g#YW) zl*)0k9Suv6BF+Iv7EJqB#Q4AvG)aTsDdi!ZHfD*e`{C=oc0jeb!pYpJPB|o(k}K?m z_j1x|p#C=2N6`R4LUSqIMU%{cPF7r%X|Ra-h5l^|lDQvU;rRq8;0NwW#MgQX)K$1< zV{$g8wu0MwwcOp;{oyNkLu)KqZl7xuNT(R%bHFz+@q|3Itz+L!Gio6ji|W>D$7mM2 zm($Fvw06%K;yr*MT8`Ucx62tyN3~);IdnyFE+wt$V=|?6K&Yhmw;SUgwWQySTo$P= zO;u|x*C*r9jF6h5`DDL$ZKyl(ehP(!`b---AD0B9OU%?pj-AYWiQaJrXN{WmM6HUA z-d6UEuehp8@#&(iMMtP-_YH=`2Bt0R+_PCu_qC=SC(r-c9wICKdy>R`cKt1xkNbma zn8(C~itIjtGZYgF)NuAOGg9Z8@APfR`Q_74$=O)b8OoRDPF2KgorHw^E~&++BlC_l z3Bx3b&C$3%?N9HRG6>>aQsuDKJ*h)t0an$?QlrLK{kV@C#e{b`8~JG~V?H~;jB9U6 zvc7WtOyXsf`*gM{ulk;c1mW4S{U&>FAfg7r8jH7k#9LRVU97MHAAL5g(o5D`3dMd$ zq`v~Cx-|;ERpt=u9Hd*i3NVU>s%G5xd7Oi S8kv^SqyDc^ZG`29kjuen8=Qm>8A( zVdp+gf80^!OE-|8Gh`(0MQU}p5Xh+-Uzs_d#N!n7yM?>?xbwZk=F@gLJ^uP!_JXJ{ zBdp6I!VBL|zmVGdcIed6D5~L}7UrUK+jkCYP1Wh-K_lho9GQuo8G$o1t`}U@#7$aj zg`#DmGMDzE`;~~74x)HpwMhoCOlxdUsf 6))nnp z*^7$jc7U7%kI{(39^4~Y)giXDL=RqZ7iIH)v1E}emeWuugsC3xC<)=zT3f#aDD;#9Kb-h1-G{u; yNeG)2EJKAgmgS25 z&DDg$2DjUQwbCf*X@AW5T<3Y2cROTDcnR{zJU{^sy9`6ZB0ApLoLEzyG({X?@e8}| zyIm(w9Z0!^aJ`7=nt~I<8kS75gZ$Cc_d(5Q#kJ^kZJ5@QMg$+52;=#FJ;z~E T42sCV+rL%}2 z27E%`w@{>c0WanXY0e(~TNMKs mP@ht&$<&XBobu3$Nu~;Em-a_w>0KD9d@^rECcIM)rLqoj z3*|{c!vFtUlMBKS4?QV5?nOrBPM8gAk|k5JyqWYkviU?m&CI&% z035hO967E;MHxmRh362PG2p-mYrONul#UL8ZKu&9rDinN6rkzfXGUXnK#FG!Q4W}* zBbkq{)~=z*Wk+bxOl-9PnALEIOA!Z=Fi)4w;p$ce%|b+O9lLe5(y64aIg(c(>R~3` zK~K(Dx}t{PC4644Vl7W;5@x4HpM1c*W#ZVqfw ffg2ROmk1{dW%9_uPMFH*$3lC;Yb=2%l zcAmi%u7!)mwP$|5n!5c5mP0%qi!nnVQg`)N395=}3vFk%Z7*uzV8m3XLzp|@z~Z{% z)Bv2-XUPfH39t5WRO>1ZKP3Y0b8?B%?drvUG&~p%xl&OTVV31*NpE3zUzn+LiQfUd zrJ%Y{iM9)TE!=RSGLXt*(A8a0o&2EbvnLfy?|FoiIDqb}vq67ct!#y&0{NT|Acy5cF7n;Xf#nM!%6- z{p_&*535AOw;67cV=q>V);7+F4s5n#tKG@0EXs>US#z3bRed4R$JNzIMkY12njv@+ zEo67K4kVNBePXM!^LY;LAy?ltcMTPOZPC!yEA|jx;5kbHX8#r3*oiIY39|)zarE)v z|3)qZAiV@9XzQ&MUho$1KRV!p0;`2S1=zo(ir}SFgL??fcXsT~jQnM;h38B8s^9`V zhW}`S=(|j2UvE MaDjw88WOKOs1KQPJqN>iY;q?W$%?BY71^B}#H}$< zg3-RuyZfA9dhGF$Eqvk~w&C5Oeu+Gg! 7I~bKZk0 z`3#>;6c=Zy*1|en=Pvx;1o-|~L@_GpRRg-mx6Fs0D^i~&L;(nQWn*uwlkVMu9F#e{ zN}(#MC%WK<|4E~keR;NxitbcQq9C~yBH4h6t3YK^&C!iv_BCTf!5Xq3l~Ob60Mu1b zwMw0;PCIjr)z#7UYKVkJUdgv=h AV2ajcMl*6Q603piUO&MP_GrH_}t{l z9(_fuApH==osG%4v}C|b z^V%wSwLaDX zSfCVIs6@a $dvFM# 4G_j%oq zh0{@i>0J#mCAG%;C_|E I;7*neE>k@J~eWv2Zyb{|=q;iIl zBed_x#%8PmUtw#lx7)-vj<9?%rW^*kPPz@Cy)bV~S1zivL+AWT)Vc_rygDeCAS(IV z2UYOn_S_l(S;dE^DJ^LMQp!oxNp)gcX?$tSFz!w(%3ROdaC2fq&xc*|h0(H}R-q7? zTz4D;lec2pN&l$j4y`ce@OqveK}1_K_;M531AaG(SM$buvURfPNKfL34l;K^W00>V ziBQ#7azAB7Ml~`ZL~uXhq1Bq~N)_v{h9nDGfheoHR|T?-h-|tsP0PlkEDv(d;vh!l z`0)v2E#ruH9m=5NkQ#8n&Fa8MH6vytC2CvQ4j9tv7sNB6A`Id1!#pVeMSk#yRXWl^ zDYbn6z|#<-tMfnUq`(hsS(Xug4@7&y8NVwUG8fENz;mW6Kw4!uH!~z8HG5Q`mq|6= z+u2;joX$FS&>5cmm-1c`tATs6+i;x$P3OBO(Wf E0(_op%Eh^F|6O^*9jxJ^mfj2P%hD zvJ6ZZ5);O8B!@ Lm5HA!K!~sh+Z;mrt_Au4 zC4a3z&3Qt|DptRm-Hj1CyO7+us)P)QE`m>Qu=i^A#+%_OK2UsV&VyY{yFsNl3g3ET zrAA>M1E<0D(j84tXVe$d(63l*v`;WVIEs9Neg*B2u>=5;o%W1TbXKD@yx}*BX#xUe zQX9e-mQquD?>MS?(J`SX-O`mSL!JhC$|$2dUx(=y@#Z8Aa#*f5r6>3Z%duk1xU_MI zieJ7AXqt&^b hk{bE2ZI+BRdTbMYEQD>X@=4WVmIu= z^##%14#djV_S1-Kj>-v{pcMajbrm;=m|C6Z#q&@rc2WNBcp@=w7*AMgS%#`Q<)b?E z)}bj7rQ?b*Rvjo(wu=`0X =TNRE#Bw6 z)ED382l5|k2KqLithk!P!JA (}hJ+O@BvO(vn3(MM{=@V0{p+XoJ ~}uH4^YiAZU^ZKI5&i$ErDct7+m+Kevr{*3hkQqaN<3AST*!;7G?Nyl%)M9Xjdor zFN2qnhYfYL@#|6h{x?iVkh|0{?wl1X-t(giAxdabj69(~baj=A$AIr;mGveVGr+C9 z5$YKLMg7OlCrW5#kx ;9ypItUW|~M%DmthIL0g$vq!%ad zj@M{2mwVbQ(G`R1HG1WBijD4&bGcVTtDYby{>AxQeVFQgjM4fL>1VHh n%@iJfw$nZ$GWdNrg8j5# zozq{*&UaEe{!o0V`QYkv2fTXEjKuee;3_*vq&O?0qX5U}Bnhv8mNi66Xe_xf=6W*k z$6EdN7Y&Qvtphj1MGA~d`r+Cs+}O-`^2kdp|6x&zZMS9+a@sLhD%`^?)Qji-VnJ>A z9*b$Zvt=;wtOH{lr4I4r5RgT@*fexdZuoL(fwl3+q7l*#bR2l91yz+^Ze{pgY@^IV z!1%!h`31>eJhWkeicA9p*n3u|%4MLYmt{#Grujn?xFx|YAwlirtTZz_U}sz M?Lc!~wYhEVdCX(4p5F*h=9Vco_s_mSR#(+e>4_MxR)I48H|C%E_;1|h zJu3=3FgKv#& mo@XApMC7h>to9q9N- zN^}yH0$C4s53?;0W3ttE2Uk9N;6n{QoV{*AmY~f&&GyomEAJlkH_XtKL(BRrVBAY< zEx-I)q@Q0B?PF}98-u%l=4r%ShI|MJUcz4%Bo1v6h0k@y>cx&$xK2VW>Xfi0`CGAt ziTiakkuC}4@$n}i*J^29H7sfGyiwQ9K4gL1WhKiqTnZ9uRll2OF8AUazgIVsp@dXQ z$z_RgO)=mCyeE&ZLkgKnx{;ZQ9F>1a*scN9)he#;v*Fv?wbS!R-CmqBwkhuFd8x0% zQWJ7m=pOpqR6T(D045}W>>aURymhu~3f2>=f|QcJ8gm3fd%|EJ+2*rPWhHO7dUtj1 zK>O@`iq1dhJFdfH|LUHWr$wVY?>B$-H3_ijq0UYXx h4tscO)OpHu67T&ZaWQO zJ|FMt7yL?Va;lqUv(L^tYhcgfZ3=-nLthY2P$=z}5B@dliloYL@;H}~yo6n7)4|EA zqCx8$y0nw0m*rDE=uyvi7iy>7XwMI@)2%;klekU(p-NKPL5nA+PJyHdUyC!(h^o-t zJXGf0G!+9)FzmH#>>c(ObmW$O|HQ{L%|jYlrPBI^v-&_6T=){5H0Y7u(mz<&1jvyp z7S(j@y#GBWU-Ij| vr9nB6(zQ3@o)*~>BOB5y(Vs-~~ z&GxvuDMkx#y;LOCO|V&UDqlj_8;uIxp!2<-f5Ps!H;i`;*X8cde_m4NYpvejeoAq2 z?fNDg@;%01lqaY1klv^!lLUyG9{e$FAqM}|d*SbqLZx*YI=-g7 ^efCy-1ZxxV8A(?pm~{>iBa6BwAV2Fkd4Xwz{$Dz`Wmnt^%)1` zZcjT;((rjAkv@W*e|j2o$E%kmB`Xe{-#>9_3vkb$1?JdTkvdoA^wq5;6_cURZ*%Qo z0>0Bbl@bt $OzR37bFN4T@*3ph)lP3 zI-lS@Y7Zlz+3J-c)Dk%ig!~xhENhS_PkrS$nmj}%k~~*M^@^a?pbVMZLtDJ4GE5 ZI zGb)&AjXWouMdZX&6w#b|G2G}UH{y+|zItjignByJXLq}*T2^&IR)38Wf-;-#>hJ#F z>qW1ZYi_=I-3?DTo~^MdXHb)opGn{_QuRQ=Ua6F{R##js(xMi4XqRd~;=O+Xye_tl zy`ZY%P!vc>(-LcLa6F<=?w<^on3xXyRsolzT{p425W+6+P!E5IUNRX% Emd_r%tD~XxkUHKWYAEEMMqb$7Jjd}z3~)_J#a}|)rJdV zZN*IQyT}Arlgwzc2)LjIAV)t;^)_@`bv>!gW4lw$sL7J301qQ*aRB@G $Ou5FUXwInYfbxn2R_ez^rS(3JQOe3MC`n|`k<%P3)645H@y8I*VcQ8HA z)Br)7hX#BvnK|8c?|c;JTq(|pqco$^SK%vf_NgHax@3)uk!x(7M47^b$cjcggK(4% z$V4;-qV?$Wj3U!CwLzg*t={!-(D)v_(YC%>r?jnZ3!eEQr@gfX!)fR-;)EwXse2h7 zi6=*e4^hSonojyKB@TYJ&UzPI+9&S!weDH8x3=P;-lC1dI@N{0`IPD`oMcIy5L jO7S`9UakMtVuk zXDReDtkc}^SzPMcsv+0FH#>F^2S{7P&6l61_vF305~fP4 q*@KFG{Io(Q;;mfMp&A?>R04&yy0<733;<9c_$c%4J(r6C!mK z27-zeY2NMYyj$Z)UYyLb6OmCG#0zkG7i~*ic<6LpSB1-|{6(9`{rI}6Jxb5jJ)tj2 zY21#z1(J7O?8N02E4r&?XO@-(;3CRb8_(T6 )k<$!SXU{CuiC#~Bil|5Hi81+*)Rxd7Uk73k@|l7iK#CLWM|%T5 z&g3i&xblDY(oRv?8@QwoUc1YU`!V#8D=x2fUzJp4Vc@?xC3wT}o&CmMg 55VUfaoAb~Pyi(vH%Xl%@$I84sT9KHJDIT5nez1pdjJ4=` zFZSR)+zF2*n^1BXpku+$dB1 Z%QUB*0^Nncjjqb_;Y%6TMT7)zO;=U% zIy$v0(A#a5mM{(DtWrhgl<>`Z!89L04}g>|NuB?<&i{Q_JO;uXyjA2GQ=iHYB8D(A zetFd}KDWMSapxVE`p84Chkct4)8-Q#YD}(0a{3{l9DMQZK0MyL^=)YIi<}lr4ig!H zf7Uj=^f4KrPom7QM^%D#8R!~R?9B-dasYNlhe6)EKvYvgIQaHW_v&%r9jFKD9lH<7 zeVVxX#n^C$DX~Z!rpJM~WNBGTF6|IJ&a1O_8urq8P|H4qIkLsv!+vjO0A(PV#~1_k zQ8A#j=lTY3(i`Pq1|0@t>72W+twHn-cY624X~qhAuiNRM2RyHJT;>e0)@sdELtgrB z?P(>U$zWZX5J@Cg(4zn7e?NqIPg5C{_t+|Fq8B(3;G!2U|E! )zkrOxKH{C{+7``^w070AN7y$$NnY1dggE9fWc%z{e&SBmTg>v zGN$g)`eKimf=iXJui2TtbUf< +B<&9=2pVI%ijXj<{uk)w!KJxQ$xw zaXyBK#9eF+y0umTfvp1W3r2WYHcX-1@|s&5KKO!5<_t6vi(YiqtA5Wd7|jx|qU+0_ z4X@W7G?uKO97LuM*#nlH&q_yp``$V`J3e5u{N2KKscT$I8*0qs@2up38cPIv9pA-` zX79<=QKmepQ_|{4-IXDR`<-2FY%2Hon9W0>#2Po%0|&Vx%w0pVWtZn0A#yKVaR^5D zz|(V@T={q|H8p 1>s0PG4$(EsXLM3qs_wNe#3;scmziKtBEA08NuFFm5hoJ9NZq@B)_c(d4 zHYqveu?Fx61}k85ve7-n(j(vP54p8kTc~vyXp`!f8aopwrpYPql&1}f%uY6)OM1(W z**-Y(l$<`%dTx=ngVVDkj5dzkQJkoh&R{TVy)C10Gaya>nt%0lTA1rjlw*d@+Mn0p ze3#zDp#&1A>V~f!_`f)b-3QRzc;OKr3%Z~SX;RAl{}T#txF4fk*X)d#p`<(X$jl3; z0^3NrXvG)NH`ZU*ONT*c;3i(l+i%_Z#m-UFo7u{*HGg+L_wZ@1yw$EKA)kgSFxI#8 zGK^o%ne!k%x^pe+g7qG{KJ^ABU%US%A;`n2hZA}TVkAK7jAg;HX6^yD)UI|kwaj1n zGJhdMk_wl?85P28HWcopwH^{MxI4!t)?6?mW7?Z#w9eNwuol)}0H`iF!<6P0qnDrZ z+n-j605>{_Q4)t%2`wqf1c`cxhrm~RQupmXIkH#T)zX&Mdi!lHwY+)#xz=yb<@1%N znK;elr}m0#?J4t*-TTeE&oG2zWq-%h;$!mruiU<}TRDh5UXML&g{Q&|hhnLtV$=O{ zTsECEdJ#Odev `!p13OSvID!%J|dFxmk=x*L@P zN8hLYOQ0r8I$e{EK$7H>iu;j}l1%ONDGNhTo)gWl ?B~z5ykE2|?MT?9TUV#e`&xLfK7#i64O)(zL#T@mjE>-^L z*puTJuklmP`BN*yd&<)LRKri188rskJEjA7yE ;NetV1my~z?MAXCc8kYEW;oWJ7F6;Jx
Z{C^M zdcf`~0k|p