From a18e81107b6f32ba20f82e5dfbd47b79ee38d12f Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Fri, 23 Oct 2026 13:24:32 +0800 Subject: [PATCH 1/2] fix(research): focus long histories on one readable finding Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../goal-research-history.css | 27 +++- .../goal-research-history.tsx | 120 ++++++++++----- apps/presentation/dashboard/src/router.tsx | 1 + .../dashboard/src/views/dashboard-page.tsx | 2 +- docs/development/design.md | 10 ++ examples/personal-workspace-browser-smoke.mjs | 2 + .../research-finding-reader/README.md | 26 ++++ .../research-finding-reader/after-desktop.png | Bin 0 -> 123514 bytes .../after-first-viewport.png | Bin 0 -> 132921 bytes .../research-finding-reader/after-phone.png | Bin 0 -> 68653 bytes .../after-source-desktop.png | Bin 0 -> 135772 bytes .../after-source-phone.png | Bin 0 -> 51311 bytes .../before-desktop.png | Bin 0 -> 148541 bytes .../before-first-viewport.png | Bin 0 -> 124781 bytes .../research-finding-reader/before-phone.png | Bin 0 -> 80492 bytes .../research-finding-reader.mjs | 137 ++++++++++++++++++ .../research-history.mjs | 4 +- .../research-measurements.mjs | 5 +- ...runtime-source-workspace-browser-smoke.mjs | 6 + 19 files changed, 291 insertions(+), 49 deletions(-) create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/README.md create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/after-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/after-first-viewport.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/after-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/after-source-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/after-source-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/before-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/before-first-viewport.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/before-phone.png create mode 100644 examples/personal-workspace-browser/research-finding-reader.mjs diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css index c96c5fe65d..4102e5942b 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css @@ -34,11 +34,6 @@ .research-detail-kind { display: flex; align-items: center; gap: 6px; font-size: var(--text-caption); color: var(--pw-muted); } .research-recorded-finding { border-top: 1px solid var(--pw-line); padding-block: 10px; } .research-recorded-finding small { display: block; color: var(--pw-muted); } -.research-recorded-finding > summary { cursor: pointer; padding-block: 8px; } -.research-finding-summary { display: inline-block; vertical-align: top; width: calc(100% - 24px); } -.research-finding-summary strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } -.research-finding-summary small:only-child { color: var(--pw-text); font-size: var(--text-body); } -.research-recorded-finding[open] > summary strong { display: block; overflow: visible; } .research-node-provenance { margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--pw-line); } .research-node-provenance > summary, .research-finding-sources > summary { cursor: pointer; min-height: 44px; align-content: center; } .research-question-index { list-style: none; padding: 0; margin: 0; } @@ -48,7 +43,7 @@ .research-question-index button span { color: var(--pw-muted); font-size: var(--text-caption); } .research-question-index button .research-history-error { color: var(--pw-red); } .research-question-index button:hover strong { text-decoration: underline; text-underline-offset: 3px; } -.research-history-detail code { display: block; font-family: var(--font-mono); font-size: var(--text-caption); overflow-wrap: anywhere; } +.research-history-detail code { display: block; font-family: var(--font-mono); font-size: var(--text-body); overflow-wrap: anywhere; } .research-history-records { padding-left: 18px; } .research-history-records li { padding: 6px 0; } .research-history-records time { display: block; font-size: var(--text-caption); color: var(--pw-muted); } @@ -165,3 +160,23 @@ @media (max-width: 640px) { .research-unlinked-days { grid-template-columns: repeat(2, minmax(0, 1fr)); } .research-finding-sections { grid-template-columns: minmax(0, 1fr); gap: 4px; } .research-finding-sections dd { margin-bottom: 12px; } } @media (max-width: 900px) { .research-phases { grid-template-columns: repeat(3, minmax(260px, 1fr)); overflow-x: auto; padding: 2px; scroll-snap-type: x proximity; } .research-phase { scroll-snap-align: start; } .research-trail-list { grid-template-columns: 1fr; } .research-timeline-grid { grid-template-columns: minmax(0, 1fr); } .research-row-label { flex-direction: row; flex-wrap: wrap; gap: 8px; } .research-row-plot { margin-bottom: 8px; } } @media (prefers-reduced-motion: reduce) { .research-history .research-timeline-marker:hover::after { transform: translate(-50%, -50%); } } + +/* A selected question is a reading surface; the whole history stays reachable. */ +.research-history-layout.has-selection > .research-history-detail { border-top: 0; } +.research-history-context { border-top: 1px solid var(--pw-line); min-width: 0; } +.research-history-context > summary { min-height: 44px; padding: 12px 24px; font-size: var(--text-body); cursor: pointer; } +.research-history-context > .research-progress { margin: 16px 24px; } +.research-history .research-finding-navigation { display: flex; align-items: flex-end; gap: 16px; margin-top: 24px; min-width: 0; } +.research-finding-navigation label { display: grid; flex: 1; min-width: 0; gap: 8px; font-size: var(--text-body); } +.research-finding-navigation select { width: 100%; min-width: 0; min-height: 44px; padding: 8px 12px; border: 1px solid var(--pw-line); border-radius: 6px; background: var(--pw-bg); color: var(--pw-text); font: inherit; } +.research-finding-steps { display: flex; flex-shrink: 0; align-items: center; gap: 8px; font-size: var(--text-body); } +.research-history .research-finding-steps button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--pw-line); border-radius: 6px; background: var(--pw-bg); color: var(--pw-text); cursor: pointer; } +.research-finding-steps button:disabled { color: var(--pw-muted); cursor: not-allowed; } +.research-history-detail .research-finding-exceptions { font-size: var(--text-body); color: var(--pw-muted); margin: 8px 0 16px; } +.research-recorded-finding > h4 { font-size: var(--text-lead); line-height: var(--leading-prose); margin: 8px 0; } +@media (max-width: 640px) { + .research-history .research-finding-navigation { flex-wrap: wrap; gap: 8px; } + .research-finding-navigation label { flex-basis: 100%; } + .research-finding-steps { margin-left: auto; } + .research-history-context > summary { padding-inline: 16px; } +} diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx index 7a61742f2a..8a3b984f88 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx @@ -1,6 +1,6 @@ -import {useEffect, useId, useLayoutEffect, useMemo, useRef, useState} from "react"; +import {Fragment, useEffect, useId, useLayoutEffect, useMemo, useRef, useState} from "react"; import {defaultParseSearch} from "@tanstack/react-router"; -import {ArrowLeft, Circle, FlaskConical, GitBranch, RefreshCw} from "lucide-react"; +import {ArrowLeft, ArrowRight, Circle, FlaskConical, GitBranch, RefreshCw} from "lucide-react"; import {ResearchAnalysisButton, ResearchAnalysisPanel, ResearchAnalysisStatus, ResearchCitationPanel, ResearchProgressSummary, useResearchAnalysis} from "./goal-research-analysis"; import {buildExploreTimeline, parseExploreFindingSections} from "../../../../../../loopx/control_plane/presentation/explore_timeline.js"; import {GoalResearchTimeline} from "./goal-research-timeline"; @@ -11,7 +11,7 @@ import {groupUnlinkedHistoryQuestions, layoutExploreHistory, parseExploreHistory import "./goal-research-history.css"; import {ExploreMeasurements, formatExploreMeasurementValue} from "./explore-measurements"; -type Selection = {nodes: string[]; day: string | null}; +type Selection = {nodes: string[]; day: string | null; finding?: string}; type Lens = "timeline" | "graph"; type Read = {events: ExploreHistoryEvent[]; total: number | null; complete: boolean}; const selectedFromUrl = (goal: string): Selection => { @@ -23,7 +23,7 @@ const selectedFromUrl = (goal: string): Selection => { const search = defaultParseSearch(window.location.search); const decoded = "research_node" in search ? search.research_node : undefined; const nodes = Array.isArray(decoded) && decoded.every(id => typeof id === "string") ? decoded : query.getAll("research_node"); - return {nodes: day === null ? [...new Set(nodes.filter(Boolean))] : [], day}; + return {nodes: day === null ? [...new Set(nodes.filter(Boolean))] : [], day, finding: query.get("research_finding") || undefined}; }; const viewFromUrl = (goal: string) => { @@ -96,7 +96,7 @@ export function GoalResearchHistory({goalId, active, zh, refreshRevision = 0, re
{finding.summary}
}{execution ?{sections.inputRevision}{ref})}{ref})}
+ {sections ? {finding.summary}
{copy.group}: {event.parent_id} : null}{event.evidence_refs.map(ref => {ref})}{event.run_id ? {event.run_id} : null}{copy.scope} · {copy.time}{zh ? "。" : ". "}{copy.coverage}{zh ? "。" : "."}
{copy.interpretation}{zh ? "。" : "."}
- {lens === "graph" ?{zh ? "按来源分组,实线为已记录关联,虚线仅表示分组;排列不代表时间或进展。未关联问题按首次记录 UTC 日期收纳。" : "Grouped by source. Solid lines are recorded relationships; dotted lines only group nodes. Position does not imply time or progress. Unlinked questions are collected by first-record UTC date."}
: null} -{zh ? "合拢仅为避免遮挡,不表示关联或因果;选择一次可读全部原始记录与依据。" : "Nearby points group to avoid overlap, without implying a relationship or causality. Select once to read every original record and source."}
-{copy.time}{value?.startAt ? <> · — > : null} · {busy ? `${copy.reading} ${loaded}${read.total ? ` / ${read.total}` : ""}` - : read.total === null ? (zh ? "来源尚未读到" : "Source has not been read") - : `${read.events.length} / ${read.total} ${copy.records}${read.complete ? "" : ` · ${copy.partial}`}`}
{copy.failure} {error || history.error}
: null} - {!busy && !error && read.total === 0 ?{zh ? "这个 Goal 尚无已记录的研究历程。" : "This Goal has no recorded research history yet."}
: null} -{copy.scope} · {copy.time}{zh ? "。" : ". "}{copy.coverage}{zh ? "。" : "."}
{copy.interpretation}{zh ? "。" : "."}
+ {lens === "graph" ?{zh ? "按来源分组,实线为已记录关联,虚线仅表示分组;排列不代表时间或进展。未关联问题按首次记录 UTC 日期收纳。" : "Grouped by source. Solid lines are recorded relationships; dotted lines only group nodes. Position does not imply time or progress. Unlinked questions are collected by first-record UTC date."}
: null} +{zh ? "合拢仅为避免遮挡,不表示关联或因果;选择一次可读全部原始记录与依据。" : "Nearby points group to avoid overlap, without implying a relationship or causality. Select once to read every original record and source."}
+{copy.time}{value?.startAt ? <> · — > : null} · {busy ? `${copy.reading} ${loaded}${read.total ? ` / ${read.total}` : ""}` + : read.total === null ? (zh ? "来源尚未读到" : "Source has not been read") + : `${read.events.length} / ${read.total} ${copy.records}${read.complete ? "" : ` · ${copy.partial}`}`}
{copy.failure} {error || history.error}
: null} + {!busy && !error && read.total === 0 ?{zh ? "这个 Goal 尚无已记录的研究历程。" : "This Goal has no recorded research history yet."}
: null} +{selected.latest.blocked_reason}
: null} - {selected.findings.length ? selected.findings.map(finding => findingElement(finding, selected.latest.title, selected.findings.length > 1)) : <>{selected.latest.summary ?{selected.latest.summary}
: null}{zh ? "此节点没有附属结论记录。" : "No finding is attached to this node."}
>} + {selected.findings.length ? <> + {selected.findings.length > 1 ? : null} + {selected.findings.length > 1 && findingExceptions ?{findingExceptions}
: null} + {selectedFinding ? findingElement(selectedFinding, selected.latest.title) :{zh ? "此记录中找不到所选结论;可从列表选择其他结论。" : "The selected finding is absent from this snapshot. Other findings remain available."}
} + > : <>{selected.latest.summary ?{selected.latest.summary}
: null}{zh ? "此节点没有附属结论记录。" : "No finding is attached to this node."}
>}{selected.latest.summary}
: null} {measurementSummary(selected.id)} @@ -334,6 +376,10 @@ export function GoalResearchHistory({goalId, active, zh, refreshRevision = 0, re )}{copy.lost}
: null} {value?.events.length && !value.nodes.length ?{zh ? "尚未记录节点结构;可展开下面的已读记录。" : "Node structure has not been recorded; loaded records remain available below."}
: null} diff --git a/apps/presentation/dashboard/src/router.tsx b/apps/presentation/dashboard/src/router.tsx index a7aa2199a7..2891fc36fd 100644 --- a/apps/presentation/dashboard/src/router.tsx +++ b/apps/presentation/dashboard/src/router.tsx @@ -35,6 +35,7 @@ const searchSchema = z.object({ research_phase: z.unknown().optional(), research_goal: z.unknown().optional(), research_node: z.unknown().optional(), + research_finding: z.unknown().optional(), research_group: z.unknown().optional(), research_pack: z.unknown().optional(), research_analysis: z.unknown().optional(), diff --git a/apps/presentation/dashboard/src/views/dashboard-page.tsx b/apps/presentation/dashboard/src/views/dashboard-page.tsx index bc4eeb3205..3b28368563 100644 --- a/apps/presentation/dashboard/src/views/dashboard-page.tsx +++ b/apps/presentation/dashboard/src/views/dashboard-page.tsx @@ -3427,7 +3427,7 @@ export function DashboardPage() { workAgent: "statusUrl" in current && (!current.statusUrl || current.statusUrl === url) ? current.workAgent : undefined, // Node/pack ids are source-local even when the Goal ids coincide. // Back restores the original source's URL and its own selection. - ...(runtimeSourceChanged ? {research_lens: undefined, research_phase: undefined, research_goal: undefined, research_node: undefined, + ...(runtimeSourceChanged ? {research_lens: undefined, research_phase: undefined, research_goal: undefined, research_node: undefined, research_finding: undefined, research_group: undefined, research_analysis: undefined, research_analysis_goal: undefined, research_pack: undefined} : {}), }; diff --git a/docs/development/design.md b/docs/development/design.md index cfeea2e8cc..5972a3504c 100644 --- a/docs/development/design.md +++ b/docs/development/design.md @@ -187,6 +187,16 @@ Saved findings lead with readable observations, interpretations and decisions. Put references, applicability, revisions and full original text behind one expansion. Clamp repeated titles only in the selection list, never the selected finding's full content. Do not invent short titles or infer findings from prose. +A selected question is a focused document, not another full history stacked below +the chart. Show one finding at a time with its declared status and full text; +keep all findings selectable and failed or tentative counts visible. Preserve +the exact finding on reload and Back. Offer the whole recorded history in place +and through the existing return action, without letting it bury the chosen text. + +选中问题后聚焦阅读一条结论,完整正文与记录状态保留;全部结论可直接切换,反驳和 +待检查计数仍可见。刷新与返回保留所选结论,全景可原位展开或通过原入口返回, +不再把整张图和全部折叠标题堆在所选正文之前。 + Reading a citation opens only the requested original, preserving the explicit open or closed state of the full analysis and returning to the exact citation. diff --git a/examples/personal-workspace-browser-smoke.mjs b/examples/personal-workspace-browser-smoke.mjs index fd6aca15f8..b478158fa5 100644 --- a/examples/personal-workspace-browser-smoke.mjs +++ b/examples/personal-workspace-browser-smoke.mjs @@ -71,6 +71,7 @@ import { managedGoalResultsScenario } from "./personal-workspace-browser/managed import { researchResultsScenario } from "./personal-workspace-browser/research-results.mjs"; import { researchModeScenario } from "./personal-workspace-browser/research-mode.mjs"; import { researchHistoryScenario } from "./personal-workspace-browser/research-history.mjs"; +import { researchFindingReaderScenario } from "./personal-workspace-browser/research-finding-reader.mjs"; import { researchMeasurementsScenario } from "./personal-workspace-browser/research-measurements.mjs"; import { loopxModeScenario } from "./personal-workspace-browser/loopx-mode.mjs"; import { progressiveLoadingScenario } from "./personal-workspace-browser/progressive-loading.mjs"; @@ -125,6 +126,7 @@ scenarioCatalog.push(attentionUserActionScenario); scenarioCatalog.push(researchResultsScenario); scenarioCatalog.push(researchHistoryScenario); scenarioCatalog.push(researchMeasurementsScenario); +scenarioCatalog.push(researchFindingReaderScenario); scenarioCatalog.push(prReviewAgentOrderScenario); scenarioCatalog.push(taskInspectorReturnScenario); scenarioCatalog.push(replanCadenceScenario); diff --git a/examples/personal-workspace-browser/evidence/research-finding-reader/README.md b/examples/personal-workspace-browser/evidence/research-finding-reader/README.md new file mode 100644 index 0000000000..966acbbf30 --- /dev/null +++ b/examples/personal-workspace-browser/evidence/research-finding-reader/README.md @@ -0,0 +1,26 @@ +# Focused finding reader + +Synthetic research data rendered by the packaged UI and the production history +HTTP/SQLite owner; no model, solver or live Goal is involved. + +Before: `01f61ee9f3b993bfafc11419ea1842e722906957`. +After UI digest (ordered TSX, CSS, router, dashboard source paths plus bytes): +`f958492e7cd44d86fb39f416973109588aa65fe42e248854bf077d6ce5fc5fa4`. +Fixture SHA-256: `2972f2b28582a5ee990f439cde19841756c3d4fa97733dbbcd6919195ad0ffc2`. + +The same 24 events contain 20 long findings, three refuted and four tentative, +a blocked source and a single-finding case. The old selected question presents +20 collapsed document headings after the full timeline. The new reader starts +with one complete finding; all 20 remain directly selectable. The negative and +tentative counts stay visible. Returning restores the whole recorded history. + +Desktop captures are 1440 × 900; narrow captures are 390 × 900. First-viewport +images retain the whole workspace frame. Source captures inspect the same +expanded original on both widths, with complete identities and normal reading +text. These images qualify presentation over disposable synthetic state, not +scientific effectiveness, model interpretation or an installed App. + +Run the `research-finding-reader` packaged browser scenario for exact selection, +reload/Back, complete original, unknown-link recovery, keyboard and effect-free +readback. The existing research-history, research-measurements and runtime-source +scenarios retain history, values and source-isolation coverage. diff --git a/examples/personal-workspace-browser/evidence/research-finding-reader/after-desktop.png b/examples/personal-workspace-browser/evidence/research-finding-reader/after-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..25ff1cf55b5495eec1bc321702a3cfdbb128a356 GIT binary patch literal 123514 zcmb?@WmMH$*RLWV-AGC|NS8E7mnez|NK2?R(kTtnNP`F{7&Ow|NQcth(jg7rx%Hgq zx#Jyoyr1s*;4$~!|F!0t^H*z!Xs9b-V~}H9xpD{-SRnGy0(`Qzs_Hyq$po zoMwlguXM_TUsPJDU;dJo1^b0g*Y|f{8v@W%B5_~f;b%UcwM{V{UIuznWjlv-^|b>b zVVZMjjPx=opBdI32D6-1Ba*^+2B}>TPt%&jYwQ_uIj<2qi8l^y*HV2PI^?-RpCtA=oF>WR*=sF0EBvh$Gu8`39FHi1y6=G+iG+e-OUK}v zGkDePGP^zh*QOGHy$&f5cRPu3@yX Oly!ABGEOzR4@ zu)`)yu2Jg37B-k{X&GyvJkkLg@vnZlZWcLPm>CUEm8LGSg=8j1)&Y3t6{a;>K866> zXy0bmTNX0W@VwunR147EtMYE1`BREGcHmG@e}vI(c17|N1`h6C3(Qb!N6~abw?Gg< z?qr8U_lzZbz#`(FhWYTmjo^z>pP5#|`+zus%MQ`LeqC(dN5yvIY QzPC_e3B(VR=lg8$&y!0V(ny##fRdSC~5 zf-Ie^fYjqz{2jeT0Y}a!RV~d=E45;IX9luWlVUs&!c%HjHV?rsn6^EkeEpenm~kZj ze)#nAqd_u~>hT<8KjlFQ=;wv0m?~(c )OgsTYa?&;bZ*7h^>d&;2D3R? YTm|U8!;cj-5a5Ix2m$jWtT1@ zd?NGKu_Wx Jqcv9_jQ`nZ~Cu(?dN>!2dl*o!KZaBHXPdE~ _P|T}2oqg{yjm>#!L7)Z12e z(lj>HHEp|s`(3u(@Q2#JdlH+ky0W;iMWbt=?v8#uZz;8!__4Z_I-DLzKI3(;Isla_ zjRu{j8>mJQ7MXFtbs~c}OQIRd+x9P}Ysem7_l4Kt=Z~|#R-IqPZNx_&P(tzEY`Vr( z-dRCbipO#!|7Md|dnq&BQeg)_(4*W`(0zWTvIIRZz5aAGcJF+BzDH=rkx
3yYF=Cmq zj^*C4Kl(t=KZ*=Kg!FMpnG*ZP5|-H9p})j!3l1_%`gzX7*A%5lX5BKYG?XA1SIW)j zPVA3p|IQl?b*i?S5S#~IYkfn!D1ldcL#m!{4hSKP(LA6X@z2NAOXQ1xc?Vnr{UOrR z^gtp`I^uPy5fyc|RNogmSE5@wr63g@7UByzZB3rQYHQ~wDTw9J^AZwp8Ps_IucvHZ z#Jf#H6f#wsJy!hGeI?DAV}y?5utA21%>0{=j}M$#`u4= ^q?687q6%7$nRGOH$XXNTxecZCCsovI3;dH{+N*a(TPcR5D# z97CD@N)*Al^6Mn1cjQRo@uJ(`a#E#ydAa_>TBf1WVTEJF5PN?tC5d<3Wx?$JYcSfj zCd&Kl)kI9TA3`U@AZDYvaSpwvH|wdb5i {=J~}C zrVS2#3#odluu(vgR-Voqj>pANA!tenS?w8ZiGOSw69^!^->m}v+OGF}5f&h>*j$tu zmWcf#+Wi3YbC9)ejo4n o+gt5@pwX&XNuW0;8d+ ;(kX0#2V9;JYA( *OvXwXeQnD?a*3Ls1ae2NApVDe$lx)zIag418LpxIqi{e47X zjQ17;nOa1I2rna^55%*{ZGcfEtoIjznNjnZscL9Mootx^&OIKydi5$lp|7tmwdVnT z{dJhmo~NZrInB$!0Nj?|JW@S|PV?6DFli~dn~sA_>h4E_dWmOdjjvFifB!^$pZ7r` zXx*_w>|&<9sbnvK&QPq66euLm$-Y;9W6xQCs@*LW1N@rqB9Tl9%lbACUpAe*3zZT0 zpz<-R)3wzX;+P2~@M+;VCUaSc@t7z9;E?q(7K%1){=(#E&+l=(1D=!cSKL3loY>^} zJmBK_44PDV>aU8V@gA+%J =G$q8uMdLmV^*SyZs!)RU>i-Lz@_KJkLJ1)~94M_N4y2RFstN>`X2VE17&MKDl& zLCj4|l5WCrh3XGG`Ow_(evB76)UO0(QP#S8pOZ%=K3gSW3(5$#x@Jj-0ucgOtbx(S zL^cKjMB*>+gl$0$$GA^R$?Pp(a7>tb3v-^|()vOw6SH*6IWQe|E&p*zn|=7JBz{YR z;ttTH(Gp)4fM(cWBnhewe56{?H~<7w^IK?umhi`c2u{2v8g;o3E%*5N*w9$+#|z8@ zwt+tXwT`QIP9?@~Q82WHW`%JQl;G1RKF@iO7gdj49x`^K(8PNp$MKQ&t~$77dLJRs zA(z&6uiW~Hx)J)W yV?3F+Wn@qiHZlF5y6bx6k{m19o*5Vfpist^Gd9_C_j6 zFR@p%AjPPd0`8iM@GH3hX-p?SN%}TX9tBRlgB#}EX|J @ z@PeQ+$2mC&$%4sSs657y-vL;*IaZQGRwsP| N=0 zaiKX4ft_X~K~*FziU8nQa)tEZ$9;#71^xgQrEnq0dQ8Qj&_IU=pOAxqb=*HKk(tP| zMZezfN-`SP8~deikKZ-9f|efU9?62Yk#G~BI61#XKPcczZCCA%$67I%<50)gH8P|M zpQqX0?saYem0;!eb{|+rFmxA*{LT*6?wCapZ{YKkenMkGD>e%bBK&3q(q^ygosK>b zk1d P_!e6236g!y3a+@*fpYMfftx4*NAz zP8YDzb;D9csYkQPJk!JDwQ#cyoHFa*q3kwmOO$g7XS|CtGBT22Vn3~2T=iyvX>wev zSj~i(6`Qm80FZIzw5?hQIe{4!UU{|Iopg{Q5;z|7{-F~xV$Fv3L!U`bxqs$f(IwK9 zbd$gh!EOl~T6pE}LXfHXZ|q8}t3NH|=w@ZCp1;4t9_EV6PENY8*vRL9Q(5@T!J$f= zGIXcR^}&q)S6C}E)!g )QrXn5hQF2!iurPypJY2N{OjumNnEAZ!XJ zU=)QLuzv`kCJsJ7RDQW}9IPO)t%wHjWGa#Wt{U3z1}y*xZ8%Sw{Wwiu5u+XNrfP*@ z<13IIF%}}gw7MI^& uDk{zkznl_;*cQ4tL0fZ8I2K z_&PzUvFpuaF$2kC2!wqwd!ZPB&eZ^<0E=LyJ88%syMk2kg*Nz$3gP6$cz6hO3>})D z6DX=ZJOaZ6cqD+v(!DQFfOf<@BzQ4V*27?U1n%VJZaX!cA92r9e)~X(e*rUWliQrE zjLmX&b%lq>hjEk*)d -;z) zBV)$KqLMZKcaI)q;8V)T(pGE<&vDfr+=stp zmje-kG%&Mn>6Rtt!NiwRP=urg!Ie{)danz8m$?8q!Nnh8aGX1VPzmr58EoC)JC}1o z)bq_L$ieh5LGSQ@?UWE1iR SkO10UKxo25)gJsNJ&@YuR6(^LLieZX>r(k +k@0 z#=&|Z13)aOA{YF^JeZM`p<+QXC-6M9PPV3;H{PS?wft4gWyEeF0(2PC!%`_7(7V7U z*Zuk|;4Px^AhWd4t($Mjs~pE7O~b;H3pp)#iCd7P15#vnj4uJZ8xJZ6(y|7FB1mK4 z7^uAhTPgYy%mP(_ZGNcO2y;eyu)>h51xFMYOoCj9q5y*0hhtG@rF$rICVWW^=?=vx znyX`cqHgZ)qWcCA(?MkSAol@!4GEY2!O@YV$1!)Z3T!wSw?5hnPPOSIG7^<|$V7YK zL=1t;nPgnV=aX(+8J7Xhf`e4wx(wc2A;dMb;GA?~Jq=biu9W!v5o+2O38jLw6t}O* zxl8O(IL#~arWr)*hoIoUD 2TB6#ZLE#PHnQ1?r#GAR4%y7gfKf^vgn)}sZ9)qOQQw$7@T z>#7Vocc3cAc#N9-@1ygqvWqVS`(3j7eGyD(z7$n|skk1JhmOh_Y{-t&^7bnf}vr z?QTL#l%@6Z@_GmkfMyPkP8%5da3FL64Zu_Oq>GEH#B=0QRg7I;UTPgHK}Euhb35Ev zd(Hngw8D2@ss^7vN)R$K_yTT6TUG(oi*MXHUyInnWP~#uScjR=8IZzlo`cLWGKx_+ zB& %+snYffX;4qcON?A^SZm}A BaYK5AU gj;p|#pEFcoY zayB215EaOHO~KR4TKNH?;L_(K*3f6onj+ws*=hIQhh!u;Ko9fv#=cM>fv7<<23gbq zPM_@iKzY~ExtZm7=IldBxGqNzIxzHpf$I&4;nVTw1#0PHNr@VR*WI7!4MW+~fxYBU z9NOB=2Yy>Y1W0i3C<^?nPpS@nt&dQrkcH9#=E!A+REDs}ap8nN{XhDJuv!hYN^Kdj z&xtQpvy#Dhm6VippYMa=2BqT;&w+?T{c0Jde(fJ|g4NRPu)8=}>rTSM_?i`X$T++= z2nztd%;5~Kay9l6&j+rE%6dIxBK?C@%4 q=$A>XnoR#` z;&`}{jRf;ai?GxK^tKf|FMmFmyafAryu?sq3Iu1ESaKkCcck9l2NxoA(5Mw}au?nc zJXk>xqkwH;UJ%m$TU|0pK`u@qtp7=x%VuX;9{zJm{y$~ap?my;L}Y;%tU$kpCv1iT z@R*J*goG=-JPbIsPT!Tk8TmiYIUpq^)c~yq=E I 6qN=L!Jad95 z2qA-_q4@XzA}jo*3~OXm)DLPYKL`d;2=2>}1S?xmLR8 o~?S!!f&TS%8C0IKTfTFz+ z0fq!bn9sDMAA&f9``}g-n}F$pFyIgEMejkN0AQD-aSPhM5a1n9A#Onnoofo% Q;R*4o5VxizT!l47PR!pY>2>0#; zXqus0hL!QcFq;lRKExBapQ9d*$mHWZ2!#C1L^TLiCxBSNcXp)WgWldjh72(&YA*vA zV}zDv5Lcpj*8-3jf(tB|xoj{=n9}PZZ{3@~MP1bfFm%ir7!J%S)o8i^VzchXfu{gI zoFUo-|H}a`cJQRb`xP>JMK{D*6I1=YUJAkpD_a>sf5i0mF-td$WTk)E0~$UCKE5y> zl7 Nt_Mp%5aJ(7CG2B2{?R=3t*mQU2E{wV_I0m15qTLlhm zQ*oSV8`HHZ2JWu|A7=}JUd4pkxd0tm%y}y{nixWC-AwA{IBy`b2kVoi`2dnO7<`9~ zkUiwHnHIyLs%n6QnmgD-2RBPoASYFgPT8oRhRr;P-1P5J5djbjj(iT;zB(5o0koD> z=8u*X>@q%l%M1FyNqY_SPcX&<2e@E18dtW-j_N9%K>a?z6-Bk2g>VA2uA-(sD6$hZ z@JE)&Z`rT^$OBVnJm%_sIUoXRRCEnJDMGgrWboaJp-53tP~OejCZSPUf8KxvG^Z46 z?b=5Z0#D44Dple49G3eJ %!; zI|&`al{?R31yYV+1Ut9+4_|7e^BVxy`I?D^Q|GvLzw4J#!b+-aq)fwKv+#{0SfWsU z1(h^A5CG7<*9YeSk?fJ9O4KD}Qbp@rL={sWY6qC>1 ^dl_dlpUu5sCgrv?eG1%qN0 z<=7o$H(V+)7T83n(O`c4w-Z5BslAKb8yfHX4Zt!DGml|XBR{K#85YX{E!=bgc$@Go z@Lax@2YS79@ 0092a1kJih2{l2G zhAEfA-PZ*ipJPP!7Gio0z7Hcyeo$!G2toovXNPMdS#?P*z!GA_XL<-_M1@`VOx2-5 z2&8k6Yb57@a-QaJ4?rLyJ*KV-V|qc{JpA1rEbmk(7DObcA!>8RHU1O|W4Z6`cKiz% zN+1p@Tr1AukrzD%6};0Hpw@;d;Agqza=L3esC;qVQkrIApGw!j$NBW|bNq?Q_X}`m z0fZxti2j3NeT?|~?~7zSGf=V)524N=<*h{oup$63l;&3#{ahJ O&G18_{=O|+tye@!az zEKXPK#uGqRoAsnGp%oma%Essmb$e}aiY#m@Zn%mprUr6a8-i!9MoNMRp=e(^GS0_( zov!7y?Lk&g(oAy83a&?~UazNEB?nUdMKh-t& mIvMogm@^RD0otRAHO(`1 zp4h^3StKJn$)Gu@sBw7f9f2(~_i5!-q6?tPg$q{A RV6h2F zpl%^gb!@1oahH#&VP*ZCEqpxZE9(C|NHh*Opjc*qZ98mj?DhP#Pzw*LIFg(O{L}AW zt*6Ehtx|cTYze-diVjrr-+ds}1N3bKn0c<{af5I}MZ0jO8T%#^@u<4$R9ljQCQZ6l zpR9bQh>GNI;9t;zR8zuiR09@e#UyeSgHeJpos@ee08S!RtRMQIq`Oh2KGJt(EJnsD z9RLWn$2L!9Ia)}ID;&891rSX%<9YO?G#zT!6G9wjuZblPye#$Zx;+U~cL{{Ky~>M- z@t1)<@?EpV3P#~4Y5cJGu$>QbJp9(NuI15pl!@oEKnO&^APR0ta%MS)H54)F*AV6^ zkmrY#ZTX-)?ez)j$%l|7_IRXNk6a&Dxa9VZ9Qz((ddyqCy5z>9MIxO>BXr`r=?x}Z zL~EF{C9}L6cUI1=M}1_du28C*^`mb|yA!{Gc#$k*L$!RviHPY2()DGLT5FiOZ747~ z-hx1~ys*%$kBA0c1ZevmvYJ(J8;L2OD+pbn@THJqiJjjp2{DCfu;@cN(TG85+S$PZ zy$jSvW(hfd$G0ZL2*|sLJrQ&1RrRgnKBqUtg`j1w^}oBuXwymwBSLja*z3GvDmsG1 z_qSiJS>-c=dOah^+I4F+Rj`+l8#lzV>XvOF@}0uh{rr*Zv_NU+7-41usbnP)r1s?q zdqf~NgwISqT4VBo!U{RNk?+CstkKoCp&~suLDQk}-qjEOs9#%Eq9PdgdExOOC1vFM zTuj2Yun#W~VbfN%9V$2?h +=vJ)vE`RR?>SUKaV2m$~ zXK~Lwn(B+ YE;@kbswX@mUjqxCgS!>b~g L%4}R-X|)9byd_8a2&WPB@jHG=C65_%M1gH`8Pir z)Y23jzC6WO *_U6c- B4NOB!j6 zby<_v!NrV?`)-v{*9wb5PJnl4$aB|&-Vw=QREf10DS1h%i|@V%mWku+fI>v}{Q`aQ zuBRLLERXUj%NPY$Ao4aFFGR<~+fzYMqh57yz!-5wNsdfAg|zuVdLCueSec5%1<(89 z7m03VXa~6s)m1us<5avYadng%lEwr&&Ctbyc@m_*Hx>gkW)uo(YR#6%n9Fw|KNy{H zahrToh(;-Boh6v7o48gH0r=_;g4*#BcjYHn7$t5avaH^~DPN3ia5vQ*R=Qwyu%&f& zyga;aXjZGO++Zaz7L{-P`|_fU$QZ{WB!_&<9`Yq?`wCf&o7tg*oEm)i)=`4FPkK2$ z$)%}oAhF;KV<#(;3#Z>CfBFEGf1ravxT66eAs)`R1g_tsEvW}-&eQKs &OeM=ve`n^7wK0w;|(-5&5X4;niB{s<^s zd^|4KS#AQZZeDFQNEEah2iRfYy7UITGhI$T8{j(e&%deYT`MInFNu0>{j%>k*8~z* ztK@pYl}=ljp;+=v-j(qX9-vt_46sMn!ort+8c@7!T$sHpUvbB=jL<~z-4nQ@ik4sk zZvyUKF0HU-W4>im1TX>ZvKL9jRH~9cfoydfoJ++Kc}Vhoxmi*N)3EHBVK%aRqR8ca z7nF!*PSwP-maBbfqCuZcm}h;C-)7qp3d>Yg0e~GfN~J`n>_Y-It59zSX_i*gcURJK z&7#0n%68#ncZ#4@rd4JygOiba)3PSgwXfyC{j?Z-*&_tatG3c+uFrQ5t=P0jF*cb3 z`^f^mOb(hc!LhjQY=iTRXHaVDh#ZJibW5ImKs&rZM>MNM#oHr418x$ DQY^lm zmP9l}kZP%F!FpZl4>M^Yh(hOXV0-w !tNbUBKHe5}M`URJChsZ2W-%i=z?Xeil zMjwfEm_KZE1p!IzQO>(y%yK`-i0u6~9hjJ?#LRKJ3?SeXCNYkg&|U}S@bSBOryY&r zXA3tvm8{D74nBXLZz7muAdvhP%-VnTR>Emml(d}O@#0!W057%3J#@=T+t=a6DkTAj zz9P%1qXB~Wc8#H88dL`En*u{yS(?I2KTkMSNnZ-W5Oh4&?6cd5K7^5S!= N<4C!#Aej+lkr;T`!3{Zis%0y4E^-;c zwuqZ5%{q`jW{+XftKhEcgefGA*&IM$p_ DQzJ)==~ux=AeFyIu8>AEom69^*uK5uSOd+d>?J!Ng%%vF9)m3MKcSu$ zHg0 ^lGs?U{al_rBPh~g%)sh8 zCesh#ENlJaweID1R}jbmz$;|H6C8{hOd|1V%1QkXcIkB!d&@xL7m2*{NDqNi?D|au z(`7iUN+~uRy47=V*Y(7+fbd(d@7}y^@6X9em!&Y qB*=I$o_quC4r1$O>tG9YblpyUFNRr~x*Xp8?_$3%_#v49QA zqOJb~$l_)lQSah0Ctpy$===VV?ur%v_BG`Y)B%s-AkKccm!~uM*837sc8H5WfM-;V zr+KI=3-uO=Eh9Eubzv@=e?ShEMaYY7V68+0PSl~WrmhmT$?89vZ b{;=KKMZ`EW-qu*Rf~;2(_@S&!dd!^fgsm3S~2ScaenR4-W>uOnrED z1HpKMr6tZb_#XH`15T`0qyQRl4A=MW(NR@%Sqlc1F70)$C4m?GsTO^04un|e6hA*x z(tEH^1rC?IDPY46hz37_EAj5SLPdIaA`uz(Qi2Uc920^^eW}CtYV;OIud;>>T_y~O z`=7u~Cjr7XfeiLtxXV@Rv`MZt4}|$QC=%{gSGxq#7 oqA)*fkX+JQY#8bWWpN1wrM?sG> zsQAtk?!_=?-(%y~kKT(8VD9BYO>4%pZL(wp+kIVCHLKEgPR9K8g!|LcLL)8HerQqf z44f$alW8^7OUDnS;Q2YlK-4F8@CS0T|y;;~CmS)@?fcX(xGUg_)1K ^y&!Ei&A< zGpv)L!In=hvVkRwSTM{E?^iIVse_bcCB(e7hVMi&J(Z(QvAUwEWi}usihWV+DBd *5KY0ku7&+i7lk@7!=|7dxxi&@k8cYsQhuiRXhuh z5fA?5ZLn2AwIF-^c630tDjZq5Myeb~>xv8pj{)1>x82=cGRTLbsD#kkCL;H?9d#y& zI&+p6fOD9;ZFU7blqbhiK&uPa`rb;~NGJkmcY~;+8bfBCxb|` z$@sOuK6`lZa?!gaT?IspTO%WP5#TTYh}*But~clVpCUeTG5m?M$r!`+I#NFC{hs{< zMZo}-*}_L+=;#bs6F<@btyej&rRr{0&Ji*yFW&ylauMB_KdU66mO!iT6RoaVBc6p6 zPg=&fhsgM-KBCilpX54hzs96(cSth{isZzMMD@LDCoA_{G#$T*!S~Ua%R-E{Ta&ko zZ{ANvIAcs70&TPri~20p;NxS?NKe4E5F>r}3*i?){`eel6AdArjRaQXMD|7I%~Vja zdCbyL#?eyG;c98BYxbnYB@KHTroBu&q=o#^th}2MDpM|=0SrvD>;p)<44u074x9L? z9{`9?e%~=A_>N=evZOVD*$7%F;#(i!Vza9`je1fM!MpCBkOOY;Pz L>bkJK zkclGoyD=f<(kkQ8TR|cvUXz+q}|1a(dWkD_Z0QG6G~~8&DvMi3rGmI;65Lj~Njg zi3545_`=fVIZ(iHH^=<%5%w3t1!}p(4{Sg?<3HbQ5BNYP7rhB%BhNY!MQc)aOR@2_ zaK`54YE~rTdk4ISSN!*qAf_6OPj6u~rG;YN4wnGu78Sl_r$ZEB?knQLB;Su-D<|BN z;@5nEXD@+>>ih;;wQDTzQ?6iD$XdKynL&q$@W8pXpw#0SmwY5{H!sUO29gHCK<32J z53eDD$U{$x831nx0&I TZ8_5~!1*+)E1tPgu+YhR>bKRTxXys$mhxP|eICUxvoR%xGV`tg z1hs~gGYB$AUVzvJ$2E8RuT6wckx?J6{xzy>Fx>QR5gEqlpjqZ=e{7z9ExAeGRzuc) zx7Cwg7z)C_L4Ta_xXo)lDg5G>A@gj52D}n00cxNY+&xK6GtwT>BhQg~XPc6148sF) zZTc!w5Lq$8Q-=PP_52*P-~%0_F%Y2(VPUPW<=&osg@V~{w_)=z6Nf0geA+GSdAsy1 zc_;Cqt%e5PH_SHXN2jo_A~}n}Uh|c=-m|xqG(#84vNA>3bQai~=uA73yDxhhkZTOc zrT1$m;i5-0mW63r31OBGDQ=SD`FBOi-2n42!`)F=)d4;5Y37NvItaW(Z_g2A8Y2h! z-p|aFo#*jJr}r48<53qyS*mPd9d8Hm%W^FA#x3%V{>Tnv01q`uEI0H8d(W0kfxaWu z;(8e|w*!_Vp#$QMCL9~JYI(cbM5NyBce#8-5w49pPR{BHFCk0UB_R6xrb!*rU+FY6 z5Jd5SDGS**#}Kf)qr`2|pV7{l1YaP)YKnBXi|h_Q`@j}e^X>NFVic59|4AmhJJz}I zB{n$^LwZhT8?Q}}HkZv5nJ7Se>M`K>j=0V1(2L`St@emc+_dba=f)@xPC)A_d~wN1 zBjyd!oA=U#>|Y5 B%G6dUMSkQ!vF3>()%o={ur3* z{}`CT=JB@Zl<_L*QqE{jn$W-QBpu552Pp3PX%JMXL4asE0{JszD;j}tOG((j-@KLS zyMsYVr|cSfkwHo&_3zhk$e`^m{?}im{a?Rk>%Z0?;v2oniM_U}cJ}u%F))h#gYV6^ zM{X}H#C8Y#lWq$3YzZU5UBMrkBH+OmqKoHPBPaIPovncQN (>WP5Pt{`p!mx_I9K_4aH= GzvUp@A_THA@=xTWg~`Li zV+(>}A=(HVHhumb{~Vq$d=`aAm5j147~y{X-(v{4Ie lRh`+qMsRkM3 FwqFbe zC!1Ihs7sp-$hdw}kQEsN*Bx=`%FK#nWkuIW@}J8C@Ji`ObZWCuA!k4_z olhS#Vq!%r`&^Mgp8K4v{t^8=YFWmmvQB^R;a7^kNjU$qjY@FANN3 zXzv7q%fpb(5BH;i>dZp(Qh^}Ni&ubeMSdqslUYYkPdBbqLg<3p>v#@6JG6JJ|JbVY zkLh?7Y#HDd)c;}aJ-~YI`> qZ 1{=%Nr%5*M!C#TeaE#@9!#(DTS$k|2P_r&!80QFX)4XV0qn?cUSc3Lfk#Hul_I} z!328rD9}&B`T-{ZT#O!b(Aq_T*gXG2v5wvZ*BPEThhoZ^FJ8s>1DL%Y{9RFQWoklC zhm;z%@ki{RZwCs-VIdcMAuU{$csy?KzzUFBfxT~1CiEnO5zORPoH`8EV-~)A5!~p` zQr8T7rA{ahsFMM3>FiZ!^ N;YY(qE6N>;PNm^M|ABv>UM@@8{$T)g`tC|pa^a25 z%>|$lZK#^pH=&y>JPK UsA zVg`>0G|@MPqnCSoLeyFFDKDPIca&2k_N0G3kyu2J;p}Sw;z7s10z$qd3ZSbSF#v_F zz!o1uU_4WC993o^KTg`wzH(p82~8PlFp3!_?uH4!y8u}DvS{`&LB6sIn%xVtK^!4k z{TRvh36DmfU3}hJJsjZnpW9}E>uLfep2ywlfDdmJUeQjl@tEUw`h(l&xHb`8#4rkd z$hQwIhQy}%*G7WYp@IvCUv`kNfrw@R53{$}DdMd!8jFdJY^kP??l{jShW5rUqW``p zvJ%_MeKq_m572b8+H~CqAc-05)~AId;XJC%qep9g94biD4XLC<@Q1kv8eY&E4q!T5 zXKbShCI#LrsC<9y&xivz%q#qYIuXbD+v+O&Bu 14foALcctNb z8`ufX+fd19U^x5We~1iJhzwR3=o0M>thjQ?9Eb}wfpbDKMa3wi;w&F>Nn1MNo?$?e zi3uwPwWhAPVDL)}fZPF}{_q~Fe^1FUugCz#^L4480a4)|F-g?oy@O|eu*sJ??%X-T z+Xo}3qjapBv>#s5(jyrN-_JXbvcc$!%-?G&y2Q@dZsnTjyS1Wl|D%Wh2@fRJ>V~p^ z135`#SmWQkg6H}_Ib~XCP$y#0OiM#!i@X9J>g3qi!G8l-&=TqFlcAB3k% MN_O?< v2u1WX z;RGK?>JuJuLxz&;vy>L<9hVi&?qPleCq3S4`3RwCc0?cJU%Cq$KtKrgIa|Y;vlb9x z2)jJsMd$<{p?Af6K^>3`^d-RHYypN5K?xzAppGLA60_a#=l`)KBrV8;=1vl+YX%sF z5B?581K)v|?Vw7hdtr?Fe+R8y+ugFVKv35ZK2=YD5BmA$#%@~1JT#5y#z7YCZ}TNI zE%CgnkHMLRnAiX^V13OIggYuKDijQMFBZ#CN(p?#htV6{+65+=s8nXM8Q6tykWj#K zm-t)mYI`(@hSk4+zXdf&) ~%xJ~dBrQ|)!oE;oAjrEbNr6@lQAs++l*h`)gDsdBs) z0KCq3@kGDO_GfIw=gT{;FG}!YC*4}lOT?|vH~F9>0vWgrnq weky>pIXH(b zOE{Qm(?1{6w{d#TP*WR_qzDurI%i}dR9&S0T*-R~R&eq3-5Il91)O^O%Lta6M+g?i z$t6!Y*K{>6*?orO0y^6)u+_Z$^=^S5ZbPSbP?5WIKRSZ;+3-V=#t}=d_|m9#6+tRf zZcp3c1SAurCxZggQflV6`yINsY)V8Ga>v*<<8)4#KG_Evw4C1F-?f3ZhvCI1#AqAW zy#pbtx%<{X9X5-F{NKG`nFT>W2!J|dc|!de@C+~&j@OHyhz}ouSvZ0DG-wT06pdIG zQ>$b1!9i^l&u>Fv%q8Ewyl!(-b91v-Go13SZ@(}OnyukDtRbsdHRc5f0l?-qJo1)Y z)qf@hVd&~w(UgRG@-fEs-f47mLF^)iGiR5shW`4A$w_{0zNUVSlKxFIT;RhN;r*AR zui<@yY`%;h_rQrMi4JO z%|Z@k_(6x#N-J10_2=#2X#6hD&TV`03BgO9+iUo zldb802&o;Yw;QF%6+sDS(7Pp10p7VvO9`;s0*tX3!)SCx(@?=JDC0f>mP 3x4!rd#1kP-uPcBFV6|U2g z0c8eQfT)YErD>r|tqy1*dU7v)HVyYU{Hmyj{O4)Hjt#GLJwu#zIK6VvHWkql)74jr z@MaSJ6sszsAYSKDJbd?0; qWV4(1(*vIt?>h5cN*u41yV%USqEtYl;ECf=I(|+B)fU`B<7tsa ^8oCYDrC*2gb1bqwhSNNerckl?#Z`r@KBUX> zc8n6+<2Whiw!FI9k*Rs1hB)eRDtM6yi+;04fzp24;b?~X{;)+-GGTXY4PYz14xWG3 z`rIC9h-QkUB?Zz>MT<5-*yDvu3;eRI`C{i(FCakFRWB(r(EDwc_;Cxu*5n_7h|5ly zqK2q1cvM`;be%^;ymi%drj7Bru9!ud;gx|6>d|4$A&)BF4lFlfrU=Y>vkKk>=&gn( zMoUIvg4#h!Z5-zncPJNK`cr2#s2UqmC$@DbMt|y-1k*O_0|yi@@8tJ|N22?1Q>`~L z;-*G<_!=nwL=M9-meO CibM*p=!1Uat(y4x7%rT6Ch>IrGTrBAggG`o?dL~q+q0|`leCQ!1>Tk&J#e3U zW#jsrJ&@-~^mIw+lgpWkIuZC$=+rpX)9@9db9ljZ1yXJyQuM=}_09zan{pJ83~bP) zF|XH+w{lQ^D=k;Ld{NK-$j#XV!C_|E1`P#{8QpA z#Ir^{Zy27>m(*6{RiUnorpwk2_Jcso_)L!7`I=+4!&^=*y>+7|3h{+uBL+gz#Fq1c zt>P-exrpGUtXAj7*t8-3OCBb{I0&5@kWW98nLK7x;OKz^Ph?OKIZjNodj0^>r@Fct zY$c^*la|`F-)Xfx6Slm36nNB*z19U5H7jV8W IPUoJX~n;!Dq(h=_Py zQwAco1-8=$G~!;rGXd}?ocghs 3K@l(G(J?Ig%10&Mnts&Kh !Qe z{i~ZW%}8!~OB*+;=WV4px$Vo0 zSkYiz#b&{Wmsp11=0HW*UejK2T01v)-NAwNf4UOG1~U0cvZT|!U!2|?C(_ZjcAcG? zo10TJqw%Z9`D}INBKq2!TQ}r%cipZ`-*7;;<2bw3R?{3X7eF3d{?dH_HNv@uGkq*C zL~o; 2S f8-xqB}3tLJucI5h00;V`kpU^9k6l zn9s4ffh$k(XZUs{7$$sffN~3+ieH*HFM3^1RL12tb*?Webi@BPj3g1!D}{blQyox< zd_@^L!F8_e0A_Zh%!c&V5rj6M(-DCR5SYQft x!44dXz&*g95*j%D0mLAxzFFfh3pS6{7XjwqBM@H3@CS1p}M^)Ha3OowJ z@SgKxU*&PRn->2znI+jk)|@}RjOl#M_ vB!2F2gui&RTz$dfi2e zfB(9^q0GYHx)Lo9StIdZG#CH$KS?G2Pwi1KB(LEHe+s@hzb{8tJd!c2J|#?3JKwFo z_1l%#mPg)7*F0WDHxzT^9E-kTBt)C@8Nzzucs2_=ey?I!a2?biG2uT)=q%pc*E?p* zF{Cimlc_EeZbU4Mh~yvmS~U(YtKSdZkZocAp!w>`%EHYMuBtxwhthR>>Pj?^>PJSN z5R76GJ=Iyl0#WG=eq2>U4kw3uRX#-p={%* `&3b8m7Y5`224%vY|}Xk?e1pRW5JxNY#-p{sWPuwQ~?8 z?bFx3VA9Xd8lisY5GN;oZytxkgAQ1hM{pTUN(f{uN*YQ(HRk>uJBUy9|FxXr|Bjmf zZ@)jXMiXk(E1`sU59An*yR&pdPGFYf9RqyPyHOXZu@V|z)O>H1@$NPoND2!-iM0lR z01($|bq@Eh?(tl%!P(zN5v0)2UpV((J;g(ig6uUMGTy9uG{*$REXK+T9iIs*DuVtB z 6rWrVEU$&cITG(IP_6@&spFUZszJ4<-2$O`IY&qpTi9DPV z@Px6~mE8v53_|ej@+Zf+YrXTL7@j{^towl}Z+L&hY)U;ETm!Ag5|L!OD&mxPt@U0( zL8=09Y;0`oA>D<~@QWt6tv^UOk*KD(0M{0bI7&FK9|-;NT2 (=(}hV&fVQKt^8;Ob;oYr)(EvWf746`An3bcM z gC;L8Rfjeu~dF%*6heD^FgRj+RDd9JDoaN7yZ zeRXw&I@M|Lw1M$vJU@%K3(J-gaP6{WT4Wd6PdqOgYR8g`-o)As!zVu0K%?Q46$q{+ z$~yx1mWU+rYu8~Kc(}Lp#)Mca)iNBIyN)c_bai^Yf86i?6=m7!g+}g6w-m-KwFk8? z5~eRNl@GfFKQRjeF6k+uGX%V+lYZ@LI9W${?(}>uEy^>oOcY4?gt +F71$G3ZE*_ab*WVl4~*a_!!Rzb(l4160&7bY<)LiywUs*qJJsl;p{;ceuF z`1f&FUZD;lU=|CSfmQYQry>p$J{R#-P=c{+wRdFieP(yG`XXe9bzmUe%lLW{E;}#o z66PYBFaAYst^+Ee %Kz93<{k1yDDs^zvOTFZlG1Mn$6X`fJ4lOOU9=TLn0wD)kq2R34rvw#OI1h; z<$caM!GxAz*ID7}Q%#=(#ZYLZ )C}}?#0?O!_7O12IJR1zy z)9Zffw=;Q8hSZ GdcjN}%kR0#5e7cdkb9b|wVy1{rp{PRUDz2-tL<1n1ZG7D zk}CdqOws?^P|=HasLYOkf$|7#cmgpN;)W3!Gv@}IyUQh!*BFAo2cL2`c2B-76(PlU zd TRDClE;f4OhOw)&sXsRnTQiADoZVJVx) z;rtTn*tkBm!!KMhtSF5Hn6B@>^-~U~(OToqp}OFAyZ8@Jy1%Q4$nr|pWGdqAEw$5T z)Qzg&nfZ^1=qB1zaL9)1Ld2F1eu0p*fDN#`c}34h>rI _RYKIN$lJtDqcd Q z%#cG})CB81kC>x_zsRw}58b=M&r7{~%4oAVxvnn-A?gw1;UTqL l2=q z`r0q**#xNWwEMlTCs;A3yXOU_ehJ9hl$#2)qj_6gW9v&{ZB%fX zU$JgiwDyU i(urGYin+=v!qPnNAso!wqGW#@hks`BSvZxWujwBv} zu@9zJXI;+r+!vzhVvlVUv#ZdKimUFsc5=OPx;mwn{5{f5TEA(ygS0vY>%To>Oi_NL zb)$ShYRKVILYNhI=1{iex|nC0NlE>Ot%_`@-i|yV{J%O#TaAmZ=eWm7Q>4p_?Rseq ze$u7ut4PeXvIl`)=GbUolrgmHl^c*8-ylon Q_(FgGu|KTwDAx6@L1{df=~i^YeL<7 z)%EH_RGm&9y6*aW8s7VC77pYp^Fd4*uOtknip0(eaBX8MYx7(A?s}dY7(czlQERFO z6*2Ly{vYU?KYiW=__{_r)!I{~quxB2*Z`vKZ_#p9CJ$`DU5o%<9>CYwTI!YJq9+YC zwJ>e5*zxl_f1-`|eIb;gF62M0wx{>0+)QJ_c)WH|(EXs0K8>vR1eN=#9k{+5EH*Nd z97^0mitT?Y3`>^9Xl)l9k0 K^5iNusv|&3yLmeTKs?!`o<_1+KgsHy-pq)N(%R zA!~M0Kz!9uQJN}^-3}5X$rT;(#z57pkLJ;azO3|9ymy3IFfY$MTUYQ`rpMJa399RN z(dcWja>_tm4Ft8!K7DN&e{iBy_f%Ez-U`Q^H0w{IQtLD9b+R98W||iXJM4mHLmT!D zd`F(Yo_^tH4%36p&K_;nLZ2*D>|%{-2Jb3}`fo5jW1ki*+PWx2UwW29J`75%`Djs7 zbJO^-UHgL*MTLD*yJHvGY4})-?ww r%Qkmc#L31-DmGmTYFo!f1>5$I zU)=UVPt#7{aNXal7xzS@?AP$EPS&$7TX{~BCOY4CoYVQ-6TEfGMV;crbKh6MxndS0 z_RRr5 #UzWzC&DA38l7#TBdzS;D|tq*?8Xy)b_|+!sS&7scX6-;bH~0_D5< zTrwHOd #u4;LtDLF#WDrTLac84$e8iyP)@vD4hrHnkI3jxW}eA=5;* 1|XHtJ! z$Aic~?loC5iJwa_3_p;tq&Lv|^dl {F9T&YWcdoaMck8>lA6u!0xd!hI4-fN*g|VKS*1P;*jO|3y8X-By zk_}lx*J=%#*<;_wb=2?izr12}O4%hpi7hAv+dSfg8eEo9tPPU=v@%Uy(@~SB?i#iv z3tsXtWH4&hX{7rO<(4lSQG_>-dttWR$J%$OoxH0_rd%e4?Xrc{;G11e x{zB9zTepbv zJ?NKF^hq0yeNlgFBeQU_d*9N#TA?NV5#wm9&en3J$fLH$C#F2lZ3K4s(AqF$B%r5= zT{t40!hR@xo!;VbfX}-4tEZ=4NXT-YV`elj*3aNPZF%+vjrIQ6sQWqHyZQS|X{`A> zwx=un^PxF{tMXgDSbZ| b=%xrULSq)wak^^S_#rF9M+GmdsR%%Fy{1n}lIuCoImBwGn6sLsP zx4xm9n<)yC^gi%m@R-w=;nbnCopaMm3#x(ZpZAcsGUM`=o1#=1Z*r9l_$63{&Q?q$ znfQ22{ZQjPBlqBBbc uwoBT`?Z=7Q#G_=S%{N;pIeJ^kJ0lVMU6 zQV*KDEG2yUk)^!pH1-HtB+>bJ&L<_@Y7%R5Ag>)i^F6&w!e&L|$@L>5`JiH4OgThf zkL7czE8c~kO(#bya{Pt1bdK`U(jAEV6zVxpKBsZKY3zDdzHP5ydtZpy>j$Vhjn{ZN zqfE5dP`tp)+rU13{UqOf JNpcSRCHC%=xG}QH+6qV zqsVG*&LXeY?ayEA^E2x?+|kCn>!SZ9hE1UWLeUbaC~UD{5B8@Q;MjDM@O{-(q852l z%4SG#<&8!1v=iLC50QqK(Z}b7<*jKEp=duCX{BxYZsFlXuOV4EW9ELRcWQ1_v?Jy) ziB{27fkE?ag)H93s2}qh+K%lrZr}PUXCqm8n#MVHqUtGY#G{Uv4gL*RRGP1%an4iI zQjMSSmW}7{)19se&Wkt*%F5Fy*VJZ~icW#|W`QH-BGX2m##bG4y)7@aD4jK8JO1vO z*|r<;H|F##IhAGgzxgoyxWdJD_#K;Q>~EN_X2`> -yI1C_4?6g3Fn#NE!2-L(T@vrZMm}8)7R71Q=U2)Wa+)K z(M9>TPq?WgP1uN0YH-)22YmI_u6$p9(w>r Nom#wp 01B&imF?puXFOX%mPPt@AJG8VP!r5qrNLLk=et~I5RJ+%iBF cS#88Q=IV@bpZ5jHz3G%NFkEdu6FsYQ64Ha5vl#D|@x)n1Fynra#9 e*F` tZ2N85Lu&+LC3)8}qoQ#_imEu&HyAbIIcOiLC#wrqGPPYyi7q3+Gz z7T(Wcc@x_CB%spl!Y<`rOM5J7!#OkbTcQ&}UJFpuQJFEmm&eJ!=Ucs0cGBG~%Wd=q zYNnJQLA?jGI*<7rxhjwq@* zbkl7YoB&!Wtm*M(m+O5^|n<5 B(wCnLKE{Sj@;(c#8$Z4+xd|K1_z6Ed`4XC?nqq@%GxVnt{S~g@U3@Z z>x4pW-2>_m)0^J{%08$+mMc-4F;;wN)>SSOlzk`IvrX!e`NnrD+S<
zV>~OSP^06(tar&{bW`MjSHb9hmYFlPKnvEchQv~o@LY?LO76b4|6w0xnbF-F=C7(v zzD^r_6MmJoTjn}x%0=!%N%7t7@(mYY+6(}e%2YthPU&vK6Q|~vW@q hd{ zkUr(hzP1H}O{Bw|I(=(gy!dOLKCBYE{&Ua@Bg6G>RNcxml+75~S17vpjO2|R@7xyK z=qagH>$NVx*!WxN)azqQw+hTMF3D|jx+)-EfP`wr%Oco!o%?~k3X9;BJN5Vm-f_e6 zn^XM{E{M4Kgj!MfXc9Drmq(3rH+l9X`HNU-?thQoYZbLl{)g0&9wDX|uYouvw(8Nn zlgse2OK@{%-V9M=n%>*m^s=>y7*G3(X!yP2vSwS|9D0O1olh|1GsEU>k5JPXh+ZFT zwN#N7B<8;R?l!Y$1~;&lJ#f*yy?gh%mV$d;lNdZ%wYxG%ab0c=;@jH;-n!^oqa~k& z@ MnhGpG(HY zVv8*{#d2OR=kq-8ZD5wH7z-}(A5Np7A1#p*H7nkuEWanw)K7GEnxwJiYq7o8+KcbK zPLHW5%6Ho+Y0XbD6qNixiM0jAC`^7%4s7CJd@=u2c)tj*Pj%_{LWQTdEk5}T)qzQ~ z3^}QPv(?VSk9_9(dn=0#HphF$HaR(j3;2Wek{h2&+FY7YSV%Z7Z0ZcI=HS?%%V+SY z)ha)TJ2f}l9EL95lFal=%T?Uc13;2myk^9k^|Dp?l46GJ3wv_!J{MAC8HdoK yMN& z8oo#s>L-U$?ZfgtZF>1)U=lA6Z$B$yF3+TN#oA_tr`d#oBv(6|_+W>HOjc2bUX!x& ztC_jH68D9mD{&-(T9f)Icbx#wTb_IE7Rd`kZ{=*}NVHTB8e5l+R g&bc| fD(s}_~WWDKTDei0*j5zk{g28S7fUnxzii(2w zYZW86f7Q6dXRb@R4UIZ0sW`X)@som-a@M6MEIWPz JzX*T63zeLiI7VTf>;~^ZMN5dtJ=GVdsJ+-3?W1tJoAKpJz%v*LW5F*>-E Ro2}%dySA(i=yv %)M>d%Em>W4 zndhPzAFHd!nf9*x@j|kE6UjViQrc8NX>mJW!JuO2QBynC9Rua(F!xpvy0^m7=%6Dd zF1_cbvN^d+7w(nrI!r1}j1RiKg `D)g-^zDv|4Z-~RoL;Mq9Iof2i6 zG^~4}U=BeOaA+wB^gdg~=GUi$c-T0eA_nti*{=qdtW&@Np9o*N@bIbiKkZRm<0&Cl zejmp)`*I`<_ZSwbi7~l1!LGWyz+!z0lUw%>OgV!N9cFALD+#s22t4VG$$h^99j&Hu z7^P?RvPiT Z9v?Bx zY4ub+%Gk#3tGeCkl3S& (Uj#g>Jh~OXyLoP|Y$jB| zBLz;k`6GCwvU%k9mpPTv%y?G*n6hxWb;ZJ(M$M^|wJEPrKq|UsIlH}GPLU;}1Itq% z6#r6+Dmhqjq{>+(CgU^Fnq6`B)hasm9fobczMFA3y$)X7GT(ZIlCeMt#1~E)u(@NZ zJz^;rQ~Zn#w=xZ;UbOES-xL@-@J}Vh!Z&G_3B7qPSWg| JODBq`(&iV;+U8>jw`9zHMPK%dB_P4?p?wRdlCEtJ_k!P2a%@(iQlv<>U|TvsxZa zIO13#YoNtFV{~U`t@~8ez;s>3Ckb6Q)Cs0b@s*>Q52&wr1CTwWLOIQE+ln4tTIW9J zk6B_)-+gy|V8Y2GM^eUiDc_zy^C&$0jDW#jz|i$FrrHCW?vMmu@w_xSWPS2O&3S5X zi3Mx(ER7=@6h&j#Fq7XEd~%K6@zlkA!|IMN;~X4UtWu;|N)=Q?ZX|?An@4)O?wxK7 z6F=#CelbrkXB!wqZ5)Sy^ZA;98QENK{`Kf&+_qun&chZV1|x%2@;;m%|6&1Tduz7* z$jY%cI;pYqZ6@noH>*~cEIyZ1Cl;dj9g_WyvE;`GC-o@`F2762sox};J3I!0>f0iQ z`V2;?+DmM xFMqEwweGjYD`FJE z#@I}|lY(o5L+0+mkNhP~ej&aQvm*g3g+nHpOH>~9UdOLD?4NM{*mNl%f~VKCSFVHk zULDi697Pd-$fPq<6f7hfcfAWsbBNrb|BhG$Y-^Iv@v7eO@;=5Ns~m~vKJ8ik Hz^X6(MFJRPK7-s$K|F`Ql7UFii%$E#|B zgZt>DX6h2X4+O3Q4~@#3uKyg5kGad!V}==P_ZG)2+*#P7d{b#M;mX-{ZHnG!RfJw4 zgqXZ}wYEv?deOqOdG+F;Nr(EPx^cpa344%?v~6By#~39}Y%ODs#-#E=AJ=m6&kt QLTO9mo&$*-i+C|mRo%%5uCG#Ewm->B~w%1J->uvw=@%-BDErI z*>%wWy%#4~&wUtvc=Hy2&l`@r{@W>MCHKG8;O}#G3sh&~`NlL$VO+ct9hK3}NFQ*u zdW`S76LVIxL)pZ-Qv3C*gMkn*rrYX$6dl7*&V|Oqr{&OVq1!`XU8JsMUH&)}etQ3O zR)0}~iE?YyKK&PTG#@Y!Xyx%!zZ_qQ&g}ir8Q-m?n$L*lqN%2_;qI<$^kwh-j{8-% z1YD&XNezxAN4yl<(F}_z1K*Yzvxd924`QD|r*gp0fxU(Cnrao83ZFH_ln3vbr>R6K zhE(whsFqo&S{teC!{BK*SZ~VDN_Mq+uCq1?2=u4?XfU*W*UT%f9c-+$GAt7;R&>f_ zMQ1kQ*}<>77CM~=PJB?fS9)s2Pu6DArTfNV4kim)MRv`h8_a4)%?qtE*Oq0zcw#W} za2IpL@gaut8(2~x79N$xs+N+Xb}U59Y*$tvDQmOpM4=sTv^u|exPnCbjvWyXDX*m# zoV(QK)$8(nQweF0U@|c*)}GpU^U(EOr(;Il%cHbM><^jTYPG$iwo)RcKb#vgsObOb zFx^y%`hv(F&9Yu2$%;VjB8_+2yUiO_#Vt=2(%7eD@accqx{|kN+aVQ~zQUkBvm@h} z#Jn8?6=&i`>Dd+Gq>>hSQJ0Dodk!td$erV6wR>JF(NqrBx*kwviaQip*({j5-S-IZ z#@(ftN;SRLzl!9R&3*UP-GbCH$je-wdr0mk%a<@IZq9g*ubJxUDpw0cQYd1qcXo_q zILY@3ZWK;z-M_VJ{F;jqqqZ37W!0Pd!nti*q>BsrA$7q@@w~L4WR?DPw0gOu!*BYE z4f4;(%#R+(TF1&&+;89~BD&6Ws8BbGd^&IPAz$s+lKnQR2TiET*)Q%NeD8do4PqA= zmoLLMT9>c>!0RsFz5Pt{&i1KrwR*+L;rinGUZ%!QW-cv}WGPWKDQ!uO_9|Xsv$>5- z5384C|IzDK9`8jyiPubQnHBi<+>XZOm6!gGOu3T|yTm^sPP(*ZY{C|+`&o6l0zQpc z>l&tYW^!xlSEgBZrZqRI1Gy&pZu7
Y6%AD^QJ8mOAePYFnD~lI)g ax^ $LtKL3In&H2*eL2XXTyIHM_4Bh`VFtV`?Sfa^d(?HVzO?!&t~%mg z7tYIoKyb%ypf4wUp>TLUgCTOPPG-;5TRv|cm&0;9XnDgtdm^oOR6RNzs=xk{1>bD> zyU!9& 8H=DW(p}O ;Nf@l8P_Pl!%H)VX2C>sm>p{L(9K&kL{Gw&+Pd z*_6l58ON3V_V5vxi_YY26K*A=0v Ie%EQsZ%pC$g8?)-FtFkQ9wb`@G7Wkh7A3C zMVzTjWXZeF{ZNv1_Hh-^FVJ!kFP7HYUq0WO!D1oDrs1qa#in6s&B9o=iH*A3BztrH z?D^kv9nvLn#oL9o%~7h7Y}_YK>1!`a5{e)Lagu=3fjzp{nWTw-BuI4Rf(#QD4bg*K z=cILV{zFR4@)q?^>v2oNh_13|+?}hCIpi*3{+GV-?@C$x%MBM;_goO#JcUKj_-pdr znTya(Fs<(L@r}Y*3rt8IX=!)#Ns`2Bs!7m!fOElm!r2*h5yYa4V2NMo8DI@_0c#LE z()R7eXu}1s#PR+9T*QA_P;`m-V96I+A%AxPNXrN*2LN!4_#dIEz!dm);Sjnadmxn< z24lOg3!yqFfypk$5ak3rUWKjiQ6Mv2#5!;{tRVy^+}2=^0anJ@RDH}*vAXwmpavub zm {oBhrgXm4ZH1p6`I z8(%>ELcmi7;{>DOE6Og$_~CF2Ia)9jOW0R)e1Zdc2$;_9ys+RS1fH9ZO`efI4> L&wjsx+iWS_UX zl9CS?p~S*N>^4j{f`|*_GWhr&ggP =wqtRSJokV)zgw_yUF%7xbmxZOAR#EIRu zeeldHa_!XDkMAxkIn_C;Zl?oH(G1Q^u9DXw!vJj+PV+P;7s`I?z^FA?3yQNOKz3H@ zHHvo^cy*!B;p{%Spe+|C9}>3MT~BuZs!Lc{#~?ukdZXwp8_qTTHlM) Jd9m4*Iy;uD}x DvADL(5Au;wo21A_9wMgf8nlU0smkG@G@ z=BpT(Y(>^L*p9?aT!&XRv2^k0Ntm+`S;D4x4F$OdO!S|~s`A~W%ivpq1FdD#IC1zO zNL_(*14eIi&s)l0V)3QmD}j3XWeP!%7nKd-a(JNZVHJ6LnxKE`i_ouSa*cwY?h3Gy zbuwYu+3yK!%cq9`eHZe()1#srJBr5&wLmop#*lF4*>lKRlWGapHEI3&Q}eZ`N*7An z5(zIQ+@}hV*PkID5c~Y{4?_5o+CTLX_S$z=`kE3hJDiY#5#CdF{KV&2YbDrmAsD1= z)YuP?ynZGyjUR<|9iP8^QLxN;a)yEmPncNx&Thbjvz`p%A kJL+z!9a4zxv=IEw3N>sN5Wtwv0d}A;zH5CCEkiCzL#j94 z9$Od>SG*Bb4#h^0uv5jjz0l >DLJryeKrVd=#8^6=-zm<0R(-h zgY_KoB0w!$Yz@XiSP@iqHiT{uBxdjC)m6xd-fsc>5(=#9n3fFn4VA`Fhv4tU&4 ;mzl68U&z?-RS!_&>xi2q4dR7 nH$(*4)f*5NYNM z#;@NZWK^%2{S;syxUL9|6X13zfJjUTjc2fV<24cdK(xcxx9t!&;m6I{WS|*I{*ijQ zIy*a?P^plmpH#VKe|sDWmaxWQh!U!*4Q4(jwgt0`a^&3{$RYJOExwN4C-^23!)Om9 zUg$QVGo6O7KFkdp-s7Nuic7SFwvVzQ!xg_rE#{*j_I&NmH)f>7UU%jiH2kAq32q|v z7g&1mczJl;t2FTO)nLGK^{&aMiH?rFWluqa>^YF^8;OUD6SxZckST&CEUq9_@~((Z z1A0D`arCj%tuOImmC6U7afD=x4s(%G+;cFE82tEQZ0wp<%I{PZ(Pla!TKyH1QV$&} zpEPEB!*fPXmzC(l`z!dl!A3SQ9Fmnq-oW^A0NzX{;kZa3Ha0aJeS7a3_@JOF{s7k! zye(KlAL$6Ge;oS^PZoTCmu6vCoV;qpO`M~-S2r$TK@e2Dox7oAdp39L?&to&lz*{+ z#~=Z}0UsaT_IF(33Iq=bJP8KlaLXQOTuy$OHaZQ2^xS+2Tx1ZR{5f$H-xWI sm-*{mAP-vB38XHT_pJ%$BJalj- pugfU)q}99al+Vq2CwI3O+_91ThstSubd75Tf$_V7}oD)dRw#%Lm|X z_ X_t6`2aIMazD!V*oIDH(!UDF8EQCM(0RYaExza$p;;25-kQoZozel4Pz z^NxO&;g*GfKSFA4ijuc^Ne{$^xvVt8N1*O?fPw<---tcRmK2yn>_sFeEVTSRc((aO z5_|hJAL#I&W#kjjh#z%Q64OAWHo9ZEv9){S&^1&AaJ(l4T+j)30S-khF4!*PP_+!A zB0LIES~TJ!uoT-L1YI`?nO`SkcY^U2zFMM~B8rwSgFd0!E^sXopT2`pRO=1$r_eop zM5iL@deaTlbhZ(@`+d$gL~)7`3qL^=&)BE!iNkRpC(rK7sjetG^&_vO!8(Ql`8F1B z#w>jL^bK$MzY2`V3(^9$3*v^)NQuS%NI=*{i(_UxyiZ>YRJPwAL-YihUrYnJgZg5_ z$1{6Bvy~j(_4ki(5_Xa!HFd>88if_g|62+Au+r@cuU>P+m34}i H(|N6=^@lDA$X;P@t-mwV?}3)i`>79@F&3;!u3%N zg@NA|2#)ZNU#4CXevSe6U=yzK)fP^9s7U ;gRA#1&k9tfEYTH1aeYTEGiEvXOGL86w!b2OiuU9FgWF@UA_2bPjw3 zLLiB<33ZSz{AILEil=F&>k-^rd9Bz{v}Vihk;NvWgT=%Sznwvt4PhskFfKP03=9yQ zSWgc{ad+<34m^cOfFJ-b-soi&sIgIz_hul;#Yr0sqDCA&Yw!b=uKiIwIn!{6==NaI z*Hw9Bk6E00f{Xk|F=-h2dmuDKqeI!2hX|CF0ikSr_Ley=)XL`K5tdBkyjlkmBXW2} z=r7&8HOkVICN$tTLstG4RA5*O^*6Z-pTZ9%?B8%Su)Dh*t!*gwl>mLU%f*t|bd<;l z&Wy?7RM?Br*Wh0W6P16kLD)PP-vV*T=NgjrV+=+!aL;W}d!xA0{o3bG5`fKtJJJMp zo5esYIE)=_0O^^)r~W6B?Zt(9 V-TS^O#=O z-os$qQL5<4wa}3SbyFU?`uMJL_zi%220M`sho_?Wh(^&p5d9LFGk+Vi+S^AEL3rTF zOM+gACG_9`+MUaXKOC`bg^eIA0@(1kVLxXWe)Ardi7#>|=WPw6L~BKu|12sJe&bgY z#uQD{aT3|K-+^kr7<~X}_o7Fz{W^;Q2SpoxLD-`NOQcq)Dz-m)j8N(KeR J>9T<5q*hTWI^><`)h4tvsE>TTGT>+5Dow zVy^E5y2w$w6mHd;CZf=L|F{|iP!!)AJ$qQvMy_3U7>*xbO-Bs+I8e oVSeqo##eQ$b`Ld#(arHE!K&i?oyGBJ1ogGfd)5o50-{8^oyIP>-2oooM ouzTOC9|J$A*$&@`jEz} z?rrbPJ(?6D9Dp^bMPOKtE+LjR{@UO!Du6h!F>838KHXc~i!H0aD^XaI@czy_tRmPi z0*i|sHoF{ZP78k3MK6Fzu(d|%LLkwbqBlnG^5DW)TgKOiaj;%vqR2x-7W5Mj#;YrD zt+OFfeF%o@JU(}>17d0P$@g(Ck0lW@@QUO3Lwt2Yv^kTCpCbq(2ox`uKKS#jig6n_ zIzkjg3$vV0sL9`B&lRU+ejFIK==?qKI#2-C9Gf~{Q?n&}-DP5#(8MfRaA4rqMBA`^ z%$o#66DtiEVpRUsPP6}3>4|2e^gsE`)R20S*91Q(6iRdC$NYowf}6QQkkJMjFYQd? zWDzD=-`e{T`>pgTZE8-3;NoMll&+8d75_o-rg`zsKbVI_(o!yS>b`4BxCy~8sgvH| z{U{!*EB!_8+1z>U^ZcS5Hqk296)NB?oA7@>^!(CCga#5XX}z~<1R9mKnoYdy=byk( zeBbDK+@rkbHj0gB_3a*?3dT_&CS!lJ&aCFY 7dw{=?0_IG>jqb~U?!s&kyh< 1G<=66FJJx# zu1I}M4%ihf&gsSwPP%+3mw-c>dJT@H|a{y49gA@hZVglw=cAACq1L-hKStRz|!P9R8LFRv$z z*+#y;EsNbxR}jN-nimn73IPp+&R$(z{k&4?5#bAh7)nj}IXc!-8d5V6(k}Q3$|8=n zv%kK*? 8M1l6-}WU;LdBl>KsVn1 z2>T4*krKJ>ZT?hG4b%(zX+O;Xu^|@1oa{yHj>!w>rgxK5osr)QIiCt-WnhFF5eqR? z3o=%&E}BmC dCOcUtXEoVXaY6y|?YZmFAN(C~wi^s9p#DUOPACMJ75`J9 zI~iSiQi6O5R0ICCI|<8*E{s37 {A0Sqg6G1dLvqKG$+Dg=vH7a4d}Y!vs6 z!b}Y*5in(vf=`eiXv@@zfb6-YEe8=}fHlBO?KsMS|EjM^+{yDX&v3_=X8Y}MMA4^7 z!by-f52+0G@WGe3A%GL0UHg)vNUU}O_z5gEO|Z+bQ==zV5``82iv_|65nC?NhGF5Y zFdhIB@Yk yvAt)k0F)uBP&o3=y!E^>40O;#>@a_8#oXS$CCmugoe*D8;gqLb0>C1;o8X7@C zXuXa|wVA!ZBstuK63-g%4(r6$JDny3crO;-UPBtg!QWTWvTV5KUo60H3{Ma^8L|2A zzrSL5i>Tfp0nz|0kDpBXqY7X7_6;irJ3T95g`x^JY%( @3Eq0dOHXImr$OFX}i7P8y; z95DE0kB359$D|Q>pNf*jbai#1P$lHG#m$5~7zu?g=;TRm*q1}+T_|#i#QbzSp6A25 z4z%a+QLOQwFn1dTNUqQ8yC`mH0ON _uKSNsSQ0vp}e|1I7owKaqG}l!X5J ziA|Ym7p1M7Q3ra;qNM`t1UXIsm|y6?sHv$3{on|8ALnsg7*Ds^O;V@*<3Vmop&>Dx zcmlYA`2rTZvlv3ua(JEea0yllqtg4xVT;#Q qKah*_`U1KbM0;RUa7*;aQJnKxDUp!=gY#*LNEudOj$*bjr>4TI=uqctFHi z;Y9zRU6HKoVg!C0(~ O^628!a ?JVd+IdaiJnlZcb$o`0yO3NuWKDk$;GD}@Cjc7_*`Ifz-_uMCq9$XW?ousc`&g| zC|Iyv?mzv#sI|BcnP(iAZw~vR>EI~mfkQ!LRvixPHM0ND* FPxqBE&`2C^V>&v%qK&o`+zBlS;r z-~I2($dWbKPD4FrZ)0H$w;*&NZGfv2l%|PE4RW~Kf4|+C b%h3UO%V_?@r__iFNg!+wx4_s5rry14hv~}v5K~}(3zOH<7)=Znk@|=@3@pCm zGciy=EJENS(D7}%j Ng{QcQmYTBP|ADE&C*X9Rovy^ZiJY zRO(!6-7=>+tp&N9G%$E_u39}{#)f*`=1;gk)yF?@-Ek~_gsI;K;OG{>_O2wuoo@DJ zK?h2U_YkeiS-YQP<#s;}cqoc$y=VCUMb%e8Rk?0mONVrKcS(15!^Xfslm?|yy1QFK z0ZGM1LEH$^-C%*#hD`|4jnu#Pz2|=S{$reT#yLZe?ESvavtq6}=Yj_S&@2Dg8ykZ2 zBWQ&JQ5T*ve!uW@iU)NF)(Ml47eS(Cf9Drw90C4QLuKHS?*!B~OpINCunyCnY1qbh ze90!8reRA-ta}v7f~4SZMMwY^Zwqs;0Fvs3f+&%$ h1pQDoP!~4gGFqZ^yU@(HrYXY?C{%CoR9eF*NIl+oq3V*0GM_Pwz zDxrOzhqTfOKsU1gmKf4k8aoqVgHOitJAlPo@@{iDOq}AlJUvf9OZ&cF)YCHu;%jXA z0K&sy2#Zo)z( 0AZD$^fdc=d)j$x`&!Uzs7PM<2m&^5M8}=&gzz^pL@Kf7I z%^HQzi+s@CZ+PdJl%t&AeN&IN{Nob+JT^`YevkA6%$e?@ycQ8f#{2nE@(ph7c6Iuo z-`GC5)rUk=;+%8DP>Qt)t3LQm!FLGOnVQCseYW`5aFM}qq$OtoQRKFf_j^9;;MedV z8vktc6bVFg=`Pi}IZBrnEA7fE!H}xCiz1Nz?i1rLnh%Ri1!wOx`Y7gE17~=)BPU z0UV D}ghv7j1RE&z>^Q+p%NA%>mXJH)9) E?Tqd;ZW41IHI5*FW0_V^z4nn87OGHDPrWY@dOG zrDvS9)Xj1Zf`A~H;cJ-%to@R4C*U25a#Rs5?%jH;R}w_^kuYip3YhFB6)GVb3SSr` zwq(VhIO(u~y=EJ@E750WGJGFa9WG}k{Q@V-*;CpI?)a`TV<&c)knj@ 8+anxnW8X|ER0<>xlV5@1 zq6(Ikv+}LaUjb7y{s16aW;Yzo8c=kFJ|v63_ywGWtz?wLtgcN|=sDzx+h~G?TW^l& z{TNaaj0N>X7!1%blaPXm%VO~cU|YN6+)er~+m%7cA27yn)S=;t!dPrr5@7v?$ zQiyP_T+Gp4$0?q7cP4#?W)bLH7Tdn|pq1X5HaP^~$K6R{=BMZVVamvX*e~xE{!ThV zBwXDFGrLW{_IOInS%Ese- >{$ng2XAKS_U5vtU`EbjYOYO`bo3 zcn%P-o|rjHzW6}IS;X4P<2gJd_E1Y(Oy2+7tMjxkpDuhV{d;yEm$QClIa^Yl5*JHD zQ{94z28W22k_JnVNJC>(+u|nHGEI7Vrm0{Bvshv7`5&o28)s`91*pkBygH=yP{=ym znSy+kARrw42wEF{FJxGQ|7o~CDjg)y DS^+iKE=#$$khg? zsAIO=rGs7f%=zoH0jS|_gV14!SN<-lIl>i1UdFMhWpxUa4H)m~lQnPXOmPUv-Txt? zxh^?C5DL~cb^}%Pnqg4p8fWnh0Ngkm-HA&-Gzjo^zT2_uZ}~|X{F<4|vz24m8rmf# zfLim)r3w$~x% D4zoN zDEXeqOWeA4m%2Od5%ZkB<}dVx 2pS!t7;`)_Jwz!Jt$g-xkk5zo%a+EX72iT>*E#}Qr!mt& zgv9(U+cN=dW?5IvPA@1ukH9jJUD@9g2pVv$=3$?g8Ll^kc(^?<(=OsC6WlRrPiD-j z?%9EK#(1L3L-IB<4C7wx3ysS)d>WKl e z#^(ougKEqkjYoWS5lgPS*sa^$W|AMMi1@mB&0`KPUDl7r*4c+)x%ppbMF5eXY3nny z9fLciMjZv;9xJ=_U`Mdk8rAQU(Y~mZsw(k>yTJDtlv<53R+mI;>brc1Q+fj>8ax$! zT89HTgW#vk{;=oZgpj?`1xmDLueoyo;a^>S6?@Z$41;jHHmpRhR|8HarmbV^gozXT zp%6GA)MgRID>?h(<{u@>Ls&dYkm8PqDO~EkwCICzr>8wcFt|1&9=H2hF(C;^8$b}n znaWVue7n~k52%2_LoPR(8Q?f)fyYo6?S0IWmQtOI(F|RWI3SAlOKIAI$t9@j?thKw zcm{CgBuA5GA!ajfk0XD6&)3}+0`|>Kn9S2Izl7}R9SnI7aZriBFGWSz>i{@MxefH8 zFx!XBC1OVXm&Pea*ABW5 {FghSj!W!KWL3=U~^ebh7#E^g2qEF+^4xt`vKvHS@RhJU=k$$ov3{+fG1 zIqw@*(XRRt$8ByBg8yIvyfG-Fsj*tOCnQ!(61KQ0(=cp16n%J=M%UNSPaIcCYz0Z1 z*@tJw86dng&r{QOg=oD{YH8p}?&64XVzRq_n^C>S#r{DU-Q*XPR8)NAeA;6ntuzzi zkN?a1CA)+6adORVFa`bkt&G`XQo6~CiLwgvTg~lJWqdORKYk+g+Fhfb)MEzkf9ZKf zZ8k~LUiLl{NThm0WPlo8XYQR+|MQ4yswF{kvAEwuPyI=}Vk&P=#mL6yUkVuvNOSI%D)>k-jf)ufFf=( z>2%GOzN_$W1WAj9T#?k-1=W|vJw2a_zCPyEOjXiv_gadV2}Ke#+z$#?8YNN%;!qvy z&pWNRDy_dL@?*SpiIZmBIS!3rgFz(v2Sov?WEGr&ZQ7eeY)K*Fa!^-Z7#{>*TnyUK z0HfKIyvVpTW?3l1XU Ku;fm7x0ww!1bMx%YW-r?wgZxYCjha6 <%x$SV z2?o5DFkp_T`e|CWUA$lPdib++s2;u >546Rn8CG+Im~E!$cnrWQJRou;L{`Cwr&pl8ouEg!DCBJ)`Bu8Y zcNop4^Hip6-<@+r)B0#mx~#u~xkUtDNp7ZQP(`f~0ek*DwoF8O@j=PLmh?y0@l2z< z?MHK{0u77q?*=9LlDcB;cKTdfYoNW@1CP| $*{(ichRqSO2_@J1P$F!` z`||5r2O#P>zFpDnrDQYGZBFY#)#FAfT<0f9*vr(BzOA`fHvaso#sdzl7V22%j!;ug z_st0?;&M- MShW-dMPeYeOwi|rTN~=tD9BMd ^Q8^gi;gQC{{l< z;@96{EI-coqCDE1bFemqieI{2VLn>EBI K9#o=UDNW1 |KUn`90gAACIiCOHZ3~Fg$99kV#r8m(1SzKO!E2R0= zBn;aNgR~zJC7{LTNU9^6QZ7f}x5yTevt4BDsCDxF4u!AfLjb*q*@;H4oe~WFm8224 zX>b&l{_*bNC7+L|FZ$g-(Zv=&aGw(CJ?YV#0jY)W-!+*ip7s_C=B>F+Dz9r^A_G{+ z+{GLs=e`0adC!!fvy-kwyth(ZVtEtx+6kD;7T_!8(`CJ+Xn5^raJGEd6IkgxIuc z4STQU`YU*Kr{3OH68i)t28Y)}a^(al 5I@3mwlsnx^%@}&<*>D`}DykqAvZx=B%Ta{MP)| zzCzyP;NQcX?dCq3A2PNzZ7CGA7LyjR=DD2~d6b_Ve!t?;u#PFP+uLVk-wh9z6CTp> zv+Utsn)0gOG1r|R^`;*ZLNuCxd7)n;S}9)1TytAG GlnG4ELo$d4l?+j*n(SVrfF5Yfk#{7kg1jX)~ z`rag%HK2F-pU?S!i-X$f(X-efZGBB%ugNpLPbLiH+;W3#?l~(FRxy){2P+zq%Duu* zN(Bt1d2RdJg%V2zDDlYY G8T#nmNI-1H*MUD88NLj6_9J>1VEpms}@4lc^ z%Zik`?W$bV50FiF8>YnZs?VngTCxLr2!J>PCSFQb@pH9irbTcluRSUJEd#;iS!B >!(>nA{L!WAthEvptqM}NPQm*>O*mX7A6siArYrlu9NmyN{Mj94*)4CY-7?V{? z_4dC^GSx%(eAy)FO@Ya&dS_(G8<<)A@JP{N@tV95 |x1NaCDK2I6*7#Fln9G#M(Hx9y3y(|?G`x>XvExbwdZ+LvEb-&07tWx< z-6A4FVH^Z6(^@i`Fqz*V_qbUdt&MPq=dVzHYX_<_ATf z--fmpS}d3c$Dfuep?)H|4s-5|M}? b2Xjr z>Y%Uk?gXSh4KIQ$u;v>pms0B+(~c5UW=-Q0$crp1?>_TMuah=O=`Q{dosL#5F*P?H zqBM}Q&EIvA9PW<)Og};sD4tSYh$tlsM%%LYhrV!G)GcV1F)_7Ws?85?^P*ql%TRs} zP Y@mHDq zYE?@8aXYmcEKC7cQ z=3Ikec~YJ97b+b TytTReZ?B=y)#`-)dL;5kc3 z6?qJ}$o~O#8Cdlc=LPN6r($3C-`Jo1nZO|143o2smCdGR~Wota4BWhp51+?g?0# zLPOo)w_K&t-LX*t&6uhCW$DR}D%u_X+XAWpUTR6e6rPpSi|ai!Eb2Ym#)g`~V_t>E zC&68NP8hba;d7XLdS4)$05 No zFT#f}hVUYHRHtx%GM@0ejT_)YCLx|y;sarvdM*tB)qAAbKu9dc=|DN>(W5RIEw!0k zW{h~pb9eosL_mQx6Dh9AG1i0ESN%`9-pZ4vjz>|8W!0ki<1!Ds7igCfz pw3^zCj;yqQir6ppcd#^^n{ZWm!1so0j`h=0ePX(epB zAt2z&9iS}V^uE~yLyyh8AVo90$hm2F{ZKf%3@#t6d>YscG9QP!YduVp^-;)q6p?Bx zZ~F^jiH3Mp8&)dSJ(8SM+y=Y!eg~B%{qToIfd%JJl mDN z=tm#)dRvY)O0Gq+zCV}{=AmF{N7nDNPU&nzeAH3c2>$gYLP_HWp8%M7EYbrjcSwqL_lU-2`^C4*wnpMPt+ zdnp_qfof&}c`8DTtDYQc*!500sXnGG#*>4Lh=_Y4;W1SoZA>=@HbLVJqg?3fwljK% zx7k;#L_6a8ICtC$KSYZrwA_CQ=JEY5i3eOWTsbA~C|)j7b9Glwl4D*ga*X|Nhu(5} z%BUO<#R Yn%gmk5&d=5~MTYYr@Xn0^|=CAK^rE9Y2hl*9x!kGQZ z6U|?!G8MVRON^5C>do8H0}hc?iKE{b8SQP-4U9XIxZU<2y!qhT&i^!6Gcf%eeBw9i zN|y;y8az@##LR32FWDIdE?zKtj+1!&X(qIq;CL)vFj6t0&ERxte900hrI|$+_halO zFLs5PIvn-@ndzw~=O1WVVuBebm$Hd&h%@sH%;S_&T}3F`9GNu4O)NgTQ)$UHk*}Fy zps1yBEfA(NIBERLOP#O?k3N(0yP0>aG;@-ex8N=Zqs||maU<4F=W@qVrtX54`4WBn zD`?Oz;VTf$l|9(dd{lY)Iawn9xal7~Zp<_Rcrc|8#-vmT^xndHTTPcv@Z+BQ^y=m& zNs}BV3oe{3VYzfT=f0P5u#z^#i+#62vcu-TwL^yb_zf5oHAEy{*7#$>wyeZsw{S(F zidr}l^~eUU1vQC8FX1||m$K$Z$yF;3QqEN6uGjN-gXV=KzQA|_wjqtFCL7(Y4F%|# z?@FIhw#ry4bZL7c>oRtoBqZ3cwXho+vpOLbD~ Uh05ht?_ zu9*4{7Qj3rTccl^8g1qh;P2Rh?8=dGp8#!*vnN0u%L>q<;ySv_*fWx~0qjXwZntHZ z{nZxbVpmn_O10kU#K+{3+Ww`5bia}$lyl(sn^E-REL4t< $~I!&GD8Uh&zHUDsbzxgP%sZUbUAuJ%Cd-MeyBU4}D z4R2r0uuqKzDhpzKxJh6fkYA$%f=Tg7hC5%PyuHo@HEsmySlcvQT?mIcAA0CASGU2W zl2fw|jGSFz%vRxT(dPB$#XPzz4a1~