From b1bdab288ccdaccf6ceaaa3cd570083c8bcf9347 Mon Sep 17 00:00:00 2001
From: zblauser <54143933+zblauser@users.noreply.github.com>
Date: Fri, 9 Oct 2026 02:22:06 -0400
Subject: [PATCH] v0.1.8 visualizers, mouse, zig 0.17, runtime libmpv
---
.github/workflows/ci.yml | 19 +-
.github/workflows/release.yml | 122 +----
.zigversion | 2 +-
README.md | 76 ++-
assets/hum.gif | Bin 1110155 -> 700563 bytes
assets/visualizers.gif | Bin 0 -> 4273491 bytes
build.zig | 65 +--
build.zig.zon | 4 +-
examples/visualizers/pulse.vis | 49 ++
src/api.zig | 32 +-
src/config.zig | 18 +-
src/feed.zig | 51 +-
src/fsutil.zig | 81 +--
src/history.zig | 12 +-
src/library.zig | 59 +--
src/log.zig | 5 -
src/main.zig | 127 +++--
src/mpv.zig | 144 +++++
src/player.zig | 168 +++---
src/playlist.zig | 15 +-
src/proc.zig | 1 -
src/stream.zig | 40 +-
src/suggest.zig | 4 +-
src/tags.zig | 336 ++++++++----
src/tests.zig | 2 +-
src/text.zig | 52 +-
src/theme.zig | 2 +-
src/track.zig | 14 +-
src/ui.zig | 928 +++++++++++++++++++++++----------
src/vis.zig | 606 +++++++++++++++++++++
30 files changed, 2149 insertions(+), 885 deletions(-)
create mode 100644 assets/visualizers.gif
create mode 100644 examples/visualizers/pulse.vis
create mode 100644 src/mpv.zig
create mode 100644 src/vis.zig
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9b53e6b..5a6f38e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,18 +15,19 @@ jobs:
- uses: mlugg/setup-zig@v2
with:
- version: 0.16.0
-
- - name: install libmpv
- run: sudo apt-get update && sudo apt-get install -y libmpv-dev
+ version: 0.17.0
- name: unit tests
run: |
- zig build test -Dmpv-prefix=
- zig build test -Doptimize=ReleaseSafe -Dmpv-prefix=
+ zig build test
+ zig build test -Doptimize=ReleaseSafe
- # Type-checks freebsd/linux/macos in Debug and ReleaseSafe without
- # linking. The FreeBSD release leg has broken twice on translate-c; this
- # catches that on every push instead of at tag time inside a VM.
- name: cross-target check
run: zig build check
+
+ - name: libmpv runtime load
+ run: |
+ sudo apt-get update && sudo apt-get install -y libmpv2
+ zig build
+ ./zig-out/bin/hum doctor | tee doctor.txt
+ grep -E '^ libmpv +libmpv\.so' doctor.txt
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index be495d9..ea7089f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -8,46 +8,8 @@ permissions:
contents: write
jobs:
- build-linux:
- name: ${{ matrix.name }}
- runs-on: ${{ matrix.os }}
- timeout-minutes: 30
- strategy:
- fail-fast: false
- matrix:
- include:
- - { name: linux-arm64, os: ubuntu-24.04-arm }
- - { name: linux-x86_64, os: ubuntu-24.04 }
- steps:
- - uses: actions/checkout@v5
-
- - uses: mlugg/setup-zig@v2
- with:
- version: 0.16.0
-
- - name: install libmpv
- run: sudo apt-get update && sudo apt-get install -y libmpv-dev
-
- - name: build
- run: |
- zig build test -Dmpv-prefix=
- zig build -Doptimize=ReleaseSafe -Dmpv-prefix=
-
- - name: package
- run: tar -czf "hum-${{ matrix.name }}.tar.gz" -C zig-out/bin hum
-
- - uses: softprops/action-gh-release@v3
- with:
- files: hum-${{ matrix.name }}.tar.gz
-
- # Single universal (arm64 + x86_64) binary, cross-built on one Apple-silicon
- # runner and lipo'd — avoids the scarce macos-13 Intel runner entirely.
- # Apple-silicon only. The universal build died when Homebrew stopped
- # shipping x86_64 bottles for mpv (Tier 3 under Rosetta): the x86_64 slice
- # needs an x86_64 libmpv to link against, and building mpv from source in CI
- # means building ffmpeg too. Intel Macs build from source via the tap.
- build-macos:
- name: macos-arm64
+ build:
+ name: all targets
runs-on: macos-14
timeout-minutes: 30
steps:
@@ -55,74 +17,30 @@ jobs:
- uses: mlugg/setup-zig@v2
with:
- version: 0.16.0
+ version: 0.17.0
- - name: install libmpv
- run: brew install mpv
+ - name: test
+ run: zig build test
- name: build
run: |
- MPV="$(brew --prefix mpv)"
- zig build test -Dmpv-prefix="$MPV"
- zig build -Doptimize=ReleaseSafe -Dtarget=aarch64-macos -Dmpv-prefix="$MPV"
- file zig-out/bin/hum
+ set -e
+ for t in aarch64-macos x86_64-macos x86_64-linux-gnu aarch64-linux-gnu x86_64-freebsd; do
+ zig build -Doptimize=ReleaseSafe -Dtarget=$t --prefix out/$t
+ done
+ mkdir -p out/macos-universal/bin
+ lipo -create -output out/macos-universal/bin/hum out/aarch64-macos/bin/hum out/x86_64-macos/bin/hum
+ file out/*/bin/hum
- name: package
- run: tar -czf hum-macos-arm64.tar.gz -C zig-out/bin hum
-
- - uses: softprops/action-gh-release@v3
- with:
- files: hum-macos-arm64.tar.gz
-
- # Everything here runs inside an emulated FreeBSD VM, so every step is
- # 5-10x its native cost. The 30-minute cap was being hit; the work was
- # a 55MB in-VM toolchain download plus two full compiles.
- build-freebsd:
- name: freebsd-x86_64
- runs-on: ubuntu-latest
- timeout-minutes: 60
- continue-on-error: true
- steps:
- - uses: actions/checkout@v5
-
- # Pull the toolchain on the fast host (and cache it between releases)
- # instead of over the VM's emulated network. The VM sees the workspace.
- - name: cache zig tarball
- id: zigcache
- uses: actions/cache@v4
- with:
- path: zig-freebsd.tar.xz
- key: zig-freebsd-0.16.0
-
- - name: fetch zig (host)
- if: steps.zigcache.outputs.cache-hit != 'true'
- run: curl -fsSL -o zig-freebsd.tar.xz "https://ziglang.org/download/0.16.0/zig-x86_64-freebsd-0.16.0.tar.xz"
-
- - uses: vmactions/freebsd-vm@v1
- with:
- usesh: true
- prepare: |
- set -e
- # mpv drags in ffmpeg/X11/vulkan; we only ever link libmpv, but the
- # port is how FreeBSD ships it. Keep the set otherwise minimal.
- pkg install -y mpv pkgconf curl
- run: |
- set -e
- # Unpacked here rather than in `prepare`: this block is the one that
- # is guaranteed to run inside the synced workspace, where the
- # host-fetched tarball actually is.
- mkdir -p /opt/zig
- tar -xJf zig-freebsd.tar.xz -C /opt/zig --strip-components=1
- ln -sf /opt/zig/zig /usr/local/bin/zig
- zig version
- # Tests already run on the linux and macos legs of this same
- # workflow. Repeating them here bought a second full compile in the
- # slowest environment we have, for no extra coverage.
- zig build -Doptimize=ReleaseSafe -Dmpv-prefix=/usr/local
-
- - name: package
- run: tar -czf hum-freebsd-x86_64.tar.gz -C zig-out/bin hum
+ run: |
+ set -e
+ pack() { tar -czf "hum-$1.tar.gz" -C "out/$2/bin" hum; }
+ pack macos-universal macos-universal
+ pack linux-x86_64 x86_64-linux-gnu
+ pack linux-arm64 aarch64-linux-gnu
+ pack freebsd-x86_64 x86_64-freebsd
- uses: softprops/action-gh-release@v3
with:
- files: hum-freebsd-x86_64.tar.gz
+ files: hum-*.tar.gz
diff --git a/.zigversion b/.zigversion
index 04a373e..c5523bd 100644
--- a/.zigversion
+++ b/.zigversion
@@ -1 +1 @@
-0.16.0
+0.17.0
diff --git a/README.md b/README.md
index 50223bb..91cae89 100644
--- a/README.md
+++ b/README.md
@@ -10,15 +10,33 @@ your local music library, streamed rss/urls, and yt music, one zig binary that r
+
+
KLOfKNR^nDn&-?1qgdw+%|00Fep)_}Mv `ai!{cNnWpUJE4fL*u<&i~;V>SQi!~ z4~WET@^w!Y(p4)R`^|6oXX+1&m`Jt-o3=E5Jnm_Zb7yyIJ6_aXo zK!K>(1)$LU{c9(B>C%svTDVtx>_5r+P`jXtPP^!dPwFXMlPrT^%={?vdh=R~QBu&6 zg!$67$#zz&RNgj@CpIeVTjNzKagVNGNw2O9=5f8c2fUS{0%ksayi0rq0{w5hJ^pJq zssFHB{Xd@mx9mi4W02C$s@c*9VKL+&N=NpYdaJ&0S|R<$2=`UxI5<_gGgQBLFp;0C z&>($@_kJ3WMK7Q9IQ}kDLJlyWp(~?GWbrw?zx{wLmi``+>6YL13Vp0RQ6WVAn18a8 z1O|bkFncCo4f)FjINlk^d+?Y?Ndy%XO+{r!h*z)#nO1AQU16qO4#goEAittT5{rRG zKyv9^g(TdD{TdxJP;Imu!zy+4D;|M4AXLUnEwm_*1b>;NPqYo7z3d5rY1{CLKR#Ho zf+QGQ0RT$Dh7Ld=P$O+J0LaOG)C8RkR$HXo1gFX6U_fBRW4Y73rNXw0qXyDwqQDX; zhK;tK>m VC^m8yUKO*}22IIK(uB>>U zE{F5laVV*vaATUNaa<$!@74J#m(J zJQ#*JF15ArmMGJK4o8+~e|3@6&0`-v*2#m@qVbkaE5+l6K_kg16XVI*azzx#e!Eaz zYex@Y%igSb5%` G;%Bz#2`IFi#$E>dmLxlnB%nFj&qev)BQJ z4X3BMPiK!-yblIThs%bjn*a50W&i~hU+(=#1}+R7vd5z*s~$FMpP${T?rV79Z`xCt zBJ!x-@>*DObkp~_rWe UiECc}gS9C%M_?e96VZv}#i0@>}&$E)rxDe^i(BD7LAIJNi*Oj{b z4QqlZjPrk4@1Fn^{~sxX`1>CEU;8&Oy)fn9fBYw9bT5N}AT0S!CIdo3!M#Y7kZE`M zb>6 Cog@nGl!9&0|bnuL)V~pYazW_W1J2!yKSIz%6RfZKADRD14w1ES1OTG$t{A$uO z2X!WS={g7Ya;a*`rORtuvmQ>w_c{JP&%i(;g(~yUE$jJIcaqWJxm#E=w$~~qf9hT= zjCB {jU4_M||UUDihboUl+%PjHF0^xhp6Vs+3l@ zE(l=0A4l=W0!>0CnT<-ryk7R<{+qZk7!U_PumXlLNUVVQSW&vxtnaMRc3hq3g-$LX zRMAd1z6j9js>9Y(V?|>cCzQ3c+@=#$`EM25U5D*sD0G#Dt|U7xH!|qKxYHI=&G?b{ zyZ;&ZD*r>TfA-t|4t$U$aCpq${q|x60-xW5h2Q*RwIyEI7s+_dR06HP+8f4sSD(S* z;3+ss;CAUtXyO$G5{ULF0)*!6%Ro5IF+?1ZQX}PW{((5&+ZruYNxFK!e?kaM0(uP} zRZqs~6@!|{#1Tmj<0+2?TH^nP^$2oEt)D#WveF|;2&E|LjsZG?O&Uxdn1Jk9V3mY? z-A9=J&@2G6{(8U6qxe^4Gbn1Cu^tDbw_eI`z`Ls#fOv4OK>l+Kglvtqq=OY5!Y0X+ zZp3oqB!*3Z6$Kzrwa)C<{FF U`&D&1VGVftHdwp4wK)ln;e*B`LI-g zCIV&V#IT0!u%+@iL;2oNn_(j@vN;9&UBlbX7*ls5mmTQuxN(|KwAQ1|q+89qVAKQV zT@X+%<7Y#d1R6xfAYqPDfQbT+6t(yf#fH+ijItG^6H*Y`Hioyp>WXtqtfxtavLu z7pn1V*pgwe6mGpj0@*)*-%Li^@=TaGy*!;|1rZ_t5yoi$3d;}C{s*KGVgDPXod3Xd zkx>2@NWnsH`~@kr9X f!_k5u}Gmk zm-c^w6k>`qNHG)w;k=ftDH9GGB9S1jwn<1RjIta4PmnVB+2!F|5*){E+o7$|0yHSJ z@x^`%N1Bu24 +oD#2V!l&4(aYOPBMN zR5S1G^)&M^p^bFwRELcW`_hVyOy{QUjjX@IZf1K;Ic( ZYBY zs`_4{@NRYEl;dtq%SPpHZ3BE@6)?TdzgI8YD~-pcQ6tc#SNLw@>yjLdw<&KQyUhmQ zTtnrQ%{u<10nO^0I+Tb&_Nz@gsH?ue+iTkW{(iq# Xge+yFD zU%*wLuskx+KmuU+72Up$-TJOY5IL&>=K5=Dw{PxlYfAGZa4U^Dk~zn;cjog;;D |#s22w2G$O#aWnS&*ZAA(%pt!oJ5aIZa5gOn(d zdYgP_%j$iCd9iOj3EWiNg@1gC5`w^_(&k4MnC8AhGb(0)+<0&NpCH9p5CM8pCC4^4 zkkBrf(5~7G5<8j!`=}rZn)P7Dy^ek9e9@H0LgZr^9igu$gXpAbLT)0KkxKXb)fUMk zQi_ZH47&ddq}Uh|dV{D@;=CRb>#c&8eX8qYPJLkPo4ulLdlv!UAZHMFg9!^F8IYat z Pa-t(S+|#KenQd97yK7UiM36Jqv_Z=f-(KTHASvNN~g GQwb>yXkF5-)e?W?HDCcw1*vcyqeaErr*a(3{ z8G#f{wT2LT#*`-~ruV4p(`zdYQM8YCjiM$w-_d!=qZ=#HXPvi8ZW$#7`~y- tE)>!G50T!~+d!T4DlB+52DAe#^rhSI%Ni4U7Pccv?U90l7bRw8R@P-yt z97Ly?KTOLFkZQZx d5~QVKYY=oMWP`th?0Z1r%W>8!h|nn+ofw!_ zkoC*0gcF#f3j!pEhA{M f8f#Prj}K__7#3Gj6{I$aX~iy7MtR2a#wOyq`M88 zJ(8VxFi;#C!i|xsFk}bQqJQyFQv-!x0t~AqQN8@7%^zxFy;zYUz5RD&1``5(9P92+ zQe689z1;Jx3(w!CnE_zM-_C-|vv(eTx@>HY^+0L_9!kXdg2B(e!_b6*ECDRJ< `FhqBK37K`_(jK2-k#tBZo;6JP zct;ae9ben*KSN(BuNe3$P%@2pmUbp4!}N-@)Fq_Mu{+HYCT=+w?$ &lA&Ar!rWk$|z6yRE=0vIET5L;tR_5WE0Z#6I{sA>@t}R=J#Re*;8?cjYnn zIu&qLl;)NqAgFC^t(Zfvrw8$+2NA`cIwb>Iy!{ha+-awPf+mo;aX9m+ n JKsJ`O?G?yU$Xa;MR-@G=3POlDVHdSK?3-@4$lXWmg8 Sp^p6E7tBB} zvyT_S`=~6G1{Ly^EDmoJGT!t;o;mJoVPp!EeU6D?;8rA?P^?i?*bq~IdvDO%ISwQf zNnsx4bB?=NV7EL4fXsn8Vpyp9%Cm1Rp5=A`I}4ao4MfS5NIDhAyb=Cf8kEQESQ`<( zNqFjZZu4;?FkUsHAT^vi%zk*o(_cCHc*?D#$?Z{kGE%@TzchIE+=~M5m@wm*R_azr z?)a1(N7sQ{nu?6DcaTGZHl`e-rejLI!66YKW_;{VZ*z2uTVJVfVlQs5B_cu<{AV*T zMKbkib1FrFN4RpT_d|CY!1FvD#Fw7|Q?QeTdWNex!OnobQf!D%^4^SNxD43+VGNU< zYpXqNc7K+-svSK5{M?F}3yZg&O)@mh4%>E%bf8sKq4f}Qp7KrAoW(M+&~b0Yljy}| zoo5^yc}Fw*+7ZJu1y~%vd2>_b2RHV|;>i6d`qB%O!L*U~UsPl0%Mwh>ynMEwKROSV z7V@J&`134*l$3#Dwd9`}X~9rW6iX)IRE%ES{q8x<*Rc4cesALT3uLR?7Jph|#ow>w zaXSJC7&m393yED$x(TgUX}-Bn?pGfFZw@Z3mttNmAl7vE>!#r(rr|sp77u2fS~nw5 z0-1ED_VVY!%tH3?vIr`G`|F15g(Qdwltc@>q`b~efe5HC@Y0iV(-qEqXP-YGmP@mr zmCO%rWe%KEPQEJTh@1jARinJ6eZ@8$oXLEVGbPtD%DxMDFZ<;4!mZpkvssv3shYEV z&S;8>LP_*w4yBO@F p%rej(w3rqj07n% z1AWXumrOWSUvZ#}uM$fpH@^6OOCjxnw_RoQ^-72NKAamFn*(db3&}YCGQN24xL&ey zx!GJqX4;)5f13SLF>h`b-< Ghu1+YUg5&i2vfzZjybFRPH#42vxq)9 zFPchd=AK0oD!(39w+UB(DF6z|XV1w}#Z( v)Qj|cWPuXf)2 z5U!!Kc%?RwmBL(7pd3f-7fa^n$~{+jT>x;2vMYaB1TLsB%JL$$w+qauDp98$C3B^T zZ>F_yZ?v_|B&%8 %}t7cQ{_Nywr5Sd5lql#&an47y*P6fH$UQSrw)zG z_V*3Hn4ZtgzeAeXV4~~rvQGteoqYQJRhd%BH8QXNEK4K{35ZUrbVv`Yz$%DT$j;kO z$wbDm#_4T>=<$}reb3^RvjBE)jvWU#+jI&kP|o{;1l#vfY+11zflS*UZqL7ca`skC z%Jy}$Lxrph8Rp~kPqFySrm-*!(dZJyyNZL%c2cOPMOg<|Lo)|uP9(V_fQtqrs$ke+ z@5pxMsq(zCc;m}@TxG=4ZMqw5g` e@`Y$t9ZhDR790=AYigS{Coz zUvfq8Ly}31&unUBX`IE&H+7VQva`ieCeQA+^|D9V?QgtMvCnXa1zh>nOso4Wb1;in z1EdIzA@S?EBh@A9*Jvv c 6duUUS36fOlYa=|{6?R{q@O?+cV#nz_Y4OS8T{iY{`|q$?%!UMKEYXS5|8I`)5V z>IxKbLT)*Kt8#~c2F$%PkE4fiy
DnfHABh>*Qe zFGIdIfx@MGxIoji8-Yc=R=Ap^tcN{XW-(;)!%XBOwAUvE4q|VK4a{xZKQXKP`oduq z*ZC}K>bb^@y2%uKTk6%STKN~W>5u7JBPWA0?bsjtemfoe>DQK-V`c7QBj7^te?R__ zYF^)-PS|m5ymU_DQF}pugZI? NcEeGJ5P;lRMy3Kj5ke5nogFoVjhe5 zM>|h`9dx;V>LNbX8Eev?vGUyJSCb19z$&&h!Cd(X-g$Ss|E_;}4%CkSPLw5K;rzD8 z8s+=%^Bz!6I&0&GnHLkr>pdh?y-KhT$LwEnY{MlZ-F| meEDqDD&HrqEhQLtGa zTR!1F=-PFAJYZ-HeO`P%?3v;G5xJ6o)yyNqXNl)(Siy9iyHshCSxJg>yO7kH$_uxA z8Goz5C-=W)tFz^|IKARTN045YnOAsIeIF-j{<>4PC=#>jMPv;zzVARIM*Dcj9KZ}Z z-VV%Q#agiBzteb+9_ld0r4{;fFZaEIXs^3|p!0B ?vN`TPl0^X48F{`O$5 zlIUn(B5!e-vwgR%!+6BSzsmO0FM9M$-MtyNEi*)l{D+~;`MX)e6hR4|zw%UXa})Qo zRHDCSMCPW=HHHQ<2)iWZ*9Ke~&*GX;#Co@Nkq`CP8zQ02$irImj2AUp+^oi%Vk$pG zr!cP7y-EDhb;@5E>_%~dwi*1+r2_{9^29gZz7(qMrNl}HzEZ2mmX8HKhvH;*ihUeL^VI#HochZ3-0p&ZguMN_R-RvYqoh)cDb>> z bureJzaZ0u~{((e4ZNjazFBJ`C4~BY@=DO7itw#uX zT+UzQ!CmSJ0mkId?L8%D)2+E$ngl&|!XTwFc`A8Ne*2y3P#^>w6tO`d5^_p602CVb zvxiC|9fgMt@TwNX#1HJ0B7kln7$)a0hJ^~+#|J@~2$X0LQv6dRjO}H-bjhDAj3T9= zFVIm KX;AI{{93EKFRu&;20PSousgLsIdsl`mqgP?OHgZvDU s3N#=V?@n(*7$_pE3h5<&Tt-C$3EE@Pf;+XBr5uP6Z04IU?^vN zZPzOa#w0zZry_|#RN5~wXd?k>34La&@`g@WZ`*`4*soiE>Jz#L1)eA+(eIQQEEZH% zD1#hw36bE?Gf(PzBp bp^8^SNWrR0T%cTu zrA3JByXFPYv9}UmpMDF_7xLs-oz_R41k`-R2YxHB0Pf2fTL_-S{5?J;F_C)gl9B1F zUqo5Y%olr&qCztK20sDtdKxBU9+nj(wT1`&q|2v`D@ipQvM~{sv-9RyHqt2m?0uDv z34HiC8q(rpUhqu$l6Wg3iwD0EqJ1agar+_%YxPU_A=MC=sy5vUpem-d`j%(Jw7Z() z&GdHo*@xzp)ZrezrTUKp$mQT!{h!#FY*sec8Yx>-C)68dWZOr9vNn&PmXx?VKljJu zK0ceDH!gmkZZIm)cvtqr^u*0azw>@R370=j)v*2Ip~+ig`XO1s@yp#gm!~w-j`GP` z`q6>pcU}bhA=xg96}kFN*9)8-|8fjn+I>Nd(9bVWuk6}?ZtKzHZ3)sKU%fn;&g1la zCWV|nI(4HLyV8nG*U~xt6#aoXeO8y<>QVL{CT@)ZDCe!Um$16SJtEMM{BK*EcoN}H z66}Y$)|AayO65^vFtb7)xsr6JY^#pv(#k^1oifg0XLB|9I3*cQr891#4@5nRrheYi z1vkhCBp^Hwcu mJ7PME!0i<_* C$sV<<< zIVt189ccrtFh H({;j9-kps~u)Fqs^XqZjw;R}>fMA|Zf^4jU?A z%|rXQZ>Td4CqkKfG| z jHV^iczWM`+Z!n|cOJ>=hrXgr1N%wm z)t`8f%MoW3B;Q{2vkzg!2O)OSJu=!JspHvx&iwFIW93`1v=Dw1G_R+vmb2r{tn5Ah z>5*2Qz|-+OBE%k@lBhksoS36?z{N-LZt&3!FHhJlRYei=ASY8ii2B=PfNXrf-yD73 zqH_saNmf5Gb)s0nhD)LEe5fAXi25B}zV{?kH&i{jP_AB3`I?fB|6&sP1*MRBsH{OD z(`32Itq65ugLdeY8*sF3LBo-c;RqcB>6d(JhU;S3)F(lYelNUqg-*g3MkUTbR>mSr zHK0b?EGEHSgExK|!Td@^?R#62ui*N{r;~NBNS)0uDhx`4*6+aGFr*AlAgJ_GDguKc zTC!=>)+l;6Fm6Fx4@n-9-cM~nNbdrHZ%v|YpBK)CR9SCk7Qd5aOq$-?zI9fq(=j#G z)ZF9Zno+JFEO~-5%25yuy-o6r6I~=yZzt$a=* fJoULeX?klx =~aC$9WVzu_h zK=2`a8p3GqO5=@M;6Na&NqoNrdFJ=K!i(Q@udm&Tq`)*uN|B!rbr{V0Ymm3yOxq3> z#~$rG$lsXmxfbS*v-uVG`wm?JN4qUd0y9Ghs{&_*C{VaEFSu5UG@wS&G{!{nU}tTn zPR;KM@nTL`5c|?wIdLo*iUN$N*K3orSAfZmg0(g#n)#a0g3n*Bp4FN(iRHRyuglrV z7B%*YDjnRHnGK@WJPBKVjlb0;x28LS){vS2$QkB?Se!o(89z~gO_%~8(TjI#MpbEd zTZ7n3@ne4ve}4%h%$So=akYl-FYVYSWSi$E>%vY@KVDkC=S1Bt_+?Knoxh!T!=&?Q z84dfxrcQb{lfd)mDG)KQmGz{#AyVvS(7k{`NlBIoZI?Hd%j{0BKJ)WmU014A EVvILxIAW;FaO(6yw|yYl0E7VGbczvZ#lUM^=Tu5sXr!1})AQ6eMzixbz^ zqoL$zkhaFDqvxN!#5#21y}N#&(iV%{p9Y-1{rLM=(_%(_oodR_>dyr`8BiVDUCMz^ zT*bQ|_65<{A31V*Umtju(hmo~(ZFK2B69C{9u~t!%l@MM(Ofy@P5Hdlc2a9R*`COc z2Lfze@7bbgRvfWRTLq(qXw6J4h1u0#ZWzWEJQJbd{QOPRXAGSn=x0$Ayai94d}oA3 z?rt!KrA@L;1V7wx=Yy;~`Edsqr1Mn}K4_(`Od3$9_`BjTUKVB3Aj}m_MGxAV(pH*% zI$$T5W9$)cZ8W=(Tp9?tHU{qsEv&d9(KRz$9{j%Db)}woQ?3i;bxSI_OQ!f A;qzqwa+TLlwamZc)f{pyr(iDB!|1M-rcR4 zEUmHD?ZnbKJ=k&g@Mbx0kG@3DgZoNwX9-dbyn$Db{{3og+#BQK9@9ppM|>Er#Gc0s zO!6=Dpxrl3R@ezVy_OQaR`+|Ys} RISz}pO&JE7o^n7y3f0tAA%DLxv8S<*yne@Z_^RWx2ODbPS~tS#UG;j z{8x##WgnK0faw-^P0 jmVkT5| zItkizYA%=W*p3M)loa&vK68VTpYf`}d&R`U{wxW#4+Dg?*R|g}`=9dEhOY5sCZMX- zO5#uho%KbbB>gl$`^!Y@mUv!c5Lxt}mDjd?^77vwl<4W5G+WGoD7c{g6>S0!WL&g2o25Ln-Ll1UYJ6{gnRoCnd zNgQ|9F!n3yl%sk0n&XW#O)4{EXg{shftHn85)sFv(vqz@8-!)UgE-PvqWIKWlGFvW z`dIcs>@A=+(UBNjtyXsKoleScD4IcQ8WL 4M)YCgSW>ZmLg`@1;%|b6x`H8 z7sFpA=qAkQhuXArhSXl}fYgsp-YO2 Q4vsqtiF_kX@mr5RgHL;7?QfGQ2x+fvIH;kW ziDhj8aV!mLCu;9BjwBq{?%@i__c3o2SU#xg48Rynxjz+&;voB&MK^dV0(4kD>IR3U zpGVtXkW)%y-=tGCj_T|10h@C=#NGR7;xU#rAG9-ped<^*rKHV{9{p`L`k7sL9Pyx@ zHrlE|i*_Ixn1#uzu}~Y9#{cc+4^1N#k7SXh7B0ll+LS&^7T{q}IYq~|jz*HXQ8B(n z@Lo?ub})%2t8U Pt6`o**wlg(P1`yVX^xW z4% #($?BG68;2fG79)oCS!OJL8yP9)VgrnA zw76mtnC!Q6UuNh=%a{;DNb{m5Goo%G3*G2^E9k^5IHMj A0q_ (CYANm(eEn=sv-$o+# zF^4nA*F*4#u_@W>@s8g(JsYxa_UmKIAHD2{zxfamdVT(|oYlKx{yFzNEgj~B?-LY3 z1t(>QEcl#}&ir1iz*kE*3ZnIVP*pn!1R5qBT ILREVG$CA&)|->_ z{2@p0deLD$!=f19SFN~p!-c4pF9tWLK=}ZjFN!%zb6aeFEhURAf^%MJaZSmzUT|zq z0vIqs04 $Rv5g5;5)1N+ZZ}5b#Zpaa@lh;=#@_DEU!6M>&?Y9z@=bWh=)T ztxs+jgE(5oSyA=T6Jtz(rluMIPfrk;WT->2Xu%jMeKF(LahC2;bOo?fX *(D{5(rG;&EUG3YQ3UsCE0F+lTMg*3n`XD`Rr{$8!8nyIB7cl^y*L7+>lh}8*$6#&U#;ZH|=SWyrajc$yN ztq#vdG{GEJscM lk9eEJekw`?Rc0+! z`9tU|S_f`vltiGKMMb|5%Ku#d^tzz|v@<62#In^bO{6C;_BZoygGrWhd*B3XcwF)M z+ZbeWY+`u)mCdL}MXYWD{Ed-a`uSR|ThvJoRf;!q8lWoNi2i~?jOyZqsX*HYjQSam z;&h*q&_w|Cxrq_ZzWvb3^3SvQ+-kJ`Iw~@glrq_9Pxu4;*u^3lnu37Bi3cZfui~R7 zml#0Q%sZ31mAaJa^=4S}*?D{(?LG_)b<%F281qG@w(Qg{?u8mg&@b%>zs;+&)k&U- zeNh0k)@;u%jUH*@_=lr9m31OV6Puv1Ir$C+SL|nEU4na41HX@u+Q&;Xty1Mjddt{x z*G~L$sWUJfW%=;Hl**c{Ygbo)4gRO^p;BKpl|K7ER`;|0lYrZXKL_K MNC-uMOM{&WH4sr8UOY)S%#ma$O%aDE)&h?$nFmHfk-HBu5CG9O8qFSV@FHP_2zhPG5@dl)Op(8H zG??#1`dFL`Z?DC(%=+PKY022V(~A4wjg@V$tDL3`)uaYQ>M$$BAR R*t+vh(fb=pW2;IzCZ%Uc=FbtHK-zCOud5i|;HK 8N{A1iPg2?Wu5|8(FuC*A z410r~JM_U%zC=WiCTh~yGxx>N0?(txjV{O@T6{W4ojKTy1!5m&DL;!kafyip0qH-E zkEA_zxT7e0jG!eKR$n|w>Z9K4B43AOdpe|TKo29+f25dvjf;cAuM{XIvU%90{CaVe zdb|MHm<*;VVVarq %=sEO%H--QgLu&f;lV!f`1fdZpDP>*I@U z6oTa3tBCOh-)v5%>cR7|MC&;EqEF0K_TQ2-sB`S}^MH%({0!Tt(H`>b?`Y18GNw%O z7A?+9@OhLM%BSN`PD|^f$N-G+?8PqaP-oudEeAip>jA{8ai8b!<^qT_u lekBqFeh{hSG0v@EB~};P0m57L;ui?7SBg z&n<^}8PQQX6hy<5U%X_I4+OJ6l#GBU;e%;eVE030k3?qbE&F7x1;?Fr66E?{lRm g7LpG|7l@0wYq<5#rG^hJ{@E67#$3j7hBomEk!CzW1Lh4Ba zp4tZ5=-XuYi!hKASx6e^t2PU9T3}8Iz$-yq4Hn${$B<0M8n+B{H6DDEc&yW)1X!Bh zW4vOh!mI0M>R5F$fidd(z+eWY?`|Fom1#dVf{8HX<2CaBUg3bVzAWVpkV)7_1D|9f z`5uu#>!)op9LR#ruNnxY)A(PAr<)ODEFy!cV MS)p?f*Xn#BK6lQ=APDDePB$>GWwj- zm6jwEO+pnr9GY&9Q>&V#l-D$R_}a*^H^a_%V hOECsv#cjAHe!oG%1XNknjl@Tl64J^1~HZNHAaUtOfk$#7@a zkS8oNEAo$$?sw>B>CbYd>vuBCtC>5Ry&7&DZ1KiZV ;B>uW@AdpS4WRaG#xX)gDa|HO{a@S40bw_D&JRX;EKY(Xn XC?S-t0R#VO69qCE*t|9k@$9H15x=|G9Q}jC~r+c!5`^8lE7B6 z0M$z6i`RCy*tq+_ovYnXSyUyn_oxT(%tAy!RhL9KKBDl3C}}Ig?s{^(0mN;@%cDkY z_{Dn9O9Cxw1tGij&{SAK;^QlWH IFHz* BNZ{RH#Rb3Ze4?sKlg3;Mp5)QH>8N`#J| z{Oh=IJg?0dd?fC(;Y1HpjqDv}#Yvw~CT17Ut=71LMdpG;pQU`IAM_R(TvuLA%Kaw% zhujAh{fPyymT%Gs3&>v*jBC)g7fxSlmy0?NZSq>=C6>6Lau9%u`b`Gzsw;X_%mXcY z!&r8AVmIV({7fTG-_%YGs&|W196Z>f`oSa^Mz;!0)+jUgP>+#O6nYaJ_rtEJMNHPc zk_3hRCT2yF==3n$Vx=?JbsK;Wf{Q%|XoPu%vYOy^u}GgbGA275*ON3lnWurN%Mx+^ zRL&!gcmS{%6eK%ah*448vE|N%p>6nLk&G^~V7}l7m+8dz409ASKrqPofJK=omI3b< zWkTM@TT^a7` 5Jk@kV20mX0XhbWc6A&Rc~# zHE_K5=eD|@#;C5#yL}CX?GhhnB1HQkbkH9!)TE`(>x0U!%XlIylmu0S6l55KukOp> zp_acmMuJEmu)c^$q*q^$&ZtQMP^2}LUuI?H$QW^=>YiReIHKLT7w9;NLYKV1w;GPc zaf0DbC8}Op^wY3#3KYn(KK9S;Ii`+(KfV;6nNL4FG!FR0-kZ+P*=ZVlTyfN55PqJD zeL~M9N~$~trvlXH5XG{fHGc!?;{Wvj{Go!dysI2_Rtv|s>JNGALy+kFn^#SMfB0M* zn+m}?=u=ggs}DXc(c$f`5w)2zr4BbVB4=IA*~UY%inYW4V<-b&l19x>u)>TkBphLG z5Tf7T%75q?!);6#- @$`MSW z5Hv%S-!Ty;f_yxyQ0l9Lcx=k!zf=6}8j%lfXsZ)%Hr&em;So=>9G{CeF#TTL9sQu} zG92~IRZe#g<&yp=3^OB4_Gs|gyzIG#MIKixw}LgBe(^u6wB$Xg1^H`jud?9A=l )t>FDs+(>j2N$}fhN?RjnrIk@0$6{Yx z7a!_QQEgmS#D4y1RGhfAXJSXC-yq1mySm%Rl2B*=Up)ixbWi`)?X*qZ!CI0hXnO%z z;3>H-cXzRm>KocxyUHj#J#-3Ax-Mqs`5j=^=UEGuI}V!)HTd)6_#emId^t6y2({!U zC;JI*>m0o5IqncC2h#ZIJ0EA#!@=p^V;(HSl%&u&j6a*C`I8CrC;i_a-GR5s5uF;5 zDCVdHCRHt#Q)8B0Hp8WsVw{ZOZ9lc#aAxd_VHkd~s>}dfL47)*B*?G79 Vp%5| zAaa<67N9>Spgxu`C+uY;tT85L5;X~tsG&&V&{EPo_`gS5i-)PLyXsSaumjFZXkyEF z^H0bFNe8cyyxjh1VyFhuG;n|74`$Hsyh@2tR9RQX)-_ZfP$pG101mKxNU=mFmb4X) zeJ`LOg%>C(0`Q-Oi70@%Xz9)28r%pN?^(q4!DwGv&H)UhwI;rVYorE9pMrh}qa)@B zhiP92mua0*&gQ5epBbUqo5F1HZ?%AmEv@=j!6BORLlMDmb)p<9G4C~^6f=@lb$S;z zqQC04q>ucL@{*AKfBe>Sm9u*A*vb0(|5PXP6=~f;9iTF^#m#HD=WEcru|EZ6&AV)z za0gyTb%wimW*tXswbbQ54v^pJAR`WTa_Ak@l%c4c=+01|3F`=*HZ7@8mnvH4&_F^5 zODno!)%!V~qey)V#)@{?()-_VHaaL+Z|p|Lh*~>JK3!KuuR|YjNPHN4pt2r|>!i@m zG0&v~U1EDl$F5#>Z(m?E{9{UDKJgb9tv9- }H-mR(cRn|<5dY-*%{XBI||yOrK- zMDaLuYvFIYo-m>Qr1R0RsWLi6BTnN{k-B-zmU&jR)nwY^)UxVjE|E{sK4M!g&@G|; zO+(iip|1n=l2)071`f2_BIiZbe{(g4HLXfq>?>oe!?4`WFn|Yy;Ska@XMc?<($|9< zTJ%-CYPPj}S?LzB_2p30ET%#)&ep1yb6{&LaB%zi2 jf9ZNy?G*)*Tz};Vz zH@cG9;qlj(J~2+<^c3&pX_vxhFWq0RJ4-0KM5(xka}R<0UjrB;`VSQLbh}~XycYb` z5oNpV>(y!jM2W}l$?*6{uxm=#TuK>r*nUZvIo4hH{SIQU$RTOhsPUJhfd^AKNjqm! z+(TQ%Un{2kHQ6sciu& Cc4gIKr`bYlSVC#Mj2)FK?fxvsPC-FI-sv2q01A&g $>~uy7|!%FYEz&vaX0*pdn4b=5KW$g16^R00Z~xp+;B8 z#r0kbeCDqI4A<>EE=eq;?&B9oQ#;IBs{`{QVWyaYhl1aN>%YAe9E|bm7p`yM7O>3m z{K^k}N)!CSUN_h$IQ;c+uw8Iuwtl4jaL(3CH|fA*WZG?T^HWT8#`CX#fwTc(0M` b>3i_Y=&}uyGi!DZ2lw8i*3z_5I*y(!@ZX00?!I&;XcUp%<@@Rv!p& zYBX*d2ybQO8SHt5oqH|tV-}9F1Cw&XHc-rx#*CdMuo5=mw(9M4D71?(1a0!SnENyn z;x*nu*4G(9yvMc@!b{&9Pws?I;Z3J$p7Y0orPP_7Rquz1wkV{sajc=IZy81Gvo? zJAmS#>=@t$pcsJA5)Jv;K>V o9U8#4x!AX4;J 0bogOC+!V7ks(yVwJrIn<$vL -2>k#0?0PaYFSpJiL4RF8vr`|&xFrb_R{Ceb9d~MieY*%XwWb=qP zr}45~4CnBSwp+Al&>v^opCH3;Kkt-bV}kHfi^aDIoZw$5=nJ#tUIhGk<&m&KA^QZe z?NNUmKeVzt8qVtvdLAP%cEq3T&wX%qo+d^Rf+lwLA|O4*7i~?ELGyh9=
LI~B#}`5c9Cj(4C>yLk5s3XN8hv~ z@tTDQpC7w%0!%CG)prei;+bMRNam0e!W?8LA;KPgLQitOU(`sP1rT5W`{zv%MkEIh zM&l$J&kwmDfkAwO+2>&P0!~Dlyzw>Tc;nR#ni_6Cct38IAS@991tE18hZZA%i*^it zsPA>!rS6Xgv5zNierUY<1~wjnU%|qJg6Qx37!fS>BK2u9FZ!l02=rQCQXXk^F@O(M zH+XiUae>;m1|E(9)<1$|Y2G=oNICMfJBmm-Nw+&GNjYn_I~xWou>>Wfe5l*da8m5y zKybU;D=F6>YNK57i?kPoq%B^uzOCQu)GlD6xoG&HfT3sZ@j0Mg=R-nx<(7fQ&Z=L3 zKgZuxx7~OT5TXHlk<9taJ$@g`50`}Q!3VcuI6vw(%r6K{W*(j7S&X0`Z<+&?$ghv7 zUPx&W_yMXCW{*OfxmL7cXmo}c6*EkDM{e6ML_@h#!bW^%rq ozeC(F>akPzA~>vI$yt%iGAG}n=BKT-5FOb z^QNlvO_NM~M`!#;nOOT^6;-q=i%(3T{-{~p;-y>b0|cW@J>(EZ|KrHk9ozor7&8~= zbAf2xKSukIAaT^*(fzvyY=cM$|C~2sSX=}H(uE1NS^?1z;tULjjpPD;gTI9@fdarg zruOLKl2Gl>(#!MvK@V1X9pWU2J054jr13PKF)Y2&a|G${2@t5UU3`cA&J!^dxFGx) z0y-26<9N#Rs^dIK_z`d#@eQwHOudj&MpP`*NmvME8)DkhtQ&c1!HcZ<(pmRWuKwGH z`Z2kNxepC1a*aD58c%NHIzA+v)Tf-ZG?U1;G@ u%MuL3zoCFPet^wF$Lrfs(4uPkSQo6eC zyloDp2sfiU%VlqfM+q}TIh ()E#t2h_ZJNHWQ z=j+~|$%^yYz4I0?3K@l)Rf8ltdKZ(=@X>(5j^7Y*TvZb=a&yyW5uiZ>;FbXPhn-m@ z=pU*`*zh&Wzb85$MRhJPT?{goBj}mQ_uLl}x2^uIaBL|3d-UYGyz#}g!==1sk8EZs z8V}$A)qBVLbhtl$wq}j7eT#-8pOYXv3NJ3Zce3zGFz4Iq1gEVvJ4pP3yTNZwL*Jxj z$8vsLG%kw=;xxCce;pWDe@?QifIl4l0!N8}RH^2XAa0N1@7EuHCoBEQ{`jX@>9*?Q zZIjY}9UuSusPy;S$G>Ar|K>jaTT!~(`FMAtguPKhW{}FHpp+wV$hb{qNHqvx&^z_N z(kL_pmsbLp7KwJ!OlE>0Gh`mJtHZVs=wdm^XB?0lY@Ymj6fHS!GJJT2$hg6kUhW z4uRhir~rQJPP$9(SbTXL(`Jm*>*y* 8Lic1P0^dK;Ub5!Z4@Q2K{ zIM5L>Rae^_(a6u^n6}e|V)+2mPMsDgVGgk?@nCn`wSF#l=CxL7xXVaBDWy9~S<($g zDIfYfap42b%ufrDuEc5TvyhXOPp@f|ik?5c*qNxZ_*nGf+0Dt?w``^2moNUiIop~0 zxbhrLF5pZ*^fumnN~jxhLZ8B)X<18DxdPuUiQWiW(2k@G10Kg<19)p;Zw0Ntzpr(T zf6UKZzra^FS`9uDgxx)h!y&?oc>?d`u(kxXapTsdupC5`Lo`6B=2uqDzgq&u;g<-I zp3hkaag$OydBN}LH;L~6+lZR4!%{znqw3z>n^-F~+5*0SOP}vmGF49}N-YLpMue-w z7C(W&l$)S(D7k3k=w{ZJA<&LdTH}ax2`aPiNmk9J017J^mre!!0g>Uvos5o+be% zmH|48tt}r`S`egoh}7zgBP+q8PLm*UHr1g~2C7{@!6nv9YH1w5Os|L4d6}l%+<3Ui z+I(vuoL$IQJ&}Xhx>|T~!3eu>*id0zjf^DL dbGi@-Tp2kW38cf<0(Qqqz4?e~%bCKb$MZYI;l$RvrE$UwyXC2N znP@E7)_9g(yy1N{9ly-HJ%h+FDU6sEeSd<(R8xm2zNzdN3%bd8!NHX7?S^bZI>>PF z-JUgs)OG2@0aUcD#54EvmV<5XaAE0zKiet8axg>``7o3u#R5bim}1jTXI56-%E(&1 zDlvrLNm@buT+c?_`$r*t)D9|t&1(?V_C}jXuNgH4^`eoK};Yw zB7^?U&iV}PVOjCuq`A60SVf|OJXRuY@@)f-lK*#`rEk3deM*2e1ezG(qOxM|=VGQ5 z|B)r4bz;|0%T-{;YBGSHtkV77Bw%D| -1swY$!gHs0ExTE-+(#;>raTl0Su&D0iO+UWRf_TEI%c9 zNed)#q6 ~1trLl*T<4|6KWKK@cAiv3ZfTYAj5QHZH0 z=vBFm9`@eP4^nH)*MG8aQc7=DV{r9w#cRQ5l4n$(&mD)~m`4A#g{rT*Q4+<)?6(*k zsWML27gX{B$}?1RivGIwu3OZo>8t#;QrKI)bGme-H3&CRtx+$4(VE>_63+}rBCama z)RGU)F;drL>dcQ4_^+C#=AhY~uiha!%8Gm5#V%0D8|ry&oKoiU!t}|Jrvrn{{Ajzo zxgv*ovDB#LBO|AVf3Fu!Gcwx`ozc8>@xCFdsi6%)ouBj@1J4jku|SBXqNk5!lYl1W zC@=3|X{@f}yjp`DjrnAvk4@!4{b3f(2aJA`Yrd|{pV92TtM?}_NStjhw}R`sD>ijX z L*-g(( zp=cb7AnK|w8$ EuE_UYir?2tMgYQWv=s1+J1dCf`f9e5-Qe z?^9oNpFR8ho^UXt ? zG?wF^o4#+}RAHk?31G%&v_dKR`cBh)>yQt^i2^m)0W~{+-Ah`mr<;P)N)!t{A7M}O z=6cQDAyUmClF$+md$>o4h6)-^DF2f{^jb?VabGSSAK+;YCvrzYXmF9UDfsW-GO$AE z)mVWvd^C>NX@nbOd$BM0rhAR)gj?Vl^giGZf5VgtRY0%&dx?ZZ)E_>JM?(Kdz5CO+ zzpYls4=|*BB5+4XdWSG5LoG1`&Zoc-SRWv11`%@ufHnvXl}Q1Ccwe^TO=DnqmK{9~ z%z?RMOEs6jfO>4pW0F`DRFMUQCv|!b^(t8vX(IdVTj$qsE(ikoh4&jL(Wr {b(!Xrxx0pplMYg80e}(%A}VMI&KoPl9zW^mzVRvwJmN&{ zP@Z D=Rik& zez(NwuSc#v=KkG~S(jb5n^1y7N{6;4S@hiYe>7`=scm_vT;Kd0%i}JPO3Nhg**4 z>zBr8x1i+I)8Ey5jhBLiOIC*yDx?5I)_ Ueh#&)gghPHe=LWFXCo6VBxHn0=*M{smqG!QySft;KGwSc1H{^jZl-_NH znHAhh1iAGFG4cT1tFT9_D;ldXzLLwR6u9jvlo 7G3 vvi`5%$c~-RogS_DVZu?NX8Uf zuJ{`1k!<<|gFT?DHs-IE3RO#5R3noZID_*dFX#htnWjZNNjSgwE35^8Q6_Q_l$7LH zW~I0?wkeQ_OIZ3J0u*W@x=eg57^LL!PQyFM{msSC$x$&j69g>i59_3?36W`gGn@|v zqDPbBvC`*@fecnD6Nz}anrF0#0F@HB7%TJ55mXed`f*g%K2S)Scv>w@rD~^gVH6hE z1d=+Zu#(uZ4SMhz0c@Yar7$x-5{6enhME;JM66);)fr16eoYjA^oeGvkXEM8J>U CR}Az`Qth4{gJ?o&^$R3+TUQ}ivVe@; 9&7@76r5}NwkMf7VLqwah8%K}hCo=v>UN6X+kjfzPJ(}1Y^{ATlXD SZBJT?AL&dS&hqZg7nw%Vo9FTu41c{_P{z)7)3Gx|4Ix _>yvQ>#|mAoa0r9qd4BW}EkOrLMdNx{tSk5vVtbx=&@( zXU*Jiru9h802GHk@Ra6$W||e;{^)o=h1i|K)>Gx}5r9-$cFkFiFIs^Qh$x<5bg{ZT zKU4kEzO)pmUf2Sf&P{0QDrNex?J6U`+mIMNk-tV;psP}l>d)>!B`29v$n`@<_B^ZN z6hyDd;J*r$FjTik=-=eNv7#|jJI}-ur4Jn4>zfc^$ao_8yY$6vRXM+=d|H0U&$4Km z@>jo+o~QS35F-#!h|B|)>DYb#9NGHF(~rp=ND#W1 0*jLE& z6!`C}je_Rf8o$h^vJ78@1U&$VtxThAciVfdYO?mm<<8fsa!sn&EZnTnej@k~g&HIe z&_uoU?}9geXs#JI{o;qt^ycI!*^3#+!z0Z$3lRBoVZw)kGIqg6CfjnmyZ(rmb$gd} z|7pbDM3_Z$DBObD$+m_U-g;WM<1o}&NB|1No2vnE`!E8R^BNFZKKz-ACW-=&wwnh+ zYGUnDDF5+F-hEr{9pA0d%J1qc{u;9_zJ|7I(hRKWJCz!LJeUpFKSbS;Uk?aHHkIF+ ze bcid3REiskm~b2+ Ci#Vlj033$(t>6{02OH5%AelZ;8I6B@&W4g5#_jWm9bGB539U1m4XeJb zKVuWz1AZcN!%olp1e0c0X11QZ+%bd&+7lWL7w$yA+*KL~N*7)`@|2H#xtIIEB!T&f zcgJ4E%YCQAJ$>d8Dq8 6?$ r)ILcoQsjO;tNvfmX^LYugp@nNtzAAZN= zt?Hc{%;_`zyMjeAuDst6lf8plTfK&T S8&bRe_o|G1-pdCZQwaUz>k@I9$4H zudEgUuqrM+GXP-xBELoe!hTB_0E77$M=4<46DwB!HIY$1>@P0j?O-aWZk|FMqT+j| zpv{NpSUmB{;amyNg`PO^s?kEp|L57u&=GGSa2YgOMb)?vOh1lc;|N!dl46JEXkk_% z3}#IRP*E^WA{ Sg6U+uj6`wo#oBt>eqr}rDWS36=l|XQBamrc{S-yO@E}2^ zWqpA81(-@_n)hJ^Bu8$bg-r<5mUDGafDW&liG$ -Kxly9ZN3EC_ 9Zf=9jpRvFu4&j&aY==9bjP^tqV~rp>CYz>=%1DiNhZ?##r* zD%Ionrn($vGqR|dg=gH%an5Nv!b8sK21UOq0#lVWb6pGzQ_KOPpQkB_%f?Wost73( z4RTO%L8~dz4{d;fs8v!m!%=Ow!r)(VZbet6GFG7{0O|O+CF9HB4R?F*@mVOG zEVt0w3xu~FO7Jgm!E$$R$fK(0CH~{;vf%!zSElWu6i*H&RwI05Slv@2-fX)^5(q2I zl)n|Vo8|^tKe&qUEGO3WYWd0>U;q3EUkRpI0POD4AhkN4MbJEuw_B;-D~fGUMJN~* zHD 8{hbY9 zD2M71{b0a$VU!t57&NXzQphrRt)feN5A;Ju5KNV+2TeaT)PFL=M&D32SPh4>y_X&o z&7N^g)(@U{rHQ#x8cR~31rd3T`$F-eo&_%luOx>2V$aOGs(IB;WHAy(Vi39(6F<_i zfc^a
DPTQX=tdJkz7$7d}zKd zs=UM8C79LxG1q((MK-48?Zz%<`cfaP!1^W3QON$qzw4D1^202M&KIKPZ0G~}*fHtN z$UGEhYdA&0Dqk*H96;}g%u7jzi-d*~?7sd;_}DL!abl$xI<2G$!?@9=&W{FAW4aRk zo^nNw;EOn_Os4L!a6^{0bi`Fa1>6yqe{6Gg2HEUWPeWDS(ft50S#a~W60%O~YRs0L zEO~EZloIFw_$F`OveBE0F0HW`+P1lAQ5RAHcAT+TjYRBIQjfnE_9yfu&D>z5BZ(y% z*oF7es~v*yY%KbDsc9bYAG(54beX(=Ya%2|l2Dhi!_=o}I284|NQ{E%$h}P|4=>G6 z;gRNWRF9Sp%n`0tmP($2ep8Cb#G=`)sk=xCA9D)DdjZ>mt!StoN;=@j)~!kxsp(f8 zpdjP>Q9xIl_2{X1K3T=hB<_fN48OPMV%~oRj*+DO_kZRkK$uP>h|Vw0EX|hERCHX) zXHF)@Nguu5{i8Ij7Oa^s4RxqMk zS z zY%SbUs&ZF@@#OLiR|S_KL#qbWjLyPG-0eahnd9nJE|9?wTe;>!jsB@oGyf_cBc(9N z2Q#;QZJn;~nsnl=K1$K-3(q1CuyIwkTBp?46KJr@0+8L~F}Exe0`f}z^j;2J%HXxy zC5@(!YTe7jQ*eR)68jNm$J&8Yu= 8#2`!)}xXFC{`c7Sd#(KXr+mZ %vibBy!Hf>YeP;tMF_ZLR_7195M3b|gDs!(YG=O}HP}Oh>Aw6Ie+zognTm zmR@0 F1~t*Ou4`4+gkG9xn8qLh+c;*#m9 z9N-IkH9seaUn(5 =;5~5`7hjMx zUmZRG@jaREE){pH*UwANh!I*Pz9DC-X9CoIw?;|5%ee#tyxr1aG>)c3jIKW~%5WA^ zzg}o`ZtR--)aZ(Dk$-v+=wg2`YfSa5#WLfOGQ6FBma-|-KVkUmR;!#Q?su>M=$928 zvf&W}StE|0`gt3xZMTfsD%;vjofv?7RmYsY1=b#r>83ULgxgPRsog&jxc#)x{O;Sb zB17mGZS3~)Ju~Xg5=45>JQp)=cRV|>R-XH!FR-=ZycDmZBwN*AKQ89fD6EX@Sh9M^ygZw z9V0f** 3Bv6@P@i ue5ny&dde%@q|+hQefQlCC=F2`6DE^m4r-a5YoJE0al;k z3}e|G8{i 3B;1fHv<$m ?@+KQeHk6mQqpr&h|G)L?J0 zvl`1Tv-4+!rdGH=?`v6y@YX>6e}NG8W t^jcR;PWh4el*#t$wL=(BF8AL&p zC}CJA)`{$%*G2OROQlUi?H4vcE$R1$(vRAVGBS;teAOwA0%hme$z(KZn^SFGZ2U}0 zm2LSlM7HuxU~J+%FU1pgIt&*zMjZu0+4ZOki5QuWSkMR3Fo*{PNVi!`gKehQJyLK3 zy&XasQ@M%G5(};@z@p#-vg9DxQ>2zHRw@Zk*;<*}V()@_kJgfL+jY^O9&<%mJrPZ# z?DR;|!q$@PyXF(6Y~U6*`5y<5Ahjh1#>q_Q9Q!bpu9aV)CQ*zpo%2(oYztkx3aCRx znJ^@bP91^}1+S|*@kRSWn?WMYAUiTKP5@PCV)wubqU9l 5IDN`BqhTF &}@}raiL1^lS@@f4M #i%8xidQv_o{Z0Y?E$KDS3)3!T_+DE2RPjZcKhqluX)DOaCHMhP8DDJ~3tK5o zXBomln}ifp^QTPmaXHOIS#W6iEuXsl{(Vhgxf1_dRh_p2WN)9R=5w6osegZ~uVZ$s zjktuOJUqz2rw@7jat&%LY^;@xYANP$$Tby-!Md=4#eXn=_F@cwkyax`O>J*WoK~4DBI$BI9Njic8Q-dpB zZFvS%=>TP6U|P}4ZhmQ6KQPCA*CTz+P;GsTSdI86lfCi;=_#O*-16c*Zx^V6^HlYa z1L6fr4&{s5+mPH^=OE@%a$EzMMahzKrm2GgPJrsy0yV>G@sGz%H(|6R{1o|Y-~yer z%uRnOKXA=1DK_xYRpuK=Al0F&5j$GowMQW(63ihAW)}sM{6{Z0O%3^BLEYNu%| T4COkjtw3ia0mUu9^4*hw zXm_NH8&%Zr=ZC5cvfvJwhE4UEUGFs=2`a?mtVIN4i~=_yRyj@vUqpF+sEQ|#k*C;u zZ%Hl|!a9ez&I) TQ|_TtO!@)h4xw@d!V z>MS7GtI})a)Z4*ONjB^7Li3*d+p+$GyZ;$el`;0iz9;7UkDlAT9@J+KJ#GfMe9hlC zo#(GVCJclR@W>5ma$4Px91R#BiuavZ_qF)brv_kn5 OKH#ap(QeNnFArq~0osR=O?d c^|*oh&B#a5P=qs$SW2&vm~{ z;$&E-xBO)uf4ZAZ0>Sj02gy2q*7o`;)ZKq9Uv?)cJR%PAe_9)vClA-5@1u|!ESKls zkSC2N>l5dErNCJ#ZP plY3hEhskRofK52Zrd4%OzigvN zwdKT6u~ E83P@a zUq2sXC-vvw9b;Sj&@MwkmTp|mJ5Huw3VoD!{#-mq)#n$axFgc4IklJ|k?T}DfBoA8 zdCP>0S_~21*xLz}>{%48zekQ)?H|4g$>j>;NfvvCHt98ix=n$%lmJ~K8OJ*vsURW6 zM4iYF HxJe8>KOfml=FM{*ZxVv^;J&7Z0a^0`f4XjZFDNhQv@ zzM1-IBCGF35iJ4s8sb;x1yp*~q gHqn?(Tl!|&4fJ>kUXuWQvny}&(;aaW_;;K z*-$8KHQ1(=nmwLlrLuYVsQu8%X?Y#Y_hszS%)LD2M%-fN=x?oNV^gOhy7!(zs+}1& zOeXT#it($WP+O3=#w$GTC2#+wqrrtWqAE|KGWq3kW@)>WAo_m?c^$n>6~A9&EZqs7 zIT#sh@?ad6zl=#sHH^`6^W26!|BbckQ+YSSyHd $p zf4Zm{(p{ck3_dcHBMNmmG|s v<3VO z2dBHMqM6yk)zcp$_=}X(n5Kwf%VcyHX|g3!>NYFXNNdhuc)3Mc%D*GmxE%N~qB16; zkXqziiN-8-gZ^1-0M)9=tGQC_4*MsL$?I24gZ|QkTuJ0&XHL6~IBcI )b zkFF`%vX>>wpHvkIt@iD2B+Z+JY!G-xL*YTtfPoIXT{rTR9=j7ZB}tFN+0n2LW0~1p z3V}CsZp2-YGL-r2>ePK@uHr$be6#_Vb8c4QG%|NwwMje9yB=;w(JGA_Z?sUvJm#AY zeVxZ=-M>cJMXs1s&zpO(AH2AvvEu;kxKrIA{l AgQ4tBI=&zi;Ccf%@aFwXUfAf-@ zZcm8z4TMs?D0_mM$rbTih @%E z(WfjL);lU3szE4^jSwkI#x9WT2E*+#iDiC|sis}33liIv2Fa8R&=VT3y-Y{0r{y@} zWE7^y{w=;BQVM5m=Wn;w73C;ADq-iJ<7=w1WLySsEhpC16X+y;Hh)fRXr{2KCvjR$ zZfa-nnKe4kBb-5CE^}TZQD6-XB4#ZaM^AC7fI#GGvEyhY5J?b;kIH+8LIVV`!ssy3 z`{qtzKp_^HiBtiD` $AP;Qu7%r;J!JODdP5P=}+M9M1`ReUzqDizHG>~pnl<+8KX#& z2?;574NgQOOuU%mXWMbhV3itHWxsOw;_siUlbsco@+Xt6s)^nI8b5r3fqE!bL3Cai z5DtTL2})tvU1lsA>UH6(N-TeQs!FO#>8}K|i0gMxfA}(nhQA4TEEmaKf{wr;r)?^M zc3J~XWX~?oG+84l1GL!5S{v_K0&?E+Gneu@s KCXQj33g2RUKR57h;4A|~|}E~WzwAN;pTGAf4SMK0G1bhefENs+FF ztNshRG}hwC40@OfWQwcr-If87pEPPoaR@2PgG?XlN?w^N2`L&I$>mRt#4s#e1c9*h zNGd8b+rXJ87IsReSH)aniHFs_gl4-!&7pra0l>YN4Gi3qTIzeZovIrjr{79Ud(qS$ z2!KDp>J~JfN#587O__C+*+&XZaV<*?pd;Y*M+f2bL rqGpw)c( z38TV_DLHp9DGi50ey+yQ 4!RTj{tk41?wnay zduei##-saPX1sf8Y^%+hTY%rP&6mXG7$Y~4=WKmsK38-qmM)>nJA`-`eD|w@qSe_> zr|cKO3ol^e7_*(f+GrwfQU&XJ=fQE`@Nzh7)aQ@<5+HgnbZ`?Cro`5~LnAW`dyDH{ zGD{N%VGSo^NB*$7-&gec#r^jS<3Z0|{ln=aFKdzwB*O4x@ZXEMSFg6WM;}>cQy#Do zSOPzJHG9@McSDEb2^xL|mdDNLK=1D;umWigbl2sDJcU^&MqP}Y7Y@KL7j}J`WnaMt z0BERkD6bX lqJM>G&ZxT!Auw0$db`ael(v4aUg~gEb%52g#hL5DrSg`|j zY{X %)1msuGpPiJlp;#E)kAGYT4_!|}=p zM^)81;6C9xgyoPi-p-He)k#kde_2>pQ^k1cis2rX-Qv^qauvCyJfUP^5PGVu_pAAl zLez#f7zx7lMu`HyZOG!QFl3_5$$C+!r#`3k?#k*}iJ$PV$+cUIyp2(bjD>`*zxhb| zA7(WVIg2Ge)$8z1GXrHLwor#+c$mq6Px-pDch$Yt-Ug2|Rhfy7U(=}XPr?;09M@cb zW~+V{794bTlV6?}aM^F @+39Bzjz!tQcK0shK-ew&uxhQ96xJEKQ8j<7i$je z1qStbXmI!HydaVw;ZMnAJx-5FIl~t3+oeJ6?C0bv!YLCD$D!i)iW&R@QKR&4Muolr z1%dvj^OTVjLZ}8ngquI%C7EQ;bfLf$_szaiH%7u5K`;7j2dmskBXEuGm)$AK%5q_5 z^{z8|ERS4u2@#rkFOK1bx6V_nQPPW>39d4v;nfdh+uz5aRS5i)pSyFbzLiTXh_Klw zZ1`OAK5fL_n#;?9=zyc~dmESA;ytVz(n4tN0Zs^1hB7yU@Qt*cX><7W$tGKfjLe~| z@js^3Qe?<~kJ{5LB59sL=3Cyv+FrlGhZ~@+vA;47n!C5WeJj!}fv_3NVSF0<`*DH_ zaaqR+X0?3HEb+4vV0(6EVKzuUF8VOU_T}<1{!xw1N{mI%#xmjmcsr}NsNTTa?+IY& z8M+-BDd~=(hm`Iv=`WxlA~B?NcStuV2%;e1(5-Yy3rH#;A}BaNet*C@&vS0h&A!?1 zu8X~&cdvJ?&+ 66GrvcFtg`Yv<9CKx&(EsYE)!q+|LmE4{5!u9Dm!Wi5SU|+ z5+3;ygxEv5=}hnxUPm(D*u#$Ed#{pxV+2AR_;s&7((U=ake^^B4L2WP=kg0vwsxed zF&`Y0K1;B ARadED9DVYC zIgg7^k`!e&EIvQ?Da^jUd4wt){~W>fq)c1fO@-TXx(=L~x39jXreQhbqkK^*5PBeB z!Z2I7Czd9*=C1#uQ>BC^piVdRo?(gQd_$OCy~VAE`SYRqmg<1JfS9M%H_Jt7uO~%1 z70!d-EtmTL5oSf{dO34{;COEu*jl^>cU81nxl s2YgyG|w#f;X%-GC%$9xh>ugyCa=qzF%TVd-fvl zS#LS&UG*`)+>KSV-ZqqIkKhjTlQQe-rTcc3&%W-Lb|kgQ%H5H!Ve6mu`)UVw|4~P> z*}8w;$E#i88tH^bwvUU#ulA(BUB^6Ke_X2gUNu4{a4Ok$yG${-U*l2d=l>p+GplzT z+*w*a*M$XKTQVP6{cc+5_!rP0%zW%LT)#9L7MNVXeB!B5y|Vl-P$!J(`{PFys|R6E znO2y8JpWd*e*N$FN(b|4RBrJmVfdA^LbnT2E##}Hd(g0kf=ya($gWv+P?eSKPl?K# zJ^6?ApTcb~(ur>ObvJ5eN^E}xY26;$yslpOXnSd!aC_`sQnj*S`&(t~_Iqfm`2_C2 zuOGR4DuV4ocA})N3?2lZ7k~b<`|<30HrMxp{$c3x>w~N1Z(&bv) @^zY_~d*=5t?%%&EyQ{R=@LS2Y(7)dlMXnaZab_78*H$t(M(hEA+T&9M>tMlc z3Ux*(f(r$FuO5OT?Cz!_Q5Pz)8AY;+jk}{o-=JboQE;Z-D7X>@REbhfiA+a{dH_Y^ zr9>2>L>GdhFH*v5RAS^nF-<7pz9_NGDgOSe#7Lsd8m+{}uS_kc%)z0=X{}6kSE= *Rf$SonP2s@tg7mqoSOB(n5VJ^PEHY>G;ms| zs&%ZO-8FDLuBuz9pm#j*?XRl7j)DQx;5MI{(T%*Z&fuDrnrWB3S;*jWqMAjByk+Cy z{0B8_IeDAa!RaG4yBj%slA%dPb;mZj tg7isJb6VmpcD&ldQ&*E|~!9;W|%^r_M4#Ng5S}8o^MR=Uo~v$2CF+ zq{EIi3jS(fqNO94&^dhQC{^ib9dw2jIu q`)N@zsKe?TWakxE`g#~h(k z#iY_mG$R-_GcF`E m J3 z_*W!jEzSeY(W7n9@i)h#?GuBIN#jaI+MQwpysG0Lyt=YhwI3a6f8==A#Xp8+lEd=r zILhh_s7ijYo*3~|A2uGJ#>jX%kB>m*2D@|u8FePJx+acw%>U|4MN58S(jB1Gos|=x z)6orn-dR7Vy`U-!$?91en3!qQ?Xl8b9eDR;b@Ick?nal`CW&6yk?wZLhb_5JYTA0c zP^qt8pIV*t_Bq53iu59%>mA+5 *84Y zl|MkU2`qU%4Cla5^MJrXV^O8?G&~@X6aZ9xuInc(c>hp}cZ&MzGeE6h&8|=27D0w# zFPg&qYQ#|X5|T{nldkELo#>O_>cdG55X=S?0tS@w22{ER)HVh*-UhUx26V{=^u-1Y zO$LnJ227I%%xeZLCkFR!4UnXUtdsg2TNs*VfMB1ss1|^me}=#kS(6R#7aQ_68S-@- z@=qEHtQiWP7(Tc)6e2Yeocv7f7D0qIloG*!r7#rs5j5rzWN}8)#YQqsMzY;Ta+5~# zYeotuMvAvaC{kl3W@BXmV- 8)J2EV+~xWF*?~;v)EXx$ymGFSZC5$cg 9Hm0uLrjJ5R-I7h+i%mV6Og%$qiQpz64t+dd;J;f_Us5wa zW;1^Qv&ZsgPjt-!Y|H|^&7Ovu1tpt3D>e&mGJD=_7BXoTx@H!3VitaDh9NbNU^b5w zFprWqkJerCHNgN=+CEi;amnWK#pVf3=84_rNt5QuYvw5@=Bc;lX`~kE%oZ5}7Mb!E zS-KY4HWoSF7P+AodC3;}#TErk7KPmwMYu_e;-;l*sJ`&6MJcIe8M9@%fMtceWu>lV zmCXv@B&@{6vNqYWuGq4^$+Dr_vT@R~Y2E<;#Pap6WizQ&3$xW50jpMdt2SM$w>Dqs zqe-B|#MQ{^So0bu1Dach1bNNZD;BKPQdA%C5 iaEH2IX^FH8Id25(WCT45`A%c;G+!gb<~; zPXVi=Ca 9=`8UDaWpcHVt2aVa;d9H9KS zPFlL*5sX1#F+WKu*4EbPdh+j_KX>EjwqIpWB?GVQ?pXqeCE#e6gm=%DF=y?LE UuvPAsvpTX%?(VNCuJmS;a?Pzlhe$d_1ZdZF?5L1rdcC-7h zzr?+_;o`Ds#SyM~rW5l!Zuk4`#KJKYLzt^ho0jG^%^pf!Tj!a1+ILmNcVAeFmq5$X zjsxLW1Z-1DuY`k!6I`&1$FrkBL#)qbW8zb mHK=-j_5To0}@1T$*dY4eA#V=`lYaa&h5`zvtm1F0r?ifI(n*iTW^RWNwD8+d5$g z-vyVDmu_#c--h>huR=E+tF0|xVw8LU%fNl=K6`{4#++@9R*M7Fj6~rRr_=8w_1w9Y ztbA}o`{U>bFM5)gdTB?p<5~~C;*X@!vX+ASa(hcNO2aT^?a8z=q?HO(ybA7@x)=r5 zLxHfp+OYJhp+onwQW6WG(w2nf@=!>| OqbKvHK()4+7RNcZ$i_8!it7 z1l`MCZBTE2ja9aJ1003JJ($CiLg|l0_h8{?TX3mb`2Kn?o1O9=O#9zfOc3j=4GEis zV~fwBQysF_hv%KtVUsNkY 7R=)IIj z`p~1beJ60iqvld%WzK%rrS}{3@y@!F!Yli9pOb&xhx6*M!%rQ^_rJnv)+?7V-*LJw zr_7)$yu&WCBUuGlg*vP+$7X(E>vAX^5B=X9wdYKaXQ~iPxP6lVwk740)PJA+{mX-5 zu2TG~uLrh3%#_z3h3|^5HfY%#Eo^^mwEw8IJ)Qe>bo6fxyiHZ0=kUWOxp# UABTyo&;1kfk+- z8gKb_UWr9p^3&qpp7Rq@5IK1T3>HDZWs4Yj%%|b6pm;0=K2TG7MF2nN#SJ?M*m~8u zyZ$GA4ut(|yZR~kpZ`DaV|ZHnh>wf9(iuGG@ysDRxmy##f^AeaP+MP32nW&kIG#%E zL8pBrs-47Y;@UPJx3f5*O7hq@)}?XQYsKf%l0K8kKcm~}Lh~`FzaDdkCnXa8iViG^ zzy1pM-MS`?I7tyWr1oD~56m%VO$+l _wi-j$k;FV z4`SEf{v>W3Yormpk}#78{&ut%zes<7;d**3{`7KkeXKezlyKXVHp1)mvFh}tA;Hhq zXQv(>7_Z^W>-n#X%IEf}t|=S8jc`8&s*@I1Y@^6_*a9zvDE9Ezk3(_7j`YHQFQ#6? zhxkeKFQA%Ktiz3h IHxJ6+hUZe|7}t z2GsI%UzB;*ZJeL}!ZZzI$ie@$Ze-B~ruseo#rMMVCgqwkXU|^(=EwENT<_a;pxcR` zL(DQ&eU43g`vu=`U{V|yeu+5sxo|-|e*fQ1a7}Po>aVO+Sn^PSa4KeBGpPL0#rW&E z@mJ?g(tlot|Is4fdbZ{EdisYFi*xU{5YTXAMXFa|jlK7~3uHA>?CYl_Tt6s#);@eE z7XIfr#B2A$(Nj #r4n7Bd4(v#Ftb7w%C9FY1pT^{;9qfp@$R3An~8ahI#E8 z+`y_a6?gvEWzycoU-aq!BHM!z`)6GvH}PmkQ9;-@?*G#L95Cjn%?(8m71~}1<;&V1 z3ua4#M?^#tAlM{0gi!WMFmf;s5r^?D?TcdN(ZLG!eMNyO(fY`1a!5P@7$ta$a)jU| z2$Ax5@wDC5Y(ieJ;oUcko(#ulQ4jGoKKPWR`GNs0RQ4ziPWfCWprDi+AHg5v`U}3z z-ka<^d3o#}P;n=GI^lCp*}DwJGs>BFYt6ao_r@~%tO~J3$06vJ1n2nt4jp1G*mZ*R z>CeC u)hnbmRB=c+5>QQIV2q|ih@!xQ9n6 aHOdk;46v`eX=sN2|teOU(NzE^?F^p+KN`O|f zP#+WwZN~UXc0}uY0kv_AF0orR%dSKYT+|q_phltpA7KuxHsu5wo-o)XZh}cB C)Q;4c*no9sR^_pPt7f1$a%+b6oJp zci7<+ ?8CZ*-%|bjNFzE{hGia8>}lvpL|`vK%H1bM5~mYs z<3J2@%V1P((d8tnXI}An`kvJvrh8*W`-dqma}$+h_$(fy=JT62Z zIXoYv9DMdUA0)12CX)$5Q$}k d-gcQI#19Uu-j5fJ$T(-2Iu=mG$Gjq3X5Rn{8S#;(lWeK{FaPCYo z{_Dt 6bG? zPnWm1p-k6O>Jml{X<1yB#!q^!KXG!iUBS+#q*xGX_BCQ8cT1zv>TNgdK>*;i-5v*u zzb{tFo{!@-k^eK?Eaf2pp5n7QjRk?F@mv3LJkmAJr!JU^jeU*ytUl&w6pzZu|4pK) z3u!QY-7?>_(_pge`^(~8dt52w3X9aiH)N+Zv?*0ML8i=wvNi~>$$L;>Aa6|l`C*P1 zT*ur>J&}f(Ya&$7IoY56zO5&ITx?jfm*uv{Ydk6Sh}1&fw5!$#0(-8HlyLy5Nj%-A zv7Wp_@v^e-0!tBSGkAmX6@?uG{bWRz7oi(U3$Ws^H70Q*k}$O&ro!atwbbIod6qMR zSE_iEdeV#U%b9f`W_Z-q9SumF=^ZyCKmBmWSkHVOTVcVo%H_$n5w`w8SlN-{m7#TB zy^hn0ADyA#G~yaVySd$Hw$gPZ|B=y4FzIp}C6e^JGfCw5{1oVlA>i#ihFOKwj^Xo) zKJG}EP-K9Eh@ivl0NBOaZ|2_Or`8^oSYF@D;D+6|sf9W0ubTHn^pIS1Bj(R%;&I<} zN$p;bNB#4MBp*+oXuZ;=nzQIy&+e74>p-GRDZ2MHmmip&I;7me;yEK(Nqa4Y+8iee zg1f7KEr`pC5VE*G!&lvF4^qT2c+e-(m&;WT^Ne0kYKhfKKFUv# 2+ljIRj*0I#j zzWndiyZqy88cs2v#4krzOF5dKTa8ON5ld8&TfY7|5z7LShHmp{&vFZYYk^-;Enc`E zMzSC7(-l>T5_|d*vcx5X?)@Gzq;%e)Ym49VvY0XD9*Qmh!T*lx>_f4meGE1=&s$S6 zP=9sp1#t%tzIjQ_{qMZ@8LjN3A7_5 Iai^O9-m;&x|HiwB=vH>;7ot^HiSACy6;^d`xl zl18h#m+fDznG=57(ZGL?6ctQ}3S$P}2plGIEG|EJ85xw;j$SRlZ?QP5Dg|J;ek$!9 zK1zDCRAODIzv#sJ IRJF aTxXJlG)8FM`d|Pq~eob#yXPk{OCW0uimIDK`j*5M i~jeNQW_TG$i={9OpQEf9s*tq`2*eM!l z4k)(8+Fp$y3gv*f=;0*cQSjX6)S8a{bb7Jhv}D9mX;!Q=o@Lq;mDm9?4z@TOhoQ*8 zU!%wSk9C4ZEqa^UfmoRE>0IdwX~Ir1qN5lYFP8M$0E^jQ5by?=9pdz`DLBt#XrGs1 zckh;yx1nmDX33Pg$a4H7I@Wj2AUqnQle{I~1l77=(DKdgT^*vIL1^x8W^;^WKN-v5 z$M4fYIoWI5#gmllW5He-Y8)k(OgSKn=zrAZz2>Wg2W15Ij$htFUjW-=hsAt?sE{JO zvn95elT`GQBdM)J<{9)UKkA+`{x?-D1Wpox(m}3l4w|grV>5!17#A=Ngi?Q{wv558 znL%n*%bQ8!?Ac?^2IhqD@s=#qjCGOmfXpHCWrsa4#r!~r=A1B;QyrzjLHYDpGf_+j z>WseWwh O5_MFaC*R21}sj zYT#FdIuqb9=&009#}Z0$lrRnG5WVnkqcMHP;VKTqCG8;Bwf@_Os{8Loh3=w7@YGhA zv_-0Pi&5u;>3U*Sv|+=R_`8H0(I2al(HU4uk<=$lyB|h&(EiheR11zl4CTHyhTqBX zrm8F=7i_kjp;SYgOrOv`*mvkG6GtprXol8A<$pyqrfYNJ>KfH;9O|9hA}&?h3x 878!@H6I}@oDh+U7t=z8y75kZMxuAm|SK67man}WY%iKB0# mWjo`$V8l_61;0(+XMYuHCL+A&|8L0DSzTpoGy6g{ z*8EZQD!mpzd(-mB&Q$uk_1K7xd1!l0fDaUN&YpEapoK<@6mU1)|EBCk 5PXWkj^7zHxp5Vq$mMEGmVVI7aG z;zmuK(a*rJ**We$7>7I0cF~jC#PZs~F7xD+YFzOzRm_lEx?!}hTz27v=0lEIeQ(%v zL2NX5Bxk55I*4d?;9GbBPr-Lu;=zM3d-RKi+&q3Km1CY%<%81iZk2(wDe4~0C^uK0 z`Y@Tpa+z8>nU}R(pTe_rom1vE(-98XWTO#UbROxvSnZpRdIHzab#AJSV@wX1A#g|h zs~(T*Hno#Mx8 zP-H-+_zE^$qYr^`saz}kI&&HH*MjW1d!ZxoWV>7&t-hF=& zOC9qz@^jPo! ndgS1?BZELqzo+o^+E9m`|Q{>O-w>Qrc6-x-T2* zW=Q+>iD%uR`pw0VHQtt#qn`SPhUz2miAPzmI(t{aI5tD~y~pt@|HgN*UM&kpNmmWM z<;R4b_`H1#W}HT2eO?otOH!j=lPTOh3Kf$H7H$CzpZ*+wcizpq;Ln%-_L<>in$3I0 zusGXbb(HsHR*)BG&p&5)G5{UcHa+ NV(DaI!My zg(=#adLuB?sTQv%FmX6YKh!kS*OW9ixW0F?QSFEV0M=_L9t^+%{MyiPFbDtv01OJ? z@Sy+q9fbeSNBkeJ@&D~qEPy(|1Vw@Y7!JS@GNGGGd!t~Kyw)SlW&JN;2y{^#76VFv z;k&Jlq_YpCB2^NYG~ZN?X7U)-TaUh}8qXDS8Y|Llt)48DdVIJ#+RCk(gyIfl>YT2b zu0Ut<+Kjc;&DQ8wXccR{t)GvC{lgoqMMcEEw(k!M*hGDuZ*`lkw;6A5`tr{A>sWDO z0G}BF|M}rsA+7Q<=m~_FMdy9 N?ZxH2zZeL;J}W@B0)0e6!qXL@p3^ugA&Xk2oK6M;XOpwC`}I z+9i73oxhHj7WGJkwqg>Y&@dGoOwaoL*}`b ;QpE3O7wMQinKla@Iz4}R61Op&s z48+k-SDezb%~*n65mQ(wDST=MLLyVU5lv<4wiQFyGk6bQ65z2{hhEwv{a|2M6a*oL zw9|s)=WQhl4e@+U602@=ctH%5IsvuRZkx|uk)lwK$5{tf)A)#>YyK(}_w^GgSS-F~ z8JoKAX8&A6t3X)a`}RTQswLRc@&)Xx^9kvk4Zx&r%j*e*dG1)Sw?x`rCgpoKR1q;p z8b=NW{|=)U?ZIOZ&OC zs zVyf#8>l@oUXOksYahqU#!Bq?dpD2m8?%Ati!m D3zW?WIhmv5;tLM*66Fdf=sef~a3i3)%y{@LYe>%dE z>*b&G!hfF?3{ti4C#6Bb@8`P~2f4o?Hs(E7%n9uBQ_iB`+Zt7+^}d)ccBe;
ZXH)20@5^PklBy>`0w291AZZy=0h5$p8%34m zJ>?n~Vfi=@pz5|-;A%6PHjJ_t0brWL#l)C?`-&CTexITqK4Ka=vFZN3sQ-QZ-B#%f z!9V-RfWLh{ggk$gU!~ro^P8vo8RFhqGWOxw#x&6v(dEkD-~axI?oa3^X5|U)hc^D` z>~}GK$a36_X#VCE4GEZh)`sJ`a^J%~{c-!7%k%#CatSXu>YQAAMeY}L@`F1B&m#51 zOZyU{f45iPejKVkR Cxt@3J(TKNgkp5i4axn`-SxWAucVAbEhv* zB#!mC5#<3kiWV@nn~mQm6ELZ{J@_FM1dT=y@>;g2la80uw3>s6d8Vc0Q6PeU4iO>@ z2MKOE6$}ltQ4*a7cQLml6xUC37MQbHlWZ>Y;>fVVAB60an+ha>=ExW53^My#gAC?a zsw{J!p2ji3N}MqgDJGJUH&MwYIXbEre4bfKQpKa8Ic8XJo>i+;#cMV?X4-k4-JDd# z|44J(a^*bd{X~`E)6sF;Kj*nvl4_wBniGx;Kl4U(szq`~CtPKI=1(P6i`8gOdRYD} zSemGocsDxf6HJ-WcU>(ttog~mAk&TIz*a_0IsI{`k?+xsjhwb*`qLF7D*`D%
YY+i1)uEkn5Sw`JcbzXjy-{NUIZ%Gcs9J?32Wf= zSXjm%c;tFDpR>E0l2|#2>a>*LKgwF8+|KO0;9pvzcuHiEG7!2fpwcoQ{V<$iu1sMF zEIwK9U$8>=s%MV%X;m^9`85{|eFB&iCt07=&vice)ezT&@Zbj^bk+g*0st1o(}$pJ zM&i- ?uM^;%etL F5wXAoA;lMB7Jdn1##~C`N>~ zduJD|jp(z!s-EwiPCj+SSH*xPN}Dp~e<&hbBdLweAe 3-?7%DK221M>6e(W3Rgd>6 w X)>to`nWB}k}b;FK^ZzR*7nqNEcK%f&Y6hV6kO z6l)hTHwUHJoJLg#IThZ?g`D NGEE!GBATLgVL=#6H); zMj%31B1)dd1OI3H>z;gGJH$g~LE&T2GbMik4<=tX-rvu93AZj{9s^N=pOI(-8a*>F zxqP;NklKWaUMDL!h7wXtAnsk^OGT8=oF{wYtn+!U!PaO|iUHrr`|ALq9)<>bb0k}O zsV*}Wne`c2gxf>}{gztTRYJ;RhJTS{ksiDX+&$0x+_fkA EFO0VGxx|G{a(e!TLDo{<(>~tTWu&L`s=EnCzw!MAL>CK>JKMIx$5M z?Hl!zu>K)|t-9=xpa6-5KY7gK5VkRr -$ID~s>P17Cmd z`Mu-?}`Y@5&7J;jIk0*M-?qF5_se+_9=s2Q!}_h00NzcKKA%uC4#V^DAc z)S`sO0Ez@?tNja2m;|t(l7(QvJUGK3fDsBnu^u*O)Xde-<+0$My~lD`Ff$yGlCps6 zgSe3NBYsXw^F|Xirryzx?_=P!_{L17Am?c&23AieH7B9wK;js%&kLsKcp-eg3X9@l zPun1?5^!dK#^ 0nWe;Sa62QUQ%jgEkY z9}7XwWB=w-)2H7V*@G~C$@wsVuoNWVYZAJzwvULD6N(#-OA%f$h&KnArsC$`rjabC zk&UM1(535wf|=2QpDrz5*7`%XJYgbfZI|viAr@h@4@1uLU2bpW2 B$} z2N`%DU)^G!>=ODA_s*I S~dX`GtVMI@FQP0h!B;qNmANW`-1Dzueypv1AbE>V**vQVY(}WkR zr->feA}O5JFKMSF4WTnGikwU$OGyUiKnFL|KvimHde&2aBi&KR!+c=bEbDO_q{Gxm zvHeNq{XlVazNiU!{Ac!w8#v`Rt&3(rlX-sE+aO6=dQd)-^I2hLFBpkspIE?zE*I l44tp@y>% z%BXn{vhyvg+DscQ&qnf1Sx`5Zmn}v#$E6J5*-m`TnXA)xApj*B8<{U-Ru76*JE=D5 z1Eo)czzKl!Sr7*goVZ!vmLrTaIta{F{Ieq-?CXT8(r2&-*H(jCBvbj9OCXLJY#EiM z9mOhVUPRMIE(3uN>I!M3vp$%C{?e3jv_njO=LJ$(;7z&XuyL>v?- TzeC(`((^0`5n{_pRf5npASe1@!Edx~wfg+I73tFuE|iboid8zVv62S^ z&2MWpnFjST8 b+ z3c$J8oA14&X3St1%5SEAH^cXCNsH!_gX+;ChN$_2XpV~yCtMyU{<3G aV(Yo%n&TD@um`;kD_=Sy101HABk>XW>pySQ4p; zGHwUJhrfq7zSN5JKHLik{hRo7 `UAMQoF_yz7(b6XDywNO7+v*Xw4cOqf4CJA7RwUTIz zuuce;Iqs9QZdGWsJ_t}D5=yfe5ALUV6f@jnFRMyPpoC1W%?MqC}~-qOu@W4{30LlolX5{)Pll6cfNeuwFhS;(*htn#@k6F zR(?hdNP9M(v>C)WB@DJ{7+-}8+ 4yv`sVoe&+Zn5F2KmHBBBuN-faJLscsE zf&xrjF;7%BJV!j^eLJ&8f&hd-QucgF$`Eesf;R{dZ05muL&PwkyL=ho3;y~>lm`K9 zp9|=OYU$~MsZbKnl|ghEklo~>gz^wI0%Ujsl4D1jvGR*=3b+R#w$H)KqVSzAqaK8c z{x_zW=kSZwhd-*6X@nQF{1J_7{S LH(t1gi7%__rD^_u-kir zo8Y0)MLKxGC ;dqJ6dkwvLV4gOR#-zui+-X?`-$2{(p&4 zuXVTVkF8}*o@MaoIW}z`@5B3Tgn09SaBm22x00FBrVe-udbTOmO?lhR$XzZ2hBFhS zL}{-nFnroBcFcvA=23oU+BsQTcFO&nyq;3I&g~5UPP!rG{or_Y-C9Kgef}k8Qt`Ju zm|Wldrb!4db8{sWA^``v42uvW!9%y?>}krDWwSUWn0yl~j)dTv#g5cLg3X|<7H*bJ zuzk5S3lbu(4|#AmVg%e^MhRj^LPSsy5n$t?0-SOaoGu87{Pd+cIDr@g!ePDzrR?>3 zF9q5Nb%Owe{a)0|AOz+>8># z8_)ybKu`$P>v;6M8
8@#->Cpa ztqjqewb@OO`|sinQ9)|(6rlHb4F)+D16Xv7AUF&JIt>t#0gR{Qk$2SPGw>P9+5=yq znQ|T$c*2Z`!h=>GmbASjK_KCryoKUaWRs1*pB3x?0d4%y@nX0|oPxt4EU6%ZSvV)| zAJFAD=lT!erUK~fAxUp|Hd-P`u|F9xYXVMuAHt}_Q=*7Vd4j$(0YVCiGZ*u%z}Kin zv8luOr-%CCi_ix^aud6*sG#ZW$@;&!FJ#{dPuDF^m?(w797wRw50KLXe!9&|HYAwi zbdQV;_+QY$>AcUwnfu`h0l3{J0cs7O+`6v XST)aZ-Kj-CB@f&=%(+9ZGze# zUiaGmfEsMCM;y2cg2}*}Uo+Ua?fDkv|Ae1x=%p@+z<;1|i(*1+Lu;%}xG=VVl(({! z09&(=zaps0=61T5nf3vM&VE{C>X+TUOOlPR&Z(LkWV`MUc6 w~Gnz3N`unS;2 o z?<4U4k|2?y^b#;uH3ZSugPKx0k~-;{+BZae*QJL
@zC z3>-m3`hu3r9MhO_rF>MvI-Y<5ldB>l)Mo67$Ostqmh7RlM47z`AlnazNPq`6*2Cy0 z#d@De&J$2L4wBu%Q^Y|pVi0ifPjLph(^A~$szYN!3}q3=#XS(q6ybfYG76 ahX zhS(vmv|j0jXdUetQldof(QYujtOahzQ_JD5Btz!_X3+PyiilU?*J0rI)RJOq%SOEZ zr0|ol(SI>i32
NBRk?Zr3%?f%U-!H`SfRj~X@*xJSs`J?sE0QUSbHeN5X;uGTUAw{7D>MP zs5tlA&iCBwJE3LE;au3~;CSmc_Xpsq;`GTtzb9HV_||C-?+1m_NbK6ANXMfH*|5p@ z(HF`<6zx^$mkQqba|s?=o;(cr0lR6V$SB1a{r3&AyYO_8+mbtIMSkr&k_5in{ZzG; zC7<)1OPmCTz LkD0824DTNw2^2%lhPgl9 p zl+`v>k0>G
qS;MB3mNPLDk>~Z?6I^C5NC6!jUmn8Rfva`MlgMa?fe_slx z2^$@&xZFJj<(~ogQ%^cV>RfO(6A&`pF>zK%S`~=WZ3)WoyQ9r(L=fA;JYbpGNwA-! zO9C#^p<<_6ct44Us#||*EUNlO^;mpB7M-b{nUU9xG!zuutS;@V)eYc^<0Z__w0;61 z2^kHsgF4X-N~w$F_;Kzx%>M~?#o%QThFKFYG&f4pjyY^{LFtlk+oEZ(T7eL7v(2Rs zW*`-ciX4DYun;d|9p!~=K(Jm#XJkGB>2M_fm(=1&HpH+2S{(+*es;ssLabu}%8pcm z$N}ZHuKTJ6yt~EDFfIlz0^SE$C#-_$*lw}+qw|chsn|s%K*i~!6Ou*gIm ~AOD>-q%F7H&YfgQnh7*u-N|lV8VR{G27ps#tz-94fl@*;oe& zF&}3U7FHSnCz^i1>iO4}<^?--nvRE*Af^gsZ4Xy}NgT;t2B;pCS31p16e(z85u`Jt z$}BA)0F8y^h-gs=VDa?p>CP$CtA?p}@okpjC$85SLd%