diff --git a/apps/dashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx b/apps/dashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx index cd6ad7d6d..4d5a8b63f 100644 --- a/apps/dashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx +++ b/apps/dashboard/src/app/(dashboard)/monitors/[id]/sidebar.tsx @@ -31,6 +31,10 @@ export function Sidebar() { { label: "Overview", items: [ + { + label: "External Name", + value: monitor.externalName || monitor.name, + }, { label: "Status", // FIXME: dynamic diff --git a/apps/dashboard/src/components/forms/monitor/form-status-pages.tsx b/apps/dashboard/src/components/forms/monitor/form-status-pages.tsx index 716f0cc50..6a378b03d 100644 --- a/apps/dashboard/src/components/forms/monitor/form-status-pages.tsx +++ b/apps/dashboard/src/components/forms/monitor/form-status-pages.tsx @@ -34,11 +34,9 @@ import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; -// TODO: add custom name for monitor, shown on status page, requires db migration - const schema = z.object({ - // name: z.string().optional(), description: z.string().optional(), + externalName: z.string().optional(), statusPages: z.array(z.number()), }); @@ -57,8 +55,8 @@ export function FormStatusPages({ const form = useForm({ resolver: zodResolver(schema), defaultValues: defaultValues ?? { - // name: "", description: "", + externalName: "", statusPages: [], }, }); @@ -95,27 +93,29 @@ export function FormStatusPages({ Status Pages - Add status pages to your monitor. + Add status pages to your monitor and configure the external name + and description to be shown on the status page. - {/* ( - Name + External Name - Name on the status page. If not provided, monitor's - name will be used. + External name on the status page, the feed or subscribers + notifications. If not provided, monitor's name will be + used. )} - /> */} + /> id), description: monitor.description, + externalName: monitor.externalName ?? "", }} onSubmit={async (values) => { await updateStatusPagesMutation.mutateAsync({ id: Number.parseInt(id), statusPages: values.statusPages, description: values.description, + externalName: values.externalName, }); }} /> diff --git a/apps/dashboard/src/components/forms/status-page/form-monitors.tsx b/apps/dashboard/src/components/forms/status-page/form-monitors.tsx index dfe7bce88..f760f4bdb 100644 --- a/apps/dashboard/src/components/forms/status-page/form-monitors.tsx +++ b/apps/dashboard/src/components/forms/status-page/form-monitors.tsx @@ -79,6 +79,7 @@ import { z } from "zod"; type Monitor = { id: number; name: string; + externalName: string | null; url: string; active: boolean | null; }; @@ -551,7 +552,12 @@ function MonitorRow({ monitor, className, ...props }: MonitorRowProps) { className="text-muted-foreground" /> - {monitor.name} + + {monitor.name}{" "} + + {monitor.externalName ? `(${monitor.externalName})` : ""} + +
{monitor.url} diff --git a/apps/server/src/routes/v1/maintenances/post.ts b/apps/server/src/routes/v1/maintenances/post.ts index 8e22ef0da..09b5c3f54 100644 --- a/apps/server/src/routes/v1/maintenances/post.ts +++ b/apps/server/src/routes/v1/maintenances/post.ts @@ -142,7 +142,9 @@ export function registerPostMaintenance(api: typeof maintenancesApi) { status: "maintenance", message: _maintenance.message, date: _maintenance.from.toISOString(), - monitors: _page.monitorsToPages.map((i) => i.monitor.name), + monitors: _page.monitorsToPages.map( + (i) => i.monitor.externalName || i.monitor.name, + ), }); } } diff --git a/apps/server/src/routes/v1/monitors/schema.ts b/apps/server/src/routes/v1/monitors/schema.ts index 36304e002..1f6994e20 100644 --- a/apps/server/src/routes/v1/monitors/schema.ts +++ b/apps/server/src/routes/v1/monitors/schema.ts @@ -148,10 +148,15 @@ export const MonitorSchema = z description: "Where we should monitor it", }), name: z.string().openapi({ - example: "Documenso", + example: "documenso-web", description: "The name of the monitor", }), - description: z.string().optional().openapi({ + externalName: z.string().nullish().openapi({ + example: "Documenso", + description: + "The external name of the monitor, used to display on the status page or in the external notifications", + }), + description: z.string().nullish().openapi({ example: "Documenso website", description: "The description of your monitor", }), diff --git a/apps/server/src/routes/v1/statusReportUpdates/post.ts b/apps/server/src/routes/v1/statusReportUpdates/post.ts index 8cc5e65c3..cea5418e9 100644 --- a/apps/server/src/routes/v1/statusReportUpdates/post.ts +++ b/apps/server/src/routes/v1/statusReportUpdates/post.ts @@ -123,7 +123,7 @@ export function registerPostStatusReportUpdate( message: _statusReportUpdate.message, date: _statusReportUpdate.date.toISOString(), monitors: _statusReport.monitorsToStatusReports.map( - (i) => i.monitor.name, + (i) => i.monitor.externalName || i.monitor.name, ), }); } diff --git a/apps/server/src/routes/v1/statusReports/post.ts b/apps/server/src/routes/v1/statusReports/post.ts index c19249a86..3372dd583 100644 --- a/apps/server/src/routes/v1/statusReports/post.ts +++ b/apps/server/src/routes/v1/statusReports/post.ts @@ -183,7 +183,7 @@ export function registerPostStatusReport(api: typeof statusReportsApi) { message: _newStatusReportUpdate.message, date: _newStatusReportUpdate.date.toISOString(), monitors: _statusReport.monitorsToStatusReports.map( - (i) => i.monitor.name, + (i) => i.monitor.externalName || i.monitor.name, ), }); } diff --git a/apps/server/src/routes/v1/statusReports/update/post.ts b/apps/server/src/routes/v1/statusReports/update/post.ts index d63cc6409..7f95c8b29 100644 --- a/apps/server/src/routes/v1/statusReports/update/post.ts +++ b/apps/server/src/routes/v1/statusReports/update/post.ts @@ -124,7 +124,7 @@ export function registerStatusReportUpdateRoutes(api: typeof statusReportsApi) { message: _statusReportUpdate.message, date: _statusReportUpdate.date.toISOString(), monitors: _statusReportWithRelations.monitorsToStatusReports.map( - (monitor) => monitor.monitor.name, + (monitor) => monitor.monitor.externalName || monitor.monitor.name, ), }); } diff --git a/apps/status-page/src/app/(status-page)/[domain]/(public)/page.tsx b/apps/status-page/src/app/(status-page)/[domain]/(public)/page.tsx index 923e57ad9..601a52e1d 100644 --- a/apps/status-page/src/app/(status-page)/[domain]/(public)/page.tsx +++ b/apps/status-page/src/app/(status-page)/[domain]/(public)/page.tsx @@ -96,6 +96,11 @@ export default function Page() { // REMINDER: if we are using the custom configuration, we need to use the pageWithCustomConfiguration const page = pageWithCustomConfiguration ?? pageInitial; + const firstGroupIndex = useMemo( + () => page.trackers.findIndex((tracker) => tracker.type === "group"), + [page.trackers], + ); + return (
@@ -188,7 +193,7 @@ export default function Page() { {/* NOTE: check what gap feels right */} {page.trackers.length > 0 ? ( - {page.trackers.map((tracker) => { + {page.trackers.map((tracker, index) => { if (tracker.type === "monitor") { const monitor = tracker.monitor; const { data, uptime } = @@ -211,6 +216,8 @@ export default function Page() { key={`group-${tracker.groupId}`} title={tracker.groupName} status={tracker.status} + // NOTE: we only want to open the first group if it is the first one + defaultOpen={firstGroupIndex === index && index === 0} > {tracker.monitors.map((monitor) => { const { data, uptime } = diff --git a/apps/status-page/src/app/not-found.tsx b/apps/status-page/src/app/not-found.tsx index 267c6f981..01bf20931 100644 --- a/apps/status-page/src/app/not-found.tsx +++ b/apps/status-page/src/app/not-found.tsx @@ -3,41 +3,44 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; +import { ThemeProvider } from "@/components/themes/theme-provider"; import { Button } from "@/components/ui/button"; export default function NotFound() { const router = useRouter(); return ( -
-
-
-
-
-

404 Page not found

-

- Oops, something went wrong. -

-

- The page you are looking for doesn't exist. -

-
-
- - + +
+
+
+
+
+

404 Page not found

+

+ Oops, something went wrong. +

+

+ The page you are looking for doesn't exist. +

+
+
+ + +
-
-
+ + ); } diff --git a/apps/status-page/src/components/status-page/status-tracker-group.tsx b/apps/status-page/src/components/status-page/status-tracker-group.tsx index 84c56fa93..7906c65d1 100644 --- a/apps/status-page/src/components/status-page/status-tracker-group.tsx +++ b/apps/status-page/src/components/status-page/status-tracker-group.tsx @@ -1,9 +1,12 @@ +"use client"; + import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { cn } from "@/lib/utils"; +import { useEffect, useState } from "react"; import type { VariantType } from "./floating-button"; import { StatusMonitorIcon, StatusMonitorStatus } from "./status-monitor"; @@ -12,14 +15,23 @@ export function StatusTrackerGroup({ title, status, className, + defaultOpen = false, ...props }: React.ComponentProps & { title: string; status?: VariantType; children?: React.ReactNode; + defaultOpen?: boolean; }) { + const [mounted, setMounted] = useState(false); + + useEffect(() => { + setMounted(true); + }, []); + return ( {children} diff --git a/apps/status-page/src/components/status-page/status-tracker.tsx b/apps/status-page/src/components/status-page/status-tracker.tsx index 10291f1e8..9ab1815c7 100644 --- a/apps/status-page/src/components/status-page/status-tracker.tsx +++ b/apps/status-page/src/components/status-page/status-tracker.tsx @@ -322,7 +322,7 @@ export function StatusTracker({ data }: { data: UptimeData }) { ) { return ( >8$>|0X99shq6 zHfj{e5?JCHx};OdBhbOYWuuao(t@T%hnQHGXmB(w;MNp#2oYG~^?vVnzDw2m3%@fc zDz-fN|6lI+=8i?AT???-Z)*Fu=f@&6g1z zAHf4mFo_u|4XiM>fhPkujGZuvK@7$|puz~(+~CO+0TXAK%(4N_R^v=ygmHX?MlFDb z#b^*g1A<{R6^&*zNLm;zDj?y&z%W{xj#fC3v@lv_Lc)Q8VYF2-+VFy;h0(StBpetR z7*MLrTU!|z?mv9c%pV7qZ}|W9ZGL?qyE3DlF>p#4ZDEbJu)qm{ z0cQ&<^Ewj)gSExO7U5}+`|ay2-|cujEx-14^y~Te|9#tjeg4<{T2N-H*>CaVLG$#> zbDo*J4!=MD+m_|AWp8h7{r7i4GhY+~!-L%q7yRGfk#?1bVcUztk`@<4cUZkzvG|%j zckEZkr;6<|MT_{2Y700S7#M2yOYHZ!7Ct}qOLt1G=mD#{Fa5U5l-)>t{r$k4b=nLG z)l3l#8+aLY_)?TBO3xS`U$bAe>cztLb@8n0Kwk0l|ZEe=aw zi#KBa*2^Hq@WzLMn_-(`!_mf!8ik)<*VotbM$i4&lO9uVeMK*vfq~(GX6*dxn$NTE z$Jl?*SiZ*YyT#v^{_l(VZ?J=GHD=UdxY5QS#y-og;?J$?`?l3QmcAcR&%H(8It~;F z%gtCf-uk(FeV%84}Q2XIVe*L!JS7)9pS!P-T>g^U}UD2QO z^{4y(hMUh7-!@#$izqw9#PHyWzyT%(ivwF63}> zdb`WsM&-M6FfeQejWF>gysf%A?RV~WeXyZ29$c}d-di^cUt8ENw~K+{Ko4kaOJ>5Z zuMe*8`?l4z;^}r9Mh1ok=8KZ&3fjJIYpHd+l&;FaVBpNa&G3NXYJT~=fnD_ z=uY8rT?U2?>%s1GaF?(B@@w{7$k5p7Uy`2lr-~e6VrZyUZD3_6V9;tPeX+1zZ@Fdf z_GVBFf*k}>d}hNVHim+ROzpq>{K|J-)&)uaSDWBcKyEle&3!?Q`i6LtGB*9^W2s>f8V6X>y@tb*4@7A>e^|a z=l}l$Eku{=^C55k4x29v`D5+AuJm8qxaf53yQ0%S&z0}{dVk*E zH|hGI)HpqS|F5g3Io0QE_+6P_aaej<@%-O+PPginEPU$eUv;Ud=ky>D}`NAuM^t^_kI2U z((B9f_FsP&Udzim?bv;OyB`mPW%t*={?>N?*R}1}qQ7kozLx1%{OG>si=E1Mu0Gx_ zx4vFFeroaOpMTdJ|Ni;o)|WdT_eGaqdsX;$&DO7X)RzX_u>X76Uf2Fdv;7Xa$0wBg zW9I!hqORv(ee3cyhikU)3j3cP;s$>xBK4cVEYCXRF)sr{HecLEtKjQ1^Zk{Tr-J8g+VkV6ew^L^pXb*z&a3}9y*~2Z$G-A4{n{*F zTGVY4E5Gl)zxUr?{{J8Nr_2AGC?C21|BvJL`)poEo{y5hUCeL)=fl$`@jVZ!=6#;` zeb4J;uBy^KrzSRe@K@hBJZ<{kH>t1R{>v-dJbSHu^_Ru+d*3;g{yZIDcXwj;j|c4b zJ8b?ukZNqn&;FE6*fP`@ZM7?dy;3469=|bEWV7x;8(y{M@Q@TaTBnE1vt* zz5a{){>MLT_sbr+_w!u&x`$h|V;*v4|KvKh_xs-Wv3fNRx%JI=p7brV-?!nK^!*>l zw#Lc-JmG$ApY?Og^EB|LDJd!LM=Y#@|=#|6Z@xb(bkT^6vT8;IR0gJLmu2 zX<87n;RPt`Rqfu#6w=yVm1FJnb#qzYt}jdV_qMHiSAGBYJG*#mQ`^5U{p0uRM_hR; zSnadj6m9m*$k@#f}ZYtEc<@PJ);f9VauI-ZQteQ zSKr>X`TEWCb>C9m7Ov@zeUtS1d+V%QoU4nk)tT@AdG`8+sO|YOrSI)6=r;yYEVMWVNq|zW?jmYrcqDQK3~nZ!cW|u@2l4pa0{C`ZW9Bo9(0RexCH# zdv1BYa+>tr7jEF<=xOEo>U&ZJRY#QNHqLpQlOFx=-TQxeGXp)|Fw6fq@T>Nz?v+r< z)yK8tf1cWUZvXe{{o7-{ZJHi?I_SfyyF1?1ec!FmUv;7Rn$`B;Yr6TBr%l&f)n(zH z7W-w9cx-cafAyWm*UIjNG^|Sge>MK^)lWOm*XHrg{(CI{&#_zowtfbco=@$*?>t}C z6aV*Wd@OTp{U`PMO>KvEEq(HJef{63lcw)^^6A#~ePwUAH^s0X&Vm%R4a~iu38>$` z+mC8jn3m0WRo1{?_o4av-G#TFuAJciaAjWW^g~YIqE2=S*QYJFFTMYB?)@6Z`CF8O zA1+$lXO+d9TKapR_1%|#uXX=$35x3cx?cbHx@k^m$I5^J#}(CgU&p;Zf3Bd-c+Gah zJ;zMfZTwyFd)0-&hpXq^&Wn6|By{Kc%Cp()N_BazuKfwBH0HgSR(t!UVe2BUpr@ch z?yz_3PPgB&e;$d)moM=u)teBuV(r{bTuxhGU-|p4eE-)yvdbC55?7TS&|(Sw@oL`p zJ0pshnGTh5;KQ!{koR5~}J`(#n>Uvau^^LdE zpaOgS)12}RCE165Es#A^_u0I@`0edH-pCv4=I-K}0BQ*^Fvxg7ax53a*5cspd^NW& z&)atI-+F^U#bx_$8NLddzU#^-P;vMA?FX(uU*?p>-Lg6MESH-*S~MtY`3ffw);=yp zaN+UaCvgpv6YB=QR~5fs#XPsVF11GM%$3|9w^CoJ*F93dc6YTHc5|4PbOR-R(D%uGmT9@C3+EjQzPrw# z^(@!ot-|5fb-lOQ!rqnf?Ee4v{r-8?KQ2w*x20{H*5Rl6^*>9~HxPe`|6)t-`~mhY+c#b)oWA#b?^VtT^hdOoaH%4Iw??qR1I2xzD&0NIr(+C zwR!C`eZIIgj0 z%gWeU`=qs!7j7!MrB!paFNC#!S8lv@$lqJ*|K9p^+5Yckb*|dCCqEvS-(Ri1uF02m z9arDqpY#9!{PfuV-{aTkxs5~*z53R*H9Gg}y7Il*yotPT+e~jg*gXI5n_uaU8=N9$ zb0wCZK5~{J?0)}qyMG`1DyH4x-QvKSO zU(H(I=BPpEWuZl~{;jnyL)TYbEjl9TzGk(bxnmM` zzOQ}1yKNJf$Xj0q?YAaZ`vT&Bo(jMA;S#6_cnZn^*AJXuEcbOqYJH~rinX_Xz6{&G z>uQzuzH?tEP2ZF9^N{$y4SODmu8-J%Ywqhb^W8U#cHh4HPNhFSdW&@E?y9F-mfODF z_4|tD`O0%&ZJcu>=gNPY(5@5z`_}bq^J70WiN};Lvw9tQewWP)M}Dh|h1}V_&wG#a zv+mp0cG;}_^((Q~yT1z57sp)P`1$|$`v2cQ9TMMHu-EhnsIL0@8q^@#wfXwq_qFdq zod*Vn2M&;yUtq;cPzkatIaqOFS+UjzV-cZO*IM}Ne;mFZ{b29g-2CYL>D%uXnu&hU z+;TPd_qvj$+G}@bZM_|IYwD{dr?z~pXg%b{keO|eSv-Bk!n;d%U5#J3^3=t=82LXB z*r%u4|Gt?WdrR<@{r}JQ*AGPQj(qF6J8*09HI9V0OQKEfejMbFI~;O-*R`$FcHe!Q zcUo1iuyZS~)$_2sLLWEw*S?85H?R8Y>bTPH`%8Bp;IDn*tX@^qxW4S;t8bm*dmf2i zui9FDt>8+a``WkH&S$M}%4c0ybq>_%d&uLBypX^4MbtM?ZF^cbudw^+^!lIE zuOBbTKJaSS{yqQyzQ4bB^40Z!POV?F-RjLAP?6?evircRso8O#XPtJ{ue!KZuD|Aq z^7UxeveU=PPVM^pHh=%SrmZU#u7Z;N`upY8hrjQAU;BDpYOUzDT_1b%_uLEnFm3yu zr=NbFudmbf&%JQn_I>5~t!wp*CU)!8e_*fQ5c7T4_1N-HuVmg=p05UXbr>3$du2B; zFx<%JdS~u8_g&X@{p){SzW%^(w{hw0y=4Ja|31&(-&Vu*UPMX?)Jj^fxQ5B~ zZrS?hTf49M=2u<*TGssXzTDpz?&}lh+kD@7KK9J_rCeH`CRZ!{ko6c`uP=yrLWyq+IITNvVUtI zi#*wN|L?o)H9t?s$K}txQ9S?ioabx$SFU+(egEgQze@|Ep6Z)i%jLh_x@y6V6~)%M zq7tjmy)_A&`@UqkwQl*2!?M>BZr%TL_Wm2YYv=#HIlpejH_w%A`#P=ZYjFR1 zUarZapQGj9mdlL>W z0d<&Om)3(CUf{k^-Tl1iw_2e)RvielE-u}D5Y(P}{gb<3t9R)Cvi|Bj$=~%tqeW$^ zUj@(KW%vEVVgC5MlEu<%8&}w_>|x#a>s964^>bJ4N_{Z*ea&;zDc`o|x z;n(sm-gqne`gT)3sJVRYLZsr#TZnmKy9h-4?>#AL)s}H@p^8LBp_np_b z?f7{%e;?aMt7oC>il%-Q>)o2%zuE^}hkVmrQue<3e)Y~fPxZFvN`nRzG>?{lE*7>} z`da)8L&ICyk~@XRE0?k~=yG))SQ)x~hWEim@253+w$9>uA@V2l`s#Dn`9fJYa5?0L zGOP{=-2O>>%N2I3xA(5(1y9}iAlPwLUu?k(qv<=(Nd3rkUsYD5W$}f3{|D}D3C-52 zx2~>o2tWRATQ%zzw;wATBCI1sd9({kdb4Aa|87nQe6Dw+WZvgF>E%CH9X}oSZIkJS zD;u>BgA4Cz9o4t~uG-a8b|b3I_N5Fc>0UQ``TJGq?X8bP>-9rG!!YYg-yMEfCZo+0 z`eD`F)m#%r=d7x`o427XWBKa(-`neN*Y=fd(t2>UFPwGtuB{2X^F^O%1#J6z_*q~4 z%&g{Hdj-Pdr@jQW?wA-D7?zjZ?>_JQV9KiVeGCn6ITIKUn6YfIF#YWKXytiO5QD3* zPshyn72a)qqyPVt{&en`2Ta)~-U#+r9ND!w;^8KC`yU5SUtM4K6;wCen0MYcAsuRKmWE;{{N5T(?Lbf>2}PTC&qn#H^R{MhdHuil`@ZjcPkYCGn)DQuqtBHrGhS?|EjrKJwnLYuokgKMLD#ta(>FKYHGW7WFm7KP}G{ z_C1}Fvis+z>&t#U$d3Pgt7u*E+-%Di3!10BF9!`CRq58)pZ7m5SN-Of)y?@^wSOO< zeecV%r)Tr)K7Vqy|KfaFv0Y}9|M|DKYC(kzXk_TV?fSa?Kc1-D@3aB+@9$TiJ);dC zIiS#{{C!`_NaNErYv9c-rxV-?{kwMU!MQ( z%cncf?aF1V?LRQvZ`iQ;W85ag4L^5%I;vk+Sov-9{J*sq+orC+KKW*0RndI@ocGmV zcXG}V`udBDA?N)6GYkwj-v2UqR{OsCzLZGC`RaR{_x!&5{@(KE-{*iTUG<*}&w-OO zsPHSg66mh0?#^A3Uw!*FWFUj-*qhJX9%pRkzZE@F@v%F852)bg{%`)Oxxe;Ja&|>> z#sA;;?Q7T8?EeL7qhEUsYNLJnyR0m4;*RWxCzSi|+Y_1`pl+w}c^ zo}LC(6T*Mjy#6CR|HqL}t@<^IKjT*A&r0Vy{dWEJ)p6RO0UV#NzyDpycKq!BzWL_n zVMjKN>hLBudriaVEEk+?ls182kY`|H9i9B`K)hTwZ8uE zYiqlGN5AcjEyx$lEi0^B&bp&6t}=Rswv55=KV^q+$amLlKE5LM+p^kYkH0;usJ?xz z`tyz2x4XqwzMfq6?f$)KwaY)pfO>zRnrz+fTAo(E zZ_lD`-dCJeYx(ToE;hfs$Zzg5qiyuw6mIN}&H4HF{{O#Ee_h}I@7L$zd7tN;p8xOV ze7)&=o~UlOz4l$}$d>iFJ1yhiW%BeUzd!pi?N?F$^V7DPAwjm^L=N1NzkcYSTy}MG z{;iVub35-Qe@~k;Z%%e;{^{>`^^R+tzIWsH=QnRZe%pFxZ~pJa_P-YAKA*bR@);j(0XuI{_^)Dtv#{ zURlrWzB&&su>YF>_f7is=i472kUU>;%rvCz-{<-Dw%?w8UY&jZ{WaUiKXtoA?6M7u zKbLjs29)i~Q=NA1@;c#KS&jK$rSA*BI{v-&7u3%`4H{uv|Nq*dw-U3r=Kn36*d3Gd_VQVyzQ?)W za*wZym16F_s$c)}^y@;s!cOlskC*H>Z`<|vN?7mbTbsYVEbQI=DyqJ0 }qwzpds zM?VW$w)XhTkFnZci{FO-zji*|?(@v@?Y_C;`$PJUC0+OU8+iX}n{#gT%-7#m$|w*y?ulR`(5=R z+^uI7eqQ>m&9Qg>|DO2I(-1H`mUn(-y;Xg3YR}zcvBi;Z@7Nfwn>g=sMUKtemuBU+ z&rVO~nfvd{^80^xJi8@#{Z8cmYxkp{clTY5$bNScG%COKPId9@8Luu{yp&q~R;zqH z=i~dUf{SmaeJJR;d+O%b5RQ#yIW=Xz*VJT_ZI*vBeP6ogS^MWX&u!FaNn6KVk1GyO zT`^aBwe7NxcTBGrXSMfjyj&q??HD%wT=4JsS3%QnEsqW~U2k&z%baJkUR|zebRi*c=-uGKBtIM=|Rk~%<|117~uiTp6d-vAPpR2B~KeyYmKWy2v4QD@w z?lzB~Gv%V%*68c*x!Z55CC^*Cf0y0s>*vgWWxUp9l}`Q|`t{wP+k2i;H~jgzy_a9tK9ziLoz=`_F?avZ)!BMy&rjXCb9?f)s0%S0%&+@> z&c9y&H`Kc9Zs@VKpZ%Y&+kec);M~ULx3lx#K7Tgt*{8R^EMvX*ZePutJ^9(|wQqxB zr4OH7yVd#lDxImxd-ku(ulg&QHT_t?-|Oei&)@xX{qgR$ti%6g-rGuj?w$H<_1>BN z?l)&0cC+uT=ArAM4}4EqUJizqx1Mnmd2xleVN=hnw1)q*d=-Uo-nZ`^`D^$A14dEHCBV zdieIW=i%GdEkAbb-kxjb^Jdpqy^sGp>$mlB&#U=oK5xDG?El4At6%M?JojwIso>}@ zbJiV>yFGipS?IJ=;rB!TKRdH-=CAdybBg)i)@=1%AHMkB-`^`=iroawyh1Cd?zqRy zKg2lZf%<~-6Y}+TA-_Hd=^bh|z8ZKm!u+WsRzVv*~SyuVkO zT)XG${wwL83m$nDH!+(ZZ~Ke)%f~-r{!u1b7ng0j5mQioSo+=uy=grR*Fepqr>gpu zC#&X({m?$G9rv;8sd)WI@#`ComSr72cm0rex1;W-FL%VuqFPq==vr+TxOhJ9LzDQL z-N9G*7VEBxw|>?0!7++Q%j9~J+tZgax*JO8y)tCd)=dF*;-h~rbzS-@c5hTk_V#YE z(5N@ne;&*4*JJzs{o@R==Ugw|ZkcgUDVsYsIdIqGFMl>>nB7`!w)Wgt=hA)Owyxj% z_)*2*e^-{*)*j7Tek?k9)8qf&^8bH(*ScA3wv@iELhiTR zk5?e_8h%cckR)yGR8HpKu!AkSe`ZZ*8a&0?S4Lu|M#@CaLv&zzm~pU z-nzYPg%o#$uH3b9P?>z)@Z#fRZ|`aS=4k)2SKaQZF1{bZ;LH;_jo$%`krT1e@*y69prV#^KDAcn(Qm*N+?~^ zZu3NOcYma%c5(9K@VckrW$l4d+`TJ*tu)IxW1jc>*WUZT_uhRtukUh2PL1jGFFV#f z7jyB?`rdNvJZRFO^x(!_J)27I-T%>h|Hj?G8j}#z&uy zu{LS5c6<7Ebz%7L?Gbk@@_MdZ-&*-UtlBi}_3K+}j=loTKb3b<*g~3cWZm`b^iTdqxWxZ z)7!?)l`~i0{P=|zi_iVsaojfVdvTRdZrtpi1h?ZWduL0#Em*uSPj2_Q(si4!)vIrH z&AlS=Zr1v@yZ5atXw}vU-+k-qwOv=)W1T_sme-G)m>t`5#L1je0B-W1P?aO}6R#xAO0+!)ISF`1p1A{@=TIKR@(rhTs*+ z?I+j7YDFu~xV72r^_{Jy#YezB`@*f^_ODF~ifc@tRo%^KtX)3gOj&M_b>6m(#Zw)zS6W+>+mXyVG~O^kav+O;RoI`}DK1Q_J_fUzzvS|Fie;6?tbB z_ipRIzB>N@*ZBLg$8vK_%ix${JB4d_OEL{bYlX7wH30fs@HeV-TmoW+|~5gGG+9z_ zDb4Xr z)badt_18Af+dAzbs9jSY@83K7p7+;zODb1g|8g(8>}{!TX|D8z@AN&34m|trZ93fbNPd4=VP)j?Irfkx{t2^|n*6?!I?hqC<{nTwMIX@x1OA<69e_Z`%>{ zlRKcKk11aF&y{z&d}2ZxApssstHh_gs?^o^y5rY|*15;+zHQuHp6Au=xHb9UE-~-u z1uxUTdUF?FUD$f!*V>~;e$}y@jJooAkM6QJTMDi@C6`uSSuD3zFX-#{V}9H#=5B6% zB{oGX`FR%O3ajs-7KtsaW?M5ZCrfwFZk&H>{jOeFrl=ozj4NVQq8{Y#*_v@(DXR4K zwtU@|tKV+leV6)LH|y8tqr1csxtCv&kFI}QzuWHZu8f**du}a!z0~#G>^o1?viD!9 z1CIb39N^H~G9&cn@835vm)Wg|t*T?}{I#!mi^0vWCQRC~lR>?ba`v-sH&-XuUt9LI zwEOeci_f-Rl2})}%Pz_%d(IY#u$xg^-u&45bVYpf0@h7p@3y~NXIye`-Q{1)>ekuC zM(eIBUw7`}`D2S>AFpBEzwyEirdr0O=dPYVHe;==R6pzUD3P3n8|&^~Rw_(=X_a|! zeNnk=@7&_38ac+D=WgGxj=7$EJ-$Diafjuijgc2pdL}w4PF?z`cR^U`>yNrhVaJ)m zT0M5F)xUdQ_s)fT;o|(D`mp|I-C}*x$+{b^#rG~eJK?Fs?%Q{T@?O_$wJein{u=(- zlY2?5^4!%&&mZ%@p8DCn`1Q59vo3u$e||b|v=4WevEx&$@N$&BjESs=<&n|47d~=7J zlr}4?)jNsvvB9==ExO$1rq{AQzq<2Ss(ET@vH9%Dmn>JO7bkyR`BwV=*6_z0jmrPL zx|Z!;>{2RuJ*xJ8_J588eU{5M{X6&m&$(ZBn7Gfn?%ig_Cw2epZ)f>m7rsWxe~!ov z-I4zKht&GctL3{tZr$p;>))@);-}ZlBtPe@cl=w!QYh^{cl+_LGoIaW5`J8djEx;+SUDUZ|V13&JMkPZb#ehyw&B` zW8MbTN*SNs9sB?G*}GFW7KTTc#G2l-x_4vhrlRuL(E0bOdv9Mc^;>n?GuC=<-j(%R z?{kEO&bzfeTQ&Cm+}CX8I}X09T=4IeP47~{1NXBw&(FU7Y{k0vvvq!NqoPgtuRZJi zdMxbW^uGA|(Dlo0o@!?Aoqafa`l-O*;nNOX-Mjw9UbppsW!FFMzuP61tbD|bDdMbS z?04IB`_{;`rewW87WVdHMc$dKV%B@N<>^MhwJXz>PJO+#@XFTWEAex;@A`J`^&0~I{Eji?XT`sxBpxF*o^-+!iseAi3 z@_9y|^k?6VIY8l&||` zt3tSaPxSgN9)Sy%CpaHpryF%7%W!>_h|lW1Q4QG}H(dzMjlCOnBx8E_+1q=zSloG( z$v97JVwK<5cfZB-xKD;G7xT2rJO0A3cI%DnN#Aa4O}C!A`f)Go<$ddQleQXvURL(DzY5*3 z&@NlBc5^Scu&J4q|Ko*KWxV<6JzsBCzm8bXv$cA+@Rj|x>&)J~zq+)*J5?qs=k=Y~ z&(?3lLgd5Vi>>EQ*gD&}|Lw2W=TGgd%r%)O)gNm=b>;IiUr{5E+USB6hPNI|@ox?N zTNG66dENc-qU3EF5s_|xXC1bRKfb;z0MZY#Df8SgfedF0x zr#V|cmwijymlGqNCDFff{jcIXT_s;!b8j(yxp8s58Nl{(WlYnclr+J-36+!j9dExZQhqa@OHr ztLolINo;rXPJO*=ZQkt1m0NQEUfO!0srvu5(iq9Ab2nHs<4xy>OgneiGMYvHap9Dm z|6YDw@T=t9t8kA+o3^gLu*`6obzH7-Q~K4d7o48IkoX#V-9K^a#?8K|H?8(%T`rWq z@-`=T@~N=d@2;qwb)H(=b6T)Na=V1?g@C)ej~)MdXV0xaRYBGTW^A*$X9ce=PhPO= zTAuQP$$|IZu3P?UcctxBH`&F8w=LH6N}b-jt>3|Oz5m{2;?s0(g7!+C@BMfyg+=!A zjJ&+JTbCujd$}$4?0r@pu5Uea*Je%swWjRtpWdk(Ux(el{_nPI@g1fu*SieGzyEl4 z=-Kr{Qmv2Mjs+HHeJ(xz+O*`3*j9&AWmR`>EL{8EeEs!jjrZ!Wsa;+C>&p78%QuNI z+B-BlpSoB*^;SWQ_wARqhtqDpYCrZr?WWuRvf7fqW3O)f+>*VwaOdTk2_JXOoVWRI zc1Es6+04~%&N6Rx&Am~1oGfENwUIa0WY>PFPhFL>c+KOj zOTL?btv>kk+3ZtyH_p<3J-^BGacRlx&)=W^SNK~0Jj?FQkExq?F8=;<>qpPGDxvZr z^9{|fv`^h_mb2zcTWt8>`O97}{GOE@x5~fzuEhGAt^C^6*VA%M^LF02aet4R^!47g za^bf_o~=9l?99IWoZRo+LJSNH_qodsFfkW^b>1+5A`Rb<~pEF%?;k33ueu)peJI^wkOPza6s0AXH+>(dA<2{JgjY zYeW0ROt{x?k+2q9Tpsn~cDU}WkaJ?$(Fqxi+gf|XoPSwq>Q?0F-C2IL@0F$4{$m@D zC54t|JY3y+`BixAudKjL&vSW?Zpqlb^RY**k=W~BxqlYU-}>Wvk{{!Sjm7TPqFYW} zU6k3qJUP6%_NtO^carX%9)%+pn6jSArQY7faCJuJ!lFB3MLKe3dhS0K7T)|Uy*|1; zB2(uIU+adnH<{O0uQe zw(4B(%v<^X-5;Y%@143>xlJm0cflQtXZN-o<(RvK^^n*b>CLsF{l_joYr1nSJE1sz z>8<6iZ;$z3KX|RmoPR6#S-+}0?v+I*|GZV?bhVrx6#r0ZD+oPmfqO2E&F=m?2A{# zxB5TqZVH?|OPVVqS3GL%p5#0Y4s#|}$?E~v|6iyHU9iCF+nqz|(YMR2AIrQg*;2W; zcjw0B&|??h@8!#zdwNr8`i`?7?->5t7Z9-P->l2C&u33Rx3%*3p}kiv%?@+Ueq6X` zUVn6XXnWzge{W1TyA97$TUO`z+63c!k8{dxL+_t` zz0$zPde0W+)cfD7teO@$FYGzD{j1paz45>5-`r*25ps3!_m8fj4p&y(kS=o+s6Kj+ zJL&!1j9XVD@_N)huG*+NOTx5s#YPuLkbG0J^Q8YhS1;J0aqqga!Bv@<=}*7AyvzK!FX*N1_E`}{lRpO4 z`4-OpSQjKW{i57G@mXA6Q;*gv95Qfy)BgAJ{VnUGZiqguuIUlJ=f2~Af&N1ajwTll zi7&x1|Nlg0YCd{YnP&5O-npGx^U^o`{UovMY>nO0`~!Qfntrq-tzdx?jNe%E3S2Y`nzg}O^NBAc(diX3-|CJ%hM6G)jd@!;az#D z{fp{*?K$RJ6GZQOKfdu|dDf19oOi{}t0r%+(bHa7ue{|{=~;_K=YMpaH~D(tWAVSA zsp9Y4x6CxWap!-t%Z05Pb&+k=61B%|``2?E`gC;1qwe2zElXcypDW(^NNoQ1E{W@b zA19t#ulO(jSe@mxX*GRQRXisxsWNO(^_;Y1SK^|U0&ZdR<#UQomG3*xe`DsFhwPty zY(6r7D+*}o?0>|6X6A#0Lu)R565lA}Wtua)OULJe07K$Vfo;c+@P%^x(EWZ)OR&)9 zPr-ao@wx@)moQA`@tI*L8MN|LknRkZq@8kF)`Fj;OfmxQ$?yN_`;<>@*QviDBBJbF zkIaA0Y+(>K{Uc_7dZ9t%5tpoxkBS09$AugxZThs)=%k>q!_()+nMYWxa}$`pHZb#@ z@SbSkdB|{6y;EAqcP;-T=BnSMLuYg;O$b@LiiIQOL)0b9zb=~EPo^P(VXYH0h zq{8xNM!}PZ9r>~< zdCrxh{D-Df>?R{G98ltW#=fCxH@XA*l=e6f0YqbY_ z?F-Pj-TS)v@%mIA({vl7#B;TC9NbuHck1nEJN0`_3D47~`;+!79ut4Qa@xnxHjzeVda(?8zId-E&frA7a5hUXh< z;vU=1doH4F78aDrc_!(>^y2gLYxZfiPx!$TxsP8&^t`e6)r~z#KW&=pH1ik#$?w}5 zb)v6O=)3l>rVG4{hJEv2cf4-v3VzeRDxoF$$C)EP)fPnE316Dsd0fic{!3`_Ei>KU z8GXmzG53TXW4bOnUsSvGwsvpphNEK9PyTgHJXqB~@+A0I1z8`ze?0B&H z+Ih~Y7uZ&@1+APCzerI-uCYqXtB^nI&FAcobz+Y`SH$qw{ChM#@rS+W|1_K9|5tXs zKl;&fPmpwXQcl5q{rY>0>USQS^(xwPl8Wc7IGzO0Nh&Mzew?j86s}_#@^5Wj-2p#_ zj+4=9%0KLcZJu(L%nPsS>10#edP-FP$HD52yF65VW*Kn0Rj;T!xq&#v@vyeeJy*Ts3lq3Z&%TqIo&JR4jCF}p4+6b(L{LivzF6xRWBC)k@+=~Q%)_OgJ0yZ zn$I5B8Qg{sojO+jnf>R@?0rwa%JBa^CZx5c-BV?il)=TrEobz0zqz#Nl}(^whh38W z(N6Jiq7PSQ3G45f<{&LR`_24U;WEV`2@ihnnODI6eCZC^bArD+vUCO8H2kgscF{ zq^?I>a)=~vmtf0&ccXXdv5J3j)o;Jf{lIfOV@=VSEnUS2pO}9Cx`^XID0jdoi{yst z+>Km;d(50n1OIj$(E4ui?&lr*)1oa}oxk~~dY_v5Z;=xF-(c_7RZ7Q{uCxDMWF`K7 zWnm4=!sYDi;#YYV-M^bYzxI=Mq^)o+lnVsxsIRSp%L$Y^l`6Ndx)T_hV$$jeD4!$ z{2uN(F0`!WvDV&t!Fdnk?oP_;QM~8e_4e^RH|dwlr?K=X?+ASvcgC=2uF3LSF}jcJ z4p=^s(rHWYy83d~F8|Mwlg_s_?pxUZ;&#NeDYdy`$1x_3TvJP??$(6=SMV$Md@%%{^FEgOIM9D05+>qpMP|Diup z1?{wp^(3dWTuS!5w=AS;{qtX1`>ua3-*;YrnafvWtsQ|oUw3J*^JteTI#IrgK`eBY z)k%qGhVRVhI6I}Z{E*naaf(^I`Td&W!;?-gcqHZ>?`C@M#qlIj%M0Q;)6cgZjeqiB z=bP<81!0p^JSXkb|7X>q;yLM+(kfR&Meo$byykZbR;^#V{hpP7k^l?S{^9$NztSKkrwz5Dc|H zl_;ggnjy`otTy{m`yZAmU5~y#ePxy~so`Yjid#(o7scB1 zDghsFSk(Kl2(IW(UG-xT|H?Agg2uOkyR3h|+5GvZlEML@2_fY#uC5NBcP2Zha@GtR zJ-;^vJb%pWp0|Bt?VHQ#tk##bb8prSbB_6iIa@TDw0$~0R{gS>HktYO(aPodGelTx zPgH2?MIZaedEk%0j(snr*Kw<@XZm~ml2OmaPn$fqc613J&2D|=;A2y4D}K1ONB&S( z&(3LnD=tr;!>-mkb3?ZQ>+^jTHD{0hT*TWlrR$+Mli1VjT|KX7G>C@kbgh3H=h~|0 zByZ#QzbN*?{iClZ)+uNlEVJl)+2|SdF7VEKr4rY8!_4?S{}qnq8OmI`v+?xDK+nGH z=>kqMzkQY&S^CF^aLsLb^mo&=4NA2qDjrvG35k80c*3Agf1DOY_c@J)h@Y2@$S)iY%C2%+9i|qG=Z^3f$G0S~!giFUiwOd%b zC;iGT^_cT>?tiL$zVFJF-$rkrT0OSiw8KU6ZO3`XqmS2?*cR?7w7tkT&2X`kTCJZ# zQ*uhqvAP3WPulGW7j<6R^VVB$=M!tkwr7uKEx5bU_urFw$L7bVf1G#vd860$c){eU z3H(~;a?^yq=3G4s9>d{`cbMYb1p8Pvu8g-;{kvyl5Y3ReAeHwbAr+=hJn*M6K z{%NPuuN4*Y5B|0p#>AMdT~RZy^8J%4?fK82J=&~&Tc@Ahu3qqjw%&7}+dI=ZP8aBY z{5jF=v!uya zc_j=K>g)98d-tvWAvyVV+jH^XjoDK_dTVGMD%jI^-r(u~?2szk{?MxR%l95NyL|uo z{QA0oOZjh|-0Hq#W?9ks{8z<{$+HRr^Q`AzPI_5vKxM@bl z@>-u+27(7tq)%@!FcjT?@_c@UvEixLGfyZ9I6q}LWT(A$OORcd7LQ2%>iO3{OR3pg zl&O7~`6Z#L@2{Dupy%!xH_|6HHZTecy=mScDIBw)*2m$3omx?aUg&~FlSFFI*JZHp ze|kQJUD$n&`K<$GU6bX%sPEVH59nUN^pIc8#8Tg9i$S5V@Z6RSZM@Rc)F&og>h$#7 zcm0OZBo&Su|fg%52E9S<8CACp?G!O%CcR`^;%Q`@#|$DnfewW#c;oSN$_ zkLe1>AN7*ix~gRD2iG0%m(9*Q_4h#OL5aoZXE@w0y&fCvUHDFtxyP4D;LY@nzVgOm z9NGov6Bq5atl)iK_Ts|ApLI?vy0-~-JiL{W)hT<7Df#cG)B5LYPwz;`5k7Fc>~`+w zh-Xp@ z@8dq}OS@jLo4x+(v%c70oz;@pe@;+zE@~C;o68w-OltC(-q8Ne-@4yVKa$AO`XKNq zM!@8;+yT?`f9HHN4%@-DDsn&Y`@a8kp@2}XrL?3k%j_0IC5{|P+By(Zh%L>C*1 zaa3*a{neX2x$yLJj$fU>O=>;l4fQJczAK$`PqvWzHRZeDt#f;u4G-;|_nqyW=x(QSr(67ehtPUX%P`xrUN@T5hu&hhle&mL@Mx~}`) zlBMR+W{%s*JyW&+v8^loHKE%6cYpE8za0-0|J!rKn19ia?{Pe)@;kBS*x$DEv3v51 z>K_-gT$lXLxGnbO*E#3C-hchG_eb3M-(trP{ttfiU*?YW4||U51;O8oe@*_+ZLrUB z`JMF2|Br9%OuxjxMfF|g7u(;@qaMt#P~T(jwl)6VVaeam=a$Fi@!wXT5z4dol3QQ< z>+bV~chYyXRlaANfAyx`b=CjukFA~-&rk^SMizd)RtcdUN{Ns}B zEPrQlvHR)wm}~7Z+~^y?;d5o}zF)5_cZBt;MoR2wxzcr=D|v2%_~a~~Wk!`e$IgaD z=Ux>k%i&b>wVZ!P+2a2k=6ys?H%nUMflX0;((In{buU+h9I9Jjhje7vIVgMDXqJpEUE(N+BEzvoqt4c9sUYI{|D=eOkK zE&acrZagkGJL{<3j(L%G+TTw87Oy?^@sij#OI=2t0{e$@=j*y2cNd?w-2v`fB==@F zeE*#^|HHo5UfC-^_oUwug1w(Z4Nr z9sivR{(e6C-}Fb){+M=_oj?B^`rGkc_?_|7>ziG4k~dwdw*4-0$nRs^`M-@%<9?oT zI(kMzc~1JV%HTwgV_erm?nqbU)~xILZ!F;U)auD!<6n*E8TZ5&@fQ8d)V}@b*Yp4O zETTKpIHz0;-=e?Geg5X!rkt92-LK+f>hHuq-aGrh|HsIM5o`TGEuCfC&Hn$MKSk4X zl8W!rjSdYai@Uuve0>dS<7db`X@C4@!km-Sj%hW2m=nR&!sVlTmw&(PS^l>(eKI^* zg_?NYOusJr{j}Na-Lk8k1wUxzFYa+*5M@aEx#*a|!vif=2es5h54L!PXs*0scFtZ{ z&?iqs-S=_Cj0K6aeWVOO3ZMRNaP#n!5C49@x4)YI)_wL({q^a)ufALOMfvx0%d>0C zF3*s#{&UUtwhG6Em@fxUs?VQOzk1$*Ak#0plOuEXM_m;?rkdRS`PB6eoXiK!m5^*=%#-Q^)2U3t21MH-ffrp z#wKL9+w4P?X}|wO_Wx#o+;yI{H#GOx!XtlYe7+F%uRiElWx}2hJ2x+VKl5nu%}It0 z7WqAl|MCTX{1HB#W4821T>Krk$e8|*|JN+rcJ{wGM~!^Vhl4*ii+pGMwKU2@|Cj!> zc3nB{>vH>-ID2#-uu?p_!p?`)$nN-t`9%xtkNJftPkXg;>)$&rS-z)EKlGZkO`-%D6$*GpO`!pY^*Pk0+~m&N}sFg_y!t zu|EOQ#zh@&|KmdrKG=RPQf`^t_jM7c_;m!`JUahwxFRN6^2+ewC+A1opKwk#TzS|? zM`pT-u|mVit=<)rRt2zZ{Bh9Ys#3(KRV!0lR8|UUJrbzOcz3CHQk~3-4AKAWE061M z2(;~fx{q_p=9GuK-|xHqp5@V zix+CKdY50R?zG%?l7DVwRu|{Q_r;vMUv@rzG{a)vwGAN)Lh^eGogzXuCwI#4lX*QU z>u9ywzV}ZVRk!Bdk)F{oU+zD`pz)N%Z~Br_>vg*?oi)E7^Yyp4-p-U;#pi84iNyZ>pO%|4K5o}}U#^g5NndyE}0_&o8V0_j&%x*xh9-Yk$A5yAo6Vc5Cqe ze}AJz4(xir@As$ceAaI+ygKZ0xQ*A_-}Yyw?$#w#@?uJY;BlHYH) zFP|C~rK!8&08_AS`jHO7pViWNI~FqPz`}1y*g1x2py9H#Q&TiEA06q;yq&w<7nEIxa7=lJ7r$|zn@=TE}y@wRXomO?apVj zGCv*_&%dGO{dc3RmhZGp+ja;>t4L*)=_@*YB(1n|d|rqO17X`gz6YEGz$mTJDR_|NnM7|8wD` za{1aXfv>KujjoG*e{XMb^@pqB@lVZ)eD+p-^-^~4JM-7QRrgoUzMs!dA3wiQ=)~>&&hBbh7fNot(63R*2Py1I(BA{eCxlUd^YIF{N3X z&zgDf|Nr;>=YJKvii>x@+oip|alM>v)e_@#7RqaPy;@ayf6ucU$^E{dv6Xcpt`9o@ zuHW&f>*f9b|H@}ozuOt?E!cJ|cl+H-`SrhVmt2cXUs`%Ca`~%EJuOT1cE8ya!};d( zd3%3Z>#{R%)AqZ|Ri@aPF=guHpD+}>_Uhi=>Rr$0RbSds`1q4}=*e&Q>;IShc-a0t z;pz;-Hw{(k&s^Z9d)J2|$&5~<3||Ha>2K>6bPN%i?l z#N%r|TF1ZN`#p~DL(Z0qZkg}*em^&L28Wekl~Rmp%83aw>y#Q?mueq!nVr9{^4_z9 z?DBK;c0QT(r-sSH{9Z*epKD;}t2@Q#eXqxs$MWTDnNE1q zqiU9EX){x&{rPd(-+pd<@x99DOINSoXZ3d1>vfhZj+%XZIz4`w{lAa>FRw-C`$p&Q zEsZmpkSjQ2*Y9_`FN4nZOVhQE;QR}oTj~lv+|Iv#*OLdz{Wg>O?En3cY5Vm${{O6X zd%xZK@_qk*+wV_3)#px$tN;7;k4@Zp!$8&Uu7oew9~^8ho{)2-L-6Ht`@fm*-1{ac zD;0d5zW|!2RsViIe{LptV^P;N#deuX7nZ}zkze*<2SCNi-N3b-69Obp z3(c#1Hgjjw70^a6nL4F2M~WW$-EE3UG9HbdFI{_WQ5=MJiGXi*4V>+s-Z6Sv-p zsdN7QJYWCpfWYk~PM4+g_e_*u{7YDL8`IQ{9HOOfZ<+r8{rCI*^Yx#sR(Y)5ey{51 z{o-?$>3rq3e?A=kc|T-U(#}Jv(<0SmOD;HO{`>j-e7|st(u*TTZ7o}}BD*F`kW4h5 zCZ-Z_bW^v^;)s*;s^880y*Pe<-Ou|W_p2UtsuwZzT;Dt;Sz(52LD%!+*_C=z_i+S$ z{QGoTv>y8!xrzskclveqp4h4RUGsU{2bt$9?;v~*t}2(jY}g>&xYUTrq49vw>Gy%0 zuXjA|JME~xDp>GGCfC)uakXEs#vJWh%KVe-{hrT$adz)_KA$)Hm8nj##KYB#Dxc3a z*JqblG3n~Q+TU#rVhcAU_gSiiPfvR3vMO$4ev`M(&+j+W=RdX2=1gc@D)#&P`}x|@ zck6z?-DwqmGb(%S)cqXu1h+}qR+UseY!xp`)!Fm)TJ(L(WqEgZnf{smIJwiwDRg7Y zgEgDa%{rX&#rp5bPwg_s_0xV&X^32E2bxBQ6c^w!+Lt{f^A~8x@Z95(RvS9B{8q2s z7A0j>k^#z8&aJDL^++14u{Uw31YTX$u|VYZs|yPchxC`fytMSuwhFn%)ebAVPx&8x z%D`zox9Zi(%9RdGJ}px?3_i--I%w3sRY}4%Rd-r~j6s3}U)0o%Aqw7{aTO0+UoP&q zJC*ySA|g-Vsj9%s=Z`*qF7I1;hrQ6wg0CrM<65s;uZne8!aP9m^lQ_$fb$)K%0)|; zx{Ak|=*w1IbQNDZH9XF;y;aItRl6yGWg;7|RLIAlo6p--uWIMF`=Ow3?(uc`-fy?G zb9X+SRw-%M6yPpX=(4JvRXoN(w&FqKPN5qU6rGp-lKXq4sBi!8yYGvRYBlBBR(&~9 zYgX{!K*=Rf^`%t_FI{WoYqek{hKX_JY*1w_f8a2`{hU7AZ#VXo+2`Z=Cjz=V|Pd`7e^5y>Pan-u|YmZNA@7CGmvFqov*_SP!&zXF$?)Tde zewOue^?yF@X;D1QB6J|C?&s6Xll|>xIww!vvPDVkc*Oxm_9gfBRxdX`Z)3do=d;Fa5AAG_n9EPc-*1sXto zc|_R%jJF_Y3isvA^m(43N`x;wkdr&4YLV3CqvG*%rpu`aY&osBdx>(tjnUqJzh1xO zum9m(_3P#G%bQN?&3?E4|G$!(snefwg|^F*G&U8INFX|mi5hC$``q;VB=A- z(~SDJKE2!h{+U;TvU{J;?cD9Labks0f4*(s?|WRnzUEzUQ~DQW(Ni2J1dlzEfkmB4 zW)|B970*c_<^DDwUH)lB=k0u2WRQ7dL!#x9t;gl6pPce<>8SepYHFX=s}(U1J5NQh z^l-@K?*IGk<*wK3PAe`3=hm!O_xIPoy1hMrormj%uGAkKsvEyNl*(Q+@!yZ*_RE$| zi_*Hvd{CLmGktDp*srJh^)s0RSx$2F1+MJAAmsf`@PO5e1{EZMU*k@7e1Rk$b=P``Ly1Oc96M`OoJ@LUdFjlOv;Y01e1BJ|PEt9W!cpj9 zy!yQTf1Cf7&*u~`t6IEB^z`-6%UiRrZ+SAw``OYrD>RM<)rHK^+V=M6^ZDl&%I|Y; z)%;Mi%C`3NS#wJTmx%5QVxbFH)E%{3xnt`EC+?@IUsl`^vHSbwa?IJz2Vvje-IbP0 z&$N#_{i#0W{30gNh;#4v{eE})wt5ANQ|Ol0OQ*+q$y$}1$W7kqu&1RDs+Y;WxFT@zrRw*4r~mg$HRux$ISMZ7>%|rcoIbx696T#6!J)G< zZ^nT~-48_LS=K$9k=!S<4f3w#Zf*o@)WQ zPLCt5k#lw7<6}=BTwSyIT-H?v&q*q04OUdSvg+8K?~}DQtDmOY@-#gP?BpvF%#c|< zrieg8g;lH`lTwl9+C=AwJ6EvHK+olhgwd}d4l zH3C5qbynxrmdwe{5%+68_nsC2N8*xI;PA_wbwuULlarH!e}8)mO2a0b6&j9yx>a)x z?vs1_T*Q9+4?iCFFE_tep{%?0O3=#m^YcP)|G!gwe(Ci1I!oO> z9}Z=1y&C5I^~1N@`ODqqDpl6*|Mx3%-OguTmrt)=zi*aXuhi7rwzl7u!7-}hIq6Ci zXgEd1bM2)kCntl>9a&!T;UN3+$9>j%wO=l}XSx+1WEEf1%x9$m>YZf1xv^1nzH#EA zmM`1)|J4Q6?k}eV`+0u-bje%)Y3{zS*P>U--MF{)dfaR^zd06HAA@=$pnlTl@1Upx zTUyrx4)&Fyi&kAaF;V&Qv)TFc=2blE{PJY7|1!z5+wa%S-uLg<>yqQL@2o=)S-L{)E!v2>(#0)H`8V>HOsx_^VO!wP3QCXTiNTMzVi8e z-o8F6Wuoh)JH_Ykevp~=V|H?%<)?2eu6zMC7@zCx{c>q#^6|b($-NgByD#^fYqeB$ zdW=#2;vF#xx1auglYDB5W~Jv5P!IO3)$29Ba_%|p48rR*lcH_>EV8%VO#6KFLvF{dv&LU$kFu*Na6veL)>pzS6>TkOZpYIVs8*oU5}+Bi8k=3T#=(AtShF z*TXhxaP81+tOp(W}jK#f06J9Qx zo#&N&tjF{2u2OGM(_mKdIm^qP>hor3=Ly<@DvV35;&C&?A`%+^L>&ruZsP&Ba;lzA z4gZwP(h6!0E&2QXzCC-d)ZuU8QJG6i?v`F(YWw|;@qV+Kk4ME{e!HE2K3B0KV!b9$Z4n+=CA*?zw>dH?pye%4Rx7Rmnq zd;kC3+vi`Ow|qWl%d1tZpFQ9FMe+HAzu)isE4%f0#Mk{yedoXJq#pp-51Y>|@i?dPU8-~W6*@4tLb zkr$t#;IpcaN5wC5s?WLb;nr!r-8${PW;YU=_tYNpw*UY0{AEyg)X(nc6Se-2V9_q$oEy;z;%-%NgdH+%iwPoIC>N}23?2{d1I*fSwI zWc{NXE91W2zW>im-e0w4b=}X?@z0*}S;qaE@+$HFkK^{2K&?{eVEz4nitPT?{r&Yc z;ri0)akCC5wrsXYyHj>M_vO9n_h-*9my%qlcPKcAJLK`A{q4Nc)0hjsT%Vo4ZzgDD z=*w~Ye;XIRwV5v<@!R6-DJua+kO|QokuX-MA*i~@(+wJ`MxA)vBI{j3YaixXp zZjNNpLZ6V;k7i`lt2VRoo?56etwe=KwD!c~E$^@I|5qB7v9R^ir5<nC7kWVcXAVvzOO?yQv=jA*%N4)z3Sh zyl;b#D_`n4q{^Y{IqAx(4J~&?!(%3z-6=RM!*=M;=kxQ;?v`Bs^1lARwe9~upDkA$ zE@}adF0SLcx;g!P+jZePyPiz)E^1xsH`mJ4X5XVO?Pm%B5mhgj7JGC|2tVE@`#E{8 zb@{o6@~cv6f4yA(^6mEfe))Soy2VYKuqtvRiy}u-;NGsK{J+1vy!^uOqTRN_$Gzsy zp0eyNe?O1eBV^L8qSLyUKb_XMzxtUob>k9w4$r`;UC%Ge-HOOz=U6UyNhu}lm{IHV zdDVGwulfsaEo_&&^}%+VyF%BixbJt%?}w~U-s#Mg+;Zbax_99jmUT=I^_-%0zIyEF z%1UavxMEvqj=7^gQ%U)~%5-@8m?bCys&#`_AG*}svSG!iEsy)G&20P_I=e!29=kJi zf8cwlvMMrAca;WHsOwSHe-1B}$L=l*ZryT&k5O;hH)WM0o7zL}NLd!8R6U!SzO3pm zs14HWuQTnYt%$$HTVwGV+XDBce7e?fT2L&DDDGCegPG z_ovTHowjnG`~P6m)ir+bx-m){QW%?ZNN&`Te<-cxCaSF*xVP*0Pdo1?f-h#4UW+VV zy2_|2xMlN-9WF1HhqW|w2<2|Onf7wSVZPNrWVEbJ*-!sjyXllx=8FppGoQ~bKX>}Q z;GRWI;g&f^3^&%?U)*muYr1Gkr;}D$;MA_A9MMg$!rA3(3f3i+e!H3e{3-iQbx@`A ze~FQpH{-O6>sZAi6s~%Iw798vT6*8lXS0KC+YJv0O=x)lFW}Nx*g(C#D_MK~|NFhu zOXTz?UI~MQRR{Q{&d}Tc=Tpfk&E-pezu#{kelV)&r0VCOGSC3~IycrPYnI*>az{U} zSQer^?Xa@S(W3UdyGpYog8H@mbS8V0uKD}z_WH=%Ntw=lulIaD=e_-IS#(_Aganb> z^2TXrLeAIzd^-K}r#8^g-LJdv>!vrS$y^uqx49Uwb=6Kjn-2#-b(CWG{-mGBg#B#{ z<;A_lHf>QpZL{f&(nGy(%+qxDyjr!o=>Er;RY9&2>tbqGhiR|hQxsKpGqt#W&E9Xf zcGkZL*DAYc|COf>+-d>&*VjK6)IhxAwZZ28aryc=&b~U59#@zBSQK^H>h+q*|Lcy+ zmOpv_c~851odxKwgUXY3T3UB&KA(NL>9n4=_L>ccOj_4FSadR6-uwODY(ML_TV(1M z)q)Bh(N!zbuHNB_W|^_V=IEt5^|>WM|IDXuU1dAn;F9(GJ(Hc|TGp><6HU~)<>;}> z^4qQK^>@NS19n#bemuUcy?)Q6@BZr4dIA|1HRDxR}AO}8)VHBnx4NN`0*2!BY{ zqwZ9O=QGpiUD=p?JcN6dz97$|ui0z2hFyJY^Y_c;mph-&JAL|RAx}t0)timSFV%j( zJAJxlOx@3?pFg#*bRH_b9y|STq)w^$ibp0%M>=Foz;!_~OV_-rS1Z4OTAmG}SGOIo z1C5M+x!}zIbis`vZ{4Y@!#Cvdax zKAY`-^_>2`A4=biZ$G(V>2~bM+U@sd&8z)(Q^rb}!Rfz5HwO54v-Sy!R_vi0@7LPzH!@oF#rl;-o*fuPA z1!@|E%+0O>^+kUGpqiq79V z^|;^ncXwmU0w$?!)e1W>X^FhJc7o?sP`_x&EAaT8%1d_Ff_{BiT3I3)cpH*QVC1S! z@Mtegfr{s57K0XU*?} ztjSC}kRI(6QF9Ho6U#Z3;Rkpm0^E910ZE!D&o;>nlCrO>;fvpzdwbi%Vn{0^XeQX5 zzLRIPfV%6iE-m$rThuB5nrk#smNriF;Y%!ibw!gMRQRiSPFj^YA2eQ@>B7Vef8u7VIo1oBUk3%(RB+{e$)x*f#EK@< z*K0OE+i#p{ns}(iCiCbfT~JRr+bs3el(wvOe0)f9l zN%iVUP+ba|9$s~Se)+vh@Q^lWuqI7ye%-Iks&6;bFKew{Gig`J%Sk4GL9L8TP~jwV z*7SOer`E4uuh)Y|^52`@-CaI^-S=7N?SAX*{d7vZaz1E0Agbh|>*encL6e)HswArL zsOaT4o6pZn3z0c|q*FL}ecaxl-{0)t^s808e zEy?Tl|NC`iW$^N@`|*jbqL++L>s)>la0E2V+Va$iTldPU!)Bm4ZM!@*Ki-6^?8%)1 zF6ZajUe?)s=F$g?$yY#i0I26(|H07l#)joO<0ig|9Gaqas58Ataff@ZoKXBy<) z*-`R(?e=FII2NvWDS9BOhELK+rCp!%#g^RL->SJ23it1Pxoq~Q9Wy5~NATNz39yTA z(X4+lLHPOSXS4JD?0=s0|5Q=+xYzuXEojv8|3#J!9RCaaqbeS@F5k6m$GI1?Ri{NP zO57vZBx_NSz{kHe`?}u!#hko%>;M1#InQh_Q^fkc-=bz2Bszf_gv+h;_4oZq0yV#* zO0R}Smok6{vdixjy8qJ=VO;aVyFk8k-yb`HdCGf^?MR<*9BmN?PS-DggX#?x&(fnU zZ_;Mxh7~eRED#dzIs5gfc>I!u&h5+U{{Gtfib3qSP35O2OMX>;y&8UbL*n5}f$p+X zpUtoT*LM8n>mR=s^2*!Uurp@y2Kc^yU4Q1$y$$bnyM zyI=dghELh&V{O74|5+xQXJ15Jt}Sk474x{Av)PyLcboie+qtK*rpMP+-m3fkb~#sq z;GRYKUGERFY?Wx<{ccw_U(V4VpzSWpvl+U$qC>htYfeB5OfG-0aE!fmeb(Xd6(-LX z>ujjs{S7n7Ob^eF)3hxcETi6x&{M=k= zx&Pm8=NGFAHAR6c3;CK4j`LCWnTZ(a!Ws#Lh*Uq?;*c4`EGeU zopm#9w(k3G2KN4oY-)YoS8Zl2Nu6KwQ6|oLch~PHg?)4XJ&5>WeLEp~OMh~Te2xCC zm~}pG@^wERw*Rd8@O_2W)j6CAanAD#pi zZhi9YkLBB3XLl`Z$Y8#oerZN-m{qxq{oix*W$bS+u%FGvB=lh+@8jeB`4ZxL=G7YZ z-OzvjVD$ptbg?ti$9+8Z(&gIoc&(w`-_j?cu+dW{#aI_)12!U-dXsai|i5p zC-->C%FoA5-KL6yc26<(P5e7uTWe$Nuf|#fJxjKA%Zn~FzMi7`^M>60$bn2ygyp)9QdZa_<-Gu*+sh_TP@NJ`Lyuv)7KmC$QRl# zvX}V$@z#nf$NoL~@uGQ$Syyu3^`ck-wTC~yXkXWOtMgs^{6mYIb>7V@da94{KJF>> zkS|!59P_c_4);&%_}<=y7Io)LYmZkx-Foy?eUJXH=8w`6=lAp-w>+n`@A!^|=UN9yebH}=v|lqmi~T)by!d~H zx%Us(+mGhCg_{4Gu&*=uVXf-D<&W!*T0VWxvi|hLh+AI&KOQxEw0G9`W~F!CJ*DRq zuQTU9(GK`K;d{wEcj-sFo^`)1JahDM-+7K6_Bi41A1&AuY%Z#^ynk`{ht7eIAO1Z0 z@yOy)+`*lXf9!m|MI|II?2Y%Y#W$v>UhJP^-?zCUzx%Pi{rqo5H97ir>@NF1N1d}w zo}R1}aH_VkI9C9)!fKMrN;7cA__8;tXj~%ZUa(6sz%Urwl+9}}~Hs>xS_S^rf zxK;gr?`NTaKeIa@-_F~ud$;(!ZRMuo^?Sdan!HKpY4KrR^Cz6q29alj!a&1h!pke3 z%}l=p>YZJStA4x3MzFEbncvm~)SCTYJvB7!kTVUtLWcOxisywn4|QxwYwg5X&23Y zzx(|@8&1AMmDX=IIA2}m?=z)1ZY39!)}{;RYkz$?xt=>`{>Oubm&>;8zFT(tY3g&P z$zP|(mPN|t`xssJV`2@dc=+?`h3#7!1(=?97%+tPfhJFFE}mWT6Eyaxz9CcnbdsT> zzp2WqqXl`DwLOyij(?icqkAlE>2>2yzugkmpv5_M&u#3T_#Z@MuqVs-+x<+5JJY5l;b?5bEhwP>(4#Ro}>J$Z5znNypBq@&RHbsxGD6N89rNK70T0L^YMuA zPpi~9#rrre7Tg6b)W|%oyZy{_{vP*rwd>-W#CnX^y&w#T*P8W<-g44tO^(i7I#nx<`ORdz=d%uj z2B`a|e=D}vd}sb^YO$C6h3Adgvy&6n6!323{WafEEOf?;`d?H2rSG9nj`q2a*P`?9Zs0%1{GD;z&o7t#pKmzE$Sz}WwKPN|x$m_lQ{`#>{WW&`B#L|V z*KL0E)$4y;>DADmRyS%spIv@S?K}In)B9c)e>=NX=6j-($sP6`eJ|?|sm#gOQZBN& z+Bf~YBPV>HjA=r~ez?a#$4pEj-i6AaY&j zulsL_!*|qo+~1@UCu1-A*TQUF{X5<4bvx7Eb$eYm^v?J+FW{}!vh|>g6`v+2Yr1bc zX`!BQIC)Pz%e$3dxQ{zUC(pTjyii6)IrqTb^80iDpWWAQ@u;Jw_Cws~)$xC|_D|=L zGFhSc;b?8o+rszHe?67RwExR-jN|rWyF-;r@^8EY_2=(PKeC;YoSqrEj(wfAd_E55;Y-Q?}lz5l-N|6hCfZ}<0~g34}B_AQj{kv=B>{;uGb z$2V^1i|*TTZO8dSn;7{!=aoNr$Zyh}cfN2#zFqr<`g@nNc@sr{e>$bT{><&(eLCIW zjo+=F<9$pZdDi#bU!A}Gw=_R~I>+|wmEfPHU*yj}-rHz+a=+y?&;qdh=8s3J1^ee0 z9O48QA1a=cvaY<_@wm_0&U4a|l|HBQH+!#@6+SXU?(`jljb~frC$DCan-QW@r^qB8 z@;f1EngU;_=8Qeh?)z97FZ66^K3S~BI`f3u94C#Yw?=~JS#%Von3P%6W@xDHIFh2~ zsB?&oC39Z&yPY>Q6IHO0rO!mnlE_ozEqs zm#13HCr|TvWE^+j~=CWh&8Rhf2XOcp*L zK9#G@;7mNyV)=014Y{}d0mA)-d^0-Im8Nrst8L*d+#uUGzu2*QX2G+Vi|j2AIaoec zspV(-FZGQ0<~^b3{YR@Nai1(|`_b-Burm z%j;|U_ua_f|M$`{>HIqzV$aF`et2hN{x7IYRt~0zNC`}KCByWGk3sh?(b=KSj2_vl9EseJeJHd zPfM}Hk%JnPo6HaYK^rd8e}I?sJaTSH(^ zcHiT3*6+_eo>!-S;lNIX8rKIsACK*Pyn}PQ!9MZmoQ*42iH15yKfZV1r-FvyceW;> z9&0AqJMKH!b}ToLv&g%3W^dCrmj{!#z1ehH&r;y9rIOAeJFU>CkM=oPTjsqJZI`dB zu#4;KH*_|b_)lHti0R3VpKbd3>s01A&5tR$=xXWXbX!uL<@FBsPe(s9$Fi};+$AJ6}7FZ5W^VyAM(sbg~xtHC>d z(Ac?L@tpKy%#Y^?$UHYVCiC}9gic$7McBLIJCBuOobF#Xm$?jD?ehL(O~09t!9%H~ zvMucua>-K*Pn1bI$4s`FZ_j8u#)f3$9Kg78_(CC~0{A1L#SIId7 zbx&=ku1{|2?u|XZN8G^7BL9y3&S?_+SzcMl%SazTT^IRk%JG-Nw~qf+K4y7c@Vd!& zi(9Vui{mWg*7-7(g}5cfY^uF=?8g(kGv9WWe|>w~e1H7s{CnvZ={>6V(tnu$J+O^~ z?Q(le^`7>o*At5iK?^5yi|Qm-%b4f(Z9Mh$K;`oIo#sWh7s6w@_k@4`cX(&t1jF2C zc4sU>tExX$3miZ7ZO8YE-}mVC^=421TXg5n=^y2 ztMtR1Gee=zkG?K69hD{O5U28+6{~#>n>=zsqge zY~kjVH7EGinXTUcjgLK+J8Y>J-Z)w16O2P4tUM{nFSpNB}`E$<~9M6tSirMHBTzJz|Eq~^oB~9)u0yp#~U-IcN z(v&?NZzy^4iMH_EqYi@g>5FVutuc6cYKgw^u{~{XjSbJFm`GG!)doxXuP7!fie#6BSw>D*#CMmG;#h} z@$4vz&D-t+tj{NW_BLpD@LAg69pcehr>Ya2Sv1?O(?IGW<1Za1`#tmQ6y7)--TcD+ znB;Mfh>nxLB)VOFf`qdc-)*@d(cQ!NOLf|Tq?k);+m3G(zkS>?QAe<*`*CvgmZwjr z$LC2HUyVCIBfBqxsjtEPP5bNa2|V{7TV?9_ocYfA&Q;Z59qTQ(9qkMFYu%z>EKYLO z{pTCdUBH#deoVVjWSuz^&qtee`R5E38yqZp4SfSx(BNbW5f-g?I>?3bl$yly1D7IRa>Y2)_$zDuJ)Mdd+r|5 zUlacdd39b;X@SWs;!?2rX zwI{cp*t^0)ZU_63z3m5duG>BCH#};$b9&)9iRPI9HG&zBt)AIjU3Fvn$9w)K-_onY;+qwV9-rnr??@7OG-%Z}rUfBPf6ZGGoS*DOoKE9EKl{w&*PsYvQjltUPl>J6@MJVe0DW4^{upwpdSI?epi;(fc>W ze?P4jT=Vdw#k7c5x*y(id_5A>@Zi1Anom^*E6+SJU#}_=awJ7pc!yw$*5WGm$vclO z;CY)UH2?GIBV~at{9VUS8y5IXWr{d^uy9)Z>9UuLfB2^Mb$6yRIk5;Zoqzbps7;G? z!wdUgtrKLY24>h#ej*r`!Nq8?Pr_Ixxkp;Y9XF>@)QLKeGwmyUbGJ z_0d!bNqL_e!Zi!m%9#H>EdKZCj0YAH;xWxNjoFRKDK;XpN`tEYe`|A8-Oc8VRza8A6p}$o!^h46m3pdg}+6D0@s~wa1?$@N- zv-8oXmAbC+#qT?+r5;ZRkWv)X`hCQfmXCDT^GWrW%ht`_q2731?C{Ai$xC0)I1p4krN6ma^ml5F@Rf%) z#rli-yLa5H=xGqUUbI!<>Xrvl${cPJR^4cSGkcZKoX-_=yb3zLTfQ@8nfx;Pox85! zd_jxwqlIVx?JzI?XPJL=sap46kJ&rijpH8K9sfI_E0<+<#s99)ZmK)pNB^{)T4u0p z(fmjEj{V(p<9*>;!LsN3&c22uxsZ5pt1+ZJ#Gvz)hwIbSwKE)+b8#y2YIz@RsY;&l zCnac#XYMp(?W9FBJ&(>X;SGGavg729qOI*2@l%4;1rD;5hJ-6RIB(^VOSgZsereaj z2{+Uk*W6IQy@W}0@?M`6Mib?Q57w-gIPmEFr*AjJZtKWJ|FQjcP{o|1%4LGW2K`^% zf5Q$P$qm_~wOGp|$9l@|dD}ji>Z-o(7XGg2lzTM!iNvX7mOa~U{j+4#x^k!BFt25g z$W=#Tt%Z~mAXUW?vj~n!lv7J66`rY@o#POWw2MX&o*)*Ml zpHI7f@%)$ipT8dOkkHSc|lGh_!SS_FT)UP@aD&;QY z{l)myZ`CakFRh-%IXkRaX_uQb=d#{C^NjGNsZVeC+oV^qYpIWTGx5`2t5w;@zRGLGs_!v-Cw?b5xifCnO4qL%#}phdAG;^~ zYVDo!kCqDWju+-k{bef$nw0_#O`6n#=QM)u8cIfJehE3|qINZX#g&6CW}+#xqMCY6 zx~bh-DRO9&|I{nlNfW!YK@;2Sqz+#43%Q(dY3lJ)p~bISH;8*b39M{QoyhU$gRAR| z=)9e(SDix=6ip5WrKf%=+}c^+WcIWnI-zM-MCF_IBZfwv=Yl$?hOD~4ruJf`!J*eH z*165-%F_B`@BRMm=JR&Fa>}6v7WFI(Uql}>6RnO=>e}F6Z1^#rr_=Svx{d&b$^Tnk zWGIU!=k57;?9RFQ|NlG>4vo@Qeh@77+*Ix5`@P@q$p|fy5>9T_GVI|#WFE7-qd|(X zYsD|&6+c2;=6^mqsd?(J55IW~kC-~#(3_?>_u4iWh7Jc`o&S+XzAK3wt!=3d-*s-0 zKWF0<=H3-0@4A$(NIpEP^iS4%%{3vTZo}gdkN+5b15HlGOk8d8OpBFQyH$>}Y07Pn z4{aBCzZc%};OJV)x>D`vzZ?3e4{!9JRt;)T7ta@6EzY*>@Q!D9t`zxc>l&Z__DCwx z=Ca!~HJ$MLOxKyutNMg-zFk)$yE#WGasIM(kB=4TcP~iU$Q7QDbM*JiF9NsMeyMY; zR@&ite@^+m%ANX=Y?FWUTxaj!ye8NCsA1@>{4cIsf7hGNah~?(N!*F&BIho?UcY}H z=y0$-OCD_rXEdA1deZhIxYIy$+%Tbh6m555kq>cDn&R-G zyUe)HGLEU|=mqY-{xe$ksV4|NZ~1s)Us9#Rua>{&W$zx}3&>VA{pRn{72v;9S0+CA zZ#ZY@e+ze+`oc38m*1H#VIOmvrF7Au(2tce=8xOoAH7t~(%bd8;jR0RwNl5VpZ6vw zaPClAm%mTq_ERq_-^Bff&n&{$^~#prcxav6H$n3IqenlLPaFxCR8-g&Zqxs!-EM*Z zkIAP3TH~!Vab?Q$_biazYTy@HG+A`S{uP$_MfA;arcS&{~$2;5e@7LHrEdAp7ah~|`5Y3(_k@3tloV$)L}Te38-nBj7u z_pgva=TkZ51;#~BPL%w7I{kUIn`vSG1Is!3zgDOw>in8vcxWF--$k*$sY@S#X7BFw z>$*y`CohS&yl?pIhTPPX67FBLPp`cc=H%M5x3Cam|5PoZ zi)`yWkICn%oH+i~Q#$h7@UM;?A>o{9hQq+r4Gtgy=b+S3EfOTi|hi z)cKv@R@kNfx!#~9{43YZm?CeM6LIvt;JKU0{kBC{`PEiOcIjxTeN=bkQ+qt~N?hSl z(c)50wSt*nQiSGo`mIVetn_+1HR(Z@{IT3eJ*g}(xq2Z52P6XPO<(EIv`L~RIP92HOEkqZ=PGHWSxFx zDlWVZG{QgcjoKZ-g-o|(YNK;ImCo^=ZVcpoa=!jwab3@Kp=~$w_x~+2U0Ah1if5`@ zhJ2$~Q~d6?+oCte`x`WCS&GNk6k5Grvsp?`-R01wsaKgKWsd9ZelzL(?*>NZPZi7N zb2tfn(qKC?wA&(W#)tHnBAq$6mHRA|w(H0JUvB?b6SPsS za(_=utGtR63|NDNW&SkcB?6>4N@(Oed-+>mNwFxl)Jzta|xNJpR0r$g3(9XB~ z`NbXuZN>7}`L8QqZMQhDBYMom?z)8NK@L&DYm0e%f~Td`yjr=u=tLvK5wqJllaC89 z?%E-CgKg?T3F{is-_!mnnlKzvZ!xp@9}_H`l0q^ru7C5%^>AVA*7F{emrk1F9%roTc!vEjz z6rXR~crv1kA--kO3h?r!=Y^LgjF|LmyiPF}fFVzc2h&Tu z0nF64ZY`+lb2X29#nJLYW?nP%zD8?OAcKC4P_tCNalF! zd%E&sLGel_pV#qKQ2@3vr6=NM>WTFiSKsD ztS!V@mh3oRxMz;D(}bSSE7Xn_ey(+@Y1wYke}{P|`{$dD8y#+RR$HFee*9PY+-dp$ zKaQ`oQ@$Xt`?tqof5HF9pV=1fRGE;}gN8(eJ+7o4k1D{vSIr_v#csq-31+Q?c&AFiT77-3L zfe@`Qo`(@D^;|j@TP!@`qM4iU|L6jdt6nSk4yoko@VkfdF`0%WCf;X}m@#8H6Swd$ zo9QRd-cUOpzB1pk&tlu7?~5m~37=z;bYK;iTU^Bcd&yj%DW4?H_dor*BI}@w?S1Yy z&7Nh4xG!%1Gh21X4ZFA6+d6AqMO6+lyjdUhL+gV6o7wx8_sa196?)rm_w3J<-}9bd zKEGu)=fh(kY|bg>F20*%|7+%BZMpI}*1uNmh&?BN{CGBp?1gf{HyJ#S+md^Vg-^$b z9p`@gsIsT}o_W$vOS#2P+{ta%1>_Q9jQU;_|7!Ud`ts|=vRmGvLVfnfWRD*-bg?&n zXOTAVbXij7$)cw#jnr=3lv}89%TLZ?z_IBcAM}1BAzY10Zhl; z1e&h9tD0-w5IFYd>-ze;0{c2wc^ba6i2J2J&79@9ZOVxWSN7NcU&W|%VfvQ2ukGLQ zDr`A8L#M4LX^r@A{vP#nhPe-AE{N@$^-D&;+v3>XMSpC+xym1%kv#usZqYl7?LET( zda^aNtXPk+{XMu%!ugAG{U?d~{5Mgl@>?d>7Thh&yTN`v=*{9=dpB&%z4UyG-} z(~ryCe)7-Zx8?RPn#rAJMc9Er&(2Ph#j~fKdOu0!>>JSPuaHJYowH~DI4=6~*o~ok!s&Ip z-_3f}`1CR8Bn26_F4eOfngN<^p7mPIrlPO3m6kX>71NRubuI(-4!_iXc&-*y3K~XO zbq>6UU*)BH3zxAjr;BOpQy$LZyQSA-Gk<(|$m{)nH%Ax zyK?IWrfDjkq7jVV#>VxNgMSq!XKGEmx+IojNQMx-%QJJ?mw&(CFW>*~>-v`y-Q_Yr?F4U5 zGQA!%8MM*q)x)*h?|D6+Q|wpu`Kh=4) zf|vPtem(Nj^8cUD#q(E|f%YRcv-9Wu_zv2T2AT*yADz%+d`((-{qJY9^Dp%u1g)_? zXZQP!-S&}>ro=f{#;wST`}5B~ZveSYmU(D8O{ z46=5=UM&9duwCA4*W8NOz0GB7MIYz8?F)k~23+e5UOwlm&NA!P*6iuGw&hm7o6o?p z{yk{7>E&g5XAo^2hIOOg{d8ORJg5 zHvYcuZ6?d_uljlzv=pcA+vfScUvG%V*GzQlmAaZ?&~CQ*{I|EW|KINc?Kg`|o4NGS z#!c&|<*femYuPz{M&oVwuUIBWYvlJIugp#Ud#3nB^10(*ww$;7z2xP>TN|gFZr9H~ zdL!xg*_W@E%?m%D9STcO&~Xx*UoRH#Jan#0d)*Asa*7zw_6KgD<>tvO)gNB1UcU^q zwejoA%j)`!ZmhF<&2DLcwnXj}Iveb7J9S>&ua_|wmj^HR%lvvZ++Tam1}8qBfQ8SG zN$2~3&u=L@sk;2u{}&e*UuNdFnE>7=^JeF}U9T^BX|J79_2tFH{r(>wom8KnbK~2c z;`4K_MW)Z~I_~7Uu=?Fj_3cv=j{DbrnhaV9xcuGS-Tq%~`lhGe1|2A{=R9a}mi=~B zj$WHD7o30I$b7B4{m!J-MWAJgnRiRCpG`EH_G&Sg=)p;#qg}p-8_qeBEnolV!1Iq&;y+fbU0{E|GmA{&vQ55QGS~)>3HsZSpy%-Ti+)?VQ^q`K$B!#qyll zc9q}nmVdUBylr@l>G(lI`|o#(Ej^AE7TAf!RXprEDF5wnMRIk|NsF*!;>lI#ET5lw ztlt##h4(b4k(tFY&@ndizn?X`t#g(6?ZY|yzFhLIjQ7^r=(2BJm!pwf{l}x?pG(hw zet9}>Z`IP!ut?ST?Ng6LJfHRc{{H_V$v>_|=bwF^-pp%u;&G$lS&JS2|NZ`K`S2HL z$!D>>L7vmksHeLYuAg1J*6)479B8h6dHf&)XbtnLwuHmn`g#>A!JQ4`o`R~{3 zVvF>C+ixch3N`7s6maB!*u(Mf!}r;FyENHN#Nul{$~;iiFae!Tb3mcOG2!u9^ZRGc zt0xF1iaF`Al>fMwv-#{a<}lEi2YfjV4~~P*t#Ip+n8+;E(#N3^TX%<@1RMWDQ-T$%*(lDf^OlJhgcaqt`QE>jHqC3#?{~XDzgB8-t#0R+p9fk%dndnT0>=&>84Cl@ zaSE0#Y)x8UI2}!xj9ao^EdTv(x4u5JMCcTbPc9$Sn*2jnGSzSLZz{Dp_fyiQqTpS3 z>hxH%{Mof1se!E#5UwF=rS!mIMdJ6n<>y70ad?1s zI`S@@!*TJ0#lq#jW;a#BzbhsJ*BM~j zULbH@b&AuEW(J<)po2u7X9Xz4fC`!|8V#Zu{8xKcymQ^rDIh4in&au44Tt$GBU~lg zaxYK+B3vsQy7$+&x3l+ic-DS8scxC!qN?53yN`MOQhf{i9Q$b(mG`*C7t3|M@IJ?? zD0(R2i>#vRFO^?Y62#vwet%QWQL3rr&1{B>uXOr_=`Y zb{8JBV399}icqxpIEX zbTfl%9O9dF54r7`_t96O=Turk%_pgCq4_LpAI&M+E2y!!NaXR{*KNsSMn*Zg_me# z(dcgAUauVDqS5kRc*BBKyoo%AG#d?A6-D>Cr!F;GCHV2LulZe*cCQ;|zZc}{@Q3Hv zI|?6?)u|QtezLLT&Z^bxW;L6#>|Jrp`Kqjwdx*}X%9@S!(-Ky*DvBL)-ZKB+f_$YJ z&K?~KeCHQl;!m8!k$f@k*X#u%j-t0te|~8`&wc8$7v=v{8l3iTnjhge;jKW-$`*%k zmiZi;KOC)GASHfKf0a$)9h?4dn`-xQToH`nYS}Cyy`}fF%;N^L;yob+UCAlGbNUa& z?63QKDQorGYZ>~)6z z^H~Y}hG@U^d)VA@@7+kAdHcUv3jt^^{#I`=xQ~poIE_qji#t zTi!WXbWM={t=o6EYT;g;ttaX-?XRmp*F99)@%Ta2qJE41z@^=GPk-CgM+wYGj;<-R zvt)1CZ&Ckd^{uU^N`v=>t&|9R8P#h5D!0M;@$wDLw`j#VG>nPNkfnNBYhJk^o<;M9sWN3u^fiXKw6k>l7K zaJRkS^3Uh6m?Fd2S5&R6b2X?XwkvmGKZmEQ!^$5vzZx67w@eoZ*(u91 ziQ|~S6wS6oi)V{CBBrixGj09sDACan@w0;SV8G8FJFRb)3%6%kd~Z1oT2;2EN7kF= z()2CU-Opj6CGTSgpljmkk%hDA~%n}YX)coT-6}Y$Ofknm=`BAZ@c>^!wvPCO4xNx*|#pGxe3-SjM}~O z-$MBgh~7T6BaL(a3Nu%Zo&>SKC-!sp3pObwxYS=Mx;N|4$55&3J?h77UwF@R-m$Lc z-^w$t`~AFsaJ6W2z7d?Z_?GPRzSo;T2T5r<{#vo~de)ZhYc7?-4$27f2A}N_6dPFB zR={yJjY+iehtib5wMqO_GeJ93Rx=CE&}dU#QR3XH*d!~Mx5(-os0E-MFStyx=isN> zs~@6nxrNS2YF)P?Oysue8OM(92gl29=bB$NTOr^o&{lRyt;r-rS*v~bBC8AE6>oWK zEWeZgMO9JrmgU;S8D1}x51Gs4?|dKW*1ydp?BlAQReoR8Pv2O(`JB~G{+r)=&F{@v zx9``hk_V0K&$N8DD(xxx`}O+sx5atN7A~r5CMvrxtLo57>-h@WE4->MeU4!rM|!BU z{k{7Ce=B!7u8Ip3?BObik!QKYp%nPDH$hPJ&@%R8g1 z)YD(c;;h?w@~r270b=i@ULw(i@!CqYoOkfY^J z`TbhU7SUYgGlzs~8=vcJzf)xS$C0CT0Y`kxc8>Qk#b-?|6Al@bu=u<6%gvqM^Vl+{ ze*%B5R@ha=9|tE@wd{S>`|Xl`OGk$L7wJTKE%u9i)AD9t)3O%~dn9qgF1}^q4YS{h z1xJ&=Fh8HLfam%0sIAMrI1ckj8mWYvC0lQq`T2|;#|xLQOQQG`puwg*wl8lgG%-VvAL?|5gh|6ZK`GWlGp_qxzySxd90KGu4)HK#ut zIwUx0$+J!1F@RTH6Ii^L{(Wx$|D+AT=CF7DD$iuk;#pC1 zT6g;y(dJjV&AetO7|of~TcS901(g&zj(uOT$Yd=CYhhmgj)!eBO%J;Z1VTGN-67D3 z@*WnIgR?*f-n6HIj)+?&dS2^cjj+kC&*!X*Z*(p2W4Q(DkchSJ)KWa)@>P?mX^y;8 z>KAE6n_~=&vd3bVs*29;Zg>D1+-(kWZs$Au_xv{wl|sKC<;lk#e{%?Lx+C{^=4&>V zNf!N}(FD0_-?_nB_J(|sd4*fAhMi7sD)eFKydd&;*R7(tbJEvEA1a6`ZkbWRd!6U% zVTT2sAJ6Yp+Hz%Y^>-Pa$CWbjZ`W;WQO-^8DTuw`R?sUxef1LwPO*C>mwk82@0?yR zS2!ibzVOe}?5Q7*{cXRH{xRz5uH-q>)`$M;+$dEcdp6b(U8gEtOFl2cozz9$lvC;p?w0Yqv|0kmJW`eBCCT7c|aQ@5|x`2S?n{U8CPw+9=Cg8 zm-s@lY3|A*#ozCiKVQJ>I0bZ4>jRIL4IGsl{(E_EVx8w4I{%U3ry4D#sm(@jmPfGo%o1?XGUh+@BV*=Nio_7c+JG#shUug3!ocHZRn+;o3u1h>`Y!JDwlDOVs zLH|a-YR)*pcgZ|CyWej6IZvqe?wstY$!p8jUh1<@-!pAruFe_I{!vf`927bG|6j$w zpmTVa2`LI@riq-MFX*$vdgWm#s7U34m#WWrGEWS@2JF9QFvOIlm;2_4KZK8?^l+TT}{QT)M=5I zK%;7)jpLvZXl75)>2{#QpD%;XEZ$Z6dRo+C!{lR2Kot{cudr$8YANfo9IMY~j4y-Q zI-nB`w%jQ?ZCca+cHgH{+L@1zbb|Z>vDBC!vW0xNGoPhOcumsHz5e!pP3{&Rmj#`s z`Lf6OoCoMQFRQ;_F7FTK?0zm(!^F7GEcaH(9kYWP^Ntta+O~GzBD3?qf4yE`EU;$d zbJ4)HuQwi-JDs~S>~9x?Xy`hv-08b9~M z7ZmGFRh?qi?wkcWbPwEmyVT!mY&J>7bCvZWPj1~U0spKQE&~nE