From d2a3e50d3794c2793df19c28d134d49703c51105 Mon Sep 17 00:00:00 2001 From: Graham Steffaniak <42989099+gtsteffaniak@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:01:55 -0500 Subject: [PATCH] v0.3.3 release (#257) --- .github/workflows/release.yaml | 4 +- .github/workflows/release_dev.yaml | 8 +- CHANGELOG.md | 21 +- Dockerfile | 8 +- Dockerfile.playwright | 2 +- README.md | 38 ++-- backend/auth/auth.go | 2 +- backend/auth/hook.go | 6 +- backend/auth/json.go | 4 +- backend/auth/none.go | 4 +- backend/auth/proxy.go | 6 +- backend/auth/storage.go | 2 +- backend/cmd/root.go | 22 +- backend/cmd/rule_rm.go | 8 +- backend/cmd/rules.go | 8 +- backend/cmd/rules_add.go | 8 +- backend/cmd/rules_ls.go | 2 +- backend/cmd/users.go | 2 +- backend/cmd/users_add.go | 6 +- backend/cmd/users_export.go | 4 +- backend/cmd/users_find.go | 6 +- backend/cmd/users_import.go | 6 +- backend/cmd/users_rm.go | 4 +- backend/cmd/users_update.go | 6 +- backend/cmd/utils.go | 4 +- backend/{filebrowser.yaml => config.yaml} | 2 +- backend/filebrowser | Bin 12325124 -> 0 bytes backend/files/conditions.go | 25 ++- backend/files/conditions_test.go | 2 +- backend/files/file.go | 93 +++----- backend/files/indexingFiles.go | 6 +- backend/files/indexingSchedule.go | 2 +- backend/files/indexing_test.go | 2 +- backend/files/search.go | 16 +- backend/files/search_test.go | 16 +- backend/files/sync.go | 2 +- backend/go.mod | 17 +- backend/go.sum | 34 +-- backend/http/api.go | 2 +- backend/http/auth.go | 10 +- backend/http/middleware.go | 8 +- backend/http/middleware_test.go | 18 +- backend/http/preview.go | 7 +- backend/http/public.go | 8 +- backend/http/raw.go | 10 +- backend/http/resource.go | 64 ++++-- backend/http/router.go | 6 +- backend/http/search.go | 6 +- backend/http/settings.go | 4 +- backend/http/share.go | 4 +- backend/http/static.go | 6 +- backend/http/users.go | 8 +- backend/http/utils.go | 2 +- backend/img/service.go | 19 ++ backend/main.go | 2 +- backend/runner/parser.go | 2 +- backend/runner/runner.go | 6 +- backend/settings/config.go | 2 +- backend/settings/dir_test.go | 2 +- backend/settings/settings.go | 2 +- backend/settings/storage.go | 4 +- backend/settings/structs.go | 2 +- backend/share/storage.go | 2 +- backend/storage/bolt/auth.go | 4 +- backend/storage/bolt/bolt.go | 8 +- backend/storage/bolt/config.go | 2 +- backend/storage/bolt/share.go | 4 +- backend/storage/bolt/users.go | 6 +- backend/storage/bolt/utils.go | 2 +- backend/storage/storage.go | 16 +- backend/swagger/docs/docs.go | 4 +- backend/swagger/docs/swagger.json | 4 +- backend/swagger/docs/swagger.yaml | 4 +- backend/users/storage.go | 2 +- docs/roadmap.md | 23 +- frontend/package.json | 1 + frontend/src/api/files.js | 29 ++- frontend/src/api/utils.js | 1 - frontend/src/components/ContextMenu.vue | 9 +- frontend/src/components/Icon.vue | 127 +++++++++++ frontend/src/components/Search.vue | 118 ++++++---- frontend/src/components/files/ListingItem.vue | 64 ++++-- frontend/src/components/prompts/Info.vue | 9 + frontend/src/components/prompts/Share.vue | 22 +- frontend/src/components/sidebar/Sidebar.vue | 4 +- frontend/src/css/base.css | 2 +- frontend/src/css/dark.css | 24 ++ frontend/src/css/fonts.css | 5 +- frontend/src/css/header.css | 23 -- frontend/src/css/listing-icons.css | 205 ------------------ frontend/src/css/styles.css | 1 - frontend/src/router/index.ts | 4 +- frontend/src/store/getters.js | 3 + frontend/src/utils/index.ts | 5 + frontend/src/utils/mimetype.js | 198 +++++++++++++++++ frontend/src/utils/url.js | 9 +- frontend/src/views/Files.vue | 30 ++- frontend/src/views/Layout.vue | 22 +- frontend/src/views/Share.vue | 20 +- frontend/src/views/bars/Default.vue | 4 +- frontend/src/views/files/ListingView.vue | 55 ++++- frontend/src/views/files/Preview.vue | 28 ++- makefile | 10 +- 103 files changed, 1020 insertions(+), 705 deletions(-) rename backend/{filebrowser.yaml => config.yaml} (95%) delete mode 100755 backend/filebrowser create mode 100644 frontend/src/components/Icon.vue delete mode 100644 frontend/src/css/listing-icons.css create mode 100644 frontend/src/utils/index.ts create mode 100644 frontend/src/utils/mimetype.js diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d33db5a9..a0c11be4 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -61,7 +61,7 @@ jobs: JSON="${{ steps.meta.outputs.tags }}" # Use jq to remove 'v' from the version field JSON=$(echo "$JSON" | sed 's/filebrowser:v/filebrowser:/') - echo "cleaned_tag=$JSON" >> $GITHUB_OUTPUT + echo "CLEANED_TAG=$JSON" >> $GITHUB_OUTPUT - name: Build and push uses: docker/build-push-action@v6 with: @@ -72,5 +72,5 @@ jobs: platforms: linux/amd64,linux/arm64,linux/arm/v7 file: ./Dockerfile push: true - tags: ${{ steps.modify-json.outputs.cleaned_tag }} + tags: ${{ steps.modify-json.outputs.CLEANED_TAG }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/release_dev.yaml b/.github/workflows/release_dev.yaml index 9464aabc..c965d5b5 100644 --- a/.github/workflows/release_dev.yaml +++ b/.github/workflows/release_dev.yaml @@ -10,7 +10,7 @@ permissions: jobs: push_release_to_registry: - name: Push dev release + name: Push release runs-on: ubuntu-latest steps: - name: Checkout @@ -35,16 +35,16 @@ jobs: JSON="${{ steps.meta.outputs.tags }}" # Use jq to remove 'v' from the version field JSON=$(echo "$JSON" | sed 's/filebrowser:v/filebrowser:/') - echo "CLEANED_TAG=$JSON" >> $GITHUB_ENV + echo "cleaned_tag=$JSON" >> $GITHUB_OUTPUT - name: Build and push uses: docker/build-push-action@v6 with: + context: . build-args: | VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} - context: . platforms: linux/amd64 file: ./Dockerfile push: true - tags: ${{ env.CLEANED_TAG }} + tags: ${{ steps.modify-json.outputs.cleaned_tag }} labels: ${{ steps.meta.outputs.labels }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fb5a668..1730aeb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,25 @@ All notable changes to this project will be documented in this file. For commit guidelines, please refer to [Standard Version](https://github.com/conventional-changelog/standard-version). +## v0.3.3 + + **New Features** + - Navigating remembers your previous scroll position when opening items and then navigating backwards. + - New Icons with larger selection of file types + - file "type" is shown on item info page. + - added optional non-root "filebrowser" user for docker image. See https://github.com/gtsteffaniak/filebrowser/issues/251 + - File preview supports more file types: + - images: jpg, bmp, gif, tiff, png, svg, heic, webp + + **Notes**: + - The file "type" is now either "directory" or a specific mimetype such as "text/xml". + - update safari styling + + **Bugfixes**: + - Delete/move file/folders sometimes wouldn't work. + - Possible fix for context menu not showing issue. See https://github.com/gtsteffaniak/filebrowser/issues/251 + - Fixed drag/drop not refreshing immediately to reflect changes. + ## v0.3.2 **New Features** @@ -186,7 +205,7 @@ This change focuses on minimizing and simplifying build process. - The shell feature has been deprecated. - Custom commands can be executed within the Docker container if needed. - The JSON config file is no longer used. - - All configurations are now performed via the advanced `filebrowser.yaml`. + - All configurations are now performed via the advanced `config.yaml`. - The only allowed flag is specifying the config file. - Removed old code for migrating database versions. - Eliminated all unused `cmd` code. diff --git a/Dockerfile b/Dockerfile index f6137d1e..0eb5aa55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,8 +20,12 @@ RUN npm run build-docker FROM alpine:latest ENV FILEBROWSER_NO_EMBEDED="true" RUN apk --no-cache add ca-certificates mailcap -COPY --from=base /app/filebrowser* ./ +WORKDIR /home/filebrowser +RUN adduser -D -s /bin/true -u 1000 filebrowser +USER filebrowser +COPY --from=base --chown=filebrowser:1000 /app/filebrowser* ./ +COPY --from=nbuild --chown=filebrowser:1000 /app/dist/ ./http/dist/ +USER root # exposing default port for auto discovery. EXPOSE 80 -COPY --from=nbuild /app/dist/ ./http/dist/ ENTRYPOINT [ "./filebrowser" ] diff --git a/Dockerfile.playwright b/Dockerfile.playwright index a792362e..37af3608 100644 --- a/Dockerfile.playwright +++ b/Dockerfile.playwright @@ -8,7 +8,7 @@ WORKDIR /app COPY ./frontend/package.json ./ RUN npm i --maxsockets 1 RUN npx playwright install --with-deps firefox -COPY [ "backend/filebrowser.yaml", "./" ] +COPY [ "backend/config.yaml", "./" ] COPY ./frontend/ ./frontend WORKDIR /app/frontend RUN npm run build-docker diff --git a/README.md b/README.md index dcd3a508..ac0ebf41 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@
> [!Note] -> Starting with `v0.3.0` API routes have been slightly altered for friendly usage outside of the UI. The resources API returns items in separate `files` and `folder` objects now. +> Starting with v0.3.3, configuration file mapping is different to support non-root user. Now, the default config file name is `config.yaml` and in docker the path is `/home/filebrowser/config.yaml` and `/home/filebrowser/u13=+be$wijZ1>)C#11fi#C#2KOkNz^9$~^cNheN2E8?4G}~95IxS; z+d)z $*`UTAp-DFu zb1px1Ek?tZ`b(+@`7)pR6q?1Rmq-zW-$QY^EdAfy-mZ-3`R$3(`gBD{V6okPmTw@) znnjW?Cj(feRiBZHJJidtzX1X062{I+dSkqB{di*flcc{=cWq=M617*WeWD$?BoZpt z#%c>sM*A~3ivAZ0F);fJ4uAO^HUFnc_H=(JZ>)hJ(ROdJJ6*xCkOeidHeM4K!P ycSxa##TTf)t>;F>j7v9F*w(DpQhjtet;ulEh{CQ~B45KW^k@-D@ z<9drzxxWdDhvjG*K7lY1SWQKmlzTk*aaOk}HRBK
IhD3p_?5cKW?i|Wss(kQh8 z4#~47KOAfo7cM=!GC-jUEB+zyr!^oXz A6~738(*Intp}5Oy8@g&(bDJ_*R^Vz77^uhhL|sI}Q9F z3cYAuetLSg)?32=^{WM@bu0=le-YBPYeBVkXd)gLOvYmzUU5w-)4vFl^&JdxDfuqY zbjX!-ewLqi_CUM-lOz%fNa2lw@B&hJDb<^Nx59qRSx?q+1~*t6)@!EYowXZn(Z&`@ zJO8du3bc_|4>hBqt)qVa*}?%UU4b!*n;J7Z FV;SwBSm!J{=;@ZaS%I&9|!!qg4gD{)uY1kOdXQE4sDZ%>#6VcdOd0R z5Ukb*(lcZ>4vP%!WJWgyP!l6Hy&jiZYNIi}Ce-1!WiugYy_7Jv=9Hjv=+&h@xQ&Q` zlmT0jOPW@ySeNHQGnL+G@(4Tia1O#AJq&GJSWepLaR*0Lxxtvwd`@b=I-(8Bxe*dh z|4Xzb%jE60Vfon<@UQ(Ro-pb-N}ScUif#t*^NYMmK%>1l?NFJuH@lHnuH$cqlpXt0 z;TWGw8+G79P;Ciq*(ap<@Fp-hl*?OLl-^63H@UxPDf1@x7cC{;P=W9rVBdFaf#iP# zGI;)H7}v(|r=~;k2L02F`w1T>Z(Xlqy8mONy#J#OVrFx(^fNMo(7_k&D~TE0Oi{P=&6>gJCjR$%r;?uMnbABOt* zg(v0$CA{9k*&Vb%F9_FD%9_;+#2p#cw3mpsdZDmdGEv1rT>S$@Xlp1A{+6a>aY@8H zr(50aR(HD9O)nz`rH%Od>FF4MHl|5f+%@7-8|fmRVCO|mP~AIQiqQuzr%lHGg3P*l z)c$C??xU3MoDh5qg)8Kz65Z-v_{U$uJA!4FsRhh;uVrgRZ_1q^(^CB zqO?g~C4nHxC<9etG%~zica%hSH(z4m*6#@sA*pW^zY r8ojwHkQH2GwM%#*!LS 41y1ikwOQNV zjTBPKEeQrik1+=}rBHcnxvC)e4}gqXB*I?%7`m#%Pce9b8F|kBI9`x{9C?7{2qSM1 zIoD(d0L8Ww51N5!+eHOnsvqcaSCe;8VE;E%6ocbp5<&%Q*0xR0VfOY7>_2Iwt~63{ z8z`x@aa&{~`r$DAk7+h=WhAkMr9KfB(G3HF`IXjRkYzC3Mrx4Rk*4^*UG`7T(|g(2 z{R;R%V3bAnFT8& eXalZ>2^2g_ZnIL&bMn-tj2+&Xs!*!w zdKp|ZGQQs!b#ozhl@|JO6(ep3fqW1=Td4soNJo1tJlbIMVPdd*68yuIEQdj~^i1>X z7P6jzuZAah2SdYna~XO8W*@qCxbKN^XZtc&gA-^u`q=0#sIpu#=(*f1;cSIQI0|mX zJ!`{|M{A&r0org28Zq5YD~I4WdJ$gx`KHAX(Xrf|Efyo9J>p?Zf> 2#E{td*p3G`-}`FP^`w`3#@;VH-if~sSwmNghB0Fu9TEc zZv;##=7V8Tv@(3lB+Ezr*4#vJf%V8Dg1Bj`jwie54HQ8Mu@QTtHu(z7S72CBW933< zq!ui+P>vEU8`!XNh8rv&V7jY!__D}k-~w{o@0Xv-O7s+o0g+f=GN>cnD1lnwdLj~- z8@83$)o6cuqzH;+5XFl}6ZPh>QF}a{%X21_cP5voU8EOw4i|<6Ja=$>t}C#>f)OY5 z3oW1|ayX9I;90v?Vmx12b+_bTlTy=2k_QABh5vFHb5ZkmL`Fu%FqDNMR7}iyunSu_ zBRdF0*2Pl{O)H%+gfWh_SLMQ}tPOlaMVw)!NfLtF1Z9igsJ(((g-9<=U=g`V*b|r% z??wDZy%y^lJO&os-@te@Q^zN<>P%Ma86TDz?Kgo`UY5W9jZ%~L>p|=#bzfjKi=v^3 zz@n v(e+?@y(+78b=K>b z9E1GmBh-~j+I5odD>X=J+6j_Uh$QG2{C1w}ge_6G7?z~H%J}q>xx$Ns-AOuFa;qc% z!#N?8*@FtLaybgEcRmq`@RDr1()+|pcTwrp15tW=3J>0BP C!OFUk!+nF_Fl)djOMRijgrAWF*)}xE0yX+Qs(% ziA0V?^=;br z%h&|r1MOh1=Wkjk AblS z)M=o%=Fug=p%}nr(62{B;nbcVCu|;V1=drr6#M%qOb3YJ=}xx3G{!`eCZ@Gz(+y=? zy$uy}q(3SK3XM-3aTnNd5xfHT{xxHM?1gQ}U76_)-n$zCx8t>na}l|ZB3~E5mo)_N zk^H>IC@#-T;4iVLezBs8si;~Ml~CoxQ?_>G#>7e{je~pWG(~8CLsE? ^4%E?bXvq7* z@duWL)g4?;vLO20j>d{CB(OZTh~O$Ik0bM5?gVEt>HJ3eIloZn!p6FzJ)WA*Jp&9< zY`PZmu#$AqRc@MQRNTueG5ESX+mNRA6z}dUvRk5$8%0U|e=4s3XwTH9Q}q26m>q|L zDS<`E;a`|#QC5^9MAp|Pj(t!TR{Z?Y<=U0#=IQ%M{+{)GWHI33dE8Ayck(O*_2AX) z?Ln7q*g<76`EWs0U1{E4HZIz&OQ5H)Lms%C)@SPB&sw$PSSog@m`f2>mrCos9&02- zTE(@A`yD@=Wzr_Ylv6|wH5!|=RM72gZ2&N0Uicrt<-^_@Ov^;Gw8t1Fyb<02F%fvN z_d_j&1UE)UtS$v|ogm!beuqwxHBhjGuz;eUcch3=* }BgDJ5K162b}z8`~l zG@u>0ayw9!Z^D*>D89G0;urqM4zGoqgzm4Evj uv$Hlz~W5YJLsJB$^M>Vx`iq8QzJ?Qw}e|0WoPm zl2c&wXG4ZGRjYkPqfG4Op}k);!~ZlQVM;CGV%UYN0tJsgMKx ?9NzkXPmV z7Y;Xhhqy82r`G4y6>?=Xk5T?nJIjnA5?1^R1I^}WAEe5(F?n@*`@xN-O3f%VEzBGO zb_Y?f`@p@)z6i%ew8_7KYjV~6pa Kdc`@WKPn*b!AXyvRSAgnk*8Ui-gnU%t2n= zjKJ{W8+K<7HQ_+PZ~qQiU^g6^XchIIm_NZ}YV=CY$~y)Si`EGCvZaKWO-KkC5s~c< zlBCe>0tNweSRPNYIw=>;HXCI)sZ_UW+Ta|HAK@viM(g|$mFPW3yBG?B9qyP~%7S)}$b~9+6kzE|T38c=jxnW^k>L{cYdZLa%!3qWiOCGEC zq$~wsplu>Jo&<0dqD~_2SUCVD2-Fn{V=@_Qxw1}+mg6qs^u8ZrDvA2_H44&R#>mAa zRd!x6Y6U_>pN-))21nIMLIpXN5!Xsh5YIrt*H03|aJcT`SgK#FJ-bw#Si|`UWWzFS z9Uy%WBLW3m7yy@6K0{K|LY(^&cu^Mv!Vn~y1-7N^STckxQ?3|_qk6XS>Hx-X1E5<> z7x`5e2MQK4LMuQ#ygo9LG4=uT9x7Ga0`20g`uGmh1OJKm)gYg&4!apsVWkUg$_o>- zvF+?_k%}#1D7Z>{>Lb!f-uH;L(KZ~WfFG>A(FqHqatOU>OVM>(J1`>&D^GlRa3kwx zWFx=OL%k!c$wvAvme7k3rkr2G@X@4wj7JhhP}aZ#n7S-fQOgNfjsD2N{H>FI@#M{= zWT6Lr1`DlW42pcezz#gQ()}CcG02(#vXE$(`9F^$|7zriK|{Yw#?eYHERXOR|A6Zf zjW;{5a+H5FyR6**$L=?zQ4qSvKwU{#J8&}!Vpl}F?pjQ2#jYGRy7rj=pe!E<>Ff4A zpJ;$=Fl{UXi?G|#Nwkz=+-}pz4MzL_D|8GZhcbG?QP=^JCH8)39-ppi&TL2r_7vlF z22GV+G0qxNPqb|(0GxysDEKKO;!f8S&DQb&P8H!Hb(QT}_K3BlhZ_n&7+ z#&uY24x*zVP;}DJ9rEJvHVZ=zu67&EV&*bUp)A_#BmEOdJcpEk*I8{s#X5HJ ^*A9s&2kWC#66=SGMcJ5zAvZs#EF5_#vA0bUeN6uIjrmDHVz)2qkUId` zzqS4h$`qh|Yg!n@MPEzC!S(Of>kizIfdETF1gAlX;OgK?Z~8hsi0GZT4pr;<8Q4b~ zf*s+_l^_(3mo|JU*a+|vW=s*8SMB#Gl|+gPr+HUmFsjCg;PS_IRz3_Kdx7{io(kWt z-4{(R88m`EZ7uB!?yO|V|A0=4@9=%~L9|+(2I)g?Mg$21GuF~$$Uy_!sNFN2NI 6keWnsm-~aPb)!bGw5$Msa3xak>&5PbMg-ZPkUehoQh-Z# zgV$%%84Z}QhXsTEUGxF9nVJ7hZH86dhJG9*K<*Q>$$nNy@3pB=HX5Ri>c=KmNCFF? z@fT=Q%G>K@P-;Bt7aFf_mboSHu @BKy;6?${0&fgk7)9*1o`wA zX2Y3FEy79fSmmPi18FYV%1{cL4pMl&0>;z&(+)DE{Xy`cvrrCx{wRXAD|IZ^=zVDQ z0$Y^AWL lCv~Mu6?psqE`Rw5vec*Ib}#Z(nt*lFb%byNHPA%m)7C^fQo-8JmP0RKBwOf%y1o z7LT83&k?3(Y1}i2r!DE$V-M>JMo%!zxoC+PK+*UKe&s;&Q9I_t#FCy5+0G-~LJa!p zZtv^vi?LBHuZ|~ HW~ihT_?`~k|W55poI*L`7Y 8Nc33rp{tqX0K|9`I?tr)vuCP=3@ z%%4H5Aw6T8AbsJVk7Av8VY)GVyR;8gB8HyJ$t%W&)LfhcOwQvTky?W0Bu74IiC*k; z#K}O|8xF&X>1=d~&05J`g5e1#PQwTsY&E<~u}tSgOkQFF2R|51k+WGSor$*Y28X_> zIv0kVX{MfJ3vSLbGI@|G#u*Q`JeWTqUQRLEI{#0o8H}uT9-=mF=p52`$x #u~FrX0_xJ u8XMDURoS3fn76b~ep{%gKcI|gE zBMqNuNGC^J6EWhNgb|m=iC>JkXl|zvX-+4NxU#q$BG9T`F2Uu9OAf~|Ob6J6gb|k$ z{gxA_&@4+FagAAy4L<3Q?2;ocv4&dj%iZvhT4siMBeig{6k`LeN01> g9! }2B-NAD36@qkR8&$KfmEbcNL%CKm$}aMtWgI zh5M)yjOpeRLr}C5>Yqx9RT|UjlS~-amB?Y;y~xJHI-`|xC&Io14Z5_aTzX%^t}c(Y zA|tz68IU~y_b;7}ziyra`yt0)Z;8{4zn(M4{8uND13ngG_ySk6Tw47fL5Gy;CqO?N z_~pE*h4Rs20*yCjMed ?*~`Ors#J2eOA;O`Q#iHk?wFogQ3TN*-INLNSY=+Fj9xo0P@6d} zQI)7v$krGZMlxc9!qfUEt(Y&74uuv55$*jGhR@Tz5X%PtYH)!gb!(-a%iFQMH+mne zsK0TIuKH3X $g&I VorVSEDF!J&?4iLpp>*$ z;1>=u`iDC@(35^y6CEa!i762x2=-6BMA@+($J4H~=!}_L>5pl@x2KuHm;ny;(jc4_ z^x=T#RGNL4zLi?)OMA_JGN#$mJ{tZp8RmSFYHoC(_G5fr-cE*;3TktSkgOX)2vdyF z%P ?1ISg-sEfZ`SvxEIp~gJG^6_D4^eYcZksKNG`Zy19GavvDxP7 z{^%*dx;XZptG?wbcSx9B_4`wcht!V`rQ!7JLqc&M5{^c1wy6IY7U__dgAp0=h4!EI z#{Kx*DwuvD7n}xv!D+_XBj?~X+D){j4?+OKTY @&9h2U+xmbPIb?jYy4VCJuZ@tPr E*C%>DQdT;!LCq91ZAp98i{*(D?By5R4Hct1JbBVbWPR z+4IY&v%!37){=K&yxJPvq4OqF2(cxu&}2JAIGNgv$C|enCIJdsWzg@YJywNlv0ecm z1m5{J?Zgmb W$jQHn+N8+dne{PRIVWT<4SV0>5JozjVV3tS)RS#y5q!d5s*B zUnJ{_q5rUbToP|3=x|`LL+LL*P8$fESic{Sl4tbVcrWx2nqj5HKO#{}DMkXcl-$cZ zF|&lBHVqtU#OT-_ZMYyEf+KeDR5YJo@lxxT00nqYsmXLyS>XpYc~hC!uH z8M=2k!t@cDTg9PF`r-rZ556C(LlH_1f0l*Ha|%a~d9$%w+EQ@~`)4#IfwKU~XyqU$ zlqj9^0%10Fuuej4qYw-n^|uIRQ>QEalXX{iuoXsM1?uHjc>M;!(;Y;(jhOW07=xRR zztaAH4Smx&bs8U0z#d`e_cd11tXysKNoXOqp5>8*F)iY>oQ?7V1wq&clNa;V7HuL{ z&&fpz^{P2I8 o%~bAP$F#Th^i83io@-~` za qS^4;z`r)+7JWzHqOKK`m6!<1^8g~!>|(Qc$4bcl6L05P2BQl+L6VdNXG zRR0{IaD<**NX>K#C8K9}pOw((4a--mhf@~EcHfy4Gi=1AG=FH5aZ1e~1Soz)9*F3H z7b-u}jgkYcy_6bip#G}v!|uE`sT9IDkW0uN=Ck^%GC|r_;ukDH9z=g5Ub)2F;Y!Ua zMw6K@?YmOF67P{e;n4wWKY|&a>+tmi)=Rw$31cc1H=h#n^Blfgkuc1A6SjH=TF>y^ z*a1U-rt8v6e7zvP%>3crOJg`V>5^fW$)rp3y#r!NT<)bKM)=Mks7o&8#zr+AXtgXE zE7nx_Zu9=))>|%;^<(j2@>ACt>c;~G*WFhSox$E3n!g%=#d)bUH(oX;L2J;mZ9!~N zLW|ITbCgUVcagoZfdc1L;9vz6D=!X8w^7H5Q#Q3+OS&o0(gt7ODDNyT?~^c<$2$7A zX+~)&s}poo8*v4`IBrHq*}jDstpcr=wxhz}VfvfwK)7w`Otc!^BtWn4D>2JgmwL}O z B6hYfu*n!6QH_a7DyxCF_-H>+tWlH5!<-*zZJ~D`Cqq?GSg^F z#ikJ#EV4e@$%*#TdR|Zbz*dt|&>j$Ew9ypK5X$H6qxC=rKIV;AY-y?)lQQg31aC)) zYlu~xqwO0XT+V`ka^$P2P5i=KtJ@%v2X)Cj&Dool(hvP@SW2QXlk8R^pqns!w)+Rn zwe>}ewi(}{gtat?o!kH3b`D>%_@w_oN0(hTX%9X{zDJS^^XdZeP=r9i=zEAe#TDdb z7cG4%F^Tzf`sB4~Ddnd>?Ls_Qb;8iHmGlxyH@`C1r1i~**w_ctA`T3bR_Jud`U@hb zPD3uvPTYkt48B?D#-6klX W?({y$io^_Efl)w}o`Jh7-Z01A6{-)7lkk8M96-+B zI1r>+;zk_Q0^dD=F7#8{ee~@+2MN%k6@pIE5DOnX+fHuAEBgmdopuy4-r{$dd_##; z8_8d5{RUW7nxMsZ$XYSlcd}<4ppyr*DG*QeSp#XpuipQ~<gu2@%X{7`qPR4_>|4 z$O7PHVNM(Iccj7prSHdao)KoM?|G22fI1PpTsXGeL0j?D2BZHf^tTjv)3IMADyYHO zxHpv+04*ekCt=}GwP-v4K+92V8EB#mTI-?74I2+Q3)MQ3l!&GR6Sll~t3_xuwl_MV z>Gc&q#`PH@G!?5udvJY&s6T#{7_w2ATOe$#-Rh_2Af#Ok>7YIbJqukX(@5i|R`mVQ zcCLAhf3+tr(`$uDu!bY2(eM9{x;KH3s=W9A6OzcVIRODdT!Kc8iki44LhJ;Bo`DGl zq>4gqtV(fdizERQ#o#2uIF2{ntQOnaYHzi*)%JQ(z$F1>(<)2Fg|>q08AmH B^?yqKZ?f|LSCO;LMlN`Nk6F;> z;sA6-Oo<@tgO^KGgG4@a_O&@FV9SedT6|vt``hlsz0#n|T PP6 zN0~6PZ-6w-#rIK8D~QDX_HV^VJoy}$uhqk&`o;r8^$q}0sg0NUw$jRhw$c-N >bjh#i`4(s>+*9_N9^~x zxron4>hm~0qlyTG5IIo)?&g=nUS(|6w+$2NvQ_6inz2=^y4fXG{Xw U2+Y kBh>iF z$-ke6zlQ#f@aQk(3c18YW@Tg(>~qDnIqqWuvuJkwgrUz<{lOS|(j`CRzoGy5*XaL@ zZu&Q5)_v`?OoC=eZ0e!(3V4(+JE>Iq>*ueJsegb;9N?4bC6aicSmu38BL7g3CXwZk zB~H+gI)?*D(O>a_>(elS Oo$KcJs}?H&Ha)MN1>VBd{|ibszn k^puPYv0sxlKF2??AMRkm71N;x+oe@#5lPzMVkjYnZGmvVOiNpe_mU#j` zfIYeRI%iqYRkLP&Yt}jDvA%56(^nc)xT*NMswWi0hfdP5A`IcV^KJSG-o{SBqn8{$ zK=4u3wC~u4#xQ~N6|3v9Vtmh#zUoEOibum0IRSw|%6L9GHP%}H74kPN5 I9lW_EJy=R>jjy>x<@p}*T!m*dbyWiqE#5^aF z{~c%Jw(tq7fbW5`o=R#V)7#Ukm%-?VEI>H+Qse~Ermh$mM#wyG(UtjQY7%wt*Tmip zxBu-+HN&@scXI+^OZ|nB*uzFxh{T>Wd{@W#WPMEUXC$VhkVjwt734p6af{Z>mWaf? znsHmxfSCy|qbZ$1O|xbwz8Dl1)>FqNrsZ=$d#}6EFr{ul^0UB2-TI7PtvPh7UXtHu zi6gPLrA8n5VXe$?-a~?i^deu}Ws%Fi=py%_8)JVu(E48d`Rgk-_!;ZF;#+2YM>coA zzJ`GcjlanHUaa-K{t^-Tf5-ZsiKQ~Vq~{P7lYThaJaC48oqMzbZ)6Ew=N`(>Cj#1` zSi9TXzF#VF7WmmW!MBA 4x1l4Rnz$PM~Jy{Ul&edasnqKp+obGqm%&(v+tPQq2KoK1xg^!2K{<_Qi zS))M6y`CTvw=d~#l0Q?aM8EsK>DBrs&%wt{t(oraUWJ*q{z%o@!n@>kw$^*!@M>|^ zlSpT;)?~ky+glZW&ZDWHBpZzSdd%;u2hVnZbbx+0EM0Nq04iRmo>Yc9A%9jcKncms zm`BQa)IxrZCtYKI0$W-Ct$p+K&A#WA`(A&VIX2z@5@`yFet*5r8}+Sv4nA#$Jwy0U zeF?!c+%gUPeIAphOrl>C5NuX;0(HnO$-M#eKagMJNjFLVif^1s1>TtVm$vbX*B=Kj zUFUv{ad_<~%j_T?@f-X*=$CHraQ9HZjl-$g=DO^Wdj;<#-|Z6FN%T9zUv*t2>0Dul zFZq9KAAkJUYyC!O{H6@+=dbyls$&T0;Hbkw!p0)HS-w*#DO zb6R2`vg6y=+s=>on4#S3v`OcyjX$YQqTg13V;|~l!*QSWYB}yaVnf`)s_?L_@JoMH z=JE{uE~+j*#Qi?ygG= nF4O+P!M z#-p6zGj@;MbG*_s+zl!kSJ7gZrAG+@K8EQtHkcmh?0`MzpR~SL>237=rc6hryW{vw zijr(sJfO92yn|}!$?!ANYAyoLB2593*`$WczAc^31d(v8&kr97E(ss%bgbjzqC jgd6x_1Ok%Z=%l4g8*^mbW4qr&|s_ zZJKu6 !WR{O&;+rPp#4}URPPtuEioo)X|>Gr3l+rQqne`$96 zBh~(3wZ9zxl3pLX@(%PbyZyel{mOLv`?M-%{QYhFpWKu+{;hm>m(WOZYS;Ed;D2`e z58FlllRrpzvDbdc-3aMoeSVnT{yepRk=oxUuFwgRf*k0}Rze{%fHGp+zd7ChNU!~J z_j=p@Ioa(GQ~SGUB)K@V{m0Gv)Be2d_TRUQa74QOt$M-wl)L?H`>)N*TA$^7ckfdB zBQx5!%U>@1&u;$?+x}DjAZ>m+)BbNQQr(!{{#3PpmfGJcCXjDLAS*7}UF?SCcR z{xH2T?N7ArAC}$zKGDN1G?JXxwf$1~Uv~S?Q(W-xH -BRS^vu1SlC8;tj8;1b%`c^_ro|%n)x4|)8kZg}h0J%5-yNtCDrl+` zLISd%%pl&5A0n;a&TglN1?OLVa*dZMZ>Qh`NTCYmS@#VKE{XK_jl6IlrjgX-bSE@i z=a#GCL_yMDHTM@@OCC+W+qQIix}}BQ_d3>B{NKGuEksw%%wmVzi?Z0^M|(2F>a>MN z_Lrix{Y7Dto{8E@H_gR$tgm~~>nO1;oHT8r00wo!xK iR@^1rEywEl$F7M6Rr`8VJCD{zz)mbgRi=;+9HTF4Jz{lAKPyyGn+9#-KW z@XX8=D}uMK;bkOI)gw}|;+A8KL2w1RcbAr#J$%yZZ;LzZv3%(J+Z^V Y?RcY-@I{uz^NrYxm3zb9E^O-1v2keA_#4L2QUrqpLMQ!=Lx z(0$ufKDNbm{);J%VNsB;f(z?axuQL|@T>fgimYPHsxJwaLOGh)38ysvPE9|m`b;Le z;%_uVVr8fO69&J+$^AsSKc?ihDv`K_+q*pTPiuz#>qMj g@0vamPXG=RrO1=Z!n)+eZod(tq{$|bfBU#b(o@5H|`D0 z3PrrocF1O@GBOCr9E4c*NQ1RK%M_;OLgwG*V%c6)w3dGZw&>3X*`f}ww9xmOsT-XY z7 <-?h@d(Zf37gAz;+3-~0s2&*9dP1joDH>T zP<*+ZbxTN~(fmvK#PK8zx{+TU8_BB?7O^aqLAuZg%&9vurd6I!GttU3X12>6Oyu1# zp50w|n@!|!L4Zg7x4K}cenIq# 8i$|xzI>RVny2K(?mXF|k9BGKct7Cc(MJP+z@>oAq$3sKOB9T#!_K(y`V5-q z*=EfNl9lEdk)e_s+@H=WU?5P{I}Ly)3R=&;GROVZSY}0d5zXpfp#bA|N~4uU-)bjN zfHX_rGsG=r@|(E(j2GFy!eeeTU=&ibh>B{V1Y*a6I73)nkA`GmdIo-9E(ip_-5G5R zKTh~4IMk-f>GF8*)1<+p&z=6kIGJz_eZcx_ssS8zGN{jR5|0`D%B*Y2UnYGSpRR8L zYVR#>Qr|ST$o%`HHTbl&g@WH-jYU-(K>V@XyW&SLmhJLi!kXAmcl%I(XV30#XDth~ z__30 7~T&u@5*;6uj^VfPIqMxE>*ZY9-DUZEj1h5h <|rFy7*x~0#G&p!YwQ0s-Rk#f6~Z#Y9dEzfbvB9fN2~fWs@sum$T5TN zU&v5Irwx8C<}>3Sp; +h(W&PZ+wrR7C#g#DPNq}>eM;BD1`T> z%7RPy_XTHTGPtB~fJ+tvPA@Ku=*ta6;f~;vUc4#Po7m2>T`5uemCiF447hpK@e}Sm z!YO;vS-Q34vHLd8&wJM?+vt=rM#7u7J7pW3-Mrbrx%*P*na(1gau_ENF2gOvsk1iu z(RRPXB|SSde(EIZMlD2*);scW;Zt#}tN_zqxwRy*sXX^3IyFS0eE%hJ?%h%1RKUjPJvi zDGEQeGIDm~^H<$7rKZe{#OIZSmH2v1B(}%6LAEi}4Gc9>_KyDO%xc+&NMcNBBt~NP zkB!(#;WlkraG{R2I%S_aWglDn+etj9rQNPSTG2Gq({Re#9aib|g7dD;1{oG-t+V?L zEf%cyiShnUm^E*0J%E#wh3l?^x34*12j_p`4m_&G8K12;-RK0L;)?gx%(%k|R&Q|< zv!F|#_PV(jPDz>Lfu!h)y?9hh>d$c!6aLPMg`A 7aOh)Gn??`iWJr2t7}nfa~Apy Fw&(`tO;CWelHbYl59Tc{|y(S^o4E^=FLV~_B^KznMP*abyS zY)(nE@?Nz=hNl+O0P$&ahS<6nbG!LEr{aP@!vq`p2lFG8xnSDGm~e^sZMa%I)kK6f zAoRp8qQ8rXdmC>W47z9dBN}XTUL53gyxWPl+9kaukTZL>6F )1B+p35NT_A}YBj9YcyinY13dmJ>8&t%TDMHr?(gND`%4gA zLC+~)$yt8Cwkh_id+CgPnGXtXy!!@O9CQX^Fwgx4nCHvdWg^(X;Ku>WTpoYCsB-)E zgCOEJ^$uR#_K_1ju{~udsrT?va7tV1DbN3u!uj4V%5byJT8~smL+>#iHEALAy!Qw8 zxsYdnRICTl^B;{4_RnAIBrf8>!mFT7{>{I064yhUI6>!my*IxLB}yaG@ZB{q?3oDp zQm{6^!8wf|b53Ks5Upltn{=&SF9WRUk*`st*C)|;bDfRv@yVOd8cjiKaIhKLW$obw zd$nA_Tdx7NBOEg@PsTs7nD`R+E>5hrx;qNte(~&Wu=%#=D}HQb+GbokE~Bsehk5T=uOXznl7n&zK@dT2Wt50f z>*JoI257iM3n}RCweqSQ_pJ(%oo`&BffE01Qqw4yS0m;yvwkofPMY(BnjBU)nr6*k z>c}s<771s}DRw@!W uVaw* pO%PosD}>~~V9Pds0N{C-3S7y65 s5gBM+hO$K!!{XF{-RMx)e1*)d-1~3apvzX@9XVM_xi6xbSjK3 z4y&sVa2n?Hi`b_1=IoTV=_8#79=@I+-3^7UY}N*CmQ%5h(+#lX*TV~8i=n{E&)y{Y z_g}I8{WTzxr(EBssc?T^aLN3Ep z3N9pjF;*<)ZVMUw3Hu*#gRz6n#)zg2!*jKrGsNrbyp!kPsIDNuc2c%=Y}wXS8JtH) zElH?gvPhUy0*1V)BH@j7%Cx|#X2f-`U4q0C$3ce3G#9e;HBzxX7`@%lYMqsU#FQvf zODb_#8R4;n$q*Btwmu)e;MUBwKFnHSdXaB0jUUbqVUTry)2Pp0AZq*BA{x!bP1IMz z$UNScU))5omaVcin2}eNy5BQ}1+3t~OhGwQXb@{KG?-BC R&k0E`X5}(!^psprv z;D#G%%?yVyXHLCXLuB&LFe>C9Xswst;!*0ShPo%7;K^ow6mi3PPsXZV4`x~SMDjjr zM`BaRz6yI-u `3LKBojn9J!~LipLf_9c{5@j|2`(8hy%nad)Abk_ zo?sq1DfV39^A(#-uUr>EuS6NU4W>&z(Ob(!ES~9_{A6p*?>nq ;M14>X`^I@5@6}`Qw-ggPYetG z#>MR(|Jq7mG4{hN184&rlSbU<+*3N2GWZ7f#Mq8C21&0?xrdJxh_ViclQ{Ih=9=A= z$Q@tYWPZ!K*^xTmbaN2hxU$%Kbd%jLbmIA+y3Z1WBxr&;85Mx$=tOH Y47q_=_t<()!|cym2jVfZ_B2z~R~;Ln4P(;`#H6BdfHg@s4eXTWe{^*O{{eUP^) znhZ1MU2;;_!KeAB;@`dT)48Dn0JoVxO!*reMWA&ZfgyjBCi70ICiAUJH5qgdom{h% zVfJ=1%r0v(lix=0dE^=9GVWMAmvV0|o+!t98^Pzdi1FXue?Geky3R)^<>eokkiGVB z$E6Ii$_#S-B^u-r{z_*qaNApqX_&?|o8v&H1Y=75!SwFl>i3yiyx*Q@J_^2PkMsI3 zQcY%VXl {keS1NGS@Btj^JOfqsG*o-bpvtAAs4!)b}&H zP5(YX|FW9;oexTPZpcTRgTxF{^1-k&yR=>VUyz@<=wGD&A=4{!a_b9&kE2r!dZYgm z#HhaOQ^!naPN3BhkLE4Uc>-343g{AWO2{4PHa!N+piZr2{-|Us8*mSz>)_-3YEAt( zJ=Jc1nE9XY!!F%p*9g*HV$j$8{)@csE7X0y?Y@BSh3wg#o4#+)GZ(%EQV*y@(|*`* zpKRFbpdZ3Xo^8I}-V&?nZSO(*vTHKEpC6-LHN-1xdKR>frwi>l=R?2H{N|+lH&cOi zD3$C_XSe6HrugJ>ZH?h7jiHb+7~nJe>x~4ktPMmfmtQ1wfXbqlqy|sN|32J;K57Rx z2aAm0ve^tXT0>Uch8~%~ki5z#CT4y18(*4$INUv0qTUh(e{F2fNrf5VbGeLAhG;WF z=-bhDr6Ax95>dpc8L1PSiS?wPM%xf{cNIxy7>TfI{U4Zd1uUK8vt;kZ+{{60jzf}D z{gHMHKA!&YZFbdLW7es wco5j&u2S=2UR8H(E^1}}C5Od6k<6Bf( zcKJ81JZr%x`m5|EO-wR}$64Rt*!ElemS#dC-twNz_?fi5I``A?6TT@oT(%=DWZ @HI#Uf8mtk+^W9 z#Ih)8R_;ogLKFGbWUVkJY_U`kCg$P(BBq&{H)du)*5u+4Cc@wL=291Z5w$4Q1_*7t z|B)!z_Fqup w-$3ZR9Ts;XE#v{>4je{eX4f%Qu{4Jpoaq|gC%QV*UxMd|{VG7O~2 zNmyr}TJNk`0qDt4yB zIUQ_x1u(#I1?0N#fvYum%xDz)6RucWUtGgskM?c(HSuXfsK2!l&%s5339(2Xe Vas#6t1D z$f?+I^C=pyFo(OXv6Rz9jyvIf0D^@_a!uDV?QojC>Io5!ss(!t{TS%c4?P gOfF%@q4p=D&ZNJRP5+6fZw=6#vakj(c;gx&wYvHBi;?~XpaZ1&fq z58_RRJ_uz!`e0mYmOlJUZ+-e;b~V)#aK{c}>4RWB$~AA$hxTmxpj6o&k$@w1M R>| z&Qc1`zAKuyN^iTN7yhKWqZd=N=mi-ouoHbMYH $;G%> zWThcyb@~Mp$RHfQC9(yg3f&OVIO&4Kz|e&Fw9STMyc>z17l_0!D}-unhH6xA=GU~% zLt2x{9W2^WPi^;`w*VPe>(7<^vGB)_3^*~QLr`4g{&a69#2ETv=w)(k1`#px%|+Sr zSG?bnv6$wd`h`#eo&Iww`p-TIFy1IXUBh3rYs?qU0!4VmW<&?dO&| CX`^!;}4JK- ~tT9eB=WsPpO$CDp_O>^G*f`f(xuE1_3f64~;9 5?_sI8vDAJ}C!(F)z^itJD2s^T?tR6qz(cDTH_jB|cN76dTdWZCf1Rlf z*8Iv;Em4p&hH?Ya^V_%Fy#1h@^)FWK_ju822&ci1#k;)uCd kq{H_)3K>8`Ye z?03KuzVW~M^}D}F)5728PWa=#;t8ekZ!7*u{fiMR>Z)T!%)B!MZD9aQ(1jY~3_$5{ za|W~A{B_LVkOFIJ83{;O4eP+%UhZykdSH`?R=4NmF4d=H`T8EbfFKKuEG*aIDQ?-; zMdxe^Yrw}f?M%7Dy}McKNg<=0YRyI4;OEbwpG_)Tm%NR_CTHxz(^_^lwk4ZXnN~}= zP}!W>UlQCeyhqKI8pAqsps^uvOVcK-t_V5qmieh)sD%=DACBRy$RJfkurSQByQ=et zn)nPeY2g=+K07T?G c3w}1OLI6(^-PdDys2kQ^UZ= zR+iOUwnRbjZeVLDvv(grRJTy%Uh-ETf^;-?KM49<_!;KcJ`nu;gf4v=T(-`D$Ia2b zJ(PF>LSh24-0wuSi#(=N7&YfQ3)*M0)0PXmGsoF|h5=11?YLbas9*8#=vT|8n}#;_ zZ(90Wy5bg9azOjHsESf23hp8ehQ00MA;5$eKh+hU=7OfXdEu=^&By*)jIr2c=0DpX zyBX=iA&9^O%un`j>#b&e=>&o~(Czz@Y5bKo8aK#3kH9BpH4ql}s3l-WJnu!MTmGhS zuCr{dp7&D=?=10OokLpokw2uFc1T$}WbyOa&h;(vZu<7`@2WU0*z!F-TTC-jNPN(b z&xQX1Y#s(JYr5-hP;IP1wIR4 RMTam>387DT-2G3EM`%`dXWuZvw$3SF>*_L+QCXa!a_}$0TyRc@bH)ZVK!@8Mt z#tL{lV@PdCkVCq?tv4UZc$QV#Ir@_$^a !|GIiuLI-B2g3|J-r=B^6|rf!c#dPQ_`ih#?M|E`k?clcbv}} zihPCQy$P-RejBSVhMzr5v&$jPyvXeG`2D`;+8LZ=XE1G)nE~;!n}{FI+U|9|_Zv~_ z`xy(Ev3L4u@GIo)qDfpv0z<^H24Xjt%2=1v*vCB-y2O|Z4aA&(ArPaJ a(;9vgRP|j>pvlkTeUH@_4!QuL;^$oU24f4H5(LL3{#A+2u z^n2rl$FMOEtWpc~-S|3_JNN~H(XU>G!)q0KEs0=TXs5Gs-c7roxP{s&$c6Ygsiw-G z%5nGnNy9TTZ$SSR$%n-qVouDUE?U%Dt-OH erZ06 z;Sv356AG6&V$q9F=A^#g>O8>~>%UtV^9h1b@(!YLxM6NrFX50b46Xzg6EH>!) zQ51^zE8?GSRLY7$9V6Rw8aEsGPi_Y{+`Bko&TRhH2;>=-R-nTW@q#TBbSwT~KCVrF zbhp5AR@y3qTd86sg75s6w>9?do#nih3<`arFfBE!r4NZ5p_}=BOOjs~tFhU(TH6Iw zGf5xD(wN21eZMz#M)@te*VqP6r$JNSw)qk1m6qe=K>p|Z69$ZIe2g8vyUJsl?uqKK zz;<{+y2C#_%G>|2eQh8^mnT7^e~7il3s#-O_)oQcJ$tezORN8_e8=7v$Z>aiv-5kh z<6q8q_b%J;wh8|HuA)0u;^8g4FcRcs`{M5>^Fp}qj^PFRm%H!1f}G@C-MLl`B~*Nc zYvU`1gOvse7rfs}3vzAWXa2R$U)}00!=QpbTLV3EL7kNVRURpV-{dt%h6K_T8yk9- zZA#uDq)oIIQcS{hJ_)SGeHoxaof#)%1M19)3f+HH9f;)Xl4Z3nl@}lWef+fWHQJ!R zkb?0jtU+RLor*op0|{t&LzqeXdq@qBnR=-rMODl||6d I+guu3Uf7qlm&VK5zi>Cuw-Gec!XNd7J{e^gg79DZ zG? #0wN^r?zW-HA2b-z+`f!g+V1^Z!$UG?qbH5H4>_1N-|dZPbQl4s}3YQtqB z{a!e`ok1Zz5PRZxI9eV4e2}-lrq@53HMF}Yzl4A*{^L^p6T40SC_<(r+@8#f#O_q@ zPTah9;&-Ynr`y883)VUnuMiSN>TY-8z=J4a+cQeDKP7(>VT_ qy1Adcwe3{hpmjtnd2dFW|a YF)Gb)V3uDl@$G$i=4(b|8xJWNB`HC^Q`+AxBf0{_~<5m9} zzDD8`3L~*zk@%vS*D(H*7KQkyH4?Lr@kLYgHpT&kNA0iIoOqeiFg6cmCuItp;=~7Y z80$RzVH=$jUIWM@h~MK91N)GOYIZPeSq8jnEEcL8Iv;Bi0}I388qB$w!Qel#{Bss5 z95 tD% zUH#am2$9H_UoWZBBU0%e4%E1fi%LEX%VP2uVHw;M4vyu>!eC@eV!&drb`GU%YdE%9 z@&nglEn%XHaemIwG8c_D4gUsyOU -+%C9IEa0cQshGY`87?!9Gf!#`c5X>F-rW z2&sCqh%z<7F@LCfk{`5t@}&2#)r+^Mb3g8;#?!*P4X2RP4q4^ZWEpp+c!60S(r`|R z4wkDkH^z;jauxthS1K+`#(hAx&MjSSFemDlH1h9aabi}C`~j9pu6okr)E55cdEe{Y zozI)<7yX%zaE)31;!gFx&lDS~bt62wJ=gN*XxrP%KLGJ`!q(mSV3wq>O*L1^7r8%p zv%rjjt?|QUl&Yu*{+?Xi?Xl{#7GmY!$7tV^e@n$j9W`FdS&N}UCbWRf?u8EsbK9}~ zG~8l_iW%O>w;LO-w7ep5Mt>(4%gd;toGt2bc5iit?^9#I)$7g)FA_^}h?*_Z8BNx6 zNGqNa@+W*#Sfr4pmaVf1>%eR4_B8J#Q}V&_wKYW~8O6 JMb^w zCtU3VTFF1GXQQ$ii=a$qMNWK?VY4jZdo*oX^1lBRO44R(i!HDI1MZb4iiPkic`0P4 z%dpcg?Ebv~0r2&g;F8U0>InT<@QEfDjQ+^b2;g)Pm-lK{HOF{l1DgvRX{KefG!iM! zk54>pdc}suNz*AdIQV$DZo1Nv?x7upw{W10W|Yb=G#&l|26;+@IhInro))nhxNlrf zw?xR$z% <%IOtVrv-0YtT8>_M)u7a+=8|``1tj8IAHRshD?uLUl)A*2KwJU ztN-+h&D=x+-GfOOgUNK@X7F^p9|PU{R~T$+2!Kro)0#WrIYe$^Zs@Pg9Sa7*^+G$q z#XkD_*Y)=6K=(u;*Uwk^^7(Sx&WBgij!_+M|GBBUYAP=fOLE*Bcrl$t8t9&C%RcOv zHS&A9;f =dvQ};b5xYfqn1I}- z%Dv_7d~dipTDecZ8Yav2bEfkUWw||f8I^NVC$%~cA^(#8+gPJh!<>fzBde4dgEG+p zTT%tf3V8{UK%9I3PNb{zaZj*ebHB2(sq&LE)Hv6L4cg1Ea0O-}wa48gJ9+knYWEEK z^U}7 n@;BOhZ?xVsEY$<(L)DxLIN8s*i*;)cqDXMzuzUm( zok00-`u6;f(S3!%=whBD@kv9R-7C%V^$AB;^bAMe*wadw_wJQu348M{k9U7d9UNTt zW)3%KcB~*h;v1jVBn~Gx=)S@^wUPMO3Ts;4YB+y 0xanBd;qh6gO|P!_boOQEC$2j-XKdmdxznq5Kl`Pe#$YS&|AI9+_JShD ztHT|u_(^nacyo#dpl~`j^j6LAH)~>-mQNoWyQY-am)2EvtmNU+Iy#?G6MW?Ln!HPg za5&hsf-FVs@46IBb%XVomG2Ynly@Gfj76{;rBoNi )rAnc;88*kJ#WPQ|4| z<`5EcV_{BXzna(|Su6-Qo#gTGOd&I6yjq{+R}q%jGv)Z+#Hq9e`(!Ms3jV-caCA^4 zF*T6NBV%uvJ!YHcoEVO->=|xP<$3mF-Y=lFU{t5EkXS}M`B={RBu70wb!>RS%3IKD zDcqA%drhgAfDlTZx5+ET2Jfp5M#+khGdA|es*P`wST#Ae7mK$f6-iVc`IO2%Ui@|L zvHANV)4~lDoe;n7y^@;v&E?_Xle;6aHC0c9_!bUU<01Jp6ilcj>pZr!Dv@8x_SHZx z+h<=pmZz~?0L13Cv3Wx^fA+6kc?!(>!PAxLoJ406a>JWH6ai)fouTW(!(Xh4-K-59 zs|_5>2Da&e4IDco5`3hsCT}cGCBKmrQS$z88kC&mR4 AXsXHD!6SzuZddv9#n2gw&`&rEuqo5Wu_eN70V zoWFHa7He6%DKn%5iuj?@HcV`qdu2{T6`fZXpFEai6J;VmrJn4?@dVnk{9~jSYgwv! zpf({8*;>`H_S67_Bid7<`oI=`Sx{e>>KREaQg3FkQfXqZkBvQBgAM`ZAV7^-m=!WR z #-(6X<6#_<<|JVx_If0?#XY@6eW|tF(c~ZZ z{7Aazv~+sRIfJui$G1bFI2dG7xuZxtXXNK$=W2yC_xPaWuXv2#j-kU2lzV<@E2kQB z8@MXi4D&SNGq`3<^5bc!OVp}0&AGcgBMk-% A<(5oQUeG-x8Qk4P6qfumyUvq+heRv; zFx#AlYRL~yJl00*h~AC8&BY$t1yrPOYb~7 %79gack_cP{2@O&~+;h%S> zc4(gJ-6%m7&($BFX6MVb9E495%)b0v*v~d+mNY&@qAkqO%(A(yFJ&&7iAuEorHuQf z;gWum7YIy<_}2e1ib{Ht J;r$J2D9zHNXV)BK{pqJ1Yp$#n8MpHgUUqr B(At%1(-25FBH~`7 z%2%uvBAPwn8xQ7l56zjw^1m1k?)dJmwif~8aw@sC_hb!RZ4PnwnOy^Xw7)bcIF>)s zn*tH}IXOM&_k2SCaAHy7x~P`{;B<_nllN_fK|0I*Kx<_Q@eW6 `fDD2L|supbP=m_TcwSpI~ z`zRbdajg?uYC28y`@zeP=_LBVSNSvTRr1zNS@BVD+G`&LFL{nPgLYh^1L~J-wC@Z1 zm0zmoY3;4FG(C7q`|LcLR;wI^e?b*4Fa<7IPbH4ek7(=o?1QofzrX42ZMjKE!|K>< z_&N)7Q?c>}Dd;{iXeJ-b9y$rdud$m$gdIiN;S%izhnZwlh;d Fm+-QL=xsEq>F zPbyJVTUfp+69DZNDvgJ>(2TD%jsNk{Y%y|sd|VOgh#iAFMB@US7>({>REX47be~#j z>tlad2uJbS2pJH#k{5=)ODTh_T!_ !J`L)e9KtJW+6Iy^gh!t> zt030M;OopZ6cW+eajQ6>iQ#8uii8blWxunyva6v_^Fhvn)kAQ4q4l*wb0!_vF8tm1 znl)_HYTk941~b#rB+e|SgeY5y6Q9qa)lr;zy~Wsl4AmO`I@txlsrdo21Bm9$Av@5y zIgRCjIutQ+M0*qGKiqw-S{ym}@iq$j4`Y-`p@XH5TlGC^vOmPnRTSlfL|?ekgg|xN zM8J$qOzdcl Vawu_NPiA$u^?Y%11 Hwb!p>i`2l=9F%=PC(BE#1>u^S*4M!L~*OEhNfllv3~kQmf1TE?(+{JLa4 zOjX82ck}lkKH9e*^4V?K%8k_W2*1z+>U4|>{Eh;=IOS4aaHfI$arVW-x6s64deN#T zI{AqO{;i}e(pa+SS7(5!wLh$&x(C0d;tq*{42}q4Zad=eb>fV}oQj!+!CSveF;1Ox zissBC+Y!IXT$woING?nL)L08Y4p+QVe{~b-3>v P(0rYhZa>%E^BsYh+Vi28_NIWG8`v-cK}^O369Jlq z_cqFQ 4Y^BYZj zi-xWnzCJMy`)NyiqtVVVx;ec`Xcu#ow2Sb>{h!UgxWE3rH=5LKmVwyyuY?GAV*u@y zo{UACp$(jg_CZJxBCV80<&wb<({M}h@p+SUDk4E9yu@q(_uQO@^ID^o(}uSrK5>w0 zuzU3T1*i#!IBO1~A~kDEbj#aFQ-C9`v%L7#eJK??-B~lbP~}pgaN>;eXyqZc9Qf^h zkKb4rj?H7yXBDQ9fG=b-dKejjopjIoKs>2Un^Y&&F62HSSO@B75cd;8&nLv9MU;UZ zmQ)_Sk#kw(2r78;ohy(Zkqe`h_Z2aAEK4eo8sy$;I?gkXTqa+l%ihVM1F@o2y-=8Y zt7&BSGt+Y1O}lK5b@XVaTC4Uryj5Wvio|=^CXfO+u5N}liPi?tR-w6PuY)L*9)jU9 z0#v+q?Iv9W;JD@H%dy{kH{Lo 6s%7?>HO(0tcH7LOjjk zmpLz|dSY`HF $>cy_)l_PwmrFXXYDUbUnF<<^c@bdKK81=ZcTghgSQT25u@#Y zbK-MDk$6vQPz`V19?r#DvL5^2S|k8#K_&hGZceJGhC$YTD%pU>XCK5FH7s!v67(+U zFqXJ6k;GSxB`$4(dw^~*u08aiHLe|_@mu@a&3wW5{Nh88aX--GeJ_dNZaQIaYFZ@m zlP)H@YTL^FPkSah+rn`BHbDzxXknUdf%s{zq>gpKVZ#;cW*6X5=OEgG?Kud{c k)i~2iS2VMrYM5Ldl=z`h8CqT5R4C*6B?AlKlhO(U&x+PT#yf{Wcn!yK0bRA zZEjI8ckq!HoLtTp_bs!e!O2|_t-N|zyCDvf-tpj%OK9o=C*4TDiIy#obWd-TdBC#> ztOnH67J*m22V*OE*n3#Ol4ySJa$W#3a8`LUEOmKzwFisFr6KAtB>CO$sEeg9!Q1}A z?s)JAGs74Eyn&;UIo$ut=vjOjXINbpM3E6o>I0!&tMer}7YvrabvT9G);lD>88eP| zdJRHT>yQm6KF`pm*uIV}8cis;z%Vx{P_=7CpfOMMWcX@Kr>n;Vmz Iwn1bXXj1`=nuBWp;(N6;Pzh_XrwLhWq9SuFPNH)HW z|4|xKaLJrn0Occ~gmg6FKzt4(dnczJM#_@RDJAw95Iarl=rF{NEf_Bc+W=5j4k(tM zqoqrIS4)YX5U g_(Ovz`w@&k2I2x2ECe-G4j$d_Mzzt_OZl^?{$=7JeE4wZy=|-N4Us_S(ae z{ekFPE4l#D7lWUBI^n0(&>tfXL=FA9$D==xo^;?uw^RkPWT{H%3sV)vuly@? k%V&O;lw;{b0nR;-zsxlIyDeW#rMbAt zY_4^WIHa3K*+iT3xXTHk#>P{j4g?eCxToDF>flxJjQ_qPs~a{0ePbPbuhjTJbZ7n| zPBcd6;nA#75~?N|MXi8E )}dgF~I-N57XC3IloUL#iL s#AgNIZ2A{6202s}HaCNXJGO?-eN z# QV-~JO4#r> >?p&p4mfA zzRPN9@U?KFZyzz@>iA`os}wn4Suv%{vAePKq;};}YtMHlY )rRN&+A=eCNG&8G~{CuGRHbW9Bh6CwA#}G?a zn8}z0GMaUKK4W_~r~XnKa2&sk0eVRCzA@$DLzA)M&cb#h+RoYPVaRC~G0?D0aI+8n z7V6C!V1+Q9*)DQh>&MzHiC@P2y*?IseblOt6TLnT>Dq_itg$?uhm#unfaer!2@A_6 zYlj+&oke6)^KLEfU~G0}wRg3?6Oi +L3 z3Pj)Bx9BnwBeGy`7!eD>P)hhrM65)?xu?{jHyv?yEpC@h4PC8&(>b3>jD`@M9g#4` zpoS#Z5I^Y&SeAbN1pjN={`490d7b#<3=Mx~nu1C`|Bn;>iR@^y@>QLBnW_F}bVE4x z8Up1JOpz*I7bUErlT;lewgAO5)Csea`yHahGAWj6ov_ZJPph&Cm1>3%&M_0LPmTF( z`Fvl6m9Lcg9z#k4$B#nzzw0GcK?D<{5WH^L uYaZp$jcqyg1(A5Jf?c5V6Tlc MUblmbG+H6V}nf)L=BZhCr^Ar9QG#Fm>dY69ufmDF$z4xhPY>LSsL7 z)qkinz8JIDbIHDtc{&QzU)|hu^y>VcibHGcOMGU3b JoTk~LEXvP)1oFYL8w;y4T-m_=Xft)>gzm8KlF%Ik|P(Ke YlJV5q=dL#`qGek9T-v~< z7odaMk6&0~&Y%Nz1#dhwP5!UtNL}eFBKQ?%fI;_Yzq!M#`OTPZ{dUIC7L)GhO=cG^ zY`aLMo>`BADigxS>-MrU-k2^#YC&T<)ctbv5*Cn3P^6*VnI=n*+yT;vWaC02h0bQT z$wYJ^vPHM|Tr|#seTOi6gJhy6d86`3$C(%(SPsR`*%2VVdxKlfPe@E5EW!TWPxmhW z@2;TomZx@G`u`imWe+|e^F&n}W+3B<}Wv vcH#U$Tmt!K2UpDCiVkB!4Q<2Z|5FAPJqewHba1+5<$<-Qv#oSP1 z@20t7`~)He-0fiOYbtlGnj2SLKE78YxbF-By(R|u6NY|TYfV+hIwJ{I$JTXPFFOc} z+lvIYUh#gpRne6);j|+9<<<9x%Dx=Qt1a>lkmJ#a?PVybfu@=LzLKMp5roFUNeJ3X zcVOsCxMFYPL90XI+_DZPCNd7snk;FMXs^@>(aQBb1s&i)z *sj_N2^o zWY)KtAi f-_z(XsWBOBhtM$;Q)QN6t{x1S{ij8d=Te5J zt`#2`fg4Q0X2$E8gq@wO&17%5Tx0Wl+M05vlMB?>4E-QH{H2 CBgJ6`r;FSS0$~F8}WaiewK{Flt7~J{cpr3Rz(8 zW+LI(`p&tC2XA8J`QUd|)1Dp;{rH>L;4RaI;@V=^>4iJD+l4cD<9F3Ln4->pyfusN z%*BJz(jqL0?U3w!JhHcJLMNCt?Pd?MCii1dJz6=s064V7bY`l^y>f#`(Tt?lUjz#> zSO{6?-wVNg&hcIXgsjaP85^16bn~u!1Jj0oZ+%hs^Bn_x3#KEnA`5^ >|@7*%qA=+vePoDvsDKf~3T1r&yFR z>`?q`>Z2ZUOO_FaydU@T?aw8h{tul~X}Cn3&1QH3U5Oupg#~u4$S0LSqTuPHJW 0=}H6~rd;%+{6!ZAM6HcES^2V1*~!0!M%;_hDHMzJDHR*%kco7z^ys}#?(SqW zI0b{E|4j|YNrG+-E}7R0Gk2h|N5_k?y}lIO$^~fTe95D@gv{vn-PjePmAB?;&GCed zAL5>mPg{g!&6pto1z9l06zSjTYsU1}lUPHJ+hd_+Jf+5eR)yWYt>MgQ )J+P~J_LwCFagYy{>hNBRQuQWO{ObCnU8t0XYnRRn)`1{eMn^zU5C zms5=H@zA6RiF`7jh4zHw *KEnU=2UE5tkzd|fHrPCs7Aep7 zKz5B3l)|@MoBiMS>rCdEe0V=|wdJ2H*es8KvK)taCb;><0up~;vpker>H~(Twx;?D z^rGtnfRy+LCP>k2iB!2zEZ_>hS`^!i)3WR>5kVARWbQz0cl4dV0skg@eO~m19w_p? zbZG3T+`Ws&^$IPT1+g!zBtHT#X2r_p+$g9ja?*;NUp@rm1g4Ku2I_ zAT|bUTj~yujyC?*FPkond^^%q0U90P8UtNyN+HmNJ(Z4@91jedGeTd!K1+Fa3m(qe z^}&Ek7t&&0X#Zz_)!TbX!Vre~UUDJz;2uLjiLpU9y5Ue8TMc|oWg!e{u@<_6L2!_h zdTy1zSVTyJq_n{y?$>{nIXdCakYqi&T{lD2`TPy`e145@Bwg_SgIfK^XNorMgbERN zlUGk1-jXrUqcwQHsyfyNmz*12^C{!b6nR2T9eKf9e@1N+wC9+=Q_SBP=I>k&O+Rt+ z<`qT~TndDYK_mrCmgZ|~5j|e^MGthxc`}Lw8qWwPM)e0zYbPP1WL2G^s&n_N`ebnv zBanI5hMC=4+-9C9qwpJf2hN{5%RApwabZzofBe42)B1`$tufh#7p&46aKDNfaAFi1 zgS33^mE6^Eq{BU+_whNnWUj1Qq-afy!lHdkK!<3);aNX=H2w&=H)J*A?-1@YNghSS zO%k2%!D2duYsFYt`G7xm&pb!F> r zKLo$=ZU=&ii}{WPv-n6!fphvmvX0D8y&(AEMM3b^I!JzXe1^o1x3Lq{#81>gnwJ#$ z5Bxo8jx9uD51af45w3KQ8Jw=z_$t=Ffq8W#6&+r^=*nXBefd;-$LkTaTm~;e>kczm zEd27z=5hxW!`I@+>t$u^QLoF7h?+t01AfI3tZl+S(u|}S-N8|1+l*g1wnBhjn(FPp zDBDCh-JlHTs*Zac5q&3D2PGhFPVoLcq2PB`%gk|v5#K})(`%`7A$K#VDvr==StD5D zG}DN5!${mtzbdx7Dz>U~FYHc_O lc#zD_4poo?bR6(ks|9_SG0I -Bj$j_L~y2b;gv~LB`=vOk;GantN(owdjsx7ZnGq<8^|Gw{q%BC&aJpJEf{Q zzc^ZX_P#b4HCdQnML!*eFTW;sQcZjmX>#X5yq~LyjVMlG5Uwp97oXO5im|tEaKFpp zfX-FRTJ`LqGAgWY+JOB=>y0J1zD#4O(^w+$Q=^p+exl(FW;pJh&wl1$$~71ki^#zZ z?m_?RV8(S+_Z70$)lSG|UG!_Be$_$kEJ}U@TM9`CNHd2lb=O)5Zld7o)f^4&rx(Xw zo5e3IS>EvTE@ZhiIj_^!+6{U3;@^Kvn}&zPQAu^HUTkKOLcK+)DmFU7(HjX{;ef4P z$N9fvOT$ow077m)b@JxIcfJI%ZWVc+^)ez; &9x_>LexxU>)2NRB&y&tV6tEbOl+r_XX !!9SXzpr6L#eWpSuw^VfEE9ACQ@$ht@OSF{nHyn5fkhe8ie3Mje|G)v zS>~_*Ay@z3tv~8f*7_qA?5GMZ8Cb^pM{-~AmVYP9-)h$X(7|4OL)RV1T7MbpQ-eCo z{)0Q ~rP>K;I}z$F)E~hZNA>q~ zBldUk*X_E81o!Y|pEnE8Yb~JD2JF^rBhwFE?XkxUC-fbp9L4_oKW$d5rV?WHp?KVl zdDHZ8p%g%1%(|ax8DgKpjk3WFek={dxWi0IAW-s+3S? 17npwF_cqX!GXtyE10kfb0qX$hOHd+#~4@ZW`fP! zS2kM3&w>Cas%2?33)vZlR@F>g+6&QldR8sUKON5op6FM{Cq~63wYJ92c97ebOqz&c zbG>vFZfzjbTc||$JLNaBJJM4U1*;DB;LbhvDhqXJRN5h9huCN08$8u%RsT9T;t@}s zj^}a8lq_Z_!sM>{aTko(+0{GY+h=BW;zv2vrx^VBPwl($K-{ZejL{LM)cTkr{xBdt z;(CtUXi-2BV_D0@lPMlU@G4sr`Amo%W+7H>fq%n }n4_&?oU-+DUUd;feR96HW z-;!%7Ag9u7xQ}6Va5 c}}L>s|-2at%Wk^3=LFOx$} znDv-n%YFChEQgu_*hB8!A7IV+l2i9H`0OXd{lC%w7iW%D>v}-_f1B0+Z$U{kOlZOT z(vtpp{Xao%qwR;xU*u>G@YR{WGxyj32?8&X4Im^%9-_qI@wD1s(yiL>*QiqsT-(!> z`l`8D>bi2EJZk>MW!9 Aa@Y!*&L?c;q7o_h zGt 5wJ5H-fTn6Dc3I=+;@EYA7+e9-XLq50q{Zxto z;Mw}UIbUz}``;nI8D-vRp3>kKQCXUO6aUiqwK#5`4Jb**2dS@R2nn2NlPqi%%;5cN zr9F2$R4JNjD^qt?A4Yek0~F1w*#9V;MH= *JVS%y{)2^$!auI$jL)s+)-ftQAXh&DG#Y4%suj!x>Y zMr8*Sj=eN4K6yl_xyQJ8!w3iFSG}nCG`*^gpB;l3)k Xqpb-!!Wr2VHqe& kIOSR`p5c_rX(_%?)J2ne@i)FCAO4Evltp4bnVQs( zR5?q){FgK-Lq8S&`j4nnhqGu7UU#eQ?59p;3G-5>j!c)dqCAcRlqrNGGEGRGN~YDR z*Y{JW*#B&G%4~?+@2;-9af6lQ_apq?qurmc9e97_(6;;Y)MxI`slWF3=b@>eu|KjB z{BP{f7gx88w)Ie;Q-eCt21(nxIiqam7Oi2641CyqdMmw8ukF82-6~xk_EdvtQ@_`B z$G+aVV|IVGb;_53G-60L{`^`p9#{j3@}yng{_wjzUs^llQoAc5BN1nB!#|;i ( zu}(eg7P|5Duw%cF9)`U(Q2)~Bt6=Msx@y9zV8r!K;u7Wotr4StUDc_7J QunS JitgS|2M{J+V5(~aQq>=4_# NCHu`f< z7Y?H-7J2rOZtNI`r0p22sIg;M`*o)!!-PHiA;x_(L?k9e6xoMgQ@KjLcHJ#!A+;lqYbIVm@~fan>(0a+Tua3 zs2wCT>ek}1F7>0d?c${0&}yc=Lucr^wRd1cu~rgyH#pP t|L5@y z3vcf_v;)L9c=nCmJ`?*twr_yT|Db)t)c73xM)`s58>`*~nEoOAhVxI`H|7o%>F_mi zDbQ%mvcq(1-w6B@_6^17{jb iz}n8#iRwH}Iw3lxg1xw%p2M>}TURW|`%L zP^)fi96-SSHjZ= ~B?>M~*;o z{8A@vRS6u>s`8IbFZnY_QrfC=@Iw%WM8Wp|^sFlKkB#q!WuJFjR|2xByYNuY|DHCD zM&HK*WRmSaS=_{?LjSim%o6WzxK47x49Nw)k <6Mx00Jjv}A4#(c0vmHBn2@8BV}NVx&ab=?+SL z+QCVwVc7?q03{X02Qee{1F>2oGT9fwB^Ueda}wz^$!h4Wrcx-ZVL&(*<`Q3eL7=f; z^FfTI?`aZ7<^;V5rAXb({q{(nI&8_<);F9wHa>K0#bJ%hxyYb5D&*hr686GN__wj~ zUSlhIH{LHvC)hF`PS2ISsqYa%p+Rg!NIflU5GvPjwEQ+jx|v$@nCqPe3OMnD++%T& zFkdB&IA?b!9B>|qV-LjUDC%DAO1z+P94=Wi#C5vD#`gkjoGT!K7LaK{+NroP(0H(! zWPX|A*K_AE|KO5QW%B5(OkK@pnDH3 *RHwCgKF z3K_jO)s*=bMcA|GkVh;Z|5)ZY69r${m7ZL-)GeM`WaR%_yP&c*yeK)^h~QTK{