From 8e3b0e41459c5af486ea1882f4482f72d69946e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Wed, 16 Dec 2020 10:58:29 +0100 Subject: [PATCH] Archive repository (#1477) This adds a flag "archived" to repositories. Repositories marked with this can no longer be modified in any way. To do this, we switch to a new version of Shiro Static Permissions (sdorra/shiro-static-permissions#4) and specify a permission guard to check for every permission request, whether the repository in question is archived or not. Further we implement checks in stores and other activies so that no writing request may be executed by mistake. Co-authored-by: Eduard Heimbuch --- CHANGELOG.md | 1 + .../repository-settings-general-git.png | Bin 79869 -> 100632 bytes docs/de/user/repo/settings.md | 30 +- .../repository-settings-general-git.png | Bin 76271 -> 94354 bytes docs/en/user/repo/settings.md | 27 +- pom.xml | 2 +- .../EventDrivenRepositoryArchiveCheck.java | 72 +++++ ...ivenRepositoryArchiveCheckInitializer.java | 53 ++++ .../scm/repository/PermissionProvider.java | 53 ++++ .../java/sonia/scm/repository/Repository.java | 35 ++- .../repository/RepositoryArchivedCheck.java | 50 ++++ .../scm/repository/RepositoryManager.java | 14 + .../RepositoryManagerDecorator.java | 10 + .../repository/RepositoryPermissionGuard.java | 74 +++++ .../RepositoryPermissionGuardInitializer.java | 52 ++++ .../api/RepositoryArchivedException.java | 45 +++ .../scm/repository/api/RepositoryService.java | 11 + .../java/sonia/scm/store/AbstractStore.java | 16 +- .../scm/store/StoreReadOnlyException.java | 53 ++++ ...EventDrivenRepositoryArchiveCheckTest.java | 75 +++++ .../RepositoryPermissionGuardTest.java | 146 ++++++++++ .../repository/api/RepositoryServiceTest.java | 13 + .../scm/repository/xml/XmlRepositoryDAO.java | 7 + .../java/sonia/scm/store/FileBasedStore.java | 15 +- .../scm/store/FileBasedStoreFactory.java | 17 +- .../java/sonia/scm/store/FileBlobStore.java | 9 +- .../sonia/scm/store/FileBlobStoreFactory.java | 11 +- .../JAXBConfigurationEntryStoreFactory.java | 5 +- .../scm/store/JAXBConfigurationStore.java | 3 +- .../store/JAXBConfigurationStoreFactory.java | 8 +- .../java/sonia/scm/store/JAXBDataStore.java | 6 +- .../sonia/scm/store/JAXBDataStoreFactory.java | 10 +- .../repository/xml/XmlRepositoryDAOTest.java | 21 ++ .../sonia/scm/store/FileBlobStoreTest.java | 222 ++++++++++++--- .../JAXBConfigurationEntryStoreTest.java | 6 +- .../scm/store/JAXBConfigurationStoreTest.java | 29 +- .../sonia/scm/store/JAXBDataStoreTest.java | 20 +- .../scm/update/xml/XmlV1PropertyDAOTest.java | 6 +- scm-test/pom.xml | 6 + .../main/java/sonia/scm/AbstractTestBase.java | 19 +- .../sonia/scm/store/BlobStoreTestBase.java | 264 ------------------ .../src/__snapshots__/storyshots.test.ts.snap | 160 +++++++++++ .../src/repos/RepositoryEntry.stories.tsx | 11 +- .../src/repos/RepositoryEntry.tsx | 21 +- scm-ui/ui-types/src/Repositories.ts | 1 + scm-ui/ui-webapp/public/locales/de/repos.json | 30 +- scm-ui/ui-webapp/public/locales/en/repos.json | 30 +- .../src/repos/containers/ArchiveRepo.tsx | 123 ++++++++ .../repos/containers/RepositoryDangerZone.tsx | 10 + .../src/repos/containers/RepositoryRoot.tsx | 50 +++- .../src/repos/containers/UnarchiveRepo.tsx | 123 ++++++++ scm-ui/ui-webapp/src/repos/modules/repos.ts | 36 +++ .../scm/api/v2/resources/RepositoryDto.java | 1 + .../api/v2/resources/RepositoryResource.java | 54 +++- .../RepositoryToRepositoryDtoMapper.java | 7 + .../scm/api/v2/resources/ResourceLinks.java | 7 + .../lifecycle/modules/BootstrapModule.java | 6 +- .../lifecycle/modules/ScmServletModule.java | 4 + .../repository/DefaultRepositoryManager.java | 38 ++- .../sonia/scm/repository/HealthChecker.java | 4 +- .../RepositoryPermissionProvider.java | 9 +- .../SystemRepositoryPermissionProvider.java | 36 ++- .../repository/XmlRepositoryV1UpdateStep.java | 1 + .../resources/META-INF/scm/permissions.xml | 3 + .../META-INF/scm/repository-permissions.xml | 7 +- .../main/resources/locales/de/plugins.json | 34 ++- .../main/resources/locales/en/plugins.json | 18 ++ .../resources/RepositoryRootResourceTest.java | 37 +++ .../RepositoryToRepositoryDtoMapperTest.java | 18 ++ .../DefaultRepositoryManagerTest.java | 78 +++++- .../security/DefaultSecuritySystemTest.java | 4 +- ...ystemRepositoryPermissionProviderTest.java | 5 +- .../DefaultMigrationStrategyDAOTest.java | 2 +- .../repository/V1RepositoryFileSystem.java | 4 +- .../XmlRepositoryV1UpdateStepTest.java | 14 +- .../scm/user/DefaultUserManagerTest.java | 2 +- .../scm/update/repository/scm-home.v1.zip | Bin 12618 -> 12624 bytes 77 files changed, 2066 insertions(+), 438 deletions(-) create mode 100644 scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheck.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckInitializer.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/PermissionProvider.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/RepositoryArchivedCheck.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuard.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuardInitializer.java create mode 100644 scm-core/src/main/java/sonia/scm/repository/api/RepositoryArchivedException.java create mode 100644 scm-core/src/main/java/sonia/scm/store/StoreReadOnlyException.java create mode 100644 scm-core/src/test/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckTest.java create mode 100644 scm-core/src/test/java/sonia/scm/repository/RepositoryPermissionGuardTest.java delete mode 100644 scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java create mode 100644 scm-ui/ui-webapp/src/repos/containers/ArchiveRepo.tsx create mode 100644 scm-ui/ui-webapp/src/repos/containers/UnarchiveRepo.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index db392e814a..1b8d7ac29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Add repository import via dump file for Subversion ([#1471](https://github.com/scm-manager/scm-manager/pull/1471)) - Add support for permalinks to lines in source code view ([#1472](https://github.com/scm-manager/scm-manager/pull/1472)) +- Add "archive" flag for repositories to make them immutable ([#1477](https://github.com/scm-manager/scm-manager/pull/1477)) ### Fixed - Add "Api Key" page link to sub-navigation of "User" and "Me" sections ([#1464](https://github.com/scm-manager/scm-manager/pull/1464)) diff --git a/docs/de/user/repo/assets/repository-settings-general-git.png b/docs/de/user/repo/assets/repository-settings-general-git.png index 3047de709cb73465bd3a7416a4c16a12a0388ad5..b3747418f0c605e11054df6941774e6bee8c1373 100644 GIT binary patch literal 100632 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

tmGR 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 Dr?lMA literal 79869 zcmdqIg;(3p6E;dqp?I<4?i3B~t|dr|7bg(hHE4n2?k+`3f#UA&P~6>$yW35_ZGZRv z2k(3Cp2H#eY?7Uwoq6Wj+1X$v1!+_y0wfq17*tsqiH|TauXbwfRY8C@4+Nti=zDxeNexG38?d8`fxR(|iM5TDF_Qzx-q_gM!PLg_7`9ai28Ikq zRzg(8HSJ)@TV?V({rHp?!Eg0*03g1+A`3MMeqQM(k~PjeL0E9U7LU#)ht!05jp{W` z3Ws^6d4svKHwPeJwXuLk%PL0o8mB3|>fIDhgF5hSNbS#X@$c;Id`UbK`manx>byVm zuxCBs*y%<(*kcNvKYF!f9w*|DB&#oHj?!l3<>kR){A zL|FeiTJvmy|2iHLIspHkpKAS|{en?nBhtwASG%%aa*E%L?Sc*}H2(Pa)y>C~z|oFl zlg|!iy_A3Ys{ZR65PA~QuBd);nK0mS&{qol+d27PXGO8nsl#!8B$wEsewgHcGd42) z$U{THrsCOzVXiF{ek|(${jZK16x>K0JD@B_~zO?#W=-Ieu5E4WzNL} zjS5qs|AwYm!r_>O{j~^(q^mPJ-Nd$sVrRst(>WihNnJ!U`E6?T%TU39 zt=BaGh6k?eu`PCb(Dl00LG|o6=a+bWix024j4n0_Ts~K*-_Cb<&MpvQYGmBgIP{{e zC*>0EmEmlb(b8sOhN4PW6V|rN)%|Y z*<4D*4YRdbqUQs+f*GYo>(IA+J=emSxOWAAo^>&H$!@3g0h}|xbiTGEJAj7c_6j7@ z;W+*_Y-vs#=jw-RLJ95n=7lAN?^bWq%2ZbsblZyCZyuaO(_?(G;;wHiL0hX=#G7sc z0ZA>+5M@>FQi8^#oMS%+c)Zt^=zo;y;_rpf8=}E&g%24aWZLGnv0crVRRa)`>a1VF zv9VdaZq;2qBGNLpqC8Qc@91?vCi(?Fz@p=?7YBQxxJS8-a6KYX-9m_(HgxFvB3h zeY zZ-jVW$$lsK*EAa(snsjvuW`v*vY0Weu45YkH#U z9hn#^vFgpFz)PLe0xSAMB1S+WFeOis)vQi1Rj-TvkDR0>LhkaSpHhKe>z1I;Ra6$f z(a}@ctf-*?l8Yf$uoI7mOm>HC+7Qw-wQmgm0oUzz-`scRTVccXe1G1PuY2Ly2}^W| zot(TNDhvAE`hMC=2Y^n`)!ABI;oJw(Kl>ylGib)F;d|8E@dn;Jw3F=JC8Ibozdu7d z8R)?@iC(i2mBC%~gskv~KrZLr9u(O+doq5Wkb27Zk9%9PR?SoybhwFbAsVf26iV)M z%U@eQ3GxJ}rx%HLCk|F58jo7%ZK}bU2rZ%^)GH@4?JJT#6ESC)B6lsnzU~%s1pCP~ z@^iiJu7U^m+#5`y1ZBMFytBps&jq5%4pg$J;$H@=@cO`1*}Wx_h$-tY$}5C7`y6vwBk)dv?JcP0p{wVGu--aFdHdS%wOwQ$)-7bFf7FY;00taN5KN-$dM-UUMrEz1%@@7hEno;$nAlOYA zl=6s<94&3eyVI&)H91)hERF_njJjl|@@2l~itV55ZqUc=(`*e!lZ(SQl*#1JJQy-s zAEpU|=T-=Wb(h5NhJ$S4Xvk(Hdt8_DPMC7PgM$F&s+0i5bWK0Ng{JL`#(O-Of zr~qD~c>8Yd0#BI>Qkz`4yxR6%feYR?&d&B&_bgNuO29FhZ7!moiqfl1-+` z%s3&wnPI!U*SuHv@Rc}Kev)epdu4KFx~OGsOp)%zSg6VPS`G4axvgZzjCEAc=2p|` zytbjB&CFI7j}3SIEiGNmY@u@l0B^Xfi#CSKf!V=?dbujQXyg;{LqDPdcDzAhnV}1h zT?2GvL#|$QtjxY4$d+YsYHry<#@^YC)%)n%ZQg6`vg*iZ z2Wmq%qoCo6-b~hH>;tZWZ3>qKE7guV-U5@?C-7>&c-k=40Z_;7q7HfA3cXJ5*KYMg z)kStqW(^Og22jQhg^yNH%s5~LnV;3}l+g|6tVA&Q8;t7o#c5~uB;7t3K7U+)p+3g! zrMB*%Ys6==IJC-~n-L_}V1nqWV_jh=NE zJ*i5h^*`vkDQ#;fX*=A=w!E)oT$}{po#RM+9Q+ZZh?K&J&d1O4-aY-yjp*Iqut;XUN&z9)YxUh93uz6|}MhoaMaiv9DPY2i-<~Tse9I1@b{BoOeE)Tx zp1$VFnQZml*Rn3!=8)9EhpHBNY-b{fkG};UJgDWn;(`9@`eFJ5T4S&A+;AmBLyJNt z9Bq4?I65y_zZ5HO3@0p{V0Qn%`2{Vm!ROi!wb+m=U!h8ja+`$7QI9bw0`%WEolY&Q zHpNf5^A-LCNEmVjf^26DYSlL)WXbD`h%r&4lR!X;^)5Ao>lCzKKV~~KeCsWLnbY<^ z{mRiQ-YnJ?{V}{Tf(kIQngu!+U)wd#SY4z2WHnTfp&EImpoLFeL&(x#bw69jomz|I z>a^bZdCanh$n2E~r*k8*36R20w^mhptR3^1KE9B>{}&sJT}-Pb(yb1$v)rTID2*W~ zT%TP(0)T~2qELsih{m5_pE~2oD|Z!R(GNCzDCwC@H`yju{WS`Uq+nsdvM#9EtPIRb8%2b5G=VciP%&4c;mI%?qs+GiSGhp+ zTC=t=3QaCaG6fLWXgm9z-=jv&W>kO0Ay_cY5aQER()g<^(`O8*4W!~ZoVA?Nd7Zw* z$%shvNTM+O*<33z@LEF&9w_uGM+HFhAG5Ka0TzXg>JHW%q^c6?kl7@T#)%E(mM*q^ zw~VaL)kb4zOqxXdhc*0)Tob5eW-cV#BqNW_O_l^14qE+eCKU#5VycgOLhb@ z+R1?NUPzztnqVFq=Y)%Tm(Q5+HIdlf04%mO!ZCVHT`_O5MqNMXeNH-?9C6pm`ccFA zkN_TLCU_wsOlvV0Hc*kwn269};;HFNFDA$ri-eS@w$sNiHL^GEj%a~TYv)ayLFd|p zQN*Ft+!9mV;qn%{F-Ocr{DMX*@yZ>EJ@)BdB}0?*Zq?3H*aO@`(p2oagaxy^=k)tf zpkC()YNa($&Y5VBKu0Z2O-( zp;ki=!7rZ4a_&JPZZ<1S63*1|X;uf?4tA-eIhc*^|; z8yt;CyRGhMh{t$gFTQkv*=P2RxY1IZV<~O&HrV$uY6)ueBQVt^)SPTSfdB%?9&?YbhKWto$RP`6B{nVX9{mANukku@q92 zjd!e?h}kz1a-5mIk3h>cjp9$Dm%dLlDf$K{?l@A&qrQ-i{`zK4WbwhuQupVa=K_7X zYcI|eL{4UOe~(~F#0DthIWpeA7OO-&f9{%evx)xg|i|E~~aULi4CMitC&1CBJgV4uh{9420}aY02~D zd#pmSVM&4qX3wtm<#C$&YS#?xRydghC3Pq8kq*Fl8aI#a1k+*2+|4gcdrw?M0uhD4PX27x9?Xdni18AL1Hz&eu`su>m-6&$ zV;bcPAu2Z_7ZHz}n#@Fxe`8{3YOQWfkVk2V5T#jVOe1gJxXiYN^jws4Y+^}cGPg;f zBHfaD*gDt z=;l!|c^csACGfygR-L$IDjqzvJwjo_4gjApKHBr8)n%o=s1I%6J5~f`W{BHxs9yr` zVC#@jRe#p1F8>YBd|rT(GiTiW#pJZO1J{JNuRX8jUfE7GQZc_0CmlE@l7zULfXs~Y zmlG-gcUu`c#+G_xnyk*W!PG+21%=t4v6hn1wA5o1lSkRvdau5&j}u9UDe_sc(D%$Q zJn_|ek~-El5;lfi70hEj{tQOmTRsl-`a3kUxZ|fhpNyeHHp!Hx0tep1S>g-hk#%%^ zGA9KbC&)dW4a-#Fc31ve%ScbZykOl>YJ)TSU4Th*dyA^z(pV`i5%y+0M6vKUscqBw zDZO$$=VZtN(XBkBkkxDP*ab*p+gPA-S=!)}&w@gb1 z{n%aI*(1@7Jta)g)g};~pZ;@L&Lc?Rg16%a& z?s7UWa%}})ul?@#IwbT_Rt5Rm%4~)I3U(>Uh}UYh%qDiKW*Gyqc}} z)~MKAyx8hf1)QZE)uS50X!WTSfK(u!-MTGwhd}_%1ZdS5EskV?$^6k<^qRYPtkF;6|s_W?+^Ub}F9Djt(Vtwj1o%(fdNS zJ=mJ9^Q_vvB86#3uu_xGP0vBHELe;tVk66!h{S=pFKQp<^4x0`<%q9>`{8aBh*tSe$tCmDshR* zx(1y`jvF=c)qx10O7)7SPQ=fZ1dS!WNU7=Ow4VvJ=7tMQ(d0q>x|MN8r3)?}>zww( z%^Rbz6ReXIwP`Kt>x-b|itAvCgx{2}M8jQ+&-p9*u_a?n)dF8$g*@poFBOC)Sx8lB zBt*>q`apkwy2Ns+!LRAeYq^vSkXnz}0_$v8N>|X-^ir!Dt9Bw}*d@i#6=}4&#wWRj zVckXC=*+&xDrwn9?!v#Ic)gl)_Xa2Ga$r`oSTiF;QBY^$xD><+4(c}?9>>nS{={fz z2Dq_TSJy9Xd}`|G*Ql=nO%YnBT_Ft&4i=WFz8Ru;{BdpbL5v$ys`N{1ZATpJN&K}z zN1E1yO=OYn93OfP_J2N%UlCx*6JUm8F*9;dcAt(L7*6QVUv6aM<;Tem`b9-?Zdf~C z7hZ(8L;|YRymb@{H2b3Et+wb@x)v-qSMR{PyM6SE&iS3C4(SxW#gk}LWjP9%22CMP zH}i;>%6}_0G4>#J2<4l`_75G|JEl^zoT2G{epgF)ixpQtPEAA|FL)T%Bw4*P0-M9M z1-tNjAp(92w<&?ky(|VtUC@n9YBcQF%gnSq&mRqdr+w`_UIjbFu$F4WoHYxut^6|?8 zCo*YxXfz}! zrl24MM{PWNF!ejHfCor{CeswDC>f5f)B#KIs7HUl|?%7@*OK$m!s67aH~gN z0Xt@`E8~v|t%+$5h69W7QTVEXwj5tf{+69j)a>Nw3qo-~C;ykL%G)?Vt^ zn1uGBAr3?L@?awuf7%h_&ZlI?cLTI6t)JJ~2)P=YFLh!3#)1HgVZ1a6H#ZV7%F42G z!H2m8=!Pa%`rh-}Xh*~3t>0dSE{Rr8gp-d0wLRGI=g#{_g0}K&v10msxvyiBDpQ+p zX}^`tmN$ZeLQf$P`5YPU=P+}Ukj>34<&WUgo5l$)-OA+IItfhZoDPSX(};VVy)F8t z7Trp}2*YJQ3MFM*dnueep0vHV8A9Ya_belAvGe-HH1daopNhX=f;K-vgj34trJ>Zy zP7s8aUDJk0Up3QN6uW-V^Fg^xtNnqvj=N@OXXcrt_%+#q1^RuS7jeoTuu$U8W#~2f zRld2krpgUgFiG$QL~Au(^V`~xj=Z_Y6gbKAA_)8Q(Iw+wKX_@xqx>IU9{Udr?M{5) z`a=;ZDEuVXk`{#${5IWnEy~214Hiz_~uk^@8&p^d1OY9@L(;dkC@r5 ziV%+OHcdcU2c z}J0kQ{c%~UR^Mp6L^H|C@jE42!g6L4yu^sHAEf8gQlKVT(-_8&I2zqDg-}QI=u>3Vu|YuuzP~Pi{^ozKie_$3Xo`f?jZHk7i$5ojf$eWY{K<36Zh2U+tB@VHkQ!Ur z5p$xVB8h8^@{?JUgxLsxllvaZjzua0Qg|D-V0b}Ba{Cv3Q^uwCiu8iyx?i*c>~rTx z1#_1yD`52n#r%u-riZRCB-*thvAn$4pGK55x3a#{2PsWRka&Z+IQezgZ4aq%Y#{R% z^I+8xH(fq$xp@aI*S-9S*B11{p6MG2m1(6`RFl~9Vt0(-QJD+GID$gHXe zR9DYQ=18u_-TW#FcX~}%j@iBS)!5B)vVafHQx6N8h;%alPRMQ zxw&A>IBD{lvh!+bjjB{t%fkTl0Wjz!V-9tf+4<#>z2mU-Q5b z=#rrP)OTJyknwZbWn+#=7qZ2=V|K_+Kii%>PI1+0{?-2Uea3qNL=JoKbI}1~aeEwV za%ouTXZY8+7QTo_Y$*7hxy6MNwM!ptJ5o5!Zl|DV%AbfJ>i(yC* zg;0Cf8VF}#RP3WWf?8*?!w&g{XpA+l_fMZZ>>gUGXp(7}_`Epfdf{#DEkiZobcy{~ z%iOb4vDaJwY5{&RG*vtkg}Fx+>H&Om(qbj=A$i}UIg94SsC^O9kZIm|u_0oJ{RSs?|B2{17s*59p=^@Y08^_7Lp#hF{zWUhgDX(*)U>MY7i)X6Y*n zV8Cdv-;Br~FqfJDJB-FjQSz^}_b-dg)hfUW`|kPW-{WGpb`VIe$z)F{5py!$$?E0DdO!%T{j$>8ft^^oiY_MB}dE+o8$_A#@l%6l)`*V7(QRBUt1{J+k zD~RkF+q?U%lRcFOTCKq#+Q^T5?%6YTe~zsw>|Kx#GOdZy+_(eN(mW5`?{^Mdw}ON=K!GtKmzP_>A^;o^dQbrs0OX z)o-Ri><_!9oUc>q+nuk5dOqhBt5Uc(yo^pj%95qrwN* zUkr?1UT9eEJmEiRXAa*x-l_BukK|RIpj6T((bZ~y0YpYQ?)%rev6dl_q&>b;mTx%} z{UTL8;$6(!5<0U&A7~frx=APt#KQ-IrtIt;6t5q3-FfqM5kq#O3kt>z3Tv{+fMd0~ zvcUbY|JX!O&`rUUo`dCuQHEP~T%vOZg^SAz#F?3RBzA)k7=pIAxJf|UuYjKK(;+3% zG|Co906qe&f^U5889in>%`YRqSMHcm_|nBnpS{JA9Iq;nNlB2LYnhpY9N^s}7nFmg zc2qyLzj`50yx{J(q=lc}Q}xAVPRA{7d>}YY;PpmDzH>R9=MKSWW*!o&WVI0KL>)p_ zOhDEt74=eaNC}4AEwXEqG5F_2X()BpGiH9>os*UK}!6cPA72&PxoK2psohoUee1%5P> z#qL3$zB)-JX;DoFJHBhv?x)fn^Rb%Sh3hU)y(C(Y44IXo38yHf?2t^`D-Is(ntU}@ z3`*&jsv7S+r55)0oxxPGq{%>uPBVLN=QxKjkiE@#`W^dblh%7!kc_#z5G583yU;hp z!8PpxYk&?bURGiGa{>010WckrT@w90tm=;E3^g*1kQs$&+K%an?45xs?_VZ!iUnJx zWsDbGX>zWA%dD_-RKT%o7SrJ?J7jLL(3+8`K!Z*y7^A;eSXgYhS*$9sRxP(CiDu&w z?I3$9;m^6wqpWb-4NpNM*j;>8QAw9Cc#1%)$2+tZ&QeVx$7C`vSU;<8IIgT|#V@61 z_bWd00|~(Alm=^c)niwd8M8h2OX}+nW3iY)bd0&SI}DSwl2~fTS!_JvCK)MV2sK z1&Fd;ff?%;jiu-BRbPIXR91c4Uc9rzYPV+z#dss*7 zD%8kb9rB+w*mKJ^&xn{+rxwk?yHiov)8c2@qTul+&qb2vc|6nGqYabM^AkuZfcy6l zBDP6#vzpSf9purmL+JThVx3xnU9^%PY)U|? z%L-a)2=E*QEOzy7T4E>4;TK23xY$6dFG4sgM!F-Y@G&|zb3OU)ag&5O?;^>c#uotz z6|`A*8b-R(y!-W0Fkiu6eml4uZPq*PEL)6G6iVfyrW<}}+G6967WX)EB>MSp#o<&h zOLrxiu9F_DW!wKz-;8V%ZBl0La%bjuLdbR(Er+%R{sB2^2(B<``-S40o$mEPqUXM) zWfBY`5tUzM)5k*;UNq1;!>x$>P}{3R+*uVc!HfRde5E;P|ZI#*-ZW1ex1TN{U@ ztf{sCNJdwryxX;5>vggr+sU!=@rz$hA~gVGDm_;GAOtijG8iE{PG#r%=-OvD|M9)2 z#RjWYq7*Nd9PyWs{nE>(t3*DSCj%gYRx3|P>og}|=h{;T@@aF#cJCChB;>sMu6J{q zVDw{@@_TVx%J>B3G(Oy+-0nz*zo&)x`g%bq+n1B>ZbVT_xENvdR8crt^>9bTBz=iF zVlt#y9phM;wtF#+gF^5N*Uu{Ad(Grcmop59R-G^5?L;VCVEjRTdHEp|1rZ;0k-vgy z&f>dQ$nJ5J1^y7I+~*4}GT58;-A`y9vu$-{22FR}AAksN)=z&amD*ayk$*Nu#4rj& zT>FF^r`8CmZi+y@1gvtM{k;JWQ&+e7GAw`smDJgU1UJUYDrxinH{Jr`!r7L+J9 zv)s-To;q3XwZ@c&J3sdh+Wdsox1yc|(Gm>mHBS7#f~^%za^1jHTCZqpacjj8y?2$pY}2AH`& z9-7mzQAHWW`Uq<~MzhVswCT<3V&OCT{4YTe-G1iZr>}b_Hp-=XKk_K`G+H%AlnMyw zs2)U3?#~s#y($>0Mp|TI4zAAJ zF?f@^y9p%2Bf;u-_>(BO~he$|C z(~pJg%e8o#mZwHJk4KlpzE<1nX3sg;HJFD7KL(?RZOVklQ#Key5AdrTalRg;TihQp zkQ)%mKx5x)666P5UB?%!m&zqyXK@!g%7v?{Ls4-2|CX_?&wSr2b@Ge~93%Jf;IqUF z5V7U%?0EjMtw@4==6#eg-JN?(iZ3xX1b8?-1pwKq;YG(N1D2{*t}Rk{woKDgl5I!B z;R=OUu2vvBgr=4O-vhuQLiW`0q-Y@EN{6t~qI37tlYM=(;4Te{Pf5J)R-(-pP&iXb^iSR$&WO2YKhn_+z76x# z{9WsoOODac3Sulp=LF}^tNI@n5n7B$Mq=*6fsZN(p-(nWy?%n)ttyK4Rr|eHMr?b9 za@ImE^FS3-GQImoB_U3Ms7fdKG>0q3H0)iQ@BfOZTQ7sg zK0F{C5qoXyUtSh|$&V6=(5V|3xlTXuSm|#cfPYU!+*!WA?;CEd6^Y#T$pyq`I7eHu zGem^@-j*y3pG3x7Yf5#FmYeGZ6e6?6=eoYH6KucbfsqNZ)FFCSGhe_F4Midh0DN;| zw0h3|QSSeyv?@SdFBB2((+nBA|EuxIm&Yy`R}l03%VbzaIn(s-x86dQb=~+BwSn*c zmN<7EUr^&U9?1{BZ6P4;p%aHu>?MTUK38A4Y}%+p_F6E0qu3z|R^k%V7kD_Oee3P9 zhe-a5^Sp29Xo{_gC#xbTKDI4SDKmW9jf@H;_}pnwNNG(yrT2Xai-2UB9srs2+Ndk- z4LB{~p}Y#Pz?(lSoA1G4ZnSBheZ1!kpX8`vW#jqWG~{0IR^qR%1uHB#(J=e8?_Ibd z9V>l0=}CE0Fv}`cMQw6FI^|Fph`hTqzxP`%JinKw=4R>d-m%T9@czvNd*uoH0$@y( zk==z%OGw-W_^O)SiVNXzo>t85Em2h(Q-WDv{roxUn^#jf!LpX9J$yKUrKoFvp1v`~ z0U1(na;;8=^GADf?Uxr3vCunK<0`BBHgEAMr?MO_aGwBb=zwu_nev=yla>1~Ke*PL z+)y)~H)tQKe*{Mvyg)%lXxjpmoL{RlCp@3BkybT7jZJ}TT8|IL44-FIIXTW7zfX&l zW({;3yNtRZzTLI?ojrG>{gV#qBLWooM*Q7Y1O=`9E}j3|yyVuB{%(_kZkYZd3I)Y_E%yJh zFEISR3}IaM8cO-HJ zXeAegDz?r{dE7s*1niCFYuSl zNApjkhgko)A|S}yE8D+Zaxjm;7u8L}m&$Y;IX(Tn&&e26nYGF*9RO*x&;p>rKpf^aSMK>KvJuYEpF~d#Q@1&bCV!6g4<5xyuV?Dg2E-+OWWb#rL-Cg z*diE{D z?S6E#9!oAPEDIVUR;9q^kG~=sXx*4O>xLhA54fqO>Ek?}McIMiXh6aW+)`<1P zx-7Xs&_YM+x;f7p+w$c`qyzhsP(80%f-rnB-=tZtyo#1F5SG$4r_lKP|Eu~mukS>a z${%0qgSP{Qjoj7Tb^10;AXn2fy6%3}W>Nz+EJmjpNJuV+-E5xpr!$e^Y5m(P#S~i| zx-Fb03|m)N*cxQzk1()>MQCNzog3p5wYH9Yb$diSM8*f7YJ3IU@g?6zCAe;sHDs4C zG6?ugp!cQ?r}jr&w)pi8p%Q7tk9T|4D0!EhtB0+T8-=6Npx90|-gIu^l%DUU)a_rx zzx}IPeDgc2;qqxi2L9Vrt`DnqV@KcVayn3xCi)fFUyxIc3{krVIAT>_Kk zTA71-FV6%&vPhGpa&3KBK&Gi}RKr@30NiM=MzRv|T93#ae}dRu`MTIa0ny@UguUL^hqZ2A|guav&5*T*ec z|MT@XcbpZ7!RdqBsO$h(XjO|w^9&Nm&S*ewju)6@4F1X0nD`)`gkpecfGzXK^=xF4xGYm!kJ(`zNv zhLH{Pq6l*e>pYjO5{=S%2=zN+n;XwWbW7vzbb57pk`7f~brIY;* zDS7*yxqkUHPmb-9cH+qC*804RQB>!)`C&gj{siCXjGN6^#k!pgcX)R^3O0$$3!5PD z{iT``y53Er0kGI+9Vm~5OQ2<2`p zl6%D?7IMCAQ2putabBSy_SpORUf|)RQ{dvK_`z&>&PwT+RwA>``gQBGXW$i+R!y15 z?b(7bS+r>GzZ-=|?@2vQUW^LeGbXa=U724mbss(4o-^t+#6iVdsw&OTr=gKg>GFYn z-QfB7d%Tz!%;{pyPDQUXEE4yF@{FZ67(V+=1eVqZ`#|T)IUo=?L>4Avbn@?hN_6A+ z8}A$Oz5V^>`3%o1&9n3K+q;?8qbaY`bxB?C$4jqfFIic{NWm*Se0+Q=YHAEZ!iCbu zH(#I=E4Q4hXeSBiv&!TAONlpsIBXB$D`W~SeO=nJ9~&PR1A#z+GibzoUFW01qkYko zjRz~cj%Q29UWspnAEE{mSwO6KuA9-)u1EDd2#AO;vVQ!C&}noox0qpu(RJIUCh>l- z6M8ri_qypMwZFSClZqhfZ-SiP^l-O`iip6#2;cTA@;D#hk$PTWh>D6@F4jetm9ctV z-Z1O6g!LP( zFRVOq={@eLFC2euXh@NbrFp>$IWuxTTI?TWX$2Y^Q}eqVy;>cJXMk2o#jiYF)xsEo z!4)32_8lD^FgIH)-u+LH_qR72k%gtDw0wLiszqwiF)`y_>2HK?K9fHFl74`G#^B=D zn8593tdX&?(>-qp3e;Tx8PP4&h$g>U&6XKF+>UyKr@pH`oJM*doVYnSuzNq9XF`5` z4Qx1g-kT~)<8un}zD@KdCntYVG&K$Wj9f9N9Oi{ZV5iuAWD9Kmhzv+M#enYsCTV(SC-U;@*|OzRWp+S;0mx_YJQ7zGa zUz?fJC-OfE?Lxfb1g!?A!CI)Xg4OR1c}v9aT-*tmnwk=9Q26)}Q&v_Mm?40lI^1*Y zbkNcNCna6copREF znwoNf0^BNl<}FI=#H{{B>q1LDU)|XLfX+!SE&Am2W=Y%wh8HTN=8=Har``|zq7swH?oA4Q?t+-9bC z?*=TSM>;yhS}sd$PNBw`jL#0X-5PkCreIQAYEZ7hN)Ue7j#s6Y;~x<4QB7@nmp4Z$ z9BQuFo(_KOCL<^9uSug45~iOUC9_UK5E2cxj4i z$G4$rHKh!-+VmgB+lA0*;AsUItyyNpL*d}$tbQiK#_p=NnE5zLWRAKF?CGSpNI*Hzr%;@8Qe>#m89$z07DSJGmK@xUIq>*l^t2FbD{wK~cR)mnFae z#%d7P&({}^(_AGpywdaD85+f);HKNl;|Gtr$79Wwe6yWuV`^sBzS6ocX$*Cux+Uua zXMSkxgPEM1EVEf@Aqfn^)p5k2rlt-f;;mTl9G1A#D((0!_uN%ppj;q|(Z$@0n`<)2 zpS#V`6Y35Y45Y`_*=KSrc9gLA_>SgB)9m_fFi`a*3443>0t=wQr2n2?a5a0r!- zZ@8H6LriQeNzpqdK?qb*DteR||lJ#eZoxrK%2aKF~;D)D-*liJ+vUMBs8# zS=+Art@J^lbMbyNRADj-3gDB~_J@_{M^f%3M=X;}Pv=aXQW=|zJ*@*jo%?#nJ`sul z6qSFMBw*ohZZQBxWQl0RGQ$cs-iZz>8$ID0P?o_KO^cMR$myw8>uEJu^7X)T?C0*^d1rQ1L3twVe#^Z{!flhnqdy)wOQOItKF- zmpSYx1fUX5n>;o{(S37s^8`8_QaeU2u7ryVN9KlK*+PVh5_dDFUV#_pnt33bP+!0w zu1&i6reL^b0@NFk2gP$m;m0^=lt!;z7>*(ruX{Kf#OJj)@=m0scmygI{bf~|w(W4Z zzyB^=@G0y=csX4Z{>Qg?5&u8wi_!mqH3fyx|2N;k_%HrJ^Bt8VLAJ$Tv!kZERqO7m zX7~n>)s@YU_mVXoymO)xO;K#vvk%0Q=juSMv+UKT$(Pw5i(6hT zxbHBf`ayTXD#ms3apQ-9oE`nt(GkI9ncJNNc)OoiC0vV?K{)~6$a!{B;8_7h9x zaSf=^*n|W83_idHincof#4Phjh~vzI4CReSNjZ#^{W!NKZ^NRq}&;W`HF#cUO-ou<5O~7Q}&_0Jh?-@ zf{_OhWrJ3Mn$w-ZiMR+ZJsLr0=sMlN7lzP;A~F1$>`?BVK2XV5AX?$-@ijD$Y*3g8&9S70jzC2N7Kk-r z&My0Y9wV9Pi8ZKPz+Ue;G_;h-$i4c)bXH=oD>&Dhk2Nav zY^XmhQyIAAqdriXl(|plH3gp`U%570l?JWz7^>s+OZ&*JOrj(1%aACkxfQ764aYk{ z%kJd?ymxoD)#DwVmJB1!l)e2rywdmU#&Vd^l5|N`+-^JV%AF^=u(12}H9r6Q=hsKx zw`YYwl9j9av`P=GtBA<-^u^tcHxU!Tuia0HXcU0P6F!|I?~oSuP4|l~R!tUFCD*cf zf$0JnNlAD;iX%q*7)5&ND%i}1+nZO{;5&-<3pTf7!V9RDhZoPI68S9ea;tb64g$b++8R*JB#1tQ2Yx?*7^wvSxF7AZkS;+9rI9Wbq(i#9q)WO(KtK?YPNk$vx^vUr-AH%WoBIgo|GW3y_r|^VjrYbo zW9T>oH*3!|*PP$^{eI%R2uf^~V4174P;BtRswe#yL(*@!R=uYV4unX!)=Ib$5z&p}W@4F_b~Kdi ziT3M7_+GkY5A1RJWS*BZM^y$}H5Gp8_?r`IhR3n!hqiLRIsc5`zT zROc*@w0c^SjVohIW0A9kB3VYW_%rYID;rs(=^<7cnle_}JbEgY?xGfmh(7#JN)3hS zif;!m@IFWQ6j?F+Wa0c=qev@+@IVNACr@A4i_9#mbKn1@erLyYW1?fHOE8Nhp;~G!H|2_N(QGaGJm*))?+Oz?Y4vW4^pf@t zHR;M!l%Z++G?gitf}E5l%--K=h`&^OR@IP)Mj3VG9`<7dtv4`XBDJUoWo0?|l=AJr z%58bxhKY(nBCM~7b-u!eG1ucF-u%{YWO6?z^JiewX|t%-Ee&lz`sbviBP)DAsW_no zRPs2TOQLBt)ld?3yafaGg8ZP7?!H_Kw{`BQ-=1}RPg-$CrbHRV%+T#D=p4SYrdE8P z{8V=0YJq`ECi79bGCn7vsRzw`ok*2E?=Z;}a%GNCer)krVDC2UOTz|>W!`5!aXnro z^2x=NS6N?8c_f2&E=KP(qzPHl2TA(&IL0e-*x_wezY)>Q8CQy;zeT7^rq6f}ndvkk zv*T%{bkYCvNsYnKeQ#90wDBSXu}p{AySB)}B5p=23^QreL?EaC*9W>C7Sjz~EVg0S zX3^rmY?ip&_AT>yC?3aWA-dLLqxA)B znEg7fvN4cM$sO{>AeR0U!#!%zgZZ(x)Qz64REq*D6@7w9Am&d6Q%&W_c&sq7(zocI z^pC=%Rw_n?4Ch}@TV%tU3$bt?ClMk@Q=+J=C@;kn#-ucj%nWh#sC2_?Wd@T9BoA3; zGPekukBN=SUhZz(sORE_(D(Ls*`TlFJ)>?84lne#k3jQRL8~SyFOSM4(r*X+mu}lc zL~vHYk5RLyv>ST?s1>2t6FU^<$VG8XFVLNfjS7)U7TU5zEbb;0ojYqmMRVWQb{jLz zk**SsS8>_EK$es}?0HxlrqO|1Y=roZtSk2@_5(O(G%1c6KF&vswO#O`(<$A7;>I(J zy?i+Y zm^ks9)yHs0N%r51Avhq!(9h&;BAZL(*32f=CPMP;ZZ$vY``d)bez9J}n*JWWQpobu z$IvFACL#lgPBU6KGq)454GR%+Gf%SOexbzC41z zxLK4=pFY&dWX$JajJRJSA6WiQr*smLm264IUIsPNfl*f%lh`#lO^2e1-pTCcFD`>9 zX+irZXp}V;xbiAEy8gb|om%GNJK3wK)zO84h(1VdgqDr!#t@Sty;9NxeKdc4(%qfn zm%khWFfcuYiXY+<>H0@-2MkmSn9;26B*9E%t?u~gBXblg6JHd<;3+;i#@ChggMDRA z@e(3EJ!qdBw`kbasgaE~ZC3KAWNZL8Z~`k3**SSJL2ioyouM4NU`#NzSxnG`d1aOc z>t}sWhO+lV_y?BCnW)F~N-s0oOkZrzB#w=}6;r8+Qj|}jv%_q)-?kT0VXoXPaz%G7 z5bV+H!{AM56^>a*DZbe2Ge+m1y3fQEs4Z54#ck%nrNHGsWL>C6U)V*il3X zD$h$*zTpm*ox1RrKY#KyuG&j-m8BIoXd$<8AzlB_!F54WE|@;e%IUX7glA2KSx(k3 zTm6dd?@w0c+8!29niW6qqcZIhk78sBk0K6hU2av~efH`prutq{7+Hm-h~gtfe5cJ9 zw7oNdFJB}sfAGS1E2UNTJzAFSY3!eVr*D}!h4T$;e(}uHXd6Y$^s|!#a|5P3YBch4 zi?rSCRFq@QTjM$!EAN(TbiWo-dB0EizPhYeo_@Ia?B!}j>odtd9m6*in?n?cD8a2p zFEW1TdYg3E&}lKphjh~!&3t_nQ>cil52sD{~{b@@5GYJ>nVZjLp2)tTqx#;Yyw_D`P9iN7HqKxm5xxYtafy zaHH8ii(zU)^b-ZFws$S0;k#r@VzZL1kN=o~tk$|3s-mIHz8MokB^8!5OLpvv& z0nH2=qo&lKG>m=EQ@g*6AwH!ueXQCwh{n&y`jIea6xj5bxnhZI^eLXvh5jBt+1pfs zpdz!!e=7covby5TEU7!bh*!eyu6Frt_&wI3QK7vvW~JdiZ@k`fOEJx&4Kd+V zBJjBkdL!|g$cCih=`ZtV>A5|fx`vJ7EI~D3yGVAZNvLTsC1smGe$iZE;jTAj+dt1a zIQTQBjwOIz%q$j{uxIPLwb6>PEODv-@*iMPWFa#4MfMS7MsT%e=VX2>=*on=M`L9( z_;xTmDx%&NHXi9Ii^(G-n}IaGI(T_$hInP8uWSBa_Z~*IBsW;2z`X2`7@|pzY(DUL zIGXwH>&Y2mH&-Q2`Iv68U&L4b^eOAyl6k?|Dao=|F3g|&SS{Z14h%pp?jIJkj0F#? z-DJb5*}i@h{Aa~8ZdF!YxuiE#M064alIwCgWyMpjc?eC zg`dja=`v(ucdu&Q70QDG(!+Cp0K`=QIRD%vD1Z}|GZllZ9vcn@eGxLJPf6hnJ9m~q z-+5yt^sR1R^_wd<^85Qb37r;HThA~y(_Se_io=B=XAXS|c(qcPD?JhjO z8hGG`M%X`R7#Mh@22h+vxa)H#M|tg$ySSA3*>l^n=~aJ0eHRAidMUUx5m+>}Q9^98m4 z{n}oGwL~_rMp%y!B7*inatnQWip+X&Z5T@5tIAodVZ73RZ!rF%eY87Y^oziT8hk&rE9c-2R46GTQ2?Di;WyVKR+h3Q952ybgQ~^ zDwv+09^T8Xl4%~A=NB+^&Ibb0IW-NDiS%jp`)Rbud&Y3YCfYSjC+ivA~ zITbnwtL3);?%?16=2v$1&(hLJU|zGlG_kZ?6%n|=O!mCtx;)*57_is?0A$aX?8*yD zH=LcHC+?YHhGPq|-t!_MrFyN88ETK@)YR200Vq?s8fOOcD=Q0j9)Qqr^8iKSF%F zQBlErK}cOuymIoZvPG^F9cP_293~7~+S+XU_)amNJZa_Gtr@bp%F0aAoBVB}Vb{Y3 z#orW^l!_g9wV-$>m1IoAh_ZH1(&PRYU<+7s! zoDx_5VXYP;cp`IWd(G%PpDb@L>ufHXQsNN zqeJ(2V}$phof5`;u8zb@gw)v&&}C3k371Z#0ZQmtTQgNVY*Rdc{wXjJk<{Z%7aol` zP#2#>-#;LL)&1h*$4sp& zI#Iw%n2qK>rJ?x~7)L=#`8hZku3>I28A|B@4vqQapZBBrnq5$C$f!2~sbM8ryLYpo zzE}I^0I%-$dbb3SZ077l0PWizI1Wzud>@6{2?{DJV+F3)W!%md0qV`F2(X*Jfk;`(HYmX2-ZnbvM#kk9Y&oh0#mW=i zTIk(75@i8Okx&D`x4~$*tfzyp5>mZWg$iPPOzh!1 zoo-e&PPErp3QXwzugNf5A54eRjIcUjzBD|}SH{iDtY);`-T8LwE*V@;wiZ&u_<#QT z6$n-klt;4cBLLq~P>FTi0xY-|-_x9@WAw0ZZk;>Tux@UU= zmt82g-4>u>p7Zd;cXvxdccrzpb-4snHH+Js^JcClF%@m~>u;nPGEbpOu!C zm7O?Z-kqKZTho;hfXX`-(>5_NF`p{STRH{dY9E{%9&05x-8v$y5nEE=XJqy6y#KY6wYnN))Y=ZMJp8oKtamJ#7`tK|W z9AjKPr^I%$%HW`^MK*g&Q8v$Nm^*7SS)N?)zOdq3oA-*$q1&8Lv|H2{8UEr}!s2eA z6q(<498q}b6(Xw1eRCsQ6}T=d%v_nXA|R|>rTCYhNpsM*ZMK)vWq7Yjf^|?D)@S>= z>|LFWWxB))r0&w2Wrd;YSp9t4sLa*(3)X{wP9DHhN#JA3B6TOlzt#9KhciKzz_y~m z;qs%1xSBN<(aux(qq&qTU(MDBJ>|={6F(Z^mqbvWeM}*flIn50iVP^PvuvCiY?`}S zdfLw&*ad%L)pI}G>nz8Gn6b~Pqi-m69wRk21W(CI97m~T=a4L0XuSQXGl%0+9E&}u zx1q4oeV?TL&$GTZ}r>-|b!rpw)h^u)aW!R|7W z%gR4K-U%62;dd#BXu_PXEF5@Ni#yxy&<>Al&Y8=W`^Fl;hTes})X6G2Ep=AY4h3wN31 zzKuLo5)lo>R=Q+?h%9UfHa2$iSqH1C<_edC)QQwGu0d3h`Qgx@xn6kD+SO!CE~md?;m1taOi?v{OvF&5_wH>GHfkA#hejL%(f zK2n8+aXAU#K9O7E>Qpau6d)tEo!+!q40e~Qk-tUl^Q;NLBRm=MBWn(LXidI(xHHjr zaxJocSH=r1ql`gZL!GVJxhDnbk(DH-a(eS((~Qj1if6yjcB6!z(srpf{9NRQ(OBU! zSgw6zk?Q@N7f=m^wT-{GowY^wuhcsxHKg1rVPZ;Vqj7+}X6=fEg2rnkHFLQ5%h5-7-XeG9OU)y?7nYoDTnL=Me&uG24g`)d zVd@&}P(u!_by3N>d)R0B{Es2os?Pc-%*@yo`=b=Ir-XieTB33^ zUWto793P(f`Q>71IT!gwAAT#GU%8f2FN9+dfwOD~tol-eO60U3IYy(Z2iKsOByn@8 z#nf8tw3JhGGHF(GzA<@HhmL4Gdokv;y<*>u23J%1UD*LGHw5YBWUu?-yFrRjP5INN znA#gDK>R6=_Msuv)YO|CGWT+6fEJatO)nV>tO`!u%aqt*NM8gUm{d=v=Q2(-__NXa zk(Jad@%Cs2Xuv&yi@8WF!N=P|my)VEekY%aVIdRoZ$t5YO?RBo*g_#;ECK?tiq?lt zS@fL-hLy+~4yGHhgtY1|l+4V`k}>532wu(JaEM=msHb79?9o`M`ks~)CRClQOC3Kc zt$>x+V3E(=uGW79?@%kFr1MY~(?Y(JkchCFu^fTTzOTUm<{?%%h6uh_YJTeM5*Gd& z1-}8U0wQaj^741eWqwXBH@t8H@Mre!2Fve3>*?1+9G7RFx3drd^c=eelbag3zlk_z z`0Sq<|0@!TnCm}k8L_Y$-;JfIQ@h_xWY`W`AdEin$6$MoIrSrcD&E{;K~Ctg*_bL# zC!^jF(XM<{^c!bq?#*PWwq~0QX<_t9C)fA#VNQR34-RnlU(1dPkoGdcSY7scFS^=d zCO$&A(C_bFp!D2d(Yl#q*xRydov}Sr^*}-2qEfuqEAGRBxg%*>YFX#T7{J#l!?N@? z4Is+Id}phsG3CFP51-&yc02W%!yL;bOj^%U^Jy0Afz$1Eo&x)`2%X@DagEQ_rr3t4 zvd{eCA24Vn>G;%d>*MxdLh{#R5)^Ri2iUvlx`l|vL%yMOsc}I4d$KeCZX}u-`C!6Y8A$s@7($9^<7IA$c z4-jyJ37R+4NE>j1p5u4#m&D2`bgW)*w2N1H6GwQDZ9aEs&EX}ywb(2rDaqIwk+a@3 z2(lRh;r{8f>8QXbV0L~Qhp9H zhYg!gnOI>F@a3Q1+fBvEu8qEv)V_eX>_Qohq-$~LMpHZc2;sju-NZd{upjRWJM4Kg ztwY*>EQtE|1iqN)P2?e9H&^kDeoB#<1+szlOFl@NW42wTeIxGl)2A`}i{>AfTFH57 zix3*|y#(+QTyX_RM*Z9!v6FW!bY+lH@aG}@B@Zf`L}At*en@7%+lZL&IUPD}2#f$Q zJ3P!|;2xtTSq7NU(j7!|7pPZ)WtC4?y5$@$s`RN zQhC>!{(&ItctLEpWib$P_Yi=vV$xAfs25RNeFg*P20r zN38dy#G*XFGoWw)I`19~=+w43rUuXi=Zp2s^LbzNi&8X9?TmZfs9WchRs9#p5-d3t zRfe`104y?6QoQ{A{XOyoTcRHwIl|tJg1QqFu#W!dWWA1chl!zMvo4$TFg`v$fk8ow zC4Kx$z}}$?%6!OHL0w(a)s-74KmEH_^v?Dc?vMp*fLJ6KZeoOEi`;uy62dz>J5{Pa z(h3Hkt$=@h{^}KuSN+X#0gQ(Ih@#u|@mN|$#sR4MO3Wu%Kq6GV4Royj!@~-oDv058 zWyjO7hShdIegd?7l%Tdv(})N>;=7*(+qQ`sXVx&@14ICqY|T_hgUThSzyCc@u%2&~ z^ubgB_{WAj5$K-O)YP1SUJ?jCr)|6FMUEWj&nnlFBy@G3f}%+YQbcxp1_4Dj&>EkO z6nL~kWp+U35(5ASXz9CucnCLn!qWv{1TfdX%gV5xJh5+4xdq}_r>!E$8JKc>emBk% zqaF%c+N=VQaQ+@jx)*W^)4q7IxDY^=0T3fhO5v}`$$bDw@$xNcOQ9#OUj8NlmAe+I z(7{}R%dK(%d2kzK2s;b=*%~G1HG0Vkf%8k z3t)tPA!G{zbw3_V&WQM%H?RUX`(YCRbU8miPXIVmVwB40$Ox=;$MfiqJPtNC%&@Sq z&>N#-V#4qOCA|Fm_YI!cW1a)U!$Lqyd^+Q(4KXhnA6M}Jc#gvnP)owo;Ud?cwKBqh zWv2%oJ5-FR;k*)ATgyi=_-HPMYtgFrs6GU5dZVekcFCX=jiT5$D0`f(qRLp1Rk|v&&@MOPu7gK?}5g0FXogWEyk> zInKFr0Pp|?NMBNtK$Fz=~}OgAL`nei;bBR*0m z3|Yj2O;H-Xts__YpVO=b;r#M4A~yDOhk+g_>0iBiwbzQL{gEz%IE=#r`63i9K6YUaDXYJk^|-VEfeC0I zaR8o+@Ban}T!C=eCc0Gn)LX4zIH}_16a)8#~(x4cTC9)`fjL)iO>@ zGxFb`WU`hOhKK&JBO--8=W-{Y9k4hoA}lkCP*e!5t;6J?YKj;uehRxc`i+CqpBIMG zThS_?{HEPIi>8~ZyyBZ$xp!++!}QTdEXv8cBM^<9=E(KmN~+uabH;D|rj9W)V}IGj zE7?BTkQ#v&tHe$lzPyB=vpFRv>LAS=S^5P(N|ZuUx(4EI_t*XI*6i~L85&2Faw5SD zeC%!u`uur4hQI-6Crez8O~FRs z5MYwN2lyK!04kU1PsG}{pcWuLblG!4yR4OmfQ)^2jH(IKkA4SVCE<(bQ=_hW__+ zQQc>GYHw^~U?1vp{bWLC%aQLG*Zcal%;#fpK<6THv0NfPBfq#vuVKr#I)+3QI3~1R zh}ik6`1FFESp3J|&wug}Z@#y0rBi$VT7OF;Dq{lCVWcoU1xD)K-z zc}}(oIV?3Y*_AczpMXCj%$HRFaHpZ6(E*4P5JVOl_mTRekxXLRCc5ra@}5rHL2=?~ za0Ec1+$qcIFB2ukjz>0^+vThP>AL}7bG(nw1E8E{kI&Q3S`EacbOPrt6y$_T^7l?p z*P4(Sm#a4Oyv`?f;KGDqSHzPgxGO;I%8!u#JArP zu|FtkYt^@~vXaP2{Wyx7z4?^k=Qdk2@jDHTqeg1ZN!aEFEL`sq@iC1R97_isiMjS- z6ANwe0og{*Ooo({@!quGC%s5*Si0$(mc+xHH8DRas<=FA^hp#-vSLnqSJF(q&W<9uYCLZ38$D);?bFKLP>*M%^)uAq1>d z7T5#?9Ya6_nrDU+zGU~Uxrpgoaa8!Y$!^mNTY2<0!~axE#Ok)K!#)7Qwbifn=|L_5 zL;xtTvKFa0$r~AazghYf!(Pmid-d%ro5O?w)8G0U8fn&X%Q1_Bg*bynZ*}hV|wMK48Pz>2t91%%bt~VdyCU{ z*@~l3aiNn7H?@s`jR|BA^3wKesFQcln@}2_bY-R@yl{_^+F2fsFM9O*I*juDa>Z5^Q7Kjm!+X$8(o4}Nh~g&KN83Bh%{#*vKo3D zOLrsw4q<26sBXN$a|&mMBK2aGx(1=iEvH=n=s51^qU2_|LO{7V+KjX;s@;iId@`;-FeOb-y6>V^7#Mvf1%IB+>&8J3n)Cx6(o?T~94Zo#tTy(^Pe(DRdEV zkBRMb0UMklpdtZ{X?uHpdI-3#CBLwBhw6zc`8zxKqt zOQURy0Tt;Q(_@q&6))`J!4Jv-0en^?$@1;^`1s26)%bHjNWcP9+5(8}1{=d!lCdn0 z1O)2&3v4>RJ%<{!GP1Ie04vg}w{SUk%g<`mtpg}XcYZDHuCA_TCKRYgV%yagwut`J6|5W|B*G9|U_}@m~U)-}wAs1)7!v5-X0)tYWLU%jM(j zBRq}QfV2cOF7%WG#4*SR9y9<_y&+93g1b~kO6vK`mz(Ni!0yEaIKhE|f$jvZ2rz3A zot@%!XN$-%An^qU=zK=J<>I7SfgxajNJ^$s=!d5&Y$$>AkQH3|*|TSRhsn1IfQw0i zu%??!YC>;97vvv_Av`4nU=M5UhRmlQOWguWt<$rYpt*mjr-VM=vrryYseCCo&5x5HMEum#3zau@PY||EZKT3(Q$Bm z9I=6IOhXW$E|_cal2pQBq%-><$+_N5{clHK=5g%;G&pSl3YcO(e5?c5eaMV5kS0t_ zOu(QJbAAPUauT4vPgU~*F2Nm*(>7ECz+AQ1011$BZddydVC%90JJXRDBc-(Ti5Do6 z=683)01nB(u%jMU4?IkuPOkt?TOKVl;9KhJ3mY9(0{mffq_S2An79hC5o1AWENkpT zV&xhh@#a1xCloCyN`% zU;(j#P|>_%YcuD5$_y4dfIZOqnNNbAyyWibeZUFQKprELM-M;VX5JQ=vZMH>q>!_l zk6X7egRBT}(CuAaOF){C2DsDpq0Ga6L3C#4gJp)~dFS6J6xZ*F4*pS?1-27(Y&+P2 z)DcQuLv4?%J@FzE5)uU$P-gRUNXXWB_w9Q?OfQ3Fw~$j%w{b8Hr#s+Hh<021vazvI z!)?D6x(}c(-=27mL-0TeKDcte281e9c%hV2IwS*i6zzlZu6*hyOz{x#nBzcnQ0=(O zuNNX%VAkY^1U3;gnjC`A1!E!cLX$x``t(N*beR98NdeR+**+-w?V3?Jpq?S1?KlIQ zr(&-O8Q4>0fJ3Pj5bIzC81=-BZ0LrD4JfN2t7JwSfoh|lNp3T*l% zf!lL*;3$NF^5eWWXG`CsqF6v=fJeb^03RE(a1Fotd4F*BibB&o007}a8Snm+-z|Xn zNAS|VTEv5j9UeY>xCaV|!^B;;%rTH-BK%m;IG=&A!AU1$Z&<3I;| zf-sVa-2Vi`s}1FP3h*?*_rjwR4nuEuam+=hyv}NYV`^sFW`7{U;&1BD#hUo59to6_ z6Z-}&vn~LLaRxXPKBqM~I7(b0*jSJ-vc8lzzR)U=hK|ml(dQ931xjSvcq2ia0?uy< zu=6>ltpz=!DQ({p?>Yt=-LYA0vjyQg0wJ&X!Q|dhYv;n*MSYh zG(y6{i~nfAY%@_;-?fzAQ|Oq<*cccMz`7oB!?2VF1v!9uZU-vQqP+pGsryV!)Km7} zrT>5DB>Ue_K>nZRbT3otk?(MDuIc{)VE%0nj}gXd?xVDTG6h9u>JsW$>Am*pe+-Y` z2)Le-;u}0x?4Ca)g7PFW5=9iAR(BzeN z%jKr`bgS8ymsrN-M3NMaNUHy8q1bx}->hn+;~zUmMicbFC*{|niw53Ut2+=4+12k( zCEt1(G6fYm`6Mr^5^A!msLJ0h zf4IND<&g5e1^ASTHYu&hoPnaAGBucN4bm4tDXeMiXiq}P|3c5~bBX3P%$36WVm$ka z{L06}0WE|P2APN{3fosw_v8rcRx0UF18J(oJX(YYZoW>YAlYuWS=;rDfha98x@n!@u!ZHl~3CWT0M-fUidM1 z1W@UplZXycxPPIOL^JbTps*dh-)P}VJc&NcUdNBni0!|K1gW~COk-`zR1}1xJ4{Y! z4LHTEWY0j*AQu6#pV9WXOg(MB#AA{@3E$te#%k(uQ{PxFP=ZqQYQnW z?{W$Ee$Cr?PO;df-1kLv{2v(X^$uO3vrz;qvr}%B>M_{YrgN{US{}Vu+FYpIdR%vw z4j<9j@WfcPa;=8kO})r^@Z>R`zCh`Ifdu9H6BTVw;a(4=o#Mltm2eo|bBjl}^x5fY zZC|>U7L+k@Z`^bdWdlBWYd;w|n0Aa@R;)r~BKWhg+uU;KBf6mnI}dq`=h>6LTrEc( zu0&a$h~2*@8FnlwB+Y)$A`HIBRA+*>-k$JK;Nt7P%rDlRlZO*Llj6{Z$rqRk8%Q1> zSJ$l9xlTbuE`cX?CDczuKubKNU~y3t zd3XEw;f*xU5d1?sB`b{$6xfCjx4sqo5|5<)-MUp(=>`K&)FC!Pbxx_DwIQHIw2L|Ub9=|Xj8N$MN0hdd z8~TsYAGvTU@Vy!}-HFQb_~GH-sW{b7qBT@L&G461r>{I;S`?o0ltM9d`fe3rf!dGJ z_T0W`Z-tS~P2+uYYdEeso8^@hy#Kp%y<_Hnf#K;t)2~ay`QHT8ReA19(5t3Pk6z^? z>qcF0pKcW_%_N?nAwyC;P)l3j-b7A(m~WIa{66A>Sc>n&l^G;arQ&qdH1B^BAW)nx zpg1%$7a#&ZOjb|R)UEuE&8=c;px;=cPiWZyfNFnhc6x507o71aULL4^>Oi|c!#$x zmv(|70#E7bR_kl0KND4$TF5r@muK>ubIb0gZaL4-1`*r)sYxz>ua3bObHgaFZR!Yn z!thOb+iZNzb_gScZDr4x!nU~dCGqBhaa!+EBc%VP-1_hN)Si`Dsnd;mv}fi{KCF6E zGS-+}$6)o_YGaj!3W9*Su-P0`V_L^3@OyQ9gAeVbnwQtn=0osx61IV#9H-EL4gUC7r|0*fT)MDpJ$}0~l3TpM2QJZF3UK8yyB6J!w zf9KTLKT0^{T4jNv@DrwVW{`)7r2ND2()!TLTlKc>WD}c%3XP0OJqmt2~X+7EV$*v(oUP{3?6t zmVpfWPjeZTaS5akiDh5@Q*gdVoA5D7T}pj>R+=UyWKpokO;G_E9?soIYFpwC7+d~s zyFA?COWEd;YYlc>$-ty$W_HpIe^Fw9*}WD31g<`!%8`VX-R7i?jLe;P=LF}iI~mpW z=(l*TTjf+nk=zrGEw37ukVe>XN948-`oSu5KjF^Suxvu7n;&5u?mh%j%eLGXqXd@B z*Lyi1w-=e2d3%!u1gpWBzJRx`Bw$P}0dYtr_)HJXPB{NO`M_<;Gj2}KJlNDkmc0iP zUMGAoiU0k}CU!fvdKZWUdOCieatGB;$W9!5zR%v|o>j&PSkgUz&h7;h;XN&mHzst6 z=|=c4d(nOJNvQqd;nS=fM%DCEbH)NgtJ2GH>d*hIq;``{I#03(lJM}3$LYbxNB9&r zyXS8-@GW(n9JR}E##k;rpDZhqJTAL&@*tsv#_tP<6qq>Z!Bk7tf+wCkFnG@pO2eV{Vc?JBC`87 zA4?=LfJT6fio_{3eFV}_yN0ko8K$T)(cJk+cQv)lSOcdiByUA>PAzmmhrDTQe9=Wm zq>6h|JUlh@)M3*38ghMv%&g1ev)*vj#h^qP3?H!Hh(_3Tc=~gv(ztWcfSuAK!~l(;V7E+kQs^`s$B%w|QSB9tded)W@4+wS${lloDzz`18@vfC1qH1ZrKK$$JJOQs&9ZTBaX0gpaYn2u8>JWAN6?-nGdse>3 zE*>r)d!NB#nm|KIWmRTrNf*XCQzm5N^WS|0{-*Z&_f!9$?;w3K!ZGap`mk#D8c>SI)rN zIGU1TkRk34=S|eJF;O&*Cg1+ut~4JO@9u0J$GJ34+_`Ef`A1*^(tQt1?ss1@ zOJ06G;U4hxPfw3?cu7H>bUzhb>A56&jYcJyxTBe1G~q+<)qU;nlO~X8{;%beTu5&2 zc_B#XM&g0#(0dDSzE5hnNQFHImwMYgv^aJS_>}bFkQOlMHVJyM7jQ!-K>r14!n;|p z6%Il|SxU5Xk(;c?OM+$oezMsZVEoAT#}8iyol=%*(-zY*+geW%`xoGe#%Gn>TVWtcb-Vr`!B%2zoo|&K8ugtSWgL7P-e<%cpa4G?`%ji0;Gru=7e`$RgLlCke=Qg zH>zxVoRb29 z6RBM$5682wk9@&<=&JXxotd5BTi#>fy>k(i683-Ru&`u@PKG)bX=4i zKYGD#{&{s3gM-~#TnP91TVtnPk!CER-qT@u5v@dTEm&{54U)zfqqmtcUm4u6u)7g+ z(3MWTJy1y>qgxrg(mSrO!FLx$e5^a6>irR}Az<@oby03G*|i(*GBiU_6Z^8>Rs#d4 z^NjYH*MbMt+b^V@8x0#vKe`RcJLjUoPky>J$gaVYkzu`Uayre0c`Mz3jf=?@akn1A zS$j_wS#Y^{b$)*(9P(`fMCO9(8>x^q+u}cKiGGH=MsCg|^UcSaJ{1^$aB<&ekHCaJ z_V+9go}Jq@-0(n;xfVk`Ft=1K>tC#wyT2ILpZFfpo z;Y9jk+kyBGPfDFtI9#!KqU3c|&4dM})qUT$Ufz7uL5D5fvz^DYGrJE;K7oDWW@~x< zswLG)gYIQM6?%i-)5Z_vjdMOv8VI}FkX;rCtZ_@=P`tcp=BS#OOBltJV5qx1vZ&_Z z=6_7j9Jv^rkCXy9h#6}Gu1@LYHB3ld_l~+io~?fLg`Qv!)z7#;sclOpI5i|2)fqo_ ze`VP6?yCtXSDv|POO;Gf%!;!1{}rouFWc;!h#@6MeaBcNYpSko#7l~%%p@mjooZudL+%p6 zvz_H74h6o{jE|pAm)q-$g33#4rYPCol>}#UbB}}I50RdcMl#H|Divw#R*J#!yQ;oD z7P1B5^h76mX*RxdGH*R9y9)0{J`8ah$9V^*BzXOyFb(5nEsTb=$DUKW9jDE_?+E0z zmI>BfBfdJqG(0O!*V^MwmUfz|Dz5_Cjn!gvxshYCVhdgrr&z7G#w zpUX>_(jvTd>rpXF{Jyz4g|q;xbyfFGJTqXpTMqYm00}F3jvcT6 zpH;ohr-lsKnl5%(?d!tH`Tv{`wr!P66d|pe@r1QYixCHeri68mV@0<~q=F!?e}%#B z6^% z;umtiBuJ8X+4@Nm+0B4%U=xTwcDnUO7o7tw#E&qsyKAEPI#l2Bsf96&ktR+jT)cQk z-pA4xs;tsn7OJ8&`6RZQk>t|ZDl<_$Gd`GtPLcpavK-Dz(tZE(#V8)< zS?fZZf!BoZTd@tjh5x=DYd~f82oxQ;Z&(hm_l`@G!gx}gk7(0e%T3J#LgOq2L%3qg#5aVm) za7DcN=0U^83|c zPx~PevxJc=+WI&FHs{|#;d4qPMSVTW&s#Or289lN`0yX2?bdwPc6V(FWC@E{d333w z^%`5F`tq+%X?>!CQ76`o$ImnVwmf z`?iSYeWDt~xi8BXj}Njp+S@14Uw@rwpf7@zD&yhY>CgN;;Kf?5s8evrwD}XGESkp# zPC1X>lym1~SZ2xGQnC0C44Kk)zUM@DkaK3kpL13YWFskJ|jF#5@36pcYW7 z5Y@8(lZVZ~@wiP$E#)2$u2H+W;g+kXYgAgIYBwk6<4W*&D&?uUV|v`E=STKZLxd#9 zx{3&Qxf~x=#a(B;zdd!5jiYOH4B~azU@je8R5#M?{o{yB@50CqXmUY?tBh%sf%<`W zqi0efj+){=A>0>E%E%B3;y8f8W|g3^e8&W@!`!q-^U`W<>b!p3%g8qyAV8s27Y*jG zRl4Mv;;~5PeLG;Pvo)^Ds&|WIIOh|{v3FOMherAWJ+ZxGVBtu^GXFU+3`zdx&MjsH zUQadMkxbq(IrO{lzX7;H$o20S4!fKQ6@@N;cebs(e6tS`(<4pJPpLB8HQTCrwn4?! z<;t^d5Y45osGQQ#5HovIQ=A&4?6765FG~-_ZIs^+Ejoj!mSx{e#u0Up>_f;BZ0bx| z9{1ST9R}BgO>W8GbJtOWtIC>B;Rc$y z!nmktOP_YLofhL+Lhw0x`U50V-H_NXzv7!L1d%Ew_2laa$!yAkGpl`m;7kk(Wn!*B z^tU?Xu70=C64 z8^oBa=Nj?a6zxJLmaR z0*A}+9s|WJI2l#93Xh8u2YgY^q`<|WRH$0(jW0Zu2ez!)7Y0O;1n5DDlz()#vbJ^z z+B52uOb~9PBO_C?v*QN04vIy7{>U$He6Ii)R0SG7#=0|#$jC?_NiGK6Mw^inVE~A1)#!xu1}%WrNaa@op&3t zR#sN#k-ovj#cczmY#*?63W5oHF zTeG!9FrZT(&>2H}ATGCu1FPuOuPQ(z8v$CV1;{T^8h{>v&_m!4;2fc*XFwP+fWE+% z)!XbqbB@>m=*SMh)lK|z2i+9`#Rrp;ogD;Z*-+vS9-Xv%Z=ua_)Z zRRPCJ&c+rA`X?*#Ra@0xM*-P+A~4#01Gi_itC&{$Ux57Ne4}qHk0S$6ufG<2JsO8; z00YSMWzeY4a)z6sav2K+9u9_x!_ok_(}4(-54ejD0l~&%GWZO5Kly+*e7x8Y87;t< zI@t}2jEoF0kNZx%(5|kj1MNWhm-Xw{{CZ|G6*;*V81p~PgQFNUJAn~itlr}q>JbNu z0bn5|@@;H5+g}18iw9ICx9!VP5jjuo2sK`Te7$JDa+SP6!qV*bHsfp*_ovS%-_ z@T0y4ZKc5~u;g3=CSUTGFN1+790L~@z9EUv)d|pkVp3AA3)Y3eGd(ys2>8S;SvCR` zc+guJsR68$ZqPKd4Txr@X_&adP}fItluJ&J!OhtLh43!|8=uUCf&y4vBrz?!QAl8n?Hur>ht zrKqgzs6g@;K(Qq}I6d9n!r~Uv($Z>n(FGkhp~8LoGBS2^d|o*o6zW-Tp+39Ob)SvKnx zSr18Z*v#0Ev2ioLdi8sPpB@((sD0BVqDk$$b(mg-$eCG+8^~XixcM5H^=0Mfw;7o7 zzhH`$6v-oVpsTB^<4o-Jzd=74N?3At$UK;OyE2?%a%a$4ECqo8n_3#U)+rQ!HplE}@~J5x;?q zg7Pp0G$Uwr00u&+k{!rIsKOk#CnKTaeGLssKz+xXdR>?#!l;*9S|H+uedO(vPUHLc zR2*Z$M}dZ7(7Cr*r_o0VK_B!g$Wt$uQ&;Z-{HJQ28`sUv4b+Pc1MR^9m7{~c&rtI= zP;>!N(FgXA55RI=1zvD{u=^!rnEns)-a07DzKa?~!6X$>I;2EGLb_DC6_jp}?vxe` zP`VpbQo0+FZcrL2=?3YBZ(sU6?|f(GJ%4<2&V1+0In3bP!p(JG@r%9JUTbYHn39Sr zDiTS8?!G}mbSx|&X~664>jT=r&dN|wVIkYm{)T6#3)nYEy?n`?SG|R-ud5?P=|6V5 zUIQnn1y`Q`(Z)m#Ar!X}j{jtB?bHE`Z5b%K1AB;DzuCXev;;^{kAuhr)ON>U-A82b z=(m|0O-p)9%#@Y#w8k^KHu?EN_WmPX*RlW>7(YlqnB;c(G(b*(&?KT+bT86|y$4zX zbM^1XhCPY0!0|!>>B|csJTPiiM@KLy-y|TAaC39>yAV{T^9zdl`V-a8ok>FEJ`IoH z&0(~%rpDVXLT4et!8l6UDvv-y0c+J9C^5JVyWrR`7vq8G_2GDW&j2G+qf zAT1-q7qN{7hmHh~(<5EB7^1|0+FBuGQ37QOB0;gdS`PYvY9#@_S3YDeS6_jeUlC*` zJPYxCPi8g+;qq8s@{`FM-KP9!7Cr%B6I$c~=<06aXyVtq2H*o`NfVAIo$u zoG?OLf=7Qzzt`kHBj_p$FnEw%R@>w7?W-8^db4YAm;T}0_)|ZKW5asZeZi}}i z&wAUG)4aQG-rPCq?*az!BzIcia;xgsg!{_5RP1~{nw)&hGHBu=H%Oyezu$-o!+CKz zJpg{_c)fs!au8!c{Wkk?0LhWu%g_S%AcqLkukoHjc`vx^xL@84OCprk&Md(HnLoO= zdhg0--eu+$3vI#I{+(Bw1?{-5%?GZj|I2ZfOT@a?l38}&$m7Vxqx7|Q*~AVho>x-M zMRgm>QFftM2cLGQqItYFgXE@cKl|?H2@RPr7-+u@8|KtxjV_->`y7aob~61Qh2l+} zi6?F5cM8bn@&{DIV8xf1h}) z)bldlX*FtdF-+gra#;J(e34U#vvtt|=E+T?Q7*4I@j05CLeLxb_84#i6!1w zk1q*yQnI9Qjl!(zc%yBNcH`*}>Oi6n->*KYfjQ+-)3R3idYa5t7M$%2%jx|`4t_K? zjmBcwftE7@e<^YC8VKptY$$iGjV_6rpTAmm;S8SBd_fD@3`8j3hKBaho~!ieu;2j4 z2x1qxMF){;+2eZF1xL0rrB{;_Vi*Fv1ZL8N0%3WSn-7T$1AVE=HQ#c4a=ER}wUEzO z&UKrX7RNhmtDdB=tfs+DokKBwLZX;Z=XTaY`nKFBp&HzGY2YD9G+nvqERD@HL{zuD6Xbh=N)7?(NH?BQ+MdD}4)3LiTR2%NU!Kk8axCvV5Vq z*AwlkCGl9}>e(~J=rGy6Bm2Y>`T6@Z$DD7Ty-iAEKkhPL^%(b+Cy;tm8@8p%W3XUu z*w-^ea=k^(`9406`p8~UnC0dswb+4hNx;~uIcGIzl zDTRfh5XIhNQtO|8wQ3N{V`m8IrERl`Hn-uZ>?cxRKdM~KhSw+W<;d!M^_g2It#vtT zi{do{GO<5x%uz{ji-|4V=K4_8vM-eXTy}7hY~gKJOm;_2$fmp3G)d{YLOYdO6H;~YeVQNSch5ud843%;G45EjCs31g=GaEDTXY{ej!EM+SXLBygp)m- z;x+71sVj9*r;wQ5{!AkJciwiAfz@A-3lgr^8j zZz~vo*=rb!ZMJvX%S>un_i8=2kR236=T=axI4 zbh0Jas-rT{CH*g7_cT=Y84v!mR7geEZsoKq!@&z(u=SOEsY(8i+*w3P>mYojhSX}J+?It^^ zPeXF-t5{+>?vvO3`r3u|$|tK-Hw)$7;PxujN}TbNM-CkEox0EJLh4>&x;mUXPB9ZR z-&rJe_rLSg{XQkyF>1G|hU{6(-w?%i86jhb(aD3U6%XbWGxmSE0FXBA}0}#1?y4}As@!5S!MFj5#?XYHa1M`B; zQDWo;-@|Xh)|}?zn8#G|%~lH?9A+wICIVKLqu*j5IkC-kzZslU6Yyc1iaki)rch)N z7$sSZK~YwhH?@9-nTzUPy4RB_uy6ZuCyYl$?(atQ64bw7PH^5{0;FVcYm1y&HUjP| z@KUj>;Sw>AZQ!_6H%JuS?hJ7&qXKk50$0}Jo~i%JiB`v+M{ITs-d zxBypV3u0sIwUQw==s*xaf@|`aPdum!R2^v`2w^il94D~ z{bRP(cN$9RJqrn43@Yx<7xne9n@wcVl+JF5prJbYLMm8#`ux{|)#dhr2w`zXrCTKU z7^`~Px*Q^9!IlmOHGgA}_*m#NgruNQ6vo37adF`VJj86E0^k4?f`HwuTdIt=EGw62 zA^oltTZ245ZVl3?U;L}m1wV{u+Zpm^Ut|<|B>p2BLX))6g8?Y;-vR6q z69R}))){&qm4h}h8fG=XMi#vL*3g^<)C!>?A$8zV)(oJG^O*bl_%A=XY%y3`CR)d5 z%sV|Th|Llc#0-1B?gUR@jq-T451-K2bNs5SE9ky+o2uJnUY~0V?;BtAwUq{TDPwCD) zaP7x|^62mjx%r?O+$GNjW9H6oozV}3{9ox4%NKDvpDBLL3J!j%NH|*iH7H}^X*8Ri z%4u2c6qh4ogWhS}*zM2*zMD$(`G*N3{E@iwlUF^hBg52NH*;q2IlOjVcHq3 z(tfhy>Kr&8PD}{ETpaoSeQfzZw-I)TcNm2AKTFJ1^L6T2Ul%~?@Kjk@+|7;u?b|=* zV+^_FpQjE$Gha8`7KV5QHuzwtgIS%o_eIFvly6o1Dk)6qv?ht~A>I6qO<`vG!u9Wy!Rk*c+F8QPP_cYFiMMK&5U z=Iuz%MViw_beebz*|~!CucxV-v&rWD_Iz>)%v)PcrX}3QjNgft%{a!Ny?GN}wA(>) zPve`Hi`XPfY~2;ZfY{@Shd-GHvQ=Wb<}rozxBMu0e`p9*-lGnwBF8iw=VLg002XIS znmSulcX$K8`gG}G5c0?V;PF$9Nsuk=>dYTb+n<_D+QgQjc-eHteBx^iCNoRS$<_CZ zvTl>y-lJ}>&vwX#-nu4F{7S&&F|cfH#v2R!S|ISHbs}J7)k!5Jr|R~fF&ff00^6uF zwC`b!2|UHGfY6Llz0@D_NK()`fHbzCc3)FHDEf6eDWffQ<>%hQ;R3XuLW}AU1vKXA)2E2l z11OH)y?XTuD{ljQIj(>X_uG^;90be^(E;v9+(I)lGO%j3#E$`hRH=T+3Nw8J61-U8 zOvqiW8V~F;q@t#N^X=P1jLX7CQPg*O5vd%A*Px>rXl|Z81PZC`yX}|!)d$mlP-qB^ zjctcEJb{G4`1ts&(9sE?OE6@e0*r+Ya0rNu;t@R*sg^zrM!@R;ZiVd>@TO^q9bdqP zbplE^YHsfGhCKRdSs+5m`EG650!j_S5C!Nil#c(p?jabAf}kfnD$2n9E8I|LO zhmPg1`{+rrTHfE?yn995kMv}}{lCVw949?rK>!6!lf(eY1H=#uFfCJp-9a@-?x#T; zG7p7;Il%l87!2%P(Oy+o^CRl@k|8Z=XwHUY0Dx#>F1&m5CLgS3pmkj{v_vyPNt20r z451K!eFosGf4O$_U93{vw zE=b7BFTlQo6nQQ|K+3EGg9s6RYPjzX{G%I!lmGEuSv~EQ((~s?6Dh>f15rVtAdR5b z%V)5_?2@>?ky7{_Ak9wwhk}BF$fBt`I%oS-Nl6SukCGA+#>cO5mLC4Qlr*l)A(3Oq zh5jIl+PO$|HS<~!7$Im}enN2YH-Jo81oN5yb(4@br*~~bZ-X# zZB?H)xA_wBIc{od%E4;>C}_VtSt|siEWn%fqwWJ`&~Ozk5Mx{(vvevN6=#c)*;yNn zf=R^&W9Rzy>xfq@QD94Rb0KI0AsZW5T+rdZMNHfQ3feyN^Oj5=US6WGwnlLO39M|c zD|3ZI!EP)Cqd7{`k?@b3HQ3Q2aCX}<+$C}th(^%c`UE7ypDQaXM~Fn_!r6^yRcKs` zN`oU5B^&dfV)!q9%Qf2zEurzN_NHL2WQ`#s9o~Jfq~D?2F~oy+u(!~xTf_Tju?9Y+ z;)gmNoz`H=Y|X03OX#Osx&7htL-x8A_`F<)a{Ft2F2o1<Sa=hPe1HwefleE-?Sb08iOOvzetwcy;2#?l z8%uPHS)&!CYv2t&pP7}b2m1yF0Sii4n+Vvzf&%p5=&1Dg(62b62MPn5jn`@(%hI^o zp=ShKZ90FWWsKf)I*D4nVWuuhlL2?+G1r;(5PJ5{dEu>cT@fdpA-bRI%6-u+ z8}6I~8l9xdd%Pw?O!V|72NZZWcr=%a05MFl<0ipcbv%|lc6|wV(4UkK3=OJEGf!bp z0mUW`JVDhW3mDc1uyP&(-jC?BGqSUxmK*{R|Hbb$u1-j=Q!qn4515!5!># z@C)HQtr`M01BonCIT@Lh($Yvs3X?$0>|-%n`Xfi33tX>TVZZA{)ZoNc)pbX^D@)^5 zT#9KjU@h(Y`?ocew4pDjepf6$S*rY9|VLm^SZE5y3IbH{p+-9AdTpAk= z@fvu_7UOY9t@OOf`gnyQ`sGdsYoK;_k%s4}?e&X!h7*-75`tU5%}n^K8Ly~6$1f?- zxrRY^CrwD$syd8Myy-^2S8DO|3GW~Ns-ZzI7W>@xI`hLE$H_fUHZzb_55EJNSRevLHtm;Rj*w(_)kbOJ!GP}G-BR* z&)8T&eKeOL{?@(i?Ynose2#nwMWbseZ@gDA8Iv|$$vj-GjH2kS46M>Hu!mK*cQgOV z+~FTN{53T@Mx(WRj{O(Mt#l?<6eY2|+iO&3pEZ#bFc00D*KoLI_fZ!uY%O_dtn9bq z7J6nz30m*zn1KSVJY}jU&XcyGJXxc4v9Esv)uwOSy@pUiC>^8!6C4_q}WS7(|(mWCa=q|t}tLVqwsr8 z)g^U?MDYWB`Ryrv)RmQ_Q`dD5x+EquF1@Nvu{*6Z$s_10r8Isg-ZwL^rW}jnsvex+ z&kDJc_vDN}dL+q&_72zX$6Z>v1PNQThgeoZJ0w;ct;ye%M4vOgY0+rJ$4zH(9{!YG z&9%*usQw#EeG5I~PP|=SV*9otb^u=1ICnyar=n<1D&GPvyi@A>DW9E$x>2jA&l0wg z?e0q3&Q_`G-(=-R2yKbktcs3^&guOK9`m-J(wI2?$wH_zfih%_Z=5#d_Sab(?Xmgu z(?h+b&~J=a;aYzAOySDZBk;hdljxP&7MCRjU+t?o?pa zOZ>X^kV5(4d^6MP-MgO#Z%Vw>VWK%CRy|uxX6)dzu8>c++fR9GKK#`B5lihu7HLO=B7+EXc_1^v^C?TBWxz)PBk7%RDNVx@>V)o&4okr_UJbSs9BqT>9Md7=$?pnYjNIGu`u54wu!%j{H{&o|JkKS%{_l&Gk)PzZH;mprJ^mrAalU{VZr~wxt07QLC`ZwtrrEtnIYjZv zL&@h%UgP(tKaA#47D!Y~HO8q;j4Hc( ziip0JJnDt}{`t9A{WSvL$Feqr#_tKUtDoR%N=`~0e>!&S?J>+{T2VVpSjz4CdCy66 za4)A+GN;(WRK0}B0)2cf+0sPSP#AZZuwr|_i zj^E|(nR!{O-C{#A@$%@5HTQ*kna&ODaom`7;yV%k)skc9-?-T>)Z=&7INr6paFMFw zeD1jQifPAfb~7bP(bR!Ap=_lg{V7UwQe>W7Loi(i6(yK4w=vU~P@1mr5 z*xecuViLJ|0c&mj<+1S%#`Hp>kK~6`Y*ZH%fBD|F&FIG{>4uM&aPc}T61;ar$D)#C8s_gP zMbWVCO^o<2Un;>|a{KHmEy0`lM3Mb%+}_0yli=VAF`CU8r$h-gWhrKr~b0Nemzq0hMZAjcpPC2 zncm!(YBo>%_w0uhy@Q|7Pkhw1jH#|25xA4wlWDNAqz&d>mGf}l|JZsvF6kHXPnw@Dsm`_cm8KJIjnHTI586w zoI;|jmxR%J?Fc#VvW2b&2S}q{=w&Z#?L7INx>bJ|o+fWlx5FBO!@gi?$y^z$${=mr zYPCf3-S1KIon6Ug70CitnRea)@s52IpDPAeK#nY_noj6131gHu6L&O+O{IN#VD4Fo zf8z&vIjWo&)CzYAydT$cZpi4m?WrN$yV%mT8aw?g8%aXwhF{S={ zs@2h3rDERhV}iYfi&0ol>bB}j$XzvabsTnmj!{Wo{2K9^xu}{P^S}}>d23t3Y~f)^ z&|p<|esRgfyPwIJLC4|J(o{?+bw5$BY4MwUX+twLQ_s!w${fJ9IUdTJ%IsjCFU&H` zXTwXQ97EZ;bN=o}3jSo%L0*qecVVx-dD;_cXHkx+4;31G_ID8;$l~{oiZX7Qy96hT zWZ0pCG+#%A-sdHar|zzxdJWgr4G;CK*K-}ykvitW5TPbreIpk5JjczK&oH87Q|_|! zAt6puV}3k}nN+4K+nT8o-6L+hdw%OZpR{`)X9{=3*qj;`_I^Cd5Ka}mm#E7nPwl#^ z(cV69dpZXoyZ84xNwMaZH7cKLTnhy!6MFZeWTuuQzEI!bH7__X?a!`$o%P`&4%XAY zLJH51lPb*yq=)f4*^CNbKBkqwTB$9F-#MU|(+wobAXVCE)QG$t{-oeHEwlDb)m5Q* zPOnRTX{BW$@(HbrrLW(WHIds3bKbUX@t;F$o@jH|FO)!!0uITgXC>7Mk)B-Wk>K+) zh1;3rfcy6C5S#0S1qQF0XGPi8L4vc-#NKRi>yZWBQY>|XMqjtziCJgZ`H}U9xeMAt zRnjZR$l7K9fbM}Uqaan%kBU_PD?Q&9#)YzWZEJ z@eh8X9W8Rqdyv)ct8E>nKF)X-i$k5dPvxYt{>V(({Vop`yDfG-CC~vgu3eGnYBg*u zaoRknCgzsn6g$aRcm6dPVvv62YGlL{1qD*oDn=)qnx9y=F5l%P&J zhVp3j-1|CqgC#Nv!SXH&(K;`JwWwNx!^V`{Lj^4iYgIeK&VRc0zAl(KRHc;+l}m&w z2oA>OQ&*MV79GG$cB8Ldp$|)w~1Tgu%eV( zy(IBI?0H$tbD(_GDN<21eDkc;El?cpF$6$qrJ6b zt12>4x&~HvJ>a08G%3IX>P=U(vtvhWgfqar7ihGIr>8h(D=-D+q5BO`7v}(>xcCu_ ztf6SW37*dpaBC`ehrv_}D#7RS*?Wki8kp>yt<;`n2}iyDH(IX?|gBoPxCyU}jcL4f>Oq>ny4p<=qU!Hj7XH{2M@0NW2dOtfAx~NED8+rjjy_eNtxxe8k_sbVu zsKI~{5AH_?!Z?695iT~+yaQGCfoWZ@{B;W-8k7+LCl)X%lxo0kq3KR^l$Ohv-C<~C z7X2QVuGFIj4DOM?gCP*bIVvYB`vQ<#A2<7r2~uDGcEqy_aW!fKhbso{Lukg3D=>Qk z{!&p^?knnUn||8VLPAORJr6q&HzcH=RzltDD`j$7ZZiQ~fQIRxN_JAGs#rDSlzMFY8@&he5#jmz$5cr?{elFP}0D++V?$AC9MNVD@e5C-->m3{G4B(m=t_&H0+J$PBBU4{` z`$SCqzgz%$BOnKiK^rZf9d&SEvnU%E1MFn-cw%2od!zpgY(Q`EZruV@E}qlO18U$0 z;D6o#{ihC>fvwy#TjM~6CUD%Zrz*K!HG zo8;%4sdR+XTQXIr6$k@R$*4 z2N$SPHCy~=g;MAz2LE8>cR(*UA1e<5>sp}C?-x6p%gJGZfB@wIC+8Nhx7mRk0T@!N z^!=JfFn?=+$}+4v7(6^Ypju(~Jaa>ap>plfa}=cL3IhzWfa*<=d}x3-nhL{7#S^Y? z25~xsi$zTOINxp|o6K^_DL7C~L$fkV%mL=g#XA$u3#1;09ojJcf~*1XEDfB`%*$H< zL%KVZlwRP_NRA9pAPWO3-e8iRFlczppp=bZRyo@H!0tsn4R=?dIs(I5ZDSl@EoZnZ z$n*zKsT7zx$f$<(^OgR3HzD-V0lpN*L!ja#EMR2ks{jKt7P4!3?s{2GiFWTlmSYK15O_J;LQsOjkJfTB&hIgHp}59fXr9o9o1SmEq|w*Yq8Z9u$fhSBE?)@`F0Yghz= zZU>ZgeLn^h*9UWmVFX!>dlh~D48?=;j~oQY+%Eg;U0|_@A|jT#Hd%WfTrvr&8F_f9 z;E>(e*yy(EVZY2qf^2ovq9srZgX@=JA)tnqe9qhRHi*Pw^I)pMXB%7*y$pQ)}--WLE^5P0T? zqmyT1VDb*tIi!pRHGyXE6a!UA7kC>sP?Zh1s1LbF*{ouEh}RnKy7VrpY~_()|qRMK-?X{6OQN= zAndkqIfd3!k723J8MJ1E4~J6|zV$gTFE2ei+y4UUWs;(1z@-071M}fOK4bc1=Ra^3 zkwI*J;{=M|H6eW&kw?&Ym*O&R+<_dkVA2jSt?WX&&_UHjh_vvl zvU;V%3UY30T=0mXGbeOZb(Vfe8>SB96F%AeuPxgkamHEFFLSBNPfM90fOAc-;?L3lZZDV zLc2qTaE@7{qy_80qYQCIgo;cFAHi!0Zs=*y&uhB+3Q+__M-u=+zFzoNcM^2}JU>i2 zZ_D#MHA75Np)o)s@*1IRj4wc;;1KNkJAoMZy^_IDJ-7DE#c}OtQ=Z2z14W_nDLA7x zB9RPY+xqnBjUuBSr1N9W0#b88Bu!8+<8}BTa!Fak<`O&}C@jxsIDkdEr#{34K5m_H zTzQ&9_JgWMo3PI21K|q})C?|rSJ5u|Snz(=g6$mINctfQK~d7FKTl|b9YTn00td&XMjI|2 z()<|=KEu%55TWL~AMd3?DHM4;$i9d4QY6)k{p>px{byNP#(^jD$GjA38}`fn@1g0P z$5CHWsaf*HB?B9^RODSticKaFp>mCza#{9|JpP;ywJ1~ib168pWfnW{68@WGvL^2O z;!&SxtRFpoC27(oBP+eWs6f5+hAkfY?9(6~O_n+J4PLfc`a({(!`SQ-MxXl(`?sr~aOz;w8+OZW; zNw%#edus#!+}9LE1u+Gu$ar^JK3g^uL7~^A3wzTeJ#;pYIwhAWD7~a_@`m6JM4FzSuByESm? z!oona{+&Lk;Qa}8^6deh5Pi-Bciu@E<3o;nv|c7lZDTLRu5;0P3_G2NKTGUd9`CiZ zn&4%4@BcbhhMOtEf+uAEY$BacnS|efk~Yw+&-M4M!y$4 zt^~b1CgEy)B-XxkQZX6x%*g18lLxKCNX?TS(K?ii*(eF9dZ2qD1kTRdv(&0TmoTq{Nt&G zu*C}xjn14l$nX+FS}PLbMo28v)E{3AV|QUWE++Vh>r9_+BdNzY&dX6`M^0^TX=tQ~ zAyCz52R{?w6F&WV`n`f3Rk5;YXFEM)>)M#EByR-4-)AvrKKwOId^zru;;S~onqkh5 zw|hJUD*{5E1@IRxkyb`o%r$Eszv|Yo6JxuLB2bym!b5p^*~zXgPJMA(3BPaufw0DH zTBo%!vAj*0l^<^tzs)CXgsJXfjZ05b+I46VVew{ub>tgwpO_lUap*@K53RJ8!~nbo zyQ-=F>~fm2`KO*y_43)*Vib|rOy2wW8#Cm(M6JJwuy?iNV~EAJ(S@ zuLYw7e~*~HZ_w*@wh-g2hJhp8bHG_&Q2ui3CJGU~o9F$AE|jj-pObqo1`)0eA!oc! zpVf_g|KUEYH4gyWu(rNNc|;({X4RN zCB(+Ysc0%TEXNWlRHoz?%R4c@U#TxHMv<=`8r-}h`2PJHy(@24UZ#{T1q*WxtV|}Km@C|OqAG;-;V-by3ioAARF*U=3W$*WAQZSE7;9ycdmwXQ$@5S^AE1t}Zc%o$#^O##fuH@|Xez}2}Z`AVs)5$Nm<9e}h%$PTh zOdlp2aW~BM>#sOun~h;7@csyZPchRgs;!XhrK3#)Fd+eV8hQLnv+tet?XEZ`HWq1f zCoq^8>K1)O_dgpqL8GcMjm%XvS0Aui|6(3yZ0w@3B@bN(wn1Ys~^*cVgY>IYPD{%$XPju#P8M57{(TVOA{BDs-G>0iFZ zc6raA@9UnFXUpp#`~of}KQF4weH^9lD-#7q@&8mp;4o`83iSmw#J9GJobMNY!Mf?X z^XdH8gPSXkxMN=fFh%8s_k3qCT8LE3<~bZ&3~j~}CTS)`{=qAgUg2W5lmdIA`u0fw z@M~Qz&$v8Ho`l!>`ORyi!x6o6+{ELeEW>E@M!lmt|Nc!dE*y?tv($g9Qsv11oRbTS z=QN*cT5h9FTzkCg1&8#l9KG@8{b5;UmmSj9h?y4l>U}Sj9Qv)=Uw(LQ+f9Sp-6Y57 zHbW5tBPHujo$AGb7FCXlLwM49YTB2zSQ9r7YYvSu%I21?RJi`QkGw`~ll=$g`D{1$w)6FPvoC9k}gt^ICcO?ebOH zb-!ZlULQ|L%Pc!+S;;HRS-ASnP4MRK>f{~~gO+Dd^PBZ}2RY9pqaAAI;)pV7Kb2Z4 zzZFf`UncmjAc-i*0c9Th*+qv`#d?jAM==x-&L8Y!F(29zF)*YC;5X!|JH=*er zUVFxMra;#6(XX5G8pY0K>BN`sWfNRO1Xz5|YFvK=P{d6zPYsk2@pvAfDDVm|bZ^=( zO~hqiKqX+&K|#H2Pxq`MVq8|B{MT|v+tLK#UgXy3u}5>!9A#)XVdKXONmR@S@>=(` z8Y*iRte3-(^P* zpN`X(u{^@U;i1wk)wOoz(t>5D`&(L3bz^M$H&NBaxZF*CTOHQ*_^FhdqBrCT7@M^* zyA#;VMY!1)wUx)49XfVDy01|Xd&Tp&Yx{@xVLpRa%H)=#pi|~avR(y^nOnCeT*>c$ zE&bpybId;b5f!(nne9byUBJaEE!`i}vcV3d>|f(1*)HaW=%R0={%XR{zFXr@Y&VT% zs*j;)$^X4sON#vTf{GruJFZKN8z^3Yr)+6pG?qa%Gt=U2@Cu>=4zC zY3lL#jh2^pS8w%O2Nv--9kNP?;$iY8d>;v@%0Sh_Rs5M4J5(OftE@E@fjLU0ZRPq_ zx%BbSDrI~dv*X$aw+DNjpXKkMaakA)ZQ_3eKE8>}l62Ao$;XlpI zzY5eROV%CQ<8HPQMaqulqVBGznmKCsW&n;;njAm=_N<{$!hmbE)KX}59M+)CVLSEr z9cM&b+Ji-NXBMA~HF0|1v2dP$EWejaN7an+iD9E)y@aV{WT9CiPN0x5esI{O$LUAZ z>cqE5OmkEIy_&x}3om}caBD$1-c2u^aV?^$->=NA2s;v08Y9sybtTUGbk&0?zCU{q zbWU%YTvHQby`p0Fd*f%m_au{==*ZwWQ&w1$81rnWe$?3RPVU3t%9<8I&T@{c{RL<5 z&vo6^E!G5GsBGvpmoBc357;jfyGpC>G!l7h-v2dE{LYix)NF&(yUJ@dyFt8TcU_oB z)O@5gK+J{QCLzD!XpGpuxZ+rp>?rB>D7QYB>%Q%39P^+1Z-1S)z?w0K&ZHpUL7hjP z$fvKCRFPrkRe0SHt4HgUiHy0PybD>Dmqk|eei4oNa<7lBeoN?h5xR{lSD|T}U3gjY z?2NW%7Q=1-bE1YmtgOh!MDl=qtPLjH*VtsSB~iVi@=x$q+kdHBrUZ;yd;eU<<+elP z@}xihy%Mz69@A14lksPM^wLkGi3h%5P4Q%0=@{G`tJK^P66?i{iWF1U;i5OdCOIf@ zlpK4$M-&%(lklWu!*=EyDpN{&4ym zw7izO7X8jyCV<%4<>`&OMs%oLQ21aEFL&j8nc%nu&}3n&rDxlqXGPXDTe`4Vw-$(H zxj)msY~&PBTwyvY-V*lbc>th^OU!e*ahJ3uoY?zh_5CjY{&!DBdqdBoomHu*alf-S^>+)*1jmN42m>f_m=0;n}I%f7b z{8YBdsP~p0=Nn&Qz;d}?(8IEIoc`Tu)d7PcPW;El#?1Qe$j;jJx-EzBE1z0YwP&PT z;sS1ncMorBJlP{yxjo*2t<^!B<#gR<^~F%6MT&n+_mHh%H-X@v>rCnSii_1k5t!JJ z&XT-gmi^KNbETb2p|m70ZCK@|V((&tK(wH+VEpxAnguhNqzNAyX{CbPYF`cqoVaMQ zp0BSZ&3p2pygd_X#Z_qBM%1q58d6B>D=U*C9mU?ZJQ~)BTl-NsH)o@KX>7oi)lWG) z-EEwxJyuV0HCAlHOEajd#Dci&2igORdwOkY!jsa(A)+4Vc#EM80qkF;lSHLeN-Rl5 z9ln={Yl~@cB^DftYx$mMD7<5NA*QUvq}se($o7Gg`j>&blQ{kYZ-&4t?JS zqlDC(F*_>qQ2XluJ6c)_e!69NP8M2u(C`#_%jY_;x*MNrSk@{7bHzgChTp%{zv6Ls z!mUe^@z2oN`LaK(a79vrmnMEVR-eY|`1O-NfA(~}B4qL!%@X^1V|~GsgukexXfk}# zikx(>(HI;DpZV*3ose~Q<7Rt3MqGO0N})b#Nu7F~+qa5*tKvKd-Ay|ItQfedRi z8Jf*bxnHBEt(lz!*@JAzt4=Q8Q@X84ilwMo9J&03#~`thOfW_?;5`%^ z9t#Iy*0+pqERUCOW6xqvO}Qfyt@nX}h#;(bi&}sfhzj+l+RKaAsY%WEr6ejUle2G6iuo-YCnfl#kOp{psWuKL%CVckk zjG$;8fk>k2rGZbV+CJ9?o+*^3g%)x&h4*NF+j*4aZSpB*CfdU&c){!nE9HH%db*Vn ziO>|>!GlNQ$`ngFXEEU^@(r>27q-?l+EJ6IKk2f|kJ&QWb= zZLSrmXcWXO>-at)P++$u`L9Pr#+236J*olto~mg!yeXzi~1eYyI`RE$hNZKAzjw?=JLOXD}rw%@%B ztSb_-9Xi9|SIS-cLwr=`#&<7b2T7)V%Jk)NlF`={kw_W+D+t~MQe!wo8135nB z#idgMPThNDa=!dQzm|Q<7k+SrD_{9??JZRggXbN^^uVbGnjxYL(15E3<))N>P7Nps zE8l&mo71z?I;2sLTXd_CR^zdnhagw6mY90ayvnKh{9%mUT}JxU!pe6zk|_&vFV<7K zWGYN32fX;#UFLP0sZpQ5b<vWC{xmKBcN=l50TX*(Y<*~~eXhG3 zec7DbfxCvPrtDo3UpMT)j#R^4+rdaBTq!9!r_P))f!zjI3dvq0c}4Nt6iYaN9{E75 zK4#r=+x$86Dylp=3X2kfNaL^PpStVCY?V0xkc*{!@!*@dyO)~`~i zuMRxRH(VzjD`Fh(=FFtO$NcGY91%^7@vN`wyFzG9rTyrcvr;N)WhgkV zJst>Wy8mm>`;IAg#RrrxOG_!~M!_M8_6MSax$_h1>n|iFIe^b|U6~y6UkR>xg54{( z?Kb@1;witoYOq5^mE)zuB;u0yVy!bSTCTpI=wB`XrxParC+gn5(5uh0bc$N(D<+1wbBz}SbKrB}ys~xxLap3PS`5?v zamJ7vwU1Do{+=)mLloQ|wwwMmm+H|_C8-x?!=kRgk)~%hF|Nohd4^)J5au+tG~hGY zLK*5i7O8iuJGP@e)U^J>)uCq!{GONh`8V24kOiDNficP3nz1vsN{j`nu44WP&7o2f z?FsEU`gfKduPuwyXI~YrrRP8EREQL;3g)vzeNq(KB;5(PE% zJBig6-*uIVH8fk7i74D36eX!P6=fw(<&Gs!e$pS*u8CO&v#yqe?ZnwO(VoKPHsU*q zY*|WdM$Q~)wiR|$MU0w9jOb}QsP|M$%keT^*ntP&G97=XH{I<5`+fmR0eX#U!ck3`adwOxmO@!Q?b8RvGxlkIT zN>k?Z``cUY$r7|aC%PdUMJ1xC4^dN_Xx?~v96Imt9#IKow(f6UOxrPAa&Et=#w8OVvM&US2L0`%WDeMy#66sG%;r)?z{>=r@+#YMc?9S?c4E`eH5^3kU0Fw#9ZZ zrv>x441q*DXVNX|u_(dSs3$Cr z2;p?@X9a$USypaZq=D_Wo#e%P^V&TF+O-Kjkr8&;($|NcDQap8-^D;Hj5&DO;i6wM z7p`=%KYuGXi|W%tIL$NEXUgJd=QlQ0XQG3NQ67g!DLwxEkoc5ye4H+pJJUvQNnMe!RT2;!ob6Lve!Z@=rQvvXW(E3|@$emA&<*q=@l& z&2~q7=yK4Z+u!uz*zMjRNk@&dmO&RQMfob9hMg5_Ln*fgdE8$5&m&V;2Q!JR@ezX{gk`$dC z$fSY6n`)4t)Kt5kRAkR*1BV+FGou97!;4F z{o=MF!x38a9pX<5&{c04b*qwUC6x6zvW{1 zJ38ai@>2@mM5LDZx3yEg=6Lqz@pmgmuApU6{_i;1cj6s?ZR0E*a#?GiVLoFz!y3AU zr>J_uA2DlPj43=*M9bp7YHO*cA~|xR%1C_3qVMwJ$9+<%Okp(C3K{PFmu?pLk6c17 zn_F5?-aKx)qFj{r00XTR=+-8|VHap3@EO$=+84j@JSmRm7&IUEGD! zM0IU(!I(=2XGY90-@t>W!-(m<%oh@Y$~D)>cqyVMnwnB3_y!5B)zW|Fmwm6>_4)#q zrb|QC1B_RF)Y6tN5GIR;#L2@UYGqNR0&T1rJbFo+M zF>wptWRNb;g~9M=MFu|yvgN$3=bzo`B6e!+_HLu1V|DakMQ8A%CvfEnN~67z$#bOg z8CEb}pEyf3Ibj#xHZQeIh6}wC8xa^W`q2*xgZY${inekKvYCx}xW5aHyNtxW!a*`v3osQNjN@=6Tn?$FK??gCH=fEF77hI- z9-q!8!8+qZyQVIP%SUQ(U$WJ7%t4>hgj4<26@k+p6oSy%?j{k5Y|0Ew+e|nsZ4xnNR2MDJo~GBG4HZ1rx*ZbvA6laT}vH9%FB-+{8gADK09mq zi|_mw$x8|RuO)PJ#Z(c#G5*nTjXE$EqRXX<`Q|6TTM4de!~Q{h_B;Vkdt$;sEFeFsDC81Z3kC~SboYkonqpO&71={L;9^ih2pX&_G=4p zQTjY z^^ytln*XMmNM6p0KQbRqBx=O`={^ALHoN*#2B1IO-oQK&=}bge(3nlgEwXizB~3e} zI6jareoUk|{>v%Pea&eps6S8g-p^bAV!_k%wYpkoI3raABG`_S`|vnh$#vyB+FgV~ zG|)KUD%g|e_4M*u|LS5ybbl{*mWPp*_(kf}1rCssGagqfKvRF%#V+IM<h)m3VxIY#=v$hD*SAg_MIByB0dly&r$G}>gV zNGQh}SO$?KDtpmKvnwy(j(j)!JSq@)N~dw(qqgz%8==Lm;BpEY*pkmH_5JUe-1}V* z{M^}JBL#kEd7fz9WuKQ&c7SkI{`PMlmWCcp5VB-AZf6<4l| zKx`8K>}2tz8)6*C`*5bj01_vuKb#%ZKiSn(w8TJu!OrfoQ^z)gYrhZ0Xw|L;+4<+f zED|c$jbyfjLkP5cHvR%u-z8`4a?d1nJ)QoUup-tn9i%!4W$YIw637AtQocR$j3k)c ziIka<dnDv!?zew(|H!5;zAlXKV7LOt5?- zgi*b&Ku(G7I)5%G{+1Pf>5H$^njG7)4q0LA43~ zh3hKTKy9}--c|DZqKDs?4hrkmJMI58{U9Fva7qDad;#~^MRn_~a|V~ss}Vl;_0~_P zn;xd;64;?uB}Q%xeFMV1@T;1Q`V6Hds4cM)9@xQ_OLY#^ts-)t2^9DYT6@9DYjIjCSXYYjwz|Py9z5R`MD6W zI$8+vD{-Bh#w3t|Af+JhE81MHagme9xuhD(x*v4~#sG z^+^+lS(A-apx_cYK8^>5k`l0(!?Nb<bil*HwXgFd#0<`Ey$=~ zBxw__BllexjWOef#5-5VK!x^68CBQG`l0&8LdTaOEqAjcRYm|_E*jE@;qK5BTR3Is zGk7gVF2q%rQ9;uYb7gERjULJwJkwTV{n|N;Lo#UK5cSfp9AGjk9jr;MTlL!_uHLp< z18TXTiN~vyr2N{)ku1Pn^y;Wp=Q9$MZP|W#C)_YtdW|JVEH-EbS8%rtoYUSK8+p@l z3kGYOz>Omh#E)R|xU&I9D9{tQhY{D|Zgg05m|GJvDcuglXG5*Y-YDZ{^(PhhT6eOg zUl`a4BsufHu}4sSdtqC#>$44f!**@mYA{lsg1vKY3kX5Q9vG61$7Amlg!_yM`wJ7L zau9HipuOmQQ9;nWar^Ggi0vMGdw_;IeZViJOyEsvdbSI2#lrzHAiJ3`BvlZv_%06P z6(u#`bJ>{bPek%+_}Nj^dcJo}^uQ1TyaN^5SbAf6&nMT0b&_Y#UQ)n&T+|A;!`p)K zxCLh{=<$W>YJ`0-u?t7`?oPc=OUj$R8yW!n1w#Aw-xP|z`L?Xf+L zVctWlkn?M92FI&i7EarGu31;^?}HJ<8ul%nK)_n6IYK?d1>F(@_2ZCNdNOB|(Xsbg zvXS?mO;O1eJIQ*Df2XvL|2k^`son$k3EuWPtO1;V8olHrE7c;xt1X&MHy)t{0u(xZ zvk9NF@}QxqkSy-YD$L#eM`$({S2pjp{$)0yXWZv1*1S%+#cFl~)J}W1?aQm}%QV12 zb(JIZDB&Nn-{S;*izs)Q9XG6utckd-2-^Ia=NAPj#PW3^tV8mbo0Cy5VHc|+>Rk5Q z4$Na;IeCDanP)v4WvoX9iwRrBtdsZza_QL? z=3TN=ueDcoLHT@6H#Vmjupl?p$TVk+2i9@EBlp08Zv?nHsBp=ip4sTaOI($~yl6HR z3V-?L`qw9Unr-S*Y*?QO_?RS8`P2IkFbMCm_b?Wb<=q3GSk}0A3`^hW8ty(ytZ+L% z8RUN7Tz(gyB*e|@kO5A|p-vDERyQq;y@&mF3fk9kz$3>!TGdZ{S>-o7CQBAa(^;p= z?9Vg)7>Wl6;^npEhX@tz|M%;xwl3)X}RZ`lRu_$Bv@zIpp}_sO6}Y4)wt zt+=16uRE*wjoH~f$=KGWhSz-0XpChuh%b{o)#K|pRPY{g(MAh8jYNTSY*Dxwj&S;p zyEr%&`l)InEIG00DSuML-Qy*Ct5 zivvFhfyuiYJBWGYvqQq)yJY(^9p;=6LM3h8#OqUU=kEeg3+vuit_qkp~>}Waq$GQo-QwI%Y(TzwZ>9{gdkC?gfx;8N;5?XEbyRH36 zb6h94o)IcHA#zcPQr#>N1uOLCf%}_cJ99V%8fK7UdPvNJz@L7uUBrdK^kH?Sl&U@# ze{!?;p~@28h)Ey?%f5_v&1tOjIhdn>k$l_W@QB|jW(kKk|_VUb)lxo`?;ErU!^9hToamFky`deA7LOay9 zw%|;ibT1(`Q)>4QH#B&^w%EK{Q+p~)1O-zD!q#jS4Gf&mx1}O=_xD0ee96(A1*|KP z>pKVJmn2X9XeG;nr-Z(nqJv(T9T;b8Cjo44yWFQTuk$*&1F;VpzzJ3a6QBtds1+OI z-hqvXVZ7~4p_AGh`!4G^D45s%V*AOH83R2{*i&nN|E6h4wIM2W_!-_0mx+V&2~*8$ zU_+I$xS%CG&=Dt~*mj6xXi-H>vjFK*g-g^}MF78KG_K9>IgJ?=iS5Cf z2i5ewQX}Db_KOY@2jy#)Tp=5r9&oY-Y{vu={6;l>_Ag50P;BQ&O%8Sb>D@ge5*Qks z`6%0_7(YOg*xI(HzdVSmL7xuB(uFE3!*osA?2gH1asYz$&TE4^U#Rkc)xrI1T_TzY z^tBTDCuki8F{D(61NrhHSm^N)FHw*yJ7=|{?{}fXG~*e42ihXqVrzO+-7PmZ`3jyR zO&K>ujt&JKqEe=3u!5_i%gPxJl(xI`_n=|hrNbVrECtu*__73VCHgHZi{I0Bl*24a zJ@0)@h?hlODg9a>i-GOdWw9+ic0bO>_X=!|HLkZU%=?TS5>A6(p=3mR23MOM@sUXR9xhQrrZe zcC=r})F~f=)U|`nF8vgL%=RWos5@?s=hBySWRs3@YRCCFHGrc7*qZLsMl;krOl;0f z59CHYE~=UIRyBpXXV1KzIv?e{xJMVLYdwYS-hNpHzGaPq&zya!Fyonk-(KBTMl04N z+{>SOHVGux>Y`rri_K?o0^Rt!9bUc~U1P%)lj2rlI2u3YprqXIpK=o~f>Q#rOMeYvA?+ zfpPSwV?&?OSN~yOh6gj+;0twL_XL|&R$NZ+Y#n1k)d-_e*BXq%vVg=rr#3&?zj!}1 zY#O9AN)H?_sr7zY>Fq_)S%YMM$CBH<^M>p`2U`poKC;@{bRO2%?*TKDz7)5)M8|u#hKPk#8TnNmzZxQ z;LcY6I$rrh(YkG)4$xgU#n%tLHMRbia^FV^|;&+(-i`A!Ipt$vdc7uT{L837jE zWVR$$+aAr5dTvZUchjp}K>(1L_uJQ13I=&5$guB{cC&?xO)wE0pR?qHl7yLZ(KGLf zDEniH?UrW58F`u9zw`*5vz6^>F=1?Kj!BQ>DfXAagkMzK`!Tm1rPcD%ukKRHG!29) zB^_}K6CyccK`JZ0V$J30KHzg2@`%?5Nf&xkbbUt4QRePE9P z+m}y2L+kgI_8U~N6x&)O)F!{Z3c*lmnR_KW5ymcU@E|%NSwv1A7HCtO^35eBRkc^7 zsWE8~78~yy#~X)472-W<|FU5yswlv^EY>$C%t|vp%tsscZC3FR(X1X!|J0IUPKn?J zHajgn0eG@Ut`y#LKcmGio*(?`4((m=qt7Uzp<9g}J@2-wiT{;09*PWaN~);b_0}KP zNS6~3+^zqnrdEmi_ORpfmS(vDM=L}7*V1{nKak&nVR^YY*Y^?sFFmTw=@mT7m>k97 z{408)lI}A%2WGj6)8NmM#)1cU!9ez8fu0j3|K@xjH{Rs~*6b0N_~)5YWQwVJ71P`D z64=O*+A4^u+}}8&=yG?SS6CFPKZL_&t8ro@`q)@C*lubp+#+-9=*b;);r7_4)*va`<~Yw-fio#ls|m*~OmMEUuYS+C=!+HM zjGY^VS^K*gGbfu+oL5qqrsfBg$e(r(Sk6ZUs8cnPU^Mx$t0w3vg|zmL7QZ`9rp1fN zoAx|ejV|_8)UdiPwjN&vSyW(Y2~z<)ir;1(n0B)>wyE6ST+c*mu0LE@N{=)sZ_WvI zapP!N5{qe?l1iRdl$TZBO`$W#xNk(e3*y~&aP`zzZq*FUlN$=q<)jMEmp4&Ztz_*L z$hpu}$ZD*~@x8@z$+@sWbeaU*lt~DYzC$$~T?3}RYZ`pK2u86UcG3rVT;VbS7jPq- z1`Ph%{9aCxD#J6k?IOA}vNiu$M07Q^v^SXWITq_`9;>#xPp+p$y8+OpqbjZ`^tF0_ zRkGfHaQ_cFHQ=du30deBn*cVQW>s4fOR8*iw8!>tXQe)C;41@OskWUm#`xR5_;x{a zNnm84u(eUSCbqq@rXp}Oy&ugnD-~f%u_j(PCAwZyE1b*YZ#hjtRaXy0b)zRYkT^Y^ zr>bI{oO&X-GcS3hMhS7`?3Wp@zVJR?_26pmMD!}WE8A9aUIlq}pF5XJy__*X*rbI( zt2>(z(b>IZsipaYo+Ea%CZ~Bxe*PbSrPIb?X&!>NBz7_r+8z@~y1$L{QXqRg&?!_k>lO1swvWc92+>dd|6t8)_?3B?3i`OPa zA+?8-xH+*wzrfu%S#P;1>--RM$i?ykr#_!V4zHi|q&LL0p>WFj;_xDZqs0~M`@S&5 zAlKY17_xl4nmhkpSLaU@<5)A0VPcUg@km@t8 za=s*B99BJ%SpC8`mYI!5alh4ifvr+R}$cxy6U)HE3*sz1E5KK&-) zOXT@Ariljpi;Y%>f_xjapAjV`R)I=iK{X>UOvZHYMh&ZU>T~lVuGhfcUso{gmj^Q!-sUuGii=47P+z)Ee3S2Gq0~ zB0&U77+uQha#q@K9>p%+rGJtO>ETiN*qh!&0Yn-Bh3iS|VkS3Au6|SzYkidw>o|WhPPhyv}SvNqt6AnG~kfA>qYAbJy~#z%bs3v~1P33%`(w4jTmkp^0{R z-kS0a{v$HQy{8rfEq=}3@K=p*%Va+1A()0loYqP}xNnyr!3aie<)V-iQ2m84vi zZl-~$OM-Ff?~#4DqL5H=l8G^nI+YgltAfP2qd&_>q|_Uqnk;NlW*qK3)FA4(!13LX zA8P0~bq!lNr=+%X@HeA0i-aNbu(p*X;@+`_aSQ7qzYGtD)fXX4n}Yg?h2J?brEM2q|lb7yy2sgeJAXn^?r)G^zsmbOw;)b z6_fDZ!e(`!#_q?win`54#tSxWa=&`fjWz zJZ~uu8z`5zOBF|LZ9|6+a;O*KY`n2|b~gF>^bsknVRk4@rQhgQLq^vlaWJR?KjRPr zM6i*tqo6y%-t0rx)%tx=n`pSy%_Qo471-8lFwm8;P+JbI01mDg(LwVUg#nJk-gDdj zEsa6R2u~dRMGr27hadm!HqoDUQvX?n(V@PC0}LpPldjY(QM@3zk4Jf|Bs$1Ctlj?W znMS5O-KtJ>ojb!^jXOfhW+b%JUYeaW( z!!W1#y@ny)_i)`H5B*4GL1x#lEAGp4ursqV;3&L9*(+G7hD|S~q3NFOTs9}9d6bTJ ziBY&~BbYgKNL})54e$jzn=$Q7Y3>tXCIaFp( zSiX2&M?PV2ZQqRb@t(uF&HZQ|jph=FntHxA%{-Q;DKmt({m|gN!;rhVdj12}YR$bI zk9!dK2~VV(xRZqB@K(31K||J;%hr#+IM1{gX!2)pIC%PV-{AubeQ&>EKjz)k2?Dcc z$vh>l%~DxaV>N=F=M1IOFQ^X;wtRhwjf@3;(wd)3x?~L*&Bztl`>p;j_I`z2;>7TRC#aMXALxgE-vgJ6Btv~0Lk%})JCzr zH2-T78&5rf+p_7OpZeZA1+IUD;^Js6ao}in;NsY_yb7ESHpvILgH*nhODwmyqH8(Q z)Q-iU1-JMa4n-EbI64;+- z#K*_~YjuR1kZKR9mM|91AUO{@13i|04&5q>gf#2iW<$1+R!e&h_N|gqQ+1uueN}tB zea$Q>deCC6R}P6;i_=xWEN)Kdtm5Q_50OUJM0c80OdUtx%fpYlX5dK+96rAGoQmq~ z7D2POR~t&Y>kqZ_Ki#S#^`k-4X;SIqBC6YQMvCoG_zwlMBC^;RLT)Jaa=Fb)7`*bF zgsw0WrLKzmh|w}SNcs*5gzyzL!mjhp=H~X(Mp0J>7HasKV*f;& zsN9p}g{o~n3CMvwxRO~;YZG_s97V0^bp5md9ns{M8Y%8e;HodWge-&EX}h&f8$eKVE@*f{%^l?bVK3}sbT!LI9zDN5re8?ss(r8?{8E6LcEolr=F?NyfUednbic#^jV>xf8N%-Jm#!7&dG&ZEB9d`3!e`aG zf9R1}T#JC1sp7J~^mnX_XMPh=Ix}QjsvDQo6r(f=X}vZwtQa5mG&>2G;nke2)m+pV zi%A$iGh&RIy_IyOs`6dM9y7sGN&4qmras&bYZm8glX;C+n-UG96sTCc#cRj$bnhBd z0q6+S4FDz?Rt6Q(d)Cxa)oQFaH%By#MiSemkPUBPv)WFk!|qQ(hPgpG>uVfkHPw-W zb!d7{UVU7TwsW+^#%>uY6PC?oBG{maW^4j^8Sq9jrXyGLH`?+-_uEc%_S96XXz~q~ z03ePP?USH?&5U#d&c%U>U(QY<;ak`d>qH_QtE&&lC1dCstG3;c?&USOV)&85P!6W| z=1C_p2Ib$Juy9Ujq=a9CzU%&8;|ho03&YQP*diJjg9870K#u>_PcFnvEp zZNQn^;rdxE5wa1^Q+ysfu0P62ZentH`IXZQJ0`zcZ;@x^ZExnE=3)0k@?U4Qy{IFm ze@?|F8DC}z5Odk>zGRTI$~{@qxaZ^E_)5PIq3g$61-8C^b39e{IG&d+w_+kA=Z#14 z@yk3>3m<|KVeiA%dq2FFr6JRUQqBfYu@XI{mlWG_pj*}IBf6Wf=>&`(Q84KSurw#T z|1EVyuUe@}2R>?*E_W;jG0YZ24rqXkWFOnWn<|aMqHw95Jo5~n(bF6eV2#ZRHlba?RVK6}{?5)}ZGkE2teT%@TM?{bRR`lO4osJ%N|Mj5Y2I+ric*vjlZ-2J_TFDdyiKaTuOmqi_}c{xbkD2@EL0y}!Vh1Ce_;N5xfe?k^6 z%VF|=;`jf%5&7ux1+;*r=aZN0?}TWz7%015ftogwYvbO`xSPo4fbiceZgySCZr+;LS< zu(|Zh0P?Eeh#m`h!uu|-4^$i39Qyt96wQQ1uDv9qSh$JD)b@PN7k)oE<{8i-omCl^ zkXQEjjZOpN4ma5$C=FH8m_>dr;C()5e(N&pTZW;x=n&)L^Ip!Y@k_|^8HVp=V4IHa z?;9z6%;TrJMPXyI z1^R@un)P0nc- zHoW%*3=3-lpn?;d4Cp3BNho$MUNm4or?&NyL#ESN?W;XVamJR%_@B|6SBg|YGamNT z1(T-shmpLRPe)W6e*r^NX>m3jVtihH_-+*%-C1;OP2l4kdwY8;YWU6N9t=D>k=5CY z!_`X?f}7*rw(DqK5tB_Yy%>o$-(~e_yP2@2Djo4Q^&sO4Up@+5vr~Uo{<@xQmfg_; z%xnIm&W6tuhXA3h)5-ple(R;N$pD76=O9PEURIOujSaC>Ya$lig|W%X8{ZF=L49AH z2ceDSJ6JrrOXL15i#4z{ItjAWeal@ckn|Z^ce69+?WNR%jVa#4|FTP7fbi&&^7M4z zKGDo$=RE+qj#twIJZp`&kfVsl+sL=BHz0lC=Sgr$azWhTQx%hxZ^GA|j3!K3clm99 z-)-~vBQ<!U;9pMdz2 z0$Uk;i0~MxO~$EG9yKJqi*+5vw*EtyvmB&kj;ip3Jc3JoT)OTlE95%*!QWrL3V1&O zI;zVB73Z201LZE2{MN!8w!dJDgJzadOrbmh8h7jpIG5Xst!QJWzz$btRGqJa{!IFP z=5U+Wo*NAA+dELH9>mkr)1pj3svdU-0xvY|>oufYPJPZV=7JL%wF1155@+9XSeSsp zAQ5kkSHewSY84MRITofi?a_Ef@@X0DFH+Px0iVdAJkgY&?`ARm+{5L`A~;{Tb-|2J z3OGuO{0pf-%D|x^qzzJLH6K`RUA@WNU7bf}wn^lUUHB#CS7Zg8W?`$q`;;F|hfwDN z%)7gf0S`3p&mUbuu@Buda+tpE;UNFC5F~PhO96ROZ=f2%c&-sfdz^W#gZ91i!lkjo zTl|!3EuJ@Y4|#{E(g-Wm3R=^rbI(i|_*N*kiFccS7k*@9H~mgn3Z;Bwyn-bKNaQla zkXx#p^g%5Qe9vpdD-UhmVX>4BdW$S8F#dq}Hua9lb&*}3EH4_LOK#|c>XI#&h7BT^ zyP46c;%FK7gYiapzGvowSb-6O!B|D*&4Jyh2?eUmMoYR@P96yhBc}Vyvu$pD`H91# z&Cal)4Sddm&aSYI9|EjPl^$iZ?os7#5;LbO12B_qgSlB=+^<`3W9K%HP`fwO9#2W| zVRANS6&}%UF|hi>Y!Ef9U3wHdqr+J=MfWWc*MO*j;tRt?snAYI=Ki@ z2m24zmgvrY%;G+7IZUP=6AB*t9g-^>e#sI@CxG`20`JGBL`-!*yxW9t?r$$^L>@r5 zY_DHCF!1i@L^!2fjQbj1H08F#K}2SkD z6bfDHA)XKg7S(BsyNV*D&%8@r##bCp!OkPBrD4jsb0Y|z8yD)2`t{a2%yz+5d=TTd zjAjS>uY$RG&iMKFReC|Gm5%eK8#;Dm&_*NeWs zwXUOp-8*yL#!~8iH0eP$yc7#eKrbO59OSnYP^noD4sOVwJHqEnQ(&fCu1K>)tN2U+ zrdvYo_5&4meFfLiLAzWVA-6^sFJCJq zI(lP$Z%{eHEIk^3XFvB=UYTA{7P7;M%T2Z-vy`=%0SdxU?YDZ-o~GRWp-jK1Q|2!H zXW=-6vpAmtz;6C!f&?9N_3j0K4A*k%sA{tv^Pt=7BPDChAI%n;Uk6wAj}W6LA<=8{ z#uM*4Tp5P9`F_a)IzwQn5VSjHg^>F4B-7twYwriWJh+(9$)RHw{kpE>(=9o}78FnU z2BtXP29+l%CG_XpDbl|x>PcJpK#fVQCH|TEUol!%jR&ad#f?M;-UxY7uc^cpXO%V{u1y^T)cA?@$2SvO7c)2^y^R`_X z@Iu^w4@GM6j7a?*?$MT89nLt#s2R;R2nLUN6eY!1tWsg(?%La}i5p%uxTQ9|ff-i1 z2UEEz9_;tgQ-OCWvgSVrASD|s2=NbYdd1xFn~n`Y3F!InKh3u}D!>l93XH-CT2k}y zd@=gXhDpjg_?ZYgzLePLp5VUCtu4DpLK$Mr&I0HCNOrk@uS1~eTFincv&X;32SP<_ z^9}~_i=BC#4X$yi`G^Sk{$&nIs!T(0b_pruq7sypMuz0KCW4SoJ$Bt0o*p)&a#{SD zpm6ODt_L%NXUAVMSZVmIsaRP*@T?+04Ga~C_Vmxvr7)VMJ@H%m)bE+)|FA~>>@i8# zc0XQyf+r%1_)svG=c<4c05zsnpDxP41>t4L9BobjW=8FaleWuh1HA7P-<~RO+XoXgzYs-gd<4deN-$R-q-;;1cneaeQQiV! zTUxI0$XVdUhdO@VaWi!!44&*GrG>>-R6q@QOw((2ct8Fc{%Uyfr2AJ-26AOCY!dz! zdt*%4=%@&!zEpS>UyielgdbiHVRO-gan+cp94-SuL%81q?A$Q2d%d3p4_zo-X zq)&Jcq|D48yg)D^tcmj?mc`$Ug8pY48_D z*nWV_zbNDAH)<2%Nq0Ph3!N890+<{gz%MCl*b5^uezw00D#3@v8pS<6aS1gTkKx`dgV&;p*piFpGS2nz!f`iM{ykXS%|*+vLVT zw0ifK;sY(hd@rqIpyqdP*eMw8Xato|rdzj3>e*rIGIX}>2xDw#f+}%2mtIj(W7==r zRKnC9-_4)tZ7nd4+{^>ocS42GB=$C-5UU(A{AwPd>QsxCmIPTd2yETU; zJG^i8*6dDF!*8?^Kg_PPxCgvU#_OK=UP1P81X*yuaUM2eiygA^cac*MBx=s=Z1*af zPM=rrSp-W3q*5B;!FZ__oaj!shHCH8D5qxuJf05V8zam2TMD8MMLe#;4apIP#d|?^ zANHyqp76{59`3v533#wm3Gv5~O^F1u3AP|&hUnIWX zfC=}*U)Xb=pSgMIGE-YK^PS>I-d-_9H;1@#bYv;)58N1~H$e8TzJ#aQozSPLyY9&f z3Ux}ix32P;XCH3~&-9{^Fb{O6n(PN;;VPVT<%B(Ik`xi(0dT=Ci1c%EsP_J!q1K9}HZa%#^bq>SkM z1A@m>FKcfT&Mphzw}CsUfhZ^ZVLL*_`0NL>~}^l(`=@rpKz3WTf7Q0UV?P$1-A6I0jo>pVUs$?*3lXuY=yv{a3T_tLVMjBfDR`lJ>|5%PVh5L5GsL0gN$QLjky3)05*ncg36P^sgA84SDl zy>Ij9k7+_GBZ$P(wcl@rMn)CvpWP(PWuy0EY#{-Kt}QF`K4_T2oQ7UMpF6vRGp*gr z#d=+5SVSMtd`=yHQuiGvr6LcJ!05GCUr;(e$vxkdpP=|@QR*=33U^S}6mZr1v0zXV;r>ry^Z?aWI*`Zy{jBapb{t*65#z3Z>@rV&di25 zN(H}z7F~C%^fHneTgSR^y8xc;zVc|W0|!i78}Ii6&nqogchEk5dpIGgn6_nq{v2RJ zwQmql02O~~0Hd|e+5Dl1s68iA45}TiGNDt4)ib9>p)=3&%i${;wIUEB`EFt69&Df3!48mS2aYCF(4{d)v$oN%9Y zwkN5jzjXO(L%c>b-HUxp(m9oG#MJ`MSaf}hucdA$yw5hV=!=6u?K>JQXt!~lS7zel z2H1B@M}l(@VEcjBZF&JI1iB9be@>1asLv0YzdmA0SfXwTcpHK1#-=kfrdnQ&_%k)K zSjI{%3Qz3`qFMNzp$eOhhP~nwz9v)()&~ByOqEi$s%&Yfs9u>zX1QNxyV=}LK!+Hk$cSU&EoDW zg+Qw@qiD|BIqn#GQCZN=vyU4reBYN|n?*m|eFU`XLw~bCRVxHYKCKvj$#M#X&x9jW zU8jE9>jRJiPmN45u-VY8aJTNSemH&R9tAh897Cm&NX=RQE=uWmVkz@JD>XhGK>wI& z^AKFq$cTx(K;nIxySw-F9#fhv6A^i^u%u|JF6V-yZ#Wz|^dr#nEtbd3^RW&-JT=Hg zpvyv__~D-k?NzX;{reK3p%GNzV-NkBYh_~5t(tx5M{cJC2*Q+2VpbWpNr;~+?vc#4 zJCdCtC+qw-={?&%c@2w4oNm^33slMQ$)pmpYWel!;NNxrknyoO5jJi{Vq8~mnv;De zz&ZXMu7`6?{MF>6=-66zga2kS(XR8$4@>3mD`8MjIOI~ILMpzE{x5db@u~K}9F9l8 z4T$M!+e^IX8NzX9^hT~hT&?3m)+UMH!%5zaxD9;x??BMWxVD|cP@%Z*C&@-CEw6<1 zn}gH__6?VW`o`BfoMqn+eQ^X!-Z2Wp?R$=Mk%aA>2ra~X|7T!3T4%CAN8)wyK>4;I ztk$Q?o34=&*JSa@sYw9&)rYvm*FNs5&1B6tC22q!jflgg?Xi^E6m;)^&Ajd?a^#-L zE!;m^ey3?_gm}8E%=DdmQOi_V1v!F?XxEJ7#lrIz>}afpYvAJ(47enH(Y>XK#%0EM z(TR$9Zc2+uHr;qH+Qbk*dY-rw>LKELxbo&tjR=?hY7(Q9n|vb7nLM|haT1C=4*_zc z_t|A#c&U`Ts)dAiWw1$Uk zdwDYuufT0cr$OoiZP4BajBo75bgmF}e1`Qtn%g+6{>G;8OmA<*x*@v0M&G2<7{jO{e_=iGKwn@IATA$AXV41aN zMY0D#FZ59c)uI6bnmJsm&|KulJoq`XKT@4;&@9Q!rW2^W#{Q>SjWBL|8t#fMj>#5*eO=cm6*~{5POO>?kA5TX0^Ol zoqS_+to^#5gQg%tP8^jOyz~{Rra>j)#TyIMratV7&-6T(1i5r?@5i!tK0<9VBa@@O zapGMw8f~1km*`k*r_iptSFsu6^AFQ3zGCpJnz*viu?7iWYF#aOHfi+W#2sSxvWr^_ zV^nWNtFyj1VT^y9iRNx@Y2A-|*e9@n)9PpXf0N=Eyz|kJQ}>uPG_9nmOK8bZT zwfFOsF!-WC0sKwD9`w-w)r>YR?U)-5hEkmV zhnh7UQX+{sK8c>3fP!~rd{d?)q7roicw-Dy9s(g$Nrzgd@idYPB`! zOQFUe>)Z5NjSE>fA@jZmLj?DI(>vIpCs>0#{9J-QKyE&FJEOFsu$a<3f|i+^^E4*QhmAHP)aX-~$w!k=#z6UGVyV29z4kYap60&7IF2rdO>B5;Nd%7i+arpmVbo9qhTNSj0=3Yb+ z3IP_7wDa1Z?&GL`y6lMSuA|pghBbwWY3Mm`mc|kqJ?$AFiX=zq}$QfBdxh$8- z)P%D7dNYnRBr7k@L_Vl|hEU}H64^#1Y?L(qt&ZdbbkTgTK{m#H!ZNA?8Fcu^|A5mv z|6!O#jHXnie5J51P??IJ8+jqda>KHpY;yFqewHB8Y^;lx9%8=#hE9Z(Ri<5&nM>|* z?cB6&)U8c7yu3Q(0wpBq(tlcf@A{cJM&6~?!GmUMAsqX^?UhqfUeVtGmGRba~ z%eJfx)iv>2PuHCvyV(~b8NMcFwy794_ZUGNCHqa+vkkoCWbt2Ej*QS2+gSF;20&8u zAdY2B<2wcJdrn17B_Y*30w(OU2&>@Pj!q9KqKEp?+k(*>&E(VDcjjJzvt(6E08m1|OR_3C~hxjw~6ywrPxtTj}(_(=9o zncPFnRB_x=eL5^~RXQS+2w6s`T(`4w!@JfT!0)?<>t8!)^{=s*k3*iN{wi$Wk&>1- z|Iiu`>}#Sj`jFi0(9->Bt4LdT@5l!!8_|W?u>X-o|p2uML!6MidM)&z^m4{ z>F$+!sk8N;A}%7>F;NQ+i2ozaOqtf#(x|Ml@_jDx$(UNBYgM>w0X%h7YD8mln#xP-{Csq`Ac-Y;a> z0by+Lo7?bdPK-svhj%0aP4%&X%jR&MM6q``q>bnEUpDLEcB3+TJma75rsn1XTx^H| z4pgs1^(x6pN{Xf=-f<++jTNbZ=e`NIjd9Z?Z&lo^LnB&I{g_?KjX^UrA6&UdhHFH+ zW<`xkL+;wFzsOB(m*lq@(iJq2gbkPn+FWyTOal`$Use8G&1kC%i3xpefL#5FWwvwB zr!TWO9a`1zJ-UQi?TQgElRDMNFb|0N*$}IEDQ4sY9Xl#!R(tB zjj4hs`7>qEvo-#^1Sva%>ru6J@gI9DtWb{CA(`qA3@Wx8L#}pwR$O}+W&ttnl$c!X zTa=iv%hZ#P#gXsw@h1+J!#F! zdo<*_>XatE1GIJgHp&84)^J_k-T2m=nb%aVtr=HaU5Is@P1o=~>`h-epszS)r!4!b zHzraazP7P9p>EX+O6kVHC{M*M+Xnv+^!J%|t8=sO+W0u^8NtwGb-<>ai`d8h5VbSP zw4eVtbVELStlB=^EL}(8z2XezL;_9B$or)QH7g2Ax&moZ;#~pcrD-kE9CMAvUrz6L z`h^XJ`A}QYLuCW4S9GM5Rj8Ou9^gL^0?J(Yg{5rB1M>5u7ENvzYF16iOfoRY44&+lmLoy5%GlA8Y@!(cxzH{=ZQj6;XlMrxE9MEM(bpnPD`M!c~9ipgFgb>c! zE#^9AZlhWhj@vMik^7y(#xTBky}tj#_xb7bdM>Ze=lQ%}&+~kqA3pC-c+EP|`&lTX z^cluYt^T8tTDy9q=DaNasp}_Ax5fKGCMReq-0$&>QpLJP;-g>ZhzS+s4+i4LeBd#u z!D1>O^p0Qla#tPMeCc;vE?G(pz908nuyQY|PvRAcUt zWuT9Jj!RdQ%QYhlm_CJj8`|B$NyCN`kiDFp#${PtR%WI9q|Md zkcPa|{$<%h=X4@-=?~{N&#N=Rrfmw)*@~T^6*-b-jvvfIN8?iS*SLCYf8@{!Bd1f& zBe~)!@G)!qCOox8@VxLZ7%3PQ)o_0v%YIxmSw_8$oBL1&H_&p4J}JS7u2l$<&0a5M zSq8vA``C4)BXUF{A!LUa;XVDgI(bEiK0rcC=5Np}o1RdOQ2JR$y4^ZDYW5eA-L{2` zNFQ+wCw?=hzeQ2;-KskUEJ?ug8KS0|0U?l(yb6G>VcyhHdYE@EdE^m8kW2)9XnwkO zc;2N@p@@3QRs1vRP#6-@jqMaa8X====?ER@$n*1AWIbXa`@69HlxY^=g6_lIF<@>I zGksoAJmW6m_fb5bN7I0J&(c*gowNcv}^~ClZb$}+D%(qa! zd00+Qzn8W+BS={>x=#(uZEtD<_peRXk0dpI-#Eq%*bE7CLz;~{n{K{ggO{%1IEr_7 zM)U_3x8IlAF9~F;4h^) z+uis>uEW?Ko>;67F40=i!B}(;3n{)+{B78hBNC^kJb&`#1-YIQK#7{%Y*b%guGv&M zcxAO=TvoDWBKYQxCS`gwo|75{1}bzJqsIOwNJ^Vay*A9XnpSJrF)NzQrg{vF)Pq7+ zuzA{!Nu%4esDJ(Q|8TNhR;>zWO&9udqD7s{98DTo=k5aaDtes8pl&zdY%u`^;CJax ztG_bZHxf#(kBeCF!uQWA>PY!Rld;0lyt&}65q|hxpaok1CKcb!7(uAWBa5mixMSLe zIdg8T#VkjkFSoTzqZ&@=F9!fbE7#ztpZ$eRT6GG3!(tDBg+J-x8xY?ILYZu!_YFN{ zg)hBy^6WUerR@r;47Vla*=q;-AJ`Phz%l9(KWlxG|0uTW^jJ{jI)@ieb=0~gQ)CSc zZR%G&R8X&zCOMo{=k8t($}DXSAehj-X%Oh5ufhNaC@v4$^}QFm02!du7m7Q!XOGPmu;zCFnJxFkodjFUOYTBa>Cik}#it@ZzV_Z)!)`r24A->{Sea42-6dQAO~Y zTc)ylC{V^`+{caoOIs*y6tnSr(kvhFjTw}x=%E!)1Gnn}{epcr?()voA zAszxnWEc**Ln#fL`(mA9zcvnTl7*6FpM911b|fwq0CK{YZuxpw$C5wrJr84X!;kS*;b)#~nwBiG zVD}4H+(M6k{>c4+#moHgM7^kHseicUxqZG8gRZ}+XJ)-hs-)MX zIh5JkH5+zboj4<-8p!U8e4R8pmXd9OW=t2@2k#PG0~Rg9L)*P;+N)z@ERWH2@(MrE zZbYFA>e4ui3F9G)Y6=mA`P9P`+!Rp2)oKVYlIxM&_|FC_z*sw{N1qqNo_Uiy`$KFUWU|GLne3Ho*XqKAbC@C+=?eSzwu%F|R- ze0Xw}RlgQ4EZ`CJl)Yaqxx`xbu2822&do*HAhx@fR%=PzY@X!adHEhdLH=shaKD1k zy988-!a1EX^_0Z!>R^Y$c#qzYC|G}=S8aDu!a|@RmPU~WpOl2+5+(X0!zhR8QVlUL ziShuIZwUNHUF=p5>pzjg~Zm+b;4&URNOB)?f1y7kr4Dt;AZthF}y zvSIVIF1|7DG&h8EyHlY)HfLL!E9LY!MB_2^hm ziZ&ld&KS$8x)-x9o9WD6;sO`^7eSTU1OfdCn-BHwlkWZDM2n3df+H)QT#>I&n46QX zWg1e_CekZuwF53~mgFKn&Lw9dvT`!FSnWl>txq&KXuR=Fn$6}ftNQ=`1GC~b*vGcD>xjP2b1N6B7Dv}E%(ZB>si8~M zYCF;Gx*{U(|1@Y^-&r#bWBknqU%M-5w9GpK~DSv#c08%4-xjI5>0(abX2GxTpJYa0nUC5rKDN5m-}f+-$ zsaf8!Y?hi@D$pd|8$3Jby#ZitB=L+I7GC;|S5J61xKY z_}cijn3WRwpNoRgz6$9Lxjj#KbEDf6-kAQ;b0iRLWRcS~vt6{^z$|GV73EZTn8DsIO0>choz5?c-?&S=EA9kZ9b*#Ev!5aW{-8yg_( zlsz)|F)6LDZ6{bKv#4So2fhrSc=mD9DW{+Y>yIVmihhidw4EE5tHPO#;$le{ zD~>J`?>U>&x>+!ZxFyNqe%2+tQHX2FGK%GTX2qPX_>Gk}>azfsBlLZ$qpW5%29cv| zL19DT9-10oQ&&%pmq+=AKvQ5}zTkUG5kxFP!Ub5s0g zN+AI~E?45KvTVcCql%SxjUoE|4DZN$tMMAgMZA(SYWpRuVq)fYPzEq?4ZJQmIJe&Y zGwPAux}OsqevphL@z?;Nj-y%Wlq%tMeem8!&y*4j1$j@JHfg2^SAkwdVVpkuZH}%) zc_h24m&MMLnx+akxQs^lyuqMCs7TtlPbE}Dt2pg7=rY^c+054EL-pTydL`PyRdqTc zuiX$4ePV7-%&4g?h>w;iZ9HU*8b5(u#7UTxG;65g+rfHE^-?UIIc{i4tKZr5?IZr2Z!8lRxQlEjJ9ld7xweRqm-zG{(R7WN0^hGx%oqJ|?UAck#*HM%l` zvR=YJ|MowaYGV+Nm$y`eYo#{#IMk6&03mwYK!}S}lww zF*FaTnjE}9tgv!jd9v9Ak36mAw1N}KcT579huw!VPjIE)(bl-f7r$$BeWrstpBd2q zZvMk$x0m-8eLR2t(|L{!Gg0s>72rX*@uZG!w#uD@WAPT9_L_cBQK#W=DkTJdc=G~( z|09~R&^47xsi1f<^&nQyRIpW&Sby2&`qWFDT3Or zwt-uF&WmCBrerZLkl&EYbPAaTv5h6uFGbP~frfx{3y3y~z>VI(au1=L5d`VeX3_nc z`2b>C!N>U=p}>17UE=H>x}6Q0|o63{FujW(7AR@X>scDy=+(S1j_-nz z8|098YP=Am(bK~Wvf{|F`RNxo@(Z!_tqJIpzL+ni4NGRAl~R@-7Ik|g;K!f$Xm=c} zy8Uj^X@saZI`T6HCd)U~dp~T^=VVb3?K$s~8BSdV(YWG91l#BCIW!;aRQuG==|>nV zE>K?Z6M3F#Pbs6@Uw(CWdVnbo5jlivxjRx8X|?zS9~_p_da%sb;%O<`PIqcSZ#FGx z9i75vBcn%pwB){%gZ>}|GFMajK=5znc{hFqa`5sn{6p zWAL^JxG9KNqIsfv?SGsqWyoDM?+r}YNs}w9{y7c-1;@pfaS0X!R`2QUE`o{%TdW+WxD(rp%u)0D z86|pLW@ma;dgMd{0~Y+Yb^9~dB~SB99I!)wa-<|j@4@+A(e}BDG_9fWy!iI(=gLNt z2r4Ho16-9YRnx8UU)e1=QK?!{-5jk(-Od%N9jQ0#2??B=5wVbIafhgmxB!%CN*pf| z($S^N_h#TlFVZRxX9a<5YwhbJtQtuSB1^3wUt?TqqP9g|v`y+r{qch#+VjHElJ5?r zIAlp-K|{)oGq@8|(`ASAN|wdju)RVPtt0GtJWW0N)%@(DcW)~w=$Lqa=tF%AK}WHl z>!LtYXXcD&E=Tx67MnzFkk7aZdM0luy@*FjlEutN(B0X&HM=mlH4*A9Fv?hJcWuxq z<;om{M8r3B=7KX$PofWCbDuk~q?oGNo^TiLJIAAS>XVp-%w7ycmq;>1q!AA$RMv9R z6iN0ObkY$fnIInNdU^6lT_ROayY3Se`z=Ju8d0dpwTO22%m_^Sw>0RhFf9({fHpb~ zj@mZ2auMjSHMmE|Q5M@)tEJTN?#Rst^DpShX*XVR275kOOm$r}TX(Kj(`$j8wq3Yp z%ct9iCPI9R40Y^Eao1u$)$FTdu`}sY?$Q;~Hd_iTe%Ma0h=iE;&$mItP8t0|n!hkM zZDNC5`_j1DDrpu-=5PlZpkv>HG8I9n{cMzx4xrHdm2o1W>5Ex99i5ePe2GYrP_ zCFIZk)y}DoAN*4?$}XkMj8+747fAsY4leJckdvMa#foS<*}A?6;hB12FROU|5o7v% z2c5m=0;P*6HZEWaM({Ia=0eF<7fJVR|NAOthJ0OQm*(J`J8ee(>Fg)*8~!9K5FXcp zCZdt$ku=DX%k?A4oX}z%+S{p~HIbyRe8i^#BULp8NTGMi)HIwEM5xP%Zh9I6?TQ_~`w2orURg(}<1B&^u zRG=(`R`HGo`5G1tT~j{&R0tolb!@ArK8h$9Uf`+jh@{VM&=PMulsc%`n4ZI&vzv2c zfmz`?u2<5eSmWbi!FBf3Dfg^W zTPlK@owHn(p&8={gG{yFzC52cF~7lqx|OsvK?*r@_ERu&ftzIC-Bt5F`{hMZiAGp6 z)UPq$;#^hn6Nu1`xz#4HvL`1yO8?Cdnc1+~R-T6iC&>#OMW>1I&TSNR{;5#14QIi2 z()N9Oe<;MXEGmYl%5)CoRs}+JLQgqtju}qidB~)yMa9%~d$##Gu~Mzl?&ak2Ob8Zp z(y&lnYtq+rX1172hR&*Qet$}79}Q~ODAczVBx%U1W362;zgCi6^d3mT#y6F6a4&gF z12cb`a|Tq6x!Ng{8d{uxbW*LL(JT+nbjeRB=w4v_1SVsn&F_qp#Si4bf8(56t&RF3 zQJU&g_z@T#^(|VPAx3dkXMmt#PLQg;0U7t?i64n~X-Q)BAXh-usnhYgl|6a|O(za> zk3O1*=9Rm^7jrB#?xy%S!hsv8;IGSdM|90u*y)A3dglwNy%&QL&DNKb&7`efhD*C| z+&?ZKDp~BjfU-v?oBNr*s?UC3g*4jxBJC8hy{o6Kw>|!W3;@;y2$5zE2ur%7e z7tMT7{4GwGs0GxEOxeceN2Q!7xB+FyNkA>3Fp`xjN~0=m zq1#a@9!IgMG#16g_W5?6)1m9d7V$6j*$G3cs*=&LLMYPISjO1M&5T9U?Tl$eW=N?y zX%3mkcjS$txxRwCq(xK_=O3D_k#RW`2|KePm~5H@QDmkn9ChcmU{WE?{b}<(Z63NR z$u+g0>57;5T2Zn5vk#V_Yyei-IT-#Ahlo0QB^u`>F=L$j)w*DDcut0rdqJQrps^%6 zI7>)P>6;+pQ1d5V&?1gz<@Z$9->bIv+*%1S?8=R9USX*ra`wF+!HveXx1km*By4y{ zj1@KibR-}+X|#F96*m_)v~T|0%1cH=cq}vNBVA+9D?o>S8yC_l^<$uS5y3V>V!+U6 z*L_WcUt_F?Dq)&JGhY?YALpor14&2R3mCLR`z$k!WBBYCq^PL?>CRZYv6lx;-%q_# zcure&Iw{|>j*Pq18tX`?a@ux}S?;7miQXO;5MRQB2)_Vrc$s7&|JRkSK*C@Y`89(u z&K2Ek5ti$?0(cLHR+o@eD$bK{$r)5#&x;xcF62p~!>^Cdc0iUtXppVKWcnx%SwoPV ziQ;1C37O|gc_|6R-16+S%gB?-DMnqKdi+@St$OZ`}Hyu~39a%3PY(Jefj zb0{|cQH9AdCc%ng((M z-?o}l=76-g%?-vnlVYu(Kh&;en!_YfAj#t5+v+0I>rRkjbJXnOzPAwZkPm2BAY#YG z@0wq_Lkl-trVa$etLbRs*j4+6q`#Fk_)`g9r4;bgtrEr_46m+cQfhr{9LFqC-{CWT zruLUbyRG8P!RLq6ln+)Vooh(t6Mx@eq_uge#$@%z&<^B(8a%&h3xrbTVR5n9 z)cLW8C0%c*N%G)hJGofUajRzS&Yvse7C`6Q&v_;g}$p1E{+ zsO8d7Bn(Z|b`Ds;A?p&R_Ezq&wNt?68S)5o2e?A9bG@YB*V0Xe-bV zxARi_<3)u+LfNqdFC7==NjRbbG}rXjg1)3MyJGI6RT?3w=ukeVvGMiHWtd~^Goxxz zgTq73SI-D_ddeIbQZT2`)YEpXY}cq#vMumWCT%Cr@g%7t(_2F`Gu@4onLHQ`eoEu= zpJSomB~;q88w-K!Zd-C8_s|h*q4)y(ZjlCd1xHrD9EKVnvn{kt}GM0}WBy7?swH z6X+43ofb5#cA9E+l_03aCLCmCFUS^m2F>ptqWA-!qGB_y^oyOqRKL7a!$v>{Ylvg`4rH zc`DqMDR)y6&aNbK`2J6oJy;xNJ_Xme27bP?Ht0885UL+jYtQRySU*R8R#R6HB`<1W zJ;-^pywc=6Yp)1Ha$nko@3u$Oz7%4!TXv+&TI9lb29L*VBfJW zd7*AmMk{6~BwmTmARy!_ON1H=M9xsJ!W4;!aM^+Cx+I2ZVqx5*T3r%}d~Wp)4r-|5hm6 zga7~D+XTJdhyT0IP%0hjrXv%~*2lKq?J3kOexjEI>(SKV>m~W351WSTD-1u%W4f%=%0sPtZtLgtScRoPo%HCfM*lzs2-G*%RI< zm~dhGeC%V>RpN!<=d_>7bBtlr>=??H#s4=E39tqpcJE9vKMHru@S^Pd3$gWL9;~)~ zf4zWLOXL=Gh{N9wy-XH!G|VbZ7a~-tuoq&Xo)>eY|1+IwIiZvS;5Iw=!{aRa(->KP zH0mxevBDWeaMGe34`0pZM`N_rV5_jOI$rg_0vn&%;}84+>GR!W2dlRcuvdaJ&t5OD z)x(1Asx;j{%6D~j8_3qM@|p;M**5&4eh0@1_GD@-1k5I zr?B>x&nT8k?w*yx_&O2BnY<2EU-BEh*JGCc-w>aGAwap;U1S(UMc;ClWC-n~Q}m2J zm3EY081Smq?{c$|ct(jCBgGx0-8?INyvAGf3euZ8VW1zx|CF`+m0&0%WoW*YyE|Xe zME52(1d@H+tdBwTz9VRy;e`Pej{zep9<*6$b;>jP1SIu?PfaeX(XS?)Mt^PSZ5~WP zl{=w@z<}*S2#F^D$M>a0SqDw>DYa9zGF>Ne4*lK!TIcgN4Xu$ZiePRq>$V@}>F}(g zwP!|*_KaRdY@7YMS8_ek1;U$Vwz+^Ui`&WKP@ zVEQTc+dae77-};NL0CTz4^sQ+uVE zlxB;l{Y~f%tY26JbJcTRJzIG1?8K7FjSXY)7bTn5@iDkwK%U_-=Yi$Is~d|slFi0T zjEx(XU{#8bQ(!*G3bu4(8jlW(Z=?U^JIo_Z1K!=KA?laks?#arI8uWf{pQ(z21WR9 zi6U{tAn)d);-;;jU)nU$8V&dfL3rJAoE_rjtV_yreB zU>GZj%wcNagLa~ES*dli%q%1(P-x{AGgot?4)^E3$pZvqhdObfqQ`lBt`~5^fC|^1O7#73w>|6S@mwXU!&p-!91aocPLQ&Kj zy4>kjob)&@gcl6c5sCx3@yEqc!?X3*I^=!Y!Q ziC6JOM)|RyBnFXlL?}+B@79Tw@ji_N zIdIt)vAH^1BL8>dUN?>^mauC-f{*Y9?Bj=x5of`R6G|j`JP<}K{k6a>U&X^_Ap=qC zWf4CAAJ?js)V!HxP^Mo%_nc}5CDBca63P5szFFGv9z5#xT7O@9JA5y4IFW@BG!^*+ z8@0u2GHcFSi+1(Ds8H_%_!p0_R9$D^nv3CszP)}1;$+lMr<>S^bLdre?jw(b$DSoGr+>ch(|VN@PlS+1m=7Q=RCh=pYJE-D;VVJ*EH0ZW;gYj8|T zMCA9o5vSq@G&SF4`&Q@(>?Vi`S5!}lwkBEwvKSC|_s({4>;4MWz)+Fj+ZU_2{FDT2 zqs}Mn`yj9Y95Kj|QJC%C$7lf}g-xoox7rpY1!9p4K~OgfY48gT4b^^}O^o86$$T-) z&RO$e0y}ygZcT!{_k#w19-$lY++3d-m(i@|`Mvy!@JOo<$P-ly0J6xi#Dsc*tWR89ly;hWvoVcmGn6LY~j^r?%Jfj ztdkD4fCp!-u;YsJ>6;5W0u?vH_JHbin$=>(7aShAQ^;^*s<3RVPO~M~dw#}llj2nO zdq?y4nRS%6POcE>6Jcto9+W|Tbn4UKrhthiIacPk>oW;gG4L@#Wtphs3b)dyBMNH) zr^s5_kJ7H3+rCWF^OP=(V4I*d-+>If6;)K0ZSZH~e-wrW&Rv+zLY z$Wsrj&xu5WIh4w~?NM?PnVZ}&1ikGM0yq0o^zsHK$3xEs{VcGGhLTDAI_)B1o({nT z#-`SmdN&+z(IfhHfXETOemdhwi@)XG!pgKk5&06EP5H zalel$XF?Nd#3hQu;l7!TvDOl|W)+sxX-jtO$Hr^zw(E6Ms&f3Ggl4y;A)cXU^bI<^ zajR06y=f9lRQP?3y(vRVkkU&}KiN%{>vO#37dN zl1Xb1y>NPy+*Kb@HgyN^fYPqxCEB^H;kP3V0hE51dW4@^kY8A(4AO%sZN!Y&Ky;t~ zBg5i}l``R5-9`O(<@sr11<;>PWXu~DmdOMocteP5nG`{R-jyw~d$2i|^FvZ_(RP7G zXGvkIFh%Z<=Ld=Ud&v7O+>?D%yi~^!IV8-xDgFTpY=U|6Cq8YXUaoz8W{j}<$<}Y4 zQ;(fBMm1w3!;WLFYs#Dgk0e1-Eh7|Q*HUr1|H=!iy>atHdzlV6ceX78CXHCPvvT0& z<${u*YxmR}3KtskYtEAlPDI&+$G%5!<=Wumlni2pHS5X1vfx%|DV8@AwqA6>A>J`{nPz~dGpTwtNY^}DSUQB%jMlH94GoyhDCPrSG)+S`s6P3{PAAb zMYJ1tYKox?9Fu($iQ-MfY0|917fK zX_7qJ9hgSwe-&X{_c^z8)2-_LBarPqG_AT9AFo1#Y;t5aa*x-Ug+GbGX@hGn_8xYdsIQK2h(bvL&e*BRo1+MlEyRd@8xD+2vd2of|S)%evauGB%cBv7H_k z^?cNuwi`4~WEK(myl0xm1Mzk5?{Dmw-Kae*KwTd6c6IGBOAqe zqn&>#c+kr4v}siiceiIldb+05^m~1P0gqSms80^5HQeSbnci9ay5W<5sa4#Gr|iD6 z{@@j;2OUQAy!46SZ4hc)_IPo_C)~rT{7;f=BI$?+Zf!H6S*d@c?GYE?_)b@L3hDT{ z%yr!R&5uTatKNd8b)-v7K1nc6aDgjMZE@15AFEgEqQT4RU?s4zu$$B4BxAjdP`hn_ocgl0rQA<_6){r8VA zI)~ROc(%7!Vj-p@I)?1|KmRg>jrUi|9)$A`djuyg;qe%rb|(gKBsH=?gd}*zJ!(iz zyW1NZytUyU7E~P@S%EzMc$yXhA{UTkKoOqiS*sS=HwoEiCr8s;PRa8KU1DONlOb3zrl;J$EZ2499E#uHW(m4ot?o&< zpH2nc)lMKw@5!EFr0(!$Eb3ys*SOv)#$pi>8GZT7{2B+Dy5L`*iQwb(>lt`w-Y0wa z8ldV$kA4>ZNhe}>)f=y58mF4Ejor7<7aujm;KZcFT3e4YjvX(ml3E}=BahB`LE+z8 z#xbFgitLVIQs`As;ID?M-E%AYQcDywx$_z%+grv+0I84t#lsusUCtIO(Q0~nu2GM! zNTDY{9qX}s85$DUhBuLZJ1Uj8gnm}owAsl$Rc42P9P?tB=k93dDuP@6H51$@ecs1gO~{@XYo+rC@e@)EUNJP zh3X%%Q?C~$>{b-GpekCxuYxN7w=eepv2I>p9Lmb6QCFwe{XNLQaYW_r7D1oT+jTi zmp{$UcEpH~Zx+Vokv29Y&G-GtXXtkJY8K}ML`cww_=Ab}xQWNz$^GdB1Z|x8&nUve zh7*2TZbhXfsUB{Z^6J}dlN--s{D7^QXM^$Oea0;pgwB%AXG`cx*K95)VOsR~{!*Wa z-AG)$)2b2e)9;Bj>`OON;Y?DXr^brZp5B4a6^0QH60y5C>{fV}+siTUi7ZfU+o#)8 z@;nwEF-3D}{Biy&S7bLmoMY#3fsvm!MaCv(98fAI&$dHHc@1Srqs61e-en!-`SYo< zc3zVP1YUA+nb1`dFnbKelPV`~J9l=-L#J~^FND~$eHwZQbqrtg{@;S?zRKmK9nxrU z?d45j`p3Gf@Yg457839=5=}aGZ8;@$x$I%vEVeJ%^D?&jU~7!=ANiJ@D;b zDy=%y+d)7(Ih%}I<;tjK-H6L&$-|dR{l;yPr}VA!(IK}-t|W_U;p3a#Hq3ewgT`Y9 zauqbcy8H+DEf?(~&GS&1kh3>S^=^}651KvSsVw)W!6EzY-HmVzH4XKiv)6(fOlsQU zU;-^|Nxv|b?wJJhnA)oHvHCLD!wHU~l+q7Tb_Fc0VbWisXgiOa{!~XXPr728&W`ZW}Ld*)idaTF6M%73Z5;q)W4rs|e zGS!_7qq!v4>DT2BpRifY;AOP8szdlJx)q5Hwa&IKXo(EC?j(36$*eU3@U*2?Z|9$< zpPUz|Y6YXV>2??%tz8f@Kl8v4`tq#uB^oX&8G&9P9BGxm%5a*+@$q2%fdzh6;!7;} z4;F5t@5vuf-DltxJGP4diEnYQ4yq-)`82KK%=jcjs&lW)-#znqnUoHM%Z)0L2Zn*aYm;l+@)kB zfe6CddFVl0A+6(VevzN02C*B&;h7Vy-~3E96(QTosZUfx2!zsN*aF0yr{z6`dVk2$ z{hC%f*!anc#rbg~*eCLokNE4D#=nS+diW~WWWb8%8dy0OPRcy2+1B*dTj}JKZB|`N zBxW(ZF~eA?a?;-q#r)oS0ik4XC#%Ge&7wA5VHbVz;2fTW*NOVW>+6ulC%kZ3$H4+x zr1CHCt->}q!R%PiZF?4bcKN|eTG&3{mrwugJ-kf?ylPUD$nrU4*)etpu}nL6&bkjx z6zzlU&7=+AFGi!&Ed}#?TzeHh>GW=?S!l6RUBl&Nk+z=hN-7k|mk9nPz$n|UKa}pL z5%J!$ctt#wbMqG1H4+wOrgV*z3i*qXeTjISg}pt{A&POhD+_0{b1KO_^g4b4z5~R) zO-d!s50bg)2rK;RL#v2wATcvD4me~L!Yv=$2U96Ra<2Flw#P5QZ07xxeJ<>hdmnp&IAzJV)SS9WCJRjmbq&R3n&3O!&A z!G8UrE*g5hQ_+7hy(+7d-;hChf@hxpPR<}5sYm>|dCv!EERB2B1`tzQ1oX^sf8 zItt>%Wq@WofH|sf6YMWPVo~{$wz|9&6#V>kIR43`tobFQk#!LA9cQ|`0qQ9u+m9c} zh{oLxNAoq`!lI(yMnrt=gX`~k9)A7h-7z_NKeJfC80!DxWDvQqp=jdSJWm-I=UUB7 zwE1)_#wR<;~HZXONKO4IKkKf_9T90&XRNpsvT2 z+SF#A0n7CK|Aj#H+fQ&Vb|-_4oB^kMNvWOWcQ|BbnCRRH;y~b0$y>auzwA= zzL{4qpFee#OQkZ95JU2^JhH1|_|S?v5FYZjlQo@}+F$wM-5*6umCElH-ycIAaltJ7 zRyu5B+Y6lj*dX}@Ts)DYllT92DCDsHob<@P zAY)}-cYHN%VV)EE`|EX zx}6u8ueF@*C{QjedGr?U`1)_7G0Nhsw)H+tjMO6*41@Yv9yS+jY>(&BzI(R@%rK!@ zMNAB-(s+2SdRn`2?e=klS`ct!vg7X5@mdIz{bBPZ#y&#mx6S~}(;>EzvsvqMRdERk z0>76*Uy=T|*y&$Lf>-dx#l>XvBpzq-0|NtBbJH!j75BcF0xM#IH)CZ>t-zpehs_BK z3!1E~tl}~<#8bNwUjs;71LNpG;eexh=!ebzcHHdIWmCD^kJo!|EibR#pFV+~o1eek z<8}D;B0}(i`}p|SS9^K){3PwrJ>YWLD+5@T9y5L&EZxm{ue_J}br_s8ABof9((u7z zBfRs?c3%Bq%dPX{{pEE#re_;4Y*0i5?0W#o+OE#yZ?D5OU9E*Q-CxYRU#$iRi-?q) zjZ;xcC$?dFT?xG=Bs_NJbKgk+dJj&!XL z=cVv{gM$W>1hM-qEg;@9z)8h$Kc3z$$ z2-J(p)YO(O5u@7T?lNMB$#(?j=jR6}o%TKsu;lTujc3ffbz_)J3a30US7;h9kJkgA zR089(6|UB6^x7p?y5-xYOH&Jr^(hUT&0k|#cbiOJdbbz*fa&BlHHUh_2x)0(bQc>O zQ+Xlb3>r0&(a{~XE$0ky0+;n8<<^Vusbo{dMMRzva$2r{Gj54$7wl2t0I%L%^$H^X zLSA*%s5ZwT^}HfmzCVBS3<$)_~ZXZFb|r6u5e`-W!3`W?p@v z)UE|=#I~pMfZ?vr@&t!Vz3weq04v0#q@a!}Izm{g8ux4FKlNM#Q4nm<8-D)PX}u>5 zl|aKrES%_fc7e2A{6^fj*x>#PERE$G+{wvFLu2D7k&%%fR8(-`I8(x!n)sGHF0~F? zZV$-#rJ`)V@%-EDFY)O&+^O8}#1!1<#?v7>aRI&K;YkAG#k9@9+`{7e4koyaH3Pq3 z*GrrVIKTDr{t)EO1RP6i*IfbVHvjx9EG!|FzTzK0R_2!wW}?b1VKkonVhHa63D4(de<(74!jA zH<7WjQ}vzob=W;L4v+rDbIq|DIv_KD0oS#gk`gu^qb6K~N|(o45cL%>$=`W!wTkH_ zuBoXxQjP~3A>2_dHEcrk)f1PEeTTQ(F_}rP*{rJqz-oYR4bFEa`EGt?@yF?r0suHdj@8^*03gjNkmV6q zb+`=bT|Nj%s?Dw(sCbMU_m|7CoCIzC{%A_F?{n1++%}7?_w%jCIZPfweSPB448i5f z$I6U*dH`n9cpKA%TL6s3e3yst}PGr{_1lach_ zlj?M82C}N$aaYCM-27&5a9}_mKu`CZ@eGoh+n~N*uMaZF+5uJuonPuNw(Duf{Bvv~ zN-kDoJ@d)}+`EDl4i5kTkPHDgH?BbZx2~MK{;mqY;fQP5{nQjwPPjuHFlI@OY<1Tk z1+d^vPC;&4?Kj=D)!*O$miiC92sJzZEA0P&aiT|h!W8qvpKvi`PvduUstR~R{xjeo znW+CR^PgCM^INP7c~$rR6G#8g9Y)f_nxpI%wkHGrE>7=nPC7b~y?8@QW$EdG^O68p z?^MwSNKh}E?f=^+E^6a3q{sA5cMAji%ATiWxB~fmEd}Nc-*S4dZ1;zEoCHD0UaSa% zdA+QxsXY|VOfkiTHyVP0!%Ld^`7G;w4gKQ7^(CY;B{k6BWbeN#^jkJ^RAMH1e@lPg zFw45A8#g)mv@#Glqc{sPlbGh$kF$-ZzkUoh9>054W6DyP?Dy>yxZQ5|YbB(mH-1Vn<&>30UM{&|djI^X z06!vw$)IC`yy*v~Xw=v)hB^G=ddQUuJpaJy5*S#@=ZS69x-92Px5-6mwL-+1-J z=R>t%NOm$zocBKi6tvaZt(#7l5P$z1_#50D4ws0%HwP0CYntjsR}!k4B(ich`j_ z_jDz~>y84BI@PvAyBY$}M(_|zZ)ALYPZ-ydc%E#UYK^5@_jNCcTj=SCUVh+ z$RBMrMou7~`x02L{j5>KSg{6|>&0F_K>06sz>yfrvJr8=mzV!K4GiVkfWg@GI-Vk8 zk__R1EG){R{+$KTESI~)!@)TQ;v$5p^{zqz|LXB!`7sNS2cabV$#-||>b2G~mX`Dh z+OD(!Dq7A}1xdtEvDmE%AGAJt!nNG&(82wFCMhX-HK_B@akSd$a(_OZ4=N?$;o(6e zVEqbI8{1`%OZhxm;xFyGA{k=Dj@Wow4ll2-uceb%{a6fom<@W+;C`1-AOZw*Q|83ykIEHw9af z&|eD+cP+`dHUdha4v14)Iy!`JKq1j|7!!#rF&ocC*J^Occi011deN2J{mnUVn5mSs z^jii7bnlD(`SC&!6E2gs^hi3t%fmG+2q<_!EdrF^o|2-u`8$B$KYK$?{zb#4IW9Go z=ry}(8^AH3&+s(cR@!~xxi4l6)aq=>4qG1uJZ{d&sHp>fk6CWe+wAJO{n^Bn`oDC- zdB?!8In1@ZG04=q5kTtshMzy}5#UN_MBI@81v+r#oz{X7=cU@Cba!_Hbp8|wM%!VI z>7%o8InY;c-hsiv^)WHhO+a|*j_1k%lr1VDp>|&2_jL3Eh*enpE(%Lq)@BSM7L9ak zvnay3pLherFA5R;_0c3qr(C}q<##z$(o_VP{9Lug?^X6il1Zm>N99N*u$qp3OY0Do zh$EQ$FV&R%PEJnnd7bEs)vL)VDg6LK$7()7^WJf%N^buxCFNLyqXir=irA-5Pk=Bt z*c^x>0y3qs3HCdEeiP0t(XdP)VD9#9yw>Ys>GKAH?Yfa`Yx>{#Y!|fN)MfqpW$GR5 z=G*=T0TFFw0X$Odpyi8*4u}8VfhI4_>GcTTDVk6KhEbdMe{|PvGQoj{^$+^xqW~wh zPXJrM+nx?{fsecKKxVfooK{a}*3agESdIqVVEa>o8h#Xz%pN=IeH0NJaUkvQ-@fUV ziq2b=Di^90saFTbGiV%KB-dEY+XFZ_`dtXACxUe3cb02vE(n}c5Wo8uWKV!d+60&# zk}g1oiQM+et8A7%TjvM+`c{BU)EkUvC{iu|GFxc^J{uDQT$8f6G+v-gx8!+i70!FW z{hG^q=(j|X^8g54_uch~*A_r_*E&#{-U74>5CcH=URPdf+jZlF;(({H4GtLy`KFgh_&{PE#Fi3dyt z%xJ!Jl<~!L+pd>l%#Z`kbk`l)%&aU4S=lYX(wo6_B{S>djT+YVegKnYGakYRzzay+ zCF{JO2aW?f{yV&1FgPfaHaaImPP->|aUms-SNaQJ+t!7kV)|C6xDgk08d$;iG-&NZz1 z6RI{j+jZY2v6R<$;YhLJr@V zfq?&mP&Lj(BW&$S%hOGUf&jm^BOHm1waRDyJ9?3FcJA64wpT!D%VfqZa|NLsvwnAM zjj=^P2TaJb$W6y-lCgHh)?R)8&w3J*HkXAU^Ftg)qqP+_?(3#`XUAcIg@i``voj8C zmG_C=yqB6?1SXnYSD4_!8t5V|-RAQ0*6B1U1Y-|QQflDJ-b&zf8v7Jg`M)(rJBSzZ zQ|wnP=?}$ut)va{1;c&$xJFp>P3E@btaXpowKg9Ft~O$Xtt-1=mj{XzqHHHr;H{4d z5OorC;zdFx&WBQXzsBQG|GYlxL_0ZINrSM~W$ixLV75R8uHILAW1iMRqr*e94HP27 zkE4VYdwPbu?<_o6wkacHH2QWe5YS9tD~CL+ivPE~Nr7q_w|)u>3tc?49;~+!O+(7= zsrA7TcufNq6r`~BQ;n&iv*CCcxVMjfX<&coTUB$>x4@GlJLQVq;o||Q(T;dK|AmpB^#51GWr+1gZ+K}SGZ|) zt_z)L<}px>^~WwSDHAmXTMFNr#DN2XB8he1IPfR7)?>Zwe4E(*Rhs=FwPCP&WdcLv zEqUxv>gykXQ*K=S9c1$FxC?WckGg2#9A00)kI2A097^wM`oEZa>!7aIuW$H^s3J6AgP3Omq>#kNIh#Sp7VSDxaXbwp8J`3 zojEf{fiHVs*R|JLpIB>$>MFNu*$LKOd(isY;ixHP@q${B+0xdJ+ShTuc4NQz8Jsps zB&*8k6FRc^Hv=g1MQ=Kfv4rEMEq~U&VVJTI8D6_$LEGdI*DgWNINe$Neipa>eCN#W zQ)zsQX-vs(^m7}^vUCahWEQ`(M7WZs+4gJuFLVjS?5kML&FG>@Ti?CxPzB>8jh{yr z@@cP!?q0ccZOitGG)b35cT`fhoAKpRIj3mlp*!KBW_LsiTA4Cb$p^!_Y`HW)RWrM3 zkPkLv(6x2=IC@^ZQnkaBWE_cMzfn(B;I*;L&&m~nP3R^oW<=g}Gn}a7`qtJNX=3*q z`r|{o%4ItIzp+p$C68cP`$C8F_Mg&AXqIE%7_OP}ep~)t8uR zllzMQj))YiZ8 zGOqjuKjq+}S!zc@`Yt8on-8hcV{dSB^%vM?MYj@QZ)R^>F!)wq21Z7iy4fa)ZKnIU|+R&P-9zjM+tI zoIEacxWC6vKFltQ0xfd0-$C8cUDI^#B@-%afBoE_P&mw0?D4Q5>wQ&W!9n*Gi$}up z^I!4&?RYaOR<2q)Sh%`8LKP7=%-oKM6>#HZuG#0gkUHAMw>H`l|InM(K>KpB8*V4l z&Dtv~JW3;0^^|kZ=5tCbQIu3(DZDRhW^UZLQMH%U*%al|N;kAu(#jjg{-HtP#_#n} zdU%W6R8`_@TWO5r2!&&*YYxN0Pl;zQEV${3DMPb#Zk`=`f{s+gTpC}K?kptTmGT^A z40!Zo{>6D)C%5tKlvAQfwasriJ{P!M^%5TMA$*u;r0y9lwd!u@BsxnFHBezw?`wdf zE=@6H$Dz=!k=9b-W%yYntkK9>WQCRo3GIz}K-?nS*atu3*s8^%#6mHRu^_gs5>C8S8bIZ{f_NKF2VoPMj+OWrx(>jU*C4EvWEc(%$Z&E0lpwN!f_%f&UW z`aEx<6hA6`**{{zeupI>k`@@Al!y2RmRy&a*@#4=8_lf0GW^+;3w>{Y+(>-!X=6@N zIxv71^Q@$_?2VPIIHxCF{2#ZE=&J88{-nIUMkX;V@81+5u0>8=BJo}{kKc_xBf3NW z(lv(b-a(8KvMbG<*y9~^+n&w|L^UPLv<-|*L**mifZu{sZ7M9AGu<`&v-f~=JUI6 z9>@?{uRHmU$krq{1cpriangG`Y_$zOAblH&vVKZsqQV@& zxlMK0LiKwwe_UYo{bEmLVyDI)jFq{_`=?mIvN*wOWCfg-qiVf3Br@jW$$u}u0>={> zKFR$|UT=?|XumO?WOzf+33v_1H#(_L!&6xF|6q)8Y9C^eKTw&Pu7l`LB~LA>`|(db zMJ9QXZ$lPwd@DO~M)BWZ3R z6MbE>_QNB*;p|Rk!;Mg%qD*byufC$Vxaa!pe&1P&nGy+RzO&-_KzBy!Z0n->gcOnc z*M~@!8 z--0q#!(r?xyTx!MB7K3V;Q8g9xT1oB0^Z#H48xPX;za?bnS;`Q_Go`?VsW%&G6ygc zg252Ei*K#UwzOVTQt~{&)uENgeIMle54pn|p6lEEUK?H%P|&!5F{eNw7@ga*s2}S~ zSB&Mhrb5_;ju_S;sIJq}3&O&}4i@D+G8~2Mm(^ssr%rbX?wg}XIL+1Eu&L;>P7a10 z>gd-%?dHd;R?F7IORHX$`>U0qt*xyAOQ)WpZYDbFHSg=NNC3Qlub<@piw0MOyt zy6_uPY6S-8fkaBvu5|}W=zI|nGSlPX;g@Y}Y)mF<1jzX8fkgMLBAXX@32$OTA(oTKIM2knQ9Y4P%4m%N{`^Gn_WL3V?rZwQ|h}*e%qk z{fGr{Oe>1Dpz5Z5_~3^@;rbHjkFeLTA6Z*&&3E!ySmwWbBjU?u+(kM)J&k~ExVee6 zqyPADxfTi!{)n4$*Vu zSfb_4*DL6i03ugabud0B-$92H+iKe_AZ};J4u{BmFb~?SQFZBQiTB}F%3;lkfHN{Q zG_2a2k0baQ9Tmk2SeMuCn=mL+?a|C>mSYw7#KqSp8l^HgL;h^cBFf^zsy)YaPR6N9 z3*=zIeIWb=Fd@heXdix872bRO6z`^Nif-eJQKy9j{@qD$d_qE1>DbQBPQ$4NAB3~h za9Jrvq{s7kG|L02B;gsVl=zrFW)*(btSg!PIRd;jsqHV3NYwB7{g(`|mSUGLU(U#? zz9IEWiNsp9|Jm3PqG%(BOHN?Bk9j!Pj`qX%wU;YAJ-?xE3VqLeDME6mSzHJp-^Q!? zLIrk+7*w(*yFHF>Lmc}hda4pQflY`aTc2(wtwTgvUl2Nu1?EG^r8Yd{)%8DxwQg=n zP*J8SFiID%as~nMA^+fk@csLk#z}6R-Wb^Sm|04fGPd}df@yz;Oy3xq$T7j1LQ*H#FQu$?|VBkz~IwDvBh&ZIlND{qJu>GW?%yC2|F3 ziruWw4>{iiEl0pXox%aB82Id6I6`|nBUX!Fvq!p1qQk=K5%~{-5^y@mPZSlgTUKp| zVeu{JnYmy|PSyXZB~s9fbm~ui3?Y*OhAM{R@fFY!P_FCs7$_u49{j95HvIPa4P?oX zz=-j>XG_%}6p0_*I*zgC;{ zfcBodyCC=pC?OkzSX^^_fAj)D zsvKWA>2-nr=m_r5Y4RDyE>NlI+O>jk^5?^)n6BZRL(MHM%7DuUqHG}iDp(Ku?@LR$ zwetvzsqMOPCYXd{8qq&Ij*pZNaV3Ybb4-5&^&a=vpe_J|PXSs4_#$q*{j!6|gF0Yu z!)g<$gvhr!8zC1SAAhk<1Y4k~$h6nq%ogq+0;BCp@qh~Ea!GVVMB`kvwyc2xHN;?J zh@=S51(pzHjoYR@)LI^gPjkxWNmi?Wjt6}47%?z5w(VC|{gUT=)9-z{zkV!|S~uYmER_1#1C{$076(;iJ`@h;XlqXvY z-3wq5$tFsO24w`%cfNcC&k~ZhA%C7uhU$q?t15wwiZ8i< z^Jie(llfWp57#`pfiOk2c6Tqpcb;t%AF?QP+A@Nh)&fqFVffovrNeuB(1B5YeuIZ{ zI}pOYK>iA-!)hDoWB@Y?$n&nS4Uv(NpMh~7E7<_9dt-Y*yB7$bec z!!!I(V&X8iyuAFV!-QL3wt6%e0}9QD*mBCI!Hc@g3L=)IwKeOyqDiT4Bea85PUM^Q z)1!Xvth6IksFKoL(tKwe7lsb--Fz~pV>I}f%2}GFhxrx(0Rbr5Terq64q@4+25OHu z-ie3i*o_7=rL0e$=vO;1OzX7%#~>tYq7YZl_R@f=bTFuQmdz%mSy_zW2;ob174dgj zEjLc9!%Bu?k=?ZCIp{v&4Gj&NJ1%|l;v0~Mm7m+9peVQowU|owBkS2P@yi#_0$Ygf zpuP`E*Qf9OnUeSKzXeI3AlE|C=|+E6D?BCptFM{#tQb4#-%7pHk%|7T@@1g)Z^z{& zCwmSK4x(G$gi;2I5T>g2yCFhHjz{ahLNBAETOh+At_ze&-v`{4kiOMkh?MkeDHmGy(F9y}Qedx(%=!ZmQxIaAf(!eat=A-47d?ns1pzE9 z_?R09Tish8$3H!?v}+TA1P|e!K4)2bXdl8ePlOUYKCnfca<7=Rq5tJH9F~Q842sc} zA`QtX6P**gIC1kL^b}e(CYt6&i%gu@PGRwGvw{-0p*Oj`p0E}EqVyN*`GMh*%92@+;jw`da%H-ooRx?Tm{Y~{4XHg^!uXyc4)}4 zr6%hTJp7@ERKB2>Be8i8a;c0j7MZ<^o2e&s6XhG0F59L*^WCcSbu$J4EEWK zs*ilDW!@eKGZYXEaVRL{Y;4#7E9yeM4!Ws|lZUbe$nU4U@3X%E=ZDMX#DfKN7{ zpjUsYK8zHI-3MDq#|Dr&z%B9_%5ecL3QQk0a0DURGo;X)TwKuzzC{u*z%$6bZ8R!~!GMRb3lH|qgGA%$*6m5`)R_n)dPCC`rKv_0zQs4X_gpxmGef}s~t z*_Zp>I$v{K=irD!ijMNRE5EjvT0jp+bDWPg{+$SxU>({ZA68C0rJ<(&T;t}#>#*7Z zB5e6;#gbZ)2`&IsjO3J*=SX^kfP-lBY0JhLU-t?%~nF|PR0f?^q zF^E{mr5bJZ4bXN4i%pkU4CAZHl^4q`X??1?yffeR?4qKp%C<3%jIpoXV`3TZxG6$?PO04ls{ zOnQ+wI0y`e2n?DbVr?aNUBC1FYj!(Wh{c_qc>x$R13(r4FT*LQpb)nM!B2;k;ix#v zit_?DezyGe0(im}9xZPxl%1egpQvHdK|=$BC(Q(^4>UBSK?4UZzz%*A5tM5WSFHB? zRGO|UGMyghQ;0E`m>u8ytwI4dx)pz2`R>);q5dko~~ zSwxM5ddetme`aRJ6xOqOAJNfWsMe|9*#ut1lMzJ9Q_yBM_GRK|r}TdPG@#2iGKbMSlsHIf0Z$T(S>K0%V3xaY za8Q8#p%KdK?OUn}`<04`Lyzr#)ySwQYdD@NqznuU*Ky9_VERDai;h5ORSoMi$m5ER zfi*hQTJBb@g~?S+QzQl48aqB!0g3&m-;`K?)z}&P_iu3M@~3L4_aSpXgmZj}gk1-c zT-4plL+ib{Xxm}av@ZxC=CYJ#A^n*`?$6L5zoj_0)%N zE~91EQDTK?Kt~nnDXA;%H$!s2nNwcsMH*I3D2EAG4@r#IYDg9flL*C$Rl0j zw!dm4J|>{a+<$iJIJ;DNj2Aa+yvR!A@ozL(+?Xgf=vJNne3y6XaEpVPIrMQ(`3tDF z3cz8IQ+wnL9&xM>o!~$4>g($ZkYOx|j*M)AST&TV+sL#wc16!3Q@7=3r9!TjKnOTn zE9@2<2J`iu7T-sMOZW&a(kcKK=ntsR#E~>#t*56)-{rCS>1L(H@q(Eph|6&7z>Q*> zCRpN;1GOY#B9Rq3v`ciFCr)-XGq}qNr0EoVO30CBu=r^uWh297;pu5A*fTfTh-Baj5Vn;7fzWp7*X$1OQNrx2ipS zg=pR&*UxvvHiE~~x$ZClpbi{hTQF|0KA9ATD~0n(bK}Mt+KKa=a8Q7(ia=ZjKLiB@ z-9uNBtUnSX)Dvj#wg($6coY=fP?8{mJ#ZK)sj1;{aWHQBv~j%kS@2B%Ser;f0zp9m z8*l)Ck~ReUM~fe;g6X0K>@wxwGcqM)WsTq&DzY4V-Pfmtct=ajiJ_WIg?bKL*3STF zp@vH=+JPx@I~J{g$R5c@twzZdJ{jW~|kWXO<8Q&(X)|%Zx(Cw~C04#Ih z<)R_FNWMe<+Ch@{^of1v|9KfD&!Or0yIcvVxy9fy2h>;ix(YL@lPbAfM3$ON?+;VCNVp?I zoW+>ENN?slisLGeX(%k^4Y!C>yNUcTeA)ZinBaa_w{*|76OqDQSKX|_^HD4O)0>Zf zZuZ9oTjEML)r6!WDCaZtpGpo3{XZam?wwR%DH%~jXxZ13-BDB`56+p>dNa2tr=$i( zP_GdD*%)5GzF^O;Fr4xgVbt4a_mZ>b+rp_=uK)ca^_e#G%4s$=CCs>I6=;4~hxo%B z!O!2J<6K4EeM#t*E2VpDeTmlOvggwqd5lW#ZX>iN#GcCvyQ;+Z&QNlkB01AGpwV`z zzD=Pu#~c+VZ`!i!kg!rrJ9u{&`%S>PgMbh8RaH8RQkF_}1?yu$Lt z2I9gq!g~U7rLv`+=cD9`ElRc%2hV*gZye3u&AtwY0;B5>#KF2N6d6_fT{Ke8I5@=9 z$Z(zGiS)g_oPr6$5RG^0 z)ZAef^Q|Pd3v-GlT&ipDBzvwkpIi}@ueflfrUefXJq2;JoRgpG%~P_Nkyc{z4!%-S zC0Zk{OG<;=u=o}p3uoHW8tl{2o8N58Fw=V1MjsW4WVdC5N$hyP_V^tzEI(Gq;@~h3 zfPQ9n-r=`lGsU}g{=pu5|8%yZvXn?(`b9xzpW;Xio1|9_sh_`g(oj+AEphCP6i3Lb z)Lc7rO=7}w`0>LJt`=1t1)GB3%@YLUuG%QIav~%#uu4EoY=GGi0hTO4CUpt?)Bvz6 zNjuB02Zi{W5)$Ki{mf|@JjlLr#I@_xTjtOWlN_WMFxTvQA;cR2g9_?N8(o?bueOp> z6L2%K;6?-PVrb2s(|oXQbFQ6dyHD}wuS74eQ;2sGsIw0MvYR&$Dh**TownxXOIJhm znLKK`tE;tpYHU;f*lsbtAzc!nwq>1L-Z3~j*gM$H^%$GsxNwD02ayxj#uFfL+5p$J z0j&w>b9aW|`)lR4k%F}SRw+n&%8QOr=^)NTqKm5=M`PRNr9Y*H9sZ&Ck)(~7SV7^a zu33N&S;#8vqN37U$Y+O=LLUGbl7^A81>pG>#9v(C_oEEapFmbdGV{RTVYq$wNw_BS z1PBB$?Uh@FF(gn>vIr~rOAS6QD#?3dU(CXdwL7pGgS*)Va5TOv9#qNhxjr(17$zOh%wq z>_1%t80Fwp1^WSJV5F!g|3YsQZgvAD1k^DfVamLAd+5OV zzs~GnDP4eyzPkO=b?|$?7dCHkQOQ!P2fD2p+OQDO4+tO{$kGG@_r%0{06yLS z3DPX0*P#RDCyv;MVSDI(>|rz0V4o_NO924_<{B=wl4}VebKtGb6f9MJ@SqL~Ut-u2 zgvC@`)Bv6eRHb;EHac+n0+!q#E4iK?|M%id<(3BL=H`&98>pNv__g-D6u7u|ey)x= zV6K5e$~9((7p-A)KDT;@1c7J(9Q2@-iqvT~ta4>7&Z=e#gfo4hdZaEtB7cKT6da;3l!Sc=#gce(<%C*PysVv_W@xyF*QFR+f3`Kx#_LZ*2*n*(-#S zM?*im4q;_kS*GVr+X)$U7zwRyK(g99FV~CgM;VbLDCtoasrZL6Qat2`K_Ke9VY@1nI}VTRXC{l zPoo!*-vrNkC*s`(UIps7$E_V5rza65fZl8&X|7x7m>&p)GP*VXgI#*r2VfDTB7 z4}oKLZZ0e)#xa?q+U~&#Mqfn5JAY5t0203ncBqoS*8R{qr{%9 zuxX1-xpEQ`lYkGWeF(LZL0p1b{Om=dI{20g!aydKgA*6&l>p$5kS}m=tk5z5t(>iZ z*nrc%0bCOZi=dVCj{&v7zg~wv>blj5=nC7(V2u!^9q4-K9qUq*6KIBmiU=|YO$CB4#%8`0Mzt_4K4!liE^^xK zX!pcf@%!v>i={OuXL*$;R^bPL(B+=A2b3AZX@NX>dJaN`;NaFk#3)d6fln$cD??vZ zRp`vfSbM4YhvZ7p9vpbTzP%cKwwI|W#Pe&I@`R=G@uU{??IGI^+j;|N*1ALX3xV|Sh!p+`&zj&DN$By)0xrD)@$PqVsi={~gIkZp-JAP7rTeYB`{u531eaXxEYA)7;T*yW`7NDrur3G3eVu$ulc zYa)1%@7H-F%Da5&s61>{=Ix%VKI^UN>#<*Ng|*h@jL=`I&r*(aTB&sXN*EcA6Eykl z*HfbYDHf8Jg9D;?I)=@2VyAbX>K)#1u{u=6Y79viZ{HmZ&__#FuKrMMrrN{Y_*V|d zOXqHC>b9jrAMauuU3t2e%OF(BS{bBT)0yTGIH;-hb2g*1LoK$Y-(uQST__-{flY8k zP5Mx0`}E@(-u~mgK>cZ^{w6xj$1xz$-bvLr7C4xdGbHVQ3pW4=IsJ-w0 z^UYZJCD9ZPEF0yx3WAm{3$49jpI9IMe6~;u&gh;DEqt!DukZAy<>E9M)fDTzIL@Fn z9PC_0!J1v|zi~W%x-KZ<@?wmdFWLpJ&p-Xta?BK?J**h#L)*FXIctMtL=CC$i9c~# zs7VIOuV%-ZI4baE7%jy0k^A?Re*NKtv@OmJJdfPz6QV&b3TY`g7MYfYG zHQcsZar*OjSR;E2`)?@%iK^LsbyvQJy?)@kN32d%<9MCq ztg$96m~`)b*QIV2TmSX*OjT(KKc#dx!`!$Wm$lo7qpS(3fyf==Ti;hlLsQ01VtqR1 zJ=9H0u5d<_om4=MBLyCDvQ#5wt~uR=%+7~j@=;zzWS1VRh8FL=*VvT3G8XQoF~}CO zD&uapwn5;e@tG~8Ui?+4J0Is8!3z^=-TO^!DcYH5Z;vqb!bBf3_FZ}D)%vzo;g0CN8XbZ>uL9caLCoxzcdurg z_IZ8_?e>sSxb)Y(LtLWs&tFm+JR6uH?UI}y-!EU|!{eTx+uz#zTqqI*&20UmMI);J6oCGJnzZN zoHxY3KYheM-T^vmpiqn-(h9C}@t$W*+OFPnjps)@@2k z%}=^1#4Xh#_*(gSZdyIrpk~I?JVLU&GC@Z!yh2vXjV~p%pAP#gh5c=t4O^Nlye*qb z(MrEHTyz*K9Z+(4dgar;WVvg^_RMSh5jnn3bT;|Bt96(y7OPgX>@SU&h;hmNkQ&mYunT~*f5RUCe7w8=6_%cxn%oYv}-?{&x$bXIMg$B(&t zzHq0K^z1Q5@I=em&kL>?$$lCM|6WP5;pCjA@lD%+*xlR?1}$4vo&k+dEAENx>l`*z zX+~Uon=N$4L2EAZQ@K_zFzQ~Qq>`_hsT8;k`lU>*>ZO!!ICEO44r;-XlX?^7r$UAT9hVO{-n~1B`H?FpmDGpWm7DLkBy;S5%nM@6ccek-zVbNYri^UbEqjP!AgF6*kZFr_0V# zcHh|RGwfEZ*_!HYH|hPDtX!r# zijQoMxdN$MYBtr{_Av0|RTm0@MOd3}pFWu5iu=HTDK*(%xL5VG2*)@-@N7+DkmYL2 zWU8vxJGpxq|4ilZQ}U0-IG|hoD19D3Oo40T>#dtZf-a}FqG`f z#PZ}>&xJ;9k^UWCXJeab`$ls$EV!yfkE>;?F3nx>Q4x0iP3EiWkLbmB+%JC7loH{~ zRTJxsxsTo8$4`+%Fs#56rzv6Zel@af0erwm8!$0O9Cu9cw6;xt0)JP1HOAul6Vl*Z z!Pd}C^OWI&O!ut#1)P)k6c(pGhPl#HqthHPM#`Kew{WxNc9sY&Ay*icklb^U@l z0+NTHJab6J1&#ONqu+{e`fgaC)^JT4)u_r~72cQpchR28l3}i3N)A>;HSu4U!3Z^0 z^8MW2wT^jdrbSh8NN``2b78DIs9c2UdqBI<+FR|ypADtKXV-mWtIt>dupHtncqS$v zW(c#tm?xwzS2nO;7IaVQ+{cqFCYUC;ET%Moc5#W!cBt6cp<`-*kI9v=xwSdMKl59R z6;HRkV^H^i`Fv(X`k;CFECInYxpTp9E7%;>tR89D^fvV6?m70_@7zq)YiDTqHX|pY zrccF(t)o`@@qN9qE(r!#_QK4eICqrWQT#^%B95BU)Y-qo1(XUa@P-MO-}TO~n%&J-Y9^Cl%W2^W)Al>Q z&&9!nLoL_^9$N|ug{f?|5(crB!pG3m<%d=NB!caknrKT~tH7uFL;v_qtNU?S`KKR9 zsF+dtVq45}s53!laLUHs;|p?@##0TQq|86kOzkk`Ax7pZ{6B+_VOoGvCEUi4Y}jjzd!o485nj~VBo3=GYnc}J zzLar!^HJ#ak5^|oUJLtBMh1XSUjqBbvLJc_Xw4;x%ax0v^%r= zFd~&TrP=51Wi<|6y8W^1?`_ueE`9&0x4ipISv~XQg@X6)*Y>!DlQ_9XLe^U z%o-6y)x5O7d=;nXEgivH9Pa&rdUWpHVIzBHw`YgJdW)l#Tmro8HRdvcCyyy^`Nnry z6T-`4ez>ylX>1BuLay{zeSK}Ec2PjA`E%;xT`i5I)}58}c4SZ8Ed=!Os}sLl?_uSN zUB4EbS@({uQn54hGEN;Pv-e%bb5$p^(InRa@#MBc4G%y7yvtMuZ$%jU$tid;fX?a@}n#Nzxxii)%jg z#g4$--Nl#;B$Us;#bOiC&E+QJL$K#N_4s*~VhfW{?pu8!Q8mUdM=#x;U}$T`R});( zywP-lGF6@ZnsDN+ePYZEVz0}f3t2Y!pQBN356*&tM%;*+I+Hs zIIZ_PX>8UVow;(p4azw+KKg9+*by58FVuQhiCk3dx**y$ z_7F?CUMyWzt;Wt$^u~|FlZV|rRSwwxVjkbc?U@{=N<9aCiFHOA>l<(KxbnwQ)qT@W z`e@<&WoF8EaZ)RjDadlh7-w_OsAQF=qrTc7U$?2&UH|Q{Mir3;?U3v^=BSkB z>`)|~(HW>tCCRyW?|Vjaa`II+OR}Y+hz#BmHy(AlUzewsyuX|i9ZKW2;SMVl{1UYM z=Hy-0mKK$(9J+-==P=Dwdf)p=kVS@tSvP)EF>z3AfB%xIAcSIGLWNUQR4nKSmTt9q z5Dgpe>XU8UlPc(5$}dyrKd&V48!Z5>J8#IG{c)-+A8vXDyb0qfr@+^l7eRl<1R|$y zK>FWTa7oy`_s#iPIB| z-a7o)l^(A*zI3I5>??(b&#}`?!GhtHGBsE3IFI=D7890r9g*AJqo&Ox?}`-H%5!h? zOwm#mCZCS*eWrD(Q#xQ{p&>g^BX8aWiz1=5QA_Ra2o9d2`o7|XhI7Nx1ovRV^lW_L z>33-J#n>q_d4%td6T24U^#U}Rc)xDV`*0pTS1Is*aF0He&qROrnyrzhYa4m<;@+YS6fqv7?Kj(W>(%|q2imFcG3t~ z%F>y0?Jw$$CR`B|n48VM=j##_HNiU=8Q*TTTCi^8EA0N{%GL;a?COk%jCD`PL~D2@ zdh8gdr_qs^EB_^acVCKJdrUpcN?}+ZwMd;>L90l=e~w1FtaWK@48Fyg``(o|jv0i$ z@y4l2Yvscv)oOauwM^SH)CTwk$s&{q-($ZG)pg`a2nh-(+b?__)WHMjcu?TaEL1z@ zTbnwM{yxERsiu2sPvz)`xz7CR1HA6i%>^CjYw1oxX9MJqw2H7fzPzs~t&CfJBWC1& zWm&Y8#p=b_lvGvrp`j=k_=G@TSe!ze_>$iKjVekDg53{X9S!240L_ zw&VltPOIB4dYhhW1%XU_uQb)B$Nd^+b?cVTFIBwIve)8qqCkx&p2h6u`Vz~3zx#DB z(@Udh>BedW9gOw+UI~usXuawf4~G{oMv6A%p<=%@S%m|ONUX0!pLNRircb=Dp7_x{k?7Ks9{DEpsqv_q)wqtk&K&Hv z-4>}myanxofoSMAn4XUNYcTvX-Lk(9HR=+_RoTV;&_1ee)yw!@cGCzZ(T*sI+`Wf> zMI>~z*48woF~W+begk`)cn)WYoTh|nn>sKejM|8+%yM)g8H|i<&p5d3RW0z1VoF`tgp226Th+0_ z?HS=KPR&eNT4z@=4_J+edK(%>j|~d9?8vXjMb%m+`Dw(~&ne_){F#6?`ucB}{hF03 zg&W383;NFQkYB>PlJXS>(jeAk80qr6gM~D`+11q*W^|rDeOiYz4th!dHr$$)eT6+vgfAOCw&r5;HOR;C1pwu=FkbVaaT8)rkrVqf{Qx z4d}d7kFM9Lo0y=WJskQcbU#ffu?l;X{^7&9z-9#)J4L2n{D_W`F>8_SBm%p$`PeHk z@Fd8}_(##-Cc4O-&;@4cKVO`^`Olm~DysiR3K)nAex4BLXgqXwXE?*&u;x}+HD77L zVqnTug&~f1A(4jh1oPpF=-V8c{|q+1HT~++%4WA~{aa&<-ZUw3Ui-!RNn-U}5!$Fa zzQTn<*AeNLLv%1#G4FdY=(^&X*%LNr?Wo^l?N=*>)z^?i}`e5sQpr*xA@Pt z`1y@e1#xH!zaO$^oAKXs4Vz9z)fqHgzI;bX+W0JV7IxDG9QT>7l^6|Y-5 zTs}B9*T0YRd6VPWPnjICUmXZe`4n8{`_Bg|eSeUafIhNU*JV(k^9Ci}CO_?vZ8$&U z?PRa0;FDl(NWD58Xi(P^HI(Gqm6qh*l~%hH^fQ>Y(zEBK{P&9^UyT=g7o6->tOE*9 zKC^XO!S`ee^K;V6_!mD0PXw_wC;3N0a}c;0w)`B(zMF zoBry=&*#kIRssLs!t{fPKQMul&xJ79=t&Zj-Qr*vlfW;QgFQpS?DXi?)P)wdDh~?h z_}ZNAN#ln1k=$p;lF39Cq-XA2c<>}9yD}V=w-R4JNOyH8db#d0?kPIop<>5V z-BuD62B$C7Pfb1d6~`H`J00_6P=S`k2Zx;e;^L>}5$-s;IOghAk{HJ4+GWx2z1V35 zVk1xCT_H_rvNGCvzPEf!hDdU-B-YJ0LXsI3cm{JB=d#`zaZFCe=g)oh=_MAvB^FD^ z7H_*s#5Rn(ZIH@Hrqvl-8&nW>-W25Qig~ub!d)0eC)Z&xQ}Zr`5Z)k*na5N2D0Mr} z^AzL4((uP+x^{^&Nn5_h3zAuCtReQwvDUXvlDG|7e*(u!PSfx!S@}E$a)oe3&r_UP z<08EE{M;^Nw$3kJdgzdgB#w7X$&5&l@`il4FmP6=HU3twiNlvCGvmkM)_eBmSbQa# zg-&|b{GVL#@~|x$g|-vK zFE~x>o)xzbE}#^DoKvad4IyFxi$rt+6DhyvjU?H3W3iWl$O>Y1BL$YF6Yojmb9C24 z8!EoaXP_ficScjAG8u889UE*<71*F2p-ge&N<0`-`o%%#mXRXU&1R^~|7r0|jMuxx zoj&$dte^(W*)`Wh3?rA@3++61=;555I$vL)Q>UfO(6Zo?etG4N=h0Hu#brRy6gT`; zQT7)Hn|A5nLF|?)Plbvq?V7n=sLp>vEiS*_!>KgVvSYmAgFhL-6LE-YH|j8Itcfgm zH+&((T9bFJCyz1ZD)z^i!NN4p*>`lGx9+2TA+Cwx@^%`*ig33MJF_>qHC5pAtLmM} zRYN@s8?;4ZQsK+z&o82i$hf^?wmzkl{v=S@eT*Zrh2tleKl9<%;~Ih#@KWDxDvORK z)^7;Qd*&3l5P>7$X^p2%(-7HF(i|8o#PFiT>QV|C&gI*Y*0nAHIFAL5Yt%Xq_HL_P z-4dK>+ndU}K|0AY7IV1i{aoj|Zm-QNxmeMrSE`F?qd7fL3cDY#F&cVFjg4{mPvfmjLYy-2(RM-V!SzJtiz=M%H^u zEPc-mZ>v=@lS%zR(O_8w(&?gaagiUf=2fy}7T3vdxV8oJ`Y3bi%nJu!gswcy={}5lD@`Tv@{xmldLI?wt?Nb z5QuL7YrBthxUGQb5{smwQm$LT#u)bVSLhe=b*%bT97-E){1gMwx)FZv>6@Rp5F3a2k)wgdD9hB(>0@ZRUBFW0JMJg@3-eQK&xl?fsv+`RSf7 z-5JzW$N8m`b-EdU{Xi3UHswl6-#aH}w>5wNji#d#em&_8w+UBrit6AeR#*L%&62lL zNBnTvkM(%OX9%};(KGX6l9MR|{MA)h@(LRJ=u>-)8V=Z)t>4tXOt~Z-n}4a-GrePx zP*md1sZ8j;jJ0W@59La&h&B3(iML9B$meMN#KBs}VXEv;B5lpi!dfAJe2sck;k76M z{sSF0TvBqGv>H68y|Lhq#XbEIb#Hg(t@-6^c4p*3XE3lZPK)2e)6HLz67>c8no ztDQT4HcKFu)A)1(6=MwPBIE(qhfKMRB)$H!osCis4l)kHPflB4NEgsEzIW3R9B zhn>NrpynNYzVd{BV}lNd^p4$#J^KgqJbaFD0*2I{Qj62|+)ubM^Pc_0lnepBX8umC~K$U{G~=_LJ`D|5H^34H?xgi`mo@7*x!-z7VEkYg z#qq86sa8-UPT(LOD6PQ|RdMm*t7tBsgBE>PSAGW7oD^_b zB3-mGokp)1A2vuaS2sbIy8F;!M0hx2-I5bJWQUF!E@(V}gMng!X#q%|2#n--!ke(W zyBoQGF*Y_fh=d~m>2m`ssP*QoB={ObdKYK?Zzet&aGWX!@0wbL9o@5M&sNv-3VvQr z&-{lDQ-a~V+%z(;o4}pOW4}xUy~jw)t}6e;oK09#k{mR6A=BB13Jm))RYPI4N}}tg zr29soHVbSo>QS*-GYraw32eu*6E$vV;1ec?;pg_D&^&$?F`)SaT8Z>I~Xwcpzlczn!J&jugF*fFhUx`>lqMdBAA3VImMjFTvbPI z_Ku9i!4m)c8C4xEq4{2xFFguSf6g!LlGgVcOwnKS5$!YVQTvh z6d{~sxP{m{EEo$K4yIsm%0{qxWRMIiN7d^jLt`Cm!E3~K4qm~^&|;WS08Qq|&ITct{R-Kv>bD0wGbMGQ>Jham%LFn&5R68{Aj znKKzZlQ#6u!l0m9)2~^?vS|^$X>xd^q|(sY1E&=kkxUef40KuF+G>RNmlUvAK+j(l z1WIIpL%lZ!@^S*`%WrNCyAI|~7zmu!Ktf*;-P(D#cIL7HPj(vDR14TQ;oG z?LK3cH=$4I^XJd6nSQ65*#I!leuT+44r52gwgWkuvG9l^({|vut1%+oPgW)-(O{v3 zXB=7_FG4s5=OQ>iy~Zq!!JrK7mzTZkg<-G+q>#Ga-mL;wNLG$8&O4URfe8lg&`?r( zBK?`T*Ts}FUSuHa$5zIUA#X;P)+-6VXn1SLZ@xs_jFp0d0-i23G_;t``IF20{t~hu zoIq&S&0JKtmx9&S+Db|Lf2e!wpe(yKUKB*ZAe3$t6j2cA4iiPnmImqWZX`uQL{dVe zM7pIxx=UKRyFo(O*Yef(`_7!%|D4%-&fd&0ca}7f1LJrhkV*mVlF2s)AD(a!|0S(R7 z+$TwEF!^qAsvt6$#~x^x|NRn=9=j%1Kj$r-p*KtUi*r4`yPF=7KH3wvqj<;YKal91 zJO8tZM4*5wWKSTogtVNNP4EYJ6xEl;OF_1-bO8+OL z$4C-~d|V<0EPaMc?ae`r!5m!gFu>f}3K@kyl{aNrFc7fbPXvn;tge~>3X$F<9IprHn9D!av!V<(y@TWI^1=yQtKo(#$#btJg+iNZ;Oz8= zM+F?ykWzVcbo6vaLu;!R?9?b<3alw$Ta|z#eiz&*fH40hu`$C4ayp)sO@o9047S$b zFj@nD?)UuLV4nkLuvwS;U9hasSR1cF#Tan8OPaIbj2mBCYJpIv7YXdQZ{LD|gQPX692xttv9+icJGszQR2g(99ECqKE$)6w~` zS~RMrcZ`--)UC1to&Ru6;V70(cvTGM&t}uj6!4yeBX|twol1>I%9b@%H@oInoM48L6$ z97RC*3m@>SDFf(-d7x?m4a_QJQ$;{v!p!o-l%o;S#lxLkZfl=1Ljg)X87eZc0i)~{ zbbUe1U9>oZP6y~I#r!CdD;%pmc5>Js)?c7}O^{LS%>$7>FKI2A=1Z62Nr^Lsh22i+ z?rL=35yvJf{pA}b{IR(E%u1?S5wBkLwyMly&bE%pJFL6hk6zHg<*b8n0cMgPBqStR zj{8KK^PcL}? z04nx15QwaTz5iJnnie?VL4a@!c_qTRg;WWs(Et@(q;!&CCM=|Y-+={?m30FY31E~% z&%|_+DQb@&5^`R-xxo+2M0=rp`mwSEm3%mtE@8ot6;+JG`Y9Es-Gt&qh&2N_dJG$g zB%oZEgPIvxBFL56ZE3a*78t8I9qo^x5&(I^U_e#<6YTj=>5s9xw)Q)1M@T3VL}F-} ze7gJQD)$f{s4if^m_yyQfkGJ2SjBqS76V zhcl)*f_ou*qcvJs0;+$o{VN%l-QQV3NkUK`6}IX3WnL)X>(1~F2uOn39s{aqFmA&6 zm}|cXDil@l+k;95a=2(kb|;BI%Hxa@1wQ67v$3+`yC5TzHj#Z_)boLfALiHMWeAP3 zwX^GlXZG}n7toKOpdp7)2sqvt;iFfnvSoq*#*=_f8lGNg)W0gS;$ovMXq2q{r$;eE zCYT8=4wrsFky)Gb-EW$kB|#AWLrI$qT6zaZN3cJmf-)*BjC>~xWu!qVN(Y`uvT*d& z!T&J^wN^FMoc$08haP3PDaS^Cu1zerw~m=)!Yw!i?}DPFd~pBSK*~dqsrf*O^hy%!!<&*J|O0pfeuI!DU6GMjP-XWwhgcsIF`I%$3Lc~Hf%@^Mdt zXS;H-Iq`{_z!BHab!Y3L+J|jwJ=B6V8PuZwJse!V@7Wk$5}UV2x43u7IXpT}-YjWI zSk06}CRHND7W)3}`_Lv&YOEowmg)#06WE5PBK_FsPE1aSAGKqM?cS6~iV9eFj>M-T zwV`Ug;c_d)!8+n~VfVg&_g(0~mZe$#^k2)itf6N1M~@IFX<@-4;~#JuTR8Nk!N&nb z(i8vQ4V(O|R-Ic!_l=vQ#z&SHa>}F-HqW#Ht?-iN@BNhD>t8`o$8Cu5) zBcr3Mv5#lf#JTrPSiNKK9GaJssE|{h8|)f1NH@IR*^>^Kz%iJbzUgO4lsiJur*JF|K!;^NfX zDBZ(a4 zwbLs-c&wpsphgM|39;&~z<*Gc2b*b@W)msIb~FhmK|>8d1xKYah^eKMa+;sk&ue7K z);Bc7#!oh0S@vjO{#Im;t~PvF2WTGAdS@|TywwM|VFN-fpotF`CA%f)0w*qtvP+bX zYJ{tP!^kMzK2_yloD2*!&Orl-cCWYL;SHc@CI_PoFy{rZKDhq|%7+14!yu4DFLQ#F zl{~Ja9xm7Qlm-KyPKzC-wqZmkkitGc?*#Q=kVnBKiU%2ILC`BqzcKmJ|zSGO`Q&@<+YpQ?fEOuhAeaJxTDHi9iUtM!fLLZD%*g`fOcADhu z@%Mdx>5S`M>>0#35gIA`u%eQFR%5-w0OLXAVw2Y+WmO)#V|ua0v~Un1D<+W0ssTbq zf^9`61hyey9K&hQ#|8zDN(Y4WS>GpwBNkRX%3J~mU3Ea7U{64M3h04;#X`_=kE>DMlNggc=CTL1{!OYN<}!4bCE zmr$64`W&5DJDct9?#B-f4pz6fwE&g_CnrK$+E#E&G3BE^j)McR(S6uf!8ob{a5Z>T zppySVqYY5W3|P8ogMJtRlIX?M>+p9t;i(0X`5Wk-;n$o3X)81iP#i+RTt_kz1I7G0 zgw7sIh_WPm16VPbW5vN1iO@n2n7`+zrKD_x^Xe`nFb&ZJks-VnN%N5z7ufKQt*o>G ziuvdV+c1Fvl&;4C@7yiuss$E054Lt+Ev0cdg$SB?$|KtQ29A)QY5x9QE3 zdL*(Ee^?=yOq+WOU(=pJD?eK!8}JvVG9fCms!Y8R20FYlCC^wZDHE%Rxg^6BbifAdk)JD94QA$t6~cDNC@} z`eRoEJ+4oU+64iD2)K4?1;3L@0SK;EWjhN`A9#?hZf;%#2W&V6-UbHV1hNb|OyKrn zut1NF(uPqaEtq#f#{++J>_HO7b@^OxsIyl=%uSlo{QykJ!rPWn@+)+4DBcS`(>Xx7 z0F`9MT>``OO7I{CkPQ-pgf;yk9WWd=3<&LlNSgIb`7})d#yVdLWG2;LXnq+=@N4FV zupzIMY~Vxd=p#ssi-$J_m*~U;tV($B!Ly7K4ll0`or_#t--UwY}j(GKr zjh|pSlx+1VEL$F%+GGEk&a)=_59Zm(c5r#l(~o9UJGMO5Wr_bpq$R~?<5OeCfu!<} zzj?+7`Ci2z8x&;Wy3(LM&_O&+rdV{&`Xs4gGfbMi5cc+JN{COOCM zpUxna`!C~GvlhcqS9CfqNYCga=OXrc>|!(?uZvBVj(?)x@1&Ag72NA zROqFGlm9OK`hso6LoF^M{q>9OSdld~4qz45m_uQ}a;#qcmYKk`iL>24`6UNz@#uDgG` z6-kcaVP$3xHP0l(@w>gVWFiik-)v=#T8G=jyQWn3=ih+GTbJwQqxnx75$xYb+ zDvm!)GuU+%Isd+8Kym(yV*9@W&ij{2_&>wV08c67<&!hf;PJCn~x%?fS6UJj}2e@t=?Wr+vlX`)7DnXryjE+wKb0VQ1Vu zf*pMnRe&HDl)4Dz9D|6+VbPGx9V6Or6Vzp6{Od<4-NiV(S?|BI3h>~#?%^c6+`hBA+b&X%KOKSe;-sMpcZi@*>n3{5?DF>^6 zSf8Wd{8?37i|y>}3^2&h=RO=qDqpXbwGx!yTlEu)C3EIje?Q@!I}!ga zDrotSsNh_n)_>1QIR9I_5dL>C0H5psq+b&s0)e6Mpw`1l4;MI4;oaY7?_BJsPp{yC z@r4qY08M8__7^#Un~-il0)0T!UQb!{L}%<>9tHYg{{j^K$M3k1RBtAghut2ga9l-L`kXV z$jR$b9xpP_g~koaNdkzNAcp=}9WV=+u@C)t4xY29Lp?k^{Na4`3y~xMkKEXI-X9z} zNkCw{DhyEDI#^$?IfKh}sL%>9e(Cx6$VEj(!6~*DurV2UNc_yfr|D%`Idl=(IXU{x zeNAm`NuNF)gI1xWw6vv3-ObHSF5e)$FbZb#nJ{gpwHd`k?+O87V3tV_Smn32wgB)H zLXidXIme;PdkOy)`PyUXb^pdx(0Bsixl_2flK{6(@0>n!=G5uaYGAenfG9%OP;8G0 zj9st;lJAqWn@PPo_`y9$MM#EHSX2D0S4xFM;CY^G4r!t^Cf1LVy~KL9_7^8X9nwhGp>p+9}}NxbK$09G+dL{X9lw zR1~7RcRz>s0Z$7K#`EWvN31*$=>lL_I3ToWQ-$~j3|O_O3xN4n1w5Csd3q%2>FH?N z$Ei{b<+y;=qPK^~-6+EtK2sE5$_e8n*jQVj)k295;B7r#4u*B`F)zS+g;y9K8$+c$ zV#??a=3lF!c8&-NKo8%Gcb3k7vB97X#a(K=@8nGJ^76py!+IfXf#C|mjHK^6 z!z1V1n$#WF%=HyDbcF~T{HsKgm6-<>`RNe1#lette$)PU0kWRxF9 zfI%z|S4XK1u39LY3Z8{tyTjqRt|Ume_TtaP>N4Mh zK~)=Ir7m7xbZFAoiVcDgglcxGvR!;d(0aALUkj5Zb1b=GfT!M8fcXfD=P6OymvV$o0) zJbjd2!1MFO^;-5OLb8Iy^r`31?>r9)RJ;A8_qVHnnZAUC1Otq5;yS#eqG$jEw#1g~ z?jIcNEnLiHeI_C1ygNm+Q6drg^su)*fb?jR;TB^=R02Lt7>DL* z=<%)ncCKE%s&|d|*RPGm^k9gx${XH^cHEXjI1D(0J%fPk7AoVCmrfaFQ<-?Ch4!#~ z68J9?>-v6R%1s%+KT@&wGw*Qe{&p6xY#H}!rNGOpPPH;Q-Vq;q{J&nwBtm6Vpn@VC z96;#-r`qC5*P*;^Fgx5Bbt5nX4@0a`tJf+$UtXn3oOs!73BHJEt}I55oj6qjJha5z zTw;BF{fgWL1315$e+>={Cn9dh z=q9%z4I2AqL0#xRZ`~Y2z+$s za)LTb&bQ$XycI86b>A2EU#2HCV{BsTXPVzx6ANe(|kSX{wK93^&BBDHBG9AoVg~vc+7IV7S&5=^1b3& zy3Euh_VFz?oV+X8MZzvKXkE@^z8Vov*VWL-oLKS$d%yMYxR-Bb+Pc%bIEL3g()2^J zxIEkBKd?D2*)UC)lC2Z=XR~zV9w(*3WmU!n9PQ(vv32m?p?Rv1-ucypv)J-9FKadg z@9%^)f6+epGGtG2dBn+|SDi*`Ca=6ROQ(M3dsrI{Q`2~L`hAhtQqzheedLO(CaiH6 zoG)K#k{%7Jm+=;Fpf7Je?e<2nl^BaBZ@yI^>rK6kx_E0n4iy%wGS(?vYHx*wBKfj! z`p!QpH)Ng(tAE2@8GRnQj38y;k4~K3ypU-{?3% ziKzKZT);y)+$~K44Zyt!=%&GxpN$Ueuc-koM_tx&Z0vQ|cGm#);{=Cg0|Uu&sv#gX zpm7?jQjy8nw-eyZ&I-n9gR}b!Fdjk9{wN^^W~9{}9Vo#KzyLoWet;!5AjM$es1F50 zOXVc^BD%V{VSz2X7NDKKLlV{&%daBz6DFQ0Vh?Hw#8Ct5K&ytSEczGo1m^}Yzx$A^ z6ZU0u_=X8#Eh`^x=3ZxHSUc`j_52;(K{;Hp1d81&r!F4Kis29tIN+wm*5B8AOn9## zow04+*>)hwuMj7t=Q&@|{^(2NQ#BM9qrES!`#G>2S<_-JVfr-Oe{k_qlS^?ZopM?% z6Z32LYNlby;|2nwV`F!DQ|LQ`2w(d-xT$?OnxZKGB9hHdn*T0M{I137YGrv6$*w5l zS*k5YIomU`LOp5Qjy;0spUdXW`GzXU7_c<4CtiGO!xzcxv$Q*MWhnDlBZvPvnh&p@ z;SiKK;O6FEr6;(zD1}x3x*(JYvRb9!#|L=1tRS+Z(=%v)qI^eA-@3#>=p$29d^|b* z3#t^qhLzko&rr^Tu!uW);dIf{`JLi>S>ys=Cx#F8YCm0wd7>_|!}94x#`*O+wZ$m= z&fYj~&E2{9i&_trwU4?r=q8qe6~vnhV%@yRXt$peYhDW6R2SjCUChxL_aaAN{T?IE z@Q1%#0F&j{BN$lZL44M?UDjXt za0XKi9l;?j3s&q<-hBG{l^ixkyU^i$NP+=+L6+shbA&TPD`?-potB!4c(q^z7_lo0 zwE&v+*a96PoY$BZXdWp22q5qVhgO)EAzOV|m369YY{tVS%%_*2jP8SpIpWnpT?Rll zWL;dwCZKJG)Ogt(Ej(Z*OhSVjNbC_kkslw5*PEFyqNqrZ8m@ z7rR`NrNNvPQ_D7>f4+R`tp9N#o*}N{Gv}EjNSf%yeWlO0%@lZT7vnj4CZ%lczrDwF zri$pbcr&A_YTna0DVbwQ0coiT-tO%l?w9hlDmW!56u39|1S3eUi@l=`x)B|d9Pr8g zK7Ejn2`$a7`t~pV%2=ifS-$mg_V;aODI8b@7ruPKrb`rh;^_6r+3K1?tE)TtyQZRN zXPPROVpS9Ozx!4+N{bOvd_N;xeo$&s*qEiWI`iG7O?XB2VzCoTZM!w;n?#!kZEVs@ z?%8ZCS!Itf8~G?m?y8ju3nyLsLV7GD@ZgZJhdRwlZQiGfyPK0Y5^Z{jdU>|x_oH#C_xAmmvb~*-*kh74ekRXrB@OSv5PR3FnDSR zAWNR!ERbuV7XDJ80{0d&3?DDpY+0eG4fFcvO0fI-^;%h3A&L=%`+esd26C&w{%3T2 zL+KMO(StF%vJwE4)F{JT;AQpfB8CRAthTn9AIFeNDczW$c>PO*3>L4(%)Y`&rP8;T zUS>@WT4+grl+h#)d?5MioPf=!Arr&(>usAJRJ5!&>^MY~^$g?GWgHY;Qt8Aq7Jg;Z z`}j0w&i}x>cV3kFh|n*ucBl!jzA8*5t!sPPVi{wqmPL|zw&^~9$Q^dppSFEZo<1{= zz7#b?6Dt%IFYuNM+Pb0Odb(X6d!)~ZjubkLpNy1$|PLs_`$BG4V*H&v=2z@E! zwpi&b*XCZkI=mx%+)|evL|9)zOJK~K-Y?5FZ~n=@tp&L!WAG$J=1=P~d^(P{MLdaW9$ z@W*|w_hzT77j2FpBk1h_e~h~iohiGq_j_*0otx5pnqGR1eye`}4({( z*p}-hq*t!48?Z6O_(1O1RG9XgDVj4gel+5vi!E*ewqrfDKG~`2ckW(Nwz_@H{HR>8 z<4byTLuV9D5RkDIc3R(8&`{mPflcZxD>0LcO1gYP4teR-QnL;$NKPD&UPZb za8c9f=N6aAPm^PpJL^W(Vs04N@ne^lS)@1(koeYgJ4h$yC$ANLQ0(vd;YTHGZ-?z) z*Y>dZJXKxOHL21FeW_Fzp5cIVvrhyga&k>e3|5)`+}Yk9s6C%`4SQXgAd)2{mH6Jn zVDnVCD|E)yLjsXWsJ?#hn!aQ_HrqDUwQ!jo|d?ALbQ+ z!=rJQCfLL=T6=mnKt-FaRxE3xKH$CJ{+M<&vDK8isiEj)<{!T#CsuVQ*|VuE)6O`S z;;IUXX;|!C67}Mt6|u-?xjc1)_%hXFYul{CQco2H3JvXqcWe7c6euZ z%}M_60@EA%!MTK?WijL7A0%RM5Ut5H5K`XsL_3zPRA)qSDLkcU{V z6JF!}qxyprV;!!av9b*09(e{RP&KZ1URe*T?ZRXg+6)sFe|e8T)9!*eE$!F5tXJ7W z*^kp!3Bre0mEQcpk0&F3V!2!0prSiQ=fik~BSa|%zeeBpOzzs)+}-Uv_m;-)KPF@s z4RJ$Vly#BPO^l9O?bB_z&J(jMI^OjG*au5W3Nq3_0-7z*sGLo zGcFG^2`XHFS{tRf23bP~>`{{7I|ku6So*>eX|d{S`#c$2Gv8@rlE_}t(bPmU1W&kJ z;@LJdvD&F^nj$pJ-_~gSboNKwCvWNdW7PpQ?-k_Lx@vFCL@R$Cd>W0w4Wd2$RBg9A10*0WF?VOa_5q^+B~i7%QarE zN-~jg=<4{-HdBxa2rnoaK)a(m{}@Jc?;&*uPTzEiLEc}SOGd()8u41Lr8vS=`Rt$n z83KUef(9`HTEroTZTQfliznvKmPPM;U!L~Q$yC5{Er292B^KJ0zh4Ds|7)iC|1ZK{ zPuB;)B%j6X!_thq@wR{YpY-cER?r#(Zn)t1>)yMls1_i2w2ih1w-kX5jgHkcG z3JS`n9ewT(u9Tb_lA?h#) zF2r!GyPsWqbM4BNLfT6`kGYG}Q&VwWAPOzVWb78=IRch-69%+4aBmPdRw*3=LrOwEkeO zE-1f_1JnhHu;eblKN%e#zXc>+$Ox?i@l=GbU;S46zYh&BB+}BM!7&7^LOww@5S2n$ zmE>1;;h|P6u?YmeCQuy_(;2O)<>h7gN6G~P5Uu_bv|%ma^nVw?uvtJMFaQJ;f?Qi5 z{9(G-uat&@>|z5DUpA0@-nxAo&6t3VHJwkH^S%H)@d41?fKdWU(WY<#e!D+tZr=q5 zYvS|oZ!LHg7u%;T90C5{0ifB&0<8Mh7}0>Fq|4AD_|csVWc=5sYZ6-k6j@_qV;C@x zT!V0SrS$_yfJ1cn4Sm3fVP@hQ9NcZ0yfPExoX$?vGBgwgXs{XZ>#!21(%|}!1F4rI z=E?KtVju*-K+Fy>xi1<&bpAPp1D-p!(D1_I#gMGLbOZhYnlk`L65cJ4><&BtyYC6p z-LVe|2|=q4I4NggCIQi+TwT&er~jQk8oh-OL|F7-*8^|!94V<7$i}YQq9OLpn>XP{ z&=c)b7T3zlM>wUGhe&7+f|?X&H<&143}P`L3$Xj3EH956jf{Q*#$YhtucG3{;f(X47Yt9rZ(~LqTNLRF8Ui4SC+<4(^72Z@h)BUz)^m8~VFg$z zQYCEVI~PVMDJo{>=3WE|({nnYcXN!m!IT~DBY^uZ06$@<>gzW_-#A}V4qDb682pp6 z$X1|m>qqd;jQ!|aDqDEFSP$RNE!<*{KluK=`=7(3eye>;Iy28zc}Pmd8H1FR6lqg{ z+?oxa9{Yq|@X=MgvCAu2FwBGBQ%HwCw%SUdE9cNRW`4 z8ZxwrK^lPAmat7AIv~n1D?eC20}2ygDqegS*kjHT5`IH6CwOhpkz&EO+wQJ8+?t-A z5LhJH5VGv_YwHEj=$M$8P&6biH6L0OAQz*8_!>2*> zq%&Z>Cfy65m6ew_0~s-F_&mUBuZYB(K_iMQ26sd!l`DsTFk97VqLb@;fh0&0h zv@$2uX?ZZXv8AO(hpR{4(^fb*G*rcGSH}{G%3*@bqEc2eY!1H#=7toPr6bY%BFDuB zmKd7xW2iW8k)U81kea<*pKQoeenAGjK@{K%6Bd2y7yvL=2R#WvhM*0UPZ-v|)YpFl z+yj^c7405?J}c97LJU2)#l?caM*!Y7aPwbbcPlC@w*u9-uh{xJC`fT|aFEg_NJgXq zsoP;7z-PbB0!spMTi~IM1~l^6Dp1O^4F`GPfm~Z%MRCw5LJ@-rgKr?_rDEPc$Bf6ICARl9it1pGCD70Q~$8~C!c>$DV{5wrl&7>`$3z* zr)$9C*6(6|G9vh+a&)(KT>f2cSQexBje!zJAcAtjpeeshY~7yE7%l0!^ozm>b$ozcRNPp7X=^7 z+vK)1)n0M+CuG)Dk&2u?H>>J6>=hm`WC-1sl%(|V(52>oXQiZ9yvAy_S8vK8aYo$d zHK#`~`x|mT9WHe;n$*iB|JbV(3ZPOB_V~%kNyTkw(0MyycmO*=Z&P$J(y_oPqWFez z0aeAo{)M8=-P04q1jj01KwN0ERx4=_kuU#6vgmaBmpri@k$c%J4@eO%RB^DCbZL-2 zFJ(<&yX+Sqr+bk`So*=Nz58aqe&aD?-%jSzOx~^|5u63`lVOXt*O>KgU0aLFicE@< zR^!#cjly`4q2~QhL&_Ql1QHOqJbC!=#>0naVK7l$Ss6RLQEa&Y(*0AQ^+6$&7=Yih zIqq4Y=xtB|8Hw=n^M}I~Rw@{fi4v%R>kVfiX-J3^*(LN`N=6Cf)n z5M+oe!1(JLN7piM*&6~BBX7#3N26YROv8-ri=OS|-BxP3s>OhY;=*^ zL5sHO*m!=cmfk4ahAbW~u9ogrTU>U2SlXK~0lo9T_BXZr+-GFXCnfWy(!|E|Me5vN z{&N2CvXIg9*m?66>|54G>PtO8Be-MmH4S1!fPCULs?@z~t(&>)gyr@kGiku<;aRfE z&i=&yNSFl29%Y_NeO+AN?|mvUEBfq9CuP-2?Y8hT(PO;ref$BxpCPl2?EkLQzc;mh zO*uXG__5P|%LOnHL5dhi;*75?1o0?OjLM@&l~C!`LFa+WVc^{X7dNa;N?Mu`$Uh+K z9fc|yn2dT`Q9(gfP)?)3R}7E{!O;tU1*{-msNz!#mf`GOgS1olnFLUp>jLO-M&YEj zvA5rVLZ!=L84lJ~sJWXnV1y5RqiIl{e$Fw(!SRykga$$%CrpbS4v7$8wxHk05Fm6* zQBl!v0cFc_nomnEmmfKS6QT`RxAd1e3Ss~q5?=d5XdMuh3ednpNE&!0>Yxnc9uNdh z2(sIN+8)mR_b`ed$qe^eud{9fU6(v%jK`r4-vnR&)0WLdcf2w9dAn2fia=yVMI{vn&BI#GZn4NA_|HeE4)(RZm21^4ZFRJePo-k=>D9OhM4$9c%ynB@87Vm>AHKYos8+=Ea zvS)ZrvZI~#rHy2(8{Nb;LI%d?^*(Ceq)fQBFuT=!ZkyV7#zN~t-+-Eu{7I{P6Lt^0 z%F0yXF!ys<()k|oG$Re;qrqXcA6`5dSev+*Fcnt!h3#5&seTNjjg+D$(~BF;K9_BH zHqVQPd#Ik_PYTH1*i|Kc=C4v2m?uPM_r8n2htJZo#w9TFu^=mdM(02emxy#aU%&hZ zeWgNP+9$lhG4`t)i(mG7_{!dt)=A~?8yXtMX1))xx;EFBay=bGm%W+_lhthfr}zWR z%Oe;+u0Q+7O7Q@(l2EUOeZm@Q#&{4uI>1P3S{?KdxU@oHKs$i)gWv|#qcd$WbzNP# z9P_}37>93^9f!2cK0c?x$l=yaSKV>MwE=${hKm>7LEOit+4!FFR|sr#*2{`W-v?eS zEp-aHIye7muOOBzwlzW~lCKhmT|m_!K*4m-BZ5xz4HUn?u@e|wTx>2s+`7K83w>mK ze0-Q&I+DCWg5K%~RI*$CFKulLcNbvj#ZD(9Esc$WB&Q)ItO|x*+A)qj4kI9@Mw*h& z&c~1|b_t0c3=9l@!en@1@iM4*;dvZB_)!LJcaC27)iS8XD~SC;IvnZ@l2|D2B0-*= z4GQUD7$4i|lj-^@u;#uQVGDc|=gDr;F5ANxd`#MxeCSO`{MmC(@2RQDOAL7T8LV@z zTX0Fgf0wIo+(PjPpTWlR$mx@HYh@K>y-;glBhjK~D!qW6sNl$8^K?rF$G21U{Nl}X z5tf?~L=A_tJ2pirbC$hHBMbs|bQybt$2=m1B919uWIZq(KU1k|!BlL0FWY%1<>%n7 zv5u4ektaCX-pZZs+si(0AUMddLsaURty`!qOpSdVS!*o%E7pYhcaM;_6zOz1Ze?S0 z1gy(N1!OXhN+!-F8!Oe7w%QLe^n(g{-6bS+)`Dx{Q{3yr1M^{uuE19e#zdw?#6==4 z(~iacrOubn*vZ{)y=nE!DCbO;nz#nxnuAtLQ z&idW8aC!dIg+m}M_trZqevsC@d;k9U4LLcA80SNN7>>n5Wc@USKI%@Pr-8o*yQOc? z0iJ|r4j7p=BO@`eRXut12v(RVfrFIj@Sjivff$>x->-tT!v^pNM`vcd zKrdFRuEH%1)bhIC-cW!xI)Ijrh}{^86dsplqBXj|JcC!_fPSntfUXU?jqCl1_iqo; zx8?3j=}J!8v+|sDBIcxt$(jj1Yr55=#5tfgeiE=7*L8`PWTMt}`xbp2 z%pb|}>n8Y14e6`Y4=C7;1iJ1Osn}sFaO=oCd&eGOlNhjq^3zP=Rvo z-ozCX(c2D;qh~8dC6pL{pY_hN+O3fnz@7|4P*4y!Ygu+}TkGrepiKbTy$AGt@4z;| z1Q_0I5P^!cvZzY~6i5OLaaz*it@c*nc_Mrb_^Aj*gUHdlfDG_~^%v}$5GM&)t1fnfI~yCoEUP~# z0(@~R8b~z?i{R=ZI36wH7y&`Gz?|xu-Twkis&AnD#0}Hh{sl{mJNnvBs1np(zC^@e zctl?O2sruURczGC`0bMUvNxBbPfl6P>5h;4j_TqhJX1K!*REfEUkI<8HG3<5x%`4` zSGJk0?iCl)>&!2fr!10*4rOH2GoM_*x!r5FNvIGgukgYcLtef&ijjZUUo+EwYX^7J z3`2gKQDZ~v$B5GhZ?`%)m_vRtu(LR=Sc+L4C^7VKwXZCv;M3Hls^?sIwVHO0T3n#9 zRkMyiny}X1Tv+!$tyPwuQ$&iWI+j59*V=}zhcazF)Al;6p68Z>P7N+r=NA-YE$9&9 z+>V*459BY|Y5lsFaphX-Q7QANh}v5|1covzyU+2Z6wjMh3i;RrpGc!10AqG7OWfSEy zApQovFp@-r__MmP@k^k!&0N|3=A0WKOF+!yhFt|t-m&?4pz<9D2Q%bgbF>?Clw5Gl z-X5fTGtt;PaE43428Kb#s`zz2>SbD58n9@&j;s-RuB|#n+BHh?Ou>(JS(lLIiIWsd zr{Tacyk_5e4BNU$0FziPce&;(1t-|fVRJJ2Y5fRukznQJZc3H^GVq3dLX1PhTeNgx zvd$*CG_W{piwctcRFk@*TPGUV+MR1TJ2_|6IO3aNK`E5HUY5vi zw8W~%`coXkO6+2z^jGW&%qT0mX{-f5R@_fsIIER9 z&{`HHGlBV@(XngeHB&F_;BeJm^cAfv|XBvrqQM@)LOMc$CO)|fJ>l#p97CWnm5VYWnfzjf!uBHB|^ z7M(oNx=Pg*SFL_kubD535 z;Lz(E>JTtm8v+kk`FNT-S(%jQXhC$29aki@jcS5ljAo% ztIy1v%*5rZwXyt`GN=9BbAPqb!Tk5rlVKsrdjSj|87fXD68MkymxeDoTJhl+rd_$l za>8IOh6mqzv^l-s7q6|lp~1y6xr6xXfK_#JdO%kxS#T5!cYX7FZJiKp89|C4q2)C zo)v-v+AdI6k%|huk9g?l!0QfZ?_k5{iD=k~4-LT15{+n*M1Q?Th~~H(fyhT_@9)t$ z=HC2;!etS@iDVzBNr!$Xci0>@TnU)HfJC2UfuAr>v z|LRw&9XnC~qQAs|rA$dmu!@xQm0Jox9nWkhEr_31RczL1{iKx^9*vVxX1H!g(h>T0M-yf_jsDYDUUyDbREz(tn# z{0w$u@)UPM_X95t6;59h4nLRg z&+jH|lI?NJz;vGb)rk)(+KNkN3mRl>{+0L`JvP1+X-fYDRv0}3(jSmbKUTWZgxxBJ z0m=qT@l_D(*L?f-3NCj>ttUdIgbsgBlmK@gm45JVhHYnPKxp1ID)Q^#0NpI)_hTD6 zP=r|NB_%>o5FB^;!@q+bd=!R?mjD((y4d0!V}h;iot-+syP*$n|KxEc#0Ct6u0Y8N z+M>|Z1vs7o7WiEI0#>ry@?5Ln3M%tJbg{9R)3y$);iaLWl75b#CqNLY(AI;A=^BX7 z*+6H3#MvD-dHREQBw4Of7G;(ux5%ENBIU9qF{>i)ClQJaUTfE{6!})Gs5{>;8TtCW z&A9w{+Aq0$dy?CfMe6@Fi(!gMBd5&G&DkmadJV-Bxr{;jQ3>{n(Dm_HUNH*-m^=Yo zt9lcb6fA60>-}E-AdwvP=ES+czf(># zrC?r5O!^jgC(=82C~wCqC77GiW$W$~5c61G=rnjAJU~@t)iALa)T0S2LbNRRcvqzny%013%B3dJ{MOEvY40PEmI${%b zt|_xc$#$gwyKGBJGE!hP3HG{au#p%hLnj0SxG5`*IR0}&{*?L{HSc)@b9nAlLa?)w50?KXs7!%H22eDzlYP7+JBFD`8;Ir!i9+flVyi1J*_(& zvkiqp{rd$ur)8GZyAlIlO9o&P%5?2zZRFj}2T~+<$TPsPLiZGX<6D zlDsgC!N;8hhH6z_?2!W2u7d($dp0Fs0-hAhl^m)+<}~A1!7dmY6I&^l9&32it>1EK zd1$M|p2?r?x~%yqWXWU2}`|0wgl z8SM7RMuVNG=Ue1b)5)K|Fi4`+c08pVs6!i_AEXt=?K7|_ubnjVFij%rQB7dATVM3m+Mnq)tFLkfkWUl!e)vG-b=Y_6Ldik)|Fa=8BeZBtNZRi6toX!(qC#BFEm~#-)y_TTtJuY)MYg8BowekGh~v}S~~e|Gkeo9HF8%Z z$*II;i^k}u2uILmui}^X%eS?pf1M3Y7?gY1&pTtqxsyy_s(c_~ZvVpgQm}PQgv5`J zymCk05}H*M2B#=1NimpJNSBl)N9#05q0y;wZJE-hAHn~y-&Y!1w>!2o{3NO>V`$J&WSZjPb*7Es47xcT<67$w zgLvjYO2Bueu+Xl|&ztKyEa%>n1(q`zGWg$i^B+GJ9j*@1WHxoOK2bG@IkTO0u%f`U z>HMxxMxZL0K(1Vqf=ZyI=2cm_gh3;R_v@yQRVrj`Nh^l$r{pIL&UmovpOTAt5OBpD za+G)INVIKdj*bdF3)KaPn%q6F%)Jepd+p2ZmeR%3e)a2z4xZ{2PaA>fe);hVkEr$@ ztv>C{dH2h}qzzkCCD#79QeA#*etdq8ipQ_3{m*{Lyj*xSVx>lvd&|t~-AM_N+Yyp_ zT9jYC`c~+$c26~*b-vNOU@9G;`E_N%PG!eY$(mzDvDY!H1#fH{!*xKwtiZTR8;7$~ zV&!AhyZO_nQ`xBX5)y3Be25#gafqYB3M#A6(i3DM4u1Azne9{_woV_lYm(ktzq$nv zPdhF1Co_HSLNQ<0uXuIwekUZfFiG+>C;i&^a+6r-nqAMvI-M!=(ql4{_5NTLA}Fc& zn#SEu%3QFFIe8(^B+w!NcC%4~xb6pX&>5TVQnY2XaZU zi($(r4|U%9UhLZFXWOUtD|baF{FAl+|6uQ}yW;5HZBZ-`f=h5oaDuxu5uzhjWq7J^S-}*&mQ~SamM`sr~arh7)4iCuUhh~XU=C% zB{GY<(NpMRWcXKmr$yzE3)auk9b48yGt1QI)c~K4yDylVW`-;0a!i)>JL?p4A{;?D z7<&o1Hpa9M-enc1Nh+z2mpkNQY;YHANfj?AvKPy5LpwW72}3&0GmC|>x%)aoM~cLb z54T(>{O8moyOv^>9r0-oO?=JiaX9fVigDjD9Jo6EESNTby+Zk;wl!)8D3JOob%USo z5F5?L-g&)DjS1g+PEAhM!cp;LRs3ndXpHa$Fx_R(K7yV%0t~y2iHjUpdB2!DxN-79 zXLkU1t9>K%$o_|~S8TEwrN4vJZQX;I(YjKAh^KblYj@^2!;XxwupEHU*w-2Tcb&c) z(C3vL%VeDnAJds6-P=d^U}eQcfaq$A4ZIhCJZY{Qq#Gl+{mUf?;SY$h49{{ygM#xn zNx4soyt#?TwFJv8VJ3EDtMY79HdKA-=q)7B1DfidKvid4cntHT^QO+coR?B0_rRuy zZcUrG_nBL;pP0O40mpJEU4Sd-*D&@o%u9gImA61KClZ&@5cicI;GMG<>!%w&HoOQS zm>`o(g#K3I(ix*5 zZ-jI0+S2`IK}Rnq$98|BkMIUPp~-`gm9uy_TSebV$aHCh@uNnG9~f}YMv1D=Zr_m@zv)6xpk70(T^BCG z;-a_fvByBrwP{HhVF_;hNh<+Iq0}&?wt&iqhIGftv_(_8L4j~I7)DqALNOHTTKrtw!%m1 zANkgu(SRX*hgj;;J@R^scVw}HJ)cdODj1Z5xF6Qhs^Ir-X|`(qmFBFs_2&BlTddo- zAgjEpwupdL(ffnr_6tk!9&PFaGb*mg{y7pQ8c67q(TD>|%~kNBogiu?Fn_t4%%rvfi8V(ToJa62e# z9Tz27OL|?ZP^UII2#Cg%B3^X303+Er)f{_k?+HLx-*D*`?y^pcjP&D{@4d5G^+}YB z?O7lmvRIHDF!p!A#AeK}2E9TR?jh^TeZ83e_^jDLzzI&2@I-5beO}M?CFgp$Ju#{0 zK1{IAP=xq8ZKF=jW#t((0r;pKsogh(fYmqA(z!uRK^2TKx_fv0`TC-PO{mJzG>m?~ zx6mRM0PZLW{;7F^hlOXaDq0T4mR$e*ufAasguHXD#$uP%w)f{=~XImoJzKgqi=)j%Tm7hKA=geqA2h9DCdYupZB9%o4J+QEquj} zk_ahn3ny36II>}09YR?2voI@K41kSZ=KJGn>ljpe!+Ll2@nLwU&>ezz>gk1#xY8jM zSz4E;moG5E1MggBcfMm8cPuTXA0M2SkPh(#uGkJvD~{}%S^JA_FDQz*Ifa8>s3Fr7 zMIEh>O@82Nx~K4~;_jKlM`hG%!=ScpLY>^L-*H3{z(LHIKNt1~Y%@YpvQv&>*>p#4 zcXyc~Pry7~IyyM=yAv%1NnebW+}lJYNvYG@f&29vnmk{ap+U3n>FPb;E7yJARP2qP z-#Y(5LY(WCNzPUmvLTAOd8~W_FTUvL+b8wM{YSeN*S0e*GIJ^s_t@*9X9!MyNKKFMUYWzjEdPlyX@ljarkW zuk-#>K|*hvulJ9}8036O%gmA0h+TmgkQ=rf=0#|&u>Yo#wqXUU%k;{MYBRlben(=R zJClT-y$+$3tDx?pgQ_;g{M=6QFscf*)S>Cg$F>?M$;RhH6YFfL1@*UbSwzAhd>o>9 zYmMD2zRtyO>-MOVcmAW$t8qetB)s1C&H4igsgczH8qkk1dZN($sxn-LcGdvECRE;hB9H(EtZ zz0S=xTkGp%bEN*2!%bsRT$il{7kRVe-eN3g0~e9N)&TN+JtX{X(qJKPa~4%Uv>k8- zd+V2H#U`bo>r-r=*o+q!{J?8aUbR(1c?fkR@tS7by47}znD5m&=dQj#(Z1jLkkc%!aILXo z#;fs7L`+uyARs*4tY2YJ*kuo;E`8^N^Vy54aS4yyp>TAc?J$4fg=bD}>{cU-QCDp7 z=9QDZcVwX5^4Lmq0^fV|bdJfwwM)AeraNwNu28U$XXH)3?l=y(^tNY(wpkOyq&){h z`-rWiIY(40YD?uDxt%M?U`T@-F+uXC&WOes5YtaknEwy z%1F^b$ubHna%z4`uK$Q`KF`lIfQrrYpfwXUdn`{qyTC;ZHX+wVE|m zi7*dj6m)Mk@f1};eqg|yaJfx+<$#u!bRP9a-`e^1`e=Al-YeM6finchY+X3Y_7UMM z(swY_1&mH>6Fs!Fb0)B|cB4!J;)vx~4Gz~pxHtUW-NQ%NJWZAA;}kK`?_>@KrOjF* z)-H2p&yEK3@ocZcTvXGE+7@m1oY&mIJai$Y#Z=6rpUsrasREOT?C9RlW~rT~&M#&c zN~+Byptso`W0cMWPf&dqA{;WSH$!#Rj3tk>rom~90$|o2F?$G)2Vg3c~NCACH!hhyznC7Xkdon zUR>@+4M{e8Z+{x^t^B=Vg9$Am6Jm|67r$rIx^KS0iH{3&zKWBUUa&0pyfW&G>EkAk z>`c#$E4#G~y_{Gr0RuyZ_LZ2y*z&Tn5@Oa&hshgi(~ubpyccbhjqUl>qLW? zY~fD|Cyl}u>}z#l%#pOQCySSot{eKsCKuB_{i_oF-96@S(a#*nV+S@6hK(uE8?sfP zIZrxo0?|-BUs`R@*dgY|lsPu=mh#bZ-NPQ(gI-I2h(*gd$vECV8;;n{Yz@c(=FQux$#=nfyR?KZ=Ya(f*SD9 ziQVTyBaIx;+bx^Z^lY3~Wb!1B`w1?alXTZ%V2%-vcQVtRjU9(XPCiblXcUuAOSO6V zbZRSM8Ff0Af3y=9a?A^AN|eJ|VWd%c8-4X>qF%RF4+#;LB^il3h2iq@3%cM8MY>^X zjnP#(TmHTRqy(>ap!#@5%9BTLY_B_@2k*QJZWG+l8FBvt z-n~e2G#W87m@r4PS)7tyo-ATu&lDC9SYlk6iRb0+bKq~pGot{v#LyJBEdh+eqyh#6 zoAf9#?W--VmtH|Wb(c82yrx2OL6?EqAFm8eq3Q6ZZ*r8Eu;;s3Lt2i%!`VzJJOyit zCtg7|OG|_$5yqgP$oMTp1)&ZDCRa15)u{!D30GRD z|509^6h{2#s=7?A@4j6wz#%ZNjW*NY-@W0GL5zyov^E)bsopx0u3T75L61u-kRbJ) z^_`L-r2-L2MJBFT*pXsH;&QHp{I!8MZ%8pWM2d-Y@hFp&7g_~%u ziN?|J^tw@jS%IdLVXvMnSg{xgM>8%r^Zll-=~>!`M6k^80p)6HpK1X}<-24!$jgWo zzzs~*PM^ZJDL(44BGjp|T67_S%y>h0wydWAZVsE2(`rz8N$TL2-@L6-YkVW}V7b7& zclZgJBXE1%s@74IDO4auw9Fv$^%#aE2zrPQzRBnJqA9*=EF$Kb5Y-(8g0?hI8`XH> z2TF$y|HTD>;6I(uJUjp8h>T;nma#$f_<4HlW0BEeoF+|5%Y`)8 zgTDONcN6nBrL?pb{PYoBw-CD)-dkfa!&OkyE&+P@x+eJeL~lrHgRG+E;frJI7YXzA z)l+v9NttRK!q!Rg0f5=6r42L?ZZXszO9PnPB@04`5?UtpV2@HIxb2;?JYDwNA=abN zJY(5bs|U+aKp%Eox7hqAgb;CTMbhhl$Am7^)q0GR3zbx?mTmhOdQ6*SzQOo^cjjk8NM#-}R=ACLC+*W84NKsB_C=Gh)s z2hZ1Zyv+CD{J+{z6Q20C;Exz8f9k0RFh&n6w&&1)I#w2NU#z=*h>g#3!XIBA)ZBCY z?cCE!w&-md)u82~rcI#sCmlieB}U|3X=_d#j%$O|172RQ-urq_>5iF~DlPcuHEI{P z*7nw--d`WDDo@$~mN$wkxQs_$VwoNy+HxfUFHaYQrY(^@n%nR7h%u2nlyQ}5=d)&) z&tUFN3prRd6YfJqAl|3W8OHb5I04l0`MRn{pO)Hf$!YPrq|DbGHi(oYi!iQTmb0;Q z4M_Ylnx1Yb{OPqG@AU`#Y)@YS9vy{HQwCC#`fe4f)}#3({35hz?ijly+%Ic0{hIFG zDvUk{Z`!8%c;23dU*@ff4_X?tZ*@M6 z4eA2|M!F6qaR08{iaqI)69P(5)TfAiNnnh>IhO7x4{;%jq3Z!}A8SWhm;JM{19I{5 zikU?>zsP)q9{+++nxe~}HzXeSPJeHjJl(Zc^%c)q6L-EI8h9jklKVk+%N?P~cdTpw zYTOy6umB0tM>AS3@nxhUrXY?qbpgr050h;7RSo@n^+q*J1TDUGSUJ7s%yoGKjecBG zz?Xw##B0%z{PD@V?cyp&nApZ?~Ojk!NPe4@-eJA&s`N%7zb#3gyxK~9e|1b(i8SR4H$fGB4OM5WhZ&7?RbcKR8E~Cywii<#F*{1 z9f#g1T2G*IP?l|4UIM9K_xdZJftj7480Az8I5=i@F&?676t2nW6Rl zsIIFYnxI{N?e5;_Px<|~?akx?jro1%+@S6I$U|awI{4K0AInr`#Ph%P#31V91_1+} zdTdsJXuP?B--B3Dl`Y}<#zB7p%`Ja7`_$_NTgiL_!t6ED1nMmWdHw1`OB|?5cl03m z0qEvTo7-hLTB!|S9bN@>9mdyRm3FQ9f+#Iw<9I|p$;*FrI`7ntDe4YS>LRTR_dVTG zs6EX^d$3D5yk`{vJR8VgtDIYP+iEnPBIeD=Kjkc!-Q+E(LqK0HFfrsfe9@w{+FL83}n%x%V@rfIB9cb)lQb)eAl+d-lv6 z17Ipwz#vML4Dehh(s>X?q7zBJXed~zhBFTjYCj{8U)-wooObgalG5c zJHn8H*C2nVjg1#6#h==VsHgXvSB06s3oh6bRbE+sWUVge8LM@J%Jpn|$I_Nzza@DQ z75TL|Y6RhUvvqR&?BI?3<0%SP^XieA&m_u@DX%DsmM;^n@rmP?XYAJu140(Oc#%(+ zUEboNA-qFgQ`F?aHAJZ>a&!$%!&oo3! z4Ssd)j=AHWnJph2ia#Q{fVs)odK;xgXea{u9glouC;dyu$(&&~*c&r9RtS}(QZolz z%cFyz<#%>l2aRCt>wHyDKHksn5{^K5dS7M04Us}TJvjAWEy>JHP7e-f8hpE+IvlA* zOQY6d+g{;xh5eqP`D37KQxQHv5^)1T*svV4ys>YP35zHsc(~;q%e(I$LbYIA*%ex= zjQDO(Q4A|UVkX&lU*Dkk6Z@fm5k#WYh7>H>*rT?%rMA}G;TsYj{2%*sas1)qS9~=h zO!5|9LhTqOcAMPG4lws{Ye_j`$^{j#RiD+Vt0VD?C<&CSrBQK+nx)9NGseXy%GO4A z4m%|wjX=-VDei&~8TB*8Nt0TOzUYcM3dHagIlyNG`8jR!iYkScCO8H9kw9)v!IS(Qdx3 zsUa2T>Z3a4?pEK#4cS6HwQxO*3~DGVh+9e&@$e99SG8BVoh0gcK4=X{B(@yg-Y|5P&EI0~W56s1y8VLheGCKsO!S5XW0i?5tO?=S6(JP_( z;N|37oqq^bNqA#&7pm>vPcyTE!au7yx9D@5eewr3TuxF?by_jZTa5Knvz*HRBG|#vJdts#NJb}sWvCn?Yq8!ArXik z94t%$-dPB%_L>ds8TN^)i?W_;*Obl1 z;k;T@`CgS7--+1lB*VbnbBlzoQPW_Zq4*>2q#_r>H07K;vm+L+BH{UW^jbkI1+X~# zI!UX=M{^U7e$X3?%BPRKRR}6Efm7&E)A((F zvOi}+jdGuxsiBt@PL6fEX{+SF-9)1St9p4S+K3^~*)K^*%DK<1fI%ip{rhjs%q^dF zo?aeRt#+rawmK(v6RDC@6ZrM-6e5b7TVW#4|Usn=L-!nHMzy<{44 zf5maMG&OzT$@|FDN6n9}x4Rc(rkCrD=#A@FOet-(A9x3Yr3w{Nc-nvgZ{8?5t1Nvj z+ZQcYo2aN{$`xpyHu*TCrzvdoPN=ciBjcN7Y12YR$tn`Vu0vZ&qY6@H#Z81JOq{XD z*_!Aj%>R%we0b{E3U}j+x@YI&Q-K)~6;3 zR{8ppTE(Q+YQy=ZhL&NHScwzhlLr73Zz$#JrwQt}mlCcxlQ1HGsm~M;Ogse<3N@1v zgZSo#ocDo`3^3gKhrBn^okJ-+%*x~a>P9z5dPa&(;q8G7@5(mE>j@RS;LDAG6iIKv z(-a5B5m29$ppy-g>ukR>Q?=%e?L6zloy(Ei8;GGSxCE{Vir=dmiM_L{n>>0;&$0Y~ zE#Gr=scxh@*>CPV>M}k5Ud5bpy@zGw^-gblRV;k^KIN%~_qS1B+Ky59(6PdL_#44* zEvij-vt%@b{Jbu=zsk5kL+^@?Rk#6mt&PaP^zB%3I9J@1Ph$mwWOI(fQOnPm%WP+8#%edocEljq> z|4azu@iA{~ty}JAuOVfhf10DwBV6TX*_6F7WRymaEyvYx5N^_kNF(6K zxoc-V!hV?QJNK!1p;$K=oNqK(rz@}GCRF&Ll?4@r#H9qL*00{0hhVAsv&Pq>KK~zR zsBKVd_FF@~^?McjN>B3`xkxf-PA>7@cTYFe5FcYx%{Wr}X(^@eX%kZpVn#=U?__rm zC0^4!6>L}Q4OyWO6#n_S^`*|ZWby>?DKwSsCWnruq^LDBToj{9K9IM7 zZ&@JIB~Spo+>+Urn1Zvdf2u?8E+C|?Z3jJ-mu#JhCE}a*ox5;E!0k$|*pBYzNSgQs=!#nBLDO$0S*;W`A4+CEDiIx*(w{n37Yz zIOJZE8`}fL6T{vw<6-;@sQ3K?sGE9Q)8n*z5e+Cf{_>TM{jh08@r9~_wY+2)GelfU z?~A6F%Re*x&56NBMF5h53*)B(Cry3QS5K!eCJhO;Uv+tJU}aGbwQ;uTONX*DiRg}e z{j=SZosYF;e(rfq87LMoMX~>4iTr zy1R4~apuBe-e)O%?2|d$CWw))A#9XBzxnDkPGMn+qQtw%?pDYAzmQ;$kxXOZ(u6W+ zxYuANKA#FUpDF_t9oa5Z-d<7n%Yvd`lzq){`_reH-c_z&d_V8)#&57G1^}8Cmc2Vl ztw0Q`{Z2heP{vi978thYic+Uu0ad9^jOH<6kL_`m zsg`FELrR@v$Sox~B7}~1rsL|19vnrx8ATF#=M1T%o}| zHSr=fU21vPRdqEx=hm-zNtsQbzO=N*OGJ{>2{^e+R^+W7l6T)ESzPQ*O>4KBQz&U8 zmEE<;ta8#xiO{8PaV^!i$d#Am@{Qh)V#whLo#6G`cSqo|QJ67~q*h)S9v%J}#qq2w z2{uETyDITle#}$9g`Rs}$(VjQV6FsnmN?*g))}@!+1Z+f#fV9mtbKO=8%z)JiPgo@ zx+;UF4(&2G6lZ_vSF57Wwc`zW{On0^7^$ga7}E6{X{lxGZf|8t5fqefpzzDZ_4eX2 z*}8mfCGFMn@6>%Pva#471m;a5~umr`R(xloA9pn8EiYO&9U_c&hBrPT z%r=#Bys2Id{x?K93V|q75#MRgXkD>feRN-EyU^TsQ+wzX&&F`d3#)R@Amg;384z6< zGwGE|f*z97m6@4M%gPr*2|C*XHkh$8edIoBrKdQBE{J59c&~;iS6pYW#mc^hHDfH+ zLOA+2OPll?z%Vk|lzI5!cd_E7b@2Gir>oz``VoPKm@5XT*j$f<%=%fK6XMGfb2szr zWBKeNMD$cNgBzS%=a}j7et7Y+qz@q<#74F#B4&aaX_R)TW~vUvn=Y1Etmd4iO}$Ur z*nxz&MD)H^{uaM{r7|9E@4^K-7N+;0H<}1F^x&iMlg1#wE}yuiJ=>WHnbsk= zbwMo#v^Bn+!CaJUU$&V#2=SEvJ!8LZ)55ZRDFa-lMhlVpe2lYER#7?!ebog_%D)x` zlVeZcFMED1FE6Y95-3PpOV&L?Tm=(5c;8&PlNv>L7kjHBI&M+UP9!<;Jwe%rOXDK0 z?91++#`)Q4t#$UV@{D%OS^nR!H$`UUq@|{WFYHT1;7n!5{T?u&17^5fOZ* ze-qcZCmJ0cX{wSHAP8*MBKV8|4dfCvZ^O0R?rB`(IS1Yap=dbqZSo*(os2yE72)_7&9w{=6 zl%X{Mm-gir0|cJZ9RJSB~vAoKx(gc*%GsV>#x79~#VNsF{< zZA1Hjs!5%=kte(?jA$7zkeDZdh+3vlh{qp$h1b08_Hv0g+V#|7k;BinH*#z-f`aX2 zULJh;bq(!_0@b-#%IK>lUfz4Oz|d=*bNXj}f0b+*)#Iw&&CEL0*18xXgXhqudRQ*$ zXm6Ux{HYCP4>?_7_^<=|_?PV-8xZ}kJ@M3NFu9gPru8{1qbR7$l_)8GwuF{1@?#-M z6I#;;>y==TWyCHwNpr%zt$CI$mfPtK)^iDp?@d$v#=HIRb9y3!oBOi|OI|>2zh_?t zIEzv*j3a-ccVQP~6YO>ts6`R1P(SO7T7FSF$IaY2e{<@NX7khI!w#rVaG~dN zhdVymfq0QD@OZ_&r0hW4mDG2{&ypD@*g%lj!aVBA^|RET`@>)q#M0FI4tLSe&N-tm zLzOlRs?7Nw@lzNZ0MU#R@3d<&IbV4HyTn$LepD7 z$$S*SUZJIe>P_2yRikv_sTNeHf&+1} z^l7U38F6z>hBb{wwwHbFxW<=Wwmv^->{{_i``kUSle;rl#A{#H7BCF&>~PF79erm2 z<@pUV2>Uqn_Ph{mUSxHu$PL)UB~S$Ab08@oaxH&zC8QZK!nPP>oPzf7sf*>KQ#^ZO z?T<673(9V=kbWW(b}cs5dE&8_=_LKpJ_t6-gcOR0Lw{}Z-g({B0jhpZ&j$dc{mO+O zIc z`HJi3Bh}wz_7+O|C^3vg?K3h3s3vUz=0!h&Uq38+qUg81no(2_OYh|qEUwvvZ<81}y~{utkkF=uM( zgE<_~!8DQrwhS;US4oX8tA9HU(_5vQ;Kd?LL>53#6JeUjImo}skXiaaLC$RZv;*8< zLUOj)f+x#OXgU=Zi@Dy+B`4cybspJLublVWggdrdundJKuUb|uvp+v`{N-6} zwx!v5@!DolO38uLr7xHb&}#0YcZG)PbtBlch|1qAqz<9NP-42=rkVDW%l|jg`26t@ zVTnDHZv}{Ku>TcOvJZ~mkRi6Z6aN(ImoT%NKhnM~%jvjt^hMB-+^X-=LAhP==eTHn zeVRVy_qN8JE!AJH0lkppf?q>Jn`$>8a3;cDZ;O7j@J^M5j0k8p+_v~H0F=hT6=D`UHe;_{CT`2pd z-DZ!5;R}DB0m?3ixt-4l#+8Iz64*+9_uz98J=JS4EZ2K(_QR3agr~(n0U}&t8vbwg ziy-sv9D&zx@}`e_BK>pi@5z;k@xRQ)WMy~A{_h|Ehc?KF1>>&uoggekT$*J5&GNPG z`X8FpX2b9ikPaEC+_Y*S_dgv8aT*Sj9s9Q`>#xGj|KYa(x6%K9x6VIrpw}%!$Y`IT zVSXzb;#kCO*R=W1b{ug^N}!l%$gUN-R(GIQ6FWokjh|R+K+s5FV9+`qdzEezRQE{V zP2BFtH%*)<-+vau{-1FGM{a$W?0M&N^e9l#8SoNOt8Dh?*MV+FNh;uYbu>ZritkoR zJMi$?(bbJkpf+_b?G*Ohx{xT?qkn6-O7)Uzr_iSUKkt1QW1CKw#?JL*jlhh_1R;G- z2yjj85a+6EhFa!z)rK?Ev_>(~TA=M<=v-4JdYCf`U>L7;M`yS4UrV)yno(Tv4+KDH3A>%q#+ zdh}{zmAwZL4_dcrTi`kMk%60dc~w`QfLB07$x%Vn+Vh9qM@?vDTi&1Mm7zJeeG%oW z1ezVn;_}vjPj#`kd{%TcO#JFYf17Sct5bb-f+t8EG<7}>@-A5yS$PNEA-UoO{WYZMXbt9Rb1BLVaD3)br{I8}?;Mr76F;x1osN#}EJDs9!rC%Zp7olYAqa&}G zt;xq+?UASg_Dqj_cdgHvc*e~b| z^GHJ;voP{@&78*NRny`YRygx~){wJS$etVqQ?H##N=$$2?8yuqz79>$(?DV@K(Gka0f zl|pK?GO&X9448YIjJ=_DYf(B4nQGT+-ZV&kW!DFlXqc5{Cz`nV|J5azc1dDS$bC=3 zR&9tb?#qLBxc=%bbVjUwKJ?}428QIdsP;JRM(bVY`{k;1pQ`rc-t0+^ZJl3kFPP&E zMwTVLll4`Pgxe#myH*DXNL;2|D=mgZr0_2cg@=msLO<(d6)3}R@ z>{)nT(cVCaiGk7uC~qr`vE~VpvHrt+3Ga1ts#RSexwtjw zxtlVBteugYuW5>nRy~5m5Zu56wmpY~^ z!aKZExb(#H-H?QvB7|^}sMfc$2ocWpa#PKDYD{=|G|G=c-);~R3Z%X&-Ai)Iw_6&s z)e^O&LG&1SykN8*Mxj;tS{&}HlfeM8`X)^U`bdRJK7CLiRo2GR9en=)Ra zXS7pX?`JukoFs@UHh#Xg-<#!YWNWGQCO4@ow<8_8^r}C2Rr520vSTLq??TTTLG2K- z>ZIMPD$zEMIwJ8HaS4t`1Q1_clRyoWg{5amNb-}su0i5NPFng}{n{~H){nLd(28*s z+#JnOn^Cv!jEdV7fB^f(Vxv$!??J;VSc{2B*Ot6`wdpIR6DtGs+?b=?4Bp10ivH~~ zfI!1bS1Zs~Pp(9Yr_V>7I@g9l`=K)3vc{Np(K@ z(PvrzeNxg2^R5iob6E+hV<0vyS0;?*p9Roi+VT8^61db5S0bchLNL%wT#w)4xBZd~ zbY(&#*m^%$?K1WfD_9*DZ=i-lv9p6CGZio%98%ZTXpu{Fv9-gcKf>F#KpE2$ec^Xj!Z?m0kB4V!#bNqr z3sF&4js=i>$uv|za@EO1J<}a|v1z#?wlLtfY;0{=5GT&nIc^kWsqH)Xtmq}rO#g0J40_7+!l%a6S*6m-%npalLIIBXzRE|KfuYBQ0 z#JsfiHCdP+LJ;XEJUcHZYqeFVw0JR_=ImeTvv|lG^75ehgKo|^iRJROz?{TP-x|pX3Qwos^9nYI<Ow9k&f&jjd#btJ`ZlZ1|CKA{)$J0|plNn2Jw zsZi6F?pY*%KD>FxMq)}Y&yF6GW;no050fi@OEQpfA9U zl$H`gfcS!#mi@ucc}uP{*F0FPOK`N+J3Rt667mclora2_i$=+{r0isc3@kUDq-PO$ zRBPR)!>#-BZ)hujcuy~Fd~{GXRC|LJZ{`BDzzU%zxPXyH~Ks zNJ>-j`2A5FqHgdV_iV|ZaTfN~t{mb6Pje?-nN+{a-|lRuSg<5khun6xuufn`{WEuI zTsMK^-){A7e!08{{qd4UFry6I$IQ2TJ+52tS{iL7`w{Dr$$-$YRRc4N0wjs*T42kPnwnye$ESvhg6RNIn@qD%q{$@@7J%%yV z6#vyGy-Cbj!&?tI+)I#Jc_9JK5`rKjs+z}jNk@+URaWP{8(f$BpB!qt=1nv57n!dd-Pq(~u^WuXtJ^&G z;^V%=biB<*&^>&dWG@wr0-5^D*EeHhV_m)~WmxOKol735IQP#2apXP)$Uo5ZFF*og ziRf#b)Ud0v)IgG+Q$F}wOBa@ot)H7Vi4X*>m}CUw7IDzB25w!@b`C17D>>g`>3Ch( zj{MwIH^RJ+Hl}Th{j{CG8D6}{p++6|;38(4-UCz$PTBrz$lJVz17Ea;Juyq zTKs@T;ww0$qXFZJ&(B5@#>Kv4^t7>+9XWwX434M0rj{pW>*JrL^+s+I z@o_fE`71{8ZE>FoRSVOv)D}n?`Iyo= zbx>Qgn69qI$7bs3T`KH2KaK1#B$1V0(wg{X%5_NHa-ION1WG?yL)nvTF zTH+lLiH;cY7aiZ+aljlOk9#zk-^hkJi{2n(t-cOZ>{AXVPY!q@GkX>Mmj4B7H9~BO z=-N+W{^HT#Oe*6FSbflznN5TtqPIHgE3s>o7%P6}7X!8NZA#NXIx{=+y_Y9ZT~JHh z(S~?~yeI-q66^c9K}TzO7-l|a`2k8}K?FlPPd(wY;BIou40a(?Cmg21G>Cbu+S9y@rLpM$6-4YG!Y?M?-F@-@M{bdqO? zH$9`z~7oL%q?vy(la0-qyu9Y0V%Q6oQx?_jA=oraNRnVWSEbep_FA^ONRDX4H9 zn8%m~PC10qJCWv=-ijz;*J2Zxkudf7rGd?ZxM8$;QGztjf0HAb5$bd*BUqqGdvCva zYO^e@4{Qo-W^LW{Try?JXw^~8sex+~7PItX<53JQ)#hiRg&olj34hGEzC=rx5}-%` zC29aL9SM(3juu*Qu#lUOnnNcE`sQb>4X4k8PAi-dm$z>|w+kibXHQ;Rt9%<- z?z8??ln1qI2dCyM+|J4(+{57HnG+Yy%hD2E#rxVF*tlUfWnYear=DTm==Hov^WSJ( z=X_T)WWK>)5FGF&gc|{<0%tsMlQn$SrYLJD(0%3&L6n`UD>Tm)@>+Ungj=Uc;5`czt60%Y!t$mT_7 zVZ$vbbmRJ5_lHa9X`9yvEB3;+YfUCtmB65Eg&^hJdhNx0x~7JuHT1E!Jh6cVaKbEN@Z|+*O`>q;glnxqeahAhHyK=<@D@IV}f)*`)hwZkPAX9P`GFq14=;D_g;D zo1I#!tF+$4=quz1$4H`~2P-`VWM5~woagrhzIde!!HQt4~@sU&J909u8uDg4b`Luo_%QX@Csh@8c}_$z_|Ks}<%eRY#KtVD7LhnVH7so0r~G9T<(@ z&mmc7%DLWt9aH8YAxHwvU@I<4aT9-SP`P*3q!@I5-UU)JjLRO{-(P5O6S~1=#I1T` zhb!mnDp52D+xm9+`k3#t;on#hB>hCb=+}dV2?*+(@pE@gv=lPT&DD6Q6c0t(8D})L zD6y6zH12eg!7>ka+Y}N!5`gAXcF+#s_gz^rfNkl0K9;cNoiabk&o{I)?=gUm z9EyE+v6=ltYJQ)LK&Vcu_7ASk??~zX!XxA-Yn+uos)|GKPZ>%aEUXndS%dYO999zip#d)< zpfvKTv}?3;w2=WxO<_<^s9EMue`5~DZGndC`<(ce7rUbo4ZyzkFzO{xsz)QEliJH~fjLJUTYR)`w4oT;`xXK-k~^%Y{L#8Pfs z&=;8Xp+9JZ#NXX3HPeVhDX$I0~g5yHlz*Rt3IqvF^wM`Y16$A z4OCdB$_*)*#_y!69(qel(?^heNFqCRl%7I(`=G z9=wDG_2^vR^9anqZ{}Q3o#CZ!}>b zO1KZ^a$ZJj#!mreK=?#`jw&VE4kWggzXc9Vq_NqaQOOW=pD4r&${k!PM_DP4TbjCJ zJ9&leoqJBFbVi0EOCH~Z2ayqyWEEWrnREvnyf|zwflr+|!N*Dh;{CnR9ot$aC%O;U z4R&Zn?@YIEHdFSXyx*e9bh1tvm1*;S+*N9Q2{&n49)y>F3PTt@=P!;U0_*Wzlg&YP z+{0g`Rb@yDqG$-foa-v7)0VQGdac}JlarOva@Enm9N3jVeiPmh0j?j2Lgv=f2;x@R zhOk~NF6h*x@TcU5kG^=X#4e_ur}jb$h`3)wQQw-rQI z>N3$G(+l#gRa?%-zyAt;X3th5rSx+98{^!nz-`MdEWUBiyiT! zA>={B7_;BS;i9EsLL!{oNuA1(=kcOPnkb%!ap)AKEgp8elyHurWQ)E%luvw=r)+%(jNQG;4 zVnapu7qpF3GsWY?eY7I4ZEg1k+iD{#%b28>aXz-PvA96M+Pf`3vfnCURU$;959yMS zDjUCjOiML`G-n%(g$avlbWNt2G0O*1-z_sv%@=o{p5D4Ebw0{Ohtu+&d56&OB=5d? zB{`tntv}Ei4NJ|;D-<5$U2ln-ggmo>(=eF?W)xQ9DktGvwY&6Mk4yF}7=OWoeS|Gc zK7Js{juuRo1~eYMZ#oWQzT8UUHKHO~R%&^66|eDm#7t8i+0z`!=^|k8E(u{N(OM!m z8LPU$p))ucA z)t9cW?rEv1uI}3Vx9dN)Fd3UoxV@O6fj~yTxAk4jc;7oVrqoaVY^AfH$BK-7A1@FJ zC^@Xv%fU?9(zv93ra7W`X0Qz7JE`Tum%m3T(=om&Rr-2?R+u6r3P4rW>4WHt3=xG3@hE1-Zl;n*202()PgOPw{Zp#Asp||9Be!Dp zw4j6=3Yk9SRu3=`M)l$;xAeB;LbS#geAHTqC0F2ptA z;lq>6?~w4`SGYGU%r0ihhd0NT2BTQK??*$rOFf0#DWPi}%fzbUs+A;+CABOm$t7pX zru?Xr54PmhOnV9JA&v*t)&x)1{7l*d+mo_S$>y|&HqI)0;`L;Z2yPc1t1)@|8&=I# zzwnLA=wBg~mijcYr^7)DV^vsi&gRW&C2wH#2;*s7Z7^tt-vnlbjl!QhsSFF zVY{d$rV*qW6iF`!Do;SPFCl#PFjQ413N^p7FuXUI?b#k^I>P{9 zt>wITAHs9($>RQ+t_26w2#ME%u`bcbmw^2oF*$0K1>?;*0GiNu*mM@B!I@PeWnI&Y zE~1jOjmFj+e>KPJ2kuA?5}a1!Foo% z$V>Bl=JHUdz-pA9je?;?qSQFV%-X}a+sm$=G8ufG@q+UzE4Hk!*$N}M1VPAU%-a$? z$f2vqdRR*n@-YYzsQwnGDK_wcn1}KV@YAys;>_%x$X;WQX6G-ERw;9da$#^kq%_#^)d&0ScKfCZ_)_YvuilW?N zvi8RWQ#`S{)EQGKoA%*X`xtr~5ac??Lw|7f?VPFjzHMW~=PfZH9qFL{xcULiD&eV!Nw7>DJyO7(D8m~mA zj%vY?Fw+Gi&VZuH^jdnOr%P0*YuY^q?2pgK|FTV>C-dm zOe6A|rte5LAHtm8k1WnPs4k4J67cqDon=#?;gPv^(_*EF3ZSM9CU-JtyOnuyS;_5> z#{Z2@0h$d^p1{RC_efYt1f3eiIQU`!J=pyq=$C{Ia<62K?v|#7CCEhY0IlX&E<{ePD-F)ay?iTQ@wnOL1W(>8Ks=uOL-PY#Ye5T%l-{0^3~(X8DgS7)sycZf`Xw5 zU^L#_uPp^c;-~WrO{@s6x8Q-2y@Rm&fX7{%i+$>&xWPUyO>1-RKKRg#1|;uFKJ_q~ zMyjTxi+qvP|9oL2*Jt@oj|kd-av`camW>+8$`fZ^QsmmDnKhkV$`sFn-Mu3biHNtm zNtX8>Rlw+0D(dCEZ+6T#Z=8wPVZPRQWhKN8Re>FwEADBQ%`x+`Pi7MtS8U}$#7I6(i%;%Rw0IEF#HBgUbcyU*O&MyIjjZmCC)IH#iAOqf^b z3B}`v36?6yUYWb!=}H)$C$uAR`OPt|9_2qLHr&CQc2w%#Q5t!sJa>M6y0#mo*+j?u zT83`hqoW->*b&x~DQ7*vsC(y1&43!c6|O5tip6kO=N(MXVH?jl&BFe=sF!&z(LC0E zFAxn@;WIXEI;DVhi>c0m9NT{!OI&5Kb(JvV!W=JIM7rz4+ddT4j# z0FZ#4&KDax$U}|fr^MnL7^RHs{~?c9m=SGv=4f*C!=}x(K~-}VRN-*s3UsyH5jL(9 zXs`pejPL#Ip=lexq(JuK727mUIOUvez`?6?a>@aA)$&P-T;mL9jm{sJb80C=57Bh} zqah|)Y-;ECJtxWz8SvZ)dMq>+m&uEq__n$T#z_QE%tV>u%`}AC$Sg;qD59pY6n|zpwf=XtIe+IpP zidTiGHo8n21&h;N6^BQ^LOQYII+ZQzHV4KHaSX}U>%+03hBBT~AR9T9uLx?M%z~B- zOs|4vKFfZ3hYv}+L_afWwn{?xyUFSUj}6ufBFL`;UHVpzc^qPCxApc4Ik7(hmjm47 z^Xp6FL}FE}$LpblG>>r3wLtmmxwy1Jj0Q|PY3)oaC+Z|F$}00lW2~qMSdx>e#V^B5 z+*cZAE8?;iOumbf_V^9gH>=wO`#$0rU!o65{gSThM3k@LL% zYdSGTzufW0jQ-UBH7SF{H!?jOc&FsK$@)ozx1r7(uUQTv(&E8-gtnk2H+;XGq=tfX zBTZ|laGyDgVWXRPTO&?Ow1EX5*s#WH>rmTS8W}hHiILn;uQ74894!({?2gp;KNi3N z4P;u>FKc4+o;;D5vCl{&PJB7h_(bv2-MjIVn+f{q4303^n8URMa*q1)#Pa!e?wi7j z&|*p`=@Tp(I%fznt`x)SxSSH#sSi0G9JW-QS&fMsF+Gi7D3TrB6Yn4=KBUO==Zy65 z#e|6h74vAjs+(i}5u}9bya7o=P5yqaL)1C}DRG{3x3fMFAb(z`r!%B0!JM+S3te`( z-mBQ7BQ^RPbRg9yuYHUL8!S?~__)D|HSyI`_#G1`jLjiOg>Q9X%x-K2F)E+C{i)W! z(+x70u-ySt*pdg`0$ba{!|@Y?WZ7rf(Q0k39`JR>jWN-->DEHLB%u0MhUlH+T&4@r zFeJE3Ds)Grkv@fCh3ah^_fEWH=NXU3X_QLc#BN<(jPXHsy_9zSz9Oq~C}5xFo@8ue zc$f6yvjyt9^v4GtHzUW^63688v)+qEyrsoD*MH`W4V4k``!mz;p}Z1)U%oZfkMP`* z=P@E>%DH4n^t{pYj!Z)He1{9#*Jg6Q&r zkxbSF3@0z3{d?R(#S9GWB=Rlf1EtAC1`$>Da?i3A7dwzxNx^S+5fax zZKXP|@;}EOQhtnR)?efPQ~2kUU;pt8{kbIz@qgV!|6g9AFfE0;=Y0n2lVlu$`K~|7 zw2i@g3tkETJGhdK#K}&sBf!Ed|0Do;+J73wU`PJ=m;WR+|NoUg&HI0~Lfp_1Zt?oB z2CUi?{k%&>nk5Mb+i%)#N38G;(~rPxzUyY{NI0UteNT|)jEOcVeSI+M-cBVVkcWZTStO(6@zSbPSR*) zPCg2MDL#be&hFuqMS_ywBSC2S2>0+K>_gX1!EvbsJDX?pZ>J^>nX@g==vxS%$_t(3 zh*p9x1-cslJ$ubCeKIZ(*_A@kyjLWIL3w)h?e_>-UT#0ppRnCp?`<0}Z_dTDL4P4Umzd2*rkkR zNWDF{Erj|!`b!2p$Eor75rS&v@J`O49$t0ys)4VxfTW@h!;S=7wJWw#(qLccFKgGVl_S8IH24$qe=p6!+VU&Y12b$Q3q5_%3j`MhSS zYF2JK&bMJQiHo^^;M%U+y`G$v1HuH$i*CYIdas`0%hiQ%kxa&wsua6+?5-R zKV00O(uiuEc3(xDIlZ;a8JFvhw>)*q{{VVt`?&jEtidms{5`BGFk(HT5OBNs(7(f* z&=@?2JVb`=;vHL!G7M0fz(!6C}84KIG5yzXm zW6A~jn2_+n&hZxyEA`CS?jyEi_XA9cL+^{%1NDtJ62gro+zm4q@J-z*+ZV9?qpt^k z07%D+zqU>UR?c8SUoG1yX1w4aqj5~#j|g#}wI%OvIeFsfZQTr@`hTijlHtUnV5i66 z*4u&gQxi5q>55#!E2M;TAcY6^2r;G;FZRR2j^6W2wYAZNG$|uzVU(S3gT$QJWSk zK9nVz7li^VdH|1idPtgFfXHCU$=m6oKo+mWJ!1ykR5B)W#TpTgRnnecUG+A+g5AJy&qt4`C$^s6C?nI`{%Q9+`cs8Uu(->; zc!TaDs3yj~itnnim?%>XKEK$vWi22P6k;-_jbrr+g|fuAkwl2qIcx`o^zz-sWiSrK z4v+=~98Y#Utg)y6VI?2C4u%&$`T~tS10{pTNutZYaZU0UyDwrvq3 zxFF`TcG-bevg@l0N*H@z4csUE7)Zz~4J~Tr==prLBa<{q|gH)}Vsn za&;ox{*Q4GJ$%=ZiAK^B`x7eSzoH%o2)L0KW?@p))}&PNGQeH2P9eaC0omB>XRHHe zK}fG)3IHHq9WM-GR;7zj9lvqCjdl>mD|1vefLYG+@LzrEoXlE?X7)`x-@Y}dI$^Xi zAo5O`Y0XtqcyqPWs+$A=m{z`aT!%-|fE z=9kn>>{TQULQcMDJSNz_(EH8O4cd~HDa^j0GqPc|8r%x*y~e+@Z-P(B?$rb)_Wub= zVUgUZEaH9_TjI383I47laguw%) zdke}YZyS>LyCAtCWIb1uB8`&B-d(bxNm)Hd7_`+LS#GV(9Ui^Hpu;Wl+8K0^_3R8a z+1MS#iqQTCU3aRqtlg?g}P6rafCcAzf|4=FB z@`tfu1`L&eKZcEu4jwQ+HIuO9&DfqZR?bV%jE+f3k@-Atc#lB{Ay@v^1C&#T^+)8P zTZZWQW#$2CT40_iil=b(dX`&-7tSYYBGeEl8$Ekyb)Sf|8mtXQ zlk6PMbna@_Jq}B4_7}~+QoCv7Jz(1Te|*as$@c-8FX5|THh!KtSAT_JbZ;{juKybvkT4B zj$ycN&k^58$e(@7Jelz_wqRgvXpEJ04l-1RnD32*M9olKdHIH|BbpK}Wua!LKu23W zw<3n4BU{2jnJu*bPj()?M$i9I%QQ`UfWki9#$R#~?39OVaU`jA$q z{n>L**3_nhiB<=s!NjUtp?QJXp)yJwDxWT~rE?g#?x5CtjhkC(>gG6RHKw;z)N2BI za=W$Jl-{2=c~GFHZHqJ?Ja68ZnLN|apSOP%MKJ2is1IP>_!wzb%|->5!3=>m%HW#)t14$88g7Dsl;f6l+wmEI3#D%Qi*}))BV)wcHD)@k{sZ3t-?6`0EQA2rkcGN3>XXJ4Ouji7S407}Fl@au zA4d~Q=$msS&ugY_9(dXHrz7%X}-5`vhp$gDFaWvwFI9S2W(fqk*{ zMhpTT_V-!e8T}L}+!CK7bs8lm;Rea8Ss^{;GB!n#$=2$UDg>6lPNd8^46o|6MYO7t z8&F8vIYX&GQcO>ZZabcuoOnZ!a;*6zyMmo7e^YGPHp8Ep@LnuR15*;{3ce|T4G}{{ z^Sv}169w0d<yFrNEu1dokNX;Uv{dP(&LW&_HV-qfB$Wb`>k%Jq$sJHx0nJC z^`7!yNLa=qQwV4r>u=gFZB9!#k-BxiV`)5Agd|q|RhI*g2+P1D!dUrVMRq7X;2OGW zws>)M^-)6oFTiE@NMS~f-|WNc%kIi5-<*N>*U^p#CnO)I(toGJ`4lSvmXZA{oT9A+ zbAfNZl?lk9X{8uFX(2g~;i)eHSQlC}Ekf4BZ< z7p(*KK$|i-&mz(~;qXWNqR0sm5fB)w&f#PR8Bw0RZr)si${=O*94@=KN5{NtKOb&Q zt-E=+5e4vkw51q-XP>0+7TVq9LH1>d3jAgo8`=m2_gUbPG+=2g8j@dVhTe3>?r|LSO((z7K3I7+E2Gsp` zhN$L3TK(QPFIcy0L>-}ZTMQ;Agt1iXSRFmgsIxnXH@;0E{u!Z$?=dET_csl5dV!uS zCFv>a0vD$4UJ!m4N_){G9Ad`XBc53xaZ60_{bXLz!MZoiv67kIjc%p-w(#jt#QC(~ zJ3U=?T+YF+AWX2OH=Fcd(*c0Z2VePR7S>tr@w>*@+ffCtce;n7+0zEE_!G)ltzT?y z$Hwf#ywvNHD(r%vxA^}Zk_)jWL)qF*Cscf!r+N+`W=yZDY)x&=1XdzmOssRbdu`%X z!|&Iw)_-TC=@dkm+OgR=X?#jq!<1jPDe~~FjA3EY+r52zQCsEZ@Z6Y8VxQ(>&CbY` zVWu-X^yrKdaly~vWrI%gSY%0Zda}V7=$zHa->uxjm4gxqAV7L~ZftX-?vq&8J(biE zL_n=uT9cB!ap2|&41x*fEM`ucOx#tgH5U-g4u6|oDueXvM@-K88+F!^1@R#xKdpP7)Ed&j}% zpxrhi*?QYj-Tw9nxOlcjBHT1<>zZqV4qM>HH*O=vpxV8BR@^S#V)T<%joX_Qsmp)Ox ze;8U31D5zsd={Y<2}=19R-5rG5Y=|R>^F-I*PDT52=j;?j*UJ3$8AUAiiD8$$akjF zKA65{)K_f}2|wO7WfA?5>w|p%d>`VU|DLv9@ce~B*S&kNS_zn9lqxN=$!gR2NLSgx z)vV{ww66|GXL;`bRu}VO1>tt)lxI9Oz)3$#8U*G$Bz&G7&%D~aUgaN7QQJ0cxB2u4 z1INAxpk&Gtg1PsNi;dWW`}PN6R0(h5;Qf>oJ0?b~&@O1DpJwT@W3?$MW??3`WKY;v zF3e+QseCYSv#(pJ<~sopnUF*j0ehnf;La%(N!fzK#(Afrr2kk`f5_8 zUmi5k?+KQ6IDPzc3>B zZ}_&TCLv45`B7UNKE^^hv~U^c2qec2%-6mI2}7K9@HHW`&VCBlA6XxEdN1@9el3V2 zS!o;R_zgCGN@4P#wpZ(&2*trqD{e?>RSL!@5dmU7247lj;1i#({;e>Lblnm-sK1W!D$e!QvVrfC z^|gG^qx8!$v&q$L)F!2WB1m{}VCX0mK{L!!{~I)6V=t)#1O*fE4E zMeKdqtn-uHrGg%FV_%eyNhD-&bXK@(k4CvMg1pC%C8N$m#xYWIs$e%cL?#q0E0>NX zT4(yMT|TMeIe9aIx`!S?Jn2l+gR`#xiBc>G@O_2Y@tyMdLn#gh3|{Sh*HW*Yf_QnQ zv2z0a7>jgY_o_%{$uxsA+%yIfF-91hF@J#R(%)k^VZyV*$pspts1DRxFKKJ0J#y8Y zb#huX#y-s9Ha_a0=63MA{IvpfU)GfbptBQKml3E4(#5vdzEo3yo(a(ecN?Gm3q zJzTN(#a5WL_vkD#xj8SrZ<`uhI0ditM$64o-zw-fBGRJ}HVtJ`&(fm@QXmhQW*W#Vy z%AVA+w1b)o`l|3ZUKB&3~Pxn;!XjNI+!~7zIQDfE~-P)*@CC$^k zlCGe9^O1LpC9#9O=ZY^Oq2wy^V&!9VPz*r2nK5G3FVYOAau zzbzOeJA3w1s635+$f$?{7aG6X_hWCooBmZj7_Dp?V&HZR!Q@8Z0>^X9o>ChRq1Tl3 z!z~}Ha|T7whxFe5!rXT?w9^Y^zVcL)9B!LuNS~Ne=snsc1guohk{7m*k?gtAx=}iz z&2%BPu4Wm$KXZ4h%aQ#DPeK^PBbu$7e!QBbjH5uc!|E)GyBzUM*kf96cj z+}}d6a%iaJA!* zT)Q#*RRV$*3G=-c{16VQ(1xy-u!gMkHFgx(WfUjo3&@-g)@%by8%43t%-iIcUnNF5 z{Y+Z^xT-?ny{50Z-SrvkqSs}*78fZbj8)D4?eQao%o2}B^A{N@U8=1L2BkQo40jO3 zzaS-YOvJb(=jDf@d9VOb7W`TC%IJ&dfx)7=6-Gk_~FXEp}AC zpP^1GE{yL2qG2c+%Noeyr4i*mcju|H{bFd96eigfI*uSDkGQ^DLgfOf zbgbFhqYc7pNW{bgo7@&x9-W)ifS@$${{R$SCTsl$UElF!>!;5m)G5^)@jQuWSW_=cemwczLbKEX zm9-cz@wMrLn+18tH64i7Q6K5?0(X!hiZ!2aEQ?MK!GAjLU66%?T~Ypo;B6tv$8v+V zIopwjr>&CD+8A(Pahe7k`w@ZF#|Q zE;SXTC_AMHE((+QFNwRpve#5lL=qFS*>V(kDS80NU|ER0D=LCcw7#rc2L6m`85wcV zwS#-oGC!^QsiiDg_@Sj;1yr^w_TvPIW+H1yJBVLz@XGzQA$dCX(WL>6hw1Tn@r>TU zOP@m?jgwK1Wc^oBq)jV5?@Hm%WT5n0rm3HCQ;eqTNikW9PFKS_+&X3Oq?E!xZb}aL zBCj%Zs3WJdCX>8r#Qpf5X#D!3t5PW&xR_82OT2jsba8RvUE@qIXTNC(S%m$d9Kc%m zgMb=e1ZFO&ldQ3VXn=>|7|a|txd*tW-`A?aOG=h}g6s&%`Pxp^Y$YyW8^;G;0=>mHpSSy0qG}FMRXCMA868 zK3MWMrQdsjF3&CP$`LY*p@g8;4}T z1OA7bPfc-oD!i2UF;q*)M0W;RN86=0dCHHm42DaEo3lfor$%M>sJ?*=Bl}G}Di5oB z@qJN^p8xHHCQ(|>1BwL%1oAH_Q6c4@taPF8Nih4dM|;pv?;j5;{Nl6SjSRkI@x0!R z(`FZEf9T7nH-7jY-{xc)TH9Ae)>~Qvj`f=zLioB|ucWr}oz4v&$sgpxNkdb73+)h1 zy~m_4Jx;=hPlW#;sz_fUT+2B$g7ezgE4Qd5Vc`V7#e00-;sj$oK|3QbaraOHxI`IV z9hvCKVDcr#smeEt+mV5sallHqSl#MAo}@HU28>8*s&W^?Add%lE7GFa+U6&+e#{W> zS*I@L#ccNoc7$a)ewgh&N2bxO?MnsOQ{jVU~0205m6p3)(qBu zyUz7$$gQ;4a>OW|RFKHHD{Y@_&GtPgdBeL4OrkQA(4k&eb=MkLGv(t*?ARYUdg*Pq$aui zen1@u!|*<}-w$D*j`|PB2D9)zdKO`8T|_^4W}6YyS#eG{<3gT^D0^rUk7E0bGjJrK zf4Ka_+JP1eZ`YXdNzS^RcJzdAmPz(*Y40NJI0xMqHDlNIWaLKByucjY&v+!NVA zb7sp?@6Q*`7)*r9)Kpu_sVTv^J=Sx#G|nmB zc~x()fo135de-#_4@G`C3iG8P&D!MfyXrbW`gSo#SK39KYhTTC2ZHHB{iW(GmFGJH z@L;fs9%ewZ-d2%z*qGjGCz&ufwb7ADTEaTcUZ*hrX}>|??U-IJ>&VQW2qvC9>v%sa zU3Li9ZS712&PFz#yvxJ$`LH)+G zYfW}Hmy?usLkgQ;ZO}2IAYlr|7@-AT)sG5FK4>g zz4?t;6=uHt5h|^bAqfWfyD*0-nyc0UN7~{XX2>Pg{Fe2T+=@&g_H&1;aIBH?YG+n> zEGBk2bdP`MkK0gmwdJBzZeU(LsqkI(pt_&_^`~?J2&3rY_hyBeLs#SXL*&yyQnc(~ zC*zt?Fd3~JSUHD$D0k^(11i2pigDMr9@_AyS>t|);^h7pLd`4x9}wyjr%l1n)Y_nz zImEi3a-P4??LxxpzDp|wgXzy%%#B`;Zj4eIYObl>Ucz_rR5E0S&AYX;F(R#F$39f> z>}3J=M3U~D(W5bYdl+^I+gC0|_QqRSOhoh7tmUyVnmj~ikz~sU?vny56Ar#f-<|JU z!tly=&lc38`4cdR`rHLrP-_c$sziD3xgj(ULW2(0T`&>zCc=yOAW#$WaOhNNSwF!E zUWfb^&K(wHM0?rs*mgMmRR9HQjxM{Wy6H2*1pS3kU3%iag7w&Hnal`=;Un({SG%?h zYl$e5cJn{XQ%iRQgt%=mP6)9y@+FPhkajpt0#>W#*}MZxj%`hsTBMP6yrcLw#1vkC zR8}0TDmf3kz$6JA7(S$Aj=#RGv<9ZIPx3_XbgEvpidAZD+0?Hby5zUb1ar(OpLk&b zC|VV1Rhni)3!Bs8@bzKob712v$P_pIX%OYVHgy@Cl6hmzvEHE|1x9#DGVE^4^kC+G z&8oA9EMcAjx!$x!;mZ&~2O?Tjr*;yCK`oy3zP;d*2?z*GK2e`*N}hGN{-*SeX)lgg zKyA7IE#G-HpZ++mMTvE#1=-H>N}4GE+B(zlH0!f`-h^j3JSk&pUpwzkM!ucjnL8f# zZO`Jp2a)>8=T+Z2+$`lW+z|3r+VKEQ;+G%=B@W}J0EKe}UdzsnNH7|jimwX7!y*)| z1R~r`qB@E;Dyd=E6^kM`nU2QTZ0O7!2{xL;4(@wgAfjG{-%JS;n99+Q&Xt?gyfX}y zuI$TcFF37y`Rhdk@E|hMkj#09-())X{b#HM8-%mJ8w-8W+m3Kk=d!o&>M};Dyqu(( zBX(Mx=p4<5mZv_fdqd|rEWvZ_sY#%f0*Z~Vsg_2(x^>Vi#$>3qK3W|tCp85Y%dgW$Ab=tWS@9s_C;KLw?R%l;^HAw0 zy{>j0->7TtrU2nzag@w#3Z*^Mf?#v5I@b3Wc9JF-t zKRH1gehsP_p{*QJP;eYTw?$cpE{6dUNiF|g_LL1cK-XE;NK&cwp&Ulm`fOgE9OYrM zYA%-^IxB2cXH7xxw*I`Wy z3<0`Y{bBX7OAGOPK935pU@v>iRUeDxx|vpcg9IUSaX`DQktL-|G1XT$pt{f1I+4tbJI00F|jrG=!ftbA9c_y-#^N?bdGY!&O~*zrE4 zM+IWcfjWGNw~)qulBy#YS8$%c!fc*nZ6du;fBehHi?3XKtqOTwl1yWH&C-JXlL3qP z26?~tnFaAqEOz#C<`}M=BGfz^T_NRev!hh>M&6OB6dO-YijCxYF@VgmB{oxeq`h3U zQa;O4!9*=&{R8OSY4{79mJ+k!u(HZAZg56WEl;%8h}A2gM188vk+|sLN%76j=w>i8 zKMoUML7bUnXD-GMvbjEH4X|gjWQ5>LFXGYxv72%9{4;ShnW2cOPVHcmcT@2M!Ra?J!e~~ zMCB3k`RGP!PIfr_Zsb-v;?7C)2v>Q?tXQ#hR)L)#;Rhoz)?_T$VgvP6)NJbVe|D^QIi z8?Jz(&UuH=#46dPH4!%+0>Zy{snXKP8P7d{LuYRQ)aisj;utQm@$Iv@|3foHRq1SCR>`kX5`wh z3~J=Fl~a3Rs6SleD!RMjHJ`gwc&8ihyb!f|XO%8ZYcxmluN737Um9{rFFegDMRH;- zWFMGE=*OuNE52qCJkSTB^ABw2w>xQk^YoAg6iKLZmVE13@`{sK9y3dLd`j9qQ@K8> z6E}=8!qXc5oscm6CAp)7?&d()SaMd)P58%1aQK6VPu!Z~+)eS|M=N`8}WT-F& zM0B(3El@tcY79Nu0J_V&BizjS1g^3%u-{EZ#J5#Xtw;jhZi}})Hs3HnzD~WlIG{Hv z_~e#5ub?@hMx|sh+_G*%!P;3H*{pV?5KwmHxyvN0;VNo+OvfKg(eB*>vR4#&u`mHT zQi~6ue;{+V(i|DvXXQv$8LvYl$e60%`Zn4s0u`o}Ryy&embGZOKg~OdZn)OX`#jE8 z7I(zhX(S(0C9#BHbh-*vtxTiv6C9N_9aVNmiP!?^tlcPf+RRYFpo{08cKSS>o;Z9n zc0q&o@bxGGmJ-Ql-V2wjTh_B$4(39hMhw>0pGuGWN!l?bS%Q_1!jn~}0E@HlU*%*+ z$BYw3!Sz3vICwq!QOv}_1_uJ1IODTc*4Ni<-9FJZrzPzVtmwRtHn^EUm$lWMe!kw~ zcs#I1-=p-c(6-m~Gq*?m$g0p>^t;kD|Dw~JQ7X>Y3XSSx7PisJIUL_H4lI&WqxTxxn#6-K-$jutGUKbHZ) z`8fywJYmN0Yy7AQc2eFbs!@36xXJe-K#T4--<)4Jjw%2djU3-7nV33vS>C@tIVWov zd(zGIPxRAc&T+r4J`g%ncsX1AsflKMl&6q4YAhpm^FSL>P>-Y9r) zwLSR5S--m0zb&k5VG9;Wex=PpTM+>KtYj1 zNlS>Sx@Ury{ZtcgvTj~z+u=K*(M(EAsK23^@Wcw@nFetM)v@pt@7SGQmfB1j*QLux z+8X;77nRnj@v2RhNSE-qaV^e~MYv*YRm93u6$Xtk=Oc47|8%q%k;_M=K}P~1j-DPq zAcS(lAR>mQ&Tf(@c5}~OHHyr#IiOdzt>!3x0ssKC6#vGncc+?)?c zguLR!`ZvgsLI18xc+;`r{JVaZ`@d}g;mJb3=c_-2&f>$FQ&4QG9iFU}BRQD9dOS<2 z&W;NGJqBDTe*l3%=Q7&26cie3Q_K$csyFy5MippwnQY0N*#A-5$nv8LEU@Lc@S}vT z`+(#yEi{t$O(qYcOGR~dKY8s==R=VKNqr9QS4> z4==b3e`Js9mCID!!dEsf@3gBmsuz@AIbXGrYhN&#QmQfG6pScwkfe@nG^Vu1@5NcU z@O<6eUK`d$B#5RDMTz1@O1dH3m+f+c-R9BZyZ^4Mo8+;VW24{Z0|&uqiTL?>I9+Lt zv0KBLaR-434GVo5NRofc^xjv!l3M*dXFYT zI-L&}yJMA2;O~65{cfH441XjSw~k19h;%uq(m7gGr?fPFRnYnw!zu zDEtyZ7<(F9FLhjYnzXt(O|qEk=b6_PCzMPVX5{qD#V-dOMM?4T;xaM}#WezsO~ejf zXatcoAV)_{ronu(!h|$C!hotrqU-0I-13}RqPnjBn{HFJw6OmaRJYg~*ab4}v+1Zj z=*GlRj2xqXopHRg{#~{>-EqC*P=JjyW8{l{I&Q$c4MFLCWOzxJGD#Z(HhvttPno$h zTFEeA`hZb0QQAc2JKad=%0>TWBMRZ-7$i@dMDR-A%-1225{g#6S#`lGjT9B#s*n-( zFri0~eloRQMpTxD+99LEeb#WMVMw~r$JQ6Ck&pjb#a5HEExfr>TA6l+*hrl+i9R_^ zlv)g6Gb78r^=bB}ZVXeSwU%~uaKN-($H%TNmok~g?5+TY=*0V8Gb)yWcOGdNl_;~X z>(OT%O((5*@aGAqFjwFiFe=tF)EaI4T-8={b=BC-e3QPho7&8cB}-1SswH~py1x=F ztUz`x(;ex|y%ghd?{pXTSqWKpf@oFNgNS!#-amC`{0t#45T|{QP=C!F z{JOmbl-bL%T7^n3H1uK}laxY6YODz#+YnmTf#gl0`^B92XA8>iYEYq*gKk9=m_qRJ zOh5G;F0>6U@{H{a4^ia{&3~?ogJ9OeaE5tF!uwHEaYGwhVe0bskVB}9j_J(0pX&#y zbB{ZNYfa-fH%+{R)R7vqh>x-yCS3vD>e7xY(C0EwV=fxUrYiaztlK>gdMC(CZV_q6 zvpmcAhi&rU(qnEMZ2X;AAX^rdEC~&a`?3N_9YcwX3_TM|fMiafRd>v~%^N;NedGb{ zQStuQ=x)zf6@G1Bi(KIVeLCb;=u4?E6A2;0&VMa(gqtXpf6(CWb)A~Nfbr-Pf2HmM zb`8GUgw@V#I1)MC;Zj!S!kdL{78`2Gt=DgIYlfopI-_O{$@_3asQI(Xg62&N^HVH%ZN?R_kk>?70br!Sf^xrX(eYkSjenck zEKyC(sGi@UVcEUakgd-!I-=ir(7d+^?s-}!8#!Fo8(>CmskAeV_OaqLO>c%0_jR(0 zl1cZm!`kO2M>kJUe6g(^!V*{N>#uCKU+RjDyHS$m421Su35Ut&rI}M zOia3CLnCcDIIPpGCwWX>DEqz%h=^?^Zt=onemt>#!MxdKO1Nu6UB{1KMi@~YP3>2Q zn?Ao___*I*9^Ww;o^7(|W8rkP9FaJe<$r?Z(I=S}k$z)G1Wv+TWTa;q zqI7%ES4V3=e)t&4&h_SSxNH?nmQ0B4qQDz^L8OQYKB^_&#yxFmk;vpz%A-Ly_E*DqNJ z)_c8&eMXg#PvK9xn8?~@cXK804r#Npmm#b02i@qgh~`c)`2d&@OZFJ%wyu64UK|;l z@cRvhI@mz76o~O#P!cnyR4o8h(1>IPSRLcq)`mn=T&O(~5rnL}!kJsUYF567Hp#Jp zt9O7NBMRZ9&pE>O0Ridf6jnnK1ARe7&EwePAqgaI zWPimkJ6C6p;hW{aPG~dNhP*0|a2Q<%xC`!B`!Ne!Os_dIMEctOG1}|Q6G1;^C^lB& z>naw8nxxsYnEo&E3Uz&+7681nw-C&++JVcbCJ(gc@>cy0&d`FEjd7uU8irPMPAt& zipDtWyoEg6AvCk>6KF=sozsx4{J#wj(2nmtdh9Tpz3&s^i5yyc3YDg! ztV&^D0pplY#kG5I7N9}T8j<&rgbeQW9yzQz5PwvNAzm|2sc>94;<{zNRUPsdCq_x` zH3(vd?=+!4DVE2*W5!H=cg(4yxt4(}fHGe<(*6o9AgyN$Rt}!`dPoK=!k_oF#&gXq z(o-_5F!50?lQ5yWbfJIU0Vf3)^Vyw&o&m+8Uw5uKzBDE7HZrP%Go+syQwj+kNa!3H z_Ja-vzJ;$`ZR*xXckV1QXS&e^XC&6agz73_nW*?ZA?#t<-AQQ;wROu zk2uxr^YwGFW{!Gxy28M}mj1s7l+6-%GBWb?AaZKG}j z1G1p%YY<|cfw9&+(a^?wzYwfv1D-z7?2S`iy@<>gu0n1%o9bfT5{ligpNh*Xv9dtP z3dvx*gOh#35Ha*9PVnAoM$M|9q!kWN^cJHL2VP5rjMmgtwed%2<}ydg)-(sAuXsnLo){P9(*IJ;<|2lDWr zbcSWOshF)<2tmEn&qG$uoF|R)62D>|I|e#u`DN*NSYspd7r}GOl%FfZO~j}G-)>#lO*B4}o;ZkjGB}ZO_BNFldgVDKuAD1k9?4mw z6iwy7jhRB_;iM9B%suvTGVK*94_}}2YBm+cWWh;A;ds5XRBWO4?fHPgOThkB5iSEE z1|hgc`Sg#y>UjUD@IhFGz&rK~irS~tT)`Vq`(V`QCupv%em`y5ABg2{PTcG9?4QH#NKecw@=n_ucl}HM zHOFwuu~Cl|J=!|7SSJ1$l$e9J43Rnb)<*cLJEgD6Zo6WhW8^{khb$mi-n zuMzYT?;Ib`SIGpc2}E>*tc^9vy<$#DuOCk6EaXfkrkPlYuQ>&OoRxNP#6Nd1a5Q&w zd^y#Jo@EO{P`|vg<36Ug#L{wn4rxge)M{@IZ;NOannUKTF8bx^*wdY8>7| z>*#y}+6xO-`~ZREYI;S_KPSF9d(nky7@|j=Bc07OY?MgsOjlEhN@_v;-#WDHRjo`L#u5QNw-h6U2D&-S5>UCJ5 z#5a@N_AQU>+mfU*n05t0gxQXfh+kxqh=Y_s2wY7hrW+Q-#yoF49rI$^su=2GCGL^E z@=s#YY7BVfV02NyX91ATgj2RWPVwID>?psGnz6^mK6IS&4u%?lV6>h&J9WA{LsF`o zq~5;fDN+RHxqaa|aEJ%~dMbq_g|k^u7hmob6XHSUwJn%BSv01x^|!YHkTa}3Xlki~ z>v2lxnG+=1y#)Chd^v;aO0m-Qpz3X5`}k3IrM@Z4|H)8sjF;+66%=K<v{Sr3micpdNsQ+G9s-oZA##Vu*gw{K3FnCOaCWY-hAZX zTJQGfU*oO7+_xrzTJ&ieGv9X^atA68`aj-(|5-X4jfDD=w)v6cz2iuMHKQ8~z)TI# z5>I88-^DBv-1LGM&kWywQ<3`_=4Pce1{R1_*$f@hE&Xdj0}@CSxN$OEu+NyORTa+h z!e9LQZT3bro;JnSfQ*6>eI=#ay4whUe9Qho!?@adEYq9*kjW7thdSd(+0?d_%ZIJHY;% z#p1E7ZE-RQPlXKF;$7+MTqH5j`N2y7zY1Y~QpXYQxj=iExHfk=De~ z>0Mk}z|eOX@O)!JmY`eBg`vm0f*FUj0ni}o4?Gxq2rhMCWd%lG(r3M9@H#o<0h`%s zuO-27_Lu>m=FI};)SP4G(rnzX+2cb*l0-BI<{K#1oYCBgs}{XN%m@-ZY)sY`Y|rwG z5H8DJ=}U3DtVF;_#of()z`I^J>yQm-EqrLTC&==VTv#PdBjv~y{ELakbrQ7u6P__G z)+7%Dpm@B20Y5HXz{^R3r(}m{b^f!#MD`obn)MX98afA~J~PLxUDaD)vy+7~5%FG; zIqNC|rS*t}n(x2;{bf+3q(09QAiK>SMF+1>Z<>@nk7KsR%(BbuWWQ?Bv$7ZO&DaLO zuk*Q|1OBG0CpNV;E$79Xbe~e!iqLM*=!DfZF2nrIwHLmfRv*xdjB>>LE)I1Eb>?`v zcjI=YQcK;2ikF>@hZ~!07pFY!*L;H?zN}Xk@6c#YU^Mh7QWlzu9hrMs@;O#o{NGHV zv%z){mfRO>>`l!l_cbU<>erg2Xbr7j-oiU)25nt3;lZf}r7Eje-z3=#g`d+gROAm? z_3vMA^nPLQi{xJscQVHt)VMp@DD8{~MuWd^lUyQUS)aS9q+T#Z$U&`Z;@Pi%GG~!O zzMy9*&Ob0tO6m-qu;?No3!#1+^b?Ly1J8+HmaYUD68onLMK0rqSo4k9P&jYC)z{Me zsISCsrlwAUFBh@UG`6(ODk`eD%xrN_C*>U5UrN&aLSAfn4}hjj zXMx!U1prq}qU zZ|+vyatT98{5}4HkGo$51O)~AJ+aRR*Fgq@t&83aph%SYtAh`}`dQd<8eOxR;1m#G z4Lcn%AACMGv@_D7Y>fuAmjyWcmp7`clN~lH-~s-E25OrP)GB>B0y4-?i|i&Gz>n&h zG{5S@&O{94f)r1JSX)r)S61C1fhfpdl{o(eq35=2437i@E00_0FTyl@Yd4s9R#1`H zWwi>!Zn6|j?-Z30hhP&_=pNcmMnQ}EyfApv-9mE9hjDOVbpPI}|L>!z;LM$-r;^@u zin7WAjN&&q;-2M$33Wmop8_k^Y|cN9Nd0mD31ZA?PDxWr2L}2d35an zuWmp+k{x>Z?lyd>Ew(KyqM(?ill@F*z^1rnz>FhxB_fsu8F`)v|LHSU9JF_9Pw_W7 z3HT9g(xFNY`8=LBZ4SvlnTcGh!%%sZoJ4TX!c-qh(NZ4I^BjWt2!Kz^DRC3f=lNIV zIPhc+giVCuun0pwT)6c^rW6@$0@{a)%GzolItcX_o6@H<3^o(8a%-Iq);_3t(d5rGs>0P?y)nB&O z(kiSR^eE|O?=G@~xkzWz-DIEV*T2+L%oboRQga&j=_&&xuZetje!dMfgEEp{s`nMX zNc&)OQ&1jtH6@@!z{UvkEsX|%VmrYpon!r0pe!kwhW1LG(f;{>bZ98~vpzAD$O?rJn)pwRxgqh5kM(H1H z`mo<6rxEoRWPwLKwuU$icKJvlQJyTQ+`2O7_Ie|Bj_KW>XEidH_ocT~tJ z?w_9$*RkMI;Z(1(bERKh_WEim`<&%+!73T`^9^9^z(;jVzmqd2|2wMUe|jn*Q323k zXDi*^bJpQEwWannrzm!&@xS1rT`exK{WKYBXx=BBudmxQ%w@gTDX*z{lf}Y}JnMN+ zF8X|yF(oxh#l1N!Q9tdpF_!^;a>QYr7468BhLUe_dxV|2FQzJ7@uz>Kodx(&;hW$y zt*#(i9bEuqxpJRL5$c~Y(6ZznF&!lh3*^o&Yyx8nmKA9=UT>scwOlVb<4!4d#S7#_ zT8?WP#3Zo6AK*nPJYu_1>!bcGy#AR2+4Y)`M`F!^c_Gc{dUP>XU>)}ao?zI=VG{G8 z?6oOr#*vF6T~9wn9gj*hV;lej)8DFf+~G70J_f#*~80 zuHfMbZLycK+wwETs@F4Y$ndezsGdl~Va86Z&r3l`{mkUu<86QC#m*SIbANBQzE%Fe zUI43xJ`)lF(*m=D6wPKkdi)d@YoR*|o$Kti6u5n=l^lt=Mk|GxI;^bfNZR8J;e6V# zI#Ui&hl!WYmHOSUnmeq`WG|yrh&!X`1@}|ZB^f8=wO*0;2P$0bNuP&t|H@aQ!i^Fy zwYEj0@9+dt#>wo{E3OWl2*0|eUq~H%lmtGNBvMeqSNv$A7)@x&Ui}C=zOa#ht;#(E zWR?Jd%m+!A>6Mpo3Ko36I> zdNM*w0EMV@m~R?SW<&U9tr?*!pMQRddlNQ9A=$BnJ1l>|;`{scRu$SGR+*B&^4D8Y z0@_Z@>^Z~uodFla2UgJL{b0-a$Gfo%16>u3n5dMf7Rv(u^sMc-bp*z%pP?l^o>u<87L2f47h=e{XeOrSng) zi@xtJomBfJq9Rk4u&Z^DgJ>)QC&K+c)MldrI73h(nBj8x1M8ZWVUgj(8nDFQx6ZY)t>1;v(h*6$=NVC7m5#`iAQG>N)XM?$dsN~ zM)i9f1>(qs2_JgN%g6y-Er_Q>Fq{{5m--UmTGUY{oPX_edWC29E?ru_!x`-p(MJf4 zHdm(Ovpz(M?5((M^9dU*)t2B?odl=b_IFwTU-^QXHTjX{?M?2-TwO$pDo+Z` z@`a6MpyQR|nll0~U)>Ly8*;|9lE0SRgAZzM$TwWEA9R?QesvuI#fvMRsda8NrMbjZ zY$=l;-q1KNke>+BsWfa37vqW;^l8a?)0@;Su>TjNnCh~_z8C*YFimD)R2m=Z{XJ@l zC9Rg0uKZ{-h>(V3cZ?=pI$xwEdoNxbIVOASw%Tf8K|Cy!hn)f^H$)?N#>d+3oH{$2U&Dn*0a)#Ca^d9nzNI_SjJYtE zCC4ZQI&E%|+OkaGq4Dp>BgdZs|Dim%aH`3{#LjFs7B%8+=64O&G4*{5z+*nq>dxslWIrjI7-bx|fd-#cG!1 z$+@T2aU}ut4HbDbyukiBU`^+C-iQcpm^>faP`+5DAv#Fr&YQl+^!jCziiag`YJqu_ z>VH6k(-rN6>YJ=!;*R(MGa#u8_y0iLb^9 z;i7an>SUN#Vf0YL>gyf~p#OmzC|KhR%M0bliECOu{*NIlCF-OQ|OcVTb z@>e?&PYsW6RrxBPp2WxaQ3@3e8_g&0lm$5xwgj<|LV>`A0An}E)fh5 zVc4kR^Tt6j(L>0f(W7jagh<19=b_(;PYhXs0({5BuTEim?>Xls0-_$u`VZ`W_pn_7 z>$m)@q9smeH#@HFhdCc3Da^v5oh1;BI>jEJGei3QUf7|=ik9EqN5T7E&t5!kvD!iL z__<=cjiq+@w`c7(iZ&xWJx4^s!I=keL^boYbm*A~M=9}G@6)(4lOAgQiB=<{L(GYh zUg@`d9WR6VVQ*QKhlBWI{Jv-($6de-`zY(v?2mTeuH3Z)E zxI5HgNjVD!`KY>F0ZvGHG4V)xifCYQU^83CJ9Pl8fpR6N7FFkL;ghDjuAdIRi2`Y6 zyoy_*ia95iaIKccvpJU@MHzSd^t@u1L+32k4>{?c7CajZR;#()R_{UH0AYMb9C$xO_Vh;6Hq(lvM?h{YZDUC zkU?7u_(G@uGKJX?^ly%#)-fZYs76+9n%A?1JZ)MBJlW{*A-`<9!g63~?K$W2VS!|j9?{8*YyIcvik0^&*0jNfRT3drx&{lRu8^E? zYkRCe7D9LTa`>8G@8>8#Fbpf1{$9tVnBravA3xYB<=26;vy`l$8d*Iys<)jLpCxZF z%&90q_@~~YY$DM{vEO^_ek2VqU0YDo^+Lj~`E6v83XNj|yJ?5Z zLhyL)KHx`6tGbte{-BZfppgIgF@k%Z-D#2!g^Bd*zmSR3@*xyYmd(a#S~B$5k?hL8 z`HHO#B^6?}T=+4+Z*FVC!g22@1b^~4OU!76h;?jom;X}VImaZ(#a<1sA#lzc2{rHC|vnOqqPS@McdS!bP(u#>=@nOmmYCb-QUc+ZvF| zCFQFYjf+}j(EX*Oy3Z8%GieTo!)Bl%#I`FG-J-Of&c?Or4a#jhC!up5RQZZ|gCP~~ z(-#o}ZB2R(bycIk(9UdagpttM5SHND!yF&5u+Ul?cOuG`0{(`=dAoVG)A*>kGr z_S=tbo+?x$wpnr|%xH+fxm(^H34k3{Q#8tG{abL)(C9EE{m)@NAoW<}TSy2j6g#z&f=B@zvUMnsS zSvQ?Qt_y+!(xK=DK%n&-otG_9b%W=NOONN_m9D!w1scMy#rAfz3*)bcT%Z_-iTJz= zgOZOiD<9vpHWny|oTK{${WQpGn|gEaw@RkHM#GW(`!G#9`IF%fq^5b@f1BkfpmgE(&LxVK9G zpuSn^ATtwM4ysUM)Xq%X{k0%By~o^Km$e9qinmsSf56B%c5Wi(G>Y>%qi*o{fS4qxjV_~E6*Lnt1O>?9XktAQKgQ_ApuslFe&k+r zP6d6_MCNab(5$npO%YtCjez`TsP|tLM!A2U8k~4l!9!4@qa#wyvAR0-;iI=mqRv^VQUbweO!mZ@N0x(9??gC z5e}{F4aVZ;0RG!tT&W=}1IT7e^d2qQp7C2tpZ_AtT0y72w4?Ov1-(bBNFEEnc_g82#x#i@yE?tlT*uXLeJIJebKI z%J`#~J7p;zH5TA>qe??*Te{=b7X+O_JJ&W%IkPC@0Dk{Vu$oXE6C4iIfBoLRQLmdP zqh_tiY2HRjmd;c&EN{7q_IGZB1QBBgOyF4KHb-`guMmD*7TXMi^oC6$Hugu$Pv>Oj z>K`PLhpjC-LisJ(bzIB87b%pRW616vL6h5F5DPVbJ4vrH*I=y6<{4JdWhQMvJt8T+ zGPFk7;GCqqEBb+HmrVjX8FS5Y-`V6z&+Gn~{SPc3;A01MfMmpcxgnjuUMPzx1($)U zXVPiH%+aHihgyxfiSQkUY-=v6DlNN4WuwB6k7u}Dj=x*NqwrDt2#itDxTX@F45NrI zI$N2pkM_ABJ)6h~0Z1l%U+{~TgE~$7z>W~kC|7x)DJ8!ztATO}D${C9bK?C1oi`CN zX$Eeq%jgW9$Au$c3nISvm{AzbzA;Dy2gIKh`U0d0(yhk*tbl>@q6_e9hHZGg;AOCL(`nqys-P`E09a)FOK7OKQ`GqPm&^9y{9&0SQgVOEdAu(F)61azURC&WnkkDE7B>yW#Yos94gyqs9m=Pa z?VDR4OOw_6ti*-Z9y8&-oso<|d7f)wQ-iGJCl`Zj`q07Pw)jePg-pwxcAJqFPZl;N z81aBq5{|@&f4dscBr?zY76jtrgo^$;QZ~lez4LkftifS{flt}E7su=^J^Hucu2+n2 zI@Hu9JYWo~VsS+q1PPmG@thaS`Mjb99QdF>raL=ThMliCaJ=!sye45M$m0ws;Z=Ha zmqOVU4r7Krh-*JOkBQvT3->TRdmY6(K|E5YwHY*Q%`s4;eC%M3E64wFQRRfLvgW^F zhzD2<SKWv0gq?}QzW-EFNpxCN_ zFqf*`=1Q|c&mJ1>#k?>TH33~kUBb;CHp7OzyRAY_X_xfq2z9P01~;T1i|y7A81~KHT{YjxnI^l_%76ZQpU6}f=>QA{liYHhO|FcR z9k6_wSd#W4V+{!mjy2Bi08rL0wEw3m1Mfuc_bBZk2UB%+aA+iF-d*$iD@6?os=%?n z4;;+}Q7TbKQyzk6uY$+P3yHf^ZBgGk-PU^j;|&KqZmM22IR$0ct&Idh4(Va>AN~8t zdUSNeM}od&$D2T_Xuj~%5_0lm{myLvRQv{9wwD^6!K>{#vj%=yg@uLLn<_;L+bdot z+iefWlpGvRr~o>OSpjbJe}Tp3)?mWc*4F8v!OH@qn~=}znu)dL^i^YH5-DB_<&uq4!yY!PZgz>YFn!-Qpogf2(WrYW2c`_Ho;TT{M}f$Oj;HqbvQtnEtS9 zf3nEqazg6vb~ENF8i57b4mf{%UEeNmVq(&6()x702+9&nX=-W`TlMP>MhgrMt}*FH zud`nr1(n{%ilAMh9e4f%?Wi!vQGnyr9WyJtt+?(n%sqRF2 zmAO_g-ufk{VNFHJt@ONqFM;(5mrf52CeV73p6ul5`jr-HDC zNwez9&!1dv=Sh{ZIXSBr_r2F+NsJmCZpXTihYUA5??SmBme=1d%(i{d)+XZT=g;JG z{Jtwtzc`|zDBRl>gd!~~yLsGvvh#R%@pwPmZax@K{U3iv1y8m*5y-Yq*SpI!tG^1K zv?Rcx;Qf|P6Ce|^7bhpDfq{WF=bQ%;MUguyG&D5du`09Swi<^3d?qGe}6{JEY*jHz}cnb!I4v+Az zLJSdhIGNc5qWN4rJm;HaFR8oPUePChFAu`bUZ-AZKQds$cPpSbaKn^Yx#HOtZ9WyW7dGyg6Ew`tSk%_Yx?# z6%SgTj3|74cYg?N6}v4{Q>yKb->i>nA^&_U#kSq-i(=AiO8l+W_A5fjC@3BeNA+IE zZa2$rH@Z4HI)@tm@D7_%y!Ru_Y;43}-Ca;xcP78{M|t^ed%p+b_NOEJ*QtXpQjqxl zzrk@#7}clWZ)I&g-|qJkTS;6tH>WA`c-lRjt)ikbiQ}oq1<}lsl9J%htiX9W$h(t@ z1Fx~MyP|kk<}PX%k9PKpa?B^bOPZRRo?hgc6>Ow5lOIuO0g7$whb;lF3 z=XJ7sp*L^dpm*d;CwR8v;o@?Y!JVMN!<3hoYj{6>I)NKsSy^#r;^O+bdw8^1f6*`c z9CzY-)9ihqlCuHPYg{}${Ui^)@|$;CR?7cc7$Uu#cR+7>cxF!KAhNsd<86cPSg5u3 z(!01D^Yfi@t7*C0$teEu<5W;xNvX5EensH>%^ieRIdyeBw)Y=u{LccW~jhN?jD?yRNYzP;!=Sg73?sRtPfIH@t2fJtct9Fm}pqJM;A6k@TbN`$t zx??uSkc$8K&`X=;Rs{9GGYyOQB+G5ZXtqM{5#n_YuC&d~X<{HZ)sTiIOg~3mo}e3a z%QTTNA3fUVG5l@bu5g1Op!zRfCsyUw6OdzM)bFw1?~{(saIs2}L-Vp+wouxlU2{}w zYHD?Mc4#CF1KOYZOWffvh(@HcoAhZazL)5Gdldf<-unO9&=PY<$#$VhztoyR=|ai> z1I2pXPM>ApYrLsO$aPC&op4a+{#=v4#*6o9=?#?5x_Y)}qj9XWgHlp^MhnL-qP)ZB z>7-UrbW5kmB3-0CqtQ*Ycv%3+n0iCDRDJRqQSRLz7KRSYHHy6A1W@031gY{wZhd26 zxHzZ#vFG(k>MQ~mckwiOi`j>tad4P1AIvef^@FLfN7{_fc+AX=`q+4uTLvPw|0r^CkO36Cmv9pHulNy?;f1`=-3iCJKk&A zaa`04RYk{8+bLn^s^c_dB_`QXyX`-1?NC=!m@wq_r-`Of?gAOkFV&ZezacT{bLS$U z{4Hz7O>Tqa2br|H8rV$;CUI#;Idw#G-65{ms>?_6|-r9NUNa`bVo@5O) zKrV+7^>6Ldmof8OF|$-=bR`Z(Mi9N9Y8V9R#w$u@5PGtN&xmwhhAI7?*m@>AKeH34 zJ#?PT=Io>@i&nhVERX}Br)x2@ks&r5xVf5nkNEdYvSm zJJ$NTXl3HOH66quHSF>Fjw!1Brujs2#_e#_Wric<)cRj9fbRv8r0I%a+>al0-)R(R zsb|mheAF62k?8}WDvHp0urU z&ej2)w95lpsHNIaHdBRI>&<*>N84xL^lR_Pi=L-N8!c_QCvR`ZT}cezuvk${szg8g z{pnVc*m`u``H&h!U1e^fd*SCrx&@Lgp!Y+>xc0;gCL@eDH6#{HX|O=yL($Ailc}Lj)W8vk#)vjM zqq65tO-vMvFG${4lEdq5Mw~lkn!t0|F2c;w4;Hq=8m0uf52I+dHbr=yi#y0+JH9p7 z4JsX!i|V)aP5NoU`KfQgBWx?(M0zMyF}69jjJlXA!k-SzW!+9r!s8XRXl;%b~wh-u@blAR%K zevU1!uh$7H`#{z|&}gkmV*3geq~4LFcwVMD1a@Q^2<`ZaQa>+qNM6UXSdWdB(&1j} zU&>GS_)7+-ns7Lb zrzO!=fmT>JB32rS$_&FnzO-6hY2D0$9b= zclo5`B*45_ElEjLszBpXX44~c+UtB~rbtVL_g&o}K3duuf%dO^gt0j~sGBJXahUTY zKLQapL9FEU2|66&Me&$|xs5Llf*-c^@^|po!n4DR=~7&hjHqm-EszYsOreY$&m(Y& z)PdMby=R}Gx+QudVU4wq>6Z>RRvw%OT|kDpPd|*UP&DgnllLOI%q8HVT)`-^^wFz* z(Is=qm_y|5k2dCVRkb28vs)5QC=8)#6X%yv{09h9s8cC}yDo5?ntAPYMD~y`u<@&AXu20XuKCp|6o5Yi$Y#lw@r_U09h1 zbALUXV9seQPwpDr2Rpc@VlL|&ni!XzbY)Fu(i5yxt2sqTuJJhiPxr) zvuM_R78Tncz#p74#szU-7q@~%fNG(9ppqW;2c! z;t=6Q^43QpcPOg|FX|{9=$U-H5+12qe-+6RUC+oD`N@Pd$&96nj2l!^6Dd+E>P1zc>v9Vtt94>je(xB#%U|@y$F$t2(J~aLpqk zy^84$8?G|4u4lx-!%1|z%+)E=M003ba?s6DW;QcRB6y257qfc_u{z^gq6R${A=1os zmol10TndglwrSU`NEwoC{mf=_c5{=(i}xkg>wFXpMR}12?*v^Jl@OvgftDvC%^G3bM~J8i+o-B0(jU;nJJv5q5BfmsDk`%iagZxkq7x}<+Nk_#GB!UX5umz zjyFD)N3t{_^U?g;+e5}EVy0n>GMh+;_3o!63?@Wb18=xL2^E1N=QuasM5E*2#*!jM;!)WJg-M1JatMjFkKLi9RH%tY~Sn6YW> z+gR~~aKbO+Re@Wj$|coAoThNDtYKODV+Q7Ay5A7`EI2fa5+t(&{D%-Zd$i5xJ*mQ}mST73x<9e<1k zB<~+~)8-zSV>mifi=rV>d~&8ss`4i4a9Wk#AlKeJn5>zIjuTZ;#*+BKP8t#JSJ-c0 zY|$$l@(t5Fj?j$$>m6HG3B2KZbgFHUC3@9*io|oxs+E*;?d8%qKLR4$veuLRw71fV zX`d(5f58G5qt1o7ni1+$BuGdMkT!iq5R<^1_V1B3_0x~tCfBEX(h?;lX^2d0*47sE ziDkEhJ<)Mk1!-#a(~7$mrW!lOIH#|k6}>K z$BLBq&m3FZGA`;U-XEi2;g}B4x!=M69y2doS2c#LtaHFX&X`g~g(6Uk$*ZeKn8AZgrr9g`PIxDi*sbX3Mq8`pPE*Mm9J8qIxDIB?bD}kHxWk)w$}pFJ5Fb zGL7|}W!!y~tsfSr4D)&_tx71Pzw(w@@rB_kH*>`JB4y~pFY*?$5L@y2?)&~a`z=B{ zGO`pbhGY+@GD>`;nQepJs_q~M#|kTN`t<~tU!h}w=lB1q%v{!GeqM;+Bdu$#PadY> zR`fS*Z96tLF)`tu4A8n5>Hj!xSHJq!ky?d0Si}gcsL21vmzA{)n##;Rii$3gqeQN@ zAXKt)1FAmNmnmmrMyinoimEAMrenVOTUJE_hlr6ltP&YHLq;6-ik?A8mg=AT6B$Ug zC1re|RiEVOQhRTmAI^~OMZEXlGTbN|goLbrmYiP~m*8JO4gBc8WlLF(yu-2y6QG$n zo>lnA-IACIzEegzJGR3kB{gcJzH6B7i(kK;FaPe3+RIllq@*@4 z&r*8YU%+2iAC|&x&20V*soSj0qx_TZaRn$NvEFXuu)Zei10{l$q!%8mui>qIyXVf= zzfUNV(V1lPmp`|ud}n5+KV4}KA<_HGowkz(F~@ciq&8?n4F5oGL#6;M3k?r%dGNfx z+5L3ZcX)kkJ-oL6+eajo5?v4xvH3Lo#f!54V#+Q-5Fp>&ESM#e;4{6QRa}hW>EnYq zR;2YxSC`auyf8B@EzOsf&$^Mn@;lC18XRXJh^&p&2qoA>mJ?me1Nd=zV_pT^PNhk>v5?j+EOg zqh!||E?DF3^)88$>$rv^QH;6`G7Nz358k|ab9KGzK}AQ00&wv`j~iS5n=?Ii1{`qQ z=l~Gb?PSu3_jp9!?XaKYXm>uPZnrVPm*hRJfPlcs?))no8)mKd=M>-&M?gSeG#(-c zY@V+UE{v6pZ6Cnp@$*-!93vwmR$$a15c=Z8ocJ(2I=Um7&vozgRA6-q4DtTe;o#xT z_BW=4s2OehBq;a^jqS ze@Xul5w*pn;s6L2uyAp^j8fb?YzO%|N0qc>q@_`O(TH@{29kIId>cr}75=>O>;s?{ zp#PY!QU-Hc&y1NU)`9;G_JQgBnwz`yC4iyjrwtqi5m7&Y$d3W5P_Rm^XbZpVEnwVUl+hT{6<#Q8Kfy6 zf;9w|#%=5+M%eCu<|R8V%?m>50Yl*VCP!fc_HB z_L@u&;qL*=i6eduh**QgXY1(-Rh0QhA~Ezi__gfA5?;= z#Nq5$B(M)3K1`GwKUAx-Fqo~iH=8K-Vly4HYR6V0RMH|{d-#_|8!{#2bt<+;>H`eT zA)r*M)uwL&m&21Zux?W`QD%frO-=2#>pBm=04=r6V`8OCFlnvx^C`fz%zi~{F@Jkx#O!)v#?Wvi zmncg$uIWk-eYLl@gJ%zwdfpIe*?5jvHSI1mEH64h^|$###`rS^21>A0py;Con8d5& zA`iZt=01I9Cc9s+K}-|}^A9%kQV(s>3dC3fu628_mf!s%G%V}|z{Sx8t{4H;g@A}y zsj}BZ3t;kRIO3%BQ6||94?L{ows`64@mRLq zT+Q{j<4m*{0Il0Fm;c)9mQmov9Z;3yI7I z0`$&v5nB2+Dr~sDS&Xc)USf(2at0UYe;S{jtAi6E&tMwgXlB+KGDho7y-D@0I<4|H zaKEl*bApW@!Q&@<-JOm}TZP@^d1z_o?JbyjTb{U_P4IeRUd!6*{5uL>7HT&=tkfU3 z1IWHDf5~SIpvY09ey#6}t|vS-5-ZQE6qg{JP!J z34Uz;H<1no{TKO3!7Oc*G$tEdBNwG%xxzsRqt4E=Dua#u?`KR1n%Sm%OWA5+Qye;P%e)8R<-2}D6Wc|rhZWkF7 ze^h^FR5g>=w8Z+D-O}>79HJ+1fb6I)`bO8d$zRWb!%H%)f7H>huy2NZ=cLmU;HK6E{m_K5XvEC_grHvVSmLRiym^&&r&_)RsasKXA|~$+6OM zEeTzdioUkLn343c*<#T4?%n{w1LWNdc0D&l%leX}sjU^#|aZ-myIA9>cEC@M)?k99Q9|#;}rCe?7G? zbR85#XkxZ2NK#mdrmy;1z~{vLi(!gyQsXyO;q^@g$7Fg(3`odfkLya zAfnb-Ci$+JpLb{8a%p%b{pu2I?q02NwBD^ZSmB93%{}6jw045qRMt%oF(bneoUYz# zyX!4$kV}*r&+L1MP-wUGEDy1n-+;Fg_T(KelMdoSR(^RyW#2@r8O&*xVTP!37OClE zjvYj<7h0*#r+v4Vj_|%y>SN#R|86%Mp;~j)vPxdg`$TWy5fJrQ;OADE6khIuYnq!6 zpj9TovHS=a3pF2nN>$}Kv=o%_csJGV+~sj%GHJpl6N+0a-!kjTryoNuzOB8UjqWA5 zd*?saoX`(D{SoiP$4{)8e_8z6>hq&2!v4qK=)2-%e|xWNibm2#UVKs+SSs}$z8p8w{<4mn9DlSeykeX_1zO#aR1%6PM*1U4x|#M z@1vF_>+8VWOX8-_m9MUA%qIjXk&c&__&bS-4NrJ9*0cXY56+p>%#TmUM84c_-eh?= z{3u#vYU?$uZ+SVkv@kX(sy*WsfmBwv_oDrBWn0O6sXJ-Oazj*9a{35*6`pxRsJP1J zip7($Ec`Jmcc|1J?tW?3Z`pHUdZp4HeNIIz>+DEw+u0_F;>c$4Tsuj`OazADjbY3& z@n%Ecc1hz=d^16OTQoM4SOtcl(+tYX$NHsttVza>`Z`XtPH<%8!PQ-`U;0A^N}ywJ zb!}Ggpu11l`SIzRuE5^u;ad26%|y+4J;cRT2RYV1B_t*$mrgcs3tcmobZX9dQ-da> zw4zW;$HS_3sA`JsST6c$C7xERMLm?pL*n_A@I})>IczeFCdXyp?4Z9G2PW5LCHSW+&1FX%%OxnRHMSgiIXnoWMMvWHCtU zNycJ7w8)*+W=fsqqc<)Q0_foe(%gf2p>B2yT#|V39%k9DQs3Nib>hg4XfcAPq zP3=`&omYITjMMtZ$vwS^yEp25#YOyrzlUxe8z37lwFsDDialxrF79|H?6|q~jKAYm z2F~z37EG=;*(~n_ivAY5U6W$+%%Us$i39V&@|ynct8f3`+REbURfSjXN7Tsb z`nN=8zk*%yq5EWSof&1a2s4aj z2|yofX^5W;{sfdYxP)$!wWsv$WTb0I|LU{;SC2cCN5t105vD0Xg~AhEmhUPO0b$-SYhK-G73Eoi8@6V)6THmyTefUQp8nq@<8&d0ew; zxgTTyh6YI7_TUaz`S%dd?J5wr^I1=0)q4Q=kLD(NB|D1hqv_gj0^??dT z-@t$g)G&HecHBwO=*$2(2PogZLj{yY!|@pVTEpc|9ngy<7B$`AC-iqLhX@S(`jM^{ zvO8NBlb!ND9;Eo800-KO^(<^`Ojgo#{sc;kAgB}q0Kj89DXgnY9D-Ru1tsd{##`sGeJB27Jy0PY9FJ?2IqmDN z4yJ@Oc}!c=g6aY)PJuYD#BN=#@#exb*<~Zg!j+%Y#)h@!AC>EX3c!`L0sIAnK%K2E zGn7_XYGGlay;2_-yqe>9p!FLb8EG4SCD0GnOdO9RLs7#CKB!DA_^K<(!KV!T`HX<< zFJC@D^-XhgGuq`qcel>gL<#T7gr4AG`9urp>G1_9pZ~_5rj6)ph`rs9mT2-1T_~1d!h^E~8nG+v@_I z5eQBJR}}|^JB-J1$7~kX%)v-YOS_yIqiN!P-9;8sj@+B-Y^OZmm~`8%4gfVs2DjSq zBVDX2SospHC*k~}BVMkp=mMVymM{P8^ zn7skkyY;DUVoIQ0AzaL&CTe0roX)76^Y?9qm9@6xXi3Y;qCs`w?bVuqN|gnX>&cc5 zP<$2)Ga;ekw}C>{bJaK!5^W)&6SoZxhCpR;-A?Uhtb;EqK?fN0ZZOVj*^bH2ipHgc zg@t`PLjt{Bf%Fvu5T*&sR12s^v;FLVBiUQUTohRpZJfGlIj760yRSQtfW?RDO@xZ- z(z?&a)EhNf9UUfvx!_mUj|<5-n!<B#_Bo2Ew%4 z{4jy~?Pfp3qulknSf>?$Zbl&fOqf-&-vY!gaY7g)%)%Z~EViaA!5K%T@~4>=;pD2g z%2>mU7RI-D`oofx=tjOr1{C4=q2G9n!!%On((c>H4^fx)8Scl6(>XESt-2*!rRk=i zr3xYSjWBs0oBz~1D2U>z&K>saoj>9$JKBiuww@?j0Elt181^j)+@7N=C@2UXPU(tC zr|=Vnbhe@btfkLRQmfS$or-}W*nV?t(T=<3aDWGo)9Oi`=(SS*YraX~0S*I#Hh^9Vc5fGu1m4-s0SGNPuR)B&JrY1chZ}iC2W2VOffpAp z5TGyy+v(bgrBx~<=irE;Ev)_kDN;9!ni?yDfMOT|MIn(bm{UAv{d-`A7m&>XjVvCo z6Jr9qIY1P3N|eul#?Vf3@P&x%tO|at^Vf-J2^ZO?XxRkvRtO~$0dbfX7W`Yvy?v4P zkvy~7rMe^nF`^HsFcA7pJ?Oi2%hCyrDsWo4lgp0-V0(|rnX^)BK8I%XoB5$~SI)Q4 zF_%@!sjjy_B77-5bO(!6ZQ!ta-zjgB*AbcbrlOBF>7BZQX9j>^X9(I_GRO`jj?)V0ViaRF z#&q|q1nDRGUf;pRe4rfh$OjHLTJK}d)R(tQ5mLqN^iRlI0`sic;y&Bv^v`v*>_w;P zynM2ZQ=ske6%JQ9Sk=7g%aahf7G>5>4mzGO>*LX^MfGIyzBF!9uks8Gl$ek8va3UX zSdzrSou=FO3^glQFM|muhcm(9|0@v5aOZ=5$K!I_X8a!qBnpr6>B+TwXoj-b2VKjb zOQs$bKB|l!Vb=M8N9XV*giiD^zL5G0xSUJ_#)_XZtxq_4M6jA}}W9{ZTpn+)-wDQ+7H8z71zbA2S-~xW4ikK#P0x&%NN4|(DT`La zGDoIs%qO0nu+%Y8bE@kpVU!+!LjJYtXY@3k#h-L|1~$xpMBLktF166WOGX>y_G+w$ z847JH)&~no@>sn6d#&1UD%Db1L9x{(`D&2^^_doif#~fk_HWjiF^L`qw_^qNzm?Ik zVE6&2qm1%AilKSLIq&I-cD+iCzIhq*+*XUhL>$IW-JSnw5Dk zY1u?e#@4Uplwjik108j^{mrGgpMhi!^+b8y0n=~R9|jYNX&F8=RFAZv{X#!HT!ujW%4*s^Jog)aDUdAED( zA^VY2n=@3znMx!_ea3;8PmK!2mCD|Xxhtb0F4v8vm_1;?;uRR^9{p=Cm3=%m9jAnb zE#fHA4r|<*=|gL5WLU@5-oQy6uPW@sn=K!``zfs>OC0rNbwfWJqL_$w6`_$9pnUu0 zBztP5ZS+XvNbrR_@IUtT5tfE?$ZfMRs(eHyAedRVNc^{o*S!F&5nIw$`*Zh=)o-S? zxKk8=e%H{lenC*2mF4qP*vHPbj&!Il36v#eR;d4E9hjJ5$^YV|A|n4o=Gn#nq|PAA zKe9t6B`x@uO9&xg))#*j^MrIQb{MbRRPtXY_P82H@az{UcIJt&s}zYPQ(xq-{c7UU3i zu0g>yi zh`9l3{t!U1f@*-`dD9j1HJ}oY;z1ozY&p*l<-vO(J7xB`aRav<%je1t5|FJEeBkqe zI2v@`Js2<=(W#dE^*(P(Tv^e#v9+yh5Wrkd{14}Q2nvG34g$-)^R<*Rqd{W+%Pp3T z&CQyF9@?6%(%#^@q%blutVfR!nt{cl2b`Ot@89#Mi-oL~bQ0?|d%|U8W>zE%fT|{% zL8FHV7%$}Pk&uuM8+P5%J=H8~KJmGp6gwXp>gwsiO#re2^4jb+-SUGfQ972<%i9~_ z;&>CO86wGRY$)#Dy$dGL6KpL;w=*lKfI(?p0G=TVP|<)A1HRZ6w3u`G^>of13~N%NMsiv zmsW_!)iQO(bd{wRA_}f&=kj`%WSzs}CmcBig}baFLQ>MwZGa3jN_O^%kH;Sx91=h;pgEgsBz$>$h+1TFlwl+2xd!IzegP3fAB`7(=j%92}#kEmFWr zTf07;H|h)~l1^Yp_545au89AIcLh7549ttB^UtU;`!QM88CSrU)&QSVHAsnJxJwK~@Yhbk4=KCqohchO(j(-~hY< z1e;FTB&XBf0`+r25B&|&=7nz`ozE71<5-P{a-t{GfU02a3RF@^&0x^M{(DG5f-VR| zXMYT3CC67C9UWs~dMR!P$RO3@&Xhs!>FGHGrnU2?+smf0Q?TG6((C5trZ1N1BV-=~ zG$s}Sft0eca`rZmQ@HbvrAh4(6W@q%s;2X5G^2wA)y6;(jcE7 zOu5!>ow}k1cnksKiVGHxmzS6M%lz}pOUKKjJ|q&iQ1E02U=@ALl!{>nGY#@i7$eF@ zP}P;`wED1*gJK`)ohCTx~pQQ_>-75WqgvE-l-{;h6+ z-V?gJz7&C`3ZHaQQPHrNm`-4`;z@R1#REIv`TS>0h^fn0@mK#@-a^L4)SzI4H+yxIEs&X& zwHkR@2ObYXi~PCS4K5C(EFt5F4|u*AeZ5RuwXwx=Om<8)TP^>W9)ufUbp%#6Cj z&P+G-hwPmsP782=6Xt{FWzPLn1K9m00Vn^R_u3Y4@@~K(dj%+WZQ!Mf?Kix-zOGpb zmx7j%=~#YRb#*M5sKtFJr|k-eh+YNIQ&x2~?wLh-eAlEjkTd;$Whg<@(B0MbL_i=V zHTB8+gNPK^9@r+npr~a5(fZpZgv2` zBlnvjdB)lPayJMsz=_JcYOe$xOL`%E9ncr3Ga;~|Yhb`|veW<|VuT@`A4g4ofho&^))AF5uhM#%lklnfnia*o;5}t4g?ysgM6oi z0FtUdnKF%)ri26lV95)co700(y9WLu!*ae+-TinpBRdatH zFjo+E{f2*Z62$>E+gz#E5jwWC?<9z-&#RIqiflXBxM8tw&N>P`9;q&PqmmWla zhJ2-d73gZfLEA@ivxfxYz}X_Yhm)o^=wo|u^ZCT|#x=n!f4w z00TyO%YWs()Xt|K=9jq5O7V|=Ab63dl#Z7-F-_R_#7=@rKcy7MFp`wwcEw%*0r5?{9$uK|AvU5 zla^9j;~%#ij^q1fP49c#dXe_l`0Ph65MCe4SZSpN+&ZdwIP4tTT!+5rbzNRSo6bF9 zEj@V1Av*8$m2akt0{+Uc`kCj-W`Czb?-jbKIH576(|6CYQ}CIDEVr%hW{vL8C~tSO ze9@RLY@#Mp-s4Y^4lVzCwCA0)Fvs+c^0Ey(*uIJxr*L$CD0SPIazT04s^rVfyW2l& z536tJY)wfdwx~iZch!_!ue$2h82mUMTYR)DHTn&4CfgWcB1jn3g3u%}x>9td?XTVo zGxfT7OI_{g*4${8NuKEP@>_@*JRa8fnDItlkxzBokGjVjxkoIt$L;}+hu0=4j`|yX zFc(@s*_bA^K(nb9@rt1P!*qJY2NujwX52Y@r-w)kXl6Y#(Vfg`}i6^zk)C0k$ z#@DRtSem!B&iXUH0`&-<^9qD3j@Z6uuQcF&Hxi2DuAC2CarPRXUaL;uEC^^a3lwI4 zsU((f;zvL|(wp;paIfkpJq?-JarB^b*1md^0Jup7o?kx+{q{2Dp<6EL8p*#bi?K4| z+Q64vM-6^hOm-L!zjak(43o<}f$D1Km9dcpubIQ_hOJ}PI~dks-{A&LF|{I=6R;Y1EUos>`ikQluYP#%u5x2d|LXc!t(4TKJo#{ejncvtc?GP~S3kX0 z*+vut@meV0FC40?&jgwZveEYf_P!BXm|fg%%{n_N{A@VAb<9fgLJ4Igegw4ABT6F1(9^oqIs&mMm_A^J-E?Y^@2lJPrC zY~dGJ-bta(12@;0egvNw3Bpb{Yi*2AR5vx}E85=ikDoSLKK`k|_}(7VgZM|V_t$%K zlM1b`lyIzd40)Gdz4}ti-xgU>H>s-G8E4GId%7#BIicEJ;2z%X7qXOI$}NY|n<2c^ z_f8_5T!OosD8Fn=MD<93=FUy}b@r^Tmw1=)?K*2`+pl{UzA~;`v)n!-6Y#etZsTzU z)cF<*w>JhpsIB;(x@zeZ`GysD_Ri5#m&1lmk*I6gslsso&lo!?I!cll>|4@w-AP+{nnGDwt&7>=Dk*`p6q zH%3$;9odFy+DEPtT>U1KYzjTHm--d08Kq1m1 zzh1YNJ~aPvyVISr`=FaP&**AeRDIu2XLu*}Qau9eux1cVe=m7GS*>SteTK&W*S)jq zFTp@v4msYwI0PBlE*_r>f%0N!z7#(rR+rWTOE|GWPqLW`=98 zB~rL^(aHkPo*ndTbV-)KkpUMEmwn_*5dC8L%PkwW*3Cdh5rxS9wFNTozRunC{V=3N z{F+ncn6_t)uAW4Uw41_Lx*ANkKb}S(ojs%35Tcutd+`M8qWtqyChiYXb>w?{u0KaO znvDzep5>T7!NB{bvL5tJbubb)+AJqkO74+C#Zwn@vEdp8)&h9UtDS3RhJHzHHBr9# zo%&n+c-!`z&od>Bv4s*pj-(#!HGN`xJMMwsQZT0?EUMuLuE?L0o1M=tl3+My8gZ19 zE?Ij~g}T?%8Rf=8Ht=2g_rt(|G##)8KChp(0STqJloZd(;Dyo%$rYm39RWW2&n#02 zoU~-oY&@p1`yp628gt67uTk%Ht+({Bd`a$T^# zko}6oYAr&_9C98k??BF``oWFSUFM99kVhaM5VSJHfGnt|%?{qCs(^OYr)fLOT%DZ5 zoi7eN$;=OqPp-FbTH2bhe}Lz{oxEu_4I}Eho3uQkqA)n*p;Wr?(MHyiNcb&+$gawn zKv8~h=iGB6M;Z76_^`xz>SU=>EVSECl2mDa-`|{!S`>XK`8 z^MzQ@EJx(JsEUe(&r}_k@ojIt=;8+X_2#ZsW)ipK1eh zCTD|VFd}v>f951ZFW+cW!Cx@O{W{u1`dzY zw&c&gs`0!J$3Pab5si@+GSc6F^HO_o5))-}BooE^F=4n}K8Nk&0NczM1J0XGh#f1{M! z-!xB!_&wSiebE;$G>EL<{Lrs3X}4q+Hk+vqhzZEck@P2{WeS!ynGiz3p?nF4TCc8- ziV3%~9zC#fb}x5hvnwy;i;^6(RGp~RnCpw^gb>2l_hRGJB=r%bx02e@UIv24=dH~N z1SjTpy~+2#T7cK8(}D>T;uo2BamQ)Hf|1{Jmg!5-H>3SI@j5EE7*^(b5dHiOY{q4` z_~}31#?1LA>oj>`^9E zI(qc5@R@kzeazRIBJ&;=>Ag+-hCvCpkU%=ivF=Z z%~Wg8OUALi6y9i| znD>TR!wRN~_czU33PYaIV%!~Zw;pu)upWigA6tmbTT}C4?M6ca!OApc1>PZ^4F<)g zqcd@0lK7WG%7PBYiY@$WHxy0rV)L}i%l z&K9w9b@q#@g_cqumBMkGsOVmj{L=Zlu|({$gjnaF_z)c6GDpv_+TwfYE9Dav zT7ev$jj7qIts`=9477q%McS#(FSB(z443Fz#}YTGr|W>3jJdF%s55q;mPT8OSUK5K znh)Cc@JdYzUCvqo%bk1=ovVs{c*bysxtRR<&2=Z#RXc07QBP6d$=LK|7x?4tzqz_P zBA3%6J5MbSM!I<;RFx5%l`1n7_IDH0b4TyCeNxuYYz@YEG(IZ-9VYT(^Q-v1woq*3 z5k)2=CA?l?CjAO3I>wJgbyCh;WWf(2 z2F45DU*Znqc(FwOo32#*)}nm94{}v5b|n$ZQLX02`AL|6MzJ|;9-9yy*61z1Kh&g- z(WhX{GSwTOTrZHvJy|2lzsZQVnJ5pX4rar=Z7?dWe8;zK#;XY^hux1u*9 zhyVVZ-X|*M?cq>mPZmS@y@iDJlFOMYcXe_jBi8q0;2^4Ucw5Gx42}~bihpv@4raCN zl5#z50WlNjn)1gcxswwx6{gR0+r+IG++F_HeL1MuS6S7`59A5f%nH$?_fC@UR{1;P z940vIOZx?^aqzLk$#a-`mfiO_&J7b4!g6}zj@uS#*+*8D~?b`_HytB{@qCN zTGFm1+}>_|WdQ9f^LEj=eKVTE<%T8ho9fIj>rNW??$ex-XjcXWku%VINKy#u&zmiovGDLndQ}7!+=&Q!bCqXVTbbKv>v|?) zy# z(`AaqWR8NK_W29r*)@k&6h)5LD)X^l?~;;%eADaJRq~2|t^6~e)dDsFa)m2aO>Eaa z5Ex@ivs=xI&VH@pkX@cni`q%~uin5Fd=Bu}R|N4Js1 z#A(nPxe`<4eN2>aHxKK$(cR(Jcr0CJ5gD0564mZ^<%6xlmV>8umlj>6h zaxOPzRVhW?CCt%Ldg^!(cV76Oi7%mBx8HzGb2kcAdV4t6c*+peIwmLHR+yMU%id_l z&tFR{#_w)NLP^CsZHBuW`E2-?^(dRYVw5M8SQdO_aY1#aH3$7qo?GNCZ6~o^8MtB} zr@i|4mA0;Gso<4K^`(c@*(MeE5Yn%!ll48qg_{Qq$Ztnmy{jA#Ro}DaIgIVK`C`8v zA>rJT1e49i9{wqT_RLj>9)zoB`8Rg=-z5klgf*9LD@2as#Y_0M{y95_B%sZHS9lo4 z+4hp*rc9VFpuJYJz-(;$J7eoS=dR$Y<9m^V{sLx7SK=- zhY!W~g952*2MCm9!x2tbADLg;1+E>9y@U;=`QQ5_)X@j!DYD#{w+Z7z6p5kWEGIf- z3h?*8hxjoO={aMxA)TpM|&;_jAjKXCf|C?xK zRQ)H>`m>#>GRsuk_XTE$w&S@GT2Jcp%AnK?>j%AtCp4WEkl5?tg*^ zH~`~AJq7`^YB*R_RJ6u3e~t!dM*!r70{1I*c4CWT)1?NG&z#>?Km|ms-S$+J!}b)> zJ}zi@iR2Di{{E9iQw2ec81RtYc@1=MBRTR3sA1qvzOt zK(90S`irCy0N%yyub~!+dT&1;jT-&QZn=$*Hbw)0tPbkMb^xqg;L1=>JD2YRdB6xa zz`2Y91B9nEBd-4X5a`Cm6Af4jh&hJ3y*WE`0bY0waN1eG6bXX_wo4v2YaSCdwp5VW z4yYhOzc;8qhpV8B2f(D=f-Sz?OI@F+19uR9m2W3J|PTpv$C9FMSm-z`-?t5e-l-e}@UE>WtFT@cewbEa^C*6n=MDe8CIu zA9#PN6&6(mgc6u#fzQeiUc59m}F)KL=x+S@)q1dN3tXt6i*{&Ji5 z=({ki9?%{~TayuhhKT~?daeCtN3KHN*?7}UJ7l-DvttFEFdd){)_{_D2{0NNsi~fE zEJi~Wrb>WYy{@?&1Y8(o6UAdO!~hJSwKWsW+1VLTpg}1&N7<0=7K+w%ILa#DO#raySLQ z6L;)?mbff8FoW}vcw8~{#ymFyQ;dSk=m~hPUC%WRR#vDd-p*{DGawcrw=XB4Hl6|b zD#WS)j(jm;{)!S7K`FBoZ(5l4^{XEsjbYy#Tpa;X(=-?hRuT#^FRmvTXibl6`vLw- zGte^hPd8E^O01l3ro%-U%8{o+M8z*3T>JFt6AT59+1p~aHY_QrVSX(K_=$n(6dtsw zG{tWMX6QhmP8JP#Yz<7KFtBH)>_UcRd4hmSpwwYo)dvO7rWrq@=tKJbK0x#ZD-c0} zFXN%0kdTm6jFoi#eg^@h7>9vLDx=QehSm&|`4lVcju#AY>)OC83o&cJw8>=96Pblp z@%kBpAn3IzukFAHG}=_$-0`62Yt|s3)SZF3`qcFX7@T974emo+^8Dr8Dd$?EtzU5P zY9PyiHeku2y$ISg&g&fg`eC;*vTi$W2}nDzhyZQ>{YV9H>)A;T_@II7WrGpWHv?Cx z9-v|Rp{XGpO<5`GL6?LI>Y;AXd~;6wV5J+}*^e@#S742cfnh8ghsY=tU<4j3P>YC; zehKW_-*J=SW`J$gZgb2$#q^}`uEWFGH|MFI<_i(q_Omf8bUzy<)UG6#@vt}ObJ zP-5I;1pPQ6+7S|mQ^csZ0REQ?JjzMUd&{qm)j&Rx161wrP=`JQsi!ee3_C%}OY z2&whaJRBgxl>y&@`~M6E01$(ew6vxvMZko-eEzK5az5F5xq}I4MF1BJwSoN3Icf_e zE4-jxK6rq9W2Ns_adC0Ln_UdzUDjYvZ|^y@Z2*7weuPb&irbaqH+Vu71nAA-0yPdm zXT^d|{PdGSzl5~(3TS`%6Ff>5(7QwHAv_!lOsP?l{a6XLi$Jo+jq_BMC1lax94mlN z1sooz!}R?8$si0uT~LAd8ft6{oDAd`_pHFWCssfmQu6v! zb+2cHg@!hNxcdO+=kL!=sV57>Bwz{-x5@^wP!K^cU7nTi>*56f)&kmw2vA^v1rx{X z%nVG#YoIkO4{(rk0!onzTn@738xLh%2SYYtOcIhosP8AxEMH$7>)l+P1Eufp3%?Ng zB~Ha41ubVgltX@h+`G0JFOOqqk`{P{phkn|ay%tk~ z33ZH&@OMk{L+ev|FryHB35V&{oSGU}4#)iHh2SSq6!woIVZQdSeqWZ{J&q`$Ils~~ zD&)$)a~@U54qwCNBvZ_dK8oVSefFZIs3kkZUF5zgv|FyGEjb~Z@gqJQrPr@9GRPZh z2v}$R`U8xZ52MUOXFeyp+lmM0WM*j7CXDB24DW^MlPE6s&(_uGA)^pqN^v9UiSN28 zbNo(pbAES$V7Hv>gG>TLnd0|tQSOwf&bb;ggftP5*PI$$xouf-?+ynmd@Iyglu<^` zaO86$nY^*A@ETV%OJ|_>O_6B`-`dlmq4~CIsbuOn@YHHgIW4G(nH{~0Al~G%9 zOH+EBN}3#m1k=#duJ3&kdJ4{N34MKX=&T2xrsBdBZhIO?r2}M9d)B#o^5#?JX`mHK zTbtVsj=4nVD<4V-8eNuR_7PX`4c(nsi<9hHp-iFLXnL#s9ME#8#;Ou zTy3pcl1wTRQVdu7#;L`BwRonjg{fBsIVv^|)W=b%^BkL8`1l_7&tAUXxbu}>`6+{a4{5)HBLO4NLhH9SMa#mes1Nmt|T)%F>lL+r}1mm!TG*CSA(DAXqR1`x-{ zaTpD)xS2*u&*N13)ZR$@&VA%662pIFX`m)?wD#czG_6Bv&cGZ61c^^!KY#uN?H`Vd zh0C7z0I(gGQCm2-D8vt zXIgyth4J`pIN@uv+$cq87AmN;jMRD>rT@~uqo3{ zpA{08Rq+*km=UvB8{e((I4EeXsXv^X($pbH;_b>{>@|QIS!LH!{>R9Aqs%kSU61r}`t*zZwRmM@3D@nS<6 zhPxGFj@b=UXw|`5vJD@~E;BIQPO*totRHg7x_Xb#(cTvqA(uewcd$tqfQ9OS+e&KYFO3x%>7h?}e;VqlXszdgr^K7Vm+N zHCMIY)HUm)j`K7P_fzH;<5WmWj*aANn0este?ai6#co<1!@k5z{o;L}bEU8(9Wx?P z@c!#JHEY3jm2xnWY(!#WVk_}-E4n}ia7clkN31gIGt)VWuU{9>FXY*-b^105 zt`D{b)T;xS42ce|LCz_qu1*N@C&m zcI%=bHr>)7Ee+BwN_Tg6DxEJP2qN8Gf^>JIfOLm6NP~1Y?EBI0|IZnFuXWBk=d3-> zH-_JE`1W((&%Ecn=5<}ud!&0K_pV=pWGJap&AHU#$BSwd0=N4OoVzkGOYRYkBo>`V zL%cgq&i4r#YNoTZA|6JEOAl^uoAT6wKrlQ}rDxHd1^3l1r5aF8_eMYdqiRMnS!oGi4|USdxLk*4lG4 zXpiCE0$Y~hBCQ&)f!?mJ$-NVglDwjuW6plr6drWoIs_Qo=fE&Z*8MW0#E^)9VCLmd zuuSTWt}H<~3`>AOYYGZO$k0gUEZT7+)E=2F{YYH&Bs9Rrdnsa}#9+c8N2)uE8sP!h zpy?B;r3Jr^90aWpIm+^$iOXg)2(7~(@4&@a>HexRePpvcAD}d0AWkB*_mW2A=&6POA-WOE%)PHxRS!9gM_N%ok(e$ee!4f4#kA~3FGzEw}Bd? zYVyMwbo@Ly5s`4%KOR_5@1s*Xbst}x?(;WDIGe7-XB6IzKaHLBK-}^;%a+pQbBYmu zT2005c^GpX!ado9npxb2J{qHddtz{txp#OTY*Dy3~Dv5c+MP-h(iQ**XVQ{Mb3*u$BC-0}tF(fk6IN z_HJ3U7_c|tfEcXqcti@K-hz5&y>e7GGb_tai1eEVNc7d6DF2G$fb&>eiT8~aH0z`d zRt*ucLCFAal0Hz5!zJpV%8d9BC3W{b;jeQ&WZG=HexR#WSx6g`6sz8=>_;JjaWe&W?UWR?tJ#7$x0Yzj1wABnyC9A zp=c`q=ZvW|StaQWZvXD6hW#ADrjCZBpZo46M8gLbj=L<;E1HR>+8i!>0BmIbid37J zWOUok=B@d|AG@T2Odw>S$zz19)+aK4Bikae+v3Ugbm<4=g5RV-uy#D3%ztXgxVw4p zPw&)`0#H%aOZDO5fa6quDwxqA1>^`2Rs6|A-%6XASWs-SGwh=>8?@fntg-!L)WrOZ z0!)hl&O*nZET!b+)&cF_7=$e#8dxeV(W@{;28KgaK#T~;jcjg*#`P|Hu-8@M)D548 zB6d>>jPjkgMx~Q(d7i}0{a9JF(W)nemhZCleP+(DsAmNIW-f(U?C+V5F@4|A&V1f3Y0-ulA?^-@aYeaxU1* zkYu5;kq-{k$e>)b@5Q0a)A;AN5s8_Ym^1=;t+KK*-2Si_$pI*jt3DR+z(C>I8Oxxh zS&y`t3$@32%9K@A71h9RV`pOFD)-ay^PDC$Q4*S<0Xd9 zS}N&yAyZRR@G(Rz2y8^<0Q3UxSeru`2zpo36PjR;@K}Pw6gay@MMM~wQvvGC5>TKR zf%q%5e1{0K(WM!E&&;m0Ud}y_E}V=w`}(q867=+mPh~!bZmc>ipVnh0zA|lH->y#TU%op-$YV) z3A>;C{sG_`I9HI>)NU0w0AT!46C)d26x#roFOYyhvYEHwv2p1IVg9l2R%$6lgh;pji=+=C#PqD~Q`+4S;4dj*UQS z0f4->1KjK3QBiHs_!t-q%yR6rvs=4=x>42T5*@_uVao2LdSw3D9pGL56?e+XK~a8}OGK z0Ek`K`HgsI5|Js7aZF5%bF9Q=kHvUC_Qk~ogN{GAbMMIjBpT3eKw318LtykIS$YsD*%ngcefw#Ob=z;_7*_0P6=a?KH>6e*@&ujR0a~*7`bBFRv?ncO-1DoySap*STBKv28EITIEj0dybC%3VyRxI8oHhb zZy*R0Q;zRDq&<=4UX5PU^Ba4meXRE1hQ zVh3sept&_bC?RQWO%I@RfcYZ72g?kmqji^?^mg_2Wq}Y1!J9z(zy@SK&&iYaOcIz4 z?g0`0iq9ir$fgz8B@7j)F@c=B4@eIsqQIDOTV$FGdQ>8ciUpXt zLdLj2$pd+dRG9V~f~JqMni@FMzJquSCj>wwurjN~4ZBOAr9}-wC#Xbr*w*GZV6f-Ojj9&D$# z7uxTllgw85VR&(abFY5QayN2&4Sx7I{?&Q`gQ8mOrw>9-)tUXRlN3!~ZSn#`Qz}zG zF)@Sk#GjzSNF8~svN*^o5vd6#UZH>2AG#wZ5ra}j0G}EE_>4_KK~d?*J;I^@sB^PC z*kSc;^k*3)Z!=3vlVdTN+ zw2td*N8DYmnwVed$M#-B9c4`SfU}&}`&JoXZ!w)){W9*OQpr;5qR2C@6;DP2!JyTd zGh&9!!a|lG?%unrP`lAbq~plaiMGI0=ZDEUs#(`JA0#{&nPBa~yPprwLND%3pb&z8 zn>c($D@0ooO416HXmyqcr@qQfp%&{%#=pSxTO7uH_@7Cq%4 zdZE)0&f9sHevt4G#klJtj>XD`{kz)U$|Ky=!EiDJJT7A{TwV5kK~yM!L15Vr0kdVd@HShrmfCca6fTkFCXmm-*Tklfo*;i@!waE*&6=qbK@J~7{0 z;MVC(u#7o;x_ZWH(1A$kT7vthAiIDXaNwNl+>9R~<1zKoh?;!q9(?{_w3EZuEUD%C zfjxXa=fP0b1gpo?!w*>z5$YYW<8lt8P8Awg3CYyqiNd0y%W4=B^09IP@FT3OkH=Py zZa>$}I_?#C!lI_zuu0j;eS?FgSw|8##qw#5rI>-yE%HY#)rw!)2Yjg$t~But@wjR& zaxgrKY^qlpV6vh5z5CrvA1f=76cJ2T?9@Ag3C;wp@U&D*^xI-Rd&DW&(R&UT%%-*v zW-orv=kypYp5K{HM~++5W|es`wfK9j*TyP{JP(YHXt8}#Gj~k0=$1&~h21wRFKJVNRyi?+T^A2YTc84ao}PiZb2XnJr@l+sO$mN#CJy-t7u7 z4t)Oj+cMwCr;#7mOdEJIOhh$#k*VnjBq3|XR?yoK@|TDH{z{1J7G$?F@UhOin<=Z1 zO2~50p>AnO+8&q5VEpQ0jKY+4GJwvKnLqcu~ zxN&Puz7P)*jRF5x;(c8!A7)^kCuSY@8Qrf`q|Vx6y1?d%JP_R)RD& z=@K+m+h8lG26ewi7I|%b@U|PoCu3*N2n45?<9Y)I=GGf`E`&)>;g;`f2yBV&>Xc_# z82NPcTGH@lpKy?K2wBq$;fMq{nVr@nuh?~G9>2d*QjI!mMamw4MVy_{mPe1=6sN?# zc5b0}EelU9Cp8he%|D|>z;FyR}Q5ro$8tz1a>gM^tVWP~( zA%VjTi^%HGbuk04FE!$O-Ey(fW$jDJIKlSdDJ3@w584Sc1c`)Xj}s;?PKJ=l5pA4- z`2I0qs+%GZoFx;+>eQjhN9W`|;}?&9OX8G+B>^kt2dCF3Z*dM$39qAX z^7G~!h|JljALto(1mn83Q2Ay|gsjd6v&QzP_J3|&dpgagKYBdYrWHnCO3if1x@UqW z-b=OKXC2vpuDBk|=l&PnG(OP9~ z@NDXiJtbHDr~>|5S(hf zPN#mB@BcU>NGkxBHu$QDM=)$7b_BX~bBuy$RiQf8U(9f(3J)A-G3B78O9*GlCl)jIOD!bZA zCy3l{d+yFU(V{bk70Z8}Fz}Zcjo(SnOy}|Lo=EJ@%xcV}-E(j#INwpET#++smL}%Z z6qGG?msgS;1bkf(zOfT2-c z7;M7n6{M0EIEJ-5V-^z;^XB=UQnl^FxViYQk*kXCZj@3(9RVpS&!E*n`B9_iQY3^w zU{{!jam=^ZCi1G{8pz>X(Pf!Q2^Db(GN!*Q4iWWMvPss4$&n9H9cDTz9lYBggcX}g z+&<0LaYU)WL>L?UR(f^YcT8>*cEviiz;^%CxhtmpdfuLDbc6?IbpxvaljlTV>2jWsQdk-R;jax-3 z@-NZY9HgH37(kr0tmUO#m+oMhUJCZIgFP!t((riUGuZlJCJ2=yZkd~9oZmn3M{TY5 zn=CzO>J|s|TvbsSQs3P9aG(=WEBLbOn#5_(uey$|xgZ*b=*s(hM%^ z*bCJGk5Gsd4e_f96cglkV~3RM9E@!h*S&|eQ_(PjRnj` zHhM@j;;8)^w6Nr*a5FI5K<4=k@QmC+5z^$qg?UJQxbEgrf6mdr)Ot5yay)u;R!9~L zCc&SRN!f!d`VOy==T=L)m!zYg^X?O|gna$BY_SJfQXP}bTHj8AdLxSau{gPW)F5I- zb~(kS>FxC|nn-)IcZ=RF;vHeI?~}stAHGxAiyB9ItfMBB(nlb6==49BvOw!Il1eAR zU3a|CaWG_Z*PoC0H^rN&?coP~15BAz;o_#JZ=_q?Msl{9N69J>L`KwN zpf6*o0d#60%dKeJ&iywnq*?O6MS$~v1~?tNKq*Db#ALV0O0gOLf{6(bTAG0-h(h8E z05bubU>&G9$^aZE>;4d+P(Y#$NPTTX(j#i3pn~Rg-X>*duL2K)=L0Stm?{BkYo~7x zkdp;u9SQ6Jz!2Vy{QS?r%rYGC1-*S@h)FW!KS9%#q3Q?7T3$O!;ihAX0hdWYkOV#7 zNHG3-WL11bVdl!AA7bRn5`z~2iXGrncLT;AF!?Y)y)GzePW)RGCi{kZ0pk=_-~#|U zf{ukfbDes3mue8T4jM`ed^BEx(a-=)v7V_8@%Q&%wjX?J*K)%F_-I$N>rL(_OM!Q3 zO;@N}<;_=j-f9cNm1g~wR6178}EyC)7DI@i`fmZnsPSrk}9#9Dvp_P zB-&KfNE)|~HK`-FVXsh()5dmuGH|W%xl`Wv{>#_sujkV}?}TnkaUP6gU&2s zNs$4p$Xd{646}wfAsSnIuGw;F1HgpCapeqv49R8HIWkGk9n+Dr0so-$xWNE70En$R zoUYf23hXFp0l=Uhvo}#uQ4m)X_~Zzb+kiIp%Ia#F=fxrU3?Q<2W_i6oJhX=a6C_X^ z4*+YG1QsLFro31PU;?aF6JP@gfp5sNBEZjq3Un|)Y4YfOlgC-PX+M5(?b1`|542t! z>PLZ>FlglVcT||X-2!B00?=Uc8Dh_UVc6wp8u3{otr6%O1)%V2AVr zau)@D6H+L|d|iNZ2i!ClBl1!Js0g7x07MQ2odIAaqgAp1+NJh@3IGAH%)rZreC7&3 zu)tymRS5XA;`6m&o}>T@GQhJZTf7Cqlh>eza&>hqfT~7YyuIO|HUnswJIrpm?Eex5 zPFA7U^Z6=tnw93?L4WPyd^s!u5S+o(Ab@5Z0%~V$Ru%;?$Z%PiUSD4a9p^I$(Y*!m za8yFVl)fNn4Ga$E!-)3+?LxR~FopdW zgsB6PyW{R`0t6V(H+hVL9{`MrG{8Op@YHn#y4kyT@BYA)0LcAA{s4Ct7}DdMRRT<5 z;UE(gz^ASQ_8?m!4}I%R?3+)kN{B9QHfR$0+&U-!I=Rfi2zp;h!73nHD=hg zE9k)g080UJnBUD>ae|Q~?k$24_mPkbEmtdGTWjGG2M+8(XnN8rU@T++sw;#SrKJ4n z-2v#yr=GSP_-S?SAab!r76I`88r-^TAjncfSB!><2^u29#cGKB3u5I07%Hc-G8#as znALPCpZ)=tKR~43eXt?nokkgbeGBv%w5llpS_J?(_-%L z6Zkp6*aU$Tpq9D0x#T|B-%R3kM8RmHrf=J>&^->VD_Dl+D1nlW%jVTst@G)L=0Ch= zh_DUupP|9vfWAx(=0HJ~M}pJUHXg0`W&_C@cE}aL8~42Sii(P=98ho4ZKo|EWvib_ z&U4_p6&#EN2YJMRj>#Y6AtF2?S66o%1%(Ko1lb^~zhrGj8i>@Qlr5bBeDOf{Jk|41 z0#IJV8twq(q5;0XkI;Jnv|V+HR{|4@a^r3c=e_xU>NHP#3P;}IL~|Jy5d5ocW*~lu z(?}=B*F8J0Ev-htuLpCb%AK}UZrxfbeBtSp|p*{Ny{JlMb-RR)FP7*4WPdzVQnPNQ)3~T(pvPqp2GuAP?As5Cqjk^%JG7fq{lelh4R>*T}^zy-6|F`2n#6XcYeDrxE7C{@ZZPLKFoXF`miUI~P=&1oz{W5wc z3dKsnqduzOPY0a`8Mtc!QN)wF#%F*~xz4gH5mtoI4xPC(2I zZ0t9-wu}&W1|Zy)yX9F%|73w#6^v+)fvn;?WagBgpZ_T=Y#l@%v$0%-ew{=|q`$K2 z$ix_sAf$Y*;HIot)v!>3N^L-5lH>lPpB{1BO8IqtJpmDP^@}QEoFv{ ztK7)}^sn_Ei~YILd6=4%%F^ua8oEli5r0+1I%fP8LpthSrhS>~*J*vwX~nqt%HWTt zWwWtzWLQ>@tE4Uq@#8;fawJy!zqRFt|B|Xd__tL3gWpS+KiYDN9~~WvnwrzICgK?S z|LDI>ft00R=L5y~^1sDV{{+>P2a99|+B3xrf*~k2yNVPN)ZKqSW#EG?3z5b&d#qrk zpab2aW5{NEtN?D*6if1c8-bR8IN|*7qXkNdoc_O0$4A4(>#vZ|%P5uOv{b5BoMcOV zlR~~RZH--(uIG4vPP5ur=;|#G!fU6jO1XOkOrc-2D#j@#^aL0$nV{<_W;GZ3bq6M9V3Yw;$e*qW7?Fo zNeh~a#Om!|WI$;e`EVSX(zTr+zPYGi&Chet5Hx+Tq=reeGaAw(RbQHGWHn91^F_-M zX_U8mSq_(o9iHvEe+cbdt_;8lcdiquC31QNC7>O;NppqpXzP~zW$@Ot9~#PbUa_Ic z`1dF~`j>vT45;Nvv5rBOy&rao#6gENQrBjNIo*kF+9CW4!VvctWTpD{w^GJ*xkX={ z%%71j^B&}Eh&I;~@pb(aLe@eU#~S~c>KPK5<^H!6+N7Cr-ZOMx6*k8nh|aq2tcNie zltL~c@X=2G>TEmx#^2MBW7qfqo|HavW~Mr~W^hCf@za8Q*RjYE|Ah5jbUgBd;2AB% zO5?XPrI;>?RRLQZI742`Il)Y9%u!jR|9A(8@v8suwz-Xl%}6F_=^|t-&W_}f6L{#h zS5aRv1WwPUYm(z(5eJi373@#y6H+Hxk5zR|1Y0$3!+j>>> zMcH3WhciFx#Wp=;Vk&PUP_wRuJ1HwKivbs{oaj`I;E47T>E%Kj6pr7;z*P5K>u>ppeE<0!!J58Azo#YWyyOP%ky}-Ie1o%E*@=+O zv+9<5{}Ak$Mu!cF#D;w9_ly9Ek&B!k(?w7;$>aE{bKMC*p*Y6QU7wc-gyuUXQ!(khmsHd7z^+J_^=TKy``}|K_jm&cR_`mrJ zQ%ETOcmDqWVXD}Hxu}f^@5dH5m=-S6DalFs z6MWxwanuqrM-F%MuvVzRKSu%TD zwQkCWL$UnU?yDB5o@~Cb3~%*5RZlrU(@o@PJqF&EKR6!f2U z#N3n+-oa@aoQ-4aqI;2HEr%Dwj)tBhG)TtDa#}ASCSzBWZ9Y!d*!VI@=8ee^RcID$ zg2lA&8UvW<`RHBG)f<}){tcj}l+LmreVXcN%xHB=xS22;j3m%k zlHsuD^G9~LJ(1Er+0j=1`&!NQcMQYO&BNVV?mXRGwUo1`VbXVWbQ~%pbqhidPvrcr zk#t>+d6;aT@}zx1E}Sm?*t3y(OybC{hFbq2>l226_VKf@#^}yEcaVx|ct_ z*=32YsmvNx{?+l5r->MNFP#ZD0|HdA8O$z4m?|uPJnT5$lq1kzNQ_IkGr${;yNSQr z+weBNuR1)!2dko~4Syaxs3$Dk@Dc{QqNCX-*j z-@QH#-PFGe-f=N+`OT;6ZvK#tm2L9ni$H;lZ>eVqcRe^8UIb@%hNQUgZxJk*_}hcA z?aKL>Qj($)H5>olT`0W0*&F3dvEG4sCTdY z^1HovXy@re)7Rr?#9KBtnkV*Q@UM?azK0J8FAp$En!VPf$1*#D%|A&*mHFar|5ABP zNnWwWVldI#-s<^A%Fn1F{(wOC@?H5*AF9|YMBL=F#K)n zs%P@iOM!z!_3?`m78f@b^d`IIY9Fy2lW%4hSnz>!ybi}BhJg|(Pc+H`mm)32d2U;c zYz#AfEKi9fiKL!>elJ;`c1t;hyiHP{Q|?prH|AOPO`-OEt`1jwLP0eqqeQPc5EaH~ zD3z3ogztdaWR#h~6SsP_Kv6@xGu|6*`CGK;qrEhmQ?Q5`ew;IbQL#B`g4O6nJNZ~> z0a*54+H|lB<`?rK%yh+R2)P%?3BJ@>_t_wQ=5@Xs3Njp2r2PA-dbVcV%rl*rUwdh( z{8H79Gl}-6vQ@0}0!eqO^_Z&%7vl?v+)CJ4m>70t^I{*B24QSUbG*^|oGV*$=QnuW_}tQ5OnbXq1#5;Izbl98 zd7yxotciB=-%W&XfBKWTV7~2Ajd*plkM$LXKeMU6P9nBD4P$;WxAU8ds0shnI7;+a zjJ(lZ*(V`~0u50;ggT!wCX#nISt-Qz68esvlh zo|Yu_j?#|;X^Fb!*_)*dc;y{;J>j!(?ecZmoO*A;NW+5OJY+^;`;d}k`NH}4o0lAc}e_vM-cDSe)=KQ_3SBVD(8-izvBTx?Th6<`DJ2`e_!FQU4R~+9 z(O0sS4UqMasmpRHxE>BkqBW+^@sGo0Fl)QAJ2XJ{d;NNp zk;iAA-$)LYZ*2ZN6HIHKjKeMS?0=!U^2+fQD}O`W!D1{&B_dB7N4HS|>sQ{Ars`x= z2eq;<<^JKH)G<6zp4TT*(fg_DDZu8)>F8>VqsqQ!@V}ZI^}s^F6nP>8yo{B2j;6n? z8kh9wBMi4wA}@IW&jt69Jn1|n%7c23c>F8;5{5z3wtS=)RI%Yc_qi^U^B(m6-B`z8T~5;?-Kuvqeq6T{f8pVX{q#xx zRRJCCbh$sWR=z~7#iu`AQSfZpo(qs}h&VYtsVm@+SJXftLvN=#H6F6zeB1UdN*C|1 zK0pGumTB`}_4ejirSHq&p$Nrz!1g~TpJ_@nZyFcQ%CXhT$h5^Pp zXdgRtzS+sxoA}k?_?Z8uBs|hlz+3@nJv=lSuGg5*Cg6)@eA{c;lw+Z*vYEUuf!=r^ z5FPtH`dzWe=DU+YQT`-*^&haEPLJC zo%d|YpZ~s#lMR01)YzysVcRCS6*dzp&Y@b<9lM*A(RB`*9oLZ!6h_s9+>VuJxORh>Cq}& zn3=5tc644(w(lN4^|n&aMpRNE#*zu>LH_$}q`m=o6-uq{Ihf;%>O>8}hM+vQwFsq= zAqC1p&$mb-{=o+BYjM;HGq;yb!Ph_0VCNGj%0%cLM5mvF{rydg8|dAEhd;o=6C|5`;0 zStTi{;c4E*&fv#sAqO=wiS@=cowh<_f|;i-?^eRLgt$K@sU3y&7iiSEzZkrEcV8#5 zqS-<7g`k^0hCxC&Oe<}TaSiE-*|&C!S@f3FNvq-#k3EE6cLS6XBNkTZnz)G)xb@SP z=IB469l*Uet9~qaYnrOz$?27U8riS`gK^LW9Tuu}O$vO_s)zHKsL=0_#xb_dW=4B6 z(Hp?>?(p?UgC9a&qx~Me?o@Jbb)@}0A7-B8XWu>rD#gd+XaNPBTJ71bTj9K_xEpCO ziq2IyY|EG`WJ8ooK9W1?QCiP)7cH`e9t1z94dKgA=eSS9j>|OHx(*3U_?^dPYni48En4H#;zj3VH zY-sW6peX1tnN7BL&!)^jpfOl&)M%{4uRdu^9YeP&JT7x`8$mb1Z?% zM#+DgJ70bH^LUD0y(!h^V*?HK=X3Zd*QG^tNA5*8m58H>tN5F++4^M^o!&|?3s)pmk&IMY6EM5an-QV&veM ze`T0lA0$?XoK|p}!B?y`4g5Ztp`k}b`am zBro&+vNoG*BZQBuXg?UMO`6)rNai}XX5^{|NDUO6Ca9a~$`%b|e&-n9&|Q;TIm~Sl zeM#pFo}3I4mnuPQuU;+8ww>rVE@pbf!%RB&SF)CcI9G=rkA3UwAr@-9;?n$M|7zY8 z7mZyX%eVg9e2iR~z5|^5!gmKLoQm_1IN;Qb^mM^gL3RI?8UOhKo85j#q*-kp9h!Ro zj7ETJ@18xP_r=00J!}^*)$Nv>3iZ>y>WGTwTgyv>HrU|ds+8+eHi}aVYJ5-RYOkAx z;$A&#g=%?B_Ly>4^{e-;#c8L6gDs6f`Eu9APW`xVsl+?}M-Xns`Dy^3f}M~$>aMFT zcW)eDXOWK2w}+~x?8jK|o2;1%wN?u{a~F^4$j&BGRYJ?GqzL;6(R(p#*p`}OlZBsff_ z2TO5or2LIfZaf*SC-*dNJM6(E&9wDuTQpwMlzF%$wetG=lZkD=Uy;5*K4SfwCfVLM zjjkvt4R6(PDp2`>>hWnErdI=-sy<2D`dK=?f1eYzK9a7aF;Iixo)Gs8BEjR(R*&%M z3fo{!34^&&@&bF@w|ntqNccR-i*0tMqN?0*K26B{I;_d5Uhc&1{6cUWBbn4haHqRp zvn1G0$oPv81Dq&xAY=B`|7zpXJZPk3Q9^ZNbr(ls;ONH}zucH**iB@@WOh0D&RogE8`7wG{PQf-dOplQ)!rb8_%k+hP=HET}mWNB%)cHrx z%uM)47?JRYlcoqbN-u$E$L1#{>E~mEIL;lOKWmu9ROMjohbKfoA)V0vo+f>tq%U5r z=9~J20RL8NK@otgK%>zr_v zQQ1ark96-v;Hz_GK}G(2?`gMof`_!0!lF~4{6)2>=o@z7@p-s|%^H>+CcFKSmEI@h z-_~Lhuu{v8F11PJal>}{J(I>)h15AO+eIdNuh1Swn>Dv;Q3{Q#&cm8)KO1|7rM9P9 zrx+-_hR3os)f!^1%szH_uH!$~x@v&dmDs;M4!;pTaDov0H=7-)V{P3ookW)=WDhHJ zo0+WE=O|e?6ca^ih)G%l0jiqbbe8XvhJu3MgC5$jrkHgcxhx+R39(JdG-89sCIbS* zTL&cWIm0K`{7vThHb(3!MW!8H4P8iElAiR@)^v|rKkeaoOKTkr%2r8DKmp0oBWtTjh) zJCX`*7Y*)TGlZOsPIhNI^p>I+-x%Tgz&VPy%x}hnY@)A#k^0OxW$4Jz-Pv+{c3eC% zi;5>eG=6;3ZR@rF8+af3wHtQaR;9YDZt8ePFT178*2mFtn2&>U#KMf)a{QeZvn@tz zFAj@e$JiOQ{T{bwL?v(TT-Bc6!4gYkS5<=JIo_63zu*82AW=7EwTH8OAr_oY7U_9` ze0&yY{5*c>lT`(~dC4j&o!b+&O@2SlNMkXoZRVv7NIw(%?*2MM)fR~wJftXgQugFC z2+-a0x>3I6Vs9!=+ZT}bJVceo|Cw}710Bk}c80&By!DmilyWO9P)$V^J|RQ;t8w4)w3EZ=Z~_0Tqi+ANAzbhKm;#4>D`wQ$_4UlcR_Znh*<>z z?fk2m)C2FQq6YQ3d1_+zdj|d4jM$Ol>w^VDxtj8d`ioYIJn-1qeZQ?nxovhUyreY) zNXU9gqn2!i4?^^cXWwD6y=6YCefoDVO^gJ0+Dt`}NhMv8-BxUD({q3 z^c)TUW;73bdshR6Cki50M|Tf9(e90HGvs7ZCD+CetugK$Q!sFy7~P=IY~FikE7Ki4 zQ2%1S-i4y#=Oda071{T$wwDJd{w9$Wc~6`VcE89?Dmq;AYyNOCl0JklUo$?ibrUNl zSx76uEy+jhfBwqC>qCpz#EMtD17b~unce$*d{PR(jnH9jPYupyHx;w#ly$s*gY`}~ z;&j(G*&a(2#nVOG7Y{q-Z>I&_Zkr^(lt?a{akjs7@rlf;==&y(8;{Y0Am3a-$aAbe z*=`{%>BI`?1D2l=oHBcsqVQbAYWybxi)hKOmKjAVgpa1a!->?N_4C^k;pdRcT*-8>kvM2ebSf;cWK zr%&R3@?SL28rC1&bjKaW{I>ioc#g}|e2b@2mlm#-D0CNJ4^w5hjNhJR?Xi5d5kB_u zI4N=yZ}ch6vfhz^Auv9p^swTRAC2rf4?V6cM)i$Cy&+!=wP`#wBu?8d%*xNEj3AmB zHF`_ppCyWZFWT<%6J@V+xse$q_7&>Li+l!tMNIRWiuWgV9(km}vT>*S=NrZCL@01_ z>Z4O!g9x67vM6*8Jv6k)gxq1fYLsloLP$lv^HC}#-qNT3gEQxApNtu~ui^ZASZ}M$ z`8DcHqQ@&K%5AXtMYHT}_THX)RtCoGsSH`#(R;N_9EeYu?3u7G^S?jU=6CzGUPWA! zhJdwRXlC-0(HTosQDHQ4Ki<`UVfbShiN=qP8?s|OLBFjiE%>kWX%Q067W*6$iVj@s zI5%;iWE|i{{%8Wna-c29ld)-_Q9305-00QTBZqO5Mz(bX)xtTM2aB(3iVf6uRdM<+ z;_JIu6q~o;i3NeMBbM^^?2p8c+>H%Q zyQ}%FDc0R3>4t)SH7JWh7rGq9*YT(V)4jLhXqw~qC(E1>O6VDE3}wug`K)NVZ-RGt z5tPwi8E@4eskfXX=z3;GC;sBFcUGzk=R)W0{XD=aK=RJf0>!RqP6lt$apRe6 zL66s%-%BtO*y-6Y3;Jspq>?1V8FN8)>%og?hKm?w!u+c2dhDW^>KrpgsdRrid%EA# zjC1|eUxmc!`6H2fDe}1gvio?5s2}$>^Db^_+n4w1#Nd>gi?S5u7tqiNJ{EEv4BEs) zxDuR|c3u<~mo~ljE5RVB4^ydNQ;%p#@m|$!{n3QVITC9(f57mtJ-YmQSi0P0cWGHh z#nVfOtKD(^(P+JrlE#nQL`x1P&$JqQx~{vdr}duA%5Msym3J?79|>q2%jsT|3KgW% z&R(?L&!6{76KrZuDxWo!{6uz`*G<<+`#LB8^0k2mNxeLB zvh|^Y$eYdeoi{nh%O05xLn!CRQRVejEr*;3$73?WorGD1mA@ymUu8-J+ew@b_$o)M zA}o$sFSIV`&GxOOoLCi4>7BWI6>T`ad+E84_vi(xJVNCbh73hRUT$H=y~zc085{G- z&E)lAGHp6TC8q4Ft+cYTY_L1XcuJxXgj^4QXpi8KewI?4sd(;<3s}|Bm?CjfylANn zK}2*5t8#Vkj`3!F;p5(T3w*73B8k7V?z)az#3b`;DSU8JQC(Vh^GD^3dDyl_tsxjvJCKJEs(4{;l zTMFc|R=;C=?8aF_=@>%_UDU08MItrPF{UxNTsLx(UG%Qw`+2oS$W}3$r+AZ>P=6i? z&mWN7;9)4@$`Sq2*ZG7!QV!F08evZfJmPb;_Q)uD{3MU}^gb$UQO?}^+w1fl)p;*7 z#H6F3i(fxdtfvIRNj#}9YdZ1IDJX92X!huF$Hy7Ukz=#k zZ4eB{^X5vbK)`#N+*1IVE$frZ!pzLduQl~WZTr!$j&{h=u%4v7Xm~V_caA!)DsJzc z^Z1`#r|2Tx%AyvZo4PPsj1V?Uo<`q$J!JIOg|V&>k$*|fZg*jG-0^Z z7u&BVv9W)U)yeL{Ld_Ij^zm~>n zRuKN}mqEcUQlu9zB#>|vr@-RKCxV&O5O3<3x-g>`zeI@BtSPI3c@Cdry1V|^80>9#JMyjO3*^ge&zO>yBfKeI!R4X^ zyYfb-$7Jm6%2hIkvn#qUZzn#B*SFUg8^In-d22|(a^6}xzhsU%qNo&@OO!q0JHow- z5~R11ka0tP^u9}~VK|eaviW5o9nbEHZ_1DB8%`-VwiQwpcA+g4q;pdw`Tov9hV}lP z#mb;3K26w!aGF0}qdie3R55K>QGc$cDj!kfBPcT?y_KkXe7;yyS3L}q_4E>nWLk@i zm+NNa?}C4|@y*a9<_d21MAjx`D96;{~`B?4g zPxIlg*Gq~`4lAu{j|7=`FCN?ypmTC1=oa}T4tBZcAiXleV_lRimbH;{+=?Zf)Dw{r zzn`*1o;Ybp(0tnj(~ba>5^k`q2WNhS-Y^7)?tS|~B=;_B%3{LNeI1V&Q@HCEAI0zW z5GDJ^;Y{9%2eKI~NU1|<1xnMHbNKm>$#^ym{pB_WCye0op9BU{MZR#x-Zhbvd7Q#1 zV>-6spEKl7LFq91iHqk=)ryeY`x`PczcE7dSArpdi=PXoCuAH#J}-YxEk0$ESpTp_ zU{LK$Wpro7-9X^U65YG!kr3eS^_@MXxbzuDB!>7Wdm8CcKlFrnAw%`PGVJk8$~b3|{F|9UY$WSGADiNDx9`i|sLpm>KO+9(*m{)J?xyEiN8}}VH7_+1Cs$A} zpZOM3PHt*!a==NfzmjiI`3BMqkJsTQY%fO;yO(yA7XXk~w+06g+kt z*Cqyu%n}3pp=L6c6g<`pHjz*zvF%@uRHy>NI=Fg0gV}nTcj=fvl@}7Y2M3+-cuMD^ zsKfHMJPaa@jla2~$AH-ja#F$jp+{jkZ*y%p=xFn}$bne$Vu0M> z82<)sG^qh;Gk6~so5j?Eg7oYF`-S}ruAz5nqH*dm>DZ*QPDv9F(iO3F zj)clwxC^><=Btm=95`xd3E@3mPokcs*dIqGyYXF(rbR_uJ|2|KB{0J3O89<8@|5{t zH7_fGXnx(c++Uz0?a}JnGdbMImtF!csXgIYzeDJg50y-9=tqk-*@#@6(?4RXzF37gAXs=fsSuJ5F9kNJ43e$faZ+(S}{8@J!TWuUR~<6#b?M~o}vGeTApcl5CWZ3%IZ!s zR}lp8Aq=($9Ib-~z0Q4j=lrGeg5?3nubq)a2l57~4R;;sTn1E4PA>*MeXm2?-h89? zOVGvR-{9)t|JHmwnI>sY^bq*8i@U}dTPkyxZ#iRGt&liT1KFT%>ycBU7(9UItfC8s zx>#_&V?3Np8xSE@@%z%R#?Q6+jMn$bjLTz=t@s1uT)Sa{tc51L(>5dbPX|m52~)yk ziwV<_G7)vgmGSGsk5`5{J#EDpqw;0Td@N5mhDD?&kLj8=8qStFuO~X2en7=Dz9XTZ zEsHzq>+8r(Ft_aM+H{-40ZKm3@Q2rw(n@YDS*c^@XLT9$Ptg1p7dFEIDd6jpZ|B;K zV(Cg6-CVgj5IA7Q@OD9*--(2i3i0tT6oB=SBfcanY9Bq1{}T(-{w2$!7;7vAlajea z2^zI=f2U%Qugm;#;1^W8=1{WY}Z^da*Ht zNmz4Y6@QeldU&toec(eMilD|R4ZkZ`o6cqbF5-nV;pb1aWQ%dj2}IzJ`_;VW+Q3Py zH(o1rO60g`A$UY6ZWzls1OH6dNMF8+<@Y^JKa~`)i@ar#!E>eXrrt4TJv-HXAxO*< z>7yq)-118P*;5e`m%4LA($3qnDDoKPjOQ_f8KOSyt6!r*Jx^#Mr$ZZygVdHX&RlVE zN_K6zT{3$jfEb2+sdRuBEt-k&kj^99@h^%FJp^cm8O&RD|AfQEjQlp7u3`!-kK}bc zhj+l6@ROfW;sZSEKG=L|wP@vKf4K0&)V(F0gMZR_9`gEwjJOY$A9f=1`Est-e0foN zVGG#jQid;8W}0;o=010&v9ZhC_ImRjgJ0!r8ukV$F?M?eXG~H`o-|p-hT{t%Ex(1c zstPuAJ1KlrXRIfvL&?+qG5=dB2?2)lJv1?8Cq@+(zG-H~jOI5ZC&;x`n% zHxZL0Z@=*nV5NkPsP04M#pC|1`q(J9e=8cDz0>6_LD(Ea0*gG68GDw?_b3UaN)2_O z7!EvNM^$`GPRAfjPwSEpUbiG&>TGA!I#U%ECpLQ0l+tzfo)^cK_#3)eRp0y&NW>48 z3~f^%iOAQoc`F~$6_Kk*P7Dh`qs^l>7=v*GYv81hJ#Eh%ReVsu--+A53?++JCR^%4 zZHH~u@#U06Y+h|2t}V;nIoF(n^U1gV6uMAZ-X}CS4a|>t7pThlT zsJU;7l{eH-qOxzw%xt0v_{VWt{pb%XSbv}_TVzC*5r0lj6z$m1T<5*Vz|-#MFzS{( z;Lv7_8vmE2)&*Bik;YkuSg?qW>@{Lwo7+xk5#W!n-tj+yixY_Z{>JXf>4gH4+)>9h zKifp!{%QmqKg@HpdX`M~5twNq*^QK13>Nzch|HW-ofQ#DJbk2l%MfEIqBt=CcPM{6 z#3E;LePBbpXZPLJl@=;Ufkvl+?x%J!fmm6H_7l1P}Y+>pf)NE2d_wK!xxRGG?>sOZU}5OyRNf{+(0hNsDv^T3ce;T?R;1~KFcda zYY#e0CjC>)__5vb9h8SKop=0jeffs>&ohs@6fJxt_e;R-nfQ-!$i%}_D<{4Rz3`A> z!4{EISw&2uc3u4vuMNdet=barnOMAv6Hr+B)Ln`XW=iJFY>d6yquh2uKkai>eY47} ztUR;DNR!l+`^ueQrDXC{vN**9L*?yQZ4JSXpK|ui4H^_^O#3({dXLFn;#EmtTgHr6 zhaG3X^L&D+m=`TqU z5T&^&1rpCh#e=&AuL)`~8mW%F5v8M)haUz$)aU(NwteddKDgT8(wsWPP&=sJxP#JI z9-DjJ!qTO{#COub1&w>V?}<>^%PznULoni;Gt*K|w@;R;{Bg^J`HsG0G<=b(ztK7> z$=4^O_zZ3{JWi}NtEP>aO4;B##QqveE5NtU<#bc4NQX{3FcOQ9Q5N7z@*zS|h%821 zeQc7Hz+)w%n_)52dEnTAQh2JLTj1Oh%tsRO36NQy9x>6uE+gFkTfAr2wxp;!;a4T^ zmUmNZ}u5`zZW1r0U{OI~`xyzexMGFX2b0dDaQ`5vz89BW2NjT;b_4zl$v)DpK zbBGRYsVD`IzDt6QLKU6v`B;lzIPd^|rlD3CpZhu`R*e2`T%im{1lQ zW*B9%QvK1hmy0SXmMfHu&m7cHCo~yUv0*Rf%j~zz4Ev$-0NebzGDmb&M7r7(cUZLtmWwc4Bb3XqGY035(w|dn>)1yQ# zEZ0z)&XtCuH9o(vI{m)N_)*spxd4yWgqGw={7VdFYoMQ)_-0QvOGe1S4HCeNgv*PU zg-!-hx+h7NW5VpS{lj!B9u+EX-*D0AnRz&NNJsW>n&SXO>GKx9);0ltmS}Z+`sc>?6(_)s;eI$ zq^RwHF|GdT1Mq9y>j0dNSc?`I8vQMWs{Cu$c^I9%f>vDKYa^2KQ_&d}U~P-2fTVrf zq2;86O^o>oi&VnbLdjR_}`kKUbbl zYKvS$BZ-OknKG#&k&t)SUZo2&D<9(4RaLcw%R4rB%*V$J>oV#S+-+<#505UlZP%qf zNx?1uNo1Ml$g1%luIOAG-;-nw3{$X~=s$rFWSV17Rd$D!wiPGfjYQYFq5~kZ+iZYm zv&|xlO0h7jc!1s8+t=0g9u3qF+!~lP7(8pIy1w^0xX|1bHSVruafnRN;;A^qvmiaSD_;v;T$Zr)Bf`Q1m@i!>dpWA=8;b@Oeajxa z*jk;JQ(i_h4a2mn7#9$22C9Cl-Pv~XKExu5=jRI{6#;k?Ky$pu=9Iz z!~Xj>W0Z>T?^YJKi%cAFpr4So2Pt%1oR)MCe|UwYro#h^bK0hD6fnS8^_<&FYUAut zY3<7O8oA*TVOX-&F_QC?G7dVT$y&0PbG&K~LqKV6&8?-js2Y5qquTyN!vMP2Y0ojN zcl9Dy8n1#`5N%@#_U(`d%t&f&f)(XtBSueiWFmqxM5b}y!1mKs(?u7V=Q z>a(gy1cuxlO8%H|+&mop^reZM+UtW@2^KX2>jk-?MdtT5w_D{WA<-$G?mL?be31^Z z_791vChJPj29u*q8?S>1@D{_JMgfI7W|7_?<%4WeHJ|xvU&U(Ne1_VSW?Yq zf-GohxfNbmNulcys?ecFg_lxjtc3JV=0!dXw|U+!NZnqJd^E~oB0x)<2K>^FbJDf% zmEDp!Okh=s=FfqnfxLKKfR0}GB_n+3=Ce1<$gAJEc`9pS3-aJ zZ$f!7TuIFP-oAr^<_0P$`T9h2T3Q#UU<|P~0!eW1kiOO~VY5upvdOThqu-gYEG@0G z^2Z(}=^Y!AlkXihxrSU$-VH!Cu6YAIY3UFOG2$0lnA$Z%R!EN+LJ7|)SLLg9>*!5? zXG`-NOfum?2;;|v2{q~bHG9UtpJB(eOng{_|08J000J1D^*SaPgXt#%+6)aBTkDl3W;(~Zf*x?Wz@-pqD-n{`OZ4-ZvK-3uA+^;Z-?s3QN?0GI7W z5cW*XFuL<(O%E6FBW%WD%mbDOWj^FixySBDLF%t1OV0)uD`MFg$CDwN*xVL76J?*+ z{50xa3LGu9hY>v>wfo3muFv_-?Ut<9&BAWhjK2>RRuExxCV{YxBsk$28Y{VTCG3K_7WL1f)M|$s^q$P(4)$Dr zt)H?Bb4<^FM#Q|K-l!)rGI_x10E?E+aLf!BMC%tPatsS!-m5*fW26G*yvXzE zbfts+^-TMEMalNTeP;jYf~VLSibwlUcL+<$%%EVi%8XGSUaafMrruq}{;gZ1i{<6K z=k=f%`${`qo9>f+M}w27$680MTjRR?WuwvFLANMjrQTr6a%X?(zNye3&>7Xk;%Md{ zmjCE7d3`FhTFA6c%N~Y?#)>kr#0zViGwKFm$5ACDPStgqnlGt-R<5ZtiRt-L@6mJV zF!CogNI&s|rY13KO)3ak;1BJ~y)h976=_hBPP$hVBFCr8@?Y30@N`u5B9GEcPlGXL z<+|PKu}*eoc-%3eS+21z-_-zFG$MTzmA@~_mk#kAWIb=E&<%wE(z9(rL^_Ar~14_&OhBKI3{f;^)FmMvm~hJMK?)c&z&&)dc!2a^E$0XeakZ;5yqDsagZC{s1M6N#UGQrN+Q2Wu@|6Eo`dT_YZ0vq9S)XLS(1eA3 zDX3I?8Np45{P3)Z+1u01?QlSne(<{O4+fGXUUABxyYtPgtc*d#o4#g|b>EEvDN%bP zIYgChUAXPRS_uwe+f?9bC(KwZDh5o_`On*ju$+MV%eRon*x%fGYLS{hc66tbvBiL6fezGGVqq%xV zumq!}(e3OEWZNiD%iXMZ3Vx+^8IyNn`SNU3^WuY4SR01WNQOG|dkQDo@!P{2wT*@# zk<^Ca7B0J<({OGMP0Yi2y=W51`wf&|LZGJ}bD-BMlRWD#uxRPCqt+Vr!#& z8?NnUWq#PGG1e`V$TckR0M~&kc-Iy~+dSkTkUVleAVxM|rF$w$KiYQcsQyyTZ4(qy z!e)zwbjHwy%i&iLAG5yHJ6gL$M&s4ah_btti&eTcNGa6E5+>luY&Za8KHu7NHHI4a z`j_LOx*T*(GK3QdxP=Ehz?W@7JSrKfw0G73e9kAhC~;%1jzYHQZ;jC$+a5k)$50lI zk|1lU#W(u8JN?_N@FA4xNA^GBF+da{K~f~`?q5W>d8#PsT2AvME0=xKf~A_OqC{6K z101!27C~ig98U91$|yBMdgyFVZ^b=@qAYX0!$^eJVfmL{7ninX=RIy4kob)`!mDPnO@fL*dbIBha_)f^Y0 zPA<>H$}X|Zq?;P9EEPU)omOjOv^v`pA}45Cgs=mbQ+h60W{-!OfjP_VSIjw7m#4pL zHCM)HYqV><(XOfYHxw(K3O6uTd{1}{#c+|v$_%qo=qDmLm0kRZ%Pq#y1uitjIXYd# zTN}$6mu?h9F3t7FGqaL3cvt&HJ<2yy_Sd$Gmh$gi$H40!YI^@`if!1)r(=l@1~+y} z^JD^|Sy=O~R`2>`?cS|-J$XE(e>I}ms*h|v{J{x|4nvc506i#*Z{_aByFtd&51D+w zg~hD%%{;c74YHZri?B+)5EyMvSdQbmsV%l-1wEXBJ`ECFcV50Sx_iW}U6kXY9BA5n zIH`1X*;zz^PUCzX8X4)Kr20;6EKjVn7eSQuOv!5D6C;ED5%?JAN~RTGPZ--ygdA^%OhbGItKRFBk#B3NveMvhqZps4u0D4@qPA<1>qsJ=IuSK z5A8RwafkGV=t$1l^Vgc4P#q#IFFqBCXr{-Irm>r=p%1P+-mMpz_S&;?%A!%@fb?xb z09AiVA2$xs&kS3G7zUU(9SOG+iOO_L%wC1FkC^^e7r50Fe;Ryq+|au4+sO7Vz30VHzPnuwwiNgx;H27@q@E1oyqp7?v(-cGL z(96J`mv;$k(P16idY35l60=zF{46=q?yuITCM{8Q9`Z;xdfdW!wC(`GI;=>&N?{ViPjJ~gWTrEuHP6ZdRzFV` zY<>F1Bb_y4hUV@n*}-FA0ow?poCb`IH_ZiX)dPcPz1A5`n=^by9d?<(f+it{554E0*$>E@*1-rn@^ug52o|gl) z>^uJ2>TAuga)(8H`IbEvt>*7Xz9`nqtRoF;a_ zOL-h%9{#Z)kRK{PqxS6jc4UY-K6PNrJgWJyfFF{f8jwy=8L2<36Xej=J3Qqf2wf(S zKC8lget9MlfBJ1r9I!MV9AKGo4);NNhbwEHC4)9?Vdy7N8qGz-j*<0TtfTdT)}5W` zZ@;5%O35DJv}0_(DPMc}?s3oNNTb8&h&+Lfb(QCkr(E7Og+~h-u0eva6G7PN@`04M zH9Xbx9UkWDEx(H$V#wU&oz$N-ckF@9N&Q@gMh z4)s`Wa_Z=X8Lg};bYnXR^D0Y*>w@cQ`pK^ID!JEHC*_cjz*$*@>X3qnl?=(U|zQ_HzVrS9z$K>ZU?*oIJuP$nj z1_iPxi!aXNojwmd1=ftI0oQaZP%nx(Ygxyf-35n-g?0br#&t4=@tX7$SaL7X=cUyvFGaLxZ$=*4IeN`bKYmaqRBo1BIo;ZK~!28T?UAE}WMBz*fM{_&x zdYScc3k=)4i&_1<=^iq7LY#OI`>L{lg!yW^lPH!Dayf;ndW3(Muxq= zLc0!}yw^#WM_8_j!9G6sm0i}_uA&$bfD3ONW#xd4F&^{K^?MHg+gdtG|9t~u-Dw(E zgqP9Iz5X*ay7}p8ZM){&eqw^+y5l$QiAJ7A`}?9y;qen&p#_xUt|4h{o!h6{=qUhF zfDY#NOJZK#m|85=A3E9f2rfzT;!s?#eF2m#qkT*J{Cl}37xQ}+$1BW2g5CRky2nuh zF>k5Mna5`%zqTcpprpcDGaVrem6wdEI(iT~G5Pk5QR+lboyG+Bh}!zOponAUkak%? zH4>YCa<|QcTNkqfb!7BvBS9M#!gOlQNCj-!4*5=_{^M*&7~Mn8zT4$IdcrZp(odhX z8hKjyz%)A1y4EwYJ4yXzTPgr~+Vg?r2{Sv8A{ln1 zw>$Km(D^rb(E=Un5>xib6W33v)Mrnkh?O`_Y#b)zHRjYNAQNRjtFai5F;nLo*w>)-s;Gq0t}jy{8~k{7aR0lLHgMg=({r&Y29AAXL9W8nxk@&ZDhrBZiJk zoWx+_0t$b&KkVeaV zw=`#((o!dQlt!Gn?@|LolEAJP91gM0&Kp$EJS`#}iWbvc>pA+lCh*qQmmuJ3_QpV) z>Q%}I+50;q%Hn`GL&xGiUwdW6`?cmca&OaX)6DjRIp;Zgn}uR}9df%~mJ8U>q9vD% z97k$x{ufIZO|gqjWC*Pz(C}VdHPnyu7RqJ?kxz z(P?5{Z0m9T-29;FjVMZq{gfN<(64Z2)F}|kB|DJ@Adg}KPh3;&o^nfMX6zDc+cZ{f z+`OUlbAYr0N1Mz|($}FXa8&}foEFB{*R3m_%d*TZr*w}$TeC_sYhAa$(nTAP?QogG{Z~}=SA3vpBufWR(|(B zTMyldG^x|?TYGHSN3mUo=E93xMaxtt6@0A8wS~ZZM^>ac#n-F6tOvHm3($(x@pQPb^Q}lmGz{GDz9TY?k3_hND(nso%%dsQBxb~1CfByjk)7vo~3Y?>*M;SUmUir`h_J^J`bQW}RpLcv?Yni#vv9{pEq`xu$h?3H zki+F0G~n{-_Lvka&Y2jn>djqB+})#h>T9|v-1e*z9{}UFObJl*NlQ>O-o(EW1Hqd< zo-sW@8w(CstmK1%coPU1Z1W%lT7sT7PD_^JSk#0ribu$qKXEL(@$dO(lsrZ6Ts(`! zR2PCqZGW(XVqUf)+ICY6OfNJ!kxQkw*kpo85!t9dpVY=U z7052+2haXIEVj9bi$1xHft!0#VJu5fzS{fKVB0GEOXb%w8lH zv+c4{!>o0XS?5?qM2*BY-X~Zc#aXdd+-ithF#h83so*@NLw7!uuF0+l>ds)c1jJ9Y z8f%Z_6dm7FXdy?D7!EFS7ep5us9Mb3uo$r(Qwa(XBNPM_K9De3ezIuU^`4%HcIG?v zPHlB&VSze|Y?@U$${sR7vsN&PIYRJYc0gxD&$Q~56NW@I�+Vw4?6jw9YT2C43v9fDOHD&` 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 diff --git a/docs/en/user/repo/settings.md b/docs/en/user/repo/settings.md index 52e7da246e..133a27e9f8 100644 --- a/docs/en/user/repo/settings.md +++ b/docs/en/user/repo/settings.md @@ -1,22 +1,33 @@ --- -title: Repository -subtitle: Settings +title: Repository subtitle: Settings --- -By default, there are two items in the repository settings. Depending on additional plugins that are installed, there can be considerably more items. +By default, there are two items in the repository settings. Depending on additional plugins that are installed, there +can be considerably more items. ### General -The "General" item allows you to edit the additional information of the repository. Git repositories for example also have the option to change the default branch here. The default branch is the one that is used when working with the repository if no specific branch is selected. -In the danger zone at the bottom you may rename the repository or delete it. If the namespace strategy in the global SCM-Manager config is set to `custom` you may even rename the repository namespace. +The "General" item allows you to edit the additional information of the repository. Git repositories for example also +have the option to change the default branch here. The default branch is the one that is used when working with the +repository if no specific branch is selected. + +In the danger zone at the bottom you may rename the repository, delete it or mark it as archived. If the namespace +strategy in the global SCM-Manager config is set to `custom` you may even rename the repository namespace. If a +repository is marked as archived, it can no longer be modified. ![Repository-Settings-General-Git](assets/repository-settings-general-git.png) ### Permissions -Thanks to the finely granular permission concept of SCM-Manager, users and groups can be authorized based on definable roles or individual settings. Permissions can be granted globally, namespace-wide, or repository-specific. Global permissions are managed in the administration area of SCM-Manager. The following image shows repository-specific permissions. -Permissions can be granted to groups or users. It is possible to manage each permission individually or to create roles that contain several permissions. Roles can be defined in the administration area. +Thanks to the finely granular permission concept of SCM-Manager, users and groups can be authorized based on definable +roles or individual settings. Permissions can be granted globally, namespace-wide, or repository-specific. Global +permissions are managed in the administration area of SCM-Manager. The following image shows repository-specific +permissions. -Namespace-wide permissions can be configured in the namespace settings. These can be accessed via the settings icon on the right-hand side of the namespace heading in the repository overview. +Permissions can be granted to groups or users. It is possible to manage each permission individually or to create roles +that contain several permissions. Roles can be defined in the administration area. + +Namespace-wide permissions can be configured in the namespace settings. These can be accessed via the settings icon on +the right-hand side of the namespace heading in the repository overview. ![Repository-Settings-PermissionOverview](assets/repository-settings-permissionOverview.png) diff --git a/pom.xml b/pom.xml index 0c1c2bc550..29be306bc7 100644 --- a/pom.xml +++ b/pom.xml @@ -935,7 +935,7 @@ 9.4.34.v20201102 - 1.2.0 + 1.3.0 1.7.0 diff --git a/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheck.java b/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheck.java new file mode 100644 index 0000000000..e961fe82cc --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheck.java @@ -0,0 +1,72 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import com.github.legman.Subscribe; +import sonia.scm.EagerSingleton; +import sonia.scm.plugin.Extension; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; + +@Extension +@EagerSingleton +/** + * Default implementation of {@link RepositoryArchivedCheck}. This tracks the archive status of repositories by using + * {@link RepositoryModificationEvent}s. The initial set of archived repositories is read by + * {@link EventDrivenRepositoryArchiveCheckInitializer} on startup. + */ +public final class EventDrivenRepositoryArchiveCheck implements RepositoryArchivedCheck { + + private static final Collection ARCHIVED_REPOSITORIES = Collections.synchronizedSet(new HashSet<>()); + + static void setAsArchived(String repositoryId) { + ARCHIVED_REPOSITORIES.add(repositoryId); + } + + static void removeFromArchived(String repositoryId) { + ARCHIVED_REPOSITORIES.remove(repositoryId); + } + + static boolean isRepositoryArchived(String repositoryId) { + return ARCHIVED_REPOSITORIES.contains(repositoryId); + } + + @Override + public boolean isArchived(String repositoryId) { + return isRepositoryArchived(repositoryId); + } + + @Subscribe(async = false) + public void updateListener(RepositoryModificationEvent event) { + Repository repository = event.getItem(); + if (repository.isArchived()) { + EventDrivenRepositoryArchiveCheck.setAsArchived(repository.getId()); + } else { + EventDrivenRepositoryArchiveCheck.removeFromArchived(repository.getId()); + } + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckInitializer.java b/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckInitializer.java new file mode 100644 index 0000000000..10e7430399 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckInitializer.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import sonia.scm.EagerSingleton; +import sonia.scm.Initable; +import sonia.scm.SCMContextProvider; +import sonia.scm.plugin.Extension; + +import javax.inject.Inject; + +@Extension +@EagerSingleton +final class EventDrivenRepositoryArchiveCheckInitializer implements Initable { + + private final RepositoryDAO repositoryDAO; + + @Inject + EventDrivenRepositoryArchiveCheckInitializer(RepositoryDAO repositoryDAO) { + this.repositoryDAO = repositoryDAO; + } + + @Override + public void init(SCMContextProvider context) { + repositoryDAO.getAll() + .stream() + .filter(Repository::isArchived) + .map(Repository::getId) + .forEach(EventDrivenRepositoryArchiveCheck::setAsArchived); + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/PermissionProvider.java b/scm-core/src/main/java/sonia/scm/repository/PermissionProvider.java new file mode 100644 index 0000000000..4326bc62c9 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/PermissionProvider.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import java.util.Collection; + +/** + * Provider for available verbs and roles for repository permissions, such as "read", "modify", "pull", "push", etc. + * This collection of verbs can be extended by plugins and be grouped to roles, such as "READ", "WRITE", etc. + * The permissions are configured by "repository-permissions.xml" files from the core and from plugins. + * + * @since 2.12.0 + */ +public interface PermissionProvider { + + /** + * The collection of all registered verbs. + */ + Collection availableVerbs(); + + /** + * The collection of verbs that are marked as "read only". These verbs are safe for archived or otherwise read only + * repositories. + */ + Collection readOnlyVerbs(); + + /** + * The collection of roles defined and extended by core and plugins. + */ + Collection availableRoles(); +} diff --git a/scm-core/src/main/java/sonia/scm/repository/Repository.java b/scm-core/src/main/java/sonia/scm/repository/Repository.java index 92bbe6183b..c0e47713bd 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Repository.java +++ b/scm-core/src/main/java/sonia/scm/repository/Repository.java @@ -24,6 +24,7 @@ package sonia.scm.repository; +import com.github.sdorra.ssp.Guard; import com.github.sdorra.ssp.PermissionObject; import com.github.sdorra.ssp.StaticPermissions; import com.google.common.base.MoreObjects; @@ -51,14 +52,17 @@ import java.util.Set; * * @author Sebastian Sdorra */ -@StaticPermissions( - value = "repository", - permissions = {"read", "modify", "delete", "rename", "healthCheck", "pull", "push", "permissionRead", "permissionWrite"}, - custom = true, customGlobal = true -) @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "repositories") -public class Repository extends BasicPropertiesAware implements ModelObject, PermissionObject{ +@StaticPermissions( + value = "repository", + permissions = {"read", "modify", "delete", "rename", "healthCheck", "pull", "push", "permissionRead", "permissionWrite", "archive"}, + custom = true, customGlobal = true, + guards = { + @Guard(guard = RepositoryPermissionGuard.class) + } +) +public class Repository extends BasicPropertiesAware implements ModelObject, PermissionObject { private static final long serialVersionUID = 3486560714961909711L; @@ -75,6 +79,7 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per @XmlElement(name = "permission") private Set permissions = new HashSet<>(); private String type; + private boolean archived; /** @@ -204,6 +209,15 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per return type; } + /** + * Returns true, when the repository is marked as "archived". An archived repository cannot be modified. + * + * @since 2.11.0 + */ + public boolean isArchived() { + return archived; + } + /** * Returns {@code true} if the repository is healthy. * @@ -276,6 +290,15 @@ public class Repository extends BasicPropertiesAware implements ModelObject, Per this.type = type; } + /** + * Set this to true to mark the repository as "archived". An archived repository cannot be modified. + * + * @since 2.11.0 + */ + public void setArchived(boolean archived) { + this.archived = archived; + } + public void setHealthCheckFailures(List healthCheckFailures) { this.healthCheckFailures = healthCheckFailures; } diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryArchivedCheck.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryArchivedCheck.java new file mode 100644 index 0000000000..2955bdcbb5 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryArchivedCheck.java @@ -0,0 +1,50 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +/** + * Implementations of this class can be used to check whether a repository is archived. + * + * @since 1.12.0 + */ +public interface RepositoryArchivedCheck { + + /** + * Checks whether the repository with the given id is archived or not. + * @param repositoryId The id of the repository to check. + * @return true when the repository with the given id is archived, false otherwise. + */ + boolean isArchived(String repositoryId); + + /** + * Checks whether the given repository is archived or not. This checks the status on behalf of the id of the + * repository, not by the archive flag provided by the repository itself. + * @param repository The repository to check. + * @return true when the given repository is archived, false otherwise. + */ + default boolean isArchived(Repository repository) { + return isArchived(repository.getId()); + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryManager.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryManager.java index ba5ff44ce2..b9b6212380 100644 --- a/scm-core/src/main/java/sonia/scm/repository/RepositoryManager.java +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryManager.java @@ -113,4 +113,18 @@ public interface RepositoryManager afterCreation.accept(newRepository); return newRepository; } + + /** + * @param repository the {@link Repository} to be archived. + * + * @since 2.12.0 + */ + void archive(Repository repository); + + /** + * @param repository the {@link Repository} to be "unarchived". + * + * @since 2.12.0 + */ + void unarchive(Repository repository); } diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryManagerDecorator.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryManagerDecorator.java index 6a661c83e5..f4aed720d8 100644 --- a/scm-core/src/main/java/sonia/scm/repository/RepositoryManagerDecorator.java +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryManagerDecorator.java @@ -136,6 +136,16 @@ public class RepositoryManagerDecorator return decorated.getAllNamespaces(); } + @Override + public void archive(Repository repository) { + decorated.archive(repository); + } + + @Override + public void unarchive(Repository repository) { + decorated.unarchive(repository); + } + //~--- fields --------------------------------------------------------------- /** diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuard.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuard.java new file mode 100644 index 0000000000..7b17dc30d9 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuard.java @@ -0,0 +1,74 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import com.github.sdorra.ssp.PermissionActionCheckInterceptor; +import com.github.sdorra.ssp.PermissionGuard; +import org.apache.shiro.authz.AuthorizationException; +import org.apache.shiro.subject.Subject; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.function.BooleanSupplier; + +import static sonia.scm.repository.EventDrivenRepositoryArchiveCheck.isRepositoryArchived; + +/** + * This intercepts permission checks for repositories and blocks write permissions for archived repositories. + * Read only permissions are set at startup by {@link RepositoryPermissionGuardInitializer}. + */ +public class RepositoryPermissionGuard implements PermissionGuard { + + private static final Collection READ_ONLY_VERBS = Collections.synchronizedSet(new HashSet<>()); + + static void setReadOnlyVerbs(Collection readOnlyVerbs) { + READ_ONLY_VERBS.addAll(readOnlyVerbs); + } + + @Override + public PermissionActionCheckInterceptor intercept(String permission) { + if (READ_ONLY_VERBS.contains(permission)) { + return new PermissionActionCheckInterceptor() {}; + } else { + return new WriteInterceptor(); + } + } + + private static class WriteInterceptor implements PermissionActionCheckInterceptor { + @Override + public void check(Subject subject, String id, Runnable delegate) { + delegate.run(); + if (isRepositoryArchived(id)) { + throw new AuthorizationException("repository is archived"); + } + } + + @Override + public boolean isPermitted(Subject subject, String id, BooleanSupplier delegate) { + return !isRepositoryArchived(id) && delegate.getAsBoolean(); + } + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuardInitializer.java b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuardInitializer.java new file mode 100644 index 0000000000..148782c73c --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/RepositoryPermissionGuardInitializer.java @@ -0,0 +1,52 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import sonia.scm.EagerSingleton; +import sonia.scm.Initable; +import sonia.scm.SCMContextProvider; +import sonia.scm.plugin.Extension; + +import javax.inject.Inject; + +/** + * Initializes read only permissions for {@link RepositoryPermissionGuard} at startup. + */ +@Extension +@EagerSingleton +final class RepositoryPermissionGuardInitializer implements Initable { + + private final PermissionProvider permissionProvider; + + @Inject + RepositoryPermissionGuardInitializer(PermissionProvider permissionProvider) { + this.permissionProvider = permissionProvider; + } + + @Override + public void init(SCMContextProvider context) { + RepositoryPermissionGuard.setReadOnlyVerbs(permissionProvider.readOnlyVerbs()); + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryArchivedException.java b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryArchivedException.java new file mode 100644 index 0000000000..4343a5702e --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryArchivedException.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository.api; + +import sonia.scm.ExceptionWithContext; +import sonia.scm.repository.Repository; + +import static java.lang.String.format; +import static sonia.scm.ContextEntry.ContextBuilder.entity; + +public class RepositoryArchivedException extends ExceptionWithContext { + + public static final String CODE = "3hSIlptme1"; + + protected RepositoryArchivedException(Repository repository) { + super(entity(repository).build(), format("Repository %s is marked as archived and must not be modified", repository)); + } + + @Override + public String getCode() { + return CODE; + } +} diff --git a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java index 9c6e91d182..f8a4db1d10 100644 --- a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java +++ b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java @@ -182,6 +182,7 @@ public final class RepositoryService implements Closeable { * by the implementation of the repository service provider. */ public BranchCommandBuilder getBranchCommand() { + verifyNotArchived(); RepositoryPermissions.push(getRepository()).check(); LOG.debug("create branch command for repository {}", repository.getNamespaceAndName()); @@ -332,6 +333,7 @@ public final class RepositoryService implements Closeable { * @since 1.31 */ public PullCommandBuilder getPullCommand() { + verifyNotArchived(); LOG.debug("create pull command for repository {}", repository.getNamespaceAndName()); @@ -386,6 +388,7 @@ public final class RepositoryService implements Closeable { * by the implementation of the repository service provider. */ public TagCommandBuilder getTagCommand() { + verifyNotArchived(); return new TagCommandBuilder(provider.getTagCommand()); } @@ -415,6 +418,7 @@ public final class RepositoryService implements Closeable { * @since 2.0.0 */ public MergeCommandBuilder getMergeCommand() { + verifyNotArchived(); LOG.debug("create merge command for repository {}", repository.getNamespaceAndName()); @@ -436,6 +440,7 @@ public final class RepositoryService implements Closeable { * @since 2.0.0 */ public ModifyCommandBuilder getModifyCommand() { + verifyNotArchived(); LOG.debug("create modify command for repository {}", repository.getNamespaceAndName()); @@ -484,6 +489,12 @@ public final class RepositoryService implements Closeable { .filter(protocol -> !Authentications.isAuthenticatedSubjectAnonymous() || protocol.isAnonymousEnabled()); } + private void verifyNotArchived() { + if (getRepository().isArchived()) { + throw new RepositoryArchivedException(getRepository()); + } + } + @SuppressWarnings({"rawtypes", "java:S3740"}) private ScmProtocol createProviderInstanceForRepository(ScmProtocolProvider protocolProvider) { return protocolProvider.get(repository); diff --git a/scm-core/src/main/java/sonia/scm/store/AbstractStore.java b/scm-core/src/main/java/sonia/scm/store/AbstractStore.java index d5c626c667..0cdb72ae4e 100644 --- a/scm-core/src/main/java/sonia/scm/store/AbstractStore.java +++ b/scm-core/src/main/java/sonia/scm/store/AbstractStore.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; /** @@ -38,6 +38,11 @@ public abstract class AbstractStore implements ConfigurationStore { * stored object */ protected T storeObject; + private final boolean readOnly; + + protected AbstractStore(boolean readOnly) { + this.readOnly = readOnly; + } @Override public T get() { @@ -49,9 +54,12 @@ public abstract class AbstractStore implements ConfigurationStore { } @Override - public void set(T obejct) { - writeObject(obejct); - this.storeObject = obejct; + public void set(T object) { + if (readOnly) { + throw new StoreReadOnlyException(object); + } + writeObject(object); + this.storeObject = object; } /** diff --git a/scm-core/src/main/java/sonia/scm/store/StoreReadOnlyException.java b/scm-core/src/main/java/sonia/scm/store/StoreReadOnlyException.java new file mode 100644 index 0000000000..afc82e7259 --- /dev/null +++ b/scm-core/src/main/java/sonia/scm/store/StoreReadOnlyException.java @@ -0,0 +1,53 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.store; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import sonia.scm.ExceptionWithContext; + +import static sonia.scm.ContextEntry.ContextBuilder.noContext; + +public class StoreReadOnlyException extends ExceptionWithContext { + + private static final Logger LOG = LoggerFactory.getLogger(StoreReadOnlyException.class); + + public static final String CODE = "3FSIYtBJw1"; + + public StoreReadOnlyException(String location) { + super(noContext(), String.format("Store is read only, could not write location %s", location)); + LOG.error(getMessage()); + } + + public StoreReadOnlyException(Object object) { + super(noContext(), String.format("Store is read only, could not write object of type %s: %s", object.getClass(), object)); + LOG.error(getMessage()); + } + + @Override + public String getCode () { + return CODE; + } + } diff --git a/scm-core/src/test/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckTest.java b/scm-core/src/test/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckTest.java new file mode 100644 index 0000000000..4a518f95e3 --- /dev/null +++ b/scm-core/src/test/java/sonia/scm/repository/EventDrivenRepositoryArchiveCheckTest.java @@ -0,0 +1,75 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import org.junit.jupiter.api.Test; +import sonia.scm.HandlerEventType; + +import java.util.Collections; + +import static java.util.Collections.singleton; +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static sonia.scm.repository.EventDrivenRepositoryArchiveCheck.setAsArchived; + +class EventDrivenRepositoryArchiveCheckTest { + + private static final Repository NORMAL_REPOSITORY = new Repository("hog", "git", "hitchhiker", "hog"); + private static final Repository ARCHIVED_REPOSITORY = new Repository("hog", "git", "hitchhiker", "hog"); + static { + ARCHIVED_REPOSITORY.setArchived(true); + } + + EventDrivenRepositoryArchiveCheck check = new EventDrivenRepositoryArchiveCheck(); + + @Test + void shouldBeNotArchivedByDefault() { + assertThat(check.isArchived("hog")).isFalse(); + } + + @Test + void shouldBeArchivedAfterFlagHasBeenSet() { + check.updateListener(new RepositoryModificationEvent(HandlerEventType.MODIFY, ARCHIVED_REPOSITORY, NORMAL_REPOSITORY)); + assertThat(check.isArchived("hog")).isTrue(); + } + + @Test + void shouldNotBeArchivedAfterFlagHasBeenRemoved() { + setAsArchived("hog"); + check.updateListener(new RepositoryModificationEvent(HandlerEventType.MODIFY, NORMAL_REPOSITORY, ARCHIVED_REPOSITORY)); + assertThat(check.isArchived("hog")).isFalse(); + } + + @Test + void shouldBeInitialized() { + RepositoryDAO repositoryDAO = mock(RepositoryDAO.class); + when(repositoryDAO.getAll()).thenReturn(singleton(ARCHIVED_REPOSITORY)); + + new EventDrivenRepositoryArchiveCheckInitializer(repositoryDAO).init(null); + + assertThat(check.isArchived("hog")).isTrue(); + } +} diff --git a/scm-core/src/test/java/sonia/scm/repository/RepositoryPermissionGuardTest.java b/scm-core/src/test/java/sonia/scm/repository/RepositoryPermissionGuardTest.java new file mode 100644 index 0000000000..6d2d3215f6 --- /dev/null +++ b/scm-core/src/test/java/sonia/scm/repository/RepositoryPermissionGuardTest.java @@ -0,0 +1,146 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package sonia.scm.repository; + +import com.github.sdorra.ssp.PermissionActionCheckInterceptor; +import org.apache.shiro.authz.AuthorizationException; +import org.apache.shiro.subject.Subject; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.function.BooleanSupplier; + +import static java.util.Arrays.asList; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +class RepositoryPermissionGuardTest { + + @Mock + private Subject subject; + @Mock + private BooleanSupplier permittedDelegate; + @Mock + private Runnable checkDelegate; + + @BeforeAll + static void setReadOnlyVerbs() { + RepositoryPermissionGuard.setReadOnlyVerbs(asList("read")); + } + + @Nested + class ForReadOnlyVerb { + + PermissionActionCheckInterceptor readInterceptor = new RepositoryPermissionGuard().intercept("read"); + + @Test + void shouldNotInterceptPermissionCheck() { + when(permittedDelegate.getAsBoolean()).thenReturn(true); + + assertThat(readInterceptor.isPermitted(subject, "1", permittedDelegate)).isTrue(); + + verify(permittedDelegate).getAsBoolean(); + } + + @Test + void shouldNotInterceptCheckRequest() { + readInterceptor.check(subject, "1", checkDelegate); + + verify(checkDelegate).run(); + } + } + + @Nested + class ForModifyingVerb { + + PermissionActionCheckInterceptor readInterceptor = new RepositoryPermissionGuard().intercept("modify"); + + @Nested + class WithNormalRepository { + + @Test + void shouldInterceptPermissionCheck() { + when(permittedDelegate.getAsBoolean()).thenReturn(true); + + assertThat(readInterceptor.isPermitted(subject, "1", permittedDelegate)).isTrue(); + + verify(permittedDelegate).getAsBoolean(); + } + + @Test + void shouldInterceptCheckRequest() { + readInterceptor.check(subject, "1", checkDelegate); + + verify(checkDelegate).run(); + } + } + + @Nested + class WithArchivedRepository { + + @BeforeEach + void mockArchivedRepository() { + EventDrivenRepositoryArchiveCheck.setAsArchived("1"); + } + + @AfterEach + void removeArchiveFlag() { + EventDrivenRepositoryArchiveCheck.removeFromArchived("1"); + } + + @Test + void shouldInterceptPermissionCheck() { + assertThat(readInterceptor.isPermitted(subject, "1", permittedDelegate)).isFalse(); + + verify(permittedDelegate, never()).getAsBoolean(); + } + + @Test + void shouldInterceptCheckRequest() { + assertThrows(AuthorizationException.class, () -> readInterceptor.check(subject, "1", checkDelegate)); + } + + @Test + void shouldThrowConcretePermissionExceptionOverArchiveException() { + doThrow(new AuthorizationException()).when(checkDelegate).run(); + + assertThrows(AuthorizationException.class, () -> readInterceptor.check(subject, "1", checkDelegate)); + + verify(checkDelegate).run(); + } + } + } +} diff --git a/scm-core/src/test/java/sonia/scm/repository/api/RepositoryServiceTest.java b/scm-core/src/test/java/sonia/scm/repository/api/RepositoryServiceTest.java index c702cc64de..fcde81f786 100644 --- a/scm-core/src/test/java/sonia/scm/repository/api/RepositoryServiceTest.java +++ b/scm-core/src/test/java/sonia/scm/repository/api/RepositoryServiceTest.java @@ -109,6 +109,19 @@ class RepositoryServiceTest { assertThrows(IllegalArgumentException.class, () -> repositoryService.getProtocol(UnknownScmProtocol.class)); } + @Test + void shouldFailForArchivedRepository() { + repository.setArchived(true); + RepositoryService repositoryService = new RepositoryService(null, provider, repository, null, Collections.singleton(new DummyScmProtocolProvider()), null, eMail); + + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getModifyCommand()); + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getBranchCommand()); + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getPullCommand()); + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getTagCommand()); + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getMergeCommand()); + assertThrows(RepositoryArchivedException.class, () -> repositoryService.getModifyCommand()); + } + private static class DummyHttpProtocol extends HttpScmProtocol { private final boolean anonymousEnabled; diff --git a/scm-dao-xml/src/main/java/sonia/scm/repository/xml/XmlRepositoryDAO.java b/scm-dao-xml/src/main/java/sonia/scm/repository/xml/XmlRepositoryDAO.java index 7ec23ce880..d99de42a91 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/repository/xml/XmlRepositoryDAO.java +++ b/scm-dao-xml/src/main/java/sonia/scm/repository/xml/XmlRepositoryDAO.java @@ -34,6 +34,7 @@ import sonia.scm.repository.NamespaceAndName; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryDAO; import sonia.scm.repository.RepositoryLocationResolver; +import sonia.scm.store.StoreReadOnlyException; import javax.inject.Inject; import java.io.IOException; @@ -139,6 +140,9 @@ public class XmlRepositoryDAO implements RepositoryDAO { @Override public void modify(Repository repository) { Repository clone = repository.clone(); + if (clone.isArchived() && byId.get(clone.getId()).isArchived()) { + throw new StoreReadOnlyException(repository); + } synchronized (this) { // remove old namespaceAndName from map, in case of rename @@ -158,6 +162,9 @@ public class XmlRepositoryDAO implements RepositoryDAO { @Override public void delete(Repository repository) { + if (repository.isArchived()) { + throw new StoreReadOnlyException(repository); + } Path path; synchronized (this) { Repository prev = byId.remove(repository.getId()); diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStore.java b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStore.java index d3b186df94..480b74f31b 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStore.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStore.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; //~--- non-JDK imports -------------------------------------------------------- @@ -60,10 +60,11 @@ public abstract class FileBasedStore implements MultiEntryStore * @param directory * @param suffix */ - public FileBasedStore(File directory, String suffix) + public FileBasedStore(File directory, String suffix, boolean readOnly) { this.directory = directory; this.suffix = suffix; + this.readOnly = readOnly; } //~--- methods -------------------------------------------------------------- @@ -145,6 +146,8 @@ public abstract class FileBasedStore implements MultiEntryStore { logger.trace("delete store entry {}", file); + assertNotReadOnly(); + if (file.exists() &&!file.delete()) { throw new StoreException( @@ -185,6 +188,12 @@ public abstract class FileBasedStore implements MultiEntryStore return name.substring(0, name.length() - suffix.length()); } + protected void assertNotReadOnly() { + if (readOnly) { + throw new StoreReadOnlyException(directory.getAbsoluteFile().toString()); + } + } + //~--- fields --------------------------------------------------------------- /** Field description */ @@ -192,4 +201,6 @@ public abstract class FileBasedStore implements MultiEntryStore /** Field description */ private final String suffix; + + private final boolean readOnly; } diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java index f29cf728d0..9d9520b75e 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/FileBasedStoreFactory.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; //~--- non-JDK imports -------------------------------------------------------- @@ -29,6 +29,7 @@ package sonia.scm.store; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.SCMContextProvider; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.util.IOUtil; @@ -48,14 +49,16 @@ public abstract class FileBasedStoreFactory { * the logger for FileBasedStoreFactory */ private static final Logger LOG = LoggerFactory.getLogger(FileBasedStoreFactory.class); - private SCMContextProvider contextProvider; - private RepositoryLocationResolver repositoryLocationResolver; - private Store store; + private final SCMContextProvider contextProvider; + private final RepositoryLocationResolver repositoryLocationResolver; + private final Store store; + private final RepositoryArchivedCheck archivedCheck; - protected FileBasedStoreFactory(SCMContextProvider contextProvider, RepositoryLocationResolver repositoryLocationResolver, Store store) { + protected FileBasedStoreFactory(SCMContextProvider contextProvider, RepositoryLocationResolver repositoryLocationResolver, Store store, RepositoryArchivedCheck archivedCheck) { this.contextProvider = contextProvider; this.repositoryLocationResolver = repositoryLocationResolver; this.store = store; + this.archivedCheck = archivedCheck; } protected File getStoreLocation(StoreParameters storeParameters) { @@ -79,6 +82,10 @@ public abstract class FileBasedStoreFactory { return new File(storeDirectory, name); } + protected boolean mustBeReadOnly(StoreParameters storeParameters) { + return storeParameters.getRepositoryId() != null && archivedCheck.isArchived(storeParameters.getRepositoryId()); + } + /** * Get the store directory of a specific repository * @param store the type of the store diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStore.java b/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStore.java index a77853e414..9345cdbde9 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStore.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStore.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; //~--- non-JDK imports -------------------------------------------------------- @@ -58,8 +58,8 @@ public class FileBlobStore extends FileBasedStore implements BlobStore { private final KeyGenerator keyGenerator; - FileBlobStore(KeyGenerator keyGenerator, File directory) { - super(directory, SUFFIX); + FileBlobStore(KeyGenerator keyGenerator, File directory, boolean readOnly) { + super(directory, SUFFIX, readOnly); this.keyGenerator = keyGenerator; } @@ -74,6 +74,8 @@ public class FileBlobStore extends FileBasedStore implements BlobStore { "id argument is required"); LOG.debug("create new blob with id {}", id); + assertNotReadOnly(); + File file = getFile(id); try { @@ -94,6 +96,7 @@ public class FileBlobStore extends FileBasedStore implements BlobStore { @Override public void remove(Blob blob) { + assertNotReadOnly(); Preconditions.checkNotNull(blob, "blob argument is required"); remove(blob.getId()); } diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStoreFactory.java index 2bd6cdc886..45982a2c16 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/FileBlobStoreFactory.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; //~--- non-JDK imports -------------------------------------------------------- @@ -31,6 +31,7 @@ import com.google.inject.Singleton; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.SCMContextProvider; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.security.KeyGenerator; import sonia.scm.util.IOUtil; @@ -59,8 +60,8 @@ public class FileBlobStoreFactory extends FileBasedStoreFactory implements BlobS * @param keyGenerator key generator */ @Inject - public FileBlobStoreFactory(SCMContextProvider contextProvider , RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator) { - super(contextProvider, repositoryLocationResolver, Store.BLOB); + public FileBlobStoreFactory(SCMContextProvider contextProvider , RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator, RepositoryArchivedCheck archivedCheck) { + super(contextProvider, repositoryLocationResolver, Store.BLOB, archivedCheck); this.keyGenerator = keyGenerator; } @@ -69,8 +70,6 @@ public class FileBlobStoreFactory extends FileBasedStoreFactory implements BlobS public BlobStore getStore(StoreParameters storeParameters) { File storeLocation = getStoreLocation(storeParameters); IOUtil.mkdirs(storeLocation); - return new FileBlobStore(keyGenerator, storeLocation); + return new FileBlobStore(keyGenerator, storeLocation, mustBeReadOnly(storeParameters)); } - - } diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationEntryStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationEntryStoreFactory.java index 7feae4e0df..0727acac19 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationEntryStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationEntryStoreFactory.java @@ -29,6 +29,7 @@ package sonia.scm.store; import com.google.inject.Inject; import com.google.inject.Singleton; import sonia.scm.SCMContextProvider; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.security.KeyGenerator; @@ -45,8 +46,8 @@ public class JAXBConfigurationEntryStoreFactory extends FileBasedStoreFactory private KeyGenerator keyGenerator; @Inject - public JAXBConfigurationEntryStoreFactory(SCMContextProvider contextProvider , RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator) { - super(contextProvider, repositoryLocationResolver, Store.CONFIG); + public JAXBConfigurationEntryStoreFactory(SCMContextProvider contextProvider, RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator, RepositoryArchivedCheck archivedCheck) { + super(contextProvider, repositoryLocationResolver, Store.CONFIG, archivedCheck); this.keyGenerator = keyGenerator; } diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStore.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStore.java index 6b2cf9993a..474a7b76a8 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStore.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStore.java @@ -46,7 +46,8 @@ public class JAXBConfigurationStore extends AbstractStore { private final Class type; private final File configFile; - public JAXBConfigurationStore(TypedStoreContext context, Class type, File configFile) { + public JAXBConfigurationStore(TypedStoreContext context, Class type, File configFile, boolean readOnly) { + super(readOnly); this.context = context; this.type = type; this.configFile = configFile; diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStoreFactory.java index 29cdf471a3..5f4a17c014 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBConfigurationStoreFactory.java @@ -27,6 +27,7 @@ package sonia.scm.store; import com.google.inject.Inject; import com.google.inject.Singleton; import sonia.scm.SCMContextProvider; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.repository.RepositoryLocationResolver; /** @@ -43,8 +44,8 @@ public class JAXBConfigurationStoreFactory extends FileBasedStoreFactory impleme * @param repositoryLocationResolver Resolver to get the repository Directory */ @Inject - public JAXBConfigurationStoreFactory(SCMContextProvider contextProvider, RepositoryLocationResolver repositoryLocationResolver) { - super(contextProvider, repositoryLocationResolver, Store.CONFIG); + public JAXBConfigurationStoreFactory(SCMContextProvider contextProvider, RepositoryLocationResolver repositoryLocationResolver, RepositoryArchivedCheck archivedCheck) { + super(contextProvider, repositoryLocationResolver, Store.CONFIG, archivedCheck); } @Override @@ -55,7 +56,8 @@ public class JAXBConfigurationStoreFactory extends FileBasedStoreFactory impleme storeParameters.getType(), getStoreLocation(storeParameters.getName().concat(StoreConstants.FILE_EXTENSION), storeParameters.getType(), - storeParameters.getRepositoryId()) + storeParameters.getRepositoryId()), + mustBeReadOnly(storeParameters) ); } } diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStore.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStore.java index e963c58983..e25a66ff43 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStore.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStore.java @@ -52,8 +52,8 @@ public class JAXBDataStore extends FileBasedStore implements DataStore private final KeyGenerator keyGenerator; private final TypedStoreContext context; - JAXBDataStore(KeyGenerator keyGenerator, TypedStoreContext context, File directory) { - super(directory, StoreConstants.FILE_EXTENSION); + JAXBDataStore(KeyGenerator keyGenerator, TypedStoreContext context, File directory, boolean readOnly) { + super(directory, StoreConstants.FILE_EXTENSION, readOnly); this.keyGenerator = keyGenerator; this.directory = directory; this.context = context; @@ -63,6 +63,8 @@ public class JAXBDataStore extends FileBasedStore implements DataStore public void put(String id, T item) { LOG.debug("put item {} to store", id); + assertNotReadOnly(); + File file = getFile(id); try { diff --git a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStoreFactory.java b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStoreFactory.java index 80e2d260d2..d0ec860221 100644 --- a/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStoreFactory.java +++ b/scm-dao-xml/src/main/java/sonia/scm/store/JAXBDataStoreFactory.java @@ -28,8 +28,8 @@ package sonia.scm.store; import com.google.inject.Inject; import com.google.inject.Singleton; - import sonia.scm.SCMContextProvider; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.security.KeyGenerator; import sonia.scm.util.IOUtil; @@ -44,11 +44,11 @@ import java.io.File; public class JAXBDataStoreFactory extends FileBasedStoreFactory implements DataStoreFactory { - private KeyGenerator keyGenerator; + private final KeyGenerator keyGenerator; @Inject - public JAXBDataStoreFactory(SCMContextProvider contextProvider , RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator) { - super(contextProvider, repositoryLocationResolver, Store.DATA); + public JAXBDataStoreFactory(SCMContextProvider contextProvider , RepositoryLocationResolver repositoryLocationResolver, KeyGenerator keyGenerator, RepositoryArchivedCheck archivedCheck) { + super(contextProvider, repositoryLocationResolver, Store.DATA, archivedCheck); this.keyGenerator = keyGenerator; } @@ -56,6 +56,6 @@ public class JAXBDataStoreFactory extends FileBasedStoreFactory public DataStore getStore(TypedStoreParameters storeParameters) { File storeLocation = getStoreLocation(storeParameters); IOUtil.mkdirs(storeLocation); - return new JAXBDataStore<>(keyGenerator, TypedStoreContext.of(storeParameters), storeLocation); + return new JAXBDataStore<>(keyGenerator, TypedStoreContext.of(storeParameters), storeLocation, mustBeReadOnly(storeParameters)); } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java b/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java index 4b7bce2093..d5f89597f3 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/repository/xml/XmlRepositoryDAOTest.java @@ -43,6 +43,7 @@ import sonia.scm.repository.NamespaceAndName; import sonia.scm.repository.Repository; import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.repository.RepositoryPermission; +import sonia.scm.store.StoreReadOnlyException; import java.io.IOException; import java.net.URL; @@ -55,6 +56,7 @@ import java.util.function.Consumer; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.never; @@ -233,6 +235,16 @@ class XmlRepositoryDAOTest { assertThat(dao.get("42").getDescription()).isEqualTo("Heart of Gold"); } + @Test + void shouldNotModifyArchivedRepository() { + REPOSITORY.setArchived(true); + dao.add(REPOSITORY); + + Repository heartOfGold = createRepository("42"); + heartOfGold.setArchived(true); + assertThrows(StoreReadOnlyException.class, () -> dao.modify(heartOfGold)); + } + @Test void shouldRemoveRepository() { dao.add(REPOSITORY); @@ -247,6 +259,15 @@ class XmlRepositoryDAOTest { assertThat(storePath).doesNotExist(); } + @Test + void shouldNotRemoveArchivedRepository() { + REPOSITORY.setArchived(true); + dao.add(REPOSITORY); + assertThat(dao.contains("42")).isTrue(); + + assertThrows(StoreReadOnlyException.class, () -> dao.delete(REPOSITORY)); + } + @Test void shouldRenameTheRepository() { dao.add(REPOSITORY); diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java index dbcfe2a692..12d78d4c7c 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/FileBlobStoreTest.java @@ -21,54 +21,212 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; -//~--- non-JDK imports -------------------------------------------------------- - -import org.junit.Test; +import com.google.common.io.ByteStreams; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import sonia.scm.AbstractTestBase; import sonia.scm.repository.Repository; +import sonia.scm.repository.RepositoryArchivedCheck; +import sonia.scm.repository.RepositoryTestData; import sonia.scm.security.UUIDKeyGenerator; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.List; -import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; -/** - * - * @author Sebastian Sdorra - */ -public class FileBlobStoreTest extends BlobStoreTestBase +class FileBlobStoreTest extends AbstractTestBase { - /** - * Method description - * - * - * @return - */ - @Override - protected BlobStoreFactory createBlobStoreFactory() + private Repository repository = RepositoryTestData.createHeartOfGold(); + private RepositoryArchivedCheck archivedCheck = mock(RepositoryArchivedCheck.class); + private BlobStore store; + + @BeforeEach + void createBlobStore() { - return new FileBlobStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator()); + store = createBlobStoreFactory() + .withName("test") + .forRepository(repository) + .build(); } @Test - @SuppressWarnings("unchecked") - public void shouldStoreAndLoadInRepository() { - BlobStore store = createBlobStoreFactory() - .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) - .build(); + void testClear() + { + store.create("1"); + store.create("2"); + store.create("3"); - Blob createdBlob = store.create("abc"); - List storedBlobs = store.getAll(); + assertNotNull(store.get("1")); + assertNotNull(store.get("2")); + assertNotNull(store.get("3")); - assertNotNull(createdBlob); - assertThat(storedBlobs) - .isNotNull() - .hasSize(1) - .usingElementComparatorOnFields("id").containsExactly(createdBlob); + store.clear(); + + assertNull(store.get("1")); + assertNull(store.get("2")); + assertNull(store.get("3")); + } + + @Test + void testContent() throws IOException + { + Blob blob = store.create(); + + write(blob, "Hello"); + assertEquals("Hello", read(blob)); + + blob = store.get(blob.getId()); + assertEquals("Hello", read(blob)); + + write(blob, "Other Text"); + assertEquals("Other Text", read(blob)); + + blob = store.get(blob.getId()); + assertEquals("Other Text", read(blob)); + } + + @Test + void testCreateAlreadyExistingEntry() + { + assertNotNull(store.create("1")); + assertThrows(EntryAlreadyExistsStoreException.class, () -> store.create("1")); + } + + @Test + void testCreateWithId() + { + Blob blob = store.create("1"); + + assertNotNull(blob); + + blob = store.get("1"); + assertNotNull(blob); + } + + @Test + void testCreateWithoutId() + { + Blob blob = store.create(); + + assertNotNull(blob); + + String id = blob.getId(); + + assertNotNull(id); + + blob = store.get(id); + assertNotNull(blob); + } + + @Test + void testGet() + { + Blob blob = store.get("1"); + + assertNull(blob); + + blob = store.create("1"); + assertNotNull(blob); + + blob = store.get("1"); + assertNotNull(blob); + } + + @Test + void testGetAll() + { + store.create("1"); + store.create("2"); + store.create("3"); + + List all = store.getAll(); + + assertNotNull(all); + assertFalse(all.isEmpty()); + assertEquals(3, all.size()); + + boolean c1 = false; + boolean c2 = false; + boolean c3 = false; + + for (Blob b : all) + { + if ("1".equals(b.getId())) + { + c1 = true; + } + else if ("2".equals(b.getId())) + { + c2 = true; + } + else if ("3".equals(b.getId())) + { + c3 = true; + } + } + + assertTrue(c1); + assertTrue(c2); + assertTrue(c3); + } + + @Nested + class WithArchivedRepository { + + @BeforeEach + void setRepositoryArchived() { + store.create("1"); // store for test must not be empty + when(archivedCheck.isArchived(repository.getId())).thenReturn(true); + createBlobStore(); + } + + @Test + void shouldNotClear() { + assertThrows(StoreReadOnlyException.class, () -> store.clear()); + } + + @Test + void shouldNotRemove() { + assertThrows(StoreReadOnlyException.class, () -> store.remove("1")); + } + } + + private String read(Blob blob) throws IOException + { + InputStream input = blob.getInputStream(); + byte[] bytes = ByteStreams.toByteArray(input); + + input.close(); + + return new String(bytes); + } + + private void write(Blob blob, String content) throws IOException + { + OutputStream output = blob.getOutputStream(); + + output.write(content.getBytes()); + output.close(); + blob.commit(); + } + + protected BlobStoreFactory createBlobStoreFactory() + { + return new FileBlobStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator(), archivedCheck); } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java index 5a9e419486..7347876a55 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationEntryStoreTest.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; //~--- non-JDK imports -------------------------------------------------------- @@ -85,7 +85,7 @@ public class JAXBConfigurationEntryStoreTest assertEquals("tuser3", a3.getName()); } - + /** * Method description * @@ -154,7 +154,7 @@ public class JAXBConfigurationEntryStoreTest @Override protected ConfigurationEntryStoreFactory createConfigurationStoreFactory() { - return new JAXBConfigurationEntryStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator()); + return new JAXBConfigurationEntryStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator(), null); } /** diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java index 29c52a835e..5e130d76ad 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBConfigurationStoreTest.java @@ -21,14 +21,18 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.store; import org.junit.Test; import sonia.scm.repository.Repository; +import sonia.scm.repository.RepositoryArchivedCheck; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; /** * Unit tests for {@link JAXBConfigurationStore}. @@ -37,10 +41,12 @@ import static org.junit.Assert.assertNotNull; */ public class JAXBConfigurationStoreTest extends StoreTestBase { + private final RepositoryArchivedCheck archivedCheck = mock(RepositoryArchivedCheck.class); + @Override protected ConfigurationStoreFactory createStoreFactory() { - return new JAXBConfigurationStoreFactory(contextProvider, repositoryLocationResolver); + return new JAXBConfigurationStoreFactory(contextProvider, repositoryLocationResolver, archivedCheck); } @@ -48,10 +54,11 @@ public class JAXBConfigurationStoreTest extends StoreTestBase { @SuppressWarnings("unchecked") public void shouldStoreAndLoadInRepository() { + Repository repository = new Repository("id", "git", "ns", "n"); ConfigurationStore store = createStoreFactory() .withType(StoreObject.class) .withName("test") - .forRepository(new Repository("id", "git", "ns", "n")) + .forRepository(repository) .build(); store.set(new StoreObject("value")); @@ -60,4 +67,20 @@ public class JAXBConfigurationStoreTest extends StoreTestBase { assertNotNull(storeObject); assertEquals("value", storeObject.getValue()); } + + + @Test + @SuppressWarnings("unchecked") + public void shouldNotWriteArchivedRepository() + { + Repository repository = new Repository("id", "git", "ns", "n"); + when(archivedCheck.isArchived("id")).thenReturn(true); + ConfigurationStore store = createStoreFactory() + .withType(StoreObject.class) + .withName("test") + .forRepository(repository) + .build(); + + assertThrows(RuntimeException.class, () -> store.set(new StoreObject("value"))); + } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java index 13b9ad29b8..c32542a02f 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/store/JAXBDataStoreTest.java @@ -28,10 +28,13 @@ package sonia.scm.store; import org.junit.Test; import sonia.scm.repository.Repository; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.security.UUIDKeyGenerator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; /** * @@ -39,16 +42,12 @@ import static org.junit.Assert.assertNotNull; */ public class JAXBDataStoreTest extends DataStoreTestBase { - /** - * Method description - * - * - * @return - */ + private final RepositoryArchivedCheck archivedCheck = mock(RepositoryArchivedCheck.class); + @Override protected DataStoreFactory createDataStoreFactory() { - return new JAXBDataStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator()); + return new JAXBDataStoreFactory(contextProvider, repositoryLocationResolver, new UUIDKeyGenerator(), archivedCheck); } @Override @@ -77,4 +76,11 @@ public class JAXBDataStoreTest extends DataStoreTestBase { assertNotNull(storeObject); assertEquals("abc_value", storeObject.getValue()); } + + @Test(expected = StoreReadOnlyException.class) + public void shouldNotStoreForReadOnlyRepository() + { + when(archivedCheck.isArchived(repository.getId())).thenReturn(true); + getDataStore(StoreObject.class, repository).put("abc", new StoreObject("abc_value")); + } } diff --git a/scm-dao-xml/src/test/java/sonia/scm/update/xml/XmlV1PropertyDAOTest.java b/scm-dao-xml/src/test/java/sonia/scm/update/xml/XmlV1PropertyDAOTest.java index 80509851ba..68cfe7ada3 100644 --- a/scm-dao-xml/src/test/java/sonia/scm/update/xml/XmlV1PropertyDAOTest.java +++ b/scm-dao-xml/src/test/java/sonia/scm/update/xml/XmlV1PropertyDAOTest.java @@ -29,6 +29,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; import sonia.scm.SCMContextProvider; import sonia.scm.Stage; +import sonia.scm.repository.RepositoryArchivedCheck; import sonia.scm.security.KeyGenerator; import sonia.scm.store.JAXBConfigurationEntryStoreFactory; import sonia.scm.update.RepositoryV1PropertyReader; @@ -38,6 +39,8 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import static org.mockito.Mockito.mock; + class XmlV1PropertyDAOTest { @@ -108,7 +111,8 @@ class XmlV1PropertyDAOTest { Files.createDirectories(configPath); Path propFile = configPath.resolve("repository-properties-v1.xml"); Files.write(propFile, PROPERTIES.getBytes()); - XmlV1PropertyDAO dao = new XmlV1PropertyDAO(new JAXBConfigurationEntryStoreFactory(new SimpleContextProvider(temp), null, new SimpleKeyGenerator())); + RepositoryArchivedCheck archivedCheck = mock(RepositoryArchivedCheck.class); + XmlV1PropertyDAO dao = new XmlV1PropertyDAO(new JAXBConfigurationEntryStoreFactory(new SimpleContextProvider(temp), null, new SimpleKeyGenerator(), archivedCheck)); dao.getProperties(new RepositoryV1PropertyReader()) .forEachEntry((key, prop) -> { diff --git a/scm-test/pom.xml b/scm-test/pom.xml index a3c5e38cde..b51c0f05e8 100644 --- a/scm-test/pom.xml +++ b/scm-test/pom.xml @@ -59,6 +59,12 @@ compile + + org.junit.jupiter + junit-jupiter-api + compile + + com.github.sdorra shiro-unit diff --git a/scm-test/src/main/java/sonia/scm/AbstractTestBase.java b/scm-test/src/main/java/sonia/scm/AbstractTestBase.java index 45e931036d..535b84bfc2 100644 --- a/scm-test/src/main/java/sonia/scm/AbstractTestBase.java +++ b/scm-test/src/main/java/sonia/scm/AbstractTestBase.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm; //~--- non-JDK imports -------------------------------------------------------- @@ -32,11 +32,12 @@ import org.apache.shiro.subject.Subject; import org.apache.shiro.subject.support.SubjectThreadState; import org.apache.shiro.util.LifecycleUtils; import org.apache.shiro.util.ThreadState; - import org.junit.After; import org.junit.AfterClass; import org.junit.Before; - +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import sonia.scm.io.DefaultFileSystem; import sonia.scm.repository.InitialRepositoryLocationResolver; import sonia.scm.repository.RepositoryDAO; @@ -44,17 +45,14 @@ import sonia.scm.repository.RepositoryLocationResolver; import sonia.scm.util.IOUtil; import sonia.scm.util.MockUtil; -import static org.junit.Assert.*; -import static org.mockito.Mockito.mock; - -//~--- JDK imports ------------------------------------------------------------ - import java.io.File; - import java.io.IOException; import java.util.UUID; import java.util.logging.Logger; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + /** * * @author Sebastian Sdorra @@ -73,6 +71,7 @@ public class AbstractTestBase protected RepositoryDAO repositoryDAO = mock(RepositoryDAO.class); protected RepositoryLocationResolver repositoryLocationResolver; + @BeforeEach @Before public void setUpTest() throws Exception { @@ -90,6 +89,7 @@ public class AbstractTestBase * Method description * */ + @AfterAll @AfterClass public static void tearDownShiro() { @@ -162,6 +162,7 @@ public class AbstractTestBase * * @throws Exception */ + @AfterEach @After public void tearDownTest() throws Exception { diff --git a/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java b/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java deleted file mode 100644 index 48da04018c..0000000000 --- a/scm-test/src/main/java/sonia/scm/store/BlobStoreTestBase.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * MIT License - * - * Copyright (c) 2020-present Cloudogu GmbH and Contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package sonia.scm.store; - -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.common.io.ByteStreams; -import org.junit.Before; -import org.junit.Test; -import sonia.scm.AbstractTestBase; -import sonia.scm.repository.RepositoryTestData; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -//~--- JDK imports ------------------------------------------------------------ - -/** - * - * @author Sebastian Sdorra - */ -public abstract class BlobStoreTestBase extends AbstractTestBase -{ - - protected abstract BlobStoreFactory createBlobStoreFactory(); - - /** - * Method description - * - */ - @Before - public void createBlobStore() - { - store = createBlobStoreFactory() - .withName("test") - .forRepository(RepositoryTestData.createHeartOfGold()) - .build(); - store.clear(); - } - - /** - * Method description - * - */ - @Test - public void testClear() - { - store.create("1"); - store.create("2"); - store.create("3"); - - assertNotNull(store.get("1")); - assertNotNull(store.get("2")); - assertNotNull(store.get("3")); - - store.clear(); - - assertNull(store.get("1")); - assertNull(store.get("2")); - assertNull(store.get("3")); - } - - /** - * Method description - * - * - * @throws IOException - */ - @Test - public void testContent() throws IOException - { - Blob blob = store.create(); - - write(blob, "Hello"); - assertEquals("Hello", read(blob)); - - blob = store.get(blob.getId()); - assertEquals("Hello", read(blob)); - - write(blob, "Other Text"); - assertEquals("Other Text", read(blob)); - - blob = store.get(blob.getId()); - assertEquals("Other Text", read(blob)); - } - - /** - * Method description - * - */ - @Test(expected = EntryAlreadyExistsStoreException.class) - public void testCreateAlreadyExistingEntry() - { - assertNotNull(store.create("1")); - store.create("1"); - } - - /** - * Method description - * - */ - @Test - public void testCreateWithId() - { - Blob blob = store.create("1"); - - assertNotNull(blob); - - blob = store.get("1"); - assertNotNull(blob); - } - - /** - * Method description - * - */ - @Test - public void testCreateWithoutId() - { - Blob blob = store.create(); - - assertNotNull(blob); - - String id = blob.getId(); - - assertNotNull(id); - - blob = store.get(id); - assertNotNull(blob); - } - - /** - * Method description - * - */ - @Test - public void testGet() - { - Blob blob = store.get("1"); - - assertNull(blob); - - blob = store.create("1"); - assertNotNull(blob); - - blob = store.get("1"); - assertNotNull(blob); - } - - /** - * Method description - * - */ - @Test - public void testGetAll() - { - store.create("1"); - store.create("2"); - store.create("3"); - - List all = store.getAll(); - - assertNotNull(all); - assertFalse(all.isEmpty()); - assertEquals(3, all.size()); - - boolean c1 = false; - boolean c2 = false; - boolean c3 = false; - - for (Blob b : all) - { - if ("1".equals(b.getId())) - { - c1 = true; - } - else if ("2".equals(b.getId())) - { - c2 = true; - } - else if ("3".equals(b.getId())) - { - c3 = true; - } - } - - assertTrue(c1); - assertTrue(c2); - assertTrue(c3); - } - - /** - * Method description - * - * - * @param blob - * - * @return - * - * @throws IOException - */ - private String read(Blob blob) throws IOException - { - InputStream input = blob.getInputStream(); - byte[] bytes = ByteStreams.toByteArray(input); - - input.close(); - - return new String(bytes); - } - - /** - * Method description - * - * - * @param blob - * @param content - * - * @throws IOException - */ - private void write(Blob blob, String content) throws IOException - { - OutputStream output = blob.getOutputStream(); - - output.write(content.getBytes()); - output.close(); - blob.commit(); - } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private BlobStore store; -} diff --git a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap index 8c1fdd3930..8b94d259a8 100644 --- a/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap +++ b/scm-ui/ui-components/src/__snapshots__/storyshots.test.ts.snap @@ -50505,6 +50505,162 @@ exports[`Storyshots Popover Link 1`] = ` `; +exports[`Storyshots RepositoryEntry Archived 1`] = ` +

+`; + exports[`Storyshots RepositoryEntry Avatar EP 1`] = `
heartOfGold +

heartOfGold +

heartOfGold +

heartOfGold +

); +const archivedRepository = { ...repository, archived: true }; + storiesOf("RepositoryEntry", module) - .addDecorator(story => {story()}) - .addDecorator(storyFn => {storyFn()}) + .addDecorator((story) => {story()}) + .addDecorator((storyFn) => {storyFn()}) .add("Default", () => { return ; }) @@ -94,4 +96,9 @@ storiesOf("RepositoryEntry", module) const binder = new Binder("title"); bindQuickLink(binder, QuickLink); return withBinder(binder, repository); + }) + .add("Archived", () => { + const binder = new Binder("title"); + bindAvatar(binder, Git); + return withBinder(binder, archivedRepository); }); diff --git a/scm-ui/ui-components/src/repos/RepositoryEntry.tsx b/scm-ui/ui-components/src/repos/RepositoryEntry.tsx index d4ab43444e..80b5f12c3c 100644 --- a/scm-ui/ui-components/src/repos/RepositoryEntry.tsx +++ b/scm-ui/ui-components/src/repos/RepositoryEntry.tsx @@ -28,6 +28,7 @@ import RepositoryEntryLink from "./RepositoryEntryLink"; import RepositoryAvatar from "./RepositoryAvatar"; import { ExtensionPoint } from "@scm-manager/ui-extensions"; import { withTranslation, WithTranslation } from "react-i18next"; +import styled from "styled-components"; type DateProp = Date | string; @@ -38,6 +39,18 @@ type Props = WithTranslation & { baseDate?: DateProp; }; +const ArchiveTag = styled.span` + margin-left: 0.2rem; + background-color: #9a9a9a; + padding: 0.25rem; + border-radius: 5px; + color: white; + overflow: visible; + pointer-events: all; + font-weight: bold; + font-size: 0.7rem; +`; + class RepositoryEntry extends React.Component { createLink = (repository: Repository) => { return `/repo/${repository.namespace}/${repository.name}`; @@ -131,10 +144,14 @@ class RepositoryEntry extends React.Component { }; createTitle = () => { - const { repository } = this.props; + const { repository, t } = this.props; + const archivedFlag = repository.archived && ( + {t("repository.archived")} + ); return ( <> - {repository.name} + + {repository.name} {archivedFlag} ); }; diff --git a/scm-ui/ui-types/src/Repositories.ts b/scm-ui/ui-types/src/Repositories.ts index 8353bf34a6..697226492d 100644 --- a/scm-ui/ui-types/src/Repositories.ts +++ b/scm-ui/ui-types/src/Repositories.ts @@ -32,6 +32,7 @@ export type Repository = { description?: string; creationDate?: string; lastModified?: string; + archived?: boolean; _links: Links; }; diff --git a/scm-ui/ui-webapp/public/locales/de/repos.json b/scm-ui/ui-webapp/public/locales/de/repos.json index ed4feb7dc6..b7a182f4d3 100644 --- a/scm-ui/ui-webapp/public/locales/de/repos.json +++ b/scm-ui/ui-webapp/public/locales/de/repos.json @@ -6,7 +6,8 @@ "contact": "Kontakt", "description": "Beschreibung", "creationDate": "Erstellt", - "lastModified": "Zuletzt bearbeitet" + "lastModified": "Zuletzt bearbeitet", + "archived": "archiviert" }, "validation": { "namespace-invalid": "Der Namespace des Repository ist ungültig", @@ -237,7 +238,7 @@ "submitCreate": "Speichern", "submitImport": "Importieren", "initializeRepository": "Repository initiieren", - "dangerZone": "Umbenennen und Löschen", + "dangerZone": "Umbenennen, Archivieren und Löschen", "createButton": "Neues Repository erstellen", "importButton": "Repository importieren" }, @@ -351,6 +352,31 @@ } } }, + "archiveRepo": { + "button": "Repository archivieren", + "subtitle": "Repository archivieren", + "description": "Archivierte Repositories können nicht mehr verändert werden.", + "confirmAlert": { + "title": "Repository archivieren", + "message": "Soll das Repository wirklich archiviert werden?", + "submit": "Ja", + "cancel": "Nein" + } + }, + "unarchiveRepo": { + "button": "Archivierung zurücknehmen", + "subtitle": "Archivierung zurücknehmen", + "description": "Wenn das Repository nicht mehr archiviert ist, kann es wieder verändert werden.", + "confirmAlert": { + "title": "Archivierung zurücknehmen", + "message": "Soll die Archivierung des Repositorys wirklich rückgängig gemacht werden?", + "submit": "Ja", + "cancel": "Nein" + } + }, + "archive": { + "tooltip": "Nur lesender Zugriff möglich. Das Archiv kann nicht verändert werden." + }, "diff": { "jumpToSource": "Zur Quelldatei springen", "jumpToTarget": "Zur vorherigen Version der Datei springen", diff --git a/scm-ui/ui-webapp/public/locales/en/repos.json b/scm-ui/ui-webapp/public/locales/en/repos.json index 9be2a90324..ecfe7ba46c 100644 --- a/scm-ui/ui-webapp/public/locales/en/repos.json +++ b/scm-ui/ui-webapp/public/locales/en/repos.json @@ -6,7 +6,8 @@ "contact": "Contact", "description": "Description", "creationDate": "Creation Date", - "lastModified": "Last Modified" + "lastModified": "Last Modified", + "archived": "archived" }, "validation": { "namespace-invalid": "The repository namespace is invalid", @@ -238,7 +239,7 @@ "submitCreate": "Save", "submitImport": "Import", "initializeRepository": "Initialize repository", - "dangerZone": "Rename and delete", + "dangerZone": "Rename, archive and delete", "createButton": "Create Repository", "importButton": "Import repository" }, @@ -352,6 +353,31 @@ } } }, + "archiveRepo": { + "button": "Archive Repository", + "subtitle": "Archive this repository", + "description": "An archived repository can no longer be modified.", + "confirmAlert": { + "title": "Archive Repository", + "message": "Shall the repository really be archived?", + "submit": "Yes", + "cancel": "No" + } + }, + "unarchiveRepo": { + "button": "Remove Archive Mark", + "subtitle": "Remove Archive Mark", + "description": "When the archive mark is removed, this repository can be modified again.", + "confirmAlert": { + "title": "Remove Archive Mark", + "message": "Shall the archive mark really be removed?", + "submit": "Yes", + "cancel": "No" + } + }, + "archive": { + "tooltip": "Read only. The archive cannot be changed." + }, "diff": { "changes": { "add": "added", diff --git a/scm-ui/ui-webapp/src/repos/containers/ArchiveRepo.tsx b/scm-ui/ui-webapp/src/repos/containers/ArchiveRepo.tsx new file mode 100644 index 0000000000..dd29a0b784 --- /dev/null +++ b/scm-ui/ui-webapp/src/repos/containers/ArchiveRepo.tsx @@ -0,0 +1,123 @@ +/* + * MIT License + * + * Copyright (c) 2020-present Cloudogu GmbH and Contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +import React, { FC, useState } from "react"; +import { connect } from "react-redux"; +import { useTranslation } from "react-i18next"; +import { Repository } from "@scm-manager/ui-types"; +import { Button, ConfirmAlert, ErrorNotification, Level } from "@scm-manager/ui-components"; +import { archiveRepo, getModifyRepoFailure, isModifyRepoPending } from "../modules/repos"; + +type Props = { + loading: boolean; + error: Error; + repository: Repository; + confirmDialog?: boolean; + archiveRepo: (p1: Repository, p2: () => void) => void; +}; + +const ArchiveRepo: FC = ({ confirmDialog = true, repository, archiveRepo, loading, error }: Props) => { + const [showConfirmAlert, setShowConfirmAlert] = useState(false); + const [t] = useTranslation("repos"); + + const archived = () => { + window.location.reload(); + }; + + const archiveRepoCallback = () => { + archiveRepo(repository, archived); + }; + + const confirmArchive = () => { + setShowConfirmAlert(true); + }; + + const isArchiveable = () => { + return repository._links.archive; + }; + + const action = confirmDialog ? confirmArchive : archiveRepoCallback; + + if (!isArchiveable()) { + return null; + } + + if (showConfirmAlert) { + return ( + archiveRepoCallback(), + }, + { + label: t("archiveRepo.confirmAlert.cancel"), + onClick: () => null, + }, + ]} + close={() => setShowConfirmAlert(false)} + /> + ); + } + + return ( + <> + + + {t("archiveRepo.subtitle")} +
+ {t("archiveRepo.description")} +

+ } + right={ +