From 5d671ff87f7c22f0128e31ef82dc2c83c793c0e6 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 24 Apr 2025 15:54:53 -0500 Subject: [PATCH] Format --- docs/deploy-ota.md | 94 ++++++++++++++++++++++++++++------------ docs/img/web_action.png | Bin 0 -> 49483 bytes 2 files changed, 66 insertions(+), 28 deletions(-) create mode 100644 docs/img/web_action.png diff --git a/docs/deploy-ota.md b/docs/deploy-ota.md index 6d00c59b7c..e75ac1b3a3 100644 --- a/docs/deploy-ota.md +++ b/docs/deploy-ota.md @@ -9,92 +9,130 @@ changes, a new client build will automatically be ran and deployed to TestFlight ## Production OTAs -Production OTAs can only update the JavaScript bundle. Changes to native modules must be done as a full release cycle through the app stores. +Production OTAs can only update the JavaScript bundle. Changes to native modules +must be done as a full release cycle through the app stores. > [!TIP] -> If you're using a TestFlight build, in order to reference the correct build number and to verify the success of an OTA, you will need to delete the TestFlight app itself, delete the Bluesky app entirely, and re-install from the App Store. +> If you're using a TestFlight build, in order to reference the correct build +> number and to verify the success of an OTA, you will need to delete the +> TestFlight app itself, delete the Bluesky app entirely, and re-install from +> the App Store. ### 1. Find the build numbers -Find the latest production build numbers for iOS and Android in Slack. These -are spit out into `#bot-client-builds` after each release. You can also find this information under the `About` section in app settings. + +Find the latest production build numbers for iOS and Android in Slack. These are +spit out into `#bot-client-builds` after each release. You can also find this +information under the `About` section in app settings. | Slack | In app | | ----- | ------ | | ![slack](./img/slack_client_builds.jpeg) | ![slack](./img/ios_settings_about.jpeg) | ### 2. Ensure the release is tagged -You need to ensure that the latest release was properly tagged using the format `1.X.0`. If the commit is not properly tagged, then the OTA deployment will simply fail since the GitHub Action will not be able to find a commit to fingerprint and diff against. + +You need to ensure that the latest release was properly tagged using the format +`1.X.0`. If the commit is not properly tagged, then the OTA deployment will +simply fail since the GitHub Action will not be able to find a commit to +fingerprint and diff against. ### 3. Create an OTA branch -Create a branch based off the last commit that was deployed in the most recent release. This could be the commit that was tagged `1.x.0`, or a later commit, but it **needs to be the tip of the latest production release** in any case. Double check yourself by ensuring that the `version` in `package.json` matches what's in the latest release. -This new OTA branch should follow the format `1.X.0-ota-1`. If one or more OTAs have already been deployed for this release, incremement the branch name e.g. `1.x.0-ota-2`. +Create a branch based off the last commit that was deployed in the most recent +release. This could be the commit that was tagged `1.x.0`, or a later commit, +but it **needs to be the tip of the latest production release** in any case. +Double check yourself by ensuring that the `version` in `package.json` matches +what's in the latest release. + +This new OTA branch should follow the format `1.X.0-ota-1`. If one or more OTAs +have already been deployed for this release, incremement the branch name e.g. +`1.x.0-ota-2`. ### 4. Add commits to the OTA branch -Cherry pick in the commits that need to be deployed on top of the most recent release or OTA. + +Cherry pick in the commits that need to be deployed on top of the most recent +release or OTA. ### 5. Manually set build numbers -Log in to the EAS CLI with `eas login` and manually set the build numbers to the values you found in **Step 1**. + +Log in to the EAS CLI with `eas login` and manually set the build numbers to the +values you found in **Step 1**. ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "xyz.blueskyweb.app" is configured with buildNumber 1011. +> Project @blueskysocial/bluesky with bundle identifier "xyz.blueskyweb.app" is configured with buildNumber 1011. > ✔ What version would you like to set? … 1009 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "xyz.blueskyweb.app" is configured with versionCode 641. +> Project @blueskysocial/bluesky with application ID "xyz.blueskyweb.app" is configured with versionCode 641. > ✔ What version would you like to set? … 639 ``` -👉 **Save the previous values,** in this case `1011` and `641`, so you can reset them after the OTA completes. +👉 **Save the previous values,** in this case `1011` and `641`, so you can reset +them after the OTA completes. ### 6. Run the GitHub actions -You'll need to run two separate actions: one to deploy the iOS/Android OTA itself, and one to build the web Docker container. +You'll need to run two separate actions: one to deploy the iOS/Android OTA +itself, and one to build the web Docker container. -**For the iOS/Android OTA,** head to [Actions > Bundle and Deploy EAS Update](https://github.com/bluesky-social/social-app/actions/workflows/bundle-deploy-eas-update.yml) and run the action. +**For the iOS/Android OTA,** head to [Actions > Bundle and Deploy EAS +Update](https://github.com/bluesky-social/social-app/actions/workflows/bundle-deploy-eas-update.yml) +and run the action. -| Steps | | -|------ | --- | -| Select your OTA branch `1.x.0-ota-x`, select `production` in the dropdown, enter the git tag of the latest release `1.x.0`, and click "Run workflow" | ![workflow](./img/ota_action.png) +| Steps | | +| ----- | --- | +| Select your OTA branch `1.x.0-ota-x`, select `production` in the dropdown, enter the git tag of the latest release `1.x.0`, and click "Run workflow" | ![workflow](./img/ota_action.png) | > [!NOTE] > If you do enter an incorrect version here, the deployment will either: > - Fail, because the action cannot find a commit with your misentered version -> - Succeed, but with no users receiving the update. This is because the version you entered will not properly correlate to a _build number_ as well, so no clients in the wild will be able to receive the update. +> - Succeed, but with no users receiving the update. This is because the version +> you entered will not properly correlate to a _build number_ as well, so no +> clients in the wild will be able to receive the update. -**For web,** head to [Actions > build-and-push-bskyweb-aws](https://github.com/bluesky-social/social-app/actions/workflows/build-and-push-bskyweb-aws.yaml) and run the action. +**For web,** head to [Actions > +build-and-push-bskyweb-aws](https://github.com/bluesky-social/social-app/actions/workflows/build-and-push-bskyweb-aws.yaml) +and run the action. -| Steps | | -|------ | --- | -| Select your OTA branch `1.x.0-ota-x` and click "Run workflow" | ![workflow](./img/ota_action.png) +| Steps | | +| ----- | --- | +| Select your OTA branch `1.x.0-ota-x` and click "Run workflow" | ![workflow](./img/web_action.png) | ### 7. Deploy web -Once the web Docker container build finishes, go to your `1.x.0-ota-x` branch, copy the most recent commit hash. Post this hash in `#ops-deploys` and request someone with web deploy access deploy the built container. + +Once the web Docker container build finishes, go to your `1.x.0-ota-x` branch, +copy the most recent commit hash. Post this hash in `#ops-deploys` and request +someone with web deploy access deploy the built container. ### 8. Confirm successful deployment -In about five minutes, the new deployment should be deployed and devices will begin downloading and installing in the background. -To confirm this, as mentioned above, you must completely clear the TestFlight build from your device and re-install from the App Store. Then, you'll need to: +In about five minutes, the new deployment should be deployed and devices will +begin downloading and installing in the background. + +To confirm this, as mentioned above, you must completely clear the TestFlight +build from your device and re-install from the App Store. Then, you'll need to: - Launch the app (or quit and reopen) and wait ~15s for the download to complete - Quit and reopen the app - Check the `Settings > About` page and confirm the has matches the most recent has on your OTA branch ### 9. Reset build numbers -Grab the build numbers you saved in **Step 5** and reverse the EAS CLI commands to reset the build numbers. + +Grab the build numbers you saved in **Step 5** and reverse the EAS CLI commands +to reset the build numbers. ```sh > npx eas build:version:set -p ios > -> Project @blueskysocial/bluesky with bundle identifier "xyz.blueskyweb.app" is configured with buildNumber 1009. +> Project @blueskysocial/bluesky with bundle identifier "xyz.blueskyweb.app" is configured with buildNumber 1009. > ✔ What version would you like to set? … 1011 > > npx eas build:version:set -p android > -> Project @blueskysocial/bluesky with application ID "xyz.blueskyweb.app" is configured with versionCode 639. +> Project @blueskysocial/bluesky with application ID "xyz.blueskyweb.app" is configured with versionCode 639. > ✔ What version would you like to set? … 641 ``` ## Overview diagram + ![OTA Deployment](./img/ota-flow.png) diff --git a/docs/img/web_action.png b/docs/img/web_action.png new file mode 100644 index 0000000000000000000000000000000000000000..f02c0aa6d8379c36d07b1b33cf148d9df4357266 GIT binary patch literal 49483 zcmd>lWmlX_vo`J)Jh($}65J)YySux)YZ739;O-hMI0P6-aCdje;O@>l$+LI%KF?a` z{DF7Xmzn9i>+Y`Vva5PNDJe*zA`u`#KtP~MOTAZtfPjvMfPkz(fCK-MeD|gu0s`ud zwVIZjmb@IVsiQr!v6-WZIkT6&6L=f~f?vqX$=KA^+>Ok{+|t@Xfa0XJgM!T3On^d@ zL!MRMNzB~JTFS@8T-8TG&D6)%l*f!hNDztNix-6e#9x!a-vlVE+}xaaSy((h zJ()e+@UXDHWqJFS3H$_;tG9!ju@{qrE9Ea1|Kai8+||^@+R4q@(Sht2 zPh%5DcQ*kF3h+4DU(DUCE&k!|;QH70!Gd7;iJ$NdZr>d!oIhco)qZcL8e`X6E`50s^VRT1-qyT1<>g$;Hva+RhvTLh4ge3cOmv0%p+3OUVZqC`1G) z#CB;%$U+!VL~$RSq&OG^>Ih*g4>M=jxsXVNWE_1QWhbVf3Rvat9~8NC^xs5qU%Bfu zevBM^2o{@P@m%%Yksr-`Fn?}&=lbGGYY7FB*8A$yq%ji2>mPQ`snxUsG@LOpgpe3P zkdPRV!y6W#Qpw4KAwDl$ot$rwYy$d;FUquDo*z3RDPnVaU?Gr1xId@#j0oSNiB)jkWG|SQ5`1NBfKUze&53KQc_>_VaVI`aIFkdif?;P2%%-MJ{&0ddXn(Lf0 ziX_uzCA33ClS=%xnP< zZR-tJ;A`9S3l8~?(yDB;3|=RKFpEC)Ki=&D-}-7OG}}3Hx{&W&NA#~6)AtFPB|{>6 zg$n-^ga6zK$4y~_EE?>|Dde~x162*m_p2e}q0Sh6|1Db461fEzd6!dz^BO|#>To#8 zYmRFrDh?@NR6`A+^M^Ey!`MOyhCl;xiy*_c9h{Utb|LLzz>Z8e&%4Gl4=DVfp2Cph zK?LJaKArfflnp!(cP{`m~jHtEXBSqfKBYA|#d?h7QNDzs33H5(jq~ijb%WlIAQ6ThN4UhjM=3DElndoB7MsVk=#=Az zhzUyR9B`u1gTVWqv4PY~Ac)4*nX;kl#KIVE_`{SgC|;~A*G*}g4sH+`CpuD$I=Q2OEiog5%u6Qq59DE5`K5;)0P0W-B2#s`RMQ_tg@PqMG@!`Gn(|6Q1MH zyULebD6b2G*}Aw*=Tq_J-qPTyM!)GJ>dow_H}+u@OGVdW)PS`ObML-4Hmxa}$C;O( zZ=d(ELvAGG`$*ii;bg=8E|Y;7zwf*GR-|*QbDwjHlRz{1vSb^P0ik2)&G){I@LN$o zo@e}L3Lv~tbPkyk0vwE`C~L4}Kdl`(5d}Mz16BkA)_d{%R})G2B68GKlo}WZAMLvX zHu=E5SD%NrMTsYPS*Hc5CBbD51ou<$bD~r+6^jbLwCJK7uc!^V09iX_!a#%>x(g9c zMq8Sm7*I4o^qEdEsVUBK=;G&Gzvci}|4n~~1{obb9V<>UJvLn;L#9S^!dyVck{#F<%}BVDtsX=f~TN1LiS;AMx?jp zE{HC4E+CO{qJ*PFqa>o{lJAq9lb0Bmm^!ot^Gyo*sPiB0>`0ppyZ4CvnI3@Y(Ae;&*T+RWlj z(nj3&3dqnAEtL5)T`l>Ne}Ti>_gpH{SH^pgAvh&h<&HPhLE$yq9~+?0Fk#h2ouZja2$xCODp|5s?XI!kRM;*bEkvcPW49);iBJBkN-- zq2DoeP&?k^@8LH#kOW#k_daew<%HyDlnyw>W@0>9@Z?m*>rVD%YLct$d^N zu71|@Xu`eQ-TEMash*yZ!LLKm$KUm{#l&L%_Y=R4a;9V!T)efl^;+YXo81%GHBX27 zm1f_qCQO5Y5tZ`E^GTMB<_w2tqbIQ*^n{EAPEQBt`C3N?k8-DjcKhR{nB+IfIEknZ z=!>ggLxBZmeGgef9;U9HeW>*a9Rq1`p`OEijtPU5NE&W&= z9mfP?{oNlpZc>h49t+m{fY3mAf-k7$L+B>x+eCgIbo)vViqSbXXyv5L0*_Z8Pd{E- z%}Lie zX`UH3UURXA@&u=Q$ zI#6%~D1{hEXGyBO9WEXpKaNSwMfI>m7(^NKzxHh>G z9J$(6eLa7+uRP4w#MRJ}z7>>QhnIj9qYnsF?2Gd2d4YkKjWTO2EH|Q zQR#l=S}X~Po$sWA3E>zEAsho6vI(N#OT}b<(%*`d*5T1FM8_uN)6L zAPSt})u+fcNU|S8g}Mhoi%z!^fliuw449Gm4rsvmGzg zOjAwErkzG)5ReGM5KtIF5HNpzd<}KP#B@Fp`?DAK9V@GmPG*TG{EHJck>GT!o-g7N zg`PEOJ^CX25#=TP0>cyZZxU-XL~yu=zyC0?EL5LsoY)y1{DcgEt^$ zL$gcziz02mSp6j-J_n@Z&&QLGb)m zEdT#X;m49cShAyV`>Mqt?!GnBG`ht|9ruNJ?hi#^K9r9eK&XoX^+L(2xkz zF+niBoD8guO-*SrF)_Ci$hhtq)Uv*&H&R;X?9mH6yV{?UPcMnwZwouTl!Qu22RKl` z{z_6sO#DR{OiFsDJd;PJAvn0S^1E)P%7~FG0s;u1DB0fbWXsD6lbYW@_>R=B8q7U^ zd% zd`Fk3%+*(<((CsVTue{jNv2}dOHXAvs z2ZB|TS`)CQaztK!#)A8bv+`TsEcPxPZ$~2p7k?>wJv`VuidjqC`gX2CKa;SZuR+^a zu~iM7M10|h0;}1`4HMx=^+^3lqc}S-XR){{Cc@cG162n0&x>s&joOI)_A|w;@lu$| zJ7)7e6eUJ6tQeu7J;KGt-(KI`w3d}!`H9Z5#+;FH3jGr}ILLFaqS9w)SElR> zzjuO9YC&3O&|bZyed!3Zj>=kA^aXo#gJ56iBhLp}oc2_j;Cqp$+<lQV>^N^F`O=(5IHXYWs-33?~=x#)=hXt5MASX!ft4vTZTbU?lz z8w#V8Ah?Qo%>s{^#2D4IhNblu?|Bm$uX)-Pjpqt*FX7Kn6GzW_`J5WrI? zgDWCxW&>ZquQ&s_F#Pd!tU3s}#zahxAuhtX>`;`&#%gEruA6nPMqmq-16wFKl;PR^ z9m)(F_t1L{0+kjqlC;2rvZ7KN>*&br;wG?#Fc0}hIy6BMHN8OtBv9%!80^uMKv|pL zmPl3sJ7A4w1y=Ykeqhg;dv+g8A8Rpy23{XBIQ-4RzT^5QI*-VMJ-lnji%T}Jp<$+? z=6;`9T2WDvNBWblIFv{i_hxIM#T=PgM=9oCAF{08HhZ=|(dN`!ieBTP^wqgQ;bnSOX?ugpm_xf_xd(@{xT=2+H>TA! zEWFg^uwl{2eVih?ykkkHmQ79_;aVFea-Po{ec3C?VWZ9Q(IJADwMR7Lh;BF*T7+lM zW;><@?ia6O12GL!W!Di%Z^r}P=Q;`G`eScndVPl%yd=FO%@gW3C|?u0UDT*vQ#@&{ zPUCT%%5R#wVA5;uU-q8U-~OPfr_D|R33@dya`L^tu>tlVZcd(ab>43;%J3s+-*D`z zMMKQ@`lQc}Qe6!$P*=%oi*=Y^PBJ3{Au07jU*9UBm%`UW-$VYU;F?u*H9@0FaT)7e zTE%QLk2QPEx<#Av^tw^OCfp|SF-*k6+M&^!ugy*yq8CGkPmBDI{RIlGS|+&f%U=ci z3^~GbL75>fx@O__xsv9WJ9zNpmJ9KQJdDOI{QfwvR zYAF_;f^^ye;{OP}7xv8+xK(KG87KV@v8x2K#*3|jB~GshaW|m&GFJI%YLPolJHydn zib5d=_-XHOmpxYKtXcb8eQWUzJ?%wI4BE{hOWUca_5rGU?De%rU0T+4tJN9iMK_jW zqU%yyv%bE5O%8ih7h3|YBIiBA>3A13O+R8Z0gU%nb@PUZKL+Gt zXo2v{dIt2>cjxsJ=s;4x(A+?~uxGaYWr-P3>)H#j<#IDhFHJ++9Hh2T^|*19rBcw; zH0O8i3Sa!=C->H+>d2yPCFoI6=z{U$cFVws_jtYlFuOJ2x23zr>3aywNCOVgoVm%~ z3B5dCY`0yousgD7k?rJerxwJpzq63@bglyLe54`p&Xy=}#eI&gB+I4N6%6NRK%?FJ z5z!2lm1LR~SGHDNwEmo|&S*Ub@}UW>yFO%S*Ku;GChIa^>o(e@dG8ga4BrGeg)^8E z88Hp)+>e6R-o4zt2%43gS8>u6nE5Q+EZwMXulODwx6O3qI8DCUE~P~CR1HmV9^*NP z<{k~mSrB@yHZ5p9Np%5Y@&8`IWuN|<%R!Gwk&sB>YIflE10k9gbYfsd*PE@OVj3zob$8IC|};C(~a=2wZv>5CKR^6gF; zQ4kXRKIG9qSzoUAeeeW#>TEIB_fnxrXSAYpv*n*Oj1FH3&1=UDe0k(k&K1(#XSMq> z-6j#GtMjj0Pg-cvG6ZZj>{85AvOHr}CdVsHN)~D4xzj~MpL|bRSutgoq>l3?+0)CkDh zpcFZr$i-D(^LcK!KrJYj+GFVzsq4mJ2Id4q6TJ`e0mmegaWsNT($h*G_NQYTE*(UP z^llr{x|+vx)#b$gz%`dBYkO;sCC3hZ#!NYVYwEfg4c+wClTpO5JjQ_od9D?^>jhty z9cqBdWY}K)cgHz>Pd1^K9+oWEa2yTRtgNh2!N6y~skynG!<+?2!xHU8v5=o#=t7$w zk@}WL4I^lLb|)}&h(?x~9+5mh$Gc3w4^qbjP#IlaU1eBid-w8R9M(Cn4sc69zzdxQ zlz)EwdNC=$(zc6v(Fu*tdjnc~0%{wFgGRDRpQMJj6$62@!&!WDZk{O~a0TokBC20* zO0yhE18$Yy`Ce~ZL@ns1Ha2P$m})3+KWn+}TO0V^{Y+5g5m5=Bw-_aIeM04GK9}OF zxcy#HH@f(Jze;+WYt_${zCxM!I!Rl#~-}=zK}siuQLc z7<&EcKJ+l@Ir!Q5@(P{6Ee4H}Y4L;LEo9S~Jl#Y=tRQZMdaF(4=7uB*adkoK`95jd z#VF4bBFnddVRw6m?g4C0EQhp~gI*sf4<(FJh) zF){EvD_U2-{I*opny%>gXv(bjG%1c}XmZ^8^344#aI<=FNLqhFX?5?=a;0&x>^j!x z3|Cjt(o0~`pswkzocOY^lZ~f{o{Z6a#JM!T#rvqXg32}DiPWv{fV$V=*unu`-Li`Z zBP-1vooeNj-V)N3&ej{OVscp{1sC^V^XEeg&)pUOrjdkJN?^!dCo#NX98|PD ze?Fh<=mBN$xLSw=pH;OUGfQh_)?H~RxR$o58!`ibzUAZKq-7ioY_=F;YWi3g*T~K% zuhzN+JpJ(@YrN!Ro#mLvqeJVHhwD1z17E~Jb(2A6->|$T_e0&7faPq1>W3b$CVkIF zzFmVYm_=65)y$j$U`oxVWfjT)EeHuPr!B%(Sb4b$D!j;-_$EZx@syIC%@M63s@aoJ zIEsTd4ZR5YyW#-X9Ceq_AQYu?;<lU zi?V$4&)XR4B8PFCHb!& zR3F4!Qn|s_8ElqDt(P1?qYEaw;Wh-?jm7eAN0QlFjML!CD~WU#e-0`sTtsb(leS^# za%kRs`vTz71GiHfXw)Ay^qj?aJP#_HdZIbkhEEDxk2qa74^LY9Y$Z%%k(e+asUVVV z+AJoJ(~F8g?ij;_eiIDTSYg20Ln_iW_JkPHgu{n|F1e zDiU8S?~yXbyDbwv@2eT=BMkytx-OO7+i00tX&a;xc3w;`u4N}^&5*qeyTd9)fu}@) z_2*Yj#Y(m(9yO{8IsVrzUOtv8TIrnjI(j~AZ_Mgx*zgfm!sX`e>y@plnAvX^gL9dut{%=5|{)5CGdOY;F&yr*N5vONGNQ?&eO&juXd38H3-o^zyG4>L& zHq?uqmhNl5FBVf8n*kskAy^dx*2=Dox8{*U+sV2Pu5&4d*FWNC#U1QRD&buFvOM8z zE36ay1{q2`MNmJxF^aS5@M$v@pn56PXN;;XS-EB!&FZ+07|H7=h?=N)wQWcUscU}T z8D3bdT3B8!^4-Y_x7hd*UbC&}F02~VHLdQCKu6&2)(P*m0hpnp`En5CvLrPM8CGUW9?=ry||Q^v#vPx znu)Ml=h&$&0`Ay%X^YoPO|xDkdN|8NKQ9_)kjGFa7%h}{bS zoNm{W1!dif(O>$gfsXBD`-w=yN1NvLeRB#^KkxMWFfTJ_<>jjN|Di>Z|&AnrK>-T-N@ zeRlIEXX$$p-zKLR1T07iw_dXZ0>s#1-3ZG^%9Ew5s1v^u&N@XrHpqVQ;6dF6c6%qD z`#yVjJd}B4qPEu4%thPyR1a%hXGK*;&vMNUnuYgHkTK3aoS@s{>mQvPR#a4w%y3kZ zz!0sILH)9@s~`_yq4CtGpujH^=MPyYesjdvRp(Ml<2=C~4^O0)WB6TC zWLLy1Si#eclfK>ihdfT6^k^7>B#AdW^JL)5Twt%HLjQ$j$E|pqpNzZo!QA!g0oJc{ z%hh!5`1qLHzMT=Aa=YzoY<#_2PZLnt+zx!=gXx(gHSkVqc?l3=QXMPehfnI64q-c2%9rfTcu)j)y{&z3rrHJ^h@t@83yo!5wf0uin0i|~%}jr}K^ zxsG}nQDQqZ#*Ndw0Bpl9@n1+Y7?R8b*E@%1{s_+-GTeR=x=%`36(tiF@Tzu}la7YZ zD_Y!fxo2mwN3Y}YtqYjj4+%B;wFw>uCgLKo`bsau+T|FAFm>#~?9_=`#a7_^SLW!VFt{0LYv(62w ze|H}9`t^Q`C<)Jg?OWc6KqLuY-|T9HZ>WhiHkWBUXd^G~hrHMpx-Ai&S8Gq+JU- z+TCS+SFFfY-F7cCAjhcf5Kb2@|2y1Y=W&uS$1r3+?y!53=~LF_caI@P-K9z({4!o1#968Eqg` zFenU%fU!}`Egx!H5SLA!dA9h(SI-ABA>QeXU}@0Prc@hinVaU?C%j@Rc~b}uG{0by zHFPS8FfDS3U^cPb)pOmY>6vlXn6yO^kw18(a1t23slb$~4HnKqfI;2*(L-5bJUluv z7VwFNzr7e)aF69`8hu~VML__J+<%@nn-CfY6ZV{4jNC)%6kW;^SQhHkaWky5-(G~f zv}WccE&fK~g^lbmguA#oSFwu1gvnTK*rT-p5Xbcq5G1EkHgW{zf~9<$Pn^dOOjQf( z?W!kbHzNyz_ea53m6c4_IRfMDhDQ+p0Y&fA1_6s-q8Dv6y0i{Dwyf|O0v!v(ghMfm z;>O8X;`@Fzc$9F1t42AeEQ)#r8MwiKT}o1NKSq#n5ez*R(bCeQyrg8S_Uw{lvfGV@ z&qd_qf}_lJYd(%Db=iFb?62A!|KW(-&;NWbIr;l?+eys}aIfR;0R&I>_>?ciP$D$d zsao9LKB9jIhL`q5gh}^hpHdhUtxED%X6rh3hX(Ab&TVY-DoB z6znrttGaAnFICK%q`fx!AuaEnzym{1J#J$O6-~-DN^SVHw6AgIo>ODg*lZ-Z((nFl zWn`cGq06|YNwsn5k}pv%FnZ-))VErfFV7HkGDP?Mu(-x$lze#!#la(T#lb1o2$nRxt4Wv~ z1|kVD0lErhMlGQPTjZnT(q5}~KOr9sH+G}~%josij+z)2#a;z~Ynm%0W~VpvLK86( zN6jW@Djj1J7HyN?7`4)vBU53E6)wXO! z`~p&gX~@Sd=GYZ#7ki!ckL1t0`DtMGWyv_0k(-#;Tc(jdAy;bDtYs$YUQ%gqI zkqmG8gce4Sw@N^G`uyrvDd${oazv)@8(aoxB;e2WNhRR7QUdZ_o4!oN1+cvmn#8Bs zI*6JcKYrc>y?G;WRkHgKW{7wddoT8M_M~n7gmYCCe?RHi@Ch0Bs`ZW2R^|A-aRc#@ z#>K?`b218NAr%Ugyc}8UtrG?|tT@j>nW=+MrBkz=cE=3ebvh&$wceAK?d6SfnoMnU zukFMwvj^?9)Bs>7u{iN;W&MeoK*G6O*k~Gq?)1|e-A1)Uy(ZP}B@e8kRJDB-Obqyc z+P=ArP-3xzDwMThlv%Y_!k;G#Rq;NlO=oaKe=a1U@~HX}^hHhYU?{JfBhmnb&tdhF zeaJ;m=qj_t&Q!ZLhB`SP;<6JN&B)#^x3edWVEie4KBp9E!y z;Iq(H;RHRtC5lvP0*xvzac zqHmxIY$hmL>#RUqb&oz;m@iN+s(OJ(UKN+u#J!G)Bc{_rR$~vWXzYjpQwJy=3V!A6 zAD}UiAvb>?Bx=DbA{>-EZLSc6SSoiULB)wnW)Gh}*ZOi<4!81PQ?BX9(kfN@R8}tu zSVV=YKanGM6oy8Ax7PBbM`}-03b(e+$Tlj-Tx=C*h zkk6uAMZ4&Z@e!s0K?KKSG-%iQGLw7$wbons3lJ<@=6)9q5#g>QR9%RFvI+^DU}-Gg zN{gB)Yutn%`A9t9k)jQz=C{y*r0TGq;nJ~dNH&!4#Q7ljZ$t%lu6f=h;z~bNup>Kp zq9-!fb43P5H+r(NT~T8-w^dabrWe@Sb zqn;z9nI%GlLCtRsJeE~q7ILTibiNyv@uUJ8+8X+dm;G@KGsTkI@9mA^PsInu(}48^ zTcI!2r$O+6W5_T5dEoS#-ROmTqDnJU>%CSz%QE8UZ$9#-QQFN`*6NENo)=N>Zi)-f z5=N-4;Ot|J`L}x-t@zE>borlaj=1rJcnk)UO4PT2QU#^&h(KsGKS|kRYWQY^ut`bt zjZvstL~|`*{BBg(AGqha4h!GSO(&FX;Y%y7l~DOjE_VOmq0YyvU#u$070Ui|c8sVH ztVTACewftCiA8}44)t8R@S;NfNdavk9ih`X z>6Zl{gs4V{nquettbF=9r!$oY-QEYaX_rmOla)ZHo152enV{Zao{{Y1?0y(j_>`i}4tP-ToIW{Cw*cqczxW zw)QEG2{-3W{8hfO*Zlb?lb)rQj3(=@Q~|1`lA#&M{gz zCQq{i>q>vDsKUR7Dw0&(`)IA%Xf}`-+Jj=+ESDKQh3wtp+bvetA0Oo);1Z)3lE{Qd zuGp2DHMLJFhUiAikYh2600X{Pv%GJ4P8E2oEcEt>_Dp=>0CUF4USPo1P(-x^m#9Ig z;gnTU;9lithXM6s$wPi2)idyUC?4JO=F_697t66tfe)(XF>(_6Sj*IruDJ}ppAuRZ0r%(Ij{s7^QC^IqE5TVeg7b`f3$U z66CNxZ1ZCo09BQhXo?Q5{Nm+4UPRX^wb|+9RCGFWmT;$VI{+1l66?(B2EvX0=?8nm z(6qYZBA-O0<9Q>*=347n&9MU$_)BWSMC3Nek)&zQ6lDE%;Y7NMf?i5*L#f9n?luh6aaEf4Wx(=4dz_Kx zu|Z=Z05Lvx-`oa}kM&&91jH7 z(uDJTH6iL##n#dJxxA8l8hKwle=T3|y#T{eh{r_Rk;&$5RlcMpHiNi(XE z&o}i>V^3(Juu#N4R=v(+Piu%uzIO5!e|;a9NSWqrc0*CtUd@y!zp=A=&*0#tMC$kM zi^GGGZq%Y~`3Z_iQ)`y}CAl78ym4bah7TiriRLiS-Y+BeNywoC=q|Z38_QwKk^4(g((q_hk}&%+^Uqi4pcq2baN$z}7of<$QMB zJ~y!Q^7=aM*!;=D+OvA^VCtOeVGQ-UVm!IOANA@It56be+mBj;#)MwMsW(~AE~ES5 zzP_cI9MDl4F#)IwA5`8!g4cz&Q6~l898z2J3q`wP)~VZt`M&(*US(3Xq5E>$BW;*^ z7&LKz_a~E#CWpGhzzr9>`TSaFHD_vkKP=EbyGh5>rM(T)d9EwSPrRjuxF zUoTE+mjd5nVqeXmkWXx^|C5JD+dvW2U0q%_2NHByf2)A$d!zAce9@-QT{d~)T+&nw zKv=MH>>gv<@v{jdIkou9tAg(DUwbEpJV&SQS}_O>r;ML&*^!2<2qswJEcD1(8KIsZ z6bx`jbw?%$mTdgHP;1^=Q&{qku)lZJbcb2JwYuh-q^CCuVUJ4aZ9xE|wVbjk%m5SD zf9{81;77sq0thW>6f)N%fkqoDbz14YtbT5by>Hn8#$>NU`@NePk792=F*y(OqZY7) z=QF&~p0;xjkQH4b2A2XL z_pNN-CA`9gh5ZLMB8U)Hf{?PB)^gN7p{N_Kvc9YvK16v}X)k9*kTv=J4K~%~opXUv z|8{_Cy4cR%6P8QPoZ6zZO(w9XzO^BqIUcj+Go2=P>02!^e>#9zs$%v!sN()JhE;WA zQR95?w(0F!YPDk+C*#kpll?CLl3Z-ThK8PW@dZE{xcqg8Nsl1lO^$;GqfdX|+zhUf z6*lEN@~GY`!|L-)Z#qnu03bib7MIc_VVuV-JNWH|OZ0e(7SuIQE5ivc^V;zqoP^{% z6~$uiF*}Uphe>sCqIzriWD+$?cl~(v$p))LHyNw!u@h=15*gAeoVgIa5v?g5H z_2fucJGxur;p-4<(y$cWC*GPDkp)bI`A0lt+zaH$(|y|`IRyZnzv zY==pC&iSN{yv}2>EI8uXvtHhPF|?FTlRV}{t_=24jwh_{S62!iWw&4*)01KNhf5c` z835U6+Fh^Tr}ytSd>CNIL}))#K6EV9wyT*!e3YbYod7&dPA^OxbGGaq9}lcR{gV#` z35#Kj7Z>mv>b92Jgl3SmKKRGIT1g!T5QG*_AcbC+O_>f^^=62&e?4?p5IEDy z2<{mK&cGCKM2#9xHPqkx@$y}&4>T9N%M2&|mx>}Nb4@4Nnbb`?q!4$z8?6uv{8yoD z309gXZSYr&RMI7~mMU%WtG|g@bjwg`@G+}zbLzW14iZRwpzGY+w?!e6*&@r6r}@sH zmF4IZW=jFQIDZx~bGzdXp0eC~vd=8Em>BqUEh!Cue>6wK!V10&hw>*i3=%fQL@*Tq zJh`DnT%wH58yiz?X_w$3`R9^K+qB^?3kH)0-lO7yuv+|c-}m;*K7Sh!21a~##jSjQ z)O}4<2qCL^+gW1u^fg_G<8Anda=Xx(oI~%Z#Va+}etjQm`NN2Pj`-`LxC5MNzWQFv zZKu_IEpRgXS4s4rmp9Fh571xpP>)HI)1|S}VPd6A92JuT@}?xi*p=U=j9Zi7WD~CO z2^2hX6fhC=;ZC#Cf949W4#V5V{ImtWrSU$OwWPOHXk!6$Y;O_Z=qAYCJ;5WjS1$2wT zyPEePvi2Oic{kBE#bPVs++v7 za>^z7xfl%WH1lev*(B7x^zY-WHX7<~0*rlV*06nde#DSDwL3cIe1JP6WiOXf*|1bz z#{g`)H91B8Q<9R6v%@U2vZ`=e5$%bK@(CU`ZDtX(qDk>=_;ul{)vyO#vf*r}h{HCG zFPw&*oq>!~WcTtplrbru78#dMa|P9ANnCcAapfJCObnh}?8je9%l2hsCd=Kwh>gQj z?RcOH)wVi4{rkdx`lp~2cn*X5ANj;o-_G*e_cI*;R7K|F^AiBf2+! z7<-^H+926zx6aY1mLToR!B8*Dzm9qx27<52`%o!9!ONixc8kR5-48JYsy4AGCmSC! zCg>&&*z?^)ivTzhDQAn486qFoj>8p%+OAwmL!6KaiAv$`u7tllp`=Wwzt?rND~SJ^ zg2$3H3OAIMs*p=HsJ#cTbLejeJZ=+D>4-hSrINgBb#?g(_*Yc2B7ySg+zk_EndE_- zsFtq}l^*y=5V2UUDfNC!gU@^fpxA{m1K_1*jX2%iUlvVst&33RrfB}?jfIj zUSMHsv=49i=uK4M_3SHe6($HQacJQ?%Fl5;-rQ5~zLWh}|5AQ6Bov@nYx>8^AYjr% zf+9i)NQ-;3HU>DP>LEFo(aH6xxCGTvgn+{UG1o0=u4Xqjy?d+7vRiKgiIwFseSpI@ z#Rs`cJ#eEbQz!lYv#p#Bsf`0L>*r$ZMWfKHA=9kOl-o3JQ+bj*d>DCF5+}$UUGoya z>)^4P4?B#Bt9v<6I+_e?HQ#`n^{UVIGz-xmH86N|~$ zKLmN?sPb_pdhN*7OGaGsk}spOWOX6Ms^~P&w>VoQj^E)Cbu1!8W|bHxHg#}-V=|Ho zy3183S9vDisq>n5=C-y;0XoaqSvH%(flGto`VmdQLgT4dljpsIO8m4XS-9 z_C=opFNY&KMjYSA^-3KYjoSG%$I)(jS5}_!hxx7e+45av&3LKB{uEDOgGEtOO0M$d zqIgm_(g$YQhXT4;a?4}cxXu4zdcndjdb@oo*JTA~#o0o1g!v;Jc5!%!E5dJ~uqCQp z29Hgwg7!)}cnrB%8;s*++bz0#&uy!nqC%%zPEV7NNkV7fHI?=Jt<{U(vx-82M|_v*aeKgE>id5Lb%dQF@*GdkeTwZhpXVHgc+pDRb+gfa3;euvyLrreTjQ> z)vF!K7irqD3L~EvGwZbGF3QhEtbX>>Q2-2J$5y|ApPh?n;ky>Ful~2fEy!8Tub7Ss zWbVj5DTUJo$Cm4b>eSMcdZ5s*jMOVWjaC z7v+{o(gMJJB)T$z+iRQ|JlZ=@1MLiT8g9wHrdS=?!CuE99kjea(k_1ZoB6?TU>SW8 z7Q<2X30d1XUEseXZ5_tA)>n0?JVLC+&jlXR?ja^IL8Oj4O@M9CYZf}2!Ls7g?cR*h zV)^@a=Pgx$CTMzn<~aU-pR(gR_)!!B${h0)(2p3>s2mQ4fw2e&qI@~k7JD!TEb{b3 z_nV#jo(1ze5=_cIGkj~%9^yTyIH3F=jvgCkTgbItlY71<7lseO*rmk=;RJ4;cBbid zrJig4wDK<)`Y!v4JnEKy0{d5YE-@(G$r$_(1AJN(Udici<~NhZj7Acpc8ojQ|K$F{ zxo3#ol;XC|reY8Mt1KHEtS};PxmM+31TLgOo77zx_zCP^#d7yy{JLa!v0Xi#M3fU! zR&=r$7BmWs29kgS3@r_1o(RS*L^UFR+b7sYcp>@VE?Yql-*X8mBhE}+{O}{9&XG3= zgnO@vN|&`bgfN2H`Va|W2En(;0|pw?QlyJlKz$=O(%TzAm>%UeY7ZJplMny$J4jG1 zHAZH2Dc>7D{D_xLI;j;*V=Le6Cu8+Ndlb!;gR)WHlhCw)^PX_EXRj5Xv}%s>T&yB{ zk22SmdHT=4%rLC9pvv-09PD=cqOZB$X%QXAy$Y@|w#7u}q(_9=W6|Yqa{a>Z4>R{w zOmC;3<0{dUlXUrCX$Go1Su|2t>bOwFl{^fLExxYJR8I&^mh^WzglO2Bb;Mv^ECc|@ zRC4GPJS~N`tOf99WG2SN;%88C3pHG(pJ0Bkuge#o==@&hMD-te>{1Ruq)Qb-j8LF z=03~2A(IB){gD9eSNIo78<4?o5ef+`g5AW}haa&AU^p-OUk8fI!0piX{`=gdAz%|R z(7>0PqmdxLmo%~~M(U}H;SP4Y7-^IuO}~=I^En-N)6@I2d2o^@pL;vciWg55EJLcy zSjhSYruT>5X}IteV&T$$+#M~UtBJuE#gaA`d;k8nkALTw;6pG@2Ez_FOsKidKWW;J znaz_@Z)6738=`d@CftsYNO8AdK)w(MA0OkBl<@E`PaRDUHNcifNP<=*Pe*5sb|-}p zEk;2B1!E(Z`|(k;yR|o*-1lEmrA97y7r)l3b6qj2lbf4Vlw8RdikfrPtiG`Q8ulmJ zzcy0vN!W!kwH{rkH=eTCRm4c{q7ycl_Z8i^iE14JwgFj;446B(bm#o{oM7PzHe(B- zGy>Cz5IlJzitf4V`3UeocS_NNLjWG7x=WxTWnLyT=JrqMNh})x(cFT9u4q!BRe{l3 z^P%B*YFT=pdg%n3w5wwIcgT4EkG=N{YO3wph7}`4K@gN)1q75Py@Mc4KtQDT-h1yL z0xDg42azUSI)NZ4O?vNLLJ1^NLreH})a$;U=l*_u^Zj~f-kFRelbyZKvd&eGwbrpY zc!tH1S=$JNAO{DB)xpm`PRV96P6HkFr2>Y89LtPAi0gWHda7~IY%A(yz93&G=}+dH zUQHmB`=N*V_mo@MY0qDF<`IY1>}tzk;hth|Q(1G^B+dBQyTVL=mWG~^>JKz@hUYf@ z0*Z*zWwo|gE%Lw z)ICK)o=54hF5Y@vZW1fD_Dg8%{o_i$;4|2=nfKV2uH9K^nK8<3*YgsOCA~Pu?~#`| zTW$#G#N@-tir~z#d+tT~?BK2NE@dUQT)HS`+MDPxNKWvQu$=Z^?VtAq_a6D}hu$ia zGFClF_a%g|%)?g{utRrVC((`~Kn5sK(_4l~Ko7P{r&sr|OU5qhF2ddyN$!~aZ zo~g^znb!@G{EgUcSh14(-#o#NF|3tQ1$C1Xk^)sNb$4y-?Rha}xB^Q)jE6tUsxokB zeMVXjheTya-7EN~`Npl41^ZRg&5SZdr^Sv&WS~HWDm9Pc+dKlJhbkFcSy5zMee>k9 zu+_P_OTEEq+ay*a#!uf-?gc#^T-xqeE`$at1 z-o7lI*V?{z?fv5nedo5p*5fJto8u3~0Xg*rvkeJtPEJodL-jaUg_DfAt7bg|fl8|k ziY+=9`^(qCY}y+@Q8_y!TJQGRhs9TNFby!+|7Bm|@T=R9RV$#A$Hkr$SX{ebUo5u; zG>R*KF5D(5!{*5AIJ?eE_22FcRa{3~ zOI$PyIm|mYJi!S@)AKIfO4dCbQ{tLG$R@tc&2af19n6TgEyGLx z>4X6*D6M#>+q%tVe161UoUL1HGwoUd>r~HDWFY7FYtNvWg{{mZ#y%ZqLx@p%I^NUAkJX#|5t7qJ7i7HdP$0D@+jIfmK+C3 zA>h1<9JoB*eUaep0B^qva-W*r>~>=ReIQ24K@qe!QUp@iV~pXoZnpdHfVMy;Tno*U zcl7oug3y#`QJO|&Z4np`NgRBOn6&*Yri$zysiqsAevdxGjv?YeTGxk?2FLYe)|&Jl z>3wUUOpez&+gI+b#Mbeh$19+MfJDkBL$4(^P%}(xbm&uu`!@nX{HY1buY-c~1JrK4 z+P7{+J+Fpl*yA@p>HndjEr3`uk4uWbyIlU(^883;AhrFdOX!v8G_BWZLJgQQ1ykn_ z{YHmY%c(ADEtH+N$`ppa{YDt$ta%&a3e~LM1-b#)OrNA%@-MAVBx~`|p|<1?fd7_i z47&Evm`nOm=d!SW#;@I-nBxj!K<+=#<@}=?Ml3*|g-8eJ3W|6EOZ%mzYhBu;j>Ko# zf7!gHMP%J<$z?qTDpsa`Ii8Dl@bmXKzY<4Y+Bl@Dxh*wse(y}H(;JgQ!;$T(dyq%@ zyJ-cHq$y5KtKF}bC`)i^le4AM`0VGlQx$7JOiE$9&pS4XmWi|5FaN^@P-H{vIdQip zB=0~R)4D`jW(kx%E(nKY2>1=nT8IDio&G9IHLgI#@4O@?xFNu0_Oqs&(mriHPE-I= z#g{`&%FMST)}`+Z9$W~zpeg-1M?h4>2bjWx8Ez8%E72pjU@yF5%Q9dZoD)GMq5j- zIa~S7ETBW-7pLE3$I&^<-p2vz$4pE9h_)ff(A>7|7rnB^ArY9+b+s_m&!hn==a$*R zvz17R_=EPfA7ul^B=WIY{zHHVU7r$Fb{s}b9aW(eaJkPi&{v$5LCj;&IWX+j&tW|z zwqAD%A(o02+ez~gFM5-t#MwMh*aGd*?vdUAT7fM11{+=-<`V|d$9@*`j7!~{lclhY zYDZN#f49Hky=2RB7)EEXI-`~7Y!DK?@vz_c>W;*zR4t4XJrkdkL+d`;m1St>E!K6r6AI^bUg%;H%I-S&1&EjOvydVc-D@3_QlqmmN6G zgSxM7;W_qD`?p?rAFu`OrC&DA{U9u|H2z|t_*^Gxxe2lqC!RD%vx&cu@!fn zNMJ%cjKZ>$zZP2K<}&>I1pP4B|Ay!Rr#*@lxUEQ8VLO0Uim-QFR+AI;$F7KjS7d9~-%*uA zXFRxoW}=0nCbjhk&mwIL-4;9&bDdcIg({z(e6o58H+e1a60WIzjAe&=TU({L{QK@j zsVWq2Hu-0wO2PVz56~{M!|<23un$&&;InvT{VQSH3(PjwHR$)QQ(8=o>1tmiH7{2*Po z5GRgq;&d9%w%hllm|C^|v}{g8o1p(U06M^>=Y}$L+`#f=;_jW!5=r^^sPV&B)~AXY z;uJKSY6A{A>27B`WmOxplYVWI^M}8VRILmjM+a>58}mICWzAQYE(H;(Tum_S@F-Qd zoJ1L;f6PW+xaW!^;o?{Obex%n-iypr_m;euQ9}qh@Y86JTza5neH?g4ewdN8qnBnV zDJg}|-ovIfhb8R-5lpZ17!m{z2^;7lGbD0esGYUqjq%DuDVfz~zvqo3-U;!qh{LyB zb~sFjw!o@XEy13jk_mE<%ta+yQO>>Ksp$ltxcZ=n2fsmq(1(m_9W#k+r7BwTJ_}D? z|Si5PSBrspaQ~sD+`7Im5%mi(Q(J z&5XD~0V+;6?%!mG9mCLk;(X-U<7vt)!Fyuoi~a46-dmSBXZa{Wz>#4%&zlB97lu2j zUnvJXr_Vf72*rTDTin8F|UO6-3paZM{~*!g<$NqGA^$%hy2n}*Hq^cvTh zMV5RwX}mqU*}Tm2nC5|4OpvrmX~3@6W(1QR# z6Ua)J42Ikn-$S!&x;cRO z^s{N*XiO~m*#t}5i3Yw0>*Z$qFJ?jJI!ff}Mpcj{UOtSXbrRU^L4Ki z;mvM6!PV5Sd7dF-2h8C(wh)gyd3WMeGs-H@)t^5Wa35D01dO$%#N{esmxgq*fbiZc zIAg4s2(!(0PzGnqnN?<2=f^cepo6pYfEi)fiw>~T9^cIIm$<(N|E?!{)8gjyGuwhp z5>*jqPh(q3!8w<2N!6#H7il#1Kik&D^0Cn?{gT)nk@@Tu6^w!{LwD#8GHE@%HI(E)4zPbAVK`M3FX5N-HD^QOHNhf_KTiC#w4$cwonh% zZNw#^7wiqhufi1{L3QN`xkGwldq=#7Z)Cdydua!MP0HNipEKmmTq+Knzop5NDT&@! zEiEr}6}x;}P=4(L>6SFpMzP1n3uNmz_*@2`_mZ#m*!IwflAqYcg1e%%L#n_Y(1BYc zS_YxGxEYnBBrm)*a`AKj)-6>Yas}!(qOl13D=D~6gau`IuJ6?BetNu{(uIgMtip1T zclP43G()?EG+yD{tQLaazOH-UIrswHe0hMd49f!R1>Clx^}TbnIsL6;4XMxJ@k9fL zEV;1qwO-tiP_416%sUcKKb5AV!mHV;B8(9%tw*2ttv_$0Npb3j|HES-dbe^|0 zD*Sw}s8r4Jcu$CD%Qdch6_6V`MhFMXzJ#9GIj=oaAlnL8%+-$4_0RS+OgY?4^^(Yq zGT6*Lo;DtKsNYB_>Y{xZ+`h>EaQB0*-IGsjSptq3zI*l4YiuPlg_F9`A`sIb2O0wl z&F*_c*~3M3{xXGCo=sCH+vyLL$(^C?63b#VDuETpfv|*j0p?raKFG+iZr zf1-NTl7wdY2eSP^Y5qZCq+^heAPnq5&XA4bWEB)r@$n?9A z{9jmbqzObsPK8`Nu=uSk{)NsWWUqy~>YOUz|9dUw%RE;+dTs$Yc%$#1#Li!c5OU1faoFRqAj1w*@;L%z;5AyQcW zEu{NBGN3jDH~L$r{QqdC`8~22CBS!bUFJ~5{@(*N(E%nF86Nljzve}mdJW5b9ipFu z|Gx+NwHh#ccW%?Y`%fFqAJ3GJ6BuWAV51nte+|_1u9OKisRXgizu+}yUN#26IAboH ze0l!efZrqg_8{b|5PQJ?0UI!~)D+i^*{_07DSiFS?cH5I8k#-1lPN8TMoa`!ngZCS ze7qwhG7|!ksCCe-+TPxFJ;~R&i;-U`b6{N@%8`BJm_q(|7ong_pYh2_VY?sCo?=8M zNk)pU>8J{TD3#N=mpr_YX#jr;y->=HgeHJICXEGHB&ab1;kD3Fd6R`EPF~lw?@cC) zi;E|)OP=xhdHbU-S`0{K!cG)lJ+rjrWUc5i6K8A)zmX>KnnSOym)&qqoRl_{2jg0k z3t(i7kqMyiqF0pClMQ^AnvmDzvrqiyI}<$+AAe0_$Rjk!c>g(gr+=bR(PaXsCM89y z*pZr-Q08|#)hh)+xTIZ}09ic1Q>Z0>(*@9g%ya!xI%Hh^Jqmo{_+J1&$^%i2kHfd3 zNeqDW*+^WGD?UW&J#cW6xzhAc&w!I zbaCHEa2gK0sKhcDlF4t^+;MRfDB>uORW6i+kq>r91puNtvvq+9q_%F3mc3+7%2f+ z4d+-2EP6zwU(AUeLiL@y;!1f(bArxoYfU;{&s3>%6leRrpEU_P9t6Tzvpb@fy)BZ^ zqwUNzJd%ek7ZOJ!VMSnY@h;C+^&y6hg@dEQN>??`cclXdXK)>$T3KDIsvCO_1^9*d z2(8fO?j$E*Zw;poV`s}aC z1$zKO0Gvx1%(*O??)xT{CyYxSII)8D(%HGn7r>YYY>RVkQ#kae;?=ri=&Wy6kOBu* zb9ysV$n~Qzy2*T?&USq5BF7sY4uyjev5SQ|Q~J*0?z>Oq(}A=?^VW?UH>?nW5}MrG zdiIsJF950(A*Z)|)McalEuy3HxsfxWY{AeCcX!WmSMlNVrjF!%)(QN|)3fgBH3^}JRroDEzfp%b*u z3bM<&ro-BPU)x|b%NM#`+T^#~fytC)xg99VNk3=M7;3v!n7ZuJug1P?cOHC6LdR>2 z+DTn(zq$;jtF)T3+^9#N!vHQ2Q5I(Qhs&uFZUNBoi}biahv6>=%sjs>L^L%(`^VUm zBMOY~8`H12VDxwZ!e8>OyKdm|zI z*c!?W05cm55Bzn5jvE6RXJ`K@O(S0f0Uf1qq|7#;=Xr2j4}O$Ef0R`U7>gdcVCZ39 zIsp!m43s|f**Ixo#Ul$Q?uxb(y_%JmtS_Fl1Fg2;4!4?L(&(}GcDF2=%zAvQJnwMPc*aRY=O=5PR^`^6ahe%?}ByI9vc+w=KQ>f1j~g&St7)c$ZlSx>zE z+8KU(P!z$=*Uu%{rJN)tv`U zh6Q7`1oM`uf#1YVPS&2P{KN4dm7ymM^G@qiwzk|ke5Tdq z*TF?A%rS5_$JsNlz-b_SEVPJ!JS=RTYsptAV4Eb@xr@P_9BjO^F3$xa>G)nJcwQuw zDuejQl;Sa4mQj)yLPONvm+zp>n>kVAD%mX`nvXt28D@zapOpyjRx_?un~~x*#Yvo} zW!`zz@$n_EGu)uDY#UHCx-Urq&16cAfcwMW?J4#{uzJ)?V=F7I zghU_G>y1e_m$#kF)gb%1+KJ~AQ^<@5Z0}9$Jr;~l0l|iwyGbn%2Df z@*NY&aPtAKXg&qTMJ6ue%VMPD^-tnJuPE?}L^1{RQ@S>_kjgHGIs0Lr|0*=VR#vi<~Mn3{^WcxA+2A(*zA8_b}i0kDHbJnB%0 zuWBf@rjR&KxQYosv(62iqITci-(SC6OKs;#HT0`Vr&Q5EEd%$*q~*v1O-3YD5cu|3 zxq;Bx)@`tTWpjjj4o}>iNI1| z3|zX4PX@byU07d6-K6}A2^ojZfMIGm{q3CY>Bj>SE=lTx8MGyDg`(8xJkwZj-8ScZP z%a|n2kSK2CtWej2s>E56@JSQNEo|70o+vJejiA>7<)ZEQlqbyNzAuniz5e+8$S++!+%5WMC4DgC`-_5 zWbN;j@(S(&K3m3Yz!cQ!JV#)4B%`B>)~#eTPssMC5s*F^dpuleTRiW;+cPlZ5uv*T zU9=2ub2T*FmlN>Cdl1Kx6Y#}EjfkB8z5tLgKy`BxU-Ff3S=3FH&G=QBW#pYDgxts8 zo(+%(SC<^vt$(BkRa#9Wm<65jhHI_r9v3f!3y|E}e}wT^%k-Wq!mx078<&H?2}E3j zMm}1TgI!T%o6O@qHzrBi#@RF;i5kBG_raZti!l6+<2)a!@&@N`&I41^cyck>JoaN$kT0jv8$Y?+9BX@ zPIApKR5>0Nz%r^TP{QQx?Cjj(WB!z$9VjB&1hVE<#U|&rMPos>;xJCQ1ZPifz@2W<(_ewJGs~QZ)E4YNN7IcWF?(Jbv zLwi)&GeX9VR}t8c9QW zJ8BFqb~cd+RTu5jkT=-!!J#2GR(2QEfrNJ&eaYNYfQ`@2>asSKqCP#HniET>*Rc-W z3K%dksvdt-<`|(7;afG#+g@i+7)22%v9-OQfhf)mdKjA`e(T|#>J&BAqy2np)BRxd zX1hj@Gp67HieY0r+*PLmSSU>-&^6-b9h|=H81_ah)Nv7W+e@#CZ4Qf1Pm-(2i=M&A zsVZPJL!98*3sAl~TG3yC*6BAeLQV^u;?;dden2-q$Fpg%O@mC^65?_745U3-l+~uq zUAzi;HD-tRo?#qQWm4g;0huHJ$yUZcNa-m3fWd6FQ`Xm>vDTHU5A~g-xwOrF7v4B_ zX~kbWCoYgCy(_I#IK7(ml#Z%SSA|W^Qzc`YTlUp!Eib*#Z`ReWj`lyM-7PMk4FWrw zS4pC_hkpaDUi}|q;yaUOEWR#!FFPJpQ5UdPZsvMd&Wp)!GqKa!#W~|;N+l;wtGV92 z7x~~BhEX|mm8AEojOS9U4^t%d^({$!Hxqs(qG^5T%MTLlA&~$vd#`!VX`y8Y9cDNf z{)3>~(?EL4W^Prm-8FsQRCC;-%#<&0`g}+)!*KTr5e|({h_0|Zt)(!s^(qu+O(mqI ze58GvMIz@pCj*O3^^t4dNYdo1*H5XeEe}f}ZMnEVi)M&8rbqVfCNNieR>T z>wYj5ck73CEJ}Fy=zOj&2IO}~aVGi3S`>JT4tBEIG+s#b8MqIs?()qP1C8rW<|n9$ z;sxLLEt{%Wh^vS|dq@1Em@4C)g9%}uF0Uc#p%{sye8LP>cx_|984g%!t61`I_WhT{ zh&@1oxo;Xjy0HNssGLn&2L7}>x!jUp3qZ7AT`xdtl?p?*7_(PC9r0QZ@v&t2eCYq2 zV;L`SFj7UcCZV95DKNPA)-QAMUh$wEzIUDI(vAWF1zu14`D9hL_$8C1la2V#QF$8M zVe5eJ1{bOAO)8$Ra(`#5Q2;U7@ML}Q-aeJSW4-K-O-8&ivvy#fFl>N#p|XSlb$Bw9 zI7}Cy=2BEi++D?S=rHsOTL`0!rSdod?E`zAo(Y`gdiuOdIuwY+n>fQGtX1Pe?(va7BPNEFRZN%YQdV#)D%k8w2@n%_}5x2kto`<<@J zuNB<6wW0obc}Ns-FV#?5kz-(2w|32;up%-3bA4`dnseZVs8)QY(RsRPL?lrh|x zhpTN_iL;G;TeCsD*>@Mu@tbCoTu`A4o)>X_dJ|g->wh4 zI-hQ*A$u~`K3i+u9E@D>&mEUTqmjWb_P+OvXw+-zB=`aaN_AD1YF~ku+#6cQi~tYD zF6OIF^qt?SCpp6FMW14Gyq_up2jvk_JU0@W=?v721&mM!9@Rik<`D`TBHX?35{9*^ z;6r`)$w^5bQ=FFsUo4r@vOK4R_g$&G4xYat#P{8?>p35?@V3#sWQ-H(wxi6A1(a@D zw{0XE$WzU_pAF#}!9|F&^T`jCZ|cd{@LV3|PB)9)H`Z%@u5!f6>3d?d#?m1N)%AxO z6?T3cgT2LbOnJH6dv~MCrQ$ku?AgWg)m@f$^f{FonEm)s82mW39X)8^IXP(s#Ews7 z&dQ8n?8DB%n{Mtf$Hu<#gT2SC>dnt=uW3v+FYhbb?oBQ|vqhcG&wgyx8<+#?yAQG?uVNlpmc${S zKdumZ^g}(Wc#^V{f6q6XtL^BeF8HOE9;vPGR1HECtSn(W>^|TW@X{7C>mhQGXE10l z5ZAGg(Fq;{YU#B1M#(36%I0gy8`H$+%N>RVv#f7^#wq`*zva;V9KjNks$5gcabF9@ zvqh^|z&0I-3Y5JGwOIHR2vm-~7~!aUTsjp9R0Lr|3Fe(&B^n=~2Q8d`qN~!E7>93# z)=1GG31adX9F^TMl#J*5AG<%fU0g3{o7*px%jJPj%egQPazmm~hDodyjg3rWKX5`v z-B-!5EQx**s9{lK74(pbR40%c^!vPfhG`~IyN`7gtl6OeV3$&OAn9NYXG~s$xt01O z27CXfS{ehx%Ko2dx^s_&C*!C>yT^YinMhr-@qp43hG`&yUsBp5OpJq_ZZR7GXu8c zegPu`h(4Yvk82lb-E}h}VR<2CqukkX2bco>b-bvZb&HA3d_#vc?fx)eJ7saJ3r+8G z`v5rF28m8f-F#hL9i__T7=}V=klm>Dd-X=Z8M`7-T^Y@ZrB_=5;jkf{Y%CrAh7koD z4@?>c9pNj1JCPnzWKDp7q#x?~kxIwbWpZ)RQ7~M`3aECwOAEV{XaY#})r7C(y%Q0U z0q0{sRc}_TeOs*~to;&LEptp-YsSwwi4@EHbqMy$IV&Ka5g3DrzS;9c-RBmD;RS&9 z9bF3I%#>v~uyCD$zZozovY+-F`SjceAig}kCYO8~gZkO3!)yS*TLj)(;kw)1+fMl$ z*t#SIsqyW})a@H-u|ra7?02b0fz^!wp#2%Os>I09uUm|H*Ha+9@|h*E5UiIE{*~p> zkDwXmdR9uT|CVDxU~8a3S7LvX!v8rH!1X|D^hbt&CI0tUKv6V+3d51ZL$858KR5Y`kN=8ah9^u)1+T7-)gP%bei1MHN5z`( zVS<}M=g2QlO`=K2rKG9XovWLp5M|Er$MR9B^qEw*R0)5ZO%+Ui+_sT0A%5r_NiW$w zR36n?&B<=F%rWlIpE6aJ_{WqTHGa{3c)vwhP7*i*qgS!444`iOQ0}~wn zZ1$e%cx4_Lt{NiB{;7r{gY4~34qs$`$ve4_bM|i6JwM^8^>K>xz36fpKYUSzr}0Wg zT;9du$6SXD=5*MI04hZV`NP))cOpWH{MlpgS!UKs9`}#wUxrTS7UB&U)E;A%3o74fO=+8?wOz=s1@uG~% znmW(d2PySc-|@d|L$ww8&k`fw1Wv_f9pxA@5xL>_|3PT z9eqe@xSQ`<*RJy8kCX9@0mz|J`+WlJWtPCG`LE8kiEWaB&$TJ;Mo-nADSY}E&5!lD zHh;;BOW&?Vq?-aS)_x$}Y)(Xf02asDAYCv8ZD?s@{j3djS5)| z#QL2r^#Rpg*!Fzas)c547|H=r?z-a6sG^i~!A?W;PRov%=vC~Hw`}Pj&)E+&r=1~E z@7J6_0;2p7B1!x}EQ5~zT!qVR9{zZuJL+RM+w0UACzeWC^?P>W4stg*!>+GeHL&4q zTFZFS{L)ywr)leHTu8lz@b1%hI915VGd!BUUi-r;(V&@#RQ{mC1))b0KQc3A=Y3Ic zPp!FW+_L95Ex^yL=@?pCS|4=d=O5wg=Me0QWk7wcF09v-k!@^PLf>}_lSOfieZh<2 zz0Yy!cpxKxCajwIoNYmBe3oy-qd*BsGV93B7d;^iI057!hha07p6>#+mn|e&;>wHe zcY^3gLO`9^FFqfBzF0bK7zv5%XZ&3qA(cpClY4azQ;7}fiIi#v@o^^!JT-Q}R)W>P z;f%QOAt7MhWBvjZR&DnLF4j;$0oO2nz6^3_whX=rx8HN?m$3Aey!ndZm``}`BV5EJ zMIYS1D4{%EX06*q2HH`P%3QUPVX>vqL~hO#xbQJbp|0z7`?V9mf1BttTmaH&2(*cz z;+H#GmqiLHcnO-+X_t~3>KxfKHYHe*8%L-yH_G|W(ph&FIW2`pJaJh8{F+w^dF{bp zl?}RXN8h)4%7Ys%jPjY63?z0!0OS&_{2kr|dV1!q+~`m=IIXvvIz2-TfYma-|j> zthsuz)~hA7tTER+ldLtD=^bwcnQ3%Mc#M`!h4wbtMyp?7X;=K%MEL&{c z6SP^*7IudYEFj?co2|`VG?IJY$yp_i$B2=A&H>7f0WfpH=F;`JiA#U8(`LK<)4`L2S#A!plif_G&bxVg@8xu#Vlhem{-}{*;bTJXY~Udt%-2E5 z@^nwWp?Z!5TU3K#BzM5N%Hr}XX??urn@9=Y)Qhfy#uiWgX;}*1zrUBl3QWCrqZ@Jo zUhh@RTP6{j@atW4nNMB!y+g&bknJ(i2Y;=xyh8aiX1mGZeyTcTgEv*4#%f2&WGbNt zhQMlrFE#cD?)O~1TE1Q_NKAkI_b1ee`D;jx{{EN{Ui{ZpA{$3X&-Q>_Ys-g4Drs;C zdh}{i>L#JKFl@%X#WB@&x7QWEyFTQ~<)pJ=G+S5Xz%I^~_T-ElhcvFrXP}PLwscpj^+zXLi`u{5QwRb5`Lx6X^WuD? zr~%CMn4#JUriaIx<6b-@q$1k-v%KHz>nWM@#T&5OQ0A+k!^_MCK?EAHkQbZnmjzyx zG1i`)8?0(U25uwyRuNKd_ zn$MqyHxBxPzYQn3YOFgkd!-6G7$SnWufT9Pvv+rqu@9nsn+!y>;=P|3>HN-f>q_$K z$X;)0xpld1&)qrNvo~NP%s3I}Fe~rN@X}Eue07uT=Z@~*{k~4j%JOyEE{Qk)4M-u6 zkZ7hh*qeHzDPi55HubZfogKUJ8aBVxaw0#URf{e7t_<+9K_8@KH+}!Eso+5NaCG50Fadj(vPyHZ8lHh8D(ZRn)i9A!OG!%ciCsg*$wp?7!DhyLhE8bMDj zd{XsyHLB#|>S3Iq0ZTU111`mCog!^|DSA}Bb=sVw*@Q$18c~o@-?oiOXZb%?dawt(oV~)anV)wjiQr zF!42;T!-r;FXQx2b`B{m()I}3HW*VJk!eO+zN@xmvWw$!!n|ZI4A+#$v(|^By1+S2 zGKVBR%5KKzUkPd!huTCJhDp)i7hNt=7sn=5( zpU~c=h19LeCeu+FsfYIS+?`=CWx2B%_okoYN@2;`Ml=nVT5|tHwYh%?A`M#>KETA}DurQnr2)M9FS$&U-FuF!|hqPyG=R%u_{CRLYn@tOaa3qxg}X4CJ@ z)EZjqm8`BCre2!1g6?;0MWSJKgR)8gi@E0Kgj%c~OYmCCr%?VfS%!=t;Ly7fZv=cdTJsl{4Khp9_+ z-oWdyw3V!te!Z)6TYRq*JW1V76+t5fb|yyZ=ykS5r9gtFwau$-c*L?NXamA7NT_ae z_JqT=H)wn8I?TchUihu&27WWuzJn(kOm|)-8EdX-N*17;>+`DaAa(gPDy?x~IS{Fl zlHBhS7j;%_?8gJ$%yxr7U41_rj-CIEQhMbz!4!=5=+yIrm8WJt8h67u$=()-G0aq#E_&hwa*$oN9ajg6jf%!Rmqn>j8yU@0u=c|0)e-TdN5 zfIh^Qq`2%-tT}q@WebUb+YBp-s2FnttK$nVJynVGqzCsSwUa&g+7RyvJ?a!SQ6$B= z_dLgN$Yo7?XPj8mRA@zY3!_pbDR1;?bSAnDr}-95wb3Ip%_8rn9zHO9auMT)_$Yqg zYceAF(I(D+Tnk4KIrmieJ3Zi7ic4J!otIoV65QWB6ugq5zPa@D?X~hYz7ks(-TFlw z9j#H7*PXyj{z(a3)v!Z!84c zZYK}g^F=Mrt;$4z_X{4{oCP&I-?JUGM?Y0)LVDzg8T5?3w%*iFk^hg&K#9w3QhuFS z6VRo8IM)~C-}c|*2)xWt)f1p4q!l4QJjv;1jUU(_S5=N$%n4qdwA^3n9N#$T)%Z3p zksGwlwnw#T4z@|nbx$^Gd4Fp+snB-tAsziwfz3CU<5DVIf#ky<$jCCAG53>hD?=yfsXbZVU3pc|9KRgxhOu^)Zy*JkDpVP{F($2G>5jm}_6Jik>$0mOGg^*jloB89( z=i6mh{q~YHbl+>0I2ZQ@3X837tFp_UZ%s?w3)2+~*^;bm?|9Ynv&l>8L@oE~Vkwxb z_H5SMx*bOLjl@D_JNBn1J#Jls0Ak@2QszOh{LJi4Re$a~ULO13p8dyx6a~(2eeK7G zfK$pvA7b(_uzmHSs#OA8mz);vT>FN8Q$84V8@alCUUJbE6}%jXAZcu3>?nkD!X%8VD1{PxPy|Zp-MpIGdb5xKKZ+Cf}8QfZJjJV0SV6SghEXW5^i$ zosu|*TBp$1qFmB`orah&p9*e>#K9zCcVzPl%^T-z?->89WV*MiSmEgGG3`Qc?xGXB zL38WFi`CKs8~0I))Rz9?<}Xvwy&dt(ODykij>fSfO`zk&RCEG1Qlp2i)Xn9*hc0MJ z9BgGfQH#%sRM9w(r|-=*L@DcWWFdYe|La+mya4o)r`!bKYHcxKIaZ!FfAS$8Sbt0# zRR91YjXh#Kxu@syo@6`(Kj?c;J|g&+|;D z`mD+P@X2yJh#tg9#O{ zr5pao$m$<${2%}22A~~0Lk2kiKKDPv$m7BUvt+^c)Vz2{JXmO& zgf<5?>N|K7q1UcX{(Z<1EAV^q_qo}LQdjgNU#{YF6f_u(_vR#n3dEx9K)cS1=##ST z+MK`M#Q7uO^1x%k9@j*vDu$7j6K7{Qf5EDhLLMy$oBxbU{&G1;M!dy>?w=K61eW0h z*URfU7ApK2^#*pM{d$miemh;=g+O=n1e27c*SZ-nn?v){TsBm{O$4gW-ackbUKE4*aON8u z+zNU9xGT<7;HXpm9?X57;9MG*n&u+3v4TX&9@qv5e&|y_O!$zWtYAY3_H#2S(boa`^R`4X=4@z=A5!Ai?yim74iAh zpS-3PtC&JkUkmPKpXxA~L&4{@&J|JwdwvbM5lb$j=S@2L1l_&g=oE|$x^v1fyHEnV zHcRn$kv$l%L-;DFR>%18j)JjfbZu{ovY(<$2OWK^!1lAtYgVmJUqohbsR`?LHSTdl z>Mi6?rJ&=&t!FmzX1-;*sB&`F%5_?n*wgwBIvN2H6+eHUY74m6uv_9vY4h(h?g0X* z^EO#pwZhofC|VqPr~;)}ee5YT>V*4z!JOA_@!dfUW= z4ztFq2Q$}yZ-W#wmgg@53T~~}s={~^VNx^?eZ^le((yglVcoQh^|XKNWubTcQnNkm zZDKbe3Eq(w)~Qyv7ugdz|0b0)rw3tOOXs3LoBj;!7M@2Z(&DR*!Ut($`p{V7-q&)j z^~ZYc0&Pr_Sn@OdSlzLD#S(ZEnIU@*J{sS?SKA8xY&?F8|KVSywKa}W2HVDTILp?! z9&7Vi67EiYQjU!`RaNV0GCqk|_|Nj!Z`}Cw29zX4N(jBO+Cyah)#3_y%S1MtYh2jT zC}`sV$@Va4je6(;DD+Pn%s&Zbj7W!%9L<@!n=p-VUcUf4X}?SUtANy0u{s2!A!dR{ zgCR9kd1Fj?@gXen-qo(}9`(gbEii5pwpCvDmOi2dCiQWEJ3vZ!7#F4xft5H)s-VxdkNc8wm-2b)(A;4R4 z0F@NzTiX~Umxn@q{W(u9jA*#@T3b!%&6E(+cToAq*#oS=NF%OCK9>%>02;$^nr@GyX+Q zi;xE5?mHIXAQ1@#a2!?kWp0k1X~+>2g6tH^^3f~)&zEC`zJij|9Z-*dd}qVc%BJ(o zg@Si003wH^cjKo#hox_!3 z;~_jML2~QZ|1AHXrHS;sGwjZJ_It(x2pQkut7JVAHq$YWXU*X7!qh`%C((!UM~$VI zdyOiM`;5g=(aZ;?9mN)!K3)pvMT&=_)Qs$`{vBKV84w+V#X!kd_!??&(PG8z>LNdu zZfsa3bwUCdG?E?xF2;wCE|vgM2jq|$vbUK|Y0qlX$Rue{@pY)@(}Ye7 z{d-flhrRI;c=D3IdRd@Yh?`VfC|JmnNVztGRtv{&w)k(5>F@+gr?AxW%XTU8*t+ke zkvW0P%F4>o`|)hnF$RzI*VV`ez&|?+5|T#xKYLs~@BGZrw5%y0t&&bco{*Ym1!q!~ zrgE#Q9!H_z0qT{dp%)Pi36@v}Dl%kF8Y76EzPGEL4&ffOeJm*xw{+%ryKwL@#_9GX z;Iai7CusensK^4k<==D@|C#sIGbI+xfa>6g_8;*{>^VJJIK8VwzAHAi*On$0bN`)#+*hzqG5Ao0S3{jF@tYFbdNUKVn8?$ED zGPQHWkwe=iDi;zW*vJv=*nBu&zelO7izeVqeB^MOxJ;7z=k@1#Bkkl!J~`nq^p6D9 zBIMS7>Kz3qKUW;2_~7)Y>_YxJ<_)zzpLb*I zl|uZYVZ+Zv8Hs5Fn>@a{0!Q+S;=C|ghfk%tB{N<}@r1%gf%@(K6S!zZJUf|L=qL9V zW|!w;iyf=72Y*7{(8%neO&|l9Wy+pluu^phAH^H7PZK53gM>g< zHrpQ6@n=VThCatTh`7B+J(Pj?%VNEn<@5&UK_B)VtG&d7bW!puVW=Bq4~}l1O3M2< z$Ca`eXgf9n4q-l>t<--S3{PNn2*&@PE&UTs1aylUUTz6~8i^%FyVScAB@yUaN}rw* z`z7j#`m$(IO&|)cLkC-xr8kH3I=?T>;~DU;PX`oJ&K$rtSY;iUF8vfy_P)i^H=|Pu z^H1pwi}X`d!9hVHf8mxF)j~&Yue06iTty{m8bBot@Fob8^$WMLP0RzvWc;)FA*mo# zs58nI5^Glkoy>dU^`8$HDFPRo5)w4sSzr&u--BTbI~W>QaNpIuuxq2lqz`Y(p-o3Y zCi4%neX^DyKZuJs6%2$Z9H>drtaQn0-(*eoJ(|x|*Zfh(94)0}KRW8B_E*R_%ic-? zBpnCE=E=9^&o}T-W+h^t?X&I(o>(jyghq$qU=%pM%6Df3D$abEazAlC|GWmms)klk zonZLqleq{(-P_4_ynmZYC&TM%UZg+^UfNB1w!d%A_EJ-hP!PK+Z6@b1P;A_d`A*yY zWf@q!(_=-N`C-6Pep7_eik~x5N|a(gs1(F%7DTUR)C&rQ^qM(Bgvy9!>#L(S46w8y zIE*=w-APMs>L2tP9Bh_WjQy<&<3c{Khm*?nV*dV&tza+j6cca)wMf~?|SNx2GtJ+R<@t7f1b8SWO-IuU z=g4g$XRc5;?gd4l98fB!h!o?4^7ENsh17$jK!h$eI(4ODT6n+MpktI{YA9DX9weXD zv5C5BkSR}@RS*G*>ObM6>C_d5{Zr^U626%FiUz5En?RH(0(?n+@o+)Zr*+M5!|e|* z`LYlUH?oqK7fb$+5;{_V9e=?|*`WX%a%}-gWwYO3l6s<}>!#PM z3fFPYZ6-7%+|rzjrRSxl;IN4N6v3%y!jjG40T4Cmb%qi7PRC)PJu}w9Q7011eNt0Md9-Lz0o0U5V z>1IV)B-?*h6mUVQJmfppu1JLcq@jHmv#0~;(>oCtMbdwJ;%hUjDXbuS^}~?pH{M{y z-o0-~8X0LVwAyEkn9j>`-#(;f#e<_4VNRRuNG@Af0i#KX2A+yxlqP$JLG46d&P&fe zgM+Xw70BbcR!%*sn7uq23^#b#Mr6WC=Nv#eZd|HxrjAJ9ir-gIP;wxCZah0yW$nr^ z0W|R~6t=RI)IeerRR38Qs!}VDVFU4OeoMW%wd@~6!d3#f?hVI9U8+}?jUxZGi~-6# zMP>8CqI8Y7KNgsQ!V}!L-SXh_?nK&mqvEQ9c9gt4N*L0sBWVRR)-z4aU|%TUE1YoV z)1l>2(qX5ko$cz3&e1^AcM~sEyR;0}5VtrKy!D|0SzuX;KdcG}ucCZHcjy2?Xup3D zl~J8!trBq?<~d~aGX-q^@+0Swv=gXGnTpgeZJsnLNJ?d3H~4koOY3D=UUn!`kp*Yu zZ_1FMLk&jW=_W;N>t{q?Gk6;-31Z;UEo_VZc1hpP)Ab%;+HAeWPBdpKK}-YrFH6xL z?a#wbd}lHK@wln$S@wIGBJRzJ&e&`_K!v=*Nr=?eDlY>*iX7z}lczuK?p%U$aPy0HU?z>lH6JRYq#*LV%9|;W%{Ad+6G>AUDwOuACN?TGdKxTOta~Hs48C3*G zCe2=|Abz>Jf0AHLV+%m%a86->I6rSO(m8EX`5}y`O%O6L1DDE=)pRoj|4krpW6bCT z?}|(wBM0iL_>lY1GrzK3z8?+b`-CrcW3an7;f*&Fuek0>Q{z;JxcSwfOrguZ6w><# zquiHqrGrpBJMEcuA4ZB+ZkPkUX!XbiA>uV=6w0epMZxN!9xQxag0^7Ue zmw2ICH+lX071r~L!!ihJA^Z&lz;!n+dh`5o zm4K=H?PNuq*~51^8Q^CCa4?FNJN$LuWMn5yw8AglGQW#N0tfuC=|yOHIRd?|9XKel zrVk*W2g^%R&3r5UBGxS{i-I>1uPg!`rt}6NHdIc7O@NpgO1r-M-Fx^^>ZUz#iNh-L{PrL|zaGiO_~5&XMAI&VMbn-_uUTO`u~c0ji~rXis-cK~1l<&8dcC(S zFsQB+xHV6#Qxs(J(L!&XuJn9G{+*V3jp-{eCfC+wsG`S>!u1q5T9Dv-9H+{a_!alq zObbps7%E@VQ&ydrS%&e4I1-XepuYlrhTrJ8>9S3M&}ZX&I~E0W~Lz)t4W z%cj~E_IH)up_%Aw6=y&FC8E}-VZR)Kg0)LY3r@2lL2TUtmqYxX zmI(`Ra4F`b*3jRIGa*q$2rrOF9y(pyC^586Qvhx@=I8{{@i=Pvhu@w^&beDAKwR7MJ&2qd91+mt&lFt4;RHZc{3U}h}W9oXuYElmis8+;s5V1B>`?I{?#tvAT6E;ECt zlgBQcF$*gkV?1q;Lr1mH*Ns94Aes$OA8WpK+iR{UV_A5H8N7k16pe>XR8~rAC8ZSI zOq=OWRj<@%Y$+3mzNe`(n=oHqIl7dSxP%nF`mK`bdl+Sm>wA0;0dZUHQhv*InUndn zOPL$Cv!A3C%a^)J2UV1NO#MCKugs$j5~ZU2ZYJg2jTv4_#f~qvO^Fa*MHMUEekm$? z0p`2kYOgZC=oe?bw%1y((ZBXRn;m|mEApciV!9{EYPWj;5uIvs`o6O)FWN-M4~@y< zk3LT{rb2QF_Rrl(pW}Nr(?2}4no^%h2|~vcFP`+U!>SB|TLBj0)P^uuH6>KQ`*KL( zRNIP%2k55XcN2k;4rfQ#o}q%TcMMywRD=K&8YwplkdW0+)-Vy)2Upj@XmyoQ=b=-l zWfCFEEG6R2IVP=Qri%pm{VE)Q#3hT{o+-&)g2j9i#O-lq=w8>hdcM)zXsq^?!h>cX zGl{xGG$?B$^_$Kea6L6O2z&ibT~f^?33d%DWR-H+=_;OOZNJ5CyT%|=gJ3@R8cSCk zxPg02EZ{M7zR_0rAKM-PC6@=EJK{rcqP}kehu_Hw81KBLO`IXgA?T!M%*>(+S@1c* z-7T*?jLkqtG_$jgv{s^=m7ZL&ygyoB0j+%YQ%Ibh!d%35U0I#UYLPziv^U^9_b2RK=m1BCIe%?w6A!C31 zeJ+l-zVwy7m_Z^v<N*pH~?2$k`nJwHo0&r zm;G8%Kzs_nm#wX}6NK-rCJRCk##$$1lkHZZ_nm zVp*T%*sPxavh#N1?sy(BZF0;$J=&E=k9^A1zF#2bNoO0UQZXU`0gSyN$LOh__LgYF zX4O=FRQT1}D;+xu-jqywMwsvYd^;BAU4al_?(@Dvgb3N1-}(2TW>5`f`LZspSHjzZ zgme|xpLJZT9v(6k^$;P2z`#nhuPLjxkj&lFCt32fNI5D%=JrE*n7+n~@z{gZygqz7 z$v!)@6XBA<%IJ|xRA8yrHcGDDieO}w-f$nfc{C>yX+uLuH0D0I|NeUahwzpEdQnFp zaTfiwaNOo7ygQ`Ex`J^<;5k{1IB+_)1VSj^24L=-LB(gI3>bE`o{mZxjALcwg!H zqzz9l6-pgn*m7+|w82zM-)}hK!@3}{|I(F*5D znszW~W!}g-MBPgCbkEX6kf8Wpg`$>J)-23tzQG#%DIa@TMHXVMd+{y4V1D>{);K+0 zvxAe7()=1g%DQ?f|H;cPNrzgL;vz!eylH-c+E#oi!6g#*OKI-KdLeP3Fs#OkBLgum zboJhVjj-G0+WE!n{R=SoeEEVPi(nJt##EtSkX9;*V4B&awefz>YA4ACfvE%bW zil*7}ZNk@6UgLd4Bx>g6H=e0qrjwKe@lR(A_eT@P-#qL1c>vI`)!r9IMppev+!4aI z57NlQNOwC#;2I^13qQG@6g@v|G2V(6^kdb7qb(7zpY#jV+tECQr!@<^RqOD)ROX*% za(2^=sh21U?R;7zhzwZS5+J7ptWa6U&FQFEAJN7V^XWr#kBliQJR+D-Kq4&p2On_J z7Ox|()#w|0=g;!HWR1j=IYAP|zn_-0XVAo6F)EqvsB-1%>!krVTr&@`lIOJahcZlE zsQ~Cksnxdr=|hFAO=lnr&QwI;_IFdHx3wJ?eD23oY3=h${DLh(sErYY=)aKdN8HF_oSs719cPL8=dDsiocn$un7q`pTckE~ z>+z!{cvFQPe=>OXsE>tYNo1jo8E6mg7frdA%vYg&O}`HSF?JJ~>@6;H1TV&@v9I-O-#%-o}y*J5nG6({FXl1MHM zi`jTG#v9(p4QDw(x9)o($+IOrFNpdAiYD{D6@}J;h^ISK{lwE*qg>%9Z~PViYKYLa zBanW%)YjH+LeVl&>qcK$rAc$?29MK2GAQR4JAH>6c*>vah9>G#QAjv=G(RtD*t?jF z#Jbj2c@A~8KWK1!Kkxz>&_1wlF8bVzQF#e}PiHmRI5qg(eTEi0&*yWN@CF_IZnecu zCs|`+C!)#Q?b5MwxoRqAVC{Uhk^eUnJUV{zJU*v&(Gn+j>;C>y%i1-BtkMm_7BsH6 z+wu8TsMT_oyw&Y|&H9^`667Rc0?9N-`91)inNe+Fcq`Cggo@e5G5(1HS@h7i(GV^c z_Y1XExOnCcI{CBs)n%u&i;0wL(>}4t_V9_g3_2WXceWdIbD#N)NiXP4G&zvR2Ri*^ z%rvQL$b6_plC;wQ*T7&LAfBV*Er;0hdUA*)4*tFg>8J#~k_L)P7xj{HZ5oyOD2r?)t6KA=LB?U#gH&2=)+qyVN(UynLcW>$ zQZ~YS}h#SUO?Em zoLV;@!*h1g?Jy$&YfCCmo;@OGG+A`nY2(|639c=C)cz6F7l_pE=_}{%WZ-v}lgBbwnw*w{Be0WlYUHhV$1a+}1Jq0)BC|10L+^Mi{bb8j#yE;sr@$!X3_>|-I z=6-MpTTBr_%Jxx^xCl3qMsjy@Jjh@DGp&Dsw1s8CBZ9egA;FJ&f#R7`C~3q}_%^oz z=I+n-`rk3mO06!px-Jqvkj(C|rjR-gntFZmLW;poX0`pqUnGzj;wq) z;_xlyaj<30*+2=S~? zVYLiaIeROesA#AI^I@zEN#rFHY0`HETs>keArA=m*m6S6%lRvP)nL5%0L3*Q(h?PRFGiA(!+ODUeB= z69<69;85+gZ5p&rSu4<{<5I5{?eDcxXXNEs+r0N@7vy4wPpEG}H6%U`J51>poYb>% zOpywZx%MZD%*u!BW@Vu+)6tu4`PZVe*(-2JWa5To{_3;+;oIAZ1~V*xo+_Oeg=AP_ zOgFxe%HUJ=5Hy^}9JUrHRa=`+W@~achuIw?i;IjZoFADoaH8B~8kLZ;n5az;vRP1G zkjIv_X3HjU!lQtkPHRA?ZzE>L$1ls272m{B#7P*c=WrQYH1t!RguggVWWYkjYz>5e zn|W$>{b=7N8kD)4B%u)67n4Ghr1*uW&uD~Q!QB1vV$(_McxuDbcB5{KbG*1rnz@UT zKZok&Vy#Ww{a7kG-kU`3WKM|g;M$N_;F&X*fa*>5uA%c~cUK#ofaIc|W~FAW8@lkX z__Ii^4pD`m4M*VHDep~zS$hXfUB{50ec!g-zd0S#&0XwwOLzM1N6_GOEY&4_g|x+d z+zEWHC?&=Ai_3s^h6wgOHAYaCqKocX{)zzOwY> z^Nb2-foS!|p-HC`7^$HuzC$0KSww1Ii+YTEJQk_9lkp<%n02c;3L^3|RqAW@Gil^xV_Nc9mmab5vaE_EY4f zAC#O@q^&fLg$1KPW!R%SX%$mvd#AkS;OF9Um)|?&X>4I{s$w__*a=E3jj(&{V@U zbTOs3qBXfLNXhTW^{{#4pEU;#x`EZSG0?{4x1?zVF`4L5r{$1a5;LMN@`B3>Hz!Rj z_*gm~-2IjzeMVY&bj_`;dIYpwpTdJKhBTPRic0}OU;COzYxZvrCN}ez#Ba97xsSAn zT<=h3Z`1C(f89)cn)=e#U(=WEcZh${G_T|iNqRWec7rQ)>Ydtzf=9sr(e;m*;X<-B z-RX4vgq-F!*~IMCP7#YTF(1LRWd_t57|%u_WSG!pgQA*i8gH{rzuiNb(alZesizhk zgJ5Lp{hoSs7EB?q>%4Wu;0f^w3ro>BqyAy>HR)j0XyDN(dN=PaK=P|QJhEslDq0n+ zxsb=*=Ck!Phmng@kf=RQ3H`5L{U3gJ^z5*ate`uSU7A1gPIxdUxq%;^YX#wJI^R&$ zv$7YoOE6haah#vr^dBq2tl$GaAT-~H#Q6Lu=glzoq;o}ejPq~EnavrjiTmvsvt9WsUD z{wV5X|7X(dJEMiiK0dlq&Et_=Pt~Xp#i-u^zb8X!(W2iNKAb7u2;bJ3)IJB)TFRZA`E;;4}d9fCzMhY#&`i#z{6zRT8xD|}%#bbyUdBo~{i;AV%kbap`S{egSkiK}s zjLRW*c51t+tOJJHR4%1g#^^Uy9+qAx6P#p*%{7;+EVi4Qi*gFo?OPt1emE%rvQy63 zBNlbIH6BDj+Fx3|M&zDSISeX|z1B~75S61ZT;E!Cbxswea+yg5iUcXZ+5wAF9=y-j zYh8oFP#l#6pNqT|N$}K?(Z;cq&jrH5ne-I`l2=n44+Sya|MXhC9e;{0-)vE#pNLK) zyQ<*sR)KT>eS+57-2apCUR4uc4vWMbYnTIcvpnia&ZzrUnWVo_`?i?0P%385S6Dr&^L&1K7- zH0N#g(>WX?ZWY|ANw0+&dFwZa5_poVNt{e$-L;5wpd$wexKy2N#kti_vw@bAU4Pa8_{P>$anR+Cs);H_!h=2;dZ?%g!Y0MsU$ zaSp^h6(it)co?ubpoW!isoop$=F{1GIC5?Db7#Db2bl`OvlzkDjSYK;M({0^`V7s^ z(j+@)mrQi2`@9)TAUJN9i11tBr!J22o^KjDqt7U@^O-z{N_KPgQ{v7}st|mE0Q!zF~L6v9!mRGX8feaID1+x%bl;NYdQYa4|UDlbuD>DyN*-p8i z@zdEFNLMw@fo;zg;d-~1N#?v*V)Jt|tc7P39VhZD$Wk2B%U=Hcz*d{^n8UO<#A*k0 z6SOJya_##JH>sUU)U1@yymV#KE)cq%!a@<{H(+?ZOU2gH@On6zx^vC)xu@nZv~i9XwjUCLTt2c`zuT9SD*ap8Pek9R zq^s$hqZY@1(^q1xuYT^XCC^r0@+wmx`FdN?lI1yBe-WeEHMY%9+j8Y6dF3^7*(GA!rlBX*C{;e{l-ctQc706q!8Ob4rx14hMA6pYs4jzH37$2v zpkvHfy((ls_43atPx>mHb~LF8lk~Uv^LMVZuM-g}mco4{uB5)ocB);B?s)4K6WYKd zc^p;(1>6ShI7(5^jIsZ<_nM=b!*>c~jNy3~qeQ*7>mp;wULDeF7HWe-2@&?-) zEUX)8Xqc$p-J!USHs`6uq~X}N)T_Hg+3Qwcs4tQ3xC919aG9M>m#g_1^3qFi@=}=I zOc;Pl9{0cTU3eh%O0`vPyEQ)?Xr|i++WXiQ>ae_umQO4pU0xnlBqmit%{CHjQ`>}r zd8p6H4SuYreV)pFwQ1|QvgUS!ByYuYOu>ps7;+;KAC&}OiaN*lioXQVkQgx7#k%c{ zC^&qOad^%V_KD*U&mIvCDkRZQyKc;VSs+dfdj)AX9kIGMH4U_N>g#s}kaotxT*fyA z)0AJVHm*nhfymuqL$3mtizyy#4Eowr<5rAwRn*uIf+7jw>gmi2VhW-&0mF?o@5-tL z-SMKzRHdLd72jYjOmFZw79&QaeIyh~-{Bcm`qlD&S)Q)Hwc+ch?in}B+S8B&$@zwZ z4-CFTuLtes0kH72P_SXA+*R|M%scl0NTM}oAnJfWbLOyh8@yzRz{OAKk@^thIOIxG zZkuFZd(rlTYq!78x9t7iqx}PK^OMhmMRp zYZRBCJjl^n?&ssBJNNc4m{y-503S|Mt0Q^bvgL;RYu63s!iRAb^3jfiRGke7(P;3H z+RtI%aIRrN@5isXzxQdt3yV#xIfLMr%WX*3d!1k%H3i`{Pp@%fz0KkKz{OODUkaBI z1l*lRib?z6CtookmhoDouh+(&QW(go{CO_hr8&7=Qh3_dO5>h$-gbTWOZ7`x`PP=y z49n?$<7{9AA=>%BCrZLhD<*Elhb05s8mg0MR zsU2SKNhhH|t)HsBe_fAkwiCD^Vlqr+pSr*QHVR>OHC$~c#zg#%RQNUblC#bJ((tyg z{eE*c7LqrqQlhs@aer@&&{W<05Mm8sd-^oK@cu@9F&nHnBz~hmsy(;jXmX%Gmj7vD ziLn7oOD9YFOf?KLy*SLHJc<;Z>?UPfvPW!P^@xm$_yw0E22$Drt8+K?EGQF=Ep@Vh zPt=BTVY!`Q#2jmu->Q=75#mZ1Mgp5DT0vA5e=rzLN`{awITyM};1Y#t{jdO>)BT*U zl5xy)!#DzB%lcW47j4fXn2`|X>S|87OzY(TBH#rT^JXq(e>KR$Og`(G`Dtb3CF1ww zuSoWh^L7_ zXN%l)tPoJ})CeY%MB=dO$}ebKez+6Tf05=mIS+zbkDw!48tGJ%xLT*&2b*~ zub=P1;i80KBK(o`NjM5d2C{A>O;WpU1(6mvfzmjx3iwDUWYCC230Gu9lz6bvA^)L%*wFk}I;u(n8L zCOhe9L+wgtGC87V&_RDA+ybB^^BC|L1b;Sws^yi}3d9eNO0eN0Sr%Pit_7os!Hdcn zuqQIT)a?dHS1VqW9Tf{(^@tf(GV-YwpTexsT<@6A+i-zt_w(VmgB92sm4R zYOg{(&(dPpe^&ZR8oDd>4Gv`$^3&K>u6Y1OfuxSeNskMZ_Vit3&cBdRc|BMx!b;QZ zZyV&4-f_lUT#rGp&yPJUIR?V-3;`l7WGiB`-q0g{ftjWMgR}qfpZ)zkefg3}5Z|Ig z!AMc`L4fHb8!5r1G{dGtv8UCoBPnCAQu z5iDqV7M)!1(bu@WC`fl^(8timfN0@E=ns{$ii>V!SSngv&H5i@{z9hzg+&z^(|pAC zfBR%SQ$|6+3rK*qvgCO&I07FXY!Pl1J615Pwn{3OuSk8}s zB=WyQ{E6F?KC~Z+6f&?doRe|Rb#y{7w8cI2sWN#6n00UnQOfNYW;DmRO!E`_i%!k3 znRO}~Hk_wb|3WZs$&ukcEuKkf+(ue+scW)83UMN{vJ*sIAn%_uIvr!;lcWN8(K@!@PdL{!7CCbbKcakrcq=Vuglq3_?4E}bx z9D*{p31s-tOyUHQ&lD^UIOD$`vi6?;yP7{6ts0iVMx*Gjz5VwxAve9fOnlj_x0X*