From f7706ac3f1afa068dd72646c8bb225a488f431a7 Mon Sep 17 00:00:00 2001 From: Stacey Van Herk <13419300+svanherk@users.noreply.github.com> Date: Fri, 7 Aug 2026 15:00:25 -0400 Subject: [PATCH 1/3] GAUD-10312 - Add vdiffs showcasing the divider arrows --- .../test/page-divider-internal-fixtures.js | 5 + .../page/test/page-divider-internal.vdiff.js | 145 +++++++++++++++++- 2 files changed, 146 insertions(+), 4 deletions(-) diff --git a/components/page/test/page-divider-internal-fixtures.js b/components/page/test/page-divider-internal-fixtures.js index bf68cbdffdb..495ba34c652 100644 --- a/components/page/test/page-divider-internal-fixtures.js +++ b/components/page/test/page-divider-internal-fixtures.js @@ -56,7 +56,12 @@ export const pageDividerFixtures = { supportingImmersiveFooter: createDividerPage({ layout: 'supporting', header: 'immersive', hasFooter: true }), supportingImmersiveBothHeaders: createDividerPage({ layout: 'supporting', header: 'immersive', hasMainHeader: true, hasSupportingHeader: true }), supportingImmersiveLongMainLongBothHeaders: createDividerPage({ layout: 'supporting', header: 'immersive', hasMainHeader: true, hasSupportingHeader: true, mainHeight: '400px', supportingHeight: '400px' }), + // Alternate width-type iterations + sideNavBothHeadersWide: createDividerPage({ widthType: 'wide', layout: 'side-nav', hasMainHeader: true, hasSideNavHeader: true }), + supportingLongFooterWide: createDividerPage({ widthType: 'wide', layout: 'supporting', hasFooter: true, supportingHeight: '400px' }), // With state-storage-key set + sideNavBothHeadersStorageKey: createDividerPage({ setStateStorageKey: true, layout: 'side-nav', hasMainHeader: true, hasSideNavHeader: true }), sideNavBothHeadersFooterStorageKey: createDividerPage({ setStateStorageKey: true, layout: 'side-nav', hasMainHeader: true, hasSideNavHeader: true, hasFooter: true }), + supportingLongFooterStorageKey: createDividerPage({ setStateStorageKey: true, layout: 'supporting', hasFooter: true, supportingHeight: '400px' }), supportingImmersiveBothHeadersStorageKey: createDividerPage({ setStateStorageKey: true, layout: 'supporting', header: 'immersive', hasMainHeader: true, hasSupportingHeader: true }), }; diff --git a/components/page/test/page-divider-internal.vdiff.js b/components/page/test/page-divider-internal.vdiff.js index c2b2c0e25cf..dfbc881dd9a 100644 --- a/components/page/test/page-divider-internal.vdiff.js +++ b/components/page/test/page-divider-internal.vdiff.js @@ -1,6 +1,8 @@ +import { addMarkers, clearStoredPanelState, scrollBody, scrollPanel, setStoredPanelState } from './page-fixtures.js'; import { clickElem, expect, fixture, focusElem, hoverElem, nextFrame, sendKeysElem } from '@brightspace-ui/testing'; -import { getDivider, getSlider, pageDividerFixtures } from './page-divider-internal-fixtures.js'; -import { scrollBody, scrollPanel } from './page-fixtures.js'; +import { DIVIDER_WIDTH, KEYBOARD_STEP, KEYBOARD_STEP_LARGE } from '../page-divider-internal.js'; +import { getDivider, getDividerArrow, getSlider, pageDividerFixtures } from './page-divider-internal-fixtures.js'; +import { MAIN_MIN_WIDTH, PANEL_MIN_WIDTH, SIDE_NAV_DEFAULT_WIDTH, supportingDefaultWidth } from '../page.js'; describe('page-divider-internal', () => { @@ -27,10 +29,66 @@ describe('page-divider-internal', () => { await expect(elem).to.be.golden({ margin: 0 }); }); }); + + [ + { name: 'arrow-start-side-nav', arrow: 'start', divider: 'side-nav', fixture: pageDividerFixtures.sideNavBothHeaders }, + { name: 'arrow-end-side-nav', arrow: 'end', divider: 'side-nav', fixture: pageDividerFixtures.sideNavBothHeaders }, + { name: 'arrow-start-supporting-immersive', arrow: 'start', divider: 'supporting', fixture: pageDividerFixtures.supportingImmersiveFooter }, + { name: 'arrow-end-supporting-immersive', arrow: 'end', divider: 'supporting', fixture: pageDividerFixtures.supportingImmersiveFooter } + ].forEach(test => { + it(test.name, async() => { + const elem = await fixture(test.fixture, { pagePadding: false, viewport: { width: 1000, height: 400 } }); + const divider = getDivider(elem, test.divider); + await focusElem(divider); + await hoverElem(getDividerArrow(divider, test.arrow)); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); }); describe('hover-collapsed', () => { - // TO DO once previous panel state is saved and restored (so I can set collapsed easily) + afterEach(() => { + clearStoredPanelState(); + }); + + [ + { name: 'side-nav', divider: 'side-nav', fixture: pageDividerFixtures.sideNavBothHeadersFooterStorageKey }, + { name: 'supporting-immersive', divider: 'supporting', fixture: pageDividerFixtures.supportingImmersiveBothHeadersStorageKey } + ].forEach(test => { + it(test.name, async() => { + setStoredPanelState({ [test.divider]: { size: 400, collapsed: true } }); + const elem = await fixture(test.fixture, { pagePadding: false, viewport: { width: 1000, height: 400 } }); + await hoverElem(getDivider(elem, test.divider)); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); + + [ + { name: 'handle-side-nav', divider: 'side-nav', fixture: pageDividerFixtures.sideNavBothHeadersFooterStorageKey }, + { name: 'handle-supporting-immersive', divider: 'supporting', fixture: pageDividerFixtures.supportingImmersiveBothHeadersStorageKey } + ].forEach(test => { + it(test.name, async() => { + setStoredPanelState({ [test.divider]: { size: 400, collapsed: true } }); + const elem = await fixture(test.fixture, { pagePadding: false, viewport: { width: 1000, height: 400 } }); + const divider = getDivider(elem, test.divider); + await hoverElem(getSlider(divider)); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); + + [ + { name: 'arrow-side-nav', arrow: 'end', divider: 'side-nav', fixture: pageDividerFixtures.sideNavBothHeadersFooterStorageKey }, + { name: 'arrow-supporting-immersive', arrow: 'start', divider: 'supporting', fixture: pageDividerFixtures.supportingImmersiveBothHeadersStorageKey } + ].forEach(test => { + it(test.name, async() => { + setStoredPanelState({ [test.divider]: { size: 400, collapsed: true } }); + const elem = await fixture(test.fixture, { pagePadding: false, viewport: { width: 1000, height: 400 } }); + const divider = getDivider(elem, test.divider); + await focusElem(divider); + await hoverElem(getDividerArrow(divider, test.arrow)); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); }); describe('focus', () => { @@ -138,8 +196,46 @@ describe('page-divider-internal', () => { }); }); + // Grey marker is default size + // Blue marker is requested step size + // Green marker is the expected resulting position describe('keyboard', () => { - // TO DO once arrow visuals added + const width = 1250; + const maxPanelSize = width - MAIN_MIN_WIDTH - DIVIDER_WIDTH; + const minPanelSize = PANEL_MIN_WIDTH; + const sideNavDefault = SIDE_NAV_DEFAULT_WIDTH; + const supportingDefault = supportingDefaultWidth(width); + + [ + { name: 'side-nav', position: 'start', fixture: pageDividerFixtures.sideNavBothHeadersWide, divider: 'side-nav', grow: 'ArrowRight', shrink: 'ArrowLeft', default: sideNavDefault }, + { name: 'supporting', position: 'end', fixture: pageDividerFixtures.supportingLongFooterWide, divider: 'supporting', grow: 'ArrowLeft', shrink: 'ArrowRight', default: supportingDefault }, + { name: 'rtl-side-nav', rtl: true, position: 'start', fixture: pageDividerFixtures.sideNavBothHeadersWide, divider: 'side-nav', grow: 'ArrowLeft', shrink: 'ArrowRight', default: sideNavDefault }, + { name: 'rtl-supporting', rtl: true, position: 'end', fixture: pageDividerFixtures.supportingLongFooterWide, divider: 'supporting', grow: 'ArrowRight', shrink: 'ArrowLeft', default: supportingDefault } + ].forEach(test => { + describe(test.name, () => { + [ + { action: 'grow-small', key: test.grow, requested: test.default + KEYBOARD_STEP, expected: Math.min(test.default + KEYBOARD_STEP, maxPanelSize) }, + { action: 'shrink-small', key: test.shrink, requested: test.default - KEYBOARD_STEP, expected: Math.max(test.default - KEYBOARD_STEP, minPanelSize) }, + { action: 'grow-large', key: 'PageUp', requested: test.default + KEYBOARD_STEP_LARGE, expected: Math.min(test.default + KEYBOARD_STEP_LARGE, maxPanelSize) }, + { action: 'shrink-large', key: 'PageDown', requested: test.default - KEYBOARD_STEP_LARGE, expected: Math.max(test.default - KEYBOARD_STEP_LARGE, minPanelSize) }, + { action: 'max', key: 'End', requested: maxPanelSize, expected: maxPanelSize }, + { action: 'min', key: 'Home', requested: minPanelSize, expected: minPanelSize }, + ].forEach(({ action, key, requested, expected }) => { + it(action, async() => { + const elem = await fixture(test.fixture, { pagePadding: false, rtl: test.rtl, viewport: { height: 325, width: width } }); + addMarkers(elem, test.position, [ + { color: 'grey', size: test.default }, + { color: 'green', size: expected }, + ...(requested !== expected ? [{ color: 'blue', size: requested }] : []) + ]); + + const divider = getDivider(elem, test.divider); + await sendKeysElem(divider, 'press', key); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); + }); + }); }); describe('click', () => { @@ -186,6 +282,47 @@ describe('page-divider-internal', () => { await expect(elem).to.be.golden({ margin: 0 }); }); }); + + // Grey marker is starting position + // Green marker is the expected resulting position + describe('arrow', () => { + const stored = 400; + + afterEach(() => { + clearStoredPanelState(); + }); + + [ + { name: 'side-nav', position: 'start', fixture: pageDividerFixtures.sideNavBothHeadersStorageKey, divider: 'side-nav', grow: 'end', shrink: 'start' }, + { name: 'supporting', position: 'end', fixture: pageDividerFixtures.supportingLongFooterStorageKey, divider: 'supporting', grow: 'start', shrink: 'end' }, + { name: 'rtl-side-nav', rtl: true, position: 'start', fixture: pageDividerFixtures.sideNavBothHeadersStorageKey, divider: 'side-nav', grow: 'end', shrink: 'start' }, + { name: 'rtl-supporting', rtl: true, position: 'end', fixture: pageDividerFixtures.supportingLongFooterStorageKey, divider: 'supporting', grow: 'start', shrink: 'end' } + ].forEach(test => { + describe(test.name, () => { + [ + { action: 'grow', arrow: test.grow, collapsed: false, startingSize: stored, expected: stored + KEYBOARD_STEP }, + { action: 'shrink', arrow: test.shrink, collapsed: false, startingSize: stored, expected: stored - KEYBOARD_STEP } + ].forEach(({ action, arrow, collapsed, startingSize, expected }) => { + it(action, async() => { + setStoredPanelState({ + 'side-nav': { collapsed: collapsed, size: stored }, + 'supporting': { collapsed: collapsed, size: stored } + }); + const elem = await fixture(test.fixture, { pagePadding: false, rtl: test.rtl, viewport: { height: 325, width: 1100 } }); + addMarkers(elem, test.position, [ + { color: 'grey', size: startingSize }, + { color: 'green', size: expected } + ]); + + const divider = getDivider(elem, test.divider); + await focusElem(divider); + await clickElem(getDividerArrow(divider, arrow)); + await expect(elem).to.be.golden({ margin: 0 }); + }); + }); + }); + }); + }); }); }); From 575f9cbfd4071bc3eccb86e46c01b27c4642eda5 Mon Sep 17 00:00:00 2001 From: Stacey Van Herk <13419300+svanherk@users.noreply.github.com> Date: Fri, 7 Aug 2026 16:03:59 -0400 Subject: [PATCH 2/3] GAUD-10312 - Arrows become inactive when divider is collapsed --- components/page/page-divider-internal.js | 44 ++++++++++++------- .../page/test/page-divider-internal.test.js | 26 ++++++++--- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/components/page/page-divider-internal.js b/components/page/page-divider-internal.js index 47b53daf17b..cda86fb02db 100644 --- a/components/page/page-divider-internal.js +++ b/components/page/page-divider-internal.js @@ -1,6 +1,7 @@ import '../colors/colors.js'; import '../icons/icon-custom.js'; import { css, html, LitElement, nothing } from 'lit'; +import { classMap } from 'lit/directives/class-map.js'; import { FocusMixin } from '../../mixins/focus/focus-mixin.js'; import { formatPercent } from '@brightspace-ui/intl'; import { ifDefined } from 'lit/directives/if-defined.js'; @@ -141,7 +142,7 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) { .divider-arrow { align-items: center; background-color: rgba(255, 255, 255, 0.5); - cursor: pointer; + cursor: default; display: none; height: 24px; inset-block-start: max(50%, 97px); /* Do not hide behind slider on short screens */ @@ -150,16 +151,19 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) { transform: translateY(-50%); width: 24px; } + .divider-arrow.active { + cursor: pointer; + } .divider-arrow d2l-icon-custom { color: var(--d2l-color-celestine); } .divider:focus-within .divider-arrow:not([hidden]) { display: flex; } - .divider-arrow:hover { + .divider-arrow.active:hover { background-color: var(--d2l-color-gypsum); } - .divider-arrow:hover d2l-icon-custom { + .divider-arrow.active:hover d2l-icon-custom { color: var(--d2l-color-celestine-minus-1); } .divider-arrow.start { @@ -205,6 +209,8 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) { render() { const { showStartArrow, showEndArrow } = this.#getArrowVisibility(); + const startArrowClasses = { 'divider-arrow': true, 'start': true, 'active': !this.collapsed }; + const endArrowClasses = { 'divider-arrow': true, 'end': true, 'active': !this.collapsed }; let ariaValues = {}; if (this.maxSize > 0) { ariaValues = { max: this.maxSize, min: 0, now: this.currentSize, text: formatPercent(this.currentSize / this.maxSize, { maximumFractionDigits: 0 }) }; @@ -213,10 +219,10 @@ class PageDivider extends FocusMixin(PropertyRequiredMixin(LitElement)) { return html`
Ttvynz>yJ8T}S0etxd5)oE9Y6FsCa_Z2xTX_=p>UyORgCoI!b{0_1)NSYkEP3AJ!MIn`o$e&Gg{L_W2-kcg>DJ +DFm8c32E&S7ypCZU-ZKd%|Td~wnw zVwaAroE*@5T6bp8u-lI7?G@PS>`I@-YbPsl@71=5f}O4co!FC^gTfaNeR3NW)g}-) z%p05=@}xJx??WLgw{--cEid`c_k|Te=B%zb$i4D}7S{OK=2aJBp<|dZ1@tSlv^LS3 znakua`?RM^${g=HVR-?SbDonlo9G7boOH6*9tc={Fv(ELz)ckXic^Bc?ll^sN9_L0!Hud*$XR+H;Zhw=#R3__eZpn@7Fo7?OD5%xb+h0i#zjgIZ zX=1mf_4C09>&wHz5v%y-#aL!qE%OHCj3q=$dePO{Y}w$W*4=BlTV;x6!$pPJ_75e>CC4+6{ z5L-qgqR~Mc9@o~;x^e{(+wL3Lz>5f{>o;{YjYl?FO>x!LkJEZn?Q@&M7y}0 Jj3L#Yii!ezdE=}0#`Cw;d_gAhg1oqB9*dkr8QaHD!G3D!hy5C#0!r`c<6sZtL zS06`zbae}Fx-`i$R2J1eowGN*!TtTqc74kHgG8~(NdIQqSA}h7ckfo4rje_pMlu~l zI+O4bifx2TG%bCZpXCB#z}+`lCh}e6+8WdHWzw{y`ISxmt=sWi6+O7bRMT2{ApR~6 zI50Q>KYy&i>ZC7!N{-`6B-&eJ(Q5JfXW}YytBo#NSB)S&LzoFVShE)0Ea&~JF4u}q zY|b y(eyn(`fo0+8Nd)vSbc+UIzM zq={rt%P*GQieer`9#?u3tf|tgrgo6(fMqXbn0 n+Z59`8?8@rdU}^m zP&K_OpzoRb_>KNa!vYVkgj`(Wo;Z6#b55JY5(y2`zEYyAhRG3UF`}i_gECj78;Db0 zES*~s$&yS!<(h%5yo#FIm9jTDCl%mDc8rm$Hwd1A!{8hrjbkI`b-OhWYmJh6dSB|_ zV0To!ifU{$X~|Il82ev>TU?F>`e_loC%=4a*kI-Af>p^wl#qAY#{h?Oe1|*MA5AOg zv$V*sj>_OJl az J7u!#b znUHQWprWw%gJ*8j4T$OKRiO?OVuXB`B`u(r*Ud8h$~8?wvX+`bkd&jGGQ-b$!7PZk zfRM`Jh|j=Lm;JfeGs(dbU2oK5mC}7HR$c;%Y7MLwR{_k*=E4B7LKW0zdXtAD;=R|^ z4YL21;65)I>Ob~{p9~AdRTr{9vr&lY{(8TQ14E`JQq<$iel5C1(OAu)zTsLtGhx=) z5cZC7n_kyMu$ELe7j&s)Hox}BDYRS&+DJ&uaD>=%BcCKfYF4gUs1NjynEK{Kd?E&{ zPp8jVNEbQ^4q~ro7NyUB1b>cWbaGj@Qc8U`X?ZOAar00gJal+<*gbUFFSR64K22Zq zM9K%<@DODbAi*xuNWCI?)>3}PXZTvliu@VF`KjcIfZUhuGkdby^x|@-c0tBfw~g3l zbvJEuQjuTku4@|X+WOe=D{;#>e-o*f+IsNUU;gz#$cTUO !j>h7q}2T@iQeSIe*t> ti{FMtgADmX@<<}afI z%SK|NikPZPsS{g)*uu@>jYU>6^Zg<~Ez)bz>BGI>%O-c^6wci3QGer;$c;#Fg_|}J z=Y~c>Mk@A%((s=*DSbS) 9(}&JDsI^_mUri z)^4?JX(_GySYCN7Wxf{Ner# 6Fl&&NR&kX@cpy z${+R_wtRm`_d{ e1*^M|?x z-!UN %(sAG{|k+Z@72`Kt292v;|;x0jQRo)B!&HTy;L7awd4T`6nUAZ0yxC zPwaZ`GMYFhZBUC_4di|?G|A3%_6+eFGjC6-oYE?^J}PzM1j_32CpS>&`NQ~Niq2Ws zfSVH+Y*nkR3UB{uz`p>?1DwD$MvAwY3F4?ZN2){hxL+9(DP-^XhN0Y87z9AE@MvM1 zaFZv(JJ_>uaO^#@k3cmVj2$A7-Vn1XJfX@oJyDs}k@eJIx&J-&=gkI40p?fs>-=M$ zzcG{eDVw*EpObtbyrfJ{pGkR(3kr8rNrY&b6>T}s;$LmsZC}2v OI<`4_rfRI*U`_i|xU%xoMd|CNt37;;ON*tL)>pXeU_VI55qe-B z1NR}za{6iwR3Mt+&S}m)6%kxClc{IPergw5{Z@vz_Npts0&BT&u%ZjNUnqs&&r2#t zT(ukNvWbA(lo+ip7b1X1)ZT!tH2pD%b!U$L8SI9Z+W8RQt-7-eK|=;hrT z;USKGf$N<9h8(9tWS-My#CsKN8dG2578gY3t@Jl|`;#WS)0f vf>(SAqkE^Jyixq> UoH>%HJFKcMaPpvdL zOXV5r>A}dZGP*SAT_q_A*_=Utddj=En9G_a>&*mQOiT^d<5yi(=}(Y#^Ntsg_9LDc zuTFpqJ0Io{;_|GW-<1hdAeEfOVH6++eZdn|Bb(u>F54V-W#56mfI}KYppGV@xQ1sp zn zQ*Sd38w_!SH!e87NZd1-s6*q_oX#Rfcl3%dtDilq!3&A|(AVl5l1D5k8@`t7!dUI3 zuf0AZ+v1}uk&`0+VUVHzheeQ;g-#f8i!ubYfRtDZk9?6sKp51)6B>WH;NkQu5vZH- zelc+MOJtj6((s}%*yu&gVig^fQJ7Lqy_xw!uar1@AU T_fE=3)z zT~m!d_B@GS@~Snr#wr _tJzEttJtBlis?$Uep4* z6vvyi#OcRwqO^6q0V!>j4R@aG(kZ;t7SoQ@Bl 79H?OCOo8S? zudQZD7xHi4(U;0B;jSZuyMCZZ;xE;YUvG@pYdaV=TUfDn`dLCwtI+0ZeYNOk50{ ~&Uol-fVfELhOLB^S+~Q9A4dC0i-h4W;id*mf>uUoUuw{z3#A z*W&VP*yb!ol8~X@Yi}lWGi&n2{a{6iX|ihi;BN32LK*!i>Fa-h4ndOz97!h~M` zs64 Tf0_7p8aqV0_PJc@mKVjc 2k0j{P#Wq)9aTq1dya;w=#2 zaoTS}%QBOW9I`A~tGAC>d>ERYT~SkJ>k(P;riRFEZMsy8E`dIp$|5s45q$Tg<*6q| zofG5zL#Cn8prXZ)JNA+ND^S@(z8HW0sgjZ{D5tLLm($r)#i!hvDBuZdXsshVb76;7 zi^ZV&^$#yG>1L_ttw()6D0y68dm5N`&KMhb*?anKc2%}y(dwD#Gt4YE3GrDUpzIzP zS104&;ZIBZZ0$y3{#FJ0xix_{84Xv^8Q{jGyMqh-p~1OpOn~KQTFB(JndaV*^#~os zf!?0lTEmTo9MNVP-`-4qYL&hoWX;k|{=dPX>hymV5`Ok6cgL@~Qn>TW93vW|=!K>Q zp2?dp3A799V6DyF&h}cI-UgS7EpT##-+Fo(YfrKYCgQHAftfF+Jl*<);9`z6MGzLP zCll&AN7W?=UdtXIu}HkNvr~_Wn!_`@UY*a{7-HK~!Rg0QQEE BC;8Q4yl e^QP7@~z#CoLJ;Vf;L68;` =a`g%4QLRyGmxIb=Tzt(ZGAmHWE+mkxh`DOAbuM>PRUNVh1q$*9%Eh8XD$o5I zeo!`>dg3X!>!tgAP@yW^{lmqHM*$NC;MuJ7cnK5w;^hJ4c?$P)Zsgp_gSr(+=C%2x zQ&?S4Y~Mjb5pn+J#~ }IfnYJU8@tVY1zq_3y!!2 z(dv7E`crN(g+-56bJ&(j*v{uJ8rKFkHbU0k8A%D)8lj>5wb&b<407MLJM3+0JGAmh zKF!DuYA8SD%MK~oI!}L=C%+mMPA@-Iin*5S)AvX|X=sRxbhF+9WS4%sYCpm}{UZne zzpktOr^)y~mg4>&eMMT{fA0@0;NPl&|8)|I 5+uq zfQFW>I1OjQGqhrF!kH)L1 xP@OIJJ4m5E(kzAj$&pA~poeVB~w^ zFooa0(Tj|V4O}%;h)ERB%kw0EWQWn={4Wt=OWeY(JX53+`?6k(Yk`MN$Owq}ko4zA z_HZ`roQj?&z&Y}Yfb6_H*X6lP(3%!#6_~>04a0P{)+&w;-%Tq*QpG|3{N~wEPanRc zE5zR(Ulwkx U z%=7v_w1X4I1@fm-L{S2~fYI=oDVpi}egU}_fty{`lHnyRXl--WU2<_B4Z`IWp*Kj~ z0xrQx4Q9_(N|+t!&%v!i1Z#rzbQr?o`=pJ*Pq{LQxS+8lB%cle+_0G4kxSoz?TEmu zGEKjasXNs(!t3v@HOQq(Y7H+0$5T$eMF}c|VrQU&&TO?`Jf_-q*7GoXA;D~2NWlrM zm*+0R?i*KJuAga3#BuQWwXE-AcvA5bOQDF@G7I3_m3xG6P=X2k3Eti9l`K5=s}T1h zzeUsex%D7rtoQ0v)@VKIIW>rf(qg3PzuT%B*Cm)Yim}q)6XYwjMs8JLmn5@*=_;mM z= 9! DNNN-?PQ28j(>R3mj$zgv%BPx1Z zaEqVht77>hNDdmm5$phm4=_h3am5+P)%GF*@iX%I_NXY~C_%?;b7mWp>6~J2I+TmN zAiV_$)E&Vfy->VnVg-cP+1A5M9g|j4T8c`d$cJJNZI5_Zh4jL!GbN!|ReU{ =$mIMB#WlNO)ppSCso zTOCQRN-zou<$-6&Kf`hTd3kfFjWii?3UM}b#h{4S2EDbl;q8GdCisVJg|&GDU_ORo zd4B5~O;grx8h#amw`MC$?P8r7PvJJy{1wj?g~V=sKlY>s>?Ihn^AfLa#FlG1Vu?gS z5ttuX?E6u E4L!|gcWP_{{X+-fG=%q3i4G-jwZQq{M(&Wkg6P1`z&GK*pU8oe1(42}zillX zSWGKx Z9q%{tNzzV<3BdbO#jTZ%uQ-?K~U(=uuKyS0cD5dl^B zSu3PG3&OW?VFmuSDP#~2nCuz49svO$rlw|*(*&g4p79zAmlAS5ZCkI#>Z_q%g37by z7Ovdb&=p@iNAjdAw;|=PbOZtYcacFqbRcVv5_iPDF*{URsiW&=Y5iRm_brMW5f8>j za7$SFf$#hLD{FY1Ur!GLm+w}~sWhpqLVn|=l-g|VtqRTE$&%qd0kMYCbu#i^%IT3l zV5!qLLv &)eZ2+1AsX-R7PV9?olG;dMN=3dA<~ zL{L?t6n6;nBBR(ze}As)_#HpwlIXVlhW?hnhn5Cn^0@q^8U^l`Su{nN#cs>ce#z;= zlQ$&(-6&&YW2abEfb`AL&W7h*{^%Q9Oe*$&c$nCpto_YNupo{HjU _jKn^z~;0OMCsNYIEnMKF6{62;4fMr$3}_CadJ zGg34M3bSAU#F}`|>4zyJHtH%d06g%UP*=Jc-5aVETe#(8s=by5Q35du#s$sMAv`3X z1XbM0Vt;gv181q@*M5=Vy{EH7x^?hb!QgFyjW!E|RK~1w$UHj=e^l$2X(HKoJpzQ7 zy8eBuDw6wY4g#Mw1td?U=nalNGg{_w%_9I+r0BIwv-`*R2!1TweF}uz=p< 7vjAt_*Jpz(@8$k*=Z9H6)25 z{KUg(0S|R7kfXywcEi8RzWLfN)=kKIuL($XZDb0`!J zpG!7b?L%hfR-8QieHjVuDxJMbJd;qKn}E}9SQHwx&< OC$wAuq%^fm{ z;{2SbIHXbV>by9@WLpz09*K&wnnrMQP%FMG8{E0=PYOzfGb&x$?$fROO508ADRiS{ zg{Z{=62vE3{nU@es=X6}MrGl>4Tyo9xRSFk4Q!WI>e!1ak +f(eF18T zsB?#&ho4Qj_xWICwGjg0dL3|jld?K1YTlSMHE+hcL(E_1c(VCrGW?y>dRFE<<0q &CBShRFzSHy)G&SmJd(04YgT+I}nFApCkJ*sAMDrpKo@lGq_Z690YA zMm3Hm-YaG !b<0B7ew;12JRR}>$% pZT-gLu(P{FMG5R%?K{fD zwnK1=t58sRaBFi zmTC2f)0VWFq)Ka5j!BaVbdVi6QDS5PV?9X@pTu%CzyaB4 zSIyvauw_%O;q^EuzN8oiS&ZcC5?XK =ax;K8GPP(p41mnjT}hBKzbs5^ z$Ak^n CtV9b_IZKVpRoxW&9@O!q;6 iRs z=hf54tF>9v#6?340ZDE1RkBb$gnfJLGJAdz7zg#=Y-T}vPnChuzz?3ozB0P~Xb@bO zaul-A1Y;q@RL!YgK+j(>(hbj5lKxues^Ofwxoj~eVD@&>%^JB%6S~y~oY`DAKhPcD z8k;U{nk;LGX#YLl>cbl;{u(<)Wx>sYt7E;1EmRTo>~fhB_{(gL$*pu!AqHFOris5U z&-@{+QY#IE>?JySP|Js+K;1dOpr(l)iDGwrsT&*0n`t}L@~r!Xq9>O;8d#--)s2GN z`pr=d8)%CQ$Z;Fjy>hLhLKtEtMI{JS^@BT);2BbjWXT~xPdx}Z7e+ZoJ&+qlO0$=m zm2HoRYs>+_YW>!<%`k5yuOPgA#*2fIgpx{A%KdWnf9uhG^HDdekCFRm!&CfWn^PIv z&Y?|D@d0i^gB6vi>#k;Uw&_4*9@F^;7LdF4d{{Z_np&BcplRhNe+FZ^eGuPS`$p;t z+&}2;J?g>k0JWW@QtQxN(-r#D?cfUux3d>|8EEYm4YF)qnKGqa9TqLInsiSVm BzgYUZS<;c`9;@yExvH35}^{-#C4GPLD=E5gXApkZ9&1>~F)4_t{dpW~=f zuM;5d!7avn>~plq2y6(nLTVO5b$c#xaTZ0_(z+Pb&LdpXX4pYseZjJIiEwT_TKGqD zdfjoHh87yU*UZwiq#@daM6M}fdl5= A%`;4UqdIS9G};EdyI~p?^mC6IjNC^Q43{$ z#%O5QbwvB>q`y`7cd_Ygw7JXfF!f}IRcFr_y`)mZOZeauSAgD$=gyVI5kzZ>Aksnn zEJLYzxHefm-9PtyD7!7%Lf=;dsHJ)ZyK)d?aPGNhF2zLnHE+eLD^>$|r5AQqg$yec ze6xDEA(FUtRIeHK+)Jw|uQd5=(AiSMB$*D~*Y;oTpJt9{&TCY37|<5#zID1>Y_WJ< z^3ktbL-_^M?}XW&wRkC_hn{G!e?{cF wl81JNDtMM%|cb zX?Lg_5v4C@A8x6paY6lJh_`K%3IPrx9~3m?4#Jn(AuVMwIU^|TU)#Ihv|ZsYtmv;+ z&s XFu7MN{kMG7$XqBKQMGL6-QYP=|f(9k;u4Bv}Zi_2>$L z|4CRD1m`G#mHJS}k}OjP3@P3#nCu$7Vt7wqH^lT4wSu|>wP>-d^y+q2iUFXXt}8u1 z2LR>g>Y}9Gc@1gE3lmQi4{tilfEt|)k{z1B{3-I;B&icFA?8#lo+?#Cb&qfAU_VJr z%x=9DAOkfWxW9U%v9;R@&uMcz1(2>S=uWJ0HF2X(EU&FQ7alEWAvdRw15z;_&B2Pp z{R95*f|tWKYm$cwuI9c4C_}wsn -3l(ZVBi@}!Br_$8IS`0+t*3N}ym(#J@ z=Pw5rt%iHHmEjyZhufW$0n^OufYjQ)7;Yd>SiIy)NP8|Ud^5Gp-;QlH6frRxoeRZJ z&n#bmFsfkJnqUtG4E8xMtklIXY3y+p_I!6VHMv~u!8MXP^T}&c!iI|Z&uK+zw}Dv_ zl1QU3(}css{C}uF2GXG*wrL2o{A$zE^tfac1_8Av^l)mH`U@}3F{_&<=U+u-!k}MM z7@tfEulRZgy6Et?>Xg_6+jYwHq+|F5CHKxPmpFEE^PH6=M;4Ii&$Y}Cr*YlH?|49d z0n03TLWn-vzzcz#h38`yM>RBxHTAN2LsoIi$<$~7$uQUSY&d!HL~Ki9z &(+U$*3wW{P41oeV>6hs-66$F#jra$_!udrskDdG8RJk>cv8v z*hTuOW4tcKbsia9cedSTop_j(W+Rr$C6ky4&>^jm1N*I7Qgrl Z`kFX#U{k zN9q`0a^7iv67k0S{@139lb&N{LfZpRCyM11rq3OXA}wyUm{(x+pZuW5%D=Zi;-=#8 zAPM1JUUc!^BTnypJCy+@w5*)U5tTavpupBmEnKlw%zspMtbA`;t9C3_)=|F2m+fA7 z$YZKDH>;t;M?Xf6t|G2odH#H;Ef`U9f5>!>@_40YUsKBN?~UqP$@SyTlU4NFC4Ss8 z(FpPVCY4Iyed#rWy>Um)(`5};*O$8(_u|eu>ga KcN!UiQl?$d!W#pr_}nLb655-JI90BSu#8#{ia85D?dM zY(C|;gip|WI+IacPEMg!tELsDoSb|j3b15e^qGt4)hqvdCrq*#I?(g^WxF|ge{=lP+F1eK`es> GQ|Tj02S&i>z=7N` Xx2kAb%Jda|+*% zxwbb+Qg?M6oh4*AhK#28zpd`&mE=5Y-ovW8c@8upn9> >Tw{|#1mIq+c08P?aH@N-2vO!Q?7o-Y(9%+WjVUmcXx;_#UTSz$ zp4RkQNe<;!gk>*xMB}a_F^nX>f;|RyXvW~AMsU!#xQJvBF~~FILK4^-ubzMp3V+mB zk|VC@c@%{WEnSUEEJHIF8-|8+)J5eakZ0ayWAgJu 1RLc{z8QwI#hNF6&xZES5rf*=f1c6b{e;kwF!mQ6$-DaiDPacd=Z^r7 {Vf??ISKl_<2QZdPKC+o z>}uB;fV&-B_7S9|W2ndaE5-L=zgF7)4A$hW +iIULo_aK7*~TYs2HkRiYq5~uq9FGU^@byO4Z{7DS@dkW>2ikM#*v3*1M=zButy|$= znJ$G4vOUFLnquezk*zkIk*pqCc6=@z8M46#!ZNiHI6PDcEK^MNQxS3cx>*gezOS)xv03INVSy_aO zkP|ezE0l<4>6_#h4iiE?LIc-y6NBji&xTA(=P`*b_{;r$Jyk_BX+?MZsr hs=lp^QFm*k(*ox!N)kok>M1M&&bRY{9_h*8DeMjj z2;9Rt?jbgNTWypds)9f=T4#-0ko*`F3dB3rqi<;JU!*HD7Ij?zdnMS0C9DJ!mohd) z-aHTgDSox#VY-q0F^I3g>gX+NVT#l`rS6Hfod(=hv-oqca(yLvvtC>~XQUn NBB%KNsVCGoGc{7?ViEfN2B%EJGYVB$Xkl=okj%S%kw?jKmde{fy+ z|4*#=pWS}3oZUeq I4K-~OM#$p1CR zmZ<-C$_)RMEL=J#0B*+Pqp+ZNqUbFii45%&mS5pV>{(%V$=^LpjUJ{l@jC2G6=jK( zB8{W_2%uQT!|!D-y(<+ud;PJcjfe{Yl+tdjPq9~4-3 2?*G%VLI8rpWGsz? m3g@WWbBu86pC3K0p0oQ&ap!B# z(?;Y2e|@rR?;m67(_cJfpB$x@yiMtLy4XceUnR~qxAGR@fY~iJ{<7oyom9IY0ej!~ zAH(_c$@jYDg&((7cYWvY=O2;c=#Pr#e`k{4R6n*=dXlO=Mk~RLH!)Hg>7ktYEs6ea zkbjN6_DqsfWQA5fv5Vx_*PkoC%lP4d7;RNTalIAH=Nf8Fo8UucR@wpERqofxA)IcL ziZHm(S!HG6JWfpND9~%{ad~<9);1r@pACA-{YfGfQsjvRTMic6HjeF`=>$?jY}(#< z%?%c$Y;X2+;lfN`-WlQ87xR587cV}Qch>dv+?wJWCbybh?&^If$q?#B8~i@4z88p5 z>3MkD3FK+k^ZG|QiTG`cH}ZbUZMmqTQdU|DTN<*)^Ic|BR{>Vle(ZfL(RKHfDbL{p zA;D+PoLL+!Xm4$8ZEuGL1eCo{JLWO!*k1$@{1FACD}U+gx~o?(fLRT%a2 &4s0~_eqhnxnvZ~vl`|xXv8hz?{muFxovC8}9jXbzlcXu~R%c*Okshc`nmeY}2 zXobHNvi{AD%iwCN2`Nm`w!fv{#T_0Vju4ZH5z|lC#9R&A6{$L})F+dqR 5K^vG)diM;`4cV{UEP}C_wGYxujPLMN6vG@d(iJVy*2! z>SdSS=Z6*APtXbUWKkL(bo =<3s*fEL(Md^JGBgSvzwxX+5znMP$b23Z)sEuKWyYqbfdrjsaxyn6$Gp=0Sn6$B z0&$0^*uG=x?v2m(XT<_NMlNj;c~(xvw=Y@MjdlV-D730+L+y{6#zO=H;d_sK$f~$J zELK#z(ng|4amOQM5 z>eROO(JI@ Q zl+rtKvJTcX5{x2s!ROJPJ9jRl2=5z*O6*lGj{E^0#=>Fif9dJak+H&Zs9x(c1!&wx zuP$R@KtZrqVrh7FXfjr(0xPsf>L@zjBFA$b=}iur-Im0(yHGvWl_>iZoJ|iE)zGSi zI`+}5&k 4O z-5_Zf5W&&MRWl4bV|P=&HbziN7sQc2vqDx{&Fq^)ayDc!7)%Nf>iP9u{fl`}?LuC@ zfq}tRkos-7z^X 3HOz@iQ&LpiC(sbOliiaoiMUh-5Q=fw_+$6#Ea2za z!wL@_JxBbkBg7oiC1?5~56a#2T_;{CbMl|>Jrg`cd&}o>!HBu{SA0W{pAMheO|z$C za;! 3ST3 z`z*e8E!k8px7I10J)K~WHu32F&?=4-@NRg3e}<)B@oi45@fV*(ff)U1F!BTb-OD#` z-W-RjvLwL%G~!k(xkz3FoupCtw9IxVq}=Q3PkW_PSL(*B%jg#GDSHtu{ytRXcF67#v zSQ@D@aTJdfXdpKxvl1;0LOY{(h~`l@4eR%5#(dxGA1x_DKXp+{YnI1qWdG3=vh3Tf zb3Hhiql)0}l6z3(NfMe-i*DNzsRrl`?^S>^@@yQ?o)DoWGRN& 3UR6~fkHhF8<~wz-NKkKUw;m)S*T0m116$NTeevRj^H8y^{e(?~kD&Q|`I|Ry z5|k_)ot#7kNT qy@zFk5}306Rfn31SDyS^g3_cWBFr473WP z&A}&^to>t=SFr0|-bsc@NhvWWt{mu`O^18l-+vnHMJHl>&rmMZ#6ncg`ZXVmR %^b15>_irHuuTI@Ea&(}RO}5$_MRLA8*>N)xGtnM*I(p$KQJ3O<2>>W^ z>B~N>sC@S9pU-YZA8*3lnO1fGdj7bWjJBp@2keLCJO&g8Gx(tc>l5}s%)Q`NWISiZ zywWx4EgDL(UY?+iYFmHJGtM6Z=GG3*R_b@qWomxf3ix#rW uPHg%X=bx(XIbukI+{*ht6juDwwjFqi!p)loJeHEBqnura};fDtDlBb*57zxPSll z&j$g7=Y=CqY5tCvicB%3Pvf(oNoHBbEo0KhFFx|R^vSHuvGp|s<< luqdRAfHQU z*MU4877f)Ro0IksbU{Fc$_RhHDP+B~=NtaYl~^ri;7 Etwf{ zusK!%iRv{~a}kDs3G)k39Q)x!U_d~?(M8>&rQxz!heWF*ow1 g>%AEyoJ7g z*W)KZCN`TwMGIPVWDwihmZ}aU`PpCkqr&&|pReG|rE`dY*{-z7=2#Tx>-DRpxA*5| z2?JVJI%BF%63SUc2~IdJa%m}5e)GLi>X822K0HnN>`>JOU-rthMl2+W2a?lUAl0yD z%kRuB C-3YX?buwvCVnuv{a@;XdEl06JOe&u;cC z3dyCSJCj!XyvT2phRX=?1j|0OFf4_0_Xy*2c`##id^t)T*5#a1;x(S}ZXrLrUaP;# zdy?JVRl}$p9W1br(Y7qHb67WY)GIKrkkv~KT ?Tro*uj7+}0Pm3HiCNk) zjY^@Ph&<(lLNGIK?v2=Y?708Nl6@QWZNlKhEQp)5b;VO8L|)bP!%puSXu}^nZi;5? z{bPxONAfp*%IXfqA_ZJJs@7(_VJq-Ut53dANzfE*l$t;g;{?Dbp}G|ppZCtQZ;8PM zGirl|ioqR&f^}KyNCkXh7E}WxuGiMq&fShWqEtB7GZ~|CE54BW%GUxN>cP&(b4m0B zB{(CR!moVy?l ^MeNu zCIa97t`l>@n?0QvvFea$eWdd1`4&-Q%jXIRxj(RQ;RK9D0$BKGX~IKQw)SM|2oJL* zZiGT1|A3yvs@L6Z-Q9w*FmW+y%^_i+I?vm7B#_$?;xg7X0akZfU)_q9MBf98pK^Wa z_anQwx_t#gWIf`?59a)Ll8FD2OypmaTv!JQHAEm-yz2Wz_+i(k|J@-1xCuUFY<41f QQ+e*()W1=9&F1O<0R~Y*r2qf` literal 22275 zcmeIacUY6zx;M-oXJkfHW^5=3%#0%_2q;L0L`6kGKmi45QHpeev;ZMQWspGxR0O1E z00F6?_axG#MtVs?XaOln2!Vw3FMzYpxvu@4>zwy|-+AACz1RK=cv#O`_qx~J@85c& zZ<`t(*eAJ9L`3Ak%^O$EMMOkDi-_#``TK8#Pd1`_eiIS-QRL>;%a+0Es|0u$o@GDI zLN+;=Tv@xVEO}+1>h^)9J>sOYZ=%{&3dH|t+jH+(g v#v_zglRA5H3vc9b>hPi0vIHC4Jer2d@T+%1WRDO?stI6%|%#fxMc($MQ zQ20V(f>QMN+l+l+J2~2ndMCXM(7ITknl@Y|ZqExIN+J*RAnw?Y zg6nN*c#>coHD1lL? z;y?>z-p L`OeXTT)%1kCQlqnozWJEMoM6=qG_LDj49hEM$!2rO z`P`)T3)U^UgtTsn7qqMPh37Jiiq}|)FY3MI($W-;ytu=vSqgwDoB%a@8%Ns7`RgYm z@#hi?@xJZi^&N@HvKP`6-#SK<#?CHuTvt2H>bg=cM;IKnLyX^qmu%DVF=E4aFVivT z184fPGpUR*9huCLoQ0rAQ{=@DnB6_NqN9Qyw8iWh^tzxK8a}--@p@&b*1;TAyV+KW zl0E ~a}Vdbo6O#SQlO+8J$@D-;~4H-BZ0 ndGpL f9^EEue4osqG(|kuobQJfZ2+Y< z(Q_*gpMr_1&B0VQWQ{t(n58ctqw_^OT`6HhU9YG1q|o>hW;OXfC1bgGQl|J6>2iK) zhF+L2b;`WzsUpIv*X$@g$2D_RGWDH3V`=#+nJ{%~dm#~P^=96~JIBeGf#RYS8R)`Q zR|B1tTWvk+ItXbX@G~$BCYRbU>0bp5$wHoeOgDk*90b|mkE30|{ 0DJFW0k)rF z?PVIu%KTv-?-yG+40P~ssB`tn1}vI<11Qs>!DS^YE~x{SxTKdzQ=LnW+G{8$C#T^{ zig_e9p}5DuxEj@vSL3&G<(Hb8ER7waAivcCPwvaf&(y8`T w8CTg?6$o!b z(c$2AUqiv>gxh+H;a*!Hp)su6^jE@^9b^gb9B2 0<)|nE zI1m~|$8@a3Z)DW12ZK)Afn;P>JlyUx%uh?2hOK)*f5|i=qEG2%0zQv~hI4bf_ih!? z2JFfoK2Cz3g^=)x?RW>=)EF*^lhbiXNuC|=Jh@k1!-Lc_9N2VzgB!%&^))pq8I`TD zM;?xj%QDG}hax%RV#JgeDfHGciJ;e1@)x%{WB<5ZN%3JTkSroLuM_DkrleWDWSxBy zNA+Vy2Uvt+jV%&clt?@DaiwpWeqhW+v{tJNXz_JpBE|X$aXe9_&|N?LmiLZB)Ohn+ z)%M=z)F|V5V&8F Z=d&%9YTAd-lvb1zDe}Y zyX65rI_7M#811@jbrIb3Zb?=u ddRKL3+QsqiqPd&-hTm<^tuZc~n`Q|!FhC7GoGP_EcMKe`w$v59lt@^X zVJ7!H@?$N90g@34NA{^jUQyN!%r~^xdnrG9ywL!8a(jXYr%s%u-!AZ8bwdjRlC87R zn+K`(M=DR{XRZK&0Cgz>s6fkqj^a4Lh9o0BN!zc8q+RkQ(j3c!o9qe|6T{33ONyA6 zRBcdK7FMIh8TO6kolT);-U=B;a-J4}1 vdcPt+N%D$rneaUP{_t$%d3saj(&=heaU7|e%lel%81(Um|L0S zEfLpyL|eTm-8<2Z#z5(phgD%6Hw&tUqQW~9I2P(+Q3*~?th)e$ImMA0b
iHn1uf4)NU9+8LzC?a{zFZgVrQ%%b;seh* zw3PI`y)*rUR6{yy&gq!iBB$T BeMmw&E<_;R9)Fq#)L@md^MLlu=w3+Hxa)vCm{A2v=H%D-;t0|#fH z*Vt;#S)>g29zH-W2^5Q}Jk0ClfJ0szv&t(CaR@DKfRuOdR~C=8h7Jy2ZGGL(OXe(i zQiqMr02&jMHQE!fBrUmGc{x|$7Zj*Y$S#W2qY&Me92xHjn8NDfAyLDZ}I zg$Hk~Z&{LZ3*#R7h%M5dm%8efO3P#-1b~p4t`1L5DsxPJE_c>aIqd}E1KwqGs#E9C zT si0&%QkCIm?4_aV -JCkZa!ZbU ze_|#8-*~(>zZ8TD;2j(*a$ki#oc>txD8p+hq(&VY@P1vV*ADY}C?w03wOParN?!%O zqQbcIWM-1vvb2u 8(;b>&(uzAKX8e};(v6fC))l$n zt;DCT91kCUSfD+fR*7M(ckNknE-WuE)tS67yA&q@l7_mM smj=dHr{7vH(Ntb0&SWt63LqIPVO)My zA;YH2U-_tiy;qiXNaCA<0KdDB8!bP%_(z(P^13YjGLUP9R=fH``zx84{zc|%+%)qK zLD0V*Y#Y3P3kv_mkN=JQ_()L+U+Vd3dqt5lKv3OI$bL!WZe?ZVz@q|wS`LKET@{QR z*>NZzgC0fc?hO6*=f6fi`!7E*8Cd@HuUbGEXTVT4R-^A!BXw)Z#C|uW@DkC*@2vB) zNVD|LGT;38uLnX#{Lk>?3E`&|i*8pnmLu!u%v<>hG&gCZb~_E*GkruWn9hlqZ_Xa= zP(GNB(#des+ZxWw^JO-so<4^%DuViG61-3<)I0?jtlrcp@Q!w|JCNSpm2~yn?Ndwh zxNmQpW&Nu?Vv_rPZG>a$G}^R%^)|CPtBW Ai8V{jB_m4fI`$T&bkXuEN$y zV)BCz(G@XH*uaw~GeI-eMOLNaVe9};)k)_bP;Nu1adKt>Xux0bQ51p_{BY(`we%ur z$#Wdgz9T6z#iTnvksgy#rQuCCf49{=>DH30bWWZL1fff4*%T2Uc0*S``+qcTVy1 zQe_(7C|%u=uWwzWptse=Ob^6ql<*B@)~)vTzXV_PiO;syd;K9!E}7EA9f _*)!<*kxg<2N8$x*&K@x z72*ycWbVI{tIVg}wzYY@>t6F-zWw1$;Gd2D#dDF->oaX@1u@bpGWA%y6my^XVOBJ& zbs1)Fh;xJ)40ON!xAZz&Ini`1{|&8C-&&ZVFT~`o-#K>&J=>R%Y7}XwVRfecP(i>l znO=~zZ=#pWljxBc9vMqk!5!O^`EP0adXISx_a*^X=rBmCRh(B%S*Z^rJu0vyJuj$E zPYyb&h?xW3zo4m+n)1o)*bDWgq?(1$#g6Uh{Q*oP`{dpi?zYL(GUiQax;5uhLULZV zTTqzqv{BDe&Afi8!*S`8ClM*YVozYu&qpy~M8h+X5k*(FStdqD+rQ_#k*_IvYqWUx zeSra4ez7s!g!6eMUXu`z*fQQF9sp7z+In|RSg})QBYP(nL(O7u;r#^av1Z{-$i}nv z*D&mu`T_c$d~BQ@hK#Qqf!dns;cx@KOe#*j>AkV$NtQL%zjdw_@W^|Pwg_b!O4Y1O z!ClnJt|0A+w`X2vXoqJDCWm7c?NZQN-O-^t!un+Md)tE%ZB-@M8!2UnOza7 ~(;dzm-)hjM#OSWXRDCf6ppt#tr#Stj^z{K1Jw+o)wC9-m8pH zc1!SCo@izx8Jg$Co)n9crK0N=pu|hLT+$p67xrFou&==@$niaOdXBJI*{(YkP@>{~ z)+*#P1t)lVCaoc8eXV(_hvl}%3V?ivP*^Yo`qlY|c&j9{ua?kFwypAyy$wANU%ji* zAD@x2J~t9p>`AR=9UvtvnmKsM0^Xo4ZmPgz59}wtlk+dmZ-Y(&j2wU*2ONaSVMg|9U8(2~3TFgn#0^Ljl&BOD87U8^PY5UN=r>UjeA; z=!FIP@rQ=2fOxfZz*x$Z5j0;chbQ|b+})2~*FY(EH4V^spU`!+$u5UJL8I^CwT`)F z7Zm9mauOuisfRR)0kJCXr{4kxc rG4n0k$Vx z)Pxm?&tqjtO8q2iO81e(cxKSBd=fEaF)=farL9eZ%A()7!)qS)c>SsTGBcEdzfxK1 zExYARtVq^*ZKRo-i6o}!;RoO_jnt;K*Uh75Ol1(;1~l06r8Co(Et &Z#w&K6c<{2o-|)=85% zm-XD|o2!ozC%ureFQ1)pQOQKt9WN0Fz-JGFz20Kn|DkT;h+I0YL@G^htk_by>J0^f zapZVO Ej;~RV>D6EuZNoitIz%wUOzE>ac2RK@qbq41{%64#=a}@J8*n zb&cG%pBek3am`7X2WXQ^n{R(=Jdu{y{ucAe6anHcPe4C3hP2E7T9Pil 8@1`Z>WztrJy$I30|p0Zh( zm?fIxM2nI{Df_gNfNU=bN}s7f(mxT5Am?6ySGy%fs$_t9HQRbsmbFWmcl$wR>`y`# z`T&U`55r4)rwe*Y5L#u!BVtajdz13Is$})eWtTnO&6>i@5;;mo#d6I_MHl}J)^kwC zB!Xid%d5~( gls;uI~TyD!&`|C#jxtrVN8LcO%(ySQ@c)MmCpel(t2U+o|x$R-Y z3Zv_y-bY54<7eBK7I+2fsDs-TnbCotYqu%$1quC}9M$31xg~YPk+n?H`Kz~Z4&O3k z-?)9z8P)S^Qnh-tuq<>pLoFdH#wjuRDoQ2^A%%+gh57MV
T+`c|kt8-(D|-72G*az}WYU+3CGgD4p$lCZwo6Os+OqZXtEv z25TbeMH->KAIjN2RbTjSJsI;i&L`^qozuMLOFUohYztws2D R-qrMdPmwy4 qVQXI|`2sP4&m%;b9)G=~bGqCOhI5IGB*1jE8HdX4F9=#x@H5__{{xC*}GpHrm3? zh oqF);RU#dl4vVMwb zpDT}Cx(zk=wnvG+8CWi1pN=JL99H#|dL-+-ljE0-ME>E9dpV6RckEhlvga6b6!K>? zWI+2G1Eo9f>6+yIRZ6-_{d*}1zAr~BRXXg$Gw2bsQMqIN?m7wBqc86GCE9)*+j!G4 z3w0C|msFD7Us=DCxIZEPEHoMpLD#&Bt=S(33<7(A7DJPSiL!<^n{NA6-sdZlQ$ypL zs_TwmD9-?1(;MsuFMKrP>*sY2(@h;yN53z>>aiq$_=T|MBzSF2+$pI%fPQ~ys79h0 zHrFl{7XZ9hxp8NcU+Sb(l<|xCC%e9Lw~iydwed+czl1vIjl3;%&}#ZxjY85+$DU^7 zc}g5~^&cyhpfKXEo^2TO8?D}{5sk~Vv{iWv +D$Eb2DbTgInF z<1=w*K?y~#+?GN;1he;O(OLcSq1XLttCt*u=3C>*oTnXmvT(mIWaBaZ8#&2ITM5H& z`%E`vsTe={jd$kZtE&SHdDA%Tb*akT?P+XpukEHqZRAy$KdkT5NVm3CzOo+AdE*wu z(AYrdCz6`g^?q@2kPJcrevMKP_b8}WVqstVU=*8uT|Dz0P@25j=F8+5Mx{zIl&Ut& zAF8TpXk0*TW%mjTaO=_q?FbcXj 8OK8p9 %^lGX>hQMK}4hp8EiWFLO zxBWdTtoYOgKvO^x{?A<@8A;u?_f3Kk51Xj#fPuGvwES>*s7AaQ2E9?Up@&P=*D*iw zSk<3*#cVM$Q&@qblC>t_KNC4yT`L0ya!DS7w)(-LD5wNRcBcT9FOij3&WwDzrzdq& z$6@fQ1@-fi`QkvNf9XA$^<0uwp(l(ohbk%W$zbv|9s71^IB+QDnd^u17rYzKn?FkX z<226Hq2V*#+J4gnQ96Me4-cEpwNlY1CYh>NYm8nM&kAmsYq#ojkX&8znzDk@R}PO1 zlfn9UU0?o)Ra6{awbxZhp~ss }561)WIlqxwn=ub{qNAR$BR$WM}1k+!@`sJlbwpy%pa zffaCS?X{hk%1Dv>DHFi0bsC7jX$8 G{AKCA4RB3bLsI|?lyLU%g2FwK0knjzp zCYeX4#_g^pCUzJP;>;q#wpOdn`0O@(>@a$^Bixl 2t{t_?^F^<+QTqxr2&|J8f zPrQTD-RVy~QF4lH=EcA_5|f0SfiovJI()n^?SoCJ?BQB&C5T-_Wi3Fyaz(xPbRE28 zgU!zu3}B!oKk91{)7VLHZQm~$<%XwrSTO!g(6u5aT^3evjvIqkj8rRN49;sZb?a4l zEry`4Z1S`Y^o29 a~S~g@woD#_fcE^O+Jrsonb3v9gBg@TC#K7M?|X zQS&mMn?q!e3}AN?>a{;h9G^pH;xTM85V%!6D5WX15=X-fyqKN>Y65Zg+rk}s^llf8 z&rGRpc;wa?+J2}>hE;ELRPOEB`JZr#i*>Go2kc}JE2G46l6cQyTw)#mwR#p&IXKPN z6osR>obE-eS7!ZsVKxOL@Z7Dw>1iqMqvT-d2!1;lb8lkGp?Z^1hedut2pFE2a2{}% zV{1=}&(y&;66Wr>K%rIF`cziufim$si% 72xz676Pv8@q8=RrqbL z(b?Uj5uM>T^VY|ysLfHl4zpH3mS V*QcLZWr;-~>cue&>iX z&EO2kqQGv9&k&HKWs3`6$V}W-58&nlwk(KJkyiJo^5Jx`uUq(@`2(dAiP2WgEIL^N z&b-C7AJL2xjpwz!Mr>ue?Xi>TNt8IbdlY$%X1)Rm3~zGGmH0grJzQA$MV4QJ*iXbS zX0MwgxhuroT|F2g$kz!N5@>7Isf{Ib&BA)3_4%FsdX;j%WdgZiPyzQRzX(qDS|5yW z|5SxXv-)-C|KkBdYCv}1Q!Yd5l9M`$lhZf?dKO}T(7_QF oP{xFEUHj|^uHfl-@`e%50A#p}O}&+Md^ANQ1VrX)ILVDqt> z#1|SLHQQwD0UzW(=JaCDu60O(d1+p|prR*zfe2{|k=;iv iGmm$+o^|%FoO`&{KG_{*(9J83-^T#4j-7rIXKMg7D5EUyxLujEL)-+#uv%L z-m_rDJK8qHBg__Ac;L*RTZt13hY|ZgxJ88(PZpYbMn&r@iM1=}F*olUcljS|tR4f| zOrV;&egZE-MUz)D1K*5Px!&9dZU)&Y> l2WNF?6H72{v)$~At2mfY( zV3qmRo@}csgx|(o6`J$X)luXd`}6A%;CAw1ZdZkbgJI>h9eP?a3zJBi`zC#n7zA z)4SUdb-mV%DqeyLxFA**^SbSzQ0B(?DB`hQ7238Z4nfOsRyiTQ7X&ZrO)MzRVGkJc zr!0V9hwQ0-G0i7aS$QBnNC*R}y1USAIeK9u3&E|V@;kn2`G>pTGTr#A1)VYizFSZ5 z!Xg90wbuDcf_GpuYL%+L=@d^!7M<)%gzNt?qe>FZfa4Lo8RoXP`fAF*v+OGYq{2y_ zl|+GNIEgM`#b=8yLitx5xrc#*{_&h$8{zf0qNy1NMk(Z;fZZuRnvZs&&6(g9&>K@9 zIcU1R6_5ceBJUoLwCBVOdb$V%=S>SjSOQKmMpIU39SRQs5|{C_2HXwt@WuSlaJKYF z<5yRqIx2&g(1TJcu^ECAH;cFaP;8bg`_qhU^v;YAV(x=|RX9S6FKFp>P)6|=aFs4s zyn_%$=X_@ Ag78{bggSt_$n~NJ{6v$g{Q$+T~$&E^NnAyWn=gR6@Dew z1ifD0g@y4kP1Uo8<9Cme1*Kq4m+S{lf$Rq;5sIl+7(N%gv)=dvsYCc=PEHCkxrc)h z@LJ%kbp*c~(`yKB`U%AfB{3@ugAC*E8OH0aKb7VB!x;oBI}`J2t4mNoNn FwLqI=sQ%yH%}UJ&VZS{zH=fbE5y_5vy@EPq@i1gc;1X z@2_4NAT&;$fL3vfxWDXdv6z_jJtfWEM>%w^ueKY5z88Ax1)32{Esnz|)_5jUcD-JM z-s&kA{)T6zV6#UJq=?!D;C|G3H{&ot=aYae8=7M7u0a|#@EQq<~nHUb}|a^Vd2I z8PgZWTd4$p)tu00925Sq+%D*L^r|nWYs?tj#9FZ3wKBzTro$C2Tz2TQ-qXyx2ja0; zzW!^F@<&=9n)YaS?xNr7h#p^IyiZ0{&G+uS^Y_N%6K_591)^#Ak^x4~CX^SO11E7N z;TtN~cZRJ^d(8<$IzAQ4<;x!H5$)V75Fp<=2t26*%2(t1%KIcMgnqmHeP;c$yv`P%KSod-!UUP^De@)Bm0t3 zWO>XUSEQ-Dq&Oh(!&yA<`R!iU$_cyhhTCV3Wm~KMWcJ`Q~OpAnMf)X^`riXV9vg zROkiWVVJL*A3qq&&zzBne?NAtDkg<5ell!^y~-7ZBEncL(E;zi*qwxy&P}gz_aW_3 zez57GeA|S9h G9aIg1}@9A;E3tyo2w zo@5Wmx(U|Wy)I0)7zz6=JlPdl$v)%~6{hB$le=wPK3<=E+N?kMx(~K6S NPIs%rUdy3W@wO?!X?rnnO1zq?FgGYvz#FKzg>UuU;J(Sgj5%1hY4KH)jr$ z%{E?oO Y|Di#qD;Te|Wa`>+`o=!uCC|}q=es|8!)b?3o$__Q-e9Nk@`^EcqXV$hr#NKhI8sY zF^m*X!7@b7A+0x@Vh*=jL8rDW_L({#+lvEV&UFm;$l=d^gS&40op6g!Vyj~#ICx&^ zXF(AHx>CY%@RUl?0-mo()o rqZ6fL9fh%wobW%dp{t( z$+98am5x~l&FI`oAU`E~3; J+!0=55P@lf zyA%k6F7hKC0s5-vwQ913t*-K!p;KZwbmz~(Q-9S0m=|R{jH#bzg{{3%&f79*BO3vH z75XG$KH}_AKUQo?lPq4tW+!^{DkBWk1X9T>SP1_Mmb(VIu6uR)5@gZ3Q|vIQHG0NE zLf1jh4^eE_9h dHPL3LjbP?ON*=hVXe4_S mpDTd8=8C%@Bs0+~Y%_RlcuFF`dygYa?4%;g`S}m*l z>IDc*J$3cpfsciv-Y`1FUlb=i ;tT1+SxRDVRK3S3EONv&7|_u=-k1C=?3C!Q{G%XT!x(dW3CHyC#hg+$dQe znkF774J#y<%Ku@HtyCr<)1~WtPbc)4m@3)B*?wlwpb1?WTEHS5My|yW&3j`rWwl^I z^K9=$m69o3= 28B&2N#GeX!I1 zMCgS)d@$1bz=+jr?Xwiokhfs@icF3y=ZnjP>+D-uK?JlU_xKKAx|aFbjH5Wd(Z% zk8U?jjK_Sm`^c-q^KHZHX7fh5XBu+DK@`>{rZGetNLg*WL2T{~CW`T*C>66NyXnKK zv#wGd_4A~|PsZx9E0a*~a0AvnD?tJm75|<(tZH1}v!_)vuj{1e&5rCreQMqL$)U%= z7d~4B`PQnF&BjLLW-BA{ mt@L2k%su)vGlUna6U|lETL~`Y70i{d z1{9=Ms;H1JB0T|hUXYM;_r`*I{zz_d6U0tB*fYn~ Vz*lh^Q|UrNIwHV3|Q-}j^y9R zjS@1^aN4c+xU?1JjI`oXPpVWf L@74@a*{(jv|K-h&L{;CHBWtrZuk^!vIxsR|Dm@Ydm+`@iz^hW9i`-Ei1 zjcMjCr%mb{%%Jiorn-+OExpc+zewS=p=wA-{{7A&(M%(&Oq)EQnriv^qI~pRTcrsE zet#EjejB%gHm_YZ{`KEAT|wdZ5+nes cws!Lb7Mt in&O);T6&|S^1lfKfLnRyIhKVluLAjS} z$COT*#iq-mpb=9aTv1_tLZo_(?m9Cl08b_-S{KqT@wj8X8(WE9GtIl~mH7szRVN^T zwq~6BG7W?7!ZswNWaEV9LI|8Epvy>M47RXK+9Q;()!vVT7gHEH5R;Cg8hLcES*~N& zk Wae O*308l`v9@9sy8vGB^F&xz6D<-}QA`T=_Vv zv_AO!T|2_c5x0VEr@eN5{EoZ{%)0H3Fd|tLHuqYu<|(H)j5`P{VdsE;9&79t5>#B; z+qk4!KY1I|lZ@zJ^k)@Z$vSUwX1>B=;MkFvF}b;c&82Rd7a&dX+KM*Vqu@O1ZNgj^ zr#B+LPy8i ;zpk4n4k(vI^VWQ;M?e!lxeNU+^EPPRewr=31>}eH^ zQp6=8#nHaGx$+mPE}G;mlsjd3rpQ_J#-)dr3b Em8LBjLx#h%y-7YlVBt9j=si=;05 zpa)@r4XRcPPWri9v*)SHJOZHzA!qR^U7yyB_SCGoVMQ%4$+hTm_AXRTd?}&K#GFS@ zomi6kIjI l#V`nxO+t>t|Tb+)>(LcKK)B> z ;*^IrG`Zb*b%5b#(iM3z1jK zk6(kp$FeQYft+T_gs>02G9mIFTpS{YP*geVPS@GygWe6?DP?dT xJ zRl|90kDDnjFn*&X#G5Q?KC+_f`(?vM=$1ygv$2ooA=*}MzxaDU25^&(7;6A=97f~8 zgyaS|qbsYtMc?O6cRT|~ 1~cTFJ1@RRjMNL+#knt+NKK>>vbWVZ7cn0Pz14H zaG)qN8S`to)CobRt4m37$P)Q^m%r?Z 1m80vdmg}oeK{Gp%+Vn3!*AeHjVRO3K z ;z*{O4bat zqPvw-V#WkX_7E)J8Aq;uX>S&n_Ttm}B|0SDu-Zm?oLEv;H#DSS9)gzVw3H%w9bmu( zs3%7GWkyJazpvwr;Wr+sjSb71Zg8mHPau3fAORKRbOQ3nLUdATuDao2gA8GMgXdqr zd_i}8rjx qotA >Q>Av3UwpQmRMm0~y=pgL$Ha(B@nZDegdHlpV zp)?ejwDs^H9_$*|+c?1ajWArrFM6~M3wcq$C`2kIt>E=xZ>QEilLH(n#%RZjgcKTW zV8AmWMn1k|3LdsLC;CR}B1S)He9RoA@1XsQ&qZxK?`l@{FDDcsbmO_9YO*T;RzV`e zHp{=>oLDeR)78Cz=kW)!7M{bzz&UUCB?zHR(Yg76g!-f|$b0i&tWYm@b4FA7Iu&*v z_$6vZdSswgeqxaB<;nPR!^NYwcT-G1Ln1T@WQVGqa~3=eqt3}A4R=n WYfi;;Y;O^n4_`Pi-Vw&Nf9xQi94p8z)1;D?zvXM$&I7Hz&_Ce a;j$ETKG znBU*4+&!a-mv5sB3$r2cAzfxzYisIvPF*z#$;umg_aJoK0d=SpE?&H8V>x#bH&~E2 z+L7wkV>~ST1x6d`b$!lhoRnfx>WA(YdNMR*SEXcltC3TU8NX;Gd4)1^Y1sXn0T(GH z^(^&*Qo`8e1bk+)T0*m`25Vfk0rQ)lMw76PW@J8NZqY%qN&jKzkhBU~hcWoT%$1Iw zw4Kr@EWi;%>mbwIBIH5u&xKaiyA(GUE-Wl$_n8Oo)B^=v$drWs&(sf7JXc1s%bQyx z`er2!(JCHVUwhsW1YytHFDGVQ?#xj!y24^)iC%%FDtei(3w+sh`^D)uUF!HyLO1;E zgx4=NgxMa?eqm>PJ= u35QTcyznp3lMss z|Aou=|J?if*Ixc q%kZPPp+T>V-6A$1ME+a{Fkz?w^ttvoqoJ-hbU?*=EH5 z%+-~D-4EIkvcGpJ{u}&wLLdnixBd3xWYNi{?FzK8%)a+SVc{g|$3{)X5V2jwSiMM^ zbT~*zoDR={fP=TtJv_|j=+`ETmnLagrf+Ps`yexN9M%J1b~keqze#KKw}xBnI@t$} z@31RkQDUN+WM72s_iMF@%(6ntAv`gZ-nZKysfm`#;FYkp9IESDQ76ZUp`Jb|k)Gfi z{_vIlhrC!JoNI@&2fEg16wkXch#bDsr@5HGaSVvp2#A6PB)?YudTFf;c20vCIp`2g zZWIP2K`QSV-C(fNT_$ULHpDhjgs(`An&|crRk|o?7+}RedX2P-=Jc_K`3q@aWoM?_ zDbXHFf{Q#y3i jsVT j6ET}6Yz+LC)@8fxypS0>-X~hp~3jS^8pvapaAL$*G;Fle)!!=^xLC9 zR_uMX_G`=w^RTlIBrGolc;|jcGAV9|%(gyv@6x#YovY &5BCyWsME%8jY-|E&jOoz-w XPpHddtx9uMO}2dR_OAr(YY`7yi0`xc4hN+x`kO{)Z-cC28qmTkAup@y6wc8g<4= zn*n(nI~wqF!QHH|(AERIu~J)!gAqOr?#siX5eh{fqD+?9G48y)fLD;YUIYU8vq;H1 zT}F|cCIH@I(PXo}_7MpQ;XG;_23bnW_mYi`&CZmUj=t4v<~ xkzKP^$6-aj )2R2apJ_~qgAIhHFu`i!dnu;Y^v+t_ZHNu zLp;AuD_@5QwXNN^E3tPor^A=Mc|D*Vlz>Q~Rx{5jB_-wl{R!P5FC<7%<=@XrR<>^l zd(PPtR%7B<>-7Tw_2$i+z?D(b{QNwLq^a9@|9aZX8gI4bF(kaDy%8ee?CP4EH@b{x zwb)d9TobLVsF;F5$o(0*E5jvf(^5n&dav4!Mm%xK{$O4CXt`Yi^fs0K_$DBDZCaPg zy`Tx{;bZvK-q&$)(pb-_rVtVn-w2_ms(aRWb(PrX2fe%4ny=}D*ShiRh<@GT;vzOv z&6PI0$XK1QSg;%`1xW(JwyJq-m`s|GLKDP=Q}T KdG#>K~u$B*XgX>GPkINaFi{gi0M zNM)?GBDMmj$~;WdFS@tCNOXx~u0Z Kl6 z@!@Z`MC40N_U+quOxe!z5v`-QcTk*3C4$0RNj)GA +m8?|*n<0b z?G{S5HTz9}gBVku?h$>yU%KXD>+`|RG!1Xb9SL}wkW%m7m#PklLwk;u+LN%)+t-Om z!E(!YVuOP=>0VJ*4k088HIBE|D&B*zY1n{kfG6$zHr!qvDFpjsySh$X4EEj7 =qB zfo8A}DxhS;<(W*pznP$_!lX1( i!&y4)vj3pw$n z4!j_(F#4!1D10e5baOdT5Glr34Oyji=1e*W^^rlwjg(kuaxq%eCi?D4_-P2mgPR0? ze)QtG7i0Dif>6eWi`^^nCG{$pri~29)DIHEg`Bv*)6B3L(3X4^+ZwO7PhdlT507Q( zoa^>}H^; I$3Q$=Z!Co*|%kCs1o6*-yUz${cURx z!b?$%N%tX{5WmslwNG@c3ab_wMq;lZ;~ytXR(ld*%y+)Q0-jRzG~mI lp)JA_@OXS*nx>}P z=La1dvJQbGcZG7g-OLqvwK`gApN2rdD=HtJUmY$O>gqps?AUXGw3hG3-)VEkpni5* zEnYRe<#!fc;&=Lsql#*p-a1HwC{^qM`chkTLbi4oC4Hi@Az mf8m(Xoio z<$hi28Tje+?Ck8d+Eh+Vz7B-4^Jx;1kya)}+Nyct{4*7sx<8+NCvF<@U~RgY6i?KD z)SG=RCI|cj(yqKB%okMQe3MTh4CuLZ?}?tw{BfZ>nn_@Ch{*A#5dYhor_Fpp7(VKS z#Qx)2KVJaCxW*(a`@p+V2gzoPw_w Hv{rtxvu?r zIUfeNtx*(6ET7eAfGm9tb7);(D8K7NYM5v{JGBFSn_X~6RMVHN@gaV z&zT8paYS#`FXsHBug^ VRqpP>gp;=oTYZ=t3xZ=!doY?m76*e0PTk!uarhh~ShxG}tkpf9ljvKcg$wUAoc8 zAV0$@C@CrJqd>)&N!oYq?3%)PY&XhCr7J5Y=r_dt4-{aSv&~k1$%D(+uV26DHC}e% zahX9qeD1c5khPl9KR~0ucg?+NDQJ7Uf>%ArtrSM~6(Fihn;^98!^}8wX)Eahnb+ ze-8}UK_xs{w)`9`1mo-t+x~W-v(WQIUy?*NbYjvS!s_aJ3wnD^4C78lFZg5iH9zcq zBVPxh;OpN|-w`^ICywaMz3e!uVrmAI_aM3Woc*y!F0qz54*TKPfebisVBk&8j!=I* zYpxSj<3UjPuy>nZ2c>o1z5~*Z qvaRE~(*m{6Lhrtc==%?q6E; zQNkJ(3deYa(aO{8 m1-DCKR&{kZ;Yz+1sEe_+5)mfe3ICgF+=mktD5Fmr=pYdfKVB)gB``P$t$XVaT)y@lL>~6^}@e0&o}HwutHJoifm-XNhT=U}a_HgWL0q zm=;V~G2@<(IY7w~;sC9g)QQSPXP?O zdd_nlu>-9?%ylMW%-qkVUG$#3__*YqCNWI$v7WB3?#s k>=BIL9%61+p+DFK9unm(CEL||9Gy` z4E81K=lk#Xj+hIz&J`Q#Hyx|VV`1S3D>q?G6FZ?nyOyD{JiG*gNF4FPzpD>pt!H#1 zd-;e2xlIaz<3IUZz~+b*W@|QP=Da6kRcL>NtW@;cKq`X(+s-~7t_xWI(tCneit-Ug z^E2G};`>MxpMBJ7L#u@EKGO>0Fi_PVckkW1SGA4;^4ysef=TMdAGSI7#Dls#1yiV8 zU8?sNMlZ+O7P)jRhR47y^s?Nwz`ebz6D!@GrAs)WTWWzt3jMPUicMbIx|X5qTGeM= z=X>Y&=G~!b84r9NjqAEd2*r7?jFyPYmRgsqa?e)g-7B$4kTVsc>K-Ci qf YdwFkOUyi%8Q sLIO&YE}c*kYC Ne59{+ z^zgaEJUl!{|JK$t;Nju@&ck!y!lB=|zidQ!T;}09#`Cx4J)@xaODx!5md RSyz%!zw1cJT0z4G4U1s*Yu O+83h!1kU>gbG6iudW3bm (G z)u-?CKKs~{?@Tco3=ZxtP)CIJAmKev?~!}{;LeYSrvV!b+P~l#mw%?RfA!+8N&fwd zi^pmX>|OkI=y&S=566D{Uv9bM!`j*8;jbPS;>!ijh(#UTzcC{5aNz#Mp=S*u`xojL zym Zkzw?$aPye&}Nz$(MrEILOV_1}t##rQ#k<^|@JORt!HW!Bv z+!^ Hr9e&2iN_z7wIC%}^xC&ZO muYT8<=lk9P}-#{io zs7CC!=G`WSAqarqC~F00s>vVkmdLN{kzWS+Vdcg420f y<2& vz6DhH(uhzI`BALRK>z3s@etQ+ze7s5mI0 zn-X&7BrO#ke&Kw0=PF;%#_I^wzB^O@3Rihil#+fXb@aA~y}vJW%?KaUS|M&KA3pge zvdI+;3cv=H>y5&lPWn`!FZ|v-K9ZWBS*PGGD=W*lr;9`B4I=8sov|^xo-V%|7!!?# zM=I}nXQ{j}%=ei;NyEDxIz TZXtbUY^5ZnM^~@Q&OttP$r5)=^J(H*klbUd#KIE2 zmP h<{O~=W5znm zEjsm%Kr$^oti=j+6&00ohh9GJ%$2y>B9UKC>zH|Mnj4$<7Ud5%#uIG>!k3yxwnt`l z6(O%QB@>QHx2Co_lyPIWz5jntpx-E%$h<;9x G=s+4j{|Td7`gILPAlfhTLy>A~9WG`W)y=V4pKE&F$`ErO=R>M$^Z` zz8_XJZ=~H7OHn?>)$0X6tx`z6Xv0(zbJ|BBX*+@+QJt{cL`iadph(J {$ z&|Ve2vNc33pII8D#sy*lLgO~|r;H=h1?Qa#b5`a^F(;&S{geRmbpht>!aD@O@T2$V z?v4#BDMOjs9dT8gI70us8p^_WT|{l4=)(H&j 5f$ohCLAyHhYFBy}$i1&H> zz5ONinJMU_?H7?#6;B;|Hu&`kHc`D%Iqm?MtfJ@HBw~LXNuoP+cOW;l`H70Lh`6|H zUciR% HYAZiiBrh4h=Jla()-s$@~I{VC*DC|JJYfaj*7yMKR9itwUjE} |AStVe _l+;_hw43%3!7}WbA`!w;ym= zDVRPP0-x=4eG1;_>jAwF-Wkdx-!rGECza0XS@k44L?~xrQmzv=uVK{iP7K_;RIQo6 zo%c462Daf8|HbPLtuONx!|QVEu%rk7@s}F3fGGHgAI}mIZhNmg=+RrEsuJSuX6Obn znHU0oCSX6N^t^_MoX4pu0>q%ZbKNZ?TqA@fv|EbQlwWT_x(J^SLEVDSd`?!$n#T`F z=I^wbLY2=MM$T`Qc{6&GVrPyj6c}APJzHTY?$~3QQs;e;?`h) {( zSVm|^AvgrG;*8%`{|oLiA8v?UoUwc_s;V?}rzR|5R|SAKgY`&gS@<;Ds==nh*}@eo zNycJOR1qall=?U0?w&$Eh ol8PLWfmimz-L|zX*9&K8?&v!w_Eaf-1*r)O09qemH6G{0DSnP$uR(#yhHjlnH7Q z2caxeChGKqH8{D?hEV?5o2|@*wQnbuO%+{cgyd&Z)pd4Tz;Ck7%nK9!# Oq+i=fWn&@lB$rWIFi z9{#sUa>t_79sELlN5PMYejOj*_i7rtZsxV}&6wtUtfU!8ojyF~cOCzgP&N7m&WHaR zbG}~nu`d|>)*uB^ah+FYHsEG#d0Hus?CA;@)gy$$lFBKTYq3zL6{otpb29D(OIZKI z#I9BkbBQDu=iihRj#Up3zL;REx)rL5F z!d|qUe0I?*;^u6>Dbn5JUu*n`5fuC_?UU!-+Jd9o(@m>(TSM;@1S1JX7u4jxGulz^ z6?;B;0<&~YH1a_}`F*=Z_nEaWy{W+96H`N79n*u=iLF|;kt3uBOX0hD4|W)xb`CVt zlM7%2uo5xyYTQ-Dt@3vnwNI7UsIY@7XO`6_ZtdkAlej*EgX(Y6Ys=ALA&&;XzpuqM z2Yh^2lfUDjsO&47tJP92Es>yPY9rw)Xg{Nr)-Tm{G;jza{Hegx&BfzWkzRAP+XS|{ zr0P_Rn4Zz^zKhZw{W<-3(zc%QOn4`%S2&SnA88l5k^q13e6A9nb1}5626Jd9sY|@0 z%F;eTul3q&p1e|5MVc@G;UG8i@M1*)0%YS2ddvW1?q_Hb@eLwW^IIynRLkxbm3X*~ z`aJB=t}8`Vg@#~ff U2_V?`!H_?y)J2>rSv~Pb-SZ-FIZF6r@w-Cm{ z<*Cw@R_K@uv}|B)r+sa6LPkHJ{^p~#2aYU@LhEnV%hdCA@zu%0)dLe6lkm?TCAT0c zaHvy=gm6-oBz31~&z*QwUst|+1~u-~x7L$&hdTs(-c%_RL@aD&E$qZF?wfX53I9zT zeRFweL?!e?PG0C@j&$eijq}WCX{7FK=1?p@9j{7)#GaQj&)_^l9q1E5Et9fP&Zp2pDofcn6txb=aZSl(sXF^ zihGf}rl3NXUV&>xe>50tVY0a$jRmv@PLz;7M>b{WM*Gb8oRTbbbv@xSyyuA{Xsv5r zob}}TarzFB-6^}P?###`(v!28Q}yO1CZ| `Zns17gvA^s)}Oc z(an+Zk(T{yB{>sLs)Ipw8~vwFmOmx$MRpJ6k)>_3Dsj~P09 _og0Xe=0oo)y0_A+1|7mTCMClbC+rHxGJ(At7w9qQbhAPkb44{QTe9wsf@-|` zozj-Q S~clYA)-KM2)+71$8QQCFy{`5>c?T=dCX1k&CQbfe+dv7@g z%%h&gM;7=gr*{DTvZnXeWI(^a#d|fCo0*t?Y^3eQ>LOtwjA)m1gyd=Z+7s@icwWrJ zfAZoGUn1+62|#})4MJ0ZoLGvEN=wR{eUKhwdoe4k$6j8(sOtuaKv7dn#@^iU!M4Z< z)Y=BP1%=Q8&)skVF9!C7T~2dx`E(9 5?$E_>VjO7Z%W|XDL$W$6lD-HF$)-y=sCm3>Ax-6pv4*MoHN} z$oG+s?CW}OtClX^^j2Wie(y{j^a`;1j0uX15r70QZjsYPIcAs3fnAr{- @ mVuC2AQKENB+{ zfuB0K`2@^Rn?tY1$C={Ln7dAamj!iNI-WCP= <9x-jzfBl#ul-uaVX?KPj@V6ZZtu_ReniJLk*xBV90NUA2Go6zm`jL^0*t~ZP>#J zpDQpFw#dOp!%RJv{JjH0KRJdv6#?E2zh81PQ?a~Qkz5jRr*E`-7()gURB)dYP|2hR z%41 j6|rguB-D2_!(FU@^{n=O0FV}sA=(0ms!GM1Xz zMS2<%0lNa)w}1(msaACz=b~v96-o|6T@QqkR7SSxe{$t|k}OIRrDie5WwAq?9WJ2Y z8Lal$c(Z=PuYRTMKn?zwp28q +ZXpL8$$M~>tOP7|ahYfiJbfv0C&>t(CviGo zCeA*(ceafnuV-vO=4NHx?{72tfKXdq5|H;s^e(V6zAD++$T-=^IEl!3LK6>b6j)XL zqjxrvFNZu@SdB@$7rZ$G(3tVe)LrgSGQPCdQd(N8lFQJclob>s?r~?y!=D~e^%anw z!Hk#3LRbr?p22Kk;Cj4iPhGj^#8~x-NSVN%%zE14=FqDd-F9SJv(qL2+ljhO0dHeZ z`%pG?uck}>UZ$CSBUQKMDW+IYdR8vAkCgjPHdx>&PE6WVLUB0Mw92n)xlrrT<=zcj z@;5`4@O`R|ym$_N$WCr>t3~CgM9TwYOl+)PXQ%8$rE##amG4;DOi4`jdCA)Rk}6|u z0X3K#?3H9Ns|_5zoeWf_^ztE(=o4zr F+Z!=-YLE z3c|u^;L$YK8K%W=qIy+W?3p%n z_htsZ1i3BvS$&JOqN)VKcay3FPAQ1Mkby(Q>m!n+t1?@gSz=g}xu*R@1#-({v^WJD zRJ_)y>s(Ol>Nh*vrO?d Ic@ug_a-7q#!Xj{X4d~0x%whQQFxzP*74~o} zFfS#errhF`mG#(AkoeIa&=Eg1r8`))>GG&{vqvcqGkD!iK+yC|bBE{V03mZtx+j6L z6fSJlpfh$qx+uL1WF15@qmC!CNy{!?(fD{Flm4ysv`ju%d^$NMvFqZ8yI=-5I) z_>z&s%#5*U^!=5ssgYfaI_0&S6Xzq}WmD~z8mMBL*&Rfcz175XXIHdJl#1BaLTu0> z3vFc24B}c@t0;6%%bK0!$tF$yd$RllnR~vqNIg(iM{Ul`6aG8sqVMwP!%^$U{kLwf zG0=F(?#8SvT!x1K;OJ_ie5c2nTK^u6vhuy9vir4Quo7EbJJ*@Gwm}90S*bnUp*8{2 z59tY7lI`s$P;DdneOsk->~Z@+5ut KH?URdGXhlBz!36xWH8h)(Ah8p+e6k`Zw-V-u{t#;1f&M~v75KcBrExvUtrU6w ztaZBY6X#k^TaJd7@VRrs3vbuvT +_JvF-cKGSq@y_@8DZXJALvQlFrck8pO$>81E9h8ogp%4#s|Z_FIfI zT*#pX`3_F4xqn|{B|P&1-DA)AL6-qW&zKnCW`8vhAFxy)=HzyWTC|@c 5%ErbckLjDlMbWxx>UK*zip}Az}R<;%GV#=Jg#}& z9rE|%4%gZU>*1OVl}IJr&eoh}peb>Cw`$R3AOoILj~%Ma+#6rDP_(dt1zQ=L_A5nf z7JY%4B)KgwIZxQWZB*Y{NZrGxlz@ccq%MKDI!lcEOia1eOXshe3;d9;T-t%=JCA($Unvc#*^$}&dwSFr~-uw(|tLMKvn~< znpf6X4e{RP$HaF_>DRANbyC}Oaey+5LlA8UbrFd04}lvtSesZsHa|OCeRx7C1kH;v z!TaT56y#u4%)ZXP-FZrPklS{%g#vX+oqN2Ic)GTyZ=RYq=<|qgOi}1kq8I~$W2ECK zNn|9Xo}B~S8m;fKd#-Uo&|LOU>rz9AerGhkmn`bJENZPk))A+MSMgh}sKCp1+H)Go zc|h7$YD<*#*71qT=qG{MZALJd>##5@&NNAsdpP2P=1F53UIKeVHt2C}jGe7#j3QaR zraeuz)p-LD_Ifge9dF9+N3txuzDI>y!b@^>ZkLb$3jhuUI`{>vx3}lvT(g2PoFJGF zMol)}%)ibp*e3U(+DMpo9h$xwyD- g-)k4}TUJhLzbLLZCL{rk5 $$R$Pl#rUQ*0xoH;Tkgx!qhU!?|D?S`8qWwO!liGZOE9ufj6$I@;t{KJvWQ?B zt)2m{-!$myU?EwJNJbj+g8C(n3ROXIJw=^RA^bKmnt6-Q~VUPe(~dF!WeV{ -$d1dc~41^Qd*&~;@F(!?dQz5(##ecvs?>94icQzMJQ z$lbBsGJhnxYltI H*{yMd(R8%fU*$=v7J^fIZhZ2^@QHCHtT!qCqYisjUaVLFz z`6TaeC+azN4}bzQM6C`LX2O`urQolt>LK$pJsbL-R!E4+U>_%vkhi(323<3oNlooD z@E@N4)@C=G_YAUMHVWo3Zk4g3V4<3b3qBA_nV~qux30Ze@=UIV+yS?{eJWv;8X^`W zxZAF8{YFQa5Ifk5^Um1FWOx8T2&i3YpWVP C(B&_K6D8 z`LeHLao%+}+=skrewCQKQDP|B)>Ok7FD+{{P$}>lH&&ln 0 a4WA;_hl&> fZnz5=#mgtJ8%7z@Nc5$Lw?jgBZ%U?jj)Qnq;9_)$8)So zD>wJYlS@TfrC;}ILymHIb?@L?f;xGE0{4c~)k9Xp<#W(|ckdU*(znDw51t<|`DQ6{ z2dFIO9<;?6GFobg@CCZ -Q3JOEti6_149Zb@7&GI#O#`YmK%v32pV}orhS3? z%*L_MS@m^oxDofA|7bkWIeSNH-B6=P#C2z+j9NAxklQ7Yqw*epQ6 y)W4y_E2OrPiHD%Yk=TW`zY+T!h9Z7%equbOLx1rcPZ< zH-2o4wGVu!UHowPogP1VUyh*4L*r9k*GT>N@X2_8a(|o>9hN;37!V{g IJ>X${WN#V8?c%HEqUkj|J@@q_>kGL@ugXcDNIa+$t{dWV zqkcW)a;9!`j mLR*ufyVhZ} z?$wOcuDN91 STca*^`$S8UJNa4N9Nj1UA&7q13R?f+=nNUx)ztqyZIvvW pZ^UiLGUJH@qW)ZwC5JW8jdg%87JT(Zz6gUQ=i?N#yC^FDyX3t~$CZ zS>s)-mwTv-+ACw@;UVG(>{ha