From 871bce28ad33167f4d0b34a0ef27fd7de116fe63 Mon Sep 17 00:00:00 2001 From: Yury Lysogorskiy Date: Thu, 29 Oct 2026 18:27:38 +0100 Subject: [PATCH] Release 0.1.1: GRACE-1L above 33 million atoms on GPUs, macOS fixes, LAMMPS guide, benchmarks - NVIDIA and AMD GPUs: GRACE-1L with 2^25 atoms or more stopped the process; it now runs up to the GPU memory. - The PyPI page of grace-runtime shows the README. - macOS: the torchsim extra installs no PyPI torch (two OpenMP runtimes abort); install PyTorch from conda-forge. grace-runtime info says that the GPU modules are Linux-only. - Documentation: LAMMPS guide (CPU, NVIDIA, AMD, LUMI; first input with the extrapolation grade), Windows through WSL2, GCC 12 or newer, benchmarks. - Release-gate scripts: the wheel policy check reads auditwheel's JSON. See CHANGELOG.md. --- CHANGELOG.md | 37 ++++++++++++++ README.md | 20 ++++---- docs/benchmarks.md | 22 ++++++++ docs/images/benchmarks-cpu-dark.png | Bin 0 -> 37557 bytes docs/images/benchmarks-cpu-light.png | Bin 0 -> 37569 bytes docs/images/benchmarks-gpu-dark.png | Bin 0 -> 85931 bytes docs/images/benchmarks-gpu-light.png | Bin 0 -> 86222 bytes docs/index.md | 1 + docs/installation.md | 11 ++-- docs/lammps.md | 68 +++++++++++++++++++++---- docs/torchsim.md | 3 +- libgrace/include/grace/kk/csr_images.h | 15 +++--- libgrace/include/grace/kk/support.h | 4 ++ mkdocs.yml | 1 + pyproject.toml | 6 ++- python-cuda/pyproject.toml | 4 +- python-rocm6/pyproject.toml | 4 +- python/grace_runtime/cli.py | 3 ++ python/tests/test_rocm_plugin.py | 11 ++++ scripts/check_cuda_wheel.py | 19 +++---- scripts/check_rocm_wheel.py | 30 ++++------- scripts/wheel_policy.py | 64 +++++++++++++++++++++++ tests/kk/test_kk_large.cpp | 3 ++ 23 files changed, 261 insertions(+), 65 deletions(-) create mode 100644 docs/benchmarks.md create mode 100644 docs/images/benchmarks-cpu-dark.png create mode 100644 docs/images/benchmarks-cpu-light.png create mode 100644 docs/images/benchmarks-gpu-dark.png create mode 100644 docs/images/benchmarks-gpu-light.png create mode 100644 scripts/wheel_policy.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 9173ce8..2078217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,43 @@ Notable changes of grace-runtime, grace-runtime-cuda12 and grace-runtime-rocm6 (they share one version). Each release has a section "Changed defaults" when a default behaves differently. +## [0.1.1](https://github.com/ICAMS/grace-runtime/releases/tag/0.1.1) (2026-10-29) + +Bug fixes and documentation. + +### Fixed + +- NVIDIA and AMD GPUs: GRACE-1L with 33.5 million atoms (2^25) or more stopped the whole process instead of running. + It now runs up to the GPU memory (A100 80 GB: 41 million atoms) and beyond that raises the usual "does not fit the + GPU memory" error. +- The PyPI page of `grace-runtime` shows the README. +- macOS: `pip install "grace-runtime[torchsim]"` installed PyTorch from PyPI, whose OpenMP runtime clashes with the + one of grace-runtime (`OMP: Error #15`). On macOS the extra now installs nothing; install PyTorch from conda-forge + (see the installation guide). +- macOS: `grace-runtime info` says that the GPU modules are Linux-only, instead of listing where it looked for the + NVIDIA driver. + +### LAMMPS (`grace-runtime` branch of the LAMMPS fork) + +- CPU styles: `GRACE_BLAS=AUTO` uses a BLAS only if it is MKL, OpenBLAS, BLIS or Accelerate, otherwise the built-in + kernel. Other BLAS libraries (for example ATLAS) made GRACE-3L about 4x slower, and on HPE Cray systems the BLAS + linked by the compiler made the link fail. +- CMake warns when the CPU styles are built with GCC older than 12: with GCC 11 GRACE-3L runs about 37 % slower, + with GCC 9 GRACE-1L about 4.6x and GRACE-3L about 6.6x slower. + +### Documentation + +- LAMMPS guide: build the fork for CPU, NVIDIA and AMD GPUs (with an example for LUMI), get a model, and run a first + input that also prints the extrapolation grade. +- Windows through WSL2; GCC 12 or newer for source builds. +- Benchmarks: time per atom and the largest system per GPU (L40S, A100, MI250X), and time per atom on a CPU. + +### Changed defaults + +- LAMMPS `GRACE_BLAS=AUTO` (see above): with a BLAS other than MKL, OpenBLAS, BLIS or Accelerate the CPU styles use + the built-in kernel. `-D GRACE_BLAS=ON` uses any BLAS that provides `cblas_sgemm`. +- macOS: the `torchsim` extra installs no packages. + ## [0.1.0](https://github.com/ICAMS/grace-runtime/releases/tag/0.1.0) (2026-10-29) First release on PyPI: `grace-runtime` (CPU), `grace-runtime-cuda12` (NVIDIA) and `grace-runtime-rocm6` (AMD). It diff --git a/README.md b/README.md index b749ba6..12d744b 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ Fast, efficient execution of GRACE-1L, GRACE-2L and GRACE-3L interatomic potentials without TensorFlow, PyTorch or JAX. CPU execution is standalone; GPU execution uses Kokkos for NVIDIA CUDA and AMD HIP. Use ASE-compatible calculators, batch processing, an optional TorchSim adapter or the shared kernels in LAMMPS with MPI. -PACE (ACE) potentials fitted with pacemaker run from their `.yaml` ([PACE models](docs/pace.md)). +PACE (ACE) potentials fitted with pacemaker run from their `.yaml` ([PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md)). -**[Read the manual](docs/index.md)** · [Installation](docs/installation.md) · [API reference](docs/api.md) +**[Read the manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md)** · [Installation](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md) · [API reference](https://github.com/ICAMS/grace-runtime/blob/master/docs/api.md) ## Install -Install one package from PyPI ([source builds](docs/installation.md#cpu-from-source) for other targets): +Install one package from PyPI ([source builds](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#cpu-from-source) for other targets): | Backend | Install | | --- | --- | @@ -18,7 +18,7 @@ Install one package from PyPI ([source builds](docs/installation.md#cpu-from-sou | AMD | `pip install grace-runtime-rocm6` | GPU packages install the matching CPU package automatically. -See the manual for [GPU requirements](docs/backends.md) and [environment setup](docs/installation.md#python-environment). +See the manual for [GPU requirements](https://github.com/ICAMS/grace-runtime/blob/master/docs/backends.md) and [environment setup](https://github.com/ICAMS/grace-runtime/blob/master/docs/installation.md#python-environment). ## First calculation @@ -38,22 +38,22 @@ Named models download on first use; local `kokkos.npz` files work too. ## Guides -The [manual](docs/index.md#guides) covers [batching and MD](docs/usage.md), [relaxation](docs/relax.md), -[properties](docs/properties.md), [dispersion](docs/dispersion.md), [PACE models](docs/pace.md), [TorchSim](docs/torchsim.md) and -[development](docs/development.md). An interactive tour is in the [ASE notebook](python/examples/ase/grace_runtime_ase.ipynb). +The [manual](https://github.com/ICAMS/grace-runtime/blob/master/docs/index.md#guides) covers [batching and MD](https://github.com/ICAMS/grace-runtime/blob/master/docs/usage.md), [relaxation](https://github.com/ICAMS/grace-runtime/blob/master/docs/relax.md), +[properties](https://github.com/ICAMS/grace-runtime/blob/master/docs/properties.md), [dispersion](https://github.com/ICAMS/grace-runtime/blob/master/docs/dispersion.md), [PACE models](https://github.com/ICAMS/grace-runtime/blob/master/docs/pace.md), [TorchSim](https://github.com/ICAMS/grace-runtime/blob/master/docs/torchsim.md) and +[development](https://github.com/ICAMS/grace-runtime/blob/master/docs/development.md). An interactive tour is in the [ASE notebook](https://github.com/ICAMS/grace-runtime/blob/master/python/examples/ase/grace_runtime_ase.ipynb). ## LAMMPS The [LAMMPS fork](https://github.com/yury-lysogorskiy/lammps/tree/grace-runtime) supplies pair styles `grace/runtime` (CPU) and `grace/runtime/kk` (GPU), which take the GRACE-1L / 2L / 3L model from the `kokkos.npz` given to `pair_coeff`, and `pace/runtime(/kk)` for PACE models. Installing the Python package does not install LAMMPS: -[build and run it](docs/lammps.md). +[build and run it](https://github.com/ICAMS/grace-runtime/blob/master/docs/lammps.md). ## Licence -Academic Software Licence (ASL, [LICENSE.md](LICENSE.md)): academic non-commercial use. For commercial use contact +Academic Software Licence (ASL, [LICENSE.md](https://github.com/ICAMS/grace-runtime/blob/master/LICENSE.md)): academic non-commercial use. For commercial use contact ACEworks GmbH, contact@aceworks.works. Bundled third-party code keeps its own licence -([THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)). Changes: [CHANGELOG.md](CHANGELOG.md). +([THIRD_PARTY_NOTICES.md](https://github.com/ICAMS/grace-runtime/blob/master/THIRD_PARTY_NOTICES.md)). Changes: [CHANGELOG.md](https://github.com/ICAMS/grace-runtime/blob/master/CHANGELOG.md). ## Reference diff --git a/docs/benchmarks.md b/docs/benchmarks.md new file mode 100644 index 0000000..2ac49e0 --- /dev/null +++ b/docs/benchmarks.md @@ -0,0 +1,22 @@ +# Benchmarks + +How fast grace-runtime evaluates the GRACE foundation models, and how many atoms fit on one GPU. + +![Time per atom and largest system on one GPU, for GRACE-1L, 2L and 3L on NVIDIA L40S, NVIDIA A100 and AMD MI250X](images/benchmarks-gpu-light.png#only-light) +![Time per atom and largest system on one GPU, for GRACE-1L, 2L and 3L on NVIDIA L40S, NVIDIA A100 and AMD MI250X](images/benchmarks-gpu-dark.png#only-dark) + +![Time per atom on one CPU with 1 and 16 cores, for GRACE-1L, 2L and 3L](images/benchmarks-cpu-light.png#only-light) +![Time per atom on one CPU with 1 and 16 cores, for GRACE-1L, 2L and 3L](images/benchmarks-cpu-dark.png#only-dark) + +## How we measured + +| | | +|---|---| +| Models | GRACE-1L-OMAT-large-base, GRACE-2L-OMAT-large-base, GRACE-3L-OMAT-large (cutoff 6 Å) | +| System | bcc crystal (a = 3.165 Å) with 25 elements (Al to Os) in random order, atoms displaced by about 0.02 Å; about 58 neighbours per atom | +| Calculation | `GRACERuntimeCalculator` with default settings; each call computes energy, forces and stress | +| Time per atom | median of 3 calls after the first; the lowest value over system sizes from about 1000 atoms up. It changes little above about 16000 atoms (GPU) or 2000 atoms (CPU) | +| Largest system | double the number of atoms until a structure does not fit the GPU memory, then bisect; the largest structure that runs, each size in a new process | +| GPUs | NVIDIA L40S 48 GB, NVIDIA A100 80 GB PCIe, AMD Instinct MI250X: one GCD (half of the card) with 64 GB | +| CPU | Intel Xeon Gold 6526Y (16 cores per socket); 1 thread, or 16 threads on one socket (`OMP_NUM_THREADS`) | +| Software | grace-runtime 0.1 wheels from PyPI (`grace-runtime`, `grace-runtime-cuda12`, `grace-runtime-rocm6`) | diff --git a/docs/images/benchmarks-cpu-dark.png b/docs/images/benchmarks-cpu-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..53206a291d33fc207cd0744f4e094a974a6611c6 GIT binary patch literal 37557 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 G*Z&u9@N2FB literal 0 HcmV?d00001 diff --git a/docs/images/benchmarks-gpu-dark.png b/docs/images/benchmarks-gpu-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..2c04a2735330053e7beecd984ed8279039d998ba GIT binary patch literal 85931 zcmc$`bySsW`z^eX5NV`aL8QAuQo2*RLAs+Tf+{5`stkc32tgpQLWl_9PaN5^!T%w= zPGTBPDt7OkTn#^%LgWmc?5*vbtSyXQxR`!$w6L>fV`O1rWTk&$?&M_e$jiiJ^UqH( z+I=u%@{2fxKINIcq^2VTf}aNc4@S!QQ#=F)0+A9GR&`6?Uv$;Lo*_gyPO3f|CRY|! z^0d=1<_hWgvBc3cixolHla}+k$M(7QbI&8Ax8451S?t0d61=n^i%klIXMHr=%Oa$rwPf)p@xKn1P6x; zSzGIv9$vJ*n;1shG;+izAb2S#NLHcWF0QJ|4#pJyMhQwYH1Winv5XVa={b{Wh7BO1TnIodua*D2|Sf zMb3P#2b~SeNtiocqplFH|M8j>#SUH&i{@#c!?^3^@*syK3P{Fs@RcU z>&oxnh|bPCvf4~~E#Lc93aYGTY+t>8{Z5=~iH;$at9R7!?P#qOR&sK3UuoQzFA)U_ zu=eYla>RTtvb#fD_6$p~YpP@>Z&yo8 zYwZ?w58hP0T(A2_NF4Sqa?Bg(;P2cWOPYv8H;imd19+YH5C_WjS_99{&S-c4*&&z& z42Z>4G39jW1Mb(aUn!>@?d`wkjl4EGD~!>&JAaYS)5gZe z5iA;(gPv5ZZ{SD0HLcyfRicj!(_aL}%yclzYxjPREO>Q`>^ykvlp%Oa*Xr zLf_ljp|i2E3IEz0(mrk{^DWLH{b!|OXp1T#!8J8(iA>tGICryGU9ayh<~e`={tcma z+w!oV7=z3{-&fXEhdpLA-SE-c5MBJVzqOfj#CZz|VVA_zCkr0gNU(FTSWU~K z5M9J%`Gjo_8Je3=Yet4ed>UD7hCp<6b-y(>cFxY?OG!z&-OZw>q@*BSYAPt;MMlaq zvv7)or{x&uoa}2Fgv15WS?_OerRAagH@Cqlh?_diQ4mmzEWiTd;GahYt)Q_l=t%xQF{l6 zKvNDGa3`b(!dSs2FDXH;t*gVtB7uD@P>9LQL`hx$&``tTS zM!l9-HBr30yyo-u5m|#HN6$LDx@6vPig9yufA8HQz#1)gC zPOqi_4h~o_c;Wavf2H>$Phd}O&i9^QE|zMl;1dzaB(ASx*>A}UkE*>I{|q*}So@uX z@`viY7H&B?Id0zRz?2jMFqxd(9L$G5l*-D=()=#`{JPxJE}ug}p8YvJ#l#}|42$@+}0>1{n9-o*v zp`}I2&d$!isL2~?xN7GTY^MTSvBaTI5Pu!MH+kX*qRyK)Z}R3WrmEr7(}^j678MnJ z^I0Sk>edNTb7yD`+l&5h7%C)Jm4tw=LpYeL!-=P)qFUe5=lr?&ek7w6pWpJ8we^xf zbeVbsR&{K3$$$`zm6nJ%Y_5SLHOVq&(HoS=f1+irT@2s*i2F;|5jL5R~hu1hx zH08!YX!vaJ*$LST(dFb;C8Fcw!@GPRBZkr%UeM4K{f15I8XQEqzrDnY-`LzVdbkTf zk_$~sPY;iyQb@2^h8)u~D;5tfEXaxvg_>Ghzv9rm=^^7x@DPwzUUEDa&=ah_IXj`s zG+Ox%lPq9E_`}Fi*!?BAkb{|Ac#F-hSo>U@oM_th)*T6S>iGhXICScUM@!xih?Nyx z(Yc=9r;{Jc`ZxG|F5l;lra@pi+h@3BQxcyk*JZZZ#ZK81xOQtXa6gXD1}9yidLduN zES!`d>71WGUp&p!%&e=o_i6iM8!QN;3BMjnQ`nRWhUbH(8f+JPW*yeY+Igdbwd2O_?ry`M)A|k%ckuaJ^Dsug&%JNQX1{qF8bz zr0UezA<8=EyNR=pGh~(Z^@&;q1qDGCDg{C+Z(#)=&T1w-z_lsWsnR)wrOR4*`7q0p zJC^TA<;A(<2nWxfq^+Luu1rgsKe@^Mbeb;>Lwy?VEEG-;7!@~!Knl)c1>y4^-a2a*{(i&_NzC}514O7t56LVP3N)H605QOLdOq7{A7;9}d zxb7KB0~kZ;w<2x8*RQYJ?%(5hTVJ*TvX;A+hIBInW}a72fc)eIAt9kgn-|T^rw?r#i*e6PLXARt(x;E$4h z;dAZ$c9QvhWTfK94aC4g6V>;=5xu^?UU?6sXJ+?5c%#@M$6e@YdDBTwLuqMg#vOO= z+p|?~i@X(oG+%|wsLVNQOwEkn9uxe{Pc$VWPhKz%4=bB0WJtEF>7}=abB&nRsj04Z zCFSM4y1EhY1L$dXeja%@oJCPuv^X5{<#0WwPk#n z!S6rm*y?fq!_{hrod4ctml`Y*6pK|J==&ZrRoR%n@qHjJkk1SRm`^qHXt6nJJK4Pd z!>U=sRf(8#M^tSs`$DrX8R0Hrq5d*fQ&Ur{^V=XaVP)m#ZOd10L%hLMdKP$UkOe#i z1z%B8b_`9)9j~|_F7U8^BFoM;MD!qq^XB&kqerHrqbuUoXViId{+$=xr6^MVz^{^6 z&U=$FI&AOWy}P9nh z2Pa^5mirYI)msI9bot0gW-hLzNfvhYAH@lD%m!KNMHYof6~FTGOs;Nja>P-!i;M}l zTu@vN7brQ53^zhIlxMs?d|*9Xz6>ZYXWX4(x=&SC)f8M0LMIcE(MF!0o-Wibh%{K7 zvYLrbOnj{w85tV*CKO}=Z-&;N|7L+4XcqV}DOyY~Aka2>@O%vm+p^?a^X1`c&4_@6 zr6n!Ip!<)he@GWNx?|rQjMMpC^^`YPS0g(S|P(9Oauadz0mO3hU($r z0fA_1YkS@FQ)x8ICvz6Ei;>~thI*V!7Y|NPi_=mnDTz(s^-ok9zLoNolan2-*VT41 zU)C#L%Kj82vvYo%TRk#$>v9k9IQi?>2$^y>PZToVz$h~3WHED3X9;`P+ESuOzVRmX zb66Kle8YZmcJ`xwxgN3scxYdW8=p5o@=VWjY<7C2KFm=WfOb%j^U zY+x;C8`oVs`Z65WdyF1Gesa71lfTe5J3IRVK8Jj8ap~zZ>WDf! za~jmI#4sB{5{yfAaXF@ro$dpu^lcyt?xg$KHcMOb8+aBLmRRHYhg&;lX69((Ub9TO zAG=d_6H$##O^9<>pwubVZV=wp0JwDw1enI1BIz~nMWU_Yj4tSwCL~a56ny;}I3kc1 zOcU209nZtZmu>rn*X{V&u*l~2=EkV=hg2+&aw6ls*0G(Gwl>jFDra}mL;94EXTjPZ*g;(fjx;p7qj=e7ZbvmS`_u;Nbzrq$hFLHbzeF~dD1Y{j@EtkG?o7A_M zS-rLYUjRf-k-8{FfZZ3|gtR#AU6)@xJV7(xiH@-}QZ^+P~;I*Xa-7_!V z1P4c_%80yro~_+bo?qW?ImPAgE)Ei|!_K%VL}*!{HGh-v+U12i`i!w}DiI)pf`a>VtrCi6(KA9F0%5)vq=$!v+6|Gam3txWg7x=py7nYA zyW3U9+`g+%s;jFFEG$CAQHgTEK5vibvo$&Ggm0Vgj3FPAj#Dg}TyLgL`9E8GjAu#h z>k&_mEqC0CRCaEAe0bVn9tg_6O1ot;r1Na{qct{0IjR4DXV5eM#`&0PS`#=)qntC7 z5rja5d|NZ>T>04W`q0qu@c03KG9o-GHHC&glV*rwfrdxyj~}AkJUpHK{Yr}EWfbWP zvweMtjEs!Z{DV@mlJT@`EG#j!GV<~W?osjZH2&yM*VX-Ou?k(p#d+=GrGyf77RyP=#sloRR!?;CNaB|% z1wCC|B&4K=(3%1i1m;UEDS5U4IXuv^^5)S_o*ZM)|KxipQLjj7vT?Amu;6yQC|x)| z-<`suH#0L^?~BQ$tf%?qT4nW`hK8Wdk|*mOgCSw|+DvL&o4~^2;_>k+1?2m|yeqTU z?0l`uP#RZnrZ2Xax~Q1gs+c`<#ufj^%LpPUICgh;M>?;d1~=I2&xzaF;UdwycT+fX z;?p{ByTv3VWFnr2#GM?;70jBgtdSGjL?ic)FNVktSDy!bue@;$f-T*-GQ^Lc8H^BI(Aix*F$kAM5#Z6H;GUSro8=@OCX}$@odL z7h!lEeM1R?T4h&l>+9xK%pW+LVhB*Fi7KB2lLGmyM`VX*aT&GMJw%Gbw-a%q57vFdG`$`3T%yy zu_&9GD*eiIu!wI(D_PSj-W~Z%o)ppptoh+|+NP*F_Vp#>WRsdqQMESf94#%KN>7(% z{2NRr#ps)YQfz`D<@nNu3BFppr#3b=0c07pmZynjtjk_Za$~Bj0pTd73VK#1^t$Ey zKaK|q2me!Ah*7;rqRgG;P)S~I=QgH%O}13!SnvWeUSg(Ds#$}}?}0d>ulD=*mTAI+ z*41?%pAR@PMNVqn4GEUb@u#WptXtdKd_vA;=H3yAMX>;yDXu_P43rk51+I4NmXnH` z!K{$VhKAn2bE~luSN(v?^ZwrTe1EcEzka!0ZDX#juf?P#A;)}`-28MjZZdFn`EKsV z4kS7ydzM2V^VApnqKH*+eVp2pgf=&)JiquM{O_s^ zSZ;5jiiwB`78aIlIya2qU8Ph}J?&3Ng1A!vn^r&oV;#tssDOiqmr4i`C3o5$)lxUhvz$_FZ!5^!2jmJXtR)WRD{eUFusq24*x1L`R(}6a zpWx4RLi3Se{YEi%#xw>FoAnl(Vod=Wbo21&oSA8uw0Zkh1b!aSRBLnRdq@XdYx!p! zjyGon=>pye5CdCVG`?m+`^pB13cc3RobLHEcR&FY>Ney0`(vm17J%Zxf8*-P4TY2y zJ0_;$l_`hSG`$KWue7tXb2P7i-bzVEMrMRkf{%ZY+cfKx72B+Lo`)mfzj*%PteNSEx8O7;v7<(5S^rxW4U))i4lU#-{E$c zB%Rk?WHd6QDx|Zwu%LiSBQiAfIh-KGU_W^bsX-mncHvvdN7$!`0|KOiX!;BfTGjN= zEsQ4n#3tg+x*Hk4P9?uGp&%HTYurK9m71D5Tj$6J2y*1* zr|5v)fCD?1oR%VNZTQjSd>2YS0@T^Hr7!!=!Bm>O$F5on6-v|H-Q8p!W8M}7 zwC^c3TNrn1@T@h};7BrZe8{Qp2E-4@X#PRrMpgK}_t#G!=Gw_XLdOW}#%InFO#ku) zZe9<>`iBPvx-z??8=cl8Z(jFZ?DvDok-Jk2l%@b%27deq!>HSa0;O6BSnB{%i^>a$s-R)Uu-(Vo(A+$@W@}hjSC^#K z;{v{b_cs@qXFT8rtx6Bh{~_nrIR4et*l4&ocVvG(fU~``lWjG_ zXg*zQ@r*&WMWsN&c)FCJvewIU$kQG5Gf4g5l){nNkf0D#-!H1Z+qe(cZ}m`XksAEM zMs$l#EDA~*KmVAIFJHbi-CYKV_J8si1hn*!Cy=l{&6toUzGwWM?&C2>*-{)E_|DuEzRLBbj`}@{j zjoWm0e@>(P_X^EMNVk901ex&g@Mv28*^d1U7&Ac7CG&eGPB#5as(3*wT_rU|rwvfk zSNSiIy3H;^^tdtud@lPhxENG4G`QanWvCo_Z-F9ux7K2|(U{NLW*H&5Sgj;51dFO~ z)-Jhn*{+_!E4l*A6AEY}XlWvvns@kyZQpgaImyZ;g2Qg-? zm&~^l+<>2TN8@?<`G!CGVrH9<&`nHC;x)MV_=qGTi34V`UIvGR6ixcTs5zD|Z3(!0 zdK%w^r}&?-i7mFeqE8fz#M6#2Y^2Wnu4E1Rdivf|dj4^A=GdtSFQwPS`l((TJ*tRu zMi>r`A_W(hx@{}i!n@Ovc6?SRY9nJ~I+NuJJuxUJa98)}H>fHR0PbMk(lI(Ra<5QD z$JJJ*FHZaWC!c3zO-%Ac&|`s; zFPX&=_c<1pX?eTvGM>I{2Cd_l>VaDVGqWv&{@DD4#7@k@8>^z~inssO+;Rr8fI_Bb zQPTjZ@EobQox#uMHQ8|fCJGJ7hM@9A$#NgCvURf*lZ;A8Id+o{|BM(Y_J8 z4FCkY?E)ewgP1uu0zhP{uC4(@L}XtuVhbW#V8s#akKW#&3qIS?9p-xULnGi~(Y_){ z0D4R+mmPvD7gushim-wLIspMeu!7`wz%~OUDfgqhJ7HE_bNCba0NAYFJ&72Beq$4p z&!mgZ9gAHgymP$4p^<@?&US9g-#&7dX&awzX2PEr$freu1x%RT?1VpM`S2UD|AU(w zca!rGP0bNdN3aI#z_U@qAFosbZuHVWeS-ZekMs5E?LmW$+u625$h@YuX13T*TzdzX zz^W=1z~ILu$0Pba7JPF#@Cbov0tXCHIRG9WVbxdgAvVUuC?phc`0SO~G zGDKWbk{YNH!Lu6IkK%(vLt{Daj!;?U$0RoS*u2&2*ROE_e*645QShPN5kR;s;ZF#a zRrP@>jXdEI5z%p9K7IZS2ZsQ^3bud4W4+D8S>|m27gl6sU3PZ)$Jtqpg_Dzxe3_)| z{QLmBHq7A@Cn)IQc2HLQ+P75#7}o^4B;*14FK;5^3gr9uld7sPn_Q33TwS@g&G%mL zz9yWhSoUjZ;F6V-t8zOb7ryTbdhFTwsU9!jlXaI_1;Bih^Bz*~T%DnT0ffVuqrb`b z;TjK*33pIRWofUHwjzI^4Grk6|M}1==OYLO7a9S9NwvZ@q_WaJ`48w?sCUnitA{NMJ__enSLh(SKdIbg^-cuU}o5^xrWPXn`zXUbs4o)ih^mu|h zz&ne7;UyiN9*6#dFW{AIqN}Bqy3jvzes%`e_~?6W%JzxuAKC0|$q4d!Tkyx!6i#`0 zdH%E~s8H$Dy(t`Z!*GYHynZRC?D>G%H##!1Ta0V4zH|mx#roE}S;YJGKPq=I5{e(j z{Zo_o?_YxQ=i=gma#{xPn{D2{2A~d+mg`FgQuF;SdOZH*D1b+R-++O%+s#L&E5FvD z`u8c)>9AlVc_53JkLB=`7OMx%c0M7OlLOHVNa{}%?(Q8ZWd z>e)kS2@n3>ShIEfWBE~+_{m>p0CSA5s|W zMozBG1D5EYp<%`h82+EQ2-0bh{lf8C@JrftpAZr474JTY8Hl|+DtYsG2(-c~r~W4> zWCDeqbE-HA_XM)(%(&1Wbab4Mws`dB+Nn877PR99YIJcE-QN+Pk>zM+L;wxA(y8Ao zzg|jOx~JG~I#-JW8F1vn+S(;=bYGAY{Jy`X9cgd&x%cRtntC?xx?fhwsU~LXi;y@~ z(y_FJ1~feASGe|W3A`Uk4M#iBUcU>VQ(GkYyAn51)anpXU0u|R3m0h{EId4P$ZYGa z0x_=>942PPzyy4;ka4dU92b|FSNjQ`sQ90jQSF`{@$IP^y2GXO?l8QUYKvbkBa6K< z6D~*;)s`_E?3TsM&AAcKN&V>5TVuX_IUT-``#Y&e-3=ta7N0L48&BI3X~|f>2@-PI z`sMb@um0KC^LGZ^4a6@wnH%D;@rz%r(lQa=uFA^7JJ~KJ&g%|N}+31IX)8S;szsE#bvhm4_4Hod{lO=l}$vAB~ zekNhY{t3bA$$7`%S$b_tfr5%UR%RsuLf}gZ3M>KFqxG{L(n zs0cbfM!Y*cde&&6xjS_#6t*d6V5&=!N=OKDe|OouD@Xt&Kx?2|ILf(aV`UYY;ky4h zFyOyz?3>Q*j$5H`7T=66c9~mI5yhy>n-y5b!7fHluT?9O-8Nlp8ihNQ_I<92S5`JW zCN?$DuV4hw%#^RF3M6+4@VD1X#2gjNQt=_o-gB=^OiiVxnRM$3cXldZAV4qz$}}b6 zWCb#tBOCa;m+Y^Ix0rOq&CT6HGS$U06f_@Xwh$n@(+(0f?;{LsjN#=_QGxgu!RLCo zdhx|m`BwEz=Uw1j9f^VA%N{^>#l+?6?7lQDPwG7S{CNKj$Iy_8a>KTK7@zL~uwiq~ zX-nbt)T3F#{3t}c7iRk7mOgLWEHgRzb7f_cy|c4F$Skq3u?Y|R zf8)S*m$E4ghIEdj4Ob2MUNOX+DIo+&^#27!bb=Lcutz zuqAP=wOS_pnOH{SO7`m3;ui`~c;fdZ#-5ITLOAbQ5x&nGAeyWQJ6z;5z79Qlg`UE} z&JO3;sG+TnXPuj!4Fh3jW&P0!&jz2#2XXt>oCC<)*~UHebncg4h`M82HLo5M94Wwf zcH>7zYc1XiH-?2_f$Ap!Tph!iazVb2*7o}b%sH&aj7fT$!)6=<+;@K=O|^6t&1Exi60ST>biRG#mYO=6%|;#0XbmoF zKU6Ke7a2{$4l=M2ctx^JaFAT2DUvzRLi)>_RVadN%`7MPy;WmgJrZWM9xK>XiRcwiv-+?D9{ zwu>(<%m%kt!FscZh;-Ut?2CPF4;PY`N3*sr9V;=zbMu()h<*uMX*S}Mf5T^@ZVulPuJ`zWz=sC{pIL{= za8VIF&CqLaPEs^9j+oTc(6>R6YuBd+`1piby3Oy*$G^ddM-c|DtSG*5fBs@BGn6;8 z*xnX!1W0meoT4r+obs8CkoMjONqMP{`KBD~U<=6QR_~CY8>iTu$Pam;+W#V~dgkY+ zr%^E2;iOkv%j>Z&yHn@iOVpL1-ZC?ObYV!It*$G$sa+#SMR}#P!$tI{L>`^p-Ou{_ zX}Il=$v%Jn{8EsKEHQCvw9vsjSae_{S4nfm#bOx-lmT>SB!JfRHa8cR?w*T8`#1e5 z6)nv}f*URwtZ$az_5Ydh6T(l!&ozr;tgNf++2;uZB{H2R86jaH8E1K5P;*Hha7bX2 z@YO@(e49?~6Tl$GI>W#Se{)#p^qKue2x4o;QtQ)rX$dU+vnMi%K6Jk}cP7lfc^<(` zm+8WwqjOD`YQloJym8pI-us}@X!&K0Y=P+Z@{vMP2^PDB|KPxzNG6HiucQQvo_-K~ zeNaow8|d8b<&eGv2dgVPHq2^hXB)m%0PZG(lbL0t@jGB|z|;47cs5sW6C%*s{1e4b z^~bg942b$_}uFS zS^rImXCFQ6U|(#F=*Q5~$#$F`k70FmeSidqh5~_@^@kCgR7y|~5j#7(fr&|Qz6>q| zGC7I#+L*y}zc=-XU0&&buIgx`3g2YO)<@4v(kwlGbby7sMn=fMZG)wjj8VgYoIoH~ZBk$0 zRTse_$;mOQ^cWHkzcOdWWk`(xrkoZpf{+53kKb0kiK6cB5^PU(b>~e_7zJ)S50KjV z{wA?t=|4*dLbM{&XVxm!b#D%^+F#lAH%8+qj zVBk5(J8wbMi6jyHRG^Ugl7|N#@HhaO^uDO@fyc7Pb7yO2Ptk-&?}$J_H7)029t{E( zSSUN-Pj)m1ZVl3>XQ6E!dIVd_njpB?-O%4UCgg)TcLn+M4GkrP-xX@lkO0!2oQ(|` zu+%a3)5Sent6{oxRdJJh{uh)dh~~q-=;+9X_-WOV9Pg^B2DEW36e@YY z@uBznqz&N0IX^P#LSR69>6t*EN^>IY9JivHBNHeij=N=FNN{OZJ zY}&KRy{S__$yc$`6O(yTZy`c%-_|IIXn%s)>a`%kK-g`^F+49wsX0)UHAhUvJP0sD zdd&SS6LG)ij_<*mw(E^g=u=Q{!>4~C83W@;PR3uKJ(-9-M<;s&y>Vle*;G!>&MWJV z3YFd25`bg!MuriK0F^A3ytC}+P7-XJMtT!ZVwx2)8b%( zteA>U`HuW8O2%##T8sG69Qx!G_|Gks3=X82O6}Nm!r+qTZBB^d(terG?bH! zRT*pdSA%%)S{@&nh{y{1&8uC#2}@7iSy_=@)4Dh~#OCQdK~kQOeOSW+RuVeL=1HzN z9lmLoXsxZSOKb;+lgdgAgo(&gTGY;>`hl-#`a{OIGS!Jp!BqBv2tp z=b3tdxA)AJYDT?{Ru0H5%-(T?#nBOUID{E1NlHq7{`6Mv?rdF4wD*TdUePm0M>dd5zArx# z=q$@B>&7p~6>N`YqY6B@VS8L2M$S~|!$J}nwIj~XW@f9MpKcCj_s00c|G z$F{at3_~DurgJMf#7QPifinfDnktJ4Tzb7XcmM<2U8IEmj#t$P9(wsa1UQi4rS7XU zeukd?mV&Udv2DoPGs)Q6+NM+_0sX^xG|MM8=q7*y8M3lUAqa-w(bLmpaGjlLFkj4F z@JB;a6Ic)hfYXs1$TFB@nTRC1B*DvYf}NduP)w3PR|?J+sF22|)i=#5Ks*Cb7lSMl zuo=g!b;5sFl?)fG>J#j|&nbLIR=`{Htf83Y2rtcQoA0E`nDhF7t6oJ}F!&}=hr z3kV(D-CfJd>gvzHucp@;+S%m%*j1)2aFmDs2T%=08w1YAr=Cb)!8Nqif&v2Y!R6Jc zGGg$5D`INvx)I7XoYDLl1U(Hct?!^V1;8)XiRpqXgOz#uDXa*~~x z-vx>8U1`~$YeB!u+XaY_q&Yq=y-wiXj2(zLSO^FRmG#AFz&Q)e`(`7$v6BpYjir)+ zusd#ZAex?@GPJWRICe2@)ysevkN`OZvIBws;=crkD)P1qBu(l%=q1$zjC~-5gaSFp zoWMN<5KrLj0*Zyj4!8R*aUz30g%nNxe-7p?IGEn1J{JIRi2(aCs9tC$F8;3M*{V`a zef>biw)oJ{5OfAtSE6}&eHo?Got?zsvBAM^l*we@$EyjQoN6&iNnf7Zs{(~`syGCA ze#uWe3c!-Hb8x`Lk>llq-UDzJ&8@5`fEDvkv>HJe-bg@DGu>DDw5Y;Db3khWO1p1h zKtxB!t7x8XE+|&uspX-IN))WbdPK6nVf_J=sGwuGNGkIH(oODS(OF~LkyxK zo!e-7CR2+num~Ai8u^#*TLTlWRGIp3?g3AMu-l3+L|H3kE>*L{LIOrcYtmjX$_E?c zFOOvO+$})zHtY@+1GX4!mxBkDO8FR0oK`&~K$?rl$RIy^7NU%$2aJH7-@ik^>gCI? z+?NkqSY&<#p$gD?Q1TVH$@1r!mf8UvLIz|(R-db=nC}IfnO9^_1d+jR?KKXk1K;1^ zUsNys%&)L|4gJ^7eTSn;j8Xlg6YzAwCY{%Q2>gw9kK-4|;wax&#*_*xL;zP8* z|MFg<&S_vqg~mhYDT6J>par4{_;MRBO; z?|trnR*S*oUM^v_bJaT56&4 zt+Bad@&_D{20&pXE@_W=c(u^o6@(6a^%bKm{Xl}l2UlLPSfLxhmuw)B7ar|A1D*;g zcZ*)_7ND7ubasa&4NT#Y=b%Fsd}y!Af2nN`kETAiFCS;WX|%XuhI?Kfg031o)`rEi zF7cF&>+5Uaa~Bd3d6EH-05x%e%ku7<0-ZWN=*oxzYC{MXK>c}ZPZ7RPPve3T?qgUD z8}Q1!cpiduIKia1a&a(!eCb6ciKJFYx| zLHyhw*oX%9Gh2KfZss|Gp)#?NNmTUg!t>X!ZURsYjE+rpKs}ixI1yV+df$7u81;aU zx9$sI``^*)zpfbq#SajTUNADEJt$;C$0{i+t6C^X9)oE0&KDW@+;dBSkl6vu6#0>5 z;LFX&^PXAG6vG>1VVM_}P`qTp6c!dfzG(ZnvSJVrC6$Pb$Fw$@-6efqL~TV!S8KV5 z1f0Df{lAsaehMu6poIb2eDTfmGGp+--bg!K$dBw~8zpXud4Yz#hIo z1`B$7D5oRB!+*Fgmvw>mA-Ih)?FMmRHO)Vy12XC(&~OszbpyfXE8lW>oKb_O1H^&7 zsgf|k$2(-;eab(q0QSh_#p9=WIlXXMI_TUXEic3W*5&;(p zplb<;lg5iTsLH}uYtWto7}y(`1Z_<z*!mfcnibH$@yUqcz14=v# zI6{(HO1B_s`JLFQ4zh!M*8P za6iSwc;Tg_^iHth;YK^9={T-nAix=1xct3l@K!}# zz1I)sp2cx9TzT(eXHk2ziwYSTxz_qu&g8*7SY_DTN0H0JMQIct2)rE!4-aqR+5oz+ZWS(#1IIc;iHl~PDYl!(n-Eg*yHf%&oZlO86fcd~dC zX#m(NYV11*go}%7mTxx6-4|GYlKHJ(1I6f_#T;)8;~HU7NsW7*`& zQ$-B8=V2wA4XL@t2g-Zge0-}jWod@i)~c4eT+pit6h00v^W(!i2A55)tc&iJ5_72b$j`r_n(JnbowH z`WjKiAJPj5yziM_tB2g-jfeA|QP++0=-3!$ynf>coFpcFVZb1Shlh_=8p1jqE=cXN zQST(1NXbgmI^V_uF!z$08j;Ix$sej~Iqm3_UjzqB^4QGRc5s!vlZGE`ZM9nghcwvh z90}a6$`U2mGOfDL1qEwNuy@b^vUC|xAIYhsqr<$GyXt=%nUsWAe>6+u>KP-6#V_sl zVzR+5^Z5jGz10lv&qM}HIA^F2@?wE!;kfN1$ic~}DLG)G0Nl2UFo|N5#?dQ{DdpSh z6J|EMI;`Hoi?(^dHxqIIHXN}7mKwOUPzZnLJ4wrulhZDK{|L+MyQCuw)zErPQW^><=D?#&6G)iP!3uJ6dP48H?T<))Zv=oYoBqWm;Q6#= z)(3`HvnbNp8rO=20|0qHr?7oR9su4{`@0{{uC5luv@8kfi#4;vPB+abzSjMBq}hgs z`L;|7py`X0-y<9ZO$uOP=%=BntgHG6mI3NM+YRY9aypp9xxFN#K5YvQ77ztQmp3Gl zL6_VO5(iiiCOq!|;~vwDb;EeskSyT zfipG+O=NofZx)oAFXp-Q0POW|Y)tuWGXiWRLO>!0ektYoV$hVaGfwHhA^~K>_rs|S zINz_V9(|H4IC?>^UA(~8&=0F?l<7R4XeTEp5I*1&AM zNw3p>$e{KJlw3G2b#>WH0lDl8GJcO&jlRT!K2N|`C38B5nzWYL^yiX-0+7xv_k81L zl7GzeR?qX!K-A@*UPVH{Z7q}J#o*=_7a#vwD%1DlZTA!W+lzY`D=RDd2g?}cUey>< z!Hcc|wUWG>i=!9{Zm;bu1GIP`Bd~!%sdfN{qtf8vjj*PZ6Z>n0lu(H%Qknmlo7pXA zF+jf@poRHdy^dEpU?K1pNMhuefoLS;n)-A6RlqUgkLlNa6ykkzkw^q#;o|CTX>^1$ z1sOG&`Gie)P67hDQMrh%W_qekWfFM5hE7&ILQ+o64h8Ko3gk(HKzkXWHN|b8W8TlO zz~jb*TFrk&)zJ;G;A?yI$sJsg$c~Q27))V9Pvf#v^6>4Z>i#)AEG{h_x^M%WJ2>=Y z{4OXBwyj_00Ypa!fh4BU26`yh*669{kMG4BbGg>m)|h=eM2OWtJpUE?oP>nonGXi$ zSn~{MP%7fdY}2b&eSe%giskDoduRO|jpRXl=U%KO9D}~MH|foc$_Zu+a7BnJDn^?$ z0uh|uZd!J;9(=PHKpt?W`b?U%I0n&Y4CGHh;{dUMfUC^DiYX|G{0+MVV}CXD^{FdU z2%<)y&uCfnmE+>f1Wh4aes}0;Q(9hc6SwfUAN|gYBo4{3Z}$ zIy*XqH|xo8h(11pu$c|TAo*Y;p&)f`vlwGOf39VeNgGxQ{NbSPC#RL>o@0IedQ;aa zBv>-v9u5(@isfYnJd~91o;Y4%%1eb2u}%l%DDOay!~&hKtb3N`=2;R^hyK;TMEjDR zT{Zesyesg3# z^Uh5H$YBgD_u@)Y(qDx@fg@2c+$kkhp&OSuJ_ZEygV2SV(?5UgZw3iKbK%PA2$j^p z?b!i?~=;b z@!i!=(B0sS4F}j1Rv=9LLRx%^ITqvxltLVJuTDFt7f)@!L&O~$0lBueR*pS$OW=`yIPIu5N=QDdI*f{TUw4}>S z1vRr_05cn~Sb%OYXy+F|icrAOaUn0?Y257CThI~&3-N!d*bTPLGhjcL8Z?I1GT;vK zIJ8(o?_5#!8kXI1o42<7P&Ew-?)L63kQOwLn@475@Y?N`U%Jlwbc_4yv^YHjrf+WN zn_A#bmXL?!UGbk>d@TPDHLp%+dd^SXhW#+X~vsf?e1>&?EG)KqZnRaETTWn;B^jFeerdaDUECW z#JJsc0n~4?5;2~jZDJj;D&8scBWdkIo9U_nCh*9>#aaa2;Gp-pJE7WNynG7f zer)HPU70#Qtn#1qM5KWu3{*@OAeYV&f&+rvGMZITK<8}@#-`J5TV{Y3m-G9cf2`C3 ztLSV>Nca(t{;v8*{1;KtS7gvdEx!sz)b#xfZOBn6h*aKy9Iq<~(zGgo4l1XeaRP}b zk|YqA+1cX>5p=JD7!)y3Xi)qh@Lg$PPlceS-k*OSzN=1yww2$*6n~D#C^|lLA)t=d z7VSG}K1CxfjefwuRO(jzouL5|d*h`j14G$!*ca7+lmLC4sJ)TUrx#h61>KzUQ~reC zsaX2@4IC79fy}cMlSYN*CD39p&_wm0I%pt8B5(Wd6=W2^)!ARa`b)Lvmazcfxw=SG zgBtnr=wGZ5fR5l2lcP+~K6{#tWOS*AwSE5jzGEgn zHw|;0?=gvpsPJ_a$1Z>9`_2b~hPoV= zgE@RQkNDrHQ=rs2o`_0g9<{1e-KB+WtI$vNw%%T1f;6Tn;4F;~u^4ONp{J*ZLyrn2 z(;iC2aa8a++g8e7#sZw&NxPgNFm~O|I^E`eG=uK&N|_LGACJBQAsAg=0YXikmC9%QV`lVAOjKrz8J`mjTfaU@dsM zcjd8@G0xUF&I&D#y#URWQn>$wU5xF4|~rGjpx1kj|W`0d`$3^*J1c_80G zFR=abiVtw(!a#tVjm7-YTMNd~KP|&npY9RppSWLzPC-up^-Msx- zAB(xArBPR)vvl3#_80|lB;!K+oX_``W@|jDfHnuge&a>J=Yj(DWfdKSDzMtV#FbgZ za{Tb&)ukvZD(czcluESVJ?Q#U?)_R(p}+fi9mis4d?U6UCKMSx>C3|asH6lR&vIXk zG=c_q*))ON$!BxW&G9;166-}HdG!-C%6D-smxK2mwB=bJG@*ib9|USxM^?1!m8ycY z;13L->!51%zty_G$=F`5V1i*%N!#_Nb_z_=04u%mlh3FWO{HDXWen6>ykkO`GLLM=8v;2B0ifSnI`RDcoW;1usZ^s%*_MdoU>`6)7#j2mYMSoL-?CNjL9j7czgz}JKuKkn zmG8pz+HL+j{K3Jrzl!1tz>y>5KoUR0^Zs_Yz7CS^3ujGeESjnCL{=tNNax1%eLSsr zK|R*!NL7?{Vlu>|sng!(4gMLJ%(Eviz%jjYyW_TINK|g52EEO|t*SQrYWnsLlY%qU7`@`Bh#${+k0@i04 zczf&*=A4Cpf&TcDDRq5mIdVNrpZR*ZV}oAMv8Sg83-5e$!7$H11^@%|+WK_a{P6`Y z!VA!YjS|+b^$L+0NbH#kg4g&!h zRsc%@pb@P6og#9@Bfn?xd&Yp)K?Vi}r@c9~$|0t-hLx&x>`*K!c_=XwyV2%-v(j8( zHv!uD+abOWRd|3lime7G0s68FXbl56-Q<+Cj;U_3)n|siQDjsJIVFmqp#hivPC45p z)N-=&Wt%1?amsUGgdOoX&r|k=fzqqEzOBE%T*d`U{(tPfc{G;&+b?{nq%>%fA~YC^ zqJ+wrRK_wVGYMrLLS`i?LMbFgWy+LUnWvDU%!JHC=8Mep{+#!-fBV_%*?;WyuKld{ zUF&&w>-Sr^@4Gm!^ZcIQ?{R#lBanE|(6-~MzueB>j)FvX$@C}@A;T`W^5Xex5_}T~ zFyWeC%eDCJ4lS~!t<{THz6XWr!CzCzPo`=>|4P~Joa4AdyHe`Id5g|NzuNXcdk@*< z<(e?zWUTd~l=0R)jXig`g)&q0uY!oD0TlsYv!u0EEkNNtZ<^uH=Yr={7OH}8<~jOa z8sFEHd5wWs8#pVTJbQLo`5rH7AU(B2`nPW*CGrmmJ0?gkp`_C(BWd^h??9uA7!vN+kGP;A3jJbw zMfug(hq5e(EWEualyr4<4_9o19oi30^0E<&0x@)|th3lhDQTX*QfNDEVmq6Li^J^91c@rB?9s=kn3~JGMvtp-)5k>*TM@!YE}hg9qD0NkyfP z`rucxDeP=<)2Re2(2IsVr#y>G_P6qu2iFF9h7&)_F42 zBmr|k*9?VQu*RR?S<}B1ij5RM@el>L&bJu-%gj%(US*e7wh>Vt@Tp##C<%lw=6AL& z!)UX`#h9O3Q@y3zqULG$%^X6W3hgUj`U@K%?oljxW6_m$>>Th)uoruUz5>^K@#X+G zUj4nIp^s_`UOzKw`CKKOiA1RGm~gkEkaI6H_o5j*!Sk2)sxOm=TG}7N&yY2(6BQHF zHmn#5W0uZ4&At8YbU^-jL+%}&c$Ijz*-X>R zw^^<}JLKDHGgw?Mv6iwZ>f&uXdXD&(QGTdXlx5JJ+}}a}5V=c5B@+Jqeuw3*UoS&R zlspt)I#i#b5i(~x^Xm+FJ?hFbKL;DRG0t3eCPBO0#!PQ(dwVZ^vmVL7!orLA9?z13 zPnIHw%OL;z^U%<3IyyQDH?ye4#A;|og1rC!(Q)fRSeK-9fbgwj=!!)|L|&h>pukzI z9UXiIz}h|I=H?rVDji#oI?i7{daW@|Wm_~`bZvd}CC4R`ZD#wWM_;hj*Vj+spafa>YC*UyHp22-v4Ma6mCiZ=|B;I?%0Q^#{${`gfp z`2rzN@Rsd=_cGK2{Llxj_DncpUcTy@pS=QX7njf;?Rz+?4^R{?A2;Hu)YC20j$AgE zeG>FJq@<0h!5$=9uJ%IpqLAlk`=s<1K$XLsoD5sHPT`K7m>PIu-ywJOK`0O0mtz5bQ0R0Nbip0o`0S0B zl`lZ@6_>pYcZp2dxffmy>d7#q12NO%aQ~NT48Q*`!GHhzAO7!u`#;w$@Sl3i|Ba{R z2v_s+tmUy!7%|^f=X9KtYu6Or4HesSPdX3cp2RVcg)ft-@RfAA)BZX)0xDo8owAX* zqtO(PzkxFP!vB2hHbfWx`)B{Jd+Yu;t2IKciSh7Jyg_WxnZQu>L8U6_PF*VH$#455 zC7+aks?)Ff9qsG8gQ#*5*|y8)$8I`if4UkSU2?wYu04Act=<8?TYvj_2ZL^FeUx>J zmzP&xnp8Mv$7lG-p^!QRQhnFc%UgDCE&CwuR?^;{Bh#2V_|d%kLQQ=M+N-Q(Y%n3|w)ZB75N%Q5$_O?B@+F6m_EZ!+n?$*E@*e_Y zJ;EVC4X3aN70sm6ic1l9ZE^_=2=I*Ol``z`^`PS2=8M9C4%215lvSxQfsVBD)ND1!1sq$a1(-n@qt5 z`@N~DX|ijF{edCAo5>xuM?C5ZbVSkGb)y9-n>A_CGc<>(mhHV&-_>6WtD9$rS~Z53 z8SA|KD0b2Ij`Ti+fT0)Z3b2LV3~4(cXvhm-jgmw_bFjOzrgfqhKC|dkqjzUv?phZ* z2Z*Y5`p{x4&UXC%O|U_*Q%cH*!8NvwcpJx=1Bh^};h9ydb8SgaE15aiP#a}qB(_fk zJb}~PL>gdbDjE4naF2T(GTRooiM zMr7@%CGpEMT)qd+P$%ioZSSzNJl@5S6&5y2^xn{)bF<04*z_P=WJe*m+$ zVR`*Srad4WZeaf_JAO(q@4%`#0`R1?@oobV(MXz{o)!mf$R@k6Z!ep3CE-ImF@QF8 zs5T`{c@af{)t{e?W9y@GU$e7|J3F;cQ}@4=6WL56Y|~?1ZWk3N`fTXjm_@b-3JT7Q zw^LE=Jd`k_e^`-qyZiG;2tN>6ciz+6*QaM_$o8f4Yl{A9qo1avi>UFB>f}8Pjc34X zRT%W6K)3PJ8A1;bOCB8Y))M?84sZ-~1Mskmnwmngve$G?^gSN$pfCJ<)t86r;=bW8 zz=8n)Ql#8`20T;9aR!Fh3aHc`z$gkc!tOaflUvPW7pTdqC-?WoFt2+F*b0$IUC2Hgz z1z1y2QEg`wIB*@|oP2y@(9%PFSF*NBg{OBTNc`B*kMqjqJI5*h`P-XBsm;1l_A8V8cj=z;S}oKbxqSJmZtt^z#OzbQW+>(Co{KC&#Ig@{MmRSc3 z4Gj;2xQL?Po}PGwsS3-_w2k`bok& z&P^i0ru|CjZA*Q9@sh0xq`FimHP7purkLnIp+hjpfJ+P0htDFDjrC5Nc1Jdjm@83p zIjTuv$X~#gUiSJ-->yCM9BM5&s@w@`)2AF~hWwgL@|Er=o&c_Ey42&;7~A&%ds~9` zD&zIHLQk<$#Dt*+fO*Hm$H%AI4hbTs4Muol&GOaLw|H!J0ABV1w0Ip=574ChAd(P6 z>O=JU>uVdK?)JnM4AHA6SQear8(Kc=sD2U_-zeS~H*omeX|BxVi;3zxYa5yZU)iF0 zW@t|Gh#qVg_1DzWs>?KEc*b~kv#`_b)tfi(FYbKxjAVfxs3D*y*g@JV2PZt@w-=_c6^z`>{GBRTSo$C(Ji7VdF|Tj z4}l$Gi|hQW?vR*ltsH4e^kEXtjzA#8>+@Ct#pOf+C`#mEync-`cw3FnGsBb4=KZ6~ z7YDcLd2-ieS32Y?zeT5viw~fy@IK4WLwtGq3}4`@*7kONa+nsvPIot&b>?0GrTviT z*aBGkuw5c^VL`Q&`LZ2;q@W< z-8+`=^5qe_kG{3pGC)*+v1nHz6%F$Z?(Yz4v1^3{=cAuqTl$IQl#~ZqAt9G2 zo&yythCT&N&jCKigx^ONT3auCb)2O~Fmm+d83TCiYdZ4|@P3c~_ToHHAQnMEDrUF8 zC-!q|Kl0o*s6Uqw^2FcYD>imGbouAClWN)9A&3oZ_Nrlb*^FBaQSBkO_0@BTq9f91 zaGSRu6xsrhXg$M`qaUUJ^!9G2qcf_oe#z!bG5Zm?t%^j*c=MK6Y#)5cT=8}K4q#>Q?1Atx>M;?Cq?e)_FaX)$9bLe(==tJfJkBnbk5LmN@%OapFZpz{_RZQJn>mGOo}_-(%zC){m`L%M+S!!#LNPIp zz?Bu}5b?UFPlh_O9HyfizmI@J>p{BB%``(kl*~_IwmrU&RPpoYW>Uy-9QD)7l*iV2 zIPWs~LFWQN-%iLzi1lYRzGNF28M$v*|N2%9qBxdXUt3K^oDy*ZH{4vH7BiB@|v_Nnye%_gbwz z6-5soq>T)bmX&^$C2}O?{qNdZNyW^bWnW7>yQ{#;rmAX0k02wYCcMDC>m~bFo8_IT z3)vUM3wV}xkPr*P3+IbAz7=%ZY4kJfing|P z)L7_~C!OzJ9Fx#p%gx%deS2|vxU)CRsj&i2Ey7|#LPM)e#ZT_vc>JsVKE_1t7k*5F zo3(_soP}Hutu5$tL!yBg=Uw*ZT}3?w>tbjdqQ-(hrJe~cp^}Ag9~I(5s9P5hlCrPu zs(6HMeg4}+trkUt`5~Kf?|c(L1xut(y^3uhSmkfuz9B;XAi-Nz23A?kRi8i}`g_IY zM5JFLc|*4|Hw%ivasY9b&;V?rqAEeCHJH4;P-jKRYj_sXka!{{pnV`R@A?ZqUSNzG zW!pBQonuFI7s+Yy4-z$8VYTy~#eyyPJo%t0swx=KD$c{yq(bo`Dh*G-+qZ*8@0iF0 z8o**vGS5(#eNAwNx!Y5v%Nfo99o?~CDd%0swrFb6hFT(DyE6~&2~u%ElT1L^8a)6W z(&6c4EhVMB*RNATk54768poYFAq+NzXLR$XP2CM!_tvGVFgUMN#QcH?3Rp^tUWvfU zN`t>OSs!gl7m@Z$w2fgxQ{}Hy`ffw`c^CplQup8>hfQ8ij)qv?pMe5)3ir&n%k?Pr zYV#zx?~ONON8~O`G>0;7;Ab3s29-)Hd~Aj~?k(Hr@>w za9a~$S)5YVym|BWd-D(IKJ`|!GYI?|k=%)s#~~(Pj~hEjF@yM2o|cyMBsF=tik?mo zP||@ongi*piGuy&MG`?P{(LL!)#cjpP)=m+K-!;b72|c>HFIRsF_CsH88ThEa^I=T z9S79RXgeLmwR8!i=-nZW+{MJi71A!RV8>_NO^En-Xzb_re36ooDZyPMnj}*c$6am( zOj%Sa7b3KSin*Jiq~9|i zj#y5lLg}I#`Q_G4BI*9B{SeqphSZvZM5y-;15yWQUX1tp1Bfq_ZozF{sFtM|5JJw8 z;i~pl*lB0yIrHPc3DCrQyuhNQ?$|o2Atia&&apEhmPJO zjVZ^V3uaRzLf$YKHa5Pdk8vlo8Z+P!Mi;!3=4LVgInK2I-{0M~Xpg7N1UUZXkfSN2t zcWvdI?Hp%E&G6aiqP8~m)Up14)L+}$&O%s|>)RfyFCiPka}Z7Hp4<;6MyeZsT4=xL z;pxru!b^S??_yV?nlH-j-m)K|3-^j2DJm5h85;IZcCC|0Hxf0u7V|#F#y*8g^!>Hb zW=h+g>xs%b2?=rfZH*@ab_W<68&CeFe*#92v}=utuvVZjWj_vew?sR?+56bo3a34* zMpnd=EGq+pPJgE%n~y-A)2`!WfhFxKMwonb^4BK0OZYQK05X8({see$)=x>FKl?>n z3^v~%`x9fS!z6V736hqJ>g!YMm(29^C@!9NjQCW1;Tjy()U%5#p4(uv+XvF)=`jia zqwF!g><^`-xV~OcS5rxv%zXNUqxkiih%@(V50fmE{7{v554~_>wcYQw$~V!O$F7!{ zmL?AQ8~O;^^jV_ZK`L)!q7oIsuMwRTLN#88hKkQ$>wtu&$6s_^InEzMAGFpcDL97_ zUR_dLya8fAc(E>f&5frRH&OGNwQZ^jO1g-wFjlcYI5UV`H-x0sy1wL+X=P>r!jmFk zJMsh}%Onzlw~1y4zgX_LV*4KJOp{3V{WlEE9UHu|6U?h+(5aj;|9ulWfJ2CJDjsb) z7*J4vlskf4k6Mn6{qUe6=K5iTMdM1)B@$qgq~sPtSnNahQ*Z8V7I48c!)Z@n&$M2K zJ@}Y_06hq@03k9ORG2b8%&bA^VLUt0A+tvpI_4rBYu6HVd5j=?kE*S8t*?3AIHf^I z?IqS$8IT(t`Y!5?2 z89sjeNZ?>N041Bzu58vXe|9xoBrj!rzH9gXIXm9cZZYjo+8uikGl9`5oF~3OX=!Ph zT8pPURP0+6~~UAk@NKkEu2F7w{-Z#6}^-NYyZkKEjDz*Btj z1*IR8@-I1N&wP7IdjFYgRX?7Wh~=%1JVQDx;60oKWfUxik5Q~_GC-)+Lmo7Go^6#- z)uI17bGP0ILC-XhKCwhlBOcaj?3dLFxjekzwWZQ#w#^pPY7T|FiEM?gLJ}wuVxqet z^#0^DN&0px<#um7j`9e5vNn+deETn9G=Zy-3TZlp7?u#&b`J1(0C6WLF%Uz2c9EX;pbF#R+1_9`yog5EY&$hIQc$o?zFLBT5KO6ok$y2!JKRBJ|jFSXJe}tLl zSDpzwgf>s1rRO!RC6zp;jZ9uz4Ayxbx@;FPgR1AjAshG_Wz}f2Ss|EYT|>jo z8#lTT9U}jYxyui{+vb+-u#3>$va$L0txS5YkX)Z32<&+`Gcyedj?!1R??qrh3rPOm zbad=rV~8#>>)tRAycFBt>wf!yScW}&dS$lzb>X|`InJN5+8K-dQ=$I3wv>IPN}E#4Ch!=YDHQi97=bI@fk zewv`|NV@L6TpDJAgH@jy?Ti}a6uIff0-8&ftOW;?9y_&UX zRw1IC$aWljmuFATzkU5AUg84>>5uYreU|0kxGPWY07*d%`0lUtyHF}HyRDqawRq)n zd=?(16x%980-b72^L+4F*lF%oSH9>b1GF_42?5ewMenNb-wSDw7MnGlDq*Mm2r6@o z_Q^P7K6Vqnqz$JuGIu4&NlO=l;-`$bDs40I+u<3*`kDQ1v$Rl2vrxS6o%lUfbPlyJ zP;1FV&S6bVlhN-fz9LOy!E)4575T2O*7S3Sz83{RL?yFfFYOV6wq53hi5RL6>v$;u1DEM!b(zMx#mx`mun+-VXlqv%j z60M^Sp^K~@)kseOYN~nV(8jvuhd|x;&@pqL6IPybWPN)7-~-_QeLW=-JT2_3ta=L) z$7&NbRB=}Ad%Srwv2tS@jJiihIaSdWRcg&bzHW z{LQ?f@_1qwvHZH+);%Cj#>-C8CeQ}e@Z&Ch(YHdjak3Wb9Y{G}rP_Wu;_;5UbTuV{ zL&8)cBCK+%m-4fdQ{Qj{DR#X7T|AOTSyiWt7F>DVASeT>xAJnjd8eaQL8#Zj{ zkM>f0jI{D7zg-nSew0r2v0JVzZ1rpd)si?<5wLIA9+Cuf#YvMc%fItD`MyX>ag1pG zkMFblh3P+0GcPJHAi@;GwBqF*_kmUOK5aiC1bukrHFm_b&3p!Y_feIc|NZ-OQMvtf zUbu&#AQdkV*&=_O5lR=grPL;VFSg=9z?*AKM;*oU;sh_^Z~g0+a@~J);{J!Ux&I=B z?|)=1|BVG-Ozqte4;FkTtapB+%boi__NoZ439>kfPIett7+xSh8Y=LoAZ&0eo+>IG zlz0I18^}*_?GD7I3aT3c)O5z^;8S0;$ zJZU}m20!gDQG9HpJ4p~-53QM*nVmE4Z++T_)%x!Xh3u3cyL5ptgESQ}Zq50Bktr0jx65 z!`8Cvmt_BY^r*-dXz?Bbt-#OOy`RZ1@*B&qrgU)t4s~fpG~nLcKa@N^CMYQJVGf$F zsRsXb@ztd;un=DG44|`&xZ<;a67z^G3d~Cp?u-&8vHuwCPm0Z;>qD%1be;ZF_K%<^zmf zElMWC#YBwwjBG=o)+J1Ah4ai;bZuo@MMZ_d2ucwt4Yc4GbFsUpr&!^jS$k$tG&4Vf zSZO=5?UWXFG_9>JeROq^LvA#}zZJIZ*s+lWO^Dtfzwu8hRTO>Y{w1h<<0kc?_2BTQ z=QB;YU2zK!sTX}WG24`o?l(I*IvzcB>RQj-G0a{#I}3 z`4M8l*Et!XxIS&sxgl183D{HdT-O(%Q}kNd_sWpAz^OK0N*6AElHUu9U1agz$NsS4 z!NJE6Aw*yf5EAlEp$l2L?(cb9ACJTL(3wjCo%-)vF5>yWt9AtMj*zk)fQ=vieO_C; zr#%Tcquuy#t^;iZ_=U9V2&XUR3oAYq=rOtG`B~Ne&fePYFfCzs1T-VYW76xFJu6FS zwXy6eE|nhND8Gv}Ow@u252wHRps4F1CK1O+Af03?@7dmqQcT`weed37bO^{^l>oD$ z88S`Yv-?FY=y-!5oqT6Xj9U{UYYX@Ek8L{s`a=X^Y!q}80d>=XlQP#B>Cm82qBQ| zfxA1YzyCOYfF~q9Ld^cmG{72=HMxD;e%BLx61aUyisJ|A_pdMs+#gDQF9dnF*G|T( zO?9l@kbIR8_5(sr%!9K!Bb zxsu8N9cF%Cx!m`YG}MlMRjQwF!6b#am6xx4F25P7%VQwv4#Zh(;@*y!^i7bMmwkJ> zm!N1o{~7x?)K$QYJ<$@O+p)9FH*OFbwGA6RA}4APJwzy|kT)3_9eotIFCp#~n4sCZ z@i0d;5Fr9);L^-}0u9YaIDUU6>v>e)V*FyF;uA0y)Dvw!2O#649HF4=9t=_utumCVKm+-m6I7=u$;MvzRP|=cK zZ;C%|y3#`xLIW4f69M~)O{8BbHmaVo@@w5a8Q4|3F|e`JN~!r0X!2j*-TmROsR5 z&oc1y=g-r;yqA@g_aWfmWJU*Ob)2^9-GoVT7mHT!=;0eet>IZsdIE%wxMpFe`K=RC zI?f_n@p@qd$AkCzh$Ih6y7?3mGS2jM8VWq=GL!C$q{0a;r(L^uKSi*c1RP~nFw@3n z<4nBM`H>d*6p1A4c#k_{mETOgwbdlcB4E$`j?1}76o6b%3!BD{m7OU(ZT zziB->@jGjqy1F_~i-Cc`)=v7(?pRK{AlVB&x4s>|5$W-5yLSir1BK1D8-9jy25*Jg z8LOX{Vj}}=DhYZ7d8mq`X=ygl6j7_Hsv=8N=>zFWDhw#4uu(jKzyoL4%1YQ__H%T0 ze5MGo^hTq6hR_x(CL|`ZiV=A{V%R^gh4Mc5b?F&|GnhUp@32c}X+}qoSS)e_W z^t|$hq)qND3m-oDF(S=kZS4wEIdf`Vjg%>|JU-M@fM%EU@tzC4ft+?_y*Fs)aHGHT$A z^K{U)9$~4V$aC`y8^t$5yik%B#tsY8^|$ArLO-*m8EG7wLB>n6*-RrH1M?oLyQ(z| zj8w%_MNosl)n4c?x|(1)Ld5=HfQBYdmjpIamQj$peylP<%9R`6U-IOxfKW_{gEAds zhPoH`^fK=h-<{VgS8T#Qu&dC@h zT;4?j5)u*z4j#O*AhKT72=%zK6``WV{*LL5yGXls?IOVifdLbm9DG;Rvc8_*NWwE= zw^_xmKtV#yGtd^zf>eKEkP9J@f-+CK61&YAmo{a>0}Q*z!!Kr>*)&j|Y>+>#pm-%M zJ^fo_tP+U?k|JSp4sAmscY!8B-gM7|oL%TzcU8VG$T#~?^uyo3fBTy&s!riR`mB(D zy>g1DmzC5iHU}C6`&ho>9CnL!vo~)j$zq0>Ko_jz`Ve{#B87#p%z=@`vRGJ|mU=B< zkXmfkjB-(Q{ntOj92S;M@KO+?NYLRwK<#x4W?NwQsi`}+a_j8>y*JI^HxX`YwVG`o zH4gG!xdbW`E0`MLfZ8r%Pewpb&uFO*vHi%ax-DF%;8SHcDR0f{@by?l2LBT&?Gf$YX&fH)R+3{%>?^ML#jaX)xnHk0ripJ(Nt z9y*+ve7uF9^{KCKDU@!L10Ovx$dvg72FmyM?<2DA06O)Qxas2rtn9FGK*_+eH&)bn zLEbnI24&E_+Hua1WFd`<<2Wq0-zxT67_~RSgb^Eif*4zkAt!o$Wz5p!G|+s?L1bJN z#8reO8%u0~$P$r@-Kw~aJ)1MkBICHrMi;RTZ#%Mf5%UmaavxB<5$tWjx)LDnz{&y) zH&;H+m(iWCd|tGdJ^cEv+)@F%>O0l%1gUTUlv=dAa`Q0;VTMg}k_Hu&qNXc)doxX2 zIkI99v7rmO1|hwLALi*)pJ?nWeF5ltFqh+z9A>JcdMrhB*5u5v((gQbX5f05+JoZ# z6ue^PDf;ECg#Yo@G`DC;mC50-g=KwWu(bEe{>I={4S8&4*c>fJZd^AEE|?=rd@?=-qcF}=0)BX$6@;vVGkye$F!UH#pcrVp>`L28bu8k`-Zyk| zF_a{A^)_N6^b$N|8gbxXlRsx=T|m$BA|&J~wz?>$GAPJyVVh`9((%D8ElhUn!&o6M ztd>{CM5GVSCCI=Yq@=v47J&7ZMC!5V{CR@8b$*htJ#`-uw;Eg6`l~q^=3||1atW2y z%CFscYjZacFG<`W==6YdN^VPwMzQ;tK;vA#-Oq_E=Aw>{#Kt+GhdpCskMO}wJ9Dp0 zGO(e38*NS`l6x>Rkd05wLGAmJ7KG+LgxRZ3zpSUSDc;iBt{A>=OZ=QeLX&jx@K@#O zAoe5~p#l0B4MTFr5hGoxlYjDlmb$iMDGY0bxCM;@PdEd|wKBOP$o3Dc)k#A3y>*`4 zB>~3{G3o@IH$8?`{cQ9vwcPZ?`#`_S>BYshjZ~Wk2rj~L?7(9hhR4txb`z6V+T?m_ zIbKAM$w;v5p>3?HK8d%+%F?p1Q#eNtnUgN4wua9dy}(p3l(^5}XM@t&`>HR4-po)+ zfM`BvDvf8+9#U=Hi?He;jH(~%jEK3t7#!{vAp2Zd6H`QF-|=6o)%K;&JaEB!6EYcn z9K&WemBV&35P=yk>t=0F;N9-)E)qv`62Rk9ZfIc8qo#Wpt#0kdE88&AOFB6p`c;(L zS1}wIc`kv*?S&T!-1%W@K>cGO*D-=PVyPnRtzFT~$;eKb4VmbZ*eg;M~b`{?Tu{gwwsN=7~%GwqR~ z4hs59eriAQd$+7|I|>5RCB0*=OICXY?1!UgwjpI;Mo-3dIwxVMs&;K{4K2!J=%-N( zM5X>ncYVoUFl51dpTQ2WI*^Nxmhj)|4M)Wb(#tCl6+nDOUKU2GdzzTjo^ zT5$en-r3fU)^}aB73V3Htryp?(@3V091JTX4T~47D&GkP=c|8}v?w^M3Xxkg;tey* z+Ue8%o>g}zV2|rxy=~FiIcc3a> zmD?h1_hUpO1;0xEbsw8;wO>n~)474lK$*I_y6irE2kBcfW8>pZ^~I~mKYPUA&XUC* zbV8}EU;FJ);RBDqv$HA>Hc%=j9LUq7AVmua2`O$*5EKwFUPv}#k@{1!ezw%|&Ye$o zkgZMJwG5VvgS#Z>3jmHx5*$jv+GKLObB_VsO=-R>tsK@vI` z#HAIN@8TFQ?ls4Oq;HKc<}&wn6+b*gKHf=SP>I@USFvlJ3%U!2J}mt2TO6u!F3a-_ z4djJ|J1r9(#*jhg-<-^9PU?Dp)~KfPXY&m{%sd?}h}p5YIxkv%wI&8_$yJN|GZHW^ zHAnf-4Gd0vZcbD`=r-M)pdgNrm|FM=nhM<9X2z!al!`W~Qx?n>+KRYpyh_`OIGB92pc~R6E>TqR#xU#LF5vKint7SU| ze!P@`Z(Ba!d67j5t%?c)BGOm>=mQj>pHd8 z8TrTbX>X|tE(U&&H_k_X%7!$u_CZIS5;L(povCNAj37kjzH zu4FM-VPsXao*ltWgjBFj>w!Pg;$ESSic{fiU`o}~({m)}(NsUy-$**lTFoe8Jagd3x@lOPN@AR` zO8lF#u4JnS!y4CP9pz4o1H()Geg4V?uEO{UrT1xM(haI^4~jY09j_*Mw1vMrZ$qEfA3oV z;Oy+&gwqFuTN_Q+A>*4FF-d~lPljz6cD|Oz*oK+GP@6`W-uO&w3%`=_?CAx~-?r}a zyPIWGE&&v&zPm_{p#euHpW)d3AImfPw48%cDBOoyXgO^seqZ1-Yx_3l$|+?}?rf6b zzV<`DquG!2-3{Zsf=5~~Xo!Y+#9y>I>U_*_B`s&u7deaBzY`%*r0+|!47>wb6~y+W z?O>2?C6;saiuaHQO=s}CcklSk+iuq@9Y1TJm<9=T;0dLx+(PTQ6I}%snl0ZdDx@&u z=0rnN&ys1eA*=tGu6I_?^lK-$-MJx?6uHyoGdIXO0yeDVcU_=sW8vfY1|YS zg(bqlZp7X(n-i~P;Y00=Ne|5iqFq4i;hP=`BaD_fLUs~FOu{g$J5iE-Syq!26@n2r}`}+rRudA6f zClK$JO7^|G4vvl-rw?CLP10(Bsd8V)&sjDK9D(>0u`XVIaqux3H-7qj^a?f74YlXV z9SzvpZM(b0a3ZRm%+c$+%6P%?GOUuS6#=aKXlbJm`F0nxhhndLg}-UF>8wRb4fo|W z?Yc* z`bv?KdN)+pXhMbVencc|ltERH$xjB0=r{JO;iJmA_s`5SpO!=${G26kvFs4B87W>O z-vr_TDP72>4VasEo5u`G#%yLvg1HhY0pLlfw`@^w4=If>~ZIb;-+B`>=k&3itcAcusxLBvT#mDByNFaym=eP8{rly%&1X3S69VM9< zB+h@s8T=iNK-*D1Nx`!`kBEOgtCPo`{q;O3poSkQ($$I6%!oCL2WB7> zfb&o5&EopXSv}!rol=8BH9Ch2yy>_<_m=uF&~34|vN{t@%dM?BHy5q*gx{!%qQ7=+K7zGfLlMBUv% zov%YCiRyXk3JMBk>8d&|T3lQ|V}qvW-R=Zs0^=HQO;ZKyhq#Fb5304hJIR%@A+LVp zr=KiYP22I*ZoD&5D`)Ti+cl_Z(NNGH+7n<*?jQ;s z@$&12!)MN37p`r0LZwP>|f&>)J93D$0Vka*{~R+yVku z3)ZqP&8IFr+kfI12J(_7xlgZ8Q(oxU1W1jx)78lQ`Z@fq@}mL*>i9U7!-hBcvX%e) zWsykn;w1dRfBSWlal_$%eO)-Ri$w9Sf4JdA+VZcjlLa&a zBaymw9^lm=ZT-r=ffTk$_5tO;F8Ke`5At8*as1y;;og)|GrXB}f2KF5C6IdX=ddAZ z-OTkts+!ID7!8WUK3H}4Z!dgyUq3MMlw^Hq{<_fSO&8tS#fp9_TGhOT`k!>c|KFD< z>A(2$9J9&BW^*&=sOPqLtCwZQ^6ulXMRTxcX6hqC;S zH~dXR?Y+$G7U^)v$jHd7?Q3W6luRH;6r9P%sBDOO^tMJj1?m1<41kX2F1V>16vi&c zr1Du)&BbxP{<}hiE!fqUt3YV$C74|gd-Q~NRfmNwDx=}XG{t_hwLVVl% zo^PO}{xqO;ibYCKuV)F0d8KNNOjEU{SS^`={?R`%XzSiE{&`SPz;Drc>juBu+6sqK zb~-gJS0plnwQ}!E!6%b`(;r9!IZRl|Y#veF`xqJZt#rbK9F&oXg>?O@nie@P|3jIt zzaZw-+TNxC%^ZR1_>^-fe|oRZYw`K}r{js*d2CJm2FQ+&L3hB8WX;8e1>--TwbVqS zL8Wl0#2ruisBLX)tDvjd--;AgWq7&B2cCHv( zVs+_|RCLbWN6Q$6EN&FSBfx09y}c{{UXa?#e4{B|CD@6}9!(|zDJVk1@Md89W)H`? zp(6|o!(~4-+P+xmM7KY$GYMT;V!_`F>e3Qr6m`7>@Fc{X#@!A1rwIAiaGD=)=oDU7 zPPs+t%OuRvzEgBIif*8{_hUxEYBWV+Q zl7s7y$#+>k&d=pSqi<>&iNx@`FzL1-a2_%aqKrhNqrR72RvyzI)l_0D=8j8vUh{-De{KLNrb*CrJCgtGD<5Q*ra1@8W-IWgnbwZ)-CieAZ%c z`artdx~mJCS1n8hfNF{8E{H!3n)DOu!Mg*MDi`h>-rrZh-Tl=GE%mcTKTn&7i`b}R zltjjB`^r}p#*2+g0g-?cLN{I9<8L$4c=shq5^W>z!mya3uolZO91CywY%*c+zZ)>o z-)~yaCeyr{rCnE7w7+fPZP-D9Z!B&0F!29)%O``{TkeMcOT(XUKftsSr?dXR`{@~% z?-nRd=eykGY>iu*1#P;nWe5+?*86Y+jVX(h|B!pe3{Z+1wL1o=U>?Pbk@lD`)&rFW zXKEm>NuT@Dm40uS#&8+nH=p6m@!8=94SY_+WsipsiOx80evJzIK=AFgY$+}jM>+Fj zb-)>Hy9 z*214S3U$o~a)HiAhwvXp3yhP@_K4@mFl#CLsud~OV=8C|jIe*aLy4R>pO4sqwDGSf zK&FNf8;pG}0vzFmwdA3>&r?ZRZwJ!a06CpE_f@A1maW4FQ^oniOGm}svJ zuZ2b~I&CGnyG6Vcw7>i3`t+Yj%$%u(_jsn9Y@!mUd?JuTMOrn9O{j!R`O|Z_>u4Dn z6Q8~eJ8LJf6a67RrOH=Jy&a4^H&x=5kC1M8)(cbKz!)fEC(`chbX@nK`7s9}Pn=pq zbeZ#T6C`IUN!nVjuCCdRvvEMhUY(QEZc5UTqvcet{nF){xVCXK5IdRu?dh(on|;bN zc(c2+DqiybZQbqdSVi4a>~9Av+_?G0qcq zpokigPz&qa7stX?fW>9llSOn<_Tmw&OTqQuJdS=(tn=kGWzCT%bU@|o$EiflEM;d!>szDVtN4Z%1e>jJ{U&HxY z6dSfc_3VBpG(@sz&YTgrw~%b!m7VCk_%{}qt8r7dN}SG672aq(%!=}I3D0dt6MDCA zBqiQ!1wl8g`ZbS8<|apm{y(Iulb?Q?kO| zG?yru;QE@X;Jesf-taD7(9Z@+w|U2*_k*Y2#LE{wB#>Kdy9A<(t8j)L&dj?%A=f1oW`OV~(7W4yBP)Npxu zW;ii8CO@)f(CstcpIfrrK;STpJAocMq?@Z89_a|cAoV;$UmQLG6SMix&kXN$N05S; z!{7U#06{E4_wnPZ`2G2@BWNyH*Or;-dGF|EGfcLV3r6ETw-I;q<;*2dYU3&Ut~fXf z=oiPf@cF%wa@~#G|Hn`-+KE?OIB!c&O%X7mki`zzi zrFe*}bg#-X*I=Yhc+I*jNQD;ML0+3d)A9C#u3Menw49%?Z?WCoxpU{6^;V(4lWK|> zOWtgfRFiyOy`;4CN}@(ay$98xk}%Fg^%VwM6bXIhzDh~jo%H-;2Rrg@Bw(mf%B~sz zac=O_{i$1kDw;5A;o64VSvG$Zv56_2G{MPpAEdc-tqPbqckmfc~NG!@x&j9#Q{I?(IE_uV1G7i>%1wL-0sV z&&((z+_x#)meY2uk+lI~Ie_tphCaoq#7hRO-JJh(EGbEI(K;X!(XEj=&wPB+TJ0ZP z&djv4wz7H=(I83_f(?4Ms-_AHSm9;v74Llt1fh~?dho~F3xazSsYr)y9i|6W@|_)M z@zO$UcAx<&(U~glf;b#uj`kCROGADBws0V$w2C#Tis8Ledy&ABu-u2^%28`^ae=B$ z|NWs*_w;vQQnxpM#9lPKOfGn-A5bU@;Dy*Tg=dw0?j_B8KC7xdI)sGq`t;zKxGO$` z1kY3;ZSY#kttC zA|l%4+_S3VZJ7!neNdQPc$pyqj56t5m!k%A?s{0K!}6)wkq%Y(kQ~V!Sv&`}zu|N8 z!xk4jFvprXkW<=aRFx9>=#GACs=@4JkN6Izzt2`yRurq9;3>k!-^r2)3m|a}Lh{6S zZzy@6(+qNxqO$p)vF7KyI=Ym}Vjd+da}S6GdgHTZ6a);sRX0$%B4;O%C2yf##xTMI zm~eIUSs7#eIRePTF2m8FRCjx}EqdTf*IMn9o|1vV!LZmliez(I&KtF7#l7xK&CBqt zEC#4RzpDZ!n%GLebcMu&lQ@nei}<(i1TvaFI!ve203BeFf+;bmNLL;^!q2xCBE&XQ z#o@v^ZYI00tTF?b7GIjnA>W%GOg!1rguwzT3G!mVjv92_Lj0Gixu8tBfnwYi6ja{X zc`dE4mI{iwcw?d=;jAhv8+_5UgLFUjnv+8u%C`L{7m7{o-V?Xj)t(&ZR*>J8ye0>d zhk;y#m%WaP+4U2C7fH>WWv-Qj)~hYo!Dm00dL#&(DnP+e(t*k~Ov3efopd~0;uOy_ zOxzl#mBN&`Ei6#nz>Tbud*8}sv8mXUF>ddnx5_KuDMcEtxE_#;R2zbsi_v*T`81i)Tt z>rL_2&BI(PM>-(rF)quL`>h6kSfZxmimZ6aW<2|b55;S^4)3ao6=%o5kA?ZN6vRqN7(QgVU(wE=v4%rID$4q@oP5QvxG?$BJoMG z!5~ulM4&+pjqcOuXgsv`PP*h-u@6U@SpY5A3VgrVK-Y&zuLmKGd>8quV z4o;jHcLsN-BF_EPL@UI#KWACZa?LAUHK=^mOd}KgI`W;c(~UI4nmTAQW$R^LN#2a< zsidvq?nf>F6wg5?GTqQ@#hG^q5CkEF*Tg21H#;YI@WQ)tWZ;XT&U(c%E}MG5bI-eHB^Ej0~(J$Nb*n3Jo zAbKTEGb`XDXzsNY2dyk?zS7jQM%D6A;di>6n^y8Mm~DGA_#*;w!w0@-b^Jz;aV5i| z^)-c`9wCe*J ziQs{~r1j)Hke($o6^Yi!R ziG!g1h&c3{6ciNnBDW$ZVr*QetHG8AL;KI?yl~e0nRg>l{8WQY+eoAnm@V)OlYNs) zy!`Lf_g5G)&X}2+rr)VkjZ@0Ww43-H<>|A37zz>efl8nl_@Ed)rM?gdTd=;>()w8P zTFvZ8eb!6E>igFaC~+Cf+Q8}p#qEOalowINR0e{}c;|SJ9PR0ok9{qxG5VSbqtJcK z?&_$_BuPS#M-VdL9F+0&Q(u?Y)X0ITsYOPFN~Gj&5MJVVZuPz7{H9u?#~}%v0p|nd zQT>+cvqtA+XQ}^Y-nHvJ{QdIe{Lo!9udykENab;H^;gG90p9|FRdfdH@T%4JV4 zuh4>eBIhRJrGVPui2r}%?meTT%HDUu zQoEZrw+R&$v@K9jM2Si?LlKo61XPlMfJhDn=7b0qDj8IAmLwTOMI?z5C9A|D=N#tQ z-M|0b`7od6uDQw8uH|YGPMvf1-tYUQH#}G;!=gHKWRsxl_rvt*!Z{p=*)CIw2oQ~b zen34U^X=i3Lm!rT!;xExdb+h$BK_L8`rgI}kD#ESw7>7}K4Y9_Rj(+Z=dJ+FMg24G z%D^)Nhy)O{oc|3{hY!@2vNAcF?)-$tbTj62X0_0@uhpOE533)4Dk{>67g!t;?Y}yp zd{qPDwZ}_VO_Av!pL{R31{nu-h##b9VS3n2aAFOaEw4_wbbbkLx;*3OCq36G$R+&q z)V_4{&}Vt{lldF=-iteVcNE0o1IyOz2+|FlSeT8~$#{}KH)%f6!%TSd=Fa*&C~8d` z%T&^Bx(_Xk6lWhy7m2GEc4`Ivx-BC(C`dKl@klKwe!2W5MZ!M>2$`qW=uzszw5qvK zGMz_@Ek8)BlKSAlGCq_9btDsEQEU>%SF^n=0^gfJ$d;<5jn}!=e=d>yCfyIIFfZNy zgKPx3d3m)_R#LzJzTvlJl-<1KdAKj#6qgv&3S#Fud{_os?s=%hpGg&%+v5tmHi23rQ!Sc{gSQYQ)zK=o$K!S9@4LS#?1$jk|KHsbyPbw2p!0q z>DpoT?e$%3C!Ez5%P7ZXd&Eh|B#|pXE>ag>QWwX%vBUsZ6omG3qo0~VCeSj1a?dG-ucPUhgtAi!! zXGv9xh=nw#GFG2s3QG#hm$S1i>AyU_OgGO=l(z=FvXIM{9iLEsoBNB0D{1FnEL?V_?8y{)gjCXAC5URsF|o zQkq-i^_s%L*DH*2p|Xz5U+6Ng@Rz`mzpEPEN@}wurS1a;-xtwQf#N^ZHrqvwp;!Qx zaLFeP=u#Q}wl?N1Hl2i~3@dZ+udBQsd`-nWtI(&eon>ZsuNUzG(!jkP|17TgZIS5*gXliftG+FFhy{AGQtjSUSksxb`Xg4LVq56RO|;Xxi6 zO;&qFK)Uv1^%B{L5jMuGFH(-$^f{&t>(**?&*0JWuzEX6m_y_ z73-A7j7#>y<1dpcDW_MWLJ6>IP11@pj_rK^;e#DQ_k)jGpCq+;;fguIe*ag$9cSNA zb}3dc9!xuCR5&~J$`Q$c+tR{%u=Yk-M^4>e_icw&d0lOshLB;8z$c-z{O{}QE2oRT zR*!|U^FORU%IW4LpLlxYj?hUGxwqHzcQ`U)LwFG4i0Z!Iz!b_KY$; zy-r~~@JN{{8WestN$a1X_tx$(Hg96^Z|heZ8{(_z=DQ%H;UDPke!ex`JfmTM5I!U` z%BYN!oTxs}hABzXQ-h*Tqv23)Mw0U!jtw0RhH8149H#P}$Fz;=cq!}#5~P|#pr9|x zW*oijv|W_NJc1B@xWDd7rDe6NC zESFM1^jJ6FmCs)-sBqKp@b@?}!YW)P zN`9*nB4_GdhQ2%p6^=M#q@N_B2r@?kXBGmHq7a$D1j}8fs>6|vI1qCHnrxzmZ|V{k zDt_&BjA?)-=#%HJFbs1s$M*J#8J?62^9ngaxp zorSmP8QLHxmnp%lP#Oc8nJ&7p)G3Q&4vV>s=@wCvc`kuFhd|Rrqt_++L|nn^$z7tc z5T%i#JH*8@g*rCZ&WMl`P!*}-Q`vi*$^=@K?mAOB+Z%Tm<}KIA9Y_HV!?6W*&C}Vw zq;@vp`3Aw;9As;D+b&;v@lE}K>Zp>7hkF3nj7}^>MU??6qtbSX*`AAdv_+v*Lclf} zV$^+Lu@)wLnXjuieezPNja4J?H}BHSR)bm65bqGNj0MPL)-cMQ`WEg#z%P^MA?Z*q zpm-704MC)Nv{J&m+=VL*Ps=M~j0u-j=4mDCumfIo6=|9=?2p8dukp$_!GFOY*OxQ0MR-F9VU{nTi_ge`mDx31zIs7 zNGH6*?c29co;->BZA#R90f#SLzSs8$W%qf8j_#wWWB&kdf%g07JF1-s3_H+Ppby<3 z%3^|1VtY?>9GMy&tljq^b%VsXd-M^5VkQbpK;=GYK3m}TW)IET zw6{!qxX4%3WilRuJ#c1x7_2wYn5WaePrjyJ-`%Ivd_@_*(DKs^C~cn&vd_i%3z^@; z05z1YhtVL?f*HKMJhb!YziFpCr(3&JeS8?JogPc1Fijbj+*CnT06pqCZ!J`(hhClG zpwB-nIYQbIC@EEOvZXtYWN0T}ju@Ptj<(0Tf+CU1Z1<89(yB>-ew*#c<;=l0_m}m0 zp_i`bzIk&kZ?>^ddmaN6CCnqAuuDX~d-slN5%dypzj=S=2r5#AsfjDC@%~4yC`ZU{ zp(+17dAA1TszFGtd0nI^hs$e-3(ZQ$_^uRok3nH~3M49GEC=fRQ%$yP-b}@mvMq;H zWq@HSL$L}B>vBr|8I;W-fupzb=YQEi@pybk-BJvYHYQv*q!15O}T zsm+b6{y1Z_tHR)FPC{^S^95bC6jg2^%bIiKXr&Gyo^7m){$kJ^D%_}|HokA4O{A|B zB}thNG`88ccPTh^l|^AlT^uaN5DR_fD@gRFf=&JQOLPaLCeAkl9B33oeUX0M=P&5U z)k`yif`T!WDgsR;QE9_+Gdot9CLK1$HYMS6Ox~&`I|94AUo(fu)#m86J2stl0^;I74!^D z*rMgFg7V4k{F=zIY1A-ybayXbmLDp_m?5w*{1juS1fg@l?*r zOi8EtT_46~Ka=#X*j~aMhvben-tHlBmvUu7_>xi;QZMPjV{oPje|Kv(6`g@UD#`$sB(@}Upp zh1m%UL z!5ilzgQ*e7>lJaiWs^p3$tryhr_(=#2VQ4 zOF!B9?Z&d(L|+??o{#_-z~)TUD+y^geCdXkGx~e^#*iAkZfS26nz8$+Ld$46FQ)*Exd^=@iVyt?!Q>w3VqK_&1(o5;R?J2|!Bs*d_pnTL=Lz=0N zVyI+r?~xBa2@{9i7rSQ{=Qzz8(;gC@$JJ?!Xa7-6^sCkI!K+-@0Ymo%^bl$U-Y;;Y zL#bW@Xa-7y+KC+^@}qSzDmnzDeIBQgPM>?SxoNUwUno(=gBIbrkm-$0n~-KWXsV%B zwOw?bWt~(^vnf8*LNh208@^W7?aPq!pNuiygu{jGah*1o;}&low1V~ zM_&S2j?i}d{$>M@ZuT=GL57U9tmNBy(g(XtgN_85WMC*^wotlG<$ z4Yq9i>m?>$n!{Jnuy|?Bf0SlQj|5lj#&W9oT5}v4-()|ji1ve}9rMO3RaPWasy2+v zw-Jy4-}^v?0j`G`oHY~>PTn*0I@|S*N;4Lx+P$_P^3fxh$As-4DF?IQ%E;atSJuJNEbCN zDZppu5Ho@h~Z(Yv@fINTTn$mBS-OHv-kz@_`tFh7;=65OT_?YW z{S0*|9jQ)3y?tlKI+*?CV#5L{yy6 z=^xwM2+pFdy1!0_ZpLXW(>Dyxz)>k0K^{O8ZnSIwYlNDs2n zPRa>#ma=Th*TI0|`s&-W8>3nNxd_LThkvizTNkTlL(jW{N$*z!s})MpmS&I5>okVe z+6$UD%0LqCJdrLUbamPhK1i*mw*$%;S#kDBKzs~eWqI8!|9kM)^jTZqq&D4wHus}t z#Z7rG1?2Cg>MY9d)h&o77yku<0nm^8*@y}?%R{)%3P+5xa6usJX_rCOgINfyZ!qvRcyTB2-g_SiC83G=i zn2gu~J0KdWGtz-|fi2zMA?8;OZ-XrJN)fzIkGS5P6zVxa-A}dp}Lj0h-R@NvF%qMwZ`y@2iPPjnzsG02>PxX`5{@I8X9xG4T39it^j5rs=M+ zF|qa0u_%)WbbjJQp{R3zCOn#)?o0Q%W}xhgxT{Zp4Jwj3;2>G^@+Q6J=D?YqHgBK#ZQ` zlwStb~!H7}C6zHbX1Wa<{ z@kYrp5IhmtnwP!ZYouZRZeyO<#Qh>>LX=JSWN&p&&Woj7*#jDj#v__m` z?MCWk3>wZIGaP5L@BOa6f@QKUqix}(j>yoJckf!EAPuK7XD0$tGKShtHvf)S#q`IG zR#cC#ppe^)x4@#wfq9?9O&#MUW9#_@+;3kuk~9DMQWBbnAVS72-7Ij^nTvwm>N2D9 z;v0<*_a+doviJERHRZuUOVTF?i{(SUaewhbK?C)i&-42C*jvu$yRJ0v+sro@fz2k> zZ>VsEyXTIj%h`Q$L*~1A0dB-9N4y4|Y}c*WyZ%|V3msTo__wh8rZc0@wX=F1eCYm8 zUM6X7+~!G4G&6BlZ6Tmdk^IsxX!6CyRIl>cmt#4LiZn=swJ?W48SI)Nb~Z7|eC?b` zCB!BikgMO5P_J8mXczlTH%+^Ku|I1yc~cO|%*=wVYZV>8A|oqSq$@Y}*6(9-46Npk z9~Uu_s6sX6^pWjrx}wZ+DO*E0lCtg0X|g?MI9OQ^L1hh2Q~}ppwJ+2y=G6TsY-Nap z*Go537wB5Q-s@cAg+Y*5F94RtJq_cMW1wP$pK-*2Z$idLuZhXD4sLaZBM35Au^5Fu zR_(mm^{MZU-(A%Sweb;XWo5yzluX)uE*FwljktaWxlS~dCBy)}b;0A;Z6ltRxVpsxp~ zw+t%c#!S<|BUVMLI)yIH%e31&I^IE6Tt}zcX^;Ttl7Hy|RvY54ebNEcrSpgPR~<=V z;ku)xdt-2C1zcO1^tIs;^8U)#uU-54a8r~@h40h8Kt_3Pv4D!Zx?VMelKlCR&>d}I zV~hNrStIQp&V{GEl$MkNCF|F1Fz#JD_w@Z;LF4hm=a`02Sipcz}noXU0B#GN^QFr>9%B$$q#mk?{P0dv!p1UlpCsudDM zG%IgFv}KDnkhcdV$&DH2oU~6x&r|1i@;k5ffwU+Q5|xNfsiZ2%WlG_g;!@lhVWxJ# zd@`Q7YVF!u9V_=}Xcf4jnIcz*#TKJd{1)$#m*8!d?K3+B%~Z)LRh`lq2VplIdwZVWSKI~`}=z9ptY$NoxRU2wKt-`l_Uh8aQ;&L$Mw+pqycz>EYEmTXcJ+cN!s z+EYa)I{iOwI45G&T31$W?BAb}o?fdYGve47=Nyp_8?B$pwmLBfpkP>ZcNs#9kXA=K_xNOlzxd z`qH~gaG8p!koDejbA>cJvzz9enCImcN{!JxlC(zuzr6_G|Lz%+oRh`O3}xI>9D|q~ z7mHkT5VY=OJ$Ux2sT`bZm_Gv?*oUidJxu08rd6a7oE@*`gV_HVOwc@Vg8}ubeto7* zM_j#loyBITl9jsYF?}MIr40=<1U?Zh?V!Y5x=p<#sd{9em&!4cznIrs^-Pbbd@?0c zhlzUqeG|;wq?FEC!?X~orDiJ4tp1CwbsH9nT7jDd^rq5aY@MmyP{sSz0Ku5()M#V= z{6L|tEDYjso7Pf(-?%l@HDLIwh_J9aS((`uzUZL&u+y~fztMkvv zS3C?;I(h2kKP%OoX57~9A0u@ji3vS@kB?G8`Ssyb&Vr#La2{9V5aH5qyK_TLMkX5J zBr&=fippYd81AiyC7W z#|ofVd&=PkHK%fqK>cCJb=Q?rpMO6kcJ%0JKn3ZU1?->;Jwo_4hi= z5$J4hj}mthM-6V4l4-x-oL-wxH;2AiR#8#WxVX&Vr`>|p)8M3K-365rf4_IF@C@g7 zru&qYyNC-+m`n)KJ3fyHZWUKbk{)rg8UA{{{p3&DK!eM1=mq%`zdfz(^WN^&-Y9*V zdN6XZ|LP(pa*|&+>`Il2PqE*dqfPmIXdnGYj1PNc$W)bHlqU-Gm>?Pd90)^56cFTjiK z!JNw%H@P|LcKv-gbC_lZ&UeGlhl2Jzl3){M&&D5KU@gYOBMW0F>IL7tykHa?hHom9 zr!Qw4)|>Ah83MH!WS0N)cE%2S`7 zY|@X~WBOS0UsL2ecl{^guLf$86PlZwZHIrHUzn~=f{IjNvivP}ohgs4GAZ+i1+`c# z!#%agJzB$K3{X13kyddycn|DS7P5urU$D+J?~Bds z*hier;qH1F{~qXX^cp0Wf2^$)DoUr|T;05VyHQZ2;qfIs43bd8+@G7EnIlknp^07R zpXgFnx2v}y%!5l|XGG|Wgc_Juh}*m|JvPo^XpprmUVGvGS7kF_3+i(|jk6f8R5jQ#N4CwDoTcLoQt*+YpCQj`;{Idl z90MGT0#tIUi|bcViw=m3zo+V7-=46KDTEPlff&&V1*3SH%aq&i)Ik3I*mlC|hpo%{ z+jeuJELepq@af-o;b2iCClqog(AGpN1~@uY#Yl}z-BK&Ktc zZzO9xcZ~Y)jnvVr_Fvd3qku{>;8?rSLfX~4maVx7*s5wGY{bCMs9^y%zNKdzu`*6P zrJXbuv?$K4@ivXhEN>X|=UM;nKC|@X>iQeGVh-w$=194jRG<|rRd1zU9k~{wN+Z;- z4b;l6iYA;1B9ch|~Z?BY4M zy8uGMaA*gjPu&+bE>;kwt6p%;B}FM%CC#h1aaP;+Pn+aI-Ucq&w@sYIjU)T{&#W9HKF?tAEJy(z~ zQJZ9?)Se$5ePv;C&e`K;Zoj3pwsKr$<&a*ap8gA>>qEYnS!;Z9=`(I4>z}jzjDOz7 z|J=k1e8k#t+9?H>nPb)2zkWdqCDpUoc7m1LhSV8OitZt*G1@c$3!?V@rz5@og?n!- z-MhN_#&7rUY}>j?k#^ef{bz48%75k)S%mX=HnAKKR;+z{3Q>u3SLMSxH5U; z04g#xrXauMMy8Ql6d=)!7?LVIB$}K@E+&|ZmpI&_Cw2(; zlJ?GD_Ux@c$M`$!HTIYI=>21Te{qB!mU5T%*ereeENuHnTh?b)o4K1=JPrRhvEhL5 zWat@Rcim+549mG_i@+$=Hy7Q`6o2fgia0>pw9bKle#vuDppAHeJJ^yzsnCxL&8M&-%;$m$PO$4t80 zxRdD+$-yEK*wGRf2M&qXMNAB(>nXexCrm1J4826BV9%4 z(CoT@ca}aQWL*60*G-<%?~P$q5VG&T7A$I~Zk0RZrYO?=w6{JZ3b(2E!}{*NAFslW zwd@q%(;6%$hgJZ(O*t<^*`zda+K{!O;!tZ#ZIpupC}$SvkmMCb{za-NUYc)}Za%M$ z%on8XQwsieceU>XXsJ=h4)p<1q1p%=7h2WZft>4^cfIZbAVD^$YPuOG5^46lxPV%)*L4Yj<{$1Qc*Te8n~-=CZw+YZ{$zsPXvg+j9RGeAr9b0V-*Cj? zByfsFyEy|JqjXB$`+`CnpW;~K3bRiG=$^vR(W=T)8v2q76nlq%8kn`j-o>h4{H*7$ z)a$ZS3q`I$5thpRrG=nsg@0f2cLta3R4#T_hAKgOr=FE!1mI5t^=CG{NgDRPj9!*7 zi2Kgh@;oP;o3K^GE6*Jqy6atc?~{lbvi|qlDBBI}{#%d%r77q?C>s9uxcxr?3;%xI z|C%WQ-@9#BP{j36C^*CNCS=wugT__8HFpLjVeEqkG7_#mNhEwGsl6D~k|K`R>iGFa zp*U5j7E{Nk9l81WPa>6c|jFt968ra(#s(4 zL(JnjY_ZDFId{PJ1HlE}Y+X!CuZ1e5;>&>uo0JZ?nVs!BqHQy{@lZ;mkx+}KFdv8g z9u}7S?v2TlB6$m6nm3nmS#@J}W-KVQFSa@mBbq=z1;m7WF(}}0Qrbf41w^nV$6dcZ zQLh?`vNU?JBE~QJKS%zLS5fW;|Gz%)t3HSfsaqHcBop00vu&~Eta9*gg9&ZCP^s6VEa z0$v3nEeKT!ATk)ykF0nvzapQBZrM z1rCXM3qK5$taex0^d@@i)$WdVB9ng)qV}QTDytkyB=VxY(of9hp6qg-9)3k@fPSqn zBR!6nT?AV(Kt5+Ek-vmWC6TNZ^!7|M73{+kuzjM;p6%&{p5ohRs5@;c3!dvZJYf<7 zgy=8c^>>FFxR-<{IUcRd4XVf{VN9ni=6CEBDI61C09zR*Z9cV(y1j`Oe`*M!qH zZ5iW<#g8vT2L`iqw)I#fW|qg+#?@=iAG#b94AE)~ns&ojUdlz!tB*Ew?+mT>qzpSk z=YJtdJ~Z)iQEt`qB@CsneSbzjFx;XgMeFXWE%F*O5astaJl)&bXTErbHwMLQU%mc| zz=->I?;^M?3cz28u`Y_Z>M}khg;WbHU+0mc80~^fw~z4d?Y5ntwqCn!+BSQXt3FD} zsv_k1_2b=;SzUoMk9$z5^@~GSeq4l{`)5`1{*cH$38~Iw*b<~FatYQBR}@_4pQsDv zOdn?A(DX<<8wOXy#h_AA57lx-s8r>_mf~U!i^jJquC9&xEpv!ur}=OZiC;{Y2h5Md zKP!7be+&DR_Bf~-_fQCuBD@YLhD5cq4Xp!a0M$fwM~Wwba^-LG%?$=!uLns}=`|e~ zFW`0pLbM;8zF0*rRu-Fx+bx)Q%;gVgzIpl9q9tf>7DLElXg;BGsj1C3mMu)onkNNB zghKX;0ZFo{?7-BCa502#e+MY3N(GYGU%?Q>ob}wn;CEAmY_qmGYbXLwQhFW7Go((( zI{m$OuaH64!G+1DAui^N#s>FyyCI|fTLq$Qa}ag!HeDX?IX`>3u$#HgO-8xZ)hSig z1a98(-UCVD{z)zwiLBMS7cPJmXc8<_3OafM^Rg~w-`a*f22hShzzqBEIy(Y)#%!fr zG=u(<8Jy83t1*0v0YLOw@rS)~c6AWn_;4x63+QJIz8HE4k&rUds;dt!eF|y_fRHkv za6Juu-gO%XIRSn9)O3Zm1xN|z$rX)`kGp>4U4CPq4}_Ur^x21cA+yTaw>XsF=k1-@ zU-TFP^DK-$XBg){bK9p5i!vgZ<^Kp=^Jx$`zk?8M@kqcM8 z;C;3#_fLS3Na7yrvKw}nRvrAY@@u;JRt3e$ubl8UNG+tvLpfECLxdFM$h88Wau0RV zDR|oy>XYHM+{CN1m`YAT7zgwC7mSep^)0gi@l;R(gE}xs&cy|z{_^`Zl4Cazi-5Jr z%mT~-WfL<_qcy^bGBJP@GLZXl8y^R0uMClR4aV6LYjaDtA?<2>=a`Jwv?Fm3};V1?3w?eF@v!_k__m(8leACe3MrAk+( z=p?LISHLV`e^Ld$CD=Yu-_bdtRD2tGg3N@BR>fpj;-Z0JZ}XJHK%Ls$`kgY?OFifJ z)`DDY;LsO02?2mKd9`+96!5OB-643mtK|6sUnpFCUoi_P6sCYhV;PbP(#bdW%GXa(MIPT*3^?e7AP_Y- z@tgzt)XBchvG?p_92`+3MFE_l*_VE;QJE_Lmv(V4W@r1Xln?5Y^hn73ix!A|JJ%^R zB6A7ej+)nZnG%r5#*weG>*(2V_s*Tz<2UCKxc-VnIl|c*J{NTG;iE^gsjjlP*mS@N zNcqr^l*|X%faniBHp%|&h$j8yR|%6B9Ecz;c)!@{g2MlsvRv~RcJRFM*Ua(F=vu4c zA?icj&&7m29#5Q)K2dveVzBlA>I#f^@vL?d$0H8?GAFNpaJqZXU5HrY;sSBE4!*F0 zP=+RfVWH0vhX)fZCk=JA3e=9gUmSXYzHSY1Z>3gXGrE0$O)Ws)$EHN3Vm}Z-%$$08 zxz(;0ea3@Qsw)fTUx&KSm?Soii#tMPABtT&@b?N(2CK2hvz2Y|)p*-xpx$x1ZRM9%wdKP16 zm_AC~+y@Vq`?(?Y!E=|Go_T$|@b+Zw1hd+!2^^H&&yi2MFgGDY6T@xv+%EQ|-)0Fu zoW?vCFUjC3f8+xMcjcX8oc!?q@ziO|Um$5G24|O2UtHGSy9M~LaSDC-#~$PoRA#oM z%XM#Fv3m>8GYuF>)3V zg+KA@vu^#bFDiDZz4;*}u*=YHd@V)%Ap|VyP%*tVR*^0bkSIPl{ZtkFM9J;h$1>~} z{zQLt1WuBc9Dldu1!&bF^5rBkmCEn`d49TN@CPpeHT|C2Hy&sh+)ES8pOd=6=8N9%yv*eZ0=B$Fr z?kSm8H9g5*hEHoho`3leUellfJIGoN%}7|I3>%#g;;;+dh3uK|){@987ko-3lA&AX zQjwXRnPFn`P2(GDpR-&uc@23w8Xn8M&w9!aJruJatO2?$(Bv9sm9G~~=%AI>oX5=wRy*M9%Ij6lU9J_N^{{X`3kwTaQUCs? z0`~&AG<`Og+4p>H4KIJ_v(FCsA|xLVrp@a%a+-eW7qYH{J7YAQiVfF)6wxmxf}%3j zhGuwpTS~+_B+qnr8aXS8JMp*-J;ZlLWVKIBJe64~RUaj4;xM}5DWtLLFt-Rpq|L0> z6P~QH`2G^MFbTV*MY_*Cjl)}}!NC$ndhWs0jLOBQ+x7JHP`}4mixHEpdSdCMGwLl3 z1Tp#ys5H1L$**BODkc`VaE~nfh(_++GrzjgI=rBwn*K(mR3+-_5ZNLaWS@Fk3AdN4o18p@`Ou8O&j9WF%<9$QI}WkaJP#jy(9erap#xb?Yf-ZKjWuvL(R z;?!}d)P<}r&FJ~3J?Q{FLy~9z(MOg+l7oRbZ?TRR7lR$U%D1DPQz4Pn&#n!bL(QL{ zUr-p{Iv&&%_SU9Y7+{~Up5_%jDb5{~*1LNSTKi7O7G+zF0(@n~s7dt_X%D>gU z5L7XGRPov@4NvfOU#9RHUw`h_lGtciuyUvfBiQF`M*OSrmdu_2+g=G>LSG zD!ll$FDWnf-HqcG4cWDqL-0hlb9Bk9tk&nGA5FXT;Vf1#BinAs7*Ea3GBM_H^XCVq z)%rB+-tw%iny9=+MIOSKPi0$!*H<6v?cpF?c5S7ct|lqb9abXRKXv&BO}M5 z&v+vx+14_~6F+&w-m|@`t5Vldmn?drGZ1DIJb$)8$41tV)j*UutTddcHe_9;Bq4& ze!HgPqFC0e-M;5po1(UZM6|ZK%>~m~-l0J^MZ%I+A`2x%&{pY>_-5G5z+{QF+r!Ea ztXC~q+^N)Wa-=x4cdW9&n`)t1fczSErli|x!*B#zY~JR07SpL}tjslbbYBqKw#Iqn zZnw~{hNs4z*<4y37i9k|?{CW}rt&&@`C~6931dq^O*dC?b*tm-gF!}xBqk z;mVC)oL&$y;8Pb75mE3vd?G1-Hh{MMb|GNXM*nbcVZC|+>G^9u?)QY zCGfOCGg12WnBiS$B)1L6ox|oM*~8D7M;bQ@#bxony?%u!4;(Hn0o?++-0E! zWSxqrdGgVmW9QC;D9DIA6aSNB(intvc+{_;RDJsMuXm+L-Trp<=pdqv6r7t+b8R2- zejajw1RueU!et7#F~CGMg(}#bULl(*ARJrOe!NXwOAMtwwJDt{TpxTz!mn9!D-`UZ zd9n$sB6Ot6UD*_6ms0Z9b5*UPlp8@A#ueJc@0GFkkK3)T?Q4DRp7nX+`1uhiuAVu= zYE?UCbIH}sGI1|>pNnNM=|DBU;nv&Mgi}!qmQXD!8r$U0ayK?LA!4vi#(H)wjW|@0 z&gJuK@$o9T2$T4TZ-0kLd&0(_XMUALZ|j8!2mfH9i2qSi9|;u07l+iP(XWyt8H!i@ zI(OSU6QCuoKK=-8$I+Js4QV>4;Q4h9OIVwghA%PX^51qKPFvw^OLMcJ$>hOQml&GM zAM4Jc;Ztr7J&$9ZyLFR*ZII!vKN;>O6iT=!*`Ja0GSTU)?;lRmrlt6nXeiu-XO{a* zxi4;Zv5c&Tbt!RfYA7%q8k>)XIW8jAe9=tOSWVJcKayx@0>yN2!^Zi7Z|?jq(KL}S z1D1!kL0CqokN;%RPU|@U@rrNE>@uWP5>YvDZiOmhv%qw^6G$QA*V;t27Bo!8&3q$ug%@Bldy+<9L6A3$5 zz13}IYBRM#fY15tcieLLIIoO$&_3NiPXZ=J`u7vC!YfY#4Ht3KlfZ9AU4)zoeQH32 zB&(M!Zv~9-WmPbv zjqXaoKF!9)MkUAIVxrnhswZ6ohsd{4X%Yz_NJn3anrF1T(khqF+0ilDDpZo~h^rrM z5r~!Kr10{0?!gLR!TdG1Ixf#0o76#@8dyZf*#c2T>UX)C91SZx zeQmpNGqnv8$zkDpF$N@n?~E@F$cmOrD3`AOIhW1 zt_pcpb_tu=@RCIWTzT$L;NU{XrvlfBuqA5HIHNdWP(Ug`c+==jtUlSFp6m$y_5KY> zxCVD@(M-HQ6QgNNuI|ZNUwuCXj=yOr++ajKoU`xAE)hNSbMhlWs9lsVEb;8#eQuYi zeM%;u5L~X+zWN6b(>xwOmbX5Sf_W%bXDWot)GI8Qa&Z7md|JockZRU-BagXLr%rVO zTDDhu{P?kILZh8$6FgQmZxaF)M#ujR_dZOU8}<18pZ9DIHvitQ$*DNxkRzp)plcw? z6MlfHYHm(=3N%mFl1h^~vfT=dA;s2$zR_U+twO?}403+TMT zP>No86gJNXTYKTDkYrqSXvJKO;XN{l2#TA?qql6TI=Vq9v$jvRo9&~_`yN^To8w7& z_f9qX@K0$H_1x5rEqP=$-d|tP4#)5H5y!8VSAC(96fccLB+!QU!WrW}pM0q3XQ4S` z?ej!LMm(bS-4vYYG)10dfj~`Bw;V3?h^prxEuN8=B%(_`SsKc zJw!-1cdI!=u{LN6K0B*>AQn_#-c+l|O1BO}v1LCB?oj?5{%r=EM@_bZ7#$IKjX1GU z5j@ua1CN&Y@W}j&vC6H{2)*d7%Zoyy7XO7xY!wyx-jltZybuwf&JS|_hi8F+Z3Bdrdt!sBkzQ3BUgT9dyWG_Te$&C&@ z(ZB1v#vl{iKc0IF^3idVF}Ad2mK1?`_cP$ty_me|gf=?P*O-eK5H2Bcy>hR>wyiRUe6GtbJv$k3Q0=Vcbo^{A{`_%@Gh)11H)*gF&M( zxr)F4KABYM7jsBA2j0MfYPh3b^~>%@M>rxGgbIl1~}DV zaXVR${6z#QPSr$|`3l(SX^nL0See8Bon|p-58ql-xQhO{bKZ-yeVO^wqa-ZujE7GG z?;jKyj>vb*L#_c&20$r4b!rzH6rZAY2#5|&z7*Ql-`Qc<7{?_jsEUSx$rB2q+J{z2 zGBZ8GBp7l-S)5W)X@>TfEC|q79Cf>xVl1&t1<%Nv5RAeK656*-0%?)WYAmHx$az2Q8k!{%PlC_ zzPjCb-0ezCNbxr`YYcEiAXMb0dWt(j%fOGYNhKK#$M%v_9Ubu+(*-)9v?kmj?q7>1=A zzY*_}65AX&&>PYpKJ3-_CraM^cSKfGs6RsfM9+G7`Twr*@&B5+@^X3gpPtH3Io7gf z_nGtS50$t#HQ~<`CCcE#X_23cEW7tvE1kCg74pZAwnt=hx%OE@{mI?9Zd;`8ezyKU z!rb-$?pl)BhlDp0qXFIAv6jsg(>Em0oZ`J}%^xmVIo--w%aE6|Yx$>TA^`)N9tH^c z^Mpc649rT70mu7hcJ`3Vtr!9P87MkqGg7rM=u*CRCFRXJM6_bLsTiVNTfUs1z7tEH z1WQ4Qx1K|?{F)PjOOUSPL&Xu>v$(**-DL-PHR=y4cQyQr@%K@1LG*`i_QfFo%xEX5 zU3x%4D1$^wf_MRxyeSfE?qEq!yGIWS*6#WRYgDDOS&b9Rgnb#v1yE$bPIanv;1n&a^rb z)pK%ypk+8v99c%IYoEmeP9yF*1Kg1lD_E`!|0pCeL=19Lc1kV1#(BrpBwDm=+JU?z z(@I2gO6FEsV-%S-niK+MAyg?0vg@8|r%+~G6032Hyf$=tNlE$h?~iW8pidbb)%bUz zvy;pOw7sTZtCjlD`fL})K({MkSuo{l;w_M;@=1sOuO|iv2LXX2FY@!(+AMFgY2%LFU0DK-BVTO6QlH}s&%;46!&*n*aua_;%$uUr< zl5r-teqU`?^>Jmaa#jkLVn9%Z3CoYR8;Pd(o@1A@UBX z-Ei$7okfVdD*;)Wz4dViL>wF-PB2ASEJ-XlQVXLIQy;GN;$9 zwJ4X(K|4hP-8U9_9KiLC!hMZlN_O+pBL{2sff^$%Na;-8qte>iGdFLZ7)%G z`tA!xbsoD%te#&`RZSb5oniiX^#O|MlP?;7)6Dt){isD#zAn*iI;%EoW%6q;A z%#Nn532p-)0<1(1{WGo1cj@Ze0u3uGOw?gw5uug8bnnSp%9}%AelbVq_wkC1Hq(B; zZ~mg6aOZ8OKW`vIS3+h+O_6yBLmyzv=YZ;wr;@gf;ska8qObxoH4UY_QI;g-oqOf? zBVmXljU;qar)f3(-|thsH*(5ipiXx*0we+uGY;gfT$7XvU>0hS_mKv)Lm@=)JW4oP zddTcVpXu?XMUr4#u9cb&z<}Hd#0y~>SC$#DKTL3b-G=a}ry+cp@=PAJa^{BEaI#!||lr5Td*JqEm5DK+u(7<@MV%YzTj^V+NW zaK%Bk6ptXkO4Y#Xra=s>?yJ>^BoDxN4uXo;zEOFMSEgp+cP<6+DFw$yg_!MuxZlHx zM26rJN$9D8_OCV`Ap%FHnI;)J?^^b*kwlUJ;zBq$qBd)MqhhXi%Kqbeho5ncv0mb_%=z@={X-;Se7v*t+xoN)k{Qd#kD-cG+Azeu18yd*VQW8G@W z7{D-A5pe7jmXI>Ehw4dM2lVyzNx&me`x@l;_9nLJ0(>g;D>yYbNytqq6TEO^vW+j< z$;H{(M|rv;?yY4rjG4Ob+^CE2um8#(1j~w>6pLZmNZXO$C6=ZEz1?_2u2M~$Lz`{A zPT1MC^oh>pU@6EvN5WBj2{{&rF9$$YCZI3r^Ks(1CD+Qw;TkwA zNv_#i%*_U^DKc~9YmRRQm5D)Xo@0@qkHm3KlejGqaj%kC4=E#u!X}$$j0mHIBVp1p zc+@mXIPg9a&w!C=T<-2mJFo7c?B3Us>7;@WDY$4a%X4JlQ^n(@5ZT1@AMSK3z7Q=> z#AD{m9nOW=9D`>?JXC--kmWoxU#W`JF#6)ma(ey`4|$H&$0v7FmeW>-i2?_Eg#`mu zkH(d{`0cD?gx5uLuY&ZaduusfL6)(7%9BGxy}j708cB`*za9T$y`tvlYv}jjg{`l6 zVhY)p{XnBvS__#H2zCHHVl8AV1mBy&8ao}Qo_G#0KT%)k<^@cOFCgZ+%4AIPJai1U z`ik0@qM`{%MEWKUkyqD@(6C*^UhVO8GI7yY&y{5N6+dBDxq2apEWvIrC3W03$iS&Wj^pA}KbUy34_)lgCU+y$xao&dhqH*nR7tN4V7Nww(_Tm_sr+)_= zv5CCguFM`#pL`0sPV}Mjw>TJS2-GAorWlk;28SNWL$DJGmYXg4btEjzfSgg%jh0OX zTdl>BU)tdH0jL;B6K5Fuz86$4S<5c2iK>naZ^H;Sj5W|gQ?y;O;5N%9_WZ`CO<}+B zx8L0w8I3nkdvS~}8-4iR1AA#=4g*z$yZhw1!+EO3febK6w;wP=u<9w;t&|HESMcXW zR^suJc_t|18Zx8x%U&pv!Iapq{9_E3Q{qoy45W~8`4vQ3nfTnjwB)HCe}OX!)Op zy$3E_Uu&w4jLZX+FBrfXAgEp$BB6X??|upOczMn4z1G@32n$`1(4V#Pm*k@SD6p#Q z_ebtfjWh?H0mFYae)MJpX6m)BR5>b)^dlU})sXuk+s*ew!U{?U6(1T2@w#B_8C0C} z+of06fyTwWnHP9JUi88N=^d^rEqC_J8JcorFPqS)7JdHPeey=kPH?>3v`@)6@fC%A zWwx)>Prw{PCX-iN5PqvWwvm-rTa{ruFe~ISm!u~rGsV+oB(IYSQRwje=8B-1Y#!D9 zNl1R}EpND!&d;uq11(+z(fMuFchn;pP53*EW|JYqOc6j$Y-N=N!?)0#REfVprvMrK zUYh8|S6ffQpebY+J+r)9E?+-ZOj44|6p}<7sw$pMmWh^#j=Tlkdpt6`nIF6)6;mZB zi$`3)3qXIk)%I5hs0WF z=_lf`_HtDKGJU8-X9-K@H$OK7bCd8cQTnWW_7m*(?Cnbn^Me5cQ{|!hr~U|JIgXmn zij^`lUT$(^2zN!O+f&4LVCcri8)*_EP7DlnCZL&Vxt}#tJM)l$5raoBmzb0i;D?kD z>2xB*!xWHqJs&Qmx=9Nip({Tq^wE;2?duX{l);T+P{eD}@se^a)jzV#osaC=vyqjz1G~)WY19O>7L8dZK0wse-28 zTq09Skc$?Lm!s1*72~-uNk9upMrx1&aVdnv&rL1)zwU($^PiqCnI0!i-WBw9+saDBj=AdLb7X-GbJ8!|3&gd8#vKn>y>sR09L@2t03U)k+T!rwd)YAmO=P8WcQ5;dTsGFOxPe--H0w% zXQ-TBpSjTg;3p};iwt1mB8mTxo4zP2q7U#RY)aBrUU`SW8~glWq$4wXFbdfmBqW=Z z+w1oqREE-h{P|yO=F_{tuq`ew{^i>O5{@iTaI`$i;WCl81E3gD_5Hufd+VsGx3*n) z*=~z%0LE6_iYQV_7)U89EEGYyaf^Vof`H^gQQ0aAA}tb9(p^#}NJ)dVba&U{T=R+Z zeCLmEjBkwZk8|GlFvhco&)x#-7jw@0zV0iy-;!z?6qr(&BB<=0biPOgJ*!Ex~5N7lJlP>x)% z9+`W8VVyN2j}m9~Dt9z87}VI2i^02&Y+*WY!zf(Tka=|sO)PfbvWg^aSbkwXi{o6F z2v(T2{rv~PAU+_v`k+jrAD=dnwusD)h2HZ)`a2v1=1c1;B|R5Mr+(ioKF)$#QrmG} zF@I?yh81=xikk4mCkr3#9oaWJkG&W&o%KB#iZtN;#8&M!o3K7_{n*2G+I_vM`Z7SX_gqyr*bNKyjWvkCxRA!+m*$_G~M&At376WI{f&sMo_U|50+@IpsPLTX37 zHsKQkui$D4m3KP&0>u*KNs5bB!>M4GN;{f90~0JI7qJ`9!7zkuKmOxKTI(d8{#&)I z*Kt)j;#3zD6hzI!*sKJma+uqw`X>*-x8V9;|<%$|1e^*p22g`0dfd8R-H;j2rTcZq{8PLu<7%Lpp+adLXpMjn5(Lee{U z0_rE{OSXR|oGR8L(dY6Mv!*<8;&JvXGU(K1r!D(EPVg0?ed84}6crM>Kt}n*jUK*t z02uNr9{u*(chlxM=07PDk6=s?Pf914pWbfHJju3L?9I+WjaCVHh|J$;7dpc<=;t0g zBJ@aeRP4#Eds5at^Hjm~Jx;a*2;YR#KnbuCzd^@ZB)F>qQsCDIHj*!9;?K1DIQF2T%c7zi5(FTRL9 z4lfrCO2E`21o!+HH@6am9d&bebufAhCU&)-*H!EDP)B91(GuF)!F{>v2B-!EAf+f3_W zRwb7arK2X5RaAAg=zH%gy^p_DFgD}>BXsA(z0|NBJ3J14pIAI>K3H6qNmZa}kJe9i z*>o)m_cmLY-7z2Sbv;3}Wqv zC|MG^f!*!By+=V)c&>|m?7hpAZHj2l*(HBsL_|&(a72&IrHgNd2Rm#;@Ctl#-Z0th zQ_8UJ?OV+emHf8>yaNq@qhfW;;M~W38X3zz8|eMPT#slmu^)fOYOk z>m;8u;j&TH8nrYEFqI%PiwA0$ji%HxHA#PsrxQeXKE&M z+~)pe3Z+@NvmiGPx6WU4GDf-F_)Xl1u7*~vSfm?~W z=%0UH*D1&|wJNKttLr%Be)vg#@b)j-?yR6%8CLxIGr}%XCaBJCC))s+4HfQxIt$$T zek0{WbtEkwwL{OMO*2e^M{`e~$KA4>@r#@uemHO2QFJs#GwruuZQ>MjH+T;0)azAf zj?N1TvYil_PhH!NHC&3Mj?irz@yl|&qOtIz51bc7a8 zr2BUk1~D0q{W=fFmxp_7{?)pj!47M=gi5bJIy-_wpQ=<_4fAe zcI=sZ{ko}fg zxQ~kr&8(@7lv&XjXXY75Dm+jvAs=!3>vJC6eo-fy@^&5`nNvGX|II|F`}6f)0eo&S z?O)sAz1Z#&WZwJ^Qb?p)@QIWt@%UYK+Z%<_|Du6`L1W(XX%dC9b#IL_$p-TG2MlG4 z&S>3nG1cK{)7^QF6#bm|bRxTRp2(M|ew$jDM zdzokqvc25h55k>te(^MM9U`7e6$!L>{Z+T3H5!z)9Z#yGUHnHX)WG*whovO1D*VRG zjQ!>s2qdy7f*AMMToz}sCH|4GJ(tUiE0cVS7w6uqrbJ-wR!a~8kUH##_n+;YWcLWu z584-QzNV-6Q}x8NJ-_mQEi{PkTAtLg&fZ7a^6cdH6-8GX!n0kUX3FobrYtEZt^VqS z^Kh!7BBY^p#j>PM=xybzw{8*Feo<2s zL?K=Z5m)!%d9l-P=6rs6fJ=6_j&wc@P~HJID=JS2gao1+%DqRA);@l6pblm{lheLr zFBr}J&0lC<9JF&8wkPX>7KIAhC%bcz8=5$PjL0_ZL9vL`QV8^R{tl4`pnvc z|Ni?Q?`#zN_n)2Ge|P%#pDADd{7=yJ6LCyA{`IxR<$u>N2zW;>bR?%MGk?U2+3AmQ z>s=r7AFr5=X@72$pjhu**${GKeD=4GG{#jM?=WO0+H|yx5Ua`GTrroub>r$8^C)VAO9^F~Y1F`D~w$&8(2Pd~v?(p2${2%kv|C;Oa ze|c_~My-f+e#9GKMwGUg6RSb{yGxBJz1GjWk1M?o_Ks5{)e;HcK?7yfG&4N!*!Um_M_^1>TwD-lcFYmh#EONOc!`gfVg`BiK2kCt(u!v7Nj~K!A}S*)k_wKa_GZ5!QL9i-WywQSbIY$K~({i~VFcy_zu#>_B z;~(Q%?BJO$x-a*iZAdR$xZ5AjEYbH$;=rjFr~NL!uvh)^L^#x8ake)KVA)>Z1(gib zx5jJS;r3a&pSE)tx$qtgqssg{5_EYWtne2r`va@6PV)<*+fW z&VQW0_p~7^bz*Gn`;3DQ<|VZV_o+tm*Vvj>-=)_cTu=1uz}ByLfSoofRBvI)71HtT zt>yB9C9t{f`J{li&j&lc-472BZ%Gn7n*>6`(;Y`9ntRVxx?DvENKVWhJ9lz9QoM?A zfC9Q#jfX0Sm}*2tMLn)NN^#N+y_|=D9jU&t_Ak*WIll4YZ(&k=9XuPdzH_;I8vG!Hg0qW-684^Jla#{HGRgT!Yj=w=+PDLjO~bN zv|paCpZd5wOD$GOO9Bb&$dMyah(;P{%5ZCLZiyYy@5!u9HQ0&B)K<>f4Qto=d99&* zR6}*6fXjd*el$?a_uBasq_VJSn_yPjd!`_7e8C8PyXQk^AGH=M^iTdshI__%{Fu<8 zLnX_>AH~8WB961MU2bh{Rmw2Cg`3EK^Xnbqr3zVURi}(lIAA+H_4LR2`D*EgAxd28 z(YDhA$w^6->BCJhw&pu4a(S|+Y^v({VK5L7v_{5on4U63+K2i2`d)~6y&pGl>;8q{ z_1iYeK{rd79N@bGjW+nvoRH?Y{N!A#%T+9lT8G)K*U_<;Rdtm3@Nn?*$^rf&dTqwN zwm=97 zZhU?;yJ?roE-O1f$9dg2ln0`H{T3!6F%;BppJHbPryAd&E@E#=`Q-h=bKfr`kY^Pas7 z(!>Dp9<=8?6=Ray zX^BVgYU$S_}M@1ZJ!wf7e`+llQ`=3$< z7kpO*kF0#8Lo8nV=O%xg!@2Om>a@dr#_e!!&1|Fkk(T3XsqX_FdJJL~)>6K=@RbY2 zkz}2?j6%kNQ-52lk9FK2`EZFeTFT)02YcE!@FbaX?4*3m{RVh~Ur%M{ahO~xfcyQL zl}jV@eZ^uLglUkaBh6U2EPliK>3a0qsfM)!7id>0lufTOz(GG1fiyy+`3c5(Q+;TF zj>|_}_5Q8;0n(>{#evSMem>h!5}VD=dlugc-(3hZ>-q5D1?4;nqAZy9m_D08Q5`aBHFL zQwgqREAdW{m6Cea;QKT4Zl^2bN{RPA!-v{`9ip84okvCnP5o)Er<=5r`AbBfJv3~1 z_xK;doT{r|qbz_0kvMvEFPg>5>e?de*D_~EDKAdH?m$G|;9f@5)F^-l+ma;GOw%r) zrxVYLnc@8IsFwm#p5Ik+%}1K&FPQD4j3^=tx-xsz6~qBokvH`DmXRO(x98l7A|V{8 zx~Q-u9tj6+KWW!qiaT<)_|kh4t*%6sdd*^=LN;Uy6OUHd(V+Vp%d1yU{nT+o+^wJ5 z30h#oCI=(dqeqR9JrDT!B|utk_Re5s(4Lob&d{3vhI_c#Uj7q0u9{00pIUuz)oh#rTif&pc* z4ToLanmLuT#4OE|p{Ls~Y#s><)2I#>!N_>Dq#_IxYi^ntWdpq9AN(F$V6TiHQ(p9!*wk;B9jM37$(LO)` z*4gK*zk;k)$|kyH<0gfhH(|=8P4lr^PnqMHoS2X+VdC=i^?i?prmA>aSXk$wYSPVb zQ!`CwB;IJ@M%Arckhd2`vPZq}vJ(&!@oDoTZ5_YhN6hQ&hRO;ggzx4j1krU05WI$v zD7J40XkyKrnfvY2CqnMT+LPv>(^ec3KAT9s;n;~|vb3dn{Rb?OpvZXe>dmT{)9nkMJ@&|m{qbGqZ2*A1z6Tpz2A&>0P#@|h z6bt-Tpym0qXH~#`D~lClHZ_k9c^+3JR+k=O`E2L~3LjBJa-uRzamq?3A` zOxti@$+les8PTX!J+2&yn%mp~Z7IcRnM|`jDCK%jBrEpwn_lc$^lw;Jj8QiFv}9Hj z;$UZEV>>XKq8~S+t@86aKo%to|5MG{9AV9=1Ur?dwZr6{E74fq{)fgH4t`jz#6y3v zZe}zASB=H@xF-ENAghBQFCLMRkwJ-HJj7hr=GYYS{W~9#{$W`u{VGhtLCG2(7NM3C z6yV`;{l}*eymZwNPU0sWg^=e6iqBK0uJ!l#Pt45JIg7Ip5)HX;XU;B93L+gzpk&#z z>lPNLU!I(4y2clW6c2`Z8;`S?S*pe&_b8 zCf_sgUIfvj3aHZ&YTmm0v=p2MaB-=DWkNhQ3gFC~ZE&g?GdqR>4rr!o?>m)jZ9l-q zH6EX4ddZ@^$7s4I_X*|e!H4T_8C${;>IbJfk4bB?Dr$s*);RSCEWHD@u6MpwR+`JY z?@89kwN1lqsY;jLM?N|RZBxyYJn#PsWixDw&-E9Wt&a?n_CZ1AzfvZIl(FVlBCKq5 zi|<-Js{1npcQ8fZ7<`k*OKZsJ`kB>!Tb_XRF;H1?fC!Y#;6!>_2OM5k4DPO`5AIOD+h@JCAA6 zrmeyO2`3K=2q*$P_hdbL?wmU3Ya5K5yXF*CWjeChZ8I$8}m_aqM3NO~YLO##LW-|h*s_rsjcKTb`+DEf-ekAbF0x4cFA z;)PN13l|>V)aeA_IReiI9>i=i%Rgek4!XTCRbKnKO`B{GqguHj7`?mTu!WLYzjgyp zCH4TWR=eAM&e7WWc}(0IVJ&tueN+8otA&-ot+QNln1vUaT#)^O>Vw8&x71XA0Y3-9(J$qG6w+MOzw=>~~Ov zSJzZ&^%o)rLyZJ62Y=gg&b@w*K!+I{uj86hE(|+IfVc(HmlvWGVJ|bBvHz@NogjDx z)GW88I&5||DdoZmIBT#$u6f*;zJ0sXZn1o)JnVDTgu3eKc`NB^lw3IBpMY(|)c3_b zF|?4dsF4tASmLdn(ri|9qVvue>Q$!q*RFvN%|jLRE1Udo@7T>T*PJA>gxwcUFy@o< zdV?=dUf4wI#Gxs9|JRrGI7vG88?aDDj+~8qgx&r5z?B6)){AH_Ji6(g3`gJ4hkBL4 z60gW`8(7pee#a{cqq5T-T18#R@?VE?NBE zmY?O};X$gcKT4FM z;KOc~AQMVe=3O16PG2H;HEOqz*`})AH;JxXiCYeyIH9u`b2P}d(fC}rdcIy6{elPo z!DESHZfUwDOjNlQ$5ndjSE=O4B%!5vm`=; z31R!+`tT;EEA0n$66z>?VmJbkTqmw&p z@TK4dz#|1478c>D3fcMEm`JQKljhX^m(%U|iEtZ{5t!)qnOd4Gk3!|MX`5E`7l~~g zCr@672?$}FkRgYlyD%5m;Hn`2H+l({NjF~tx~LQvcfoW+id3WMcqeO)QpD(`LHS}( zZPy3Uo~Y!A0;>39@F*Lbze7G+5#*kzp)!43rG=TaMwEL+g;2r`jr4n2+x9PrOT2v4 zJ%5ryDL}2lO}0swiA2LY)e+Lqo;{Ph>e|ia^xDH?3S*W5bWRG{R$MTLAJ8a0yI;io z>lB?YfysXHE#$+Vk&e_A*KV9NsRJ;2+{nOCJ}s;U_@ZIfPo1+j)nTGBZIA>x!$vDo zYi z+~$x?bJcD}okOwTd^di4zkBDa{Yp+tEa)`kF;3mZ$mlib80WDIXGpQ`Vhbi~$~Rq2yl-fec44mT z3TNSXly{{4e))3SGa1Q>_KGhHHg^-h)t-3V-~uT)R~3&@eYDJIE1VUg5KpcE4+d1o zs?Zizy?lEPJbfP3hh9eY399xjxHY>FhT&fEMJ@T((+lD$+O_{434K4nAx3e&smDMG z#XtUiX@7AQT%=t7=KJ^1osFng|M~UbU`F)6VA222Dc7^s;cb-6$!l8F>?Tc$(}gc9 z2FEti>68;Y=rZEx$7VM;y&9wKO~#KDe8-Gz3d9wwf!|a1;I*L4u1^2>KWAY7 zXUxO?U$6DQ%tY`1!Yg36%{WK-^&@+G#l_=;wi(&0f)l^7zW<(_Yn{#fafPwq;zzOF z8y>9w>*`v%+lii4^Ox~LZZ7^H#n?P*#Y3TFE|Qn=`$yl6l*|o@>zMu(Ne;j^o|`^bh3b}*7t)y%c69XJK}mY{u9InbLBj_}%~ z0X+ZWvNCB8C>J6Dj4xUKLAkLTViYfnyZUdRKC8lMxv9n*0hIyIn3ds%&#n34mZby4 z?ZBe7Jnl^o5DOiQiO@lKlioxQ5W%6tDJ(1KL&wKo#Tfl|W6OO=@FENbR(5nJAo-M}#|m^FzQaLA?;|H6@yDU%gk~TbeW`zZBszB# zDu#`PLAU00&xl%@!_0cS@WS^mwo{c7S07vi)(bo*VOG>P3`&@utT@6ag(;~=Sc-mm zw1tl;42GV3ORg4ORKSIKvpOtK3lV@VW??Jk#Ck|Cgcte_?-jc3&VCX1vmV?NbYoW$ zm-aDwW?`y7uAN5+9BebHoSK?Hu~(gCyPA01_jX-sl*r=HPAa)uHF@GkkFc?+aV~7v39eyd)z$9Y#oMj~-pb5Jsc2@+2ubL4_fBhM!*huCQySCH{Njxp!fxG7q!`tf3U^+ooBm;hvNuW1(E}lb;=l(5t3Mh;@-MU z$K?;Oi6p=FIkLhzqu{xBB4QQAoFCsNaJxbb^kEf&qS750Bfi)_8BLU-n7P0yNDgSL zr?)p72zlW6XJHayVwvryqk7{8?fLBR(6eZ>pjKC#?>-vJPQbRM%S9GbS=rHpYSETo z7?)UqX+BlbfNmeL_OYD97cU1^!Ys6OAnSv-EYy|+1SMo5BpwOU>$SmUdi%|U9iMcX zzPQtTX!d7Pg1W{BW7PKCZ_mXTq(qqCwNk?CU6-Jp;O<_*sVlLCcHYaL!=S%PcVW6d zj)^4_%%cyZd4EDaSQ$orZ80RT1<7)h?sFzmw*+VgFj}!*P0622{x}S0z$pCfiSZe4 z`SA{v*%k0s*tKVS)NuZC#N6E6AA_e+_=AE5mY@=)Bxlfb zU$M4)_pP;?FV?*j^rG%n;)&sg$!rW)HcthR`yC}OLF5Cd#RYdVhJ*h*2y5Z2y6Lg8 z3L~9D$xC67<3xo}6r9Fw$<~OemLTFJgaomN~R-cBmGZLCV|QEtGZJZF*c=-<-G( zktgpyeGnR>qgWi?6F~ZDAxr(wdMzH=w*h2w#IV&t7Azgx;px+TJ?@PaVkI|%!X-P|qCT60X)P=6sGRPIOz_6PeLUad_Wj^FtNrYa0S@ZpR zXxu<2LAp`z<99`l=CAx&vJ6xbkbgZSD|@Oblm@kYM`tjK-nUr|xhI$%aX4wGG~$(f zw_D1Cbd~6y-$8%&CLY~Y|8#vpG?qMc9_?xnb}0@A3R+?qJ+rB=Ndj5FerO*{N2~{a zQn6j?m5S$e?RCn`&Wcj6kB=Bt=F|=W?5WPVIFD^GWDAK^^5u&WrGDBed9+1OOr%xu46ytqT7Vv zad7W@Lu2ag(qBIm2dQIBMyq}GR7w&n7nd{$yw&e36I5bFM}{-7q~eSR5d_`WE^z=n z*s!ozni(fmQnCi7IPXCn>o!`MgE|SJMZc-)$&=1mE%VN+f)})-g$rhR;~y}8oGO28 z7CUkwPrIpED+n{DtH7!Lfs=qqHh6A5)^4~!Z6jb98fyN{!SFV!!E3a< zXU99BDC5uhD9xdGRU`1+J$TuEm^9`z4ADpPM{DuFG7CHK$-OboKs>$4sk_4%6WLmp zs>G?}DPYW2%*)-)hIuB3Qfy5{2t%||nLm&{JuA^;iTN-MB6dCnP~D`Pz76XcRF4uf zc`M?e7Nq7I#>C7ViPM8H`@8!4*`bJv5gk-VD?&sokoFp31(c0|wLbtf9+BxsbPmLN z_wtE>{fIp@{9~}#^Hq{)nV`uqdFx_;}RQN_mxwq37W z7!MqX4`Slx^;+q46P=o_pPa&Sy1kT{F}<|;OIhQ-(<3GXd)B52lVG)?NsAvZ!S5g& z8RX(1HDAHL*}%PAOk|h?uiYXEe*u%&f2=8%v+wYLv(B6&YqeFR70C=~cn<#Ij%1M0 zAIVYz`S@?YJq5h4eXmQ>7t`2StahRP1V_uXwlJ!w2(TnB7c%E5Bh^iS1-u#$>H1<-1#{aD@z>s>C2a z{K)=+fN{>Io3zCv(Ue%{+fEyvJ@81ssN>fSR0l|4ojUdAVkJz%y^dYK@aeg8x7@pn z+qftcS5AxihZPlHR6n~d-EPgvVl{yLUv&gxVW|)o1_HPcy=`4W+YQC0=gvO2K~Z7c zz3V-)?)~F&I%^}frk2cM4Gj%H1)|7(9ITP$`dcyLaOVB{a*Q!c*nLvt{DTL2tNzAG zj{9OX+-UjCP2b~0tWPh66#^DGBf!@n6p8Dvx_?h!wPw9!@!Y!MZXc~uiwzO>{EGTN z0*aDTp{-tr=p75J6-Y7sSjVEZm}Cw$K|CBi(e07zZp&Z?32cFJYy^v{^nQUX#&k>b(fPt6E63 zEg&pBoc+XYr_Y~XN_hYR&9U<6a&S9y4PB>SwHk#|u+ z0qoUs$b^Hux-z1Z0S!uOlf67A9CqtJh4Mvf-?_^$U#c1qFq&X=+BKC{=Gihh2{!J) z^3$C)A1pay7S~g3y1TkqwcDhiQ2HC=%J7IX|ACMY25h<4v`gvlDh8UdXaBf2r`6+Y z9fJe2uP;dlAw7Oz&&F*NOE;cZOiH@DY10<|&0_1mXy_62K0M5Gl{syaWu>q=(gZ*0~p{WRg==LLr)3a?A_(4di}w%h)55u)N3U@6Dr zFxS4TdNFX-`3D}n7gnMbxn$B;Q+{15Zr=LsTf-#*!@7zu48mbRTTl^)+NYt$kJP5M zL}TF=gI1N4wCCLT+VwMpg3Yvnhdni~v-M`}pMB4row*Kt)=7=U@%COCQ`WQ9SbmYCtDs5d#895Hjv&ZEthS>ib*#w zp@h}M`}3va?4im^)$*4`Fd{D@<5Spm#tn?dZCYsTVVi8bZY!woM9H)mSe!RN`JFlz z$s%Akb5(eJP6ruHxewQGDdtsT3i~mPwL?4?a51<1WM8q5^zdXuI<6#|fB{sTO40?4 z@Z}+(JVJ$Gsw}WaAYFnng&Y*8q+5CUTOf2wj0}VqoqFocdEU5X-4|9%>6$#bXFhi@ zl{FOo5ySmeGx5IYNYC_=s{vrOGb-R>)WFS<>hW6sq$QF?;D%69^g42)7Lvque}V0B zX)~?r-D6P$@WK(p5NathlXKwyo!fy&W7Lx|9|PPv&~#cSrWjWCFfwxl7FzY=?YYe{ ziu-e#Umnmr%+HQ!UrJtu~CI6*}!4Evbz(-&-Y@*zWDN*L;U}aSx zM)Xj|g}K(+;QaS|EuVBD#v=ROB|fI$o>X0l9${pX3yB7)b8Xw^&AM)#Ua9-m(g5~s zUsZ9+odkD5WnJ7u92@$s=4V=eRli9f`I5T$lXJM~+&U|{=CB@9Fj-iqR z{8VP`y|20#3adpB1@H*XqC&`pb=2emikMM&WaJ=fKv|g0!r{S7s5Z)WQs_nQ;!M>2 z@s5GE{2(G#$0ZOVLyS^F`u)scNJ0wS?5+??`JOlP^CK2`j_O`KqoD@Xbk)6m8qKO$ zL9bn05NRbC#?B&LW-Yqv;At9t&%5)^F1~pQYH860FYI99Iip~1{){wu7ose{HR4Ub zdXL2F9=gP7Dj*lDa@p4dgSP2O58iF^q7V!aY#BdJ5ra60jrl)8-mjdX=gNgsp!Vz2 z(ZNL)M}8CMX6P5B1I7Y@#mBweFWA-Z>W=kjaEy3os z=HY6~?qbH}WGj=r#x<1SU<_=^TA5LKsDa5AOys~luI04}v|u^8SkchqkYQlVQ!g(g z9EBo~C~VLusU<&pYW!U^M#)K%cR0h_=F}y`ArsjQC^sRp8J@dEM@)#shs zL3jhw{!1YRt`5>cj;Ay+dhjIoHD}=&hCw1l{qVieZ@N z1r0|yP6|T!K<9NGs6+`K=tnhD=s#hgT?fAa(_!mCCGD=rYk;gUVFXX}_3+mBqZC(*dvpyxL z=F!zXY%-pgpy$ZYUBM(QF;jhh`ws@lUb>#lqone+U{sBoPk;pLY zb7o-E&7uJ*v+Qrw#CFP`En+vrY&)EmWc!Q0$iMWsHw}-hI=58Y5bl`zBI$ljcf(Y# z9Yt)tz|FbM5u@6FoV>swI`O`CL)WspX^VGJ6+NxJJ#xC^3eTH7+O$_CX6~sfq88NI zw>Qm#D)VzpQ@rL=?Azyi$#L3WEvnq*$7gPBAulH8MEdL~7U}D4PIN&FHk~&ypi%cj z{Z+d(zxgVM&qPdc!Z49o30OArSI-i3PBt%x)MsJT(HKAxr0(5ZqfJRH01^RSz!Bm# z-%=(`3lg@I7w)wm(q zK4Tr_#7m3=$wBq@MY@m{u*xKzP!S%k!XMW*DxT$sF_HFOr zWt3D(M6cFY5wbe&!d0mc(ZsI-=aSmgafDd*JGt=X;`MqU}m+^z4 zlTD$|b-JxiTL&u@-ol)wqx7DsyhPxKhK>9>-4eG>N&Mc0Y+2nLx2A0Cpi{knos&9v zbl$%)-*9>_qSJ1JvU(e&H>v6f2aR7ZVg771P{Tg(GsM}OM?0imi}uBs-CT><6`av3N8+gDrJv} zr7KIYOsxS?0n$spk_|fS>`@@oyudJ@qfN?-m5QvJ30QAID?t#&(qesXiG)#QZCqB^ z&&eeJ6XVN&u;d3Pm}qI_+`n!&vlI`}!+T^KSx^1JM41g_Eb-}|ZKKtX+RYB2t^eRS z`~h2PO}gejgolfJq~0o$OJOvdkCJaIm$B%vkLv5&4ad}mScc8a%dteZiOQmiS-Z6A zbX#eCcZqThoK%G8J}!HNsix!~8?#vMsxF@@iVR}R+)r`3yEIl)Q@h zpOXZSg1}nJW2#$OyL)hXIL=WmQxY0lh2T>Z%IpE?KC?dPt(`)_?8yp?qFYP@ETVKD z1LKsmG=Ud3Ep}517r%=BRbV%ocNqLof@x01uXf((?Lg#$7+PQ6|ITF#_!> z)BEy$r;KZW1#GTa@6N8hO0wrq<5jC1h*I^)mCfnlk5G;3*^6kB#rzrc-=#V0iQF^= z9J<6Z4z+B`4_hjq2HK(d&dR(G?I928F4c@H7P5K93W&#Lou`b{MQU*13 z1o%sRkXSF=DV89iI0AP&*0#`AoY&EHXRfKhzSx=eZzzd9mxX4^fDS{9Sp$Xcgar7uU=(^`T zd9i!=B1-aYEap#}nOe~hg-0N38&l-w8o7dt*z;pq3iJ=a);&9eaT-qz_$EcfC7QoR z0l}W?Z#BM(h(l)OKpyenjzEs@$EThZf2tE{>v&3h)9IHxQFfZNQ``> zdC)Hh)FNnJxSA}IiN!&$_HKHRFfU~`!k%ShtUwz#LBriG|R58?~7nMhE zRLQc-94z7KB|@9JJkG~Ai>i+7J#)v2Y=7$}^DDnTWx2ilWUK0Df6zSDg`D90$w-D+ z@P|&lK^MwhY+VZm^~n<2O%nEq5fd;%Z_dR`eKK6xOaDBH9~8>k-zg(c|%$+tvsRoP& zfQ|O@6-)HS2~j?(fVL%Yf9&_^(RyvHN+sa*mPh)ZVb7Q0(#knga^E8$z*ueGq4RQG zkr_r=5hvsBzAi8~H;0dR<$`V*Pvfoby8XXBeTvpd@&19M`goehSXueYUuR)o@P+}b zhBZ%?qs5LS&%0m6^yUZa%gP5GP@SYf{60{V_1d08(IY!M8=zivb>x?6^e}{$6T|it z>`6sz;i@8TW!HdI!AZjsCIUjD>t(^n;VYDk#}U_4Ixk1|T8RS=ob~HLungzXD@SXb zJvFyeM$h0VuGo1!!%5AcbG=vQ7Z*9$*{MzGW*I+wu<1`X8kza#1&z<&OEYV`hKbs< zXM&+6J_+BetL3pmU!g|C6g4b_LHHe7UB9$R9D@d3B|OyPGxlKFr9>kV1Wr?=V;l%^ zVYz<0PxP;EP$5;4i3bjxmX(jrQqlq|PI*}6Y9CmM=Ak^;X#fWumI!r{(-gl9r+-^95zHa%U7)|$K!2|0oV9UJ=b0uUlR zX&hT=w0G+n4!ra9RA^{yB=c6R|LRwV>&jZqYBFD;uQahLYiVg2O7lDM*SiT{+A#>= zW?N>R4(x?cjo|<*4^IN8iy;dJx#;(DaZ=nmdykG)_hIEhi0xcR$X?!Ci4Zk#&}fso zrhtACb{b0N{N3Z4nwng64V0p(2Gx38b2I9XAMY<~dYyHtC)$kwZkQ~`z)iq|H~ls! z{Nb%DH{{~mCC)QWrFkXO97wqiQkKKmr!f1+|H@tl7E)rlP7>>yw4<7tcdo+&#PRnO zXkmb!hh_delcKoUZcqqty)=mk3%fnp!=)PUgX#_O7Vhf(RZ=b@8h+^eq2^irIl#7a+8eDakv7Eh!8{ z+=+=PPv=l)U~3id0>${_b+|@P`JxgA7Z|5JgLTfE-ne9QVr&c{Dj8K!sZ>F8R!$k( z241}OQKl_|808jC{yEf;)RUGrwIC^{W~f$h{7t9?`hTz0(=L9(ABCM%#l!-kVqX94 z%tnr-atndjXpM!j_>zN(Q%u_>NC0sEKtU~7lO z=g$-NGoQV=^8Fp!a%?O#v&=8SD$1+YA$vOD)w%XkKRza9!!E`9_wNU86VI3#m39RF z(z{o-y9=%LkID8YS@>|v8Cw5-dYQ^C(_D$Jw+pc^0>!X@3>)%)eg*&9C^q6GN?)2Z zwf?sagOi;qokF2rx^^-C!i|Uj1J%7K_sM6=~lW`R2rl^l#=eQ zcbvNS^F819@BR0A9QS>=6|d_&*P3h2F~=BlJ-IG@jePgf-6Rr;Tuk(`9Er630*SQc z!p`mZ6DzJa_# zvbMf$#m~lO_CG(tYGG-}cK7)>@hQ7*i>g|YNJoN+|7{YpdEiUhL?Ve@zNlayGTLcp zeei2{$&}1)v17-#?cBvOduT{1XtqoC<6z9`i2L_<^Bg#6^pBFlR_2I0r^DV_krEU% zo3~z)65Sl>9d_RBi-zjB)X7cx`PzfG_X=f_pc?7!cC9R7=Vnm@mkJV-nL`+X|^)(ijr{%+%Yw-$2J-G>jihMsqjYfjdb zx3*6Ac_m+0;m`6eUNJ$aGS;g^XdMI zn73Cv<1at?+tS)v(yCL$WADh%ubxH&?QLzR-CUIqGX6}$4^>oGvr5=-o3>ndwC6An z6V<+bZ=`~GsOs|bcPCtYu-&MMLa(W>?A6>@RyQLShS{R$WAp6S!`kN`D*Y(x!3V}G zCFLF;o2e-=`W|tSBJRqc7q|EA6Q}T=oV>j@-#($1e(Q~N$ho*ay_q8tIhOqm1x~!= z)aR~m+jFS$xxsn4Ow-o*Zr2ql0o&2N>qHl!QL&yBVgk5(-Zf1PGf zRo*bKp`pf zPV&sMYv-LGWXLas7&f1@f37!_+Nk-OicTL z&15fMz6=tu3&WR3Gs?TlV!zWg4|`Mj`1o+Su4cJ&sjI6Ki@j}k$^9$wP#s0 zM_f#ys+%8cmmqEZy?i~#D{4ul*gmcs9}~pI#W^CK?CoP6=Y~I|rPbHIyLOP8+O*vB z*|UZUwxYzIo?{7AnO|yZWI_e(YRB5Ms-|}zJQG>&$He63dbl&!M#8XqQJs48=@aBf zxx8ayV(1yUxGuZ8UOPZZX;kj@F^J0nPNK%$BgAA=0qlL=`Hv1@#>FdA${(Jn) z!V`o>d`y_*nV6v2>zYNbngx!6CWlrh=jIx-@ANh#s>-*vv>cg6WW3?C8Ze$8Z4KbrbVhqUe~yeK)Cf@}AT(uyc`Y(kPMy%w z(mKj%@T}EaxjoaYLdivS9~D&sw@K5{I%gNAgiDWhFKF7?)-=AeUyE#xZfQ|L6lox4 z6z^@`COKrcXV0GB+r5AP2@4Ag#UwSw%*@QEPoLJglT(rFCnzRFbLfjpaD*>*)z)6b z&S$lJ6R;b-4}y5i&QMU; zrCI*?@q^!H*mtPqFj9&ild^wWnpJN5`bbKV^~?ZEz2%!r+pt}_VvP4b>z2G28E#~< zw6o)l>ShuW(qfPaYj{p|{Hd3h{L6o?D16Wp%gGDQn$aRw4WIe>^JhI>-4kqVY=To? z_6M$4i{ZE+xNQ2%6~BJDTv1geh4ne3l=vEnC?JlX199{A?p@NOM~@hfAHRsqguja| z_ho#gBTz3;xZv6qubdJ##1msvHRzs5-AlYmU6cgB^{-S_K`eOFll=@*6-zUN%E+zs z{gpP0XH%kf+@ab0`%v{gq~3K`Bm4Hnk>(WM$ef&<;k5;i==bik!wD(FG2yOqH+oLW zw|#oBBg3Lws4+>s*>}E-q1a~j7kj;BeYDiv%0!V7{zEPG#=V=mx>63+)zyxOwb?GG ziNLw!>~<_Tx5KpFSnEvI-~0DZ7-a=JF1Tt<6fA`8K5*K5s#^Va?>F+QP=RJ|0~3=3 zB!{ww*ORogm_V7(N$njP&GO>)|jdzLQcCHO?>$K^?fI<4p06lj_&{VoXTi!xG{*+@Ws{VN6n6g zv2m}N6WPp5cs-V=A<0x?$XD{c-=5F4nWV&{02#DvrWrgxB@>pYnP;n>ZJ;sNVO3-F z>-(ECDyb1)Z9UxGhwEiZjECw@=DG-UFn2dKDIp@|kodW7eLr@PO{?Rkpiyh4S@0oN zjYu4o)5nf|ycxKLzRThr%9dsvzlKJ6$bt3X6Hudl7pcXs~{ zqmIJ8e`>v@+Ka6hGR@a2n3EI}nuZE@85R0R#y zMO7F$$jZtd6`1EdNl*W)m_nGV!pqBxNcb^JAH{vly9<-bUb!_OS!dj;{YNogfwAg? zQER%R7wo zcf4*@Qvu#jXz|8t6hpsp9vs0)pOX?t9q&m7^JsRvZG@_}Mo9!5^$&L(X2iO(%CGoP z{p{`KMv*ZX%T>R0>3*hJd$d`5W}J4B>+*P>MLoG*R1p81GEr>Z)APJsKUR~TpBkX#KoQkJ%`oW;X%z)8&hr^KnlgE$0BVQq-oiP5_+Cgmd7PdIU8m(m{ z%gW)h(#{!+NaL2&d#Y{7#Toh)O1s7cY4FaZ;sdX=#t5`sJGK0=U89)<=Rm%57X)Tr6_!1vNYM z3XXKk&B=EPadPnrac}=Qal+=u=PR0prnCyc2rg+mnve{!Rqj7~_ghc)T>M&6BH_cT zU6^PX?xKXk$2m(2P?X#%GAQnMCQc#F=jrq3^4G6>k9FjnDAtLUOHt+J42ftqjz6g@G<-W#Uv|Ge4s7#>W1(Q$Mey9e*-zyD)jhsI|b!>z@&+$W#jNu9Ax}3ew6A-a}FKY7IFnbN)vH4t5aj(TUDHWzAe` z?yZ}c9ezAI{QJP1Ki_{`|MKOBhgj4SUDuX_$`jQx%Fljz1xUzmH|}d*pjw+@qHHtP zrkH0pp_FI)jZf5_j51L=^jSMmViBqOqB8(*bZ&_RjEwZHkt=yYLoVoaN;)J~$VCg$ z5mjd@fimjg=xF@o^P_l0CjHnXbUtPsuQ>wB-|Lpl&eRkgX}V);+f*aG5s6SeQdbiy zU}(Q{d~h(vs6LvqydhRr1f2|lCnQ&za;yxmT)r&ogP%-HDOy(xcU#Xf3O#Y{#nIs- z=j~I4)~uf$XW`>hMU>VyCAsO3B&{F;CCJA}8>0gV2?-%{5EBzy#sTFv?S@2*mIy-op|TAp=aFCOcw z3D;&TyhY~TxpKp1s7~L#AMZcdHWy6kc_@&AkH>NLwEU!qkGMZ`+(Nfo_w`c%e-!~K z*>;MY+Aec`LvPZ2r#l;yH3h`#R+siv4jiTAH4jn6zbN--NuU*UeC>ajRpXZZ18pDI z<)Lf!TTH}=Y@y{erYI7KV-x83x7a{8jRyr?)4eS_B=7Ms_VXue733oPOtW8bBq*n7 z4Y$01hyAqfFF!cemLW0HlvEG&g1uqtA2aK6`c(I&+uwPq|FHY6pDc5yau;SYEu)rh zo1eJ)?Ch*TtXf9AmP7x+G|SehV=wMpt;^d>_sC>O_T1G!-KwhJ3Be1@Qu85!S(Yq* zWw){;(AWk)7j#>A@Lj=f{7CmhVf*jr&ObqGK=iTu8KjTa>E3)c(pgB8{O+2U!H~|2 zs4~Oi&y`MP**Q6Zw2@utx(L8O%fnIJ*r;exFz4UpXd?QeDfkcy4N4hj?|sVBDyzBE zTEgb$$#^;4pd~w**Q`-w`i=PxR%w<=>RCJ^NjJ(8QVQe4U6)%Ayq=nwssHrALm@#) z3IN#%D-ivGhlgjlop(%2oZ@qV$eyT-4b-;s+nr81+1asxL`DPM0#i<5=N)E8(+cX6 zI2(a($t%pw&H1gqX`?Hos+$b39pR$Q>{6D55q zDJfwds|@6%Odg!D(E28)X_v;8=#JoiwALX7V(HCqQiko;t|1K1RcC*2aaz zAkU<P__xRkg4uLOPZ!SGz9xuwu$}%-GBNyah-bOp2geqt4l%U#Xs}>&j ztf|0d#Wp%65U@R%R?TjrOUm;wTV1$YGCPyqSQ|HRu@r%!BgI}RWSXi1@rwWymNnSQ zwc{I2mR42_H5OU#+@V}(su&#{>*^w3(3;t{`+)a@2M<~u?H2B4)8)84e=G@O2>%;JC?$wu$K*GQ4_W+^Jbp<6D~&ro0j=b^8W5#^%NEgnkCid zRQY9$9Mjlnd$MMp&CGz5=LpcBw9E2rBcM4)<5jWc z^_5))pS;dHOveKBPR}yatE&r~r2nGsJQ=!=A!gL2YkGjYTIBD2`*fzVW9CBr6#reG zvrLx5YK|=>e`vO20+#e7xjb7luukGgRcE6BRF&M;mts))ZrllVS(!INj&)DpyluB$ z!r{vXzAWlW1TP%R5gn`)a9c1aO+nMTOD#n%>3>@rhj?=oFB$=v9ten#Q6 zg}-fIsqEaazEHkbR2LKaFAfP$)EyiSa-+gRzqIodr4P<4Z#?4hW7QOQ+gQso;^XI6 z8?4z8D;ZelZfTdrc0xvIDRQ_W?%mpoyt_TY27Gz4Kf`KJT0W3Ct1eEx^!-Sfja>yR zWJXd!=k@O#$q$iB*5E6?uEfsHKE1G@yfppIWU+;PW+dIT^}|BJSe^&nQ{e7GmldGH z04B6V87eY*-KNioY@^Q73PPoMbR*7H}_)_|vOuAv8r{$N-W z);LrjqZsG2WZ2;2rD#eu8Cxx%=$Lj~5D7 zro4_^J!%plv@NOaB@_n&gMPji$C`mG!J1nDyyg3GE5pGEk5|!sMe+{ie^IT85l;| zEs8kRd2Rk#8YL>;AyzKw&+A=IA{jTo?sl-x4)&uUBjY0P1w|wvlK1ZI+u0^{5y|3x zs(({b#$j2OmY0L-0KAzQ7#I$oQ7H9Q%D%00kX1tkXj1vz)#r*xzaoN^2kZwW6yKUQc%-gy!}UIzbUn2fo}TppY9S}u^SX6Mf882=Z)vf< z<_LWA|FpxzR?!dT42IPYRH>6u7+tz_3DlmI;L2zk*qUVIL4q9x?;(TjaGz5L7Ys;p zA|^<8AkZ+ZHmln;25?PGJh1sKP8s-|G;9?Amb-Me?!;jr8EmF~+hZWKo{ zD2=eSLJ4gIE<+)5&>J_)+>@ED61OiM6J%3+cUt~|ujU?5Xo~~qnxdDmAq7A2} zNpE%#WU~sWb%^+z~zy~n? z^H2Z9nOvI@gT{sE;c4!6(;C()NzzqGgpD2(}<)#JU>=hqpXXs z-?U}>tuK%F88`qE$-ciiKw(3-T|hvfDv(nhNL2au?Nr9K8sX+hK4$qcpOXYl*u9Wx zW@g51SZxX_@gf?w=vi=%Caa562L1Sa{aXv8tyT?hM0V6aSbhEa2#ZGc_e5o}s|aI6 z`AbQ1t0t^0b7-EjHcf^MGnq#4|LSXfvt=paV3jrFzY;{)_V^)kYZJ)bNL63o2HGkk-akN*K& z=BZU>LTR-Td%IpQ@Cow-yS>mdp zsYzb!p;r=YQ5Xl+CQd!eJaF%%LcD@lvAatIy5jEUOwOOf!$c=L;-{?j^3|)QzgX=m zUNLxqjf^sDUzbCZXPKc{SInpEWf=^WC|NblAeyiF8_{tSZ9!CfYgBhNT1#I~Pfu0H zB3FL~;UYVqJ7Si%&xZfvkAYIA1hga{z^bWd59<$lh=Zu-U~gYq zQgRKHm>gEQ&gC_u7?G^dk4aYeZ)SS&;sw&9=W&*#Cs~4mg4{O42cFZc#ATXy#-k%X z15sycY8Rg9`ltKb`hax_>H~O&!&KXVXc{;TB$aR7iUnm6SM0HN02Bk{Ie?4OuP2Md zeNVpu2OnqNnL7>4t0IH%wE@f%Q9~O)kzmHk%6e3Ior;`JNW*PyE?{+a)f!~>l`B_( zmh(a0dPC}Y8!Z)Vke!qm;!#=pG{k~2w6fSi}itR^l!X!Udq>LA4vhyn~>2MB9~dS*>m$79ykz;(@oUNJc&XID^X zXXjio#eOd122r!t4~nj?uDf^Tyjfh_3SlP!P{_EuFf>0uzp{x%A=cX!-K5L1Q8{<- zpxtF1oi|TCJ$W@bwY0k8HS_%OzQ(py*1x`ABwi31YHp$1>A;aAu~fX5@E}tCWx6Tg zm*Z}JeF`Q*KeIb~qB$i640_a8&wyVIaj(QBCFQWTji5U+%-WUSzkhEqSYFq`6UbM% zckf;U8^y$1OXsb@9z8$G-2~**4}t`_0uLITy!8G1^|ag%oKr5+)V)yShCkk0BhJ5c z*!if(k9UfEOm$vz^C&7G|NjUeT)(B{XP%qvUqitlR2V--`L>(uD4Go!CcI;vdCk6r zHt~uug|`I_!HTr$+P|9 z6n~NU(3PsAwU3VDm41Kos{+u+*Dqi2zV&Lk)^TWrZmJBT>c2m-nr%Pzb}tQoA{0QH z^Y+)}W7dt!t?t~B?JmR__j>&JtmJkfsCf73{`~@4)vXuqZg?Zr4?*dp^iM!PTDUwc z;pw2BwH}2CQ?GQ|SX)p`y>Zdg0U{Wel;{}bxZ@(s&HriiUYj=``{;HTDW6~^tOl#2 z)T_~)r{qsRg@&WaCm>*$>k5@`ZmeDT!H%LpgTUBWf#{_}U?D={p1l6|V|sLS_Wso) z+&9{q*7iX^fuQ;$B1WEi$#^425$6ax&`?}Vn9sX+y16!{oy!5PD`TjGh0YHBy}j?C z6cAzz#m&S2zF5z_W28R}HU1#+#aOZVzkfj@U64NUzy50ProaCCn;SMe@Ba6DQi908 zsxkgVh35a-o^bsC_A5d?4v_-6t=!!U7m``Eb7xb7NGeI`LfQ*6Ii62mG%)}uhqR_y zCQ6&UY%l2<40mn#zR;y8Dk_@Xuo1g*XPVwc$UM>K@BMVP@_*i8lJ2IPFcWH;$rpy= zwDcEwdBH-oLYL5Hc_NBBpq1^nWl58!CQWR&E1X1E4%N~pFBDA^Xnc}HHLrQ z-lZRUba>@gprK>zt=hK>^;`QQAd*Ni$b@_c3V-+Z>r=tefu4PqBLh-NS{ZVn4&(wq z=+oI+(egD-yZG1IeJoyn5v!gOChj{~`+3{UT!Xw+Ur*2E$4v5nzcCr#*k@x|r>yOw z>tA@|lQYe^RBh;1a`n+wO6TJ?zZYFJ;o?bF4J#LNEt`IFXGe)4f^w$VEr(Z;v> z6&{_w*L*UZ!}VurCQ}Pfn3|e4Bsu{9@`*UvPRPA-8fW^mig!;g93;KZNRyANi>j)F zR6#FByKT2h<&Mejm%hG{Rlz*vt*xqn(5@|2pLFBz^u};GH8Gn(uK3Tm!qH#2`PhPP zQza$8W#40WG6#vT6251nHdgDsh$1C)Wd6-R|9s9cA5#O}qbe;ejYRmOE!~JoT|fYu zh;gy|+_ZqRirx6-IF+fthnq6ggNi>aF3~iNYvx(c4J$%*D6LOR9d2}zo1^0LPBI%9 zykC^(@*~T_q%$`o*Rua9H8u6@Wxq2>!w*o6?7GdeodjfMU#bdE=KpZ~64n`O`;#J~&fZkak5yKx$=X= zgIDA|MqiQuJRWGqnKsD58-h;b`0?ZM@>$8#FvvvNq*)e3x-#T14cu7rWi}EQzVkCX zdTl+A-ssl~-4RE1>hrfR%nVd1&KzO^^t&eFLNOf@J?G;8`gLq)p54&L^|jr5_V^_w zh3-Dgn%HJD94j4~tGYZcX0zUrLtT`~xxClj;@5STnYre`m`%IWCK zsFJCUpcfHrWmSIz2@SK`&xvED^x zCVz;i%?uhpKf+!<>&?f0{L|Th3J4D5Ba!315X`v8(_{|*_1BG3V&$5WG!uZ?Vns@% z-Sb0)!iSbpLV~li&q*z=3*cv)ybT*78he}f-}zm$3lv?>7Uk5(kc)Ka#1_$ z7N%wYUdF$T*R4y#k4^jHn1J>5OQ_uu5kr=12)4*iMsqN-)WxP}bS?<| zmC5XD8L1J4cnu;M*9lk@MfH|=ja<5LSKN=)rQ6K@=aVzbdS6NknbSx{+&@RJ+`%jC4f!432mjmp<#-QFpbHP zff$IF#&uul(#_hnmv#Ghdv5X$ITs!{cRD<{C*s&zhD`z(3+{pX8U=zMAw72y1 z#zktU0Jr2%Xy*+3Q~zMC9`?D??HAP2O^y7O3Z1us&50p!x4jCh7=&$08yldC$LN~% zp`by?Kf}l<_Txtu_suU1K9Ojr#L6~Sh4oAQ0Wk>|92$dC>lJ>RanpHH4eHQQu3NE? zFbFVyMlpBRCF_lg$KLY2z##;QB#>!A*bQJ?kSuO^_~?C^O!As4iZkwfU?^dBMe`O8e{0wzlUV>xMg$U%h;}!_Mi?`rTL~ zLix@8N0oKd)bih+vk@*E8)_PwgS52CV31l{TZhnv`N(x0s{Zx-hf{ZMjVPKc=4hvl zS7EsYD`pR}0_^I|AWy+0$uzxkM} z>xZnYfQkJwrR@U!_HBPn-h25n%j0A$lb+{$ijN->Bl++ky8Sn}Z9d|Wt{vT~Mb z`oBGb7gfUEyT0p&&z8~Wl;?@=$?iv zBz&G8=A|3|MZCY%5Qjd!7>K*ZnF8(7+eact!zw})67BC0kQe9{NhGh?Gc7F*y%&Sq z1}A^2TM_&#Q7=OI1E&*|5|WeDc}9BfZF&0Si7bdx^5S=b&#Zzd;Y^8F&kDod#e@}v zHD06JTklRj(iml;?4bXqSdvG6RNd>l8RA z%CJgbM?EZDp5CLGefyKQ8~oM~E|gd_bLlH=Qq=R5sCdoK7C6w+z=rL*E~cEU@iI6# z7}>^u#7tCT_(2IkLEx!WFy^s=Tt;uTF6?bF({NAFx)8bo(_ARzYgEr25bxUXNUVC@# z`FEu4x%KaM{lLahrXP7+I}P6Xhc0kWnuguirw6&=Mc}sjW}TClHv%>uw1w~U=SfvB^8Nc+;us;&`CXQMTOA7v3)^z_(_B|< z;+59lUjp2CMgRP$;8pmBj!q7nEH5XpW!O!0CCokE6iGsN>UbRA6?Y{nXDh^3kUL!qrJWVB6P}d(D8D1Re`s&PRVe~ zR`@6Bq3%QVAaEqqiR(9Smfz+D#%Ox{@}0u_n^(ljK%vViDENkihBm&}WpLrR*(Vad zA>x=`^PHaeKyBwGKe#CAckI{!YHt{*UtC&RDKyunG1taKzLhx9SQssMvaS;zL6{FrTYV!gKKWbd%=L)7twc6ctAi+HGu&|nrhhr> zSsDT)ym|A6@SHuyW^iC>b@doj_+ zHB+sxM9e#`BTV3}J*LcC@v3qAjvXV?3ciG?>NQ=@a)t?!Ng&Ns(Z1+<@>CAl0fe<; z#Epw-{A}8}k#HsXozZM#mchdNfDC=x@>(Uw$-eaK*OL`1JjQ)HL(kpO5MDhi)^+9S zX;vPh)dLB9{kTjGS#ymkRh__I)qO}7sj1idYbK0?D*2hY6kw%3qmi9D%_k6?wEyto z7;h@x1BdC@PBK)0)y-TuANw3Z05I6^&EN%#zMg-0;97R~j6=#sTh2?lE@O&ayIz`_ zq9g>4Z1E zYu7GWy~__nG(!N>&UHG{Ht<#bI?|D2b&c1;y{xtM3Tz*$u6NxmRxC%_r2VkQ28Aaq zms{KjuB6B!{FHQ1$Pb5q(?q1k?z<{!PIMo7Yd__bX@;YmK%_I7_7c`-vfruKJZI7j zOb4FdQD~RFBOvIHxvN{Q`2Xl$(K@t@0V2mJn8Aj;Pt?9&T(Fc zciW#I-Z-u#xQqX8NH1uyscu&WDypB+_NnkM#iQ>o?=0^9Uq4B9&+iH!-^LcpLxcYf z<9I*)kGLR_Qu&|h|Dk#C(TV?mVaonrWL%3d#)#}EA&u-V60wWL4H{XET^{)2n!&>&lP(h8YI*G)%@Ep8VY0bpr&z~_d(|56}Y)oC9~eYm+i`5Qb@hANilgefyYcO0q6aM_JpY6=q&jOwOeQHf5e!_>1_^c& zsye8v5x~m&M%`d=qu|N?RT)^ndrw{*D3F89D%Y`X@CH{Y6gn?SPP{q^Ww73pt?+de zPbUi`3Q!JBn6El;z*-ZVQXVc`M7SZ)d&k20cgQVV-FWadyDplr9Mi0Aq(t&ffAz3i zLQ}?~D}fSFgl{)jA9O{sjPM$oj?PZ+LZkXq7^vYcHiLQRSI*#i42UjiNJNyGBM`^(_|Ubsa~Zj1QWcP)WZu zJv_VP+8pnJzyH3;UUcE!tlQ3x_G;9A!#oz!WVV3IayopMiApJ2X0{tS%7`RPHrb=1 zHFy^~&V>iI5h~pFz0|Snx>tj@{g@!eDIk_MGq1r8AGjAiyX9rj__g@NdKP8WCBo!{ z<>QFbw+*K+t7df)K1qxiZLCeW?Iz3jH3-DS6L6{0@=y$&A{2$RRj2mWgyytX<2|Gc zz)wZrUaUz%1S(54h46zJ40^>Btxn%VG&G?@E7!X69WZc}D!J`DRM7+&ZeB+*oII(| zPx=7M%yY__ILsZrGS49*s4G8bdVb#DH^aq8&ehOB8R|4-mjH80ZEbC-Q2r}$VzEbJ ztH2J2j%8x*=;lu59`^U>WuY#s;1t%JT|6GO_2m5cnm~KIgtT-Moa}_~Ojg0FlKTB; zaZE%+gyh=3LfbJlZnHK8xS?ct@h|dKt$uzfBO9qC2ac2CT--#mzYRA+BpkOU{pEg? z+lA?eAUA-O70t{F@b-?toQp9?M@s)tVYhon&)aW-~!t;WE~skXKj zUhqiF)CK9ZZrd}UF4>)ZM?TtB8UAHE)F3POPZVPO_LC9!A3We>4xqwu@Y4x|m>KJ| z5Q8&3vnhQiDRGbBg}WsmVdiYiv$N>Tu`2P_f=Y@|&^jrxe43qI_TIgK*=B7wBRGfw zGO86ik$aTTJ{+K;BHDvxIQ*fb6}kB$bgqTF%&X>FWSkm$Gojw+eXfPU>=q}QR z6-*Iy#PI_BiE({&#(BX#gap-=W|)QAlN1{pOPoe@5tPZ{v`D1bLNR!vqL`GEp)e{g zDAJLRnKY$nr+}ibV!qJ@^8^-99KcszLn9INRyuZfth-3K-iCsb<1&$;@pUg~1u@+h zePq0V)3CY@0(juSGE$dXF4x!&!WATHcZ4vW4_EQ-pt{cwD;w7B6)aw-U~75g?tW`! zo<rfL~s=%NsAvj|9rjK_{$ApFFb@zE(4#{8KXKH#Lb9jc zN7|IAVQKk+u=U!LdV6{z=-fgG??sRw9Yzfa%U$m`7xO#MYMlh99;Og3Z8cWew-2|I zJ9ef!uh?coCl4Grm$HL`whknpR0aG~iU4*P8>1J4NmvQy_UXYIi%fH5zwH#XraN8F z@$ngfDK@au&7YMM25)AvIQc`hD<-6_&_w`FXI0oFd?H~j4+5Ate}M>ojy{&+Ek~4< zmErQygz@4m(?;zzx-z(PFnbjgw`|fFub=A%LzxI%-Na;%{5qPtdQG>r8S>a}4v?&UP`ga}Sf(%;n7i4b?U+rsdW zd{W{NmAi|t+(0KW>Dc9Lb=!ZQkzuT>p#A4+AS_wL{vM=VpAekVneEtmcZ1*kl?+@ahr*j81TG+9};P+FcOkgV4Sl-UPe$~ ztu0tXHmaP2b7Sd!-Rd~@y z)9RRsqK&SblP45$1Ys$?IXAxM?4M;fA^86Kn@dCf;k-5H8cG0}-oUdIw(K}wR%!imo){#!!5d{&pE#KkQ*G#|DvX@xYk2<+_!TEHNo18>T zg@=$uZ*klVp>yZ~T^yRCSR4TuqSGgWjdHr3enNvLE0`i06l4Gu4LjIL3tDlj#sgpRMy?A`O{Qn_r5 zqKp@PF)2r($cK_7a`#jkTC4ghJ4;J0W;CAXE80n<$ce7*Cy1QNh6!rSE*(7WouP9N zxHbc|Pejd;jc##eWrUcb(m#CoFzSLdAW|KQoYW9P^gDv;b&}h}#1|r{G5s}^$u1Li zz8uDcT>Yyrr~?Nq%69EP)wft-jzrG2)d6&L156myo!d$0_d*+28t)U+rFeo2Qd(BV zSTZa_e&`FPw($AxtT|Vn9;iL6?Ho3cOT}Y)R#Iya{Rhf_yq*{xj1GCxI;mL3Hz>}* zf}|X~Zq$j;6DzhqzdYe$2y$5-G91ryC4DTu^Ye>Xu_X+G9NZnc22tDhynUx@J>0-3 zV(|)K5^2V(Uc(L(fbM*J!?1o3)?8?G@I_-Lj?2}VXu`=yf+y6Asav!1=q_|J6)Z`9 zVB+AA8)>F`z*lp=xZp6!vaMjh1+RI>xoabMgUeSsYvFe!D_SAkznH*2QDrkRwpN>I zrruu_tPB;AbL#~n#mERzn%fo$IMl7WhVO^p$IqZ^Fg#{0k2eiDLB}lARtu+yF#^y(hnhDq6~kOD=2tG4dJH@Md%zacJ2CBB z?yRpOf5CnXDk=W@oBKoL-(f)nPbFR>w37J7Sw$sQr?rAcbbsXE0CMH@`Sc-q%F2n_@~ETT3n2*?+WLA7Sku=HXupEUuml8Ky#_c&;*y*Qg; zeyCmXw~u0@N53D@!oCrL4}@%M8s2Z6ZZJC+)n^4~~kg;?A8Z1ASryzA<4V zJ$oJB_#wZ__f4u&JS^2l+b_V8rGLm;jQnoox-d5!lY0&^pWSn}qy0*2U7`Lp4DmIh zka;>_qOs&lCr}SU*XaEy(R!R1+eGRkn{j%(^xz35r6V0=(iMbGOifL}6_EpREYN_| z2YP^@+>H2a784X8k~9JanW=>VRjQKcWx}2tT;^cK~ohG)85EG0*NocpnFEvC)w3_JOwX$5_l7Y=9Z4b&^Tplo*4b|`nrCkG$pF) z9(pY1*XU#oHaE<5*+_7qV`CO$wR-0i4wF7UCYE*FC67C4$Np9VdBR$C6;-8y7)gd_ zNz8|!&o)+yHjJ8+Ll1SQYGNsVP+X!5|J!}n0!$8(cHJ(@NRK{pxwq)}tyR#~ob}7e z>H>-0Un=x3DDgdEvx!7YqowtTykL*za@aY&(!bDLOF$aKRT;uTUDxLp7Mjy)*2A$G z<~-JZdR;5M80h4ZbZkpf=M^F8;gsa!s*0xv7;lQ_*>zWk*91D(r+o9oA~V zf#5mX)U88PnO!$cvV%n}T$z&<&Zpc}rnMWQT zOlQuBqYD8xPO$FzxJe%FgPGYc`(+{poR5$`Qg8a}V|inWwl)>ds(^ncrdC^>kFw=Y z-Z!djZq}lTef;>bWb?+C{e{t43b+p=A|}lEEv{A&W2E2`S}_eFxbarU1))(~1khkr zBWNgEfun`F52*^28{VxK!knkYiVKOG7*IzP09-gb*H^fm7jFYKt5xP@W$h&O{D{{s zy7z)^!>;8sx)(-dOt=%H)1gdD)Cjdpzymo9M!|nL1(TS$wo;VQ@4z;rH%J1}M=wSU z_+q$b76ai&now<eYX?bB`@#0P41=m7!D&>@7`DR2 zOXvZj)6ozUgG*pxn*=8EUqvm;KiGz>Esut~A#Y(%bUx4)rl4~iF|kQDav6rGuTO=^ zjL?>IbnNf#-A}fJhfph6mYMrCHQ_7^Pj?);jLr-TlUbxq6|(F;e@f2i;PLhaag%dZ zXbg_{@v*3CUdiJ;b&yEoQrym2oM2h4~vkoBvl#)unp zV7iL#2X&1j&*sj7GgD-jA(?~b08+A^S~AKa?9b11BU02d)X*AplYjLa#z`k;_z8*v zm%e<+a3OtkYX=gKLMT$zoswCX#Sp1^P{Go8iT804vQ10vS;YutW|2V5Ep+6mMPq3G z(lswyZWauRTt-*H?Yo4TpE*pFpJpD7KE8$~1?FINFdCK2i_;O6p#sXFsh%+|>Ohyr zM1pZ$6U+=xgqFuHuVlDI#HtOCa!mmnmNVFa21U7jkeThaaK z4CCca_MTUS9VPDD3mTK7NymtO4+t;{FMOJrnOVKPh>mDlv4+GQN@@9kpR+@6`F(?Y?hAM1^*8V}<}uER_;I0R$I;016=jkv|fcR&cUJCOC| z4z-^U<20x&Z7L3Yu!CYK*kYZgcn$Lc{NUY;TH*F0ED&nr?O7?X-pzb$-$iO-#%(#M z9vqUXXT;ESMXy}Nv}1MHTyvDfx5L}2!-ZqeeFXV;c65+0;iIpEi6J);TiI33i2;G{6hRKYZwW{PH2@*C|9>nj-_K2akW(q4rn8ZmyVdVgn*dGihc8-v8u1 z(BB`$Z)2>^tQ~RTBE}hNz2}d$;ccqByS4E)Je2{*qa-c0lGM1tuc9+&2SV^gq9$AV z^l5_?X8bFKg)&EmTe9ywXmzGUs{sp2iBtvpLqZ}x8PyTaq&&|}Muo|5L!-TK7Jqoq zF`hm9J>7X?q7G_qg3SnzyOz6L`Pm8_4Z^%jq$gN$g0CLPUdc*{av^R3g0jhy8H2uY z8AX<5AZm~pbQ*4SE3d7UC8S)qVtk=%5U>Kx33v=#_Tx^rWY^%nqfwf)$fip$ggrlh zz7<|y6d~@D0M}$8E+Z~ZJS@4}!>%f1%kRM_(vV|s?YtXVIK@xgc+i?w^4Dr=Mn)s9 zLxPC2i&0i-LxU!-`f|w1`avahxj%nd1!+d@6x{{6RSlxD^OU?rLom*m%$3nF3u z3NHWp^{Y{Lp^K_{o-c>0nHq5cP7*(^bEvAjf4{EqT9@E)XEn=rp`;sQ5CBs!X%#OM zUP$aOqagBP=ZZTnALBNvv4t)PcutAGc zy;2n*U;!bBD}zuKV~G#68hFMii1A6>XHc!Qg1Z>}477l3J}4T31yzB~r+W0!mpq%% zmWwGxLZ_=%6>?gMP5Vvj%0^t+gvp!>7&yD`d5EQs%=8>TKWwvCF}LOWf=)P^Q1Beo zL0rqhJxXpQyf&ML8&Rrqxp|EnPFMAK&?EZGCwu-mb?Pcuu(Q65aNnRrMq=aQfJltS z)j^%luCItRMoA1Nj{l9T=6pd#0H)R=k3@rDiKJw%hCWJA76=_V-~jO%v+`M>lMd6z zFX45R@Ig1wwO_zy__YCs?ZaGi^WG$Z@n}XmBG<=dIO(oy{FvuXF-A%wh^RFZ9Kj5;5N;HIutBg-4+n*ovAtOT(9*$X531R?3wJkhk zvQC064kb1E@aj0gX$%qW<-XduNW-+=`8DZoak7S^DD^Jdmxi+6gx)rsWsM#O_mw_FKATJf<8TwXw~n~TNP zz|k(9EriW59y4edZK-S!(vQSg*r5&kYEhJuA7;JJpaxyRN^r0U$J%cG*b911fQX#W zpUuw*2}uK75;s&~G3(Z73!LQS#9({Qe0qSLE_ek<#K6KD%9#>wpHgym&Sym8GM=8A z63a^ZeeFpEaa?jKOvk&j9zL{(ha$mwY4`Nx?V1LmsFMG~-g^LLeYbtSw>|d68Y>nM zv5O!U5RHo50-_)yHY`{W!QMbhV#FkNKtNPbX#xr=*ahqgf+#g8iUpCPfC_@t^SONT z?s@ji?9S}$ocEmFS!bS^JPC5c|Nkr3^=%hN2o2=pP2Xl)#j1=O`wj^Ee%Hahr;Km( zYCXhYWc11ujUhvf6B3jgFh=~@K`r%oPu&3n?my{aE#|>BpB8N_c(P>S)z76f_lc$w z#|&3-XkMPHiYY{3%8a#PP!1YR%9x$b;gsmSH_qYu17=%&7rxl zei3btxMhL$34a^ZqQx}C7c;4rj4I##(c*>di+=xZ6^Ls7UkKO#YzM-B#jBFRcqaW^ z`9N^H~_o|$tP?+%r zKxRKT{x5--{}~pN|BS~~v-<^ap)A)6^8t5NBOjOV$r^!vn@4=$ksn<65fP2b4NaDiBHCdIk9ECgEPnd~Ly{|L3ouB6N zaDxNA&)(XZo3y1);nr}8UK{1;`&Gw57~r43&VsDcNQSx)isyQ1T*OcPCnP)t7&?;+ zWR)Ifz7ow}k5rEJ5bjJ{I7RVkaVM{RXi9Gkfu}7#;c9*pt!4K&fkiCf>k=!zHpz5X z{Lz`x;VJ(qucRbW_~D5CbdqNmUY~=c0J?qEHS06@+CG2zVvcp1dVG+zb#9yD_U+nb z!rpX-y(c6IefvXv3-j%h9j@QGeOvSZq)&)k393#5T(dIn`8t?zl*WT7->EgRwVO}< zYuh6}3=}oZQ6We;}|L4#L>-7L1NQ~7V1)>5%nm+f}FaU zZjI_Jf((CZ)~uPBUMY2g=_Mmo!kvezm{gU62)eU}^lJ1+R6V>)VX(n6uzeCg7qdH56QbHiNf)GctDBej(P z3F(uXHD6?g{~Q%ayE~5Y4HHawlRloFo?Q4LU55IBxc?{}D;4xvQ0iGN+I_fOb*$yY zXWMSCo+`xS`+(B39RCGT@t0Oa?8icFhdWv1)z?;Whj)2YSM~M))#`Ar5Qpi5@n;U0 zQ9FsGtPz7qsrcP41WUVj)`bH}2q(~U?#k)o!8RK*ox zdWy0>`A-|fM%h=>SO z@9T0ajE`te1@{2;iNkk3bpCTM4NbeuGkqZ}zDH{DNE`Q2xDBz*xpE$hg8ci*j+7s0 zUi!0o7tp$T#>dB>?D~-CB6Vf;n?1wRL9omnF`vrUG;7*)6|@SVQA(5S_BZE^XgSVU zN((Slanhy@t;8}~A>9KW{(s87cgS{KU0wC+%15!hM|oAU#vyfM?6Mqq(_s_=avM`q zX~6i_)m7$J^EftKd_l78>a56Ep}!>jjdv_xM;RYV(_JCW76|O4)Gbl8B6PS#fd?kc znK;o6u0WzUM42LD8(0OAyz`I6?CHyMcOzBB2eY_3>&p86B1S>1=GaizUTbqv`jCq) z6}^MfUrn1~__6I=%A@Gs>nO1?fq1CmH?|3nqt`!;*T_%H*5h6+!BD_6*PdP98r8Q> zglB{*ifDlC9Wm{Ie|4VcPr#%*x>Ww4C_6nrdcg9>;aS!yHmzKO*kxIg8wZa+NL5wU zydw7Vbk~e9b4#*Fv>(x4ne$FEVr$ae%Q+>6lCmS*eZ-uzo_>-#tHwdihX5pMZr_^eLeJpA0NM7fJ7)$!VtqgHa^hL(d}lQXokRT zD(?4KTi|IrJlJ)-jP}p_H*Y6N=pbdw||JpqfZzA;H$Jb;+CdHoEC2V5~${ z!twLEql9Y0Cv=!gkLzVMN6VmDr>@XJ915$(X7rAmtB1}I{g_s*t_@=WPo4T=WboMq zSIy*IP+e<$gxG}T-wAja1Zg10XXWKUgx#0BZ#;O&kaVwnJ}mR>b7ByWx?i9UPea5}4$u-d?Z8USi_WiR{i0~< z5hTfNT$2z!2G=_N&9a#S`!874>svQCjwRHND7jUjiQ<0Lc({&YTbb%RGBEi!6|?DG zZ_=*jt-iiC=Sp9tq?Yup>MMZ^sl;A}-@IuAB4QBIxDUiZ8d~tf;2&I!1CobT@%zZ0 z=ZH95=!~TFNkmk;CugjpjXyS5*u6&+(HVy;2{un#sO&favwxau1zCYPx?Krqfd*g1 z;(v5;G-+p+$gyX0d6y%+OL!D#ji@tE_^ixbgOZX+hPejv?=8cMJL9 zQr`z0NONn{MAKp#YIWj2-xU-LG&MEdvs}!}fEY#96~$vyOPqR*SvQgAW9Dda!G+;~T6KeNsLA=)EI-M{RjZz(N1IPQ@| zCD6rL#0FZiUmjoYu2V8f+cs78g-Z9UPfI8d!&$si7_t1%l)MP=M!+&`!Icx#Zc;?$ zI#&{^wm|a?{pAc|0jfe@wp;Oyw=AzFDYb|8>LKJyPyQZ-x;kS}+6Kfq0udIbt$avE zMrpjh)}60t=>GWYFEefdIhm-wBG%@{Nk9Z$sJ3f;%`|n|8_wYp zoQFOmLp@;cOdzHuAc`)#ZLAOQ~a@Wa^jPV zTiYu)a}as8(3>%1f92Dn7~mjt+F_z@TniG^i-}~)4;g#j>{-FV@2_E-yoRG|+s)x? z2#f3x{eEd!rJB*5fzvgcso=%l@Ui|$h>6`$B1NrteAw+)v+L+?mCzH6xNLi^d=WNh5A3OSETfl+CixxiK|s zPX_e(cr5H*WJ^1Qhs$jc#<)^@W#)xjc8C?rK)2`wdv4gqJU8aBE}{ zEq#JwAY|5~Ix>0o9y`8JYh%8#q|T66C>S}1Oi0&71w+@aEnSd3Owng!s$&^~*}%S& zo7*9~7f3Or=yRE2%MfVsL9mLCALqxm+4bVuEg?Ie z-`LD&*l{2twgF;}F~Dk`qI|N5TwpbL&Jas-1;1~Ii?$v9G_ng>SzBLjpT>=zCD41=W;2!A z`F;mA)LxVXY-lhzqobaZF}p(9Y4+h z$bEPyuw1G`SOiL`*7@~Wn(jnS5ZaY9oU1Es zpWh7pP4RHqnk3(m!h*KfHy)An=OO>}Pg(u@^&6TWy1(nT(wSx=n1pB}H^Y){%NTCx z330bfjliF@yBJZW9qi)O%o2_gdEFvC`&ybCMO(Lu)K|2rZY1!AB0-3)TB?HFW#pY} zB_(xBH8ibpxe}$7RX+S|%QHb6c>P+P@gg%WVcmM{m((2i0#j9IZNWhfd zPOCzL(U5usZU2&_QgCMOr``sGQ?i-8gYBCfXw|sS0f{tSRg`W`goSAW z{0j%NW}T7qK(QnNX-=oA)jsP}Jt8-i8xmddZT)xCgRVQ{7?bcCAX^c;4^&o@?789W zi!e{`13kz7!e?rxXU91^(PkP^TLCRtx!bSXy!kL;nyR*yB@4TGr|hS1J!h_SVe zT+>9++g)xRT96g4=_sG(nkCK@WwkliSdf>FH?rjLPjBP3y&j$6A=o8&xW-SD7(6y$ z(T8j=w?ybSlkM>6X(J1}@8-XFJCGlUtyG04+`(tPxdxj4Yr zJD1&R;bG?9YR1Qm^W1f!+85HkynM{ok{gJ7`u^$EUQyeXSnOgp>{DvENakWphc`%G zS5Qe*R1vh2rz#Au;mXIyMrP0nTH8TuGPxxk#wQ^766p2R0GDx+6NDRn6unY9(2-g< z*Y?h}pVo;+n$|KThR#atp#tS@F23Z}&@W%H-B_R#7LQa-)Z;_EvuW=9UE?l`1>w$a zbN8NM1ojBrfSjTbonVhd^#KF?@-t7*3Umy44(-rOetpYGo1C=1*FUzSbI|yB)yOQ( z{L%6tKn!I00Tmowh1n|uE{^GxS%>J;QJlva@?IH1E<7wI3HzInpJWPMS0+ zM5VP=-T6j}hgK+tA#tNsm3)RbN+kF{hgJ(0cEPRZ&AU$Vqmi(I z0D5v>D2d%Sblc7uhvD=LLUn@Ss*gG}_YR7?cdWB4;gXW6f7$3Jj92Kk(Q)|wA!iX) zb%@SF49h0A{3Cky#MukMqiCRl(RdF5LqsGp5R(l@jLeacRB6`1{WX8w+e@=;w(S1i zS)3l6Goq|06vADK8*UVV^XR2KRVju|puK#sC*#i&%$8o2(qSe~+u}g)6q}EPLu^P# z)o_|`Bkcl-2NKe!8r<|DLjBf57u^{6Xfn2yny|R4HyZ&4jj4pwF?@Q_`Ne)t9E|iW zjGE*^&SQkD1>{4e^4BGVjk-ltBcu@=4Dx!pYuK=F8CN%|OVS!bN9pg#Q-^A2Sc(M# zbB;B;wBx2fD#}((H>|20JClrp*OgCSG~B+^zfE!Hfv-;TZBGNaNN33bEKYwq>(y{= z#+8T83^cntpVQit`it2GQpQKcjhhHCC#{*+v14nlZFTvYJ-4Fd#e520Ghkb(_|aL) zS|;f`7#wJ;Ym4UF4A*q%@MdU=`_6`AfOlB59R@AD7K0H-D|v%JRG@&VNdY65h46~b ze1|57d`Uzxh&D(YZKD#A!HhjP&59oG+1f+=uT)7d~H zn~kG0ySVLB2dcyA9*BU}0PtvBzaHRlojNGu*Cyr;od~SMp?Ey+_3M-Do>jz;;2ly$ z1}FY=mQ>F_4h8W#!pXgvZfJNAp%EE;kv#lIC}1zI&CNVK*oS*}!*OQiNSn*OYwT$e zygBkzU?9T|nsEdg!HHwr$2s5>-Sf2%N0iCf7WxgE7O}2ZgZldnF}?A_t50*z{_eRV z-mm`LE?W+Sk(&-&3YvR8xc z^bZfQG6OIKjMAx%`=MPsZyJ89#cKFMSVo5h!-p-vm zc`dn$ra7ov!G7Y4dF5>AV0#f|^qKgLP1E)5hmLPX_X)LcYg)P3Fhd$f zE($Tu9}rqWJmSy34~GE?M3<&ogl-qNKI2H4*Y5DdOWV~{%y+`|%zhR(W(AckqxkYeP7mg^P`p}#lEO43|7PRf zEiSdc{x1{1e9~A{+W&mw|7!g3cmD8SKl_{q^-FXV6H5k{zAHO-RPpMkdzDRk>n!*J zLHz#5ZCYhk5XA4B{zDLdCy=q)zdCdihTN@_kmU!OVEFlu=kWg)q5bba@PBiX;{P0H z{(nB=|I^sW|BCbfN53%ZOWe#i85`SQ@1{7||HEJ2hrcwq>wQ@9O8+mXehRzWdOua} z{O2ERdH1@_J4E@LFTHu5NscHv#v$-f1ieD*v90Hbrd|GHh5j$5%6r`S@fxXKiPW0GDgHS@2){Z+g3nUC_B~rEtJTIpfl$(T;EaRR3-$ z&!BV;MAtZYM488j4{Iz={eA%auAh@rZ#|x(y(n+-U3BW%QXVeC?^Vaor@x zWb!p|f(hSju7Ka%I$(E@dOCBjPerE1McTll>5}p4`(~m zKs$cTZb$&t8YvVu+0+%A zKK#92y1C_#yblZVPX6UTtsB`b)39gGr?1pGyOE(GjBGLiE0Lj0u(+oHp``F3EgH3suUKB`(dfs);sUl!4N?jil`k$uTkm~%cwj}p%VTom7DBX(a)RK%V8F)xYHNEd7 z`o`+lyZ@wbe?2yKutJgJ^W}XLEt`k)rN2S|A)(Onp3UpQ;iJp*i%R27Jym7iny3Y2 zhNY6G;fY;TTa3BWJRX^*6a%$-nQK0pp_2~Ue~%MkYe#q3#p3)QOR4~BgkvFHQDT^DZN9jR$yq9q-FveF(GYKf41faZ%KeiMLSCP zey6%`?~B$Ph;OYJA+71Xa!3MMphBovRlX}v3edOq5TS<&aR3M_(?bLHKW)IhtVMUs zau?qIv!KqPg5>gZ)u{K8&3^7*Eour z6G8o1PFto<{Alh7|IU*bpcLhXF~4K@tUwu9rM*u@e-X#VquB~o+GpsY!>BK=Z64)1 ztIxl($SnXll1fq#{v!=Zqa7CrfU+CKi$!9(i~fwN!8a2>uz!L2Wr{UN^MJN#u0&GpGLyNzK6iMAdRR@# ztI`ZsVE`|Opm30V^(?sk)RazNKQMp^O_vtm7Hl_jX+3fj`9DJ!tmvd-Ym$V%TeZan)v#otRm9QpTY zF!7PW`1Y*i$pHa;&kSVVI3U);!=sOlS^o>OGU1zwWXAFAeM{iEw^H}3mBCTG;qfKveNgAnG)1SR|DqtjG; zv#r$i!qygc8I))1joWJikC+_3+htwW&bYjUgPMCv!V`jFWLM0c5b@yZ;#;P=Kg6N=uGl_fw|0G2rv?j#;U*1Eg_Rq97)97N8837n7XIl+2|s_yx)k| zH4EzOqn)-U9*x8}@o>!#1#WJwnF+Nc(!PgcaW8<5AOt~v-UtLG8wmXKk^2T_!jiW6 zEid+Se)3@86G3e$1uRQk!-nrZ0CM_r+uOF2UvhJ$_6l!UfA`0^b8McTx+ei9LN39= zfTB;8yA;U~Q3b(0v+q*}sw(k8+K$xMzP7Er;C#(IbvH{gW?v7AVWk+JVZObyD*UGUILAyj(T}% z?hV>!^2~KQqCF+i^`0eBCv6R5Qz%t@D}E^l;n}p7z^S(anwd>sdk;;lDEGObpOUr` z2s9(yqU0)QZTYbBNaUCD!nD;-PX&uyAN`301F&2?5#U4u>PN6VP~vZJ_~=pSU+`-2 zgwSRDJP4%rEO~89>rMH=G3>yTDgXp*<4xiA-X{wc9}`qTuy(-G*~k+!};>~ zp+riUbPNmKzuD=sBop21TH_m>LdFvZ{HUPdHfa`VF+JHYFeGx4$f)5wPgBh`?G=5B z+2nF|!@N&pw2=^H-oY)+zPvZxzDFIRE?F~dd)V@g^8mstr~=TtTA@@7z}XZc&N@O= zq!o%>(-Gab54WyTGx@-k9p5x3mwuDTq^dGgK?R|W#@u;*j?c=tyjEZ2pM*73;BE3N z2?Mk3K62^r;);xl9X%5uI_a=8Nr-z8_eMy<7N}a9>_j>U$?jqs?~u=1yinq%dGCJS zDFN+gqRA3#3n!pSljdy>mY1#?YFpRE*wAq1rcLGg%fGyzKEI}-IFuu!AhyzdHIt8- z8!YU4IL4T~#Ii>Xo68mFI}nbP#?_R5$-YNt4YRvm^+}^r9x}3ms$-T}YF+%V-8*+y z(+D2#qZamM<&>#YUuKQ##z7}u5e5+mZcohOR4o5wB_H_o*eeoUq6g3!o3+{QnL_rJi)9N z>(qzvU%Z-x)E(t6c)Q=o48wNm^<<<_UDDJ|{7%CRoJMlDiF3vIYxYVS3)s={v;6Cq zm0KDqG8yyupnUwYzt6RALxCmCH#EaYg{Xvppo5mToSeZ9I8+pu?R7?P1}>e ze%A~RZT@p=_eCQKS%S)^iZa>yFfZxCrd;NaNGh2Gh3c`#L;xpxORk#`3h08IvFUPh5=LnjFyX#`3z}9@P;(qDw|{x#UEF2QXBP)ud|n<)Mtp8GZX4i1W~Y&R)9b-CG-wo1zGmm1NBVn$9!%R5Fb7#mFFnWfvM3~lEi)N-pbWfG^R@0I zDPIv&{(OUW?XQIG+?fL?WY@-J&p`cWE~0^r`E5K;Y~LXMHzZIVK?|=N*JR1o#tEBv zEZd}6>j7&Q9twS4bp{)hnr}QZ&h8U-T;W}WQT`FNun=9}tji8B+I+duMDb%vMn=ZD zbrI3gd$M&uwf|$Pfq|M;E?(DtiMo#vrMGMMwIStbt&5zX6ww0;`HRNqjFBNorMn76 z0(Er;k1!7z8`$`Os`)=E+lZj8Em`h>)r0xu~-$=1&*xI;n z?yBD%`PmYV!;g}Xm^hsZODiZ~g7ZAupHbbGASPdMBA4!fpa-q6wX|W5pH(N4q0n-M za?K1;T{z^}cy-|bL1{Z(v!tU;dQR_Zv|h)Z%dS6|Ke=$z=;}AZ z$8ROE$#Zv8nUX>SgYS=zN^8|>dcE;@@BP{nhumb{yen1FsdK;jaM=w`kRrs_w6De$ z=eeaLVM2uy3ZGwT;aR6X<5;b0+$q~Zp1#0mM&h}%xsXBzF@9C4P62jW#(v8`TKKX# z2}jhjCiFJxd>acG6Pt_U)d+YI4Vs+6oa9-6Fa9MD6mCAsxpRGqI5M#~1X4+*WE z%FI30d-ioj5$kaRT#;9L@Zd~9mxUB;o`@TS$E7C2ySRnuxqUKpQhU`*YgU)f<*mbZ z{r-C*agg|Ay)Rz82#Iy@^PXmkbK8)GKPAKPB1E2iEDa^n%Ojh3$mq23XrAZs25!iE zxMW~7=Z*8HdtEu{jtHe~m_o7#$iWE|T&Fp{A?x-5j6@U^{4BFk%YK{$bJONai280u z0}F7+uOz37bPFUO=N0$p`f$vSD$``&k&}h7i;91oD!Li4wJ^g&w-f#Kc1t=RjX(cY zOqvGfQ=2II+)LJklxt0iVhSucyCmnOaI7>?lnQ~gu@5m_QV#13(m`~^<1y!e%AzpF zgfI#(5UCK`#hfpGA}Y4v(?d}jtbYErEpjX+ZB;7A6e{)UFXB}yM^w`60>`c)0c0{n zn}CHC&+MYY7T;>jh>Z{){Avcc%e+-^hrBmSUA*2u`a|(Yvp?d09cBM4h4~16*}61X zffDE@bswcr*n~OaaVDda?K-4PWV_1-&?P_N=&SLc)xfzL_?A!L?1ws2iXE zN~nkL{`s9#Z~KB5*L`HV8%GrK-pqtyJ{>;Y8WM7|v0F@QRB%AYhBr$ z_6d<|$xkU_RAznEvH-5f)dhFn2-M05N5fe?diCm6ajQiW?JXZH-L=Lua4|sNl*OKk zTBrQegUJ#QE0Ke9=FE|vP^m{fn@OA6W=}kK%y8r`iO0uZX7-&8o!+eq?)%n>b%KpD3DHgvBCHk1s`V0i{4BR%CJJ`A=*5S%qj zTPw*D;Cw7=66Z?IMaDBwnaq|z@FSx_C2p@(=ftCV!_7lt!1h8w0sTIF0c1pZw}}x5 zU{$+$p#29A9xRjlP(ZFIHrkK6X|7md*tlRCr%5`Ri~@$qA>Y6xcaT)PNF-N8W)T&q z&IT|M&Fzcpm3glZO-0%?3*|0zW4*%PHcR@hy!ccr8P%KpJm+hW@hrtlaeDgcBkwJYQZ5wpnW(TsxDmLJrg40PgZzdgpKbY4#l^~sz#+e3Y6lwj4v+5{ z$T7G`(iBn88f&d3MBv@OEcjuR8XiHEn6|lbbsldVZscCyYKrrYv-0}Moc+C??+Zzm zv;U=Iu{}J9>{*HKaIU$;qVwuMt(|>tT(XTr7KO}1-WK>qlgW#3u{3dAU301wC5)Pq zcb86NlKIh~l|9}>S@KDH{WV4Lcim})-uBN^O#PvQxCdqK*5eViYuGlcneN3^$b{Kp zljFGDU&OoSuItU+o9Usp$Gr1J=Z4s=s>(FiBVlf(xwFbG@_%iyxZ9dmUf$2AjT&{W zTVdq9i$$P7@nrE1-nzANufzVSCrz6!4jXdOG>J* zPVXf;KoVvLEL3RR?^n>UL=>p_pj5*aUf1zVYPjEHed`yLOewf)x8y8cM$HAj zBKzy-)PHFb2L?JWa;@7eDhtj$b1*CV9eHP>&}FNP>@mgA0EH~`DbBiZT&ise&?9D4dWQ-S!hzPY{klCOscJaXr=+Df18l;9DOY9>2Qtj9v;#wOfu{& zQV>N$V~Geh&}jr7whNW?=)j{0L|VV535K6ZELbsDEAyZEPJDHje^(fc`8VVLy?;{} z4EgsI`Srs0{PSnezt3Cj`TgU+|CgI@{*BB1&-jQ3qXT;=UVV#Buox)6ZlQaMR#3B2 z6@~Zj|Mm~6zbk$y>#(j+YsmLU65rUlpF**|0A0uMCX@#M@k{+@{Jj5rJoW$cTPXh9 zJK*mXo0=$eUGK~|lkx55^=>cPywX4GYq!POJkr8Ir^&?bPt_Z5TT~V4*3i9rilW=T zxQ@dc6Lqh)ZbDh){_5O^1uGPagRfT`HNQySWB`&V)>?pcp`WMA*PUE(MOF^!n` z>u+?1`#I;&(gO~dTS68a&D*&}&KDzFbscsJa3b8~=p}{>@1j;%^s3vdsTYz9nky8G z6R0&q0A2iocJJC1Y*fb`p^f#6OLQPN#!o-JE;JjiP;6T-ox4u%nouhEpM$Yt7=aqh z+*IBMdVWHJBjqUuukD`YXeNqjHMpq7ws)FPz`?P8?KsLWE`QWTV#8GHXi~&pEKQRL zdI6gZYDi)Yy_{Qe63PDLXY_Z#A)UEK%|R-tOb0Kwd-QRGk!RjuM_j_x-&P)88lHQ` zZ5rXc^WJzkbsU=mm7l*p4n{WboBsCQVPr5DH8q?_+9F|J0x1rH(1<^lhjm1623E%W z6zhYlu3z6=Jjlt(DY~Y&?zR(jRz#ytyt-j~#ERtZE50DvSU@>+n(|cU_hnym$hmTo z`ibnYNz%X{K5TL7?5B%`H|MZ1TU>6u&;4sZdz#%<%J6uJa+DkMd|qNV7)?Mo(q4z|`$!am$+{4V#J|K3&r=C4O z93HiD7^}#NeD^Si_HM2R_&TyVrh$YI`c*-jq9KfQ;hcs)e!4@AAevQ>jeCW2Loy_^dXunAD`hJ678`5 zS$u=r1R6y;8cVu4r^xrs6gR(^@e9B#PPd4NJ0*i4!4L7Gro#YkqW8wuIv$o&zip*0 z8YY;9X|PFV^fOvJs#Xfc3xsfS{oCfaC+2~ti4>R`u(HjB@j;hWoAe=x_6h2sw$CZo z7*ugDDZdUm2vV6Y%2aZ1S9enU85N4BfKHlMVEZhlaDeGGLo>*la@u6k*BBI{tTwRM ze7{fUnO~0A0i@CePpv7oGz^|jKm~8&UmGZSl3&M2zXhEw!L2d+M3$k)&!pGH3G_C# zXYC*SMKZC`UmPcz>P+8Qh#cEiZv4hma$WUjZOpF?Q8#Uzl&^smjxOT_P=wzHr`oFX z1B|O?@Bl5a2_)1f9eE*n9nKXQmXiNqQysV68w_7+LjFP#(Gw;a+Xa+^D>kNqo+S~< zFVfP?NeHAo*6TP_-=+4l`_Y493A0eBUd$RDR{XZ0K!_0AyMMgCaA`%zxL5H*P((|X z+mae6q{2CuQE_z{GWRrG9lC*mFN&xWhd)L~Bl)tDivodNN&RC`{aKqVlwt#p z>)MV>hP3bjq+dmrD&lS9YM@GoXEd$=_#^n!7FVEYI`oAd5v$Y45su@-HcABCl%Pr^~?XWsbxdR8)Oh2DoKy?W~zPrxCpZ#T)mD8H-f5OI zn?9ZQE^!|fg=y;9?~fhC$Y??aiiek;(-zuYp|@?rzi>iJuq2JjAf=oefNSboD~AYv z#u65&f^Q`xvZ~?@{oy71+$St!HKmw+utgz83UATAq!{gbjOt}?fD*$-}aANgrV z@SE9=iKkJJSz@jY&NBe^pXMjePmgzXjV=wln-k|OscT}y0%`?N*v$7f<#}hZkYeEG zr^G)Az)69ydJc^`BiiNS4Ryr{D_JDh{AxFrHb%A5KwW5K+5u&+vRxU-_ZSE`-O zt7vp*AU`S?TR%%<9EWpib_TW;m9tjSb8u~?lKipsLOc+R_^CJ$+So!A$ejU*bc#&^ zb+ABsefIVD%t97q*aS|ZMWaQpqspn3Jh1A}OYsO_Tx}uKl7!$ak5#(I$Fp_UQ$B^>!zFgT^}hlY=r#|meH z(bk;&soaAuMDdXFs)g+=;M&Ibkr!+dPSH<=v6(^acCA_Cq4TDrhUW)`p&U15ulo-r zzye32X1BKI5eH12HZ20ZK5n`d7kWI2b8dl{=torePY2e)a0&M;9WMAp5I~r(3|R>s zU{c-J>cJ;8OAzR)Kr7-ZJUc&rn1;iZ^=KWCz3tIj^LOa8>sb#@=MZ!afLVmBPPzJ7 z%#oAFNdwH#$=z$oNfyH zVrauV%v$qO!Y8oF8`xq56Z)MC^bAT!IWAXBvuoPC`D)ftqIdEm8*3I-a-0F8$0xM- zfnuHEi{!?@f&aoLU_L=B&_jbE8ED><22T81a3~%M<>2CM>~L*+R{hH19L!oJ@WoxN z=E|p3NBg&Go17;!>no zAL`nngU6W*EYqjp_G(I0K$_ipf&JaH85bQY+Dj^hcr7fR6h!LRlTD3^FPco>-EO_g zwnmNeLo*teZ5U74DKcJ!5)o^x(wb!ks52P~!|g0e8DxrKTnb+7t5XmP#l=w%Mpie$ zLqSrII~bJ>yMgMa*vHyM&LwI&#-lBms^T)n5PrbKXPLAB0Hw2d>>`KT6qa_3GK`q+ zVjx9dxdl0r3UBZFB6=Jcli@l#S?{;3QQUm=ksWJ}uvR41o)>q=*EsxUu=nRkZf${J z68$oac&e%Lka^{DX>dqoZM1ui3pKo~Y@Oh@!d!83ZGLliJ)Oh?YGmbCM{C2Yorc=w zA~%*^fr@vrmOYpG0XaJQPIeC}o_U;?YUF{6C%NPR3Qt0aHjyO21LRKZK=RP<**99W zzd!WxONKv2KLC02Ce`W;bkNZuarJBqpuq}(LIotdd9x3uVJmbWqg#d4J|D8Er%qGi zKqg?Inz8;{)xAwM<=Y#szIY>JxYZHnq~({(;HW%G8m6Olt}>kcgIcQ5Ls+`Q2F z_YRhz|H6QwkP9=Eu4I)uL0M9ML<2~-F(cb)T3P0mjeTCihL(7AIXP}7-tBn>;^0#ryX^H`PHTi(=@ z;uf88?2q}nQK+j1d`sPfYMp3?A=nk6ezdF_9mMae^yphktHL^yNIY1SRD;Pm{2bbo?M{(PtLzyM?4#So=72!S@CP|3_C~O4WKMiS{ zV!u#Jp&(|5Up;QlzU~=>6gT#4QNE16hXjvay4z;5kElWJLdv_jBfQ_NHRVi6WBY!;g>4>A`&{XIhJ}NY z_1U1AeO#|Ko5;A92-do2dMQvMvUSLCZ=)ob-myGtf)D`O7sNRJ?{;v*j_D=K8Mnh1#| z`HceRk5JhWw=a>HNEur>5xnm z5kkzOPYZ?HN@x^RWv|KCUnxm&D4D$l?v7(y7x0wi1ne@j`bC){fRh6dC5ZE~xURCM zfOoHVSz*WxhCid9$Q?+UnN7x*T#&qGA>#g=5p^I&`RVe0R>NR^Ah~}hRIfTGMK1er zbE*H0sY^YUp>yx9yX_pL{b`OdzbPN#T13J`TEX1{4UY&*=L(i~;gge-MQ0b|Tr>Jk z9PPVuy^cfDpQZ=?92x(^8C4Gb)UpOyP#h#0`d7Q=72aE8zs5Kv8}$`G+K4rb6qtTM zMSt}CmziI`J)X33*)qEgNq47Az4z`Y$$^iLjg5fz9}LmPi4_N>8c|o%{`B%kbH=S( z91lLEs^PGte94^&ux0y5YPha-QRi&dS6d+_{ALW((wbr!Rb52VJfzrFQQrxxZ|>A+ z?tVsX4pdd0B0N1^;NGvq!WnwF)NS@gKouoQgL{9yONe})vvM6rRd&S@E+f&LicB8^ zy{veQvm|^pg+I1N%00__NQuVyu`~m}@Xp;^JPDtpeY|(#o&I~oydu~Lk6JnF1r#`K z$z-qbTOA0N$;@kX-it0=rvD|B7D6#ae=`CPf}GVL+eoI0h~)wvv!YagqI63*w9S}8 zstCHGaYi`VTvzKLDyP-Ae*4z)vB$c6V?taJ*#JXIAGQjmn@-=+sLk!Sjvc5A+%|a6ycuJRxFjY6Kq+-lrxx zF&MFamCKEvF^eT6?W3nIPHF1(Fs0+KjlWSl4xz@HBLt@aSO`p}dq~bZOSkE?ZB3i% z9#Xy2_RGrTW8WfRYfj1Lp*Qu@bGjr_TCLE+_&-D6>lcT}lwqJDgBm_PO6ln`VvUOK zwkHJx>eAkk=Vfm;LGPaHA=8r6d#kbvKscqVp4F#FI#@K=QeX2U_Lwk6nje|Ux?5#H z$kkZe*h{95pzvqC41E-{y5gGrDu`^%PyW&@EyqFO-JkIfx12%35Nyw$J9pJzMY^P| zaB431+JZ8NZ>TdSX5Rg`58iq= z8lmH;Iuagv4rNKgotoY4)nDpgLnF(Fh|f=`a4H#EoiIk_bo_FsuLl_qU9GIF3Zqlp zi%~kQ&W$^cojfhamwe*Wt__VK?N3v3t(v<`Rc*uj$M#iAw~@Ou*|An@1}ER>`6U=| z48Hkqp%<4ZGMWlM?c(p=caNY(O_~=Vh0t(#yXPR4I11D$9(ix0bu8ZP>9TMBa6uvq zpIr)NLoy=bO0)QYg*ztn{bV`}&%qO$PBX|(O~1Z%xH1*9gql(WP%L2!N)60uChV@! zwZJ*;mFv^y;8~de$Va^{X4AYV`wc)qCaiM{3fj!GqZXPrbz453IQ9+iKF|5J@%>vV zmtPh|vcY`oy6PWa1crjuVV{k&zurel_5gS6jJ6m-7{STbFy(PUS5k_q7FV#!m{_7G zrYLMl=DbPCEMyW$48XFI+GWbT;aIqwha`^X5c^>IGD7T&mYm z?7#c?(LUxe^xhQg$! zM-V59Od|1MZk4ANSUEb=n8nO{m$yy=Hom1qoG7Iwc{;=~P~CcFAN3i>6#)ZF-(bu8CTCaK*#)xayM3NEZQ5YO?PX)TAp9GB zD`lxu&6OoL&^W$V8XxMnD}z_Vix71rD@x`%3!)S2)G(8 zz+Z;br}MxX8X9~o;&wEPe(>SxTYEut6C4=MxR1&oG|mK{Lif197;IhA*h!BJ4Ny~A znudO@{L%1H@;_CX72_T@PAv>Dc|d=qLSYyQVI)13M-a=|cVU2~$BLw?se~IIR258h zXY;nHs3R|eFAZg$@o9a}H@(9t^tS!=%nVni)aVp6qr#&oUJyG;T=Q8f>Vmw4j%0@Y zCIV>iAVbZMDroI?Ui54MeHe?je~#C%oA>MsQum5b<_$3urkJc)>ZVOrvPaOa*YqzGvh#y%8Qaj z3+e@O=@d!9jXR0S58r7P>;A*Nc_7oLFKnmS9Yb!Y{Jl#8b(7LI(+yr*IpR=ve?sf!Xa><3oDYtDL?=) z9pMW1b6XDs3gaM?=uOcviZ>fc&usm>(1DMNn4tHhG=4Z}XolD-L7d5kE?_$P6SPB~ zv3=}no3!+hK=G=`Paopb_hud=%wF7(%Jq|uaI~&^786h*Q*z;7s8htSjMonh(9siI z_K866oC%l^EMRW5m)yRLi*(js2e5+Q2(7tx@ZiCwHP@=Ne}7ApgxMoSlA`mNnFA!m z<_eqmYhzBifUhML%1>*i`1@O7JJ)2}%!BU~=P8rZMY=-C)R9@}(gb=C=jW2~F_!|92GNk!>8(o2&}5`nI(fO+%=w(Ym;fcf zh)UIfli{){dvP{c2Zp6df!ae7eWFhA_f{u(+#|SH>5(<`rFf(29COC@L~Y5Vv?PjC ztS#L?Zz{>rxHZ+;AFEyv7lM{_Ak9?umy|mL=<_6c z6KshWG>3C#(S-v6nRa$1)rRZ$oT#a;7I7ykTOZavp;D&NcCS_6)nTJhHECEL@~n2G z`Lw#VL08%-8czGFU7nNSsBW=*^5n_M!!&!RBqk=FZrDT85|FIYap{}TNN|1A4OOLS zZ))yC2zBe?;`w!)9O*(A+NQt3+fNH$$M2l*)6ID0>gvY~CZCdZZ|{5j zHWx-eNW&yAk*A9r4*R0!rQWmLTjF}OxU@i}p_gXupa38jvjulc06lb$s&8DO6R0pm zSbou|(xI;YdZA~3PWa5KPr1HL^;K;}$;F8)hI_=?+Ck6%{=0yY(4$(pG;P|nAhz)eT}x|(A)F1M(>Fn$$Pn}IDi@2I4y>dK+> zv`n`sf;bqt=dX(|f-4`{>CVh3opv^|^`t#{v*)RMh4!0_GgjtoqcqCxGu($y=xJkM z#q}cSx<8j|ExcPxw{KwYI?rGCD(#HQonx0ZMsCP^&x_2W$kASQ-#E~je)cH^uLtv` zE#Qv4swzH_sE!oe*rKe-&3K~?`q6J8SVFgTkML?fp~IICK6md<2>f=txng3qQMl>l z=;%>3iX(>)XKXxjt;#k(u4~!CMvAgis-v|xO&>F6OweSz`X!O^fv&Y%4L?tJa(Zt@ zr9PW12OA4tb|sVR8RUXUt8Lko#D`VPj-~Q#Wc7)G{{G^j~&qo);S7p`M z;<=I286O&vA!DU2wU{+Wqal`Y);8`kc+PAt?wRQH z%rf?;FPgtGYuaBmWnao3ieN-o;llbQM74bXGkgz>I(I`xkWydu`fYsdN0S3)>Zv%} z)E8C;T_KM^*20_|L+MmqWnDq=W$!7WT!*6zNR4rs78?8T* zH)z3?a{}5FedbjeeOgrS-TZRQF_8PCu{O@U~;sa2ZqS zSXp%P`1ngJH<@=3km4H|JeDcF9c#`yxR0jMjMy60yZh&-C)(Isb3+@nX)q2naB=YR z_bV=b8$B)7sp84CisICq$cDt?qyF#LJa&CIPIovl(3Y`|ac4c%XV`2a15f^x{T4J| z5#-tsSM(xcH^AP(MHcgZXEgKs>e-ch%B=NwyBgJ`J=+f=DL3|@5hEso3W`OTP`)#u z{zBIq7dqbXl9IQ!b_dY5lhyptkAe4SX<%VCoV#oq%7tf@I99zP?$PP^2P8B-0w|{7 z>^~E>OnwHB#jVb~U-N$dNBJSJ0v>#7qP*BpJ+^lKvw+MkA1bo@Q#Ltkm)IpAzdSK| zMarzY=53eTFAKDaeqV6C)YUNSZSWL2EAL@ervP6f=2aBgMn=szZpjqOo)=eT59&3q zGIz1Y`(x=f!vgDjO8^zVFQgnruYPSZy!`L)KZN4p&rK(~HMmIwMRFnNuZ*QK(0Oq8 zP<(wV{3uw{N38?(3V$EJi>t+aO6Qs&cY*wQ)$AM^M?*7Ed5P>UDDYkE57NVTO3b`( z@OaoT_j1^FE9Hhw8#EJCx^x*38k&ksuye0oLv?g6H$Bj?W3RL4%GLoof)5Nzxb$Gk zw85H#rc-qfkbbc9*9O}~Z@TW@PZ6j(e*AUSV$;X#e<6Mr1OpXV_A@_MrA)+P0tJgB zTYuEO8IA#yH$*O(vhB+4+jsUo>qy2YOVaaex5s_8W`AwhPUG4w|7Tf!P><0Z{~4#g z?-@VT{Q1wDM!C*=*_vnz#}B2$mE`S=8dRgj)4!uNS3_^n($Zh^0FsWXhRyl-EFm!< zy<#7LDvP;iubwsm6OWqJ==dLdt3UW+X(6Ast7(fzPZKn5RT|vLJGOD2b?8dGDH;RD zjl1>s$at5fS$)GQ7fzXSw{?x~$gLmYan7U$Ka!aw*EW9%*|6P7z4*qz0u~v}wxrQP z{4T5T>(IDgf$?Lc#m}rhB%RZX{tk=Q)zjPeS$})&+|sz`^O1O@mi=GUy?I#9``b2p zo0nx;%UmIr1{q3}kP1=VnlvjaLz)MaXwE{2l)Jf9Xws}%n#>fHW|fMfG|%&J@AI;L z>v{IE_x@|Yf4uMGIG*RQ{G{&h_cL7Ad7T3oaNqtOBZGH5C-v6KXYGwHt~_nY`T3MN zi?K2yniNnikPq{-i!SmT-CSsp0#)A}nHk>r*GUjrmucY*-V(I$21Z6nB(u@Y9^R}I zAE0vl<;$1wj@sK*lPeFR1>2>rULB@aqE@BkWqyyxW1Xm~vvVFR0ygP^)kZjg zkGS%>sl0O!0XOh4L0-vk=q{DUfKn9?AK2pqso`-NePDCOYUN)6`YXuA6?`a3-&F4^ zdE9>c+YWtK4nD|t^tPHwnVQJZy3hFtp5-ptPJ- zZjK^ysCHRA2&+Q`_R#j=5(w5H!U^nb<{gpn@_~6kh@_JYIt#zdOWlVC_(sOZM>|V} z%A;eX-zg#ONz7w7vc+m&xQx*(-PdW#SDw6u#c@Q zG!L-r>zgGu;N~z{9v%re+Y!;F1Q-Wda)l9jD7Kx%z8zn?r{AB4Fg!eI;PsWamc6?; zJ}9t=bMT&Cj85fI!={nOHZTO)C05(86>$Lke19(=wgz@ZK@zgRxWt&b!D^WgiOAvi z77g1ng>3GBY0eqeIg_B5u8I|>0rz#qnX_7_r;kJEhq3s5xF`g7w|WJct?n5NEdSMc zz4rvRH8!qS`84S*N^C2b<|#k3ABqLV4jyE2zob4zAx^%0^r_)${w!nAUgy!4JdUxtQYVX(p5DuxP}rt*f`JUMB}vxymQfa%H$vEC31fON^{m_;9K;t`Hs&QzIgNRdY2(8)u}RXZJ=ye@@0jUB zYRN1E3!pOI?)GwB@qbR+$xMS|jEKv(mfA-i(IAJeZtWDJkc(M;`Sj>;eg{dShk`2Y zCoIbO>p|#yh-sDS=jgB)g}@XUwWzJ*P7k58jK*EjkvlT}82=C)luN-|5V3wMWZ(b& z7Sjoo)~b6OU1E+UH?>z}r9!EV4aG%XVVH>oiCs#B-Q2T6Um+p9Mv38(YJ4$b{^FNN zt%(ONSy=m4hQ@I&)At>RJB2GGOb7jIb4o6o2_%Z|Y4s{I8%@IuDaI0(cb^}I@7pIa^tn;ro1gs{6Co2A zG+j7f5b?(+HQ0?bjv+vw~G&q{??uPhmbFjUB z-OUtZ95^3ctxD8BV{`Qjus-De5p3&=lLiC}N>Jp#%UzA(g)ykarnT`|Fv*^Ax#WfM7d#!_WBuKSM>o60zsYRguZ7{t_FH&7Vf59Kd2upDK^IC` zhjF?6zW8_6@s^M6rK$ed95zj(eX~Cxg6JWbQU=Q>Z(_2;?a~QY)K_wi$g#)|KKB5= zW9&9mxJ6^A+o318Vi{}+6uHC-U%XJ^Ud&0x@CY4NC-++&o(^7=>FK1Nv9kB^UZvzn@QaX?`K@J$GULPAdn3qVT`_UpxwhI)g{oqK3l zGCgbV=HtVi`1`(X4O81-=>(3DgG|SYpBclf$m%P^ZS4d2})goUoB+4)9(j2qLS*NkQp`l^?+^3WDLgC@pHs;uH z+3sw)m*5WRz3Ukw`g9nc$j1-hy?i0Zvgzcj|)yN8+E_|LwD)6S`l z`=Kic$ME3i>%L|%Qw&n1obBU{K$MBWK8zZw&k6@&fyA@Go_EzCyM4tg8=*ez*EoLV zb@Ht79Jb}7E~nnFnAWx3jMYd=ygF~OalfaxIx)HsjR$&t27hjtZ&~wl#2dc3?f(g9 z3%NV~C|;Yn@)bw|sG1_d2;eG=Y~2&l!YP?>V(fRmcXwP4ildg@Jjre|y))eUF*2V$ zeS8V`J`sgBUj&IhHcol|EZxHcU`QmCCtEgcdT)Hb3w4C)K$IdP$H=@=q1|Dy_tdlW zZMl)H4(qpysIyonj_!-B9?^~&<5Di_D<2O{RFAp9S`f-#JusSMhoAUPRH(aFoZ+^q zX7I_Ar@^GbH5|dLNdV}d#O2=SUMtru-^xUe%RNM;KeBKhf7>>Xd!Z`M zi*%Pp$tjUB_+A~x5LhAhSWJozuG_4E@65Es??>9s2Z>rGTDMMDRc#BdOx3b_b4b<< z)FagYqS^-Hxy2jOtGDa%?d;H=9Pn}A8yK2&aj{XbNvTEJ*p5J{&;*MweJD8=nsiiC zbffj6I$PUepr-!m>AonFksbZ${o`xZ;iF=5NhA9wmknX?_y1gaq1r_*GLf40E)534 zsTnMuvwb(^mn^uwz&LVfZ^YZ%Plx+@$`t|?q#XWPVkfnC@Gw%&zp}>^1R`gxib#2_ zAMXRp&+XiTS{DwhzRS%r%wLuVy{`XwZ&9sw`M2r3GsIxKwAQ zTTHkW=y0@MTpW|@#y%?yHF5IkEV^d#3}N&nov5tH#&}#-%{l1)m2C>4gZ4`drrD1@ z9vH1Wt!zb$#Um{*y4-5bvHOG5Iaw}^lg1tsBTcedZ$eyTCN1)BnsF~*J|cP1`osOE z@qdeC)&?`zFS!n~EaH*<=pWu?&lPzHz4~iX#a}!F3+>~yzI*nbKp}l+AigKSPNMpL@w&aECDUx>cT4}gmtu{D z5%KiipY(i;jc+x5xNvo>ET9$p7(O_%AP{;Y6^3f4EHqo!GTF*Qg^A|5x-S0Y<&cFc7_>!qcQ?a!`B;lC! zD>4`N#*K@oHsu;)`Xu-FEq^=+uTkVA!&ayEpVG(%0KT9_XMXY5qJ1@f! zP^og_!+l&*2#-EY{19Av&l0Z>q*Y9NM8D1dArVqra^*D<ZDiUj`2*eqTieqZ8wOeVPyYJ?<77s2m z3MgIl%FRQs97RjIVUa0F+f48^cEpUdO;%}Y_7CN5)^Ch6tn-57K&4Z9;;C$d7*(7; z-bp5|5O53w%%u=lSaarex=du!f;H13q*bGY#hoEfjft4nS;xX28ZK95)suP?% zui?hC?RakDS$TisHr5-RX9mfq!oUaANi&Ze>Zp<&vE|`SZvOE;bfZR(kTo_d_$Rzw z^&R0K`~?GbpGxNbs%EFR^|VzuFXll$vHOHrsi>Jgsip9bB`vS;h@6wpz`gE%+kI6O?aC@4UOF z2Hq_fH8S;_kTCN0`>o4c%zm{gZ+O35Ki{=>jfiQ*DvSq17IW`?{LV9sreEYZ8zcgg z(#Cc^etx4GNwrJ-r1o5iJqHeBXckh=gVm%BfnnoWr+QlxHr>t494( z`DVc?8}@YW)94_H)L8h!LWyWkD|Byb34BxvSA4iQ)V>1c?`D+Q!?we>^x}NhwVGVi zONayG4PKV2n~e>F{9Dg27RYkzOCoZ8XP08qRg_gALoPd!R*Q`VIH(|RevtaaGPB!Y z&Wpdx%}-$4xn!DE>!HA?&A1qc(qJR(TR@{aL~Y-+=Ty4Uh~TRU3Epbq4ShW>)(gar zGYylpPQR1?fK`qz)ucy{8!ze1QU&Obb z%l3R7K(p!B*ZdDiCoG#ZZDy;?SA3C*{!nqkE*6xl1eNgo_pW}qyKk?WO2ka$XZQwg zuyRc~>euA(NUrO@w@zxfx}@CMPEgJMO|#XSm~@-ArQ7r~)WH~4uetDJ$1|`D>DT4r z9hQ2JS`8*glQc3Ev_Yj%(B8L?B5^mmOvQk+%Vd>K4*MZB`Ou%=zTpf?t4h=*PX!1B zc*BFQ`^&Wo>JAP)O-eg6u}jpXwliyO>)9zT+1hJpT?V2&0N24l@7K3-^}qIJ&i-{@ z@{{&hJMYX+lJN)vyivTsvh;S}tJgim?|+3f`L(S3tc7yQD>kdELmZlZ=AEsmeL|nL z13Nd~rCBamBKs2BVX$s5mi#vumi$!U33XT)i?%ggUtr(+^$IqWuXtvrX;o|j9d99f z-z}Zo-sb?^Kxf@L?TQBo;5I1}2@jsVZ}t1=M?D$WXd853O2Wl*iKoGj7jz^)|$r8h}| zq56|0G9hT*xlmk?&lZ_f!Bc)K*dyNk z7{@9;Fx;|7T>L|Mxin$|NO@2RP#R?dGer?UFC6Yz7?zs*OoMW40%ml9WG3uTC}A42 zVn|o-tdr>10zSx|X!{G}d_UsvgG|6Xa9;tHi2}M`W!vd!fMx}-BLho_%!MzaJ0~_L zj4vUfB)@nRfUC|H->)$rGpgGIzjJ))Rt<|83_0}YxNm*Qe4M~5_`bt=@E#(TsKN*R z@G%}UMLdHaW2!!kn;xGpw#GgoJ|3T$qQr<+g7%Nni@Ynz!Yc;JI8=)t;YL6pzB;he znsl`wDI^lzmMnyzx?2v+7gP;&K&0l-=%`Bi@aok@?N$RNz&Fr}x)7K$(}&;vu8GQeLF#03UBt;%cj8{1I!GFveDFUN$r z^2w=L(zQ6S;B^^ez&(&&tw(P8-j2sCv5nx;c*c7W2R#@LYnkg1dMHC;YGmiBg6s0g z4g|b(7q%o0NjcTR5;X85Ll{x>h_lN<(vSJ{>C>SBOn;60zjIR}L%5A~7i6))BrAx` z0I&G;?_0m}3WInKvW{>K8JzZhbq=~~hl**@+PxwLjsU-R1h0eXDvZbZw4Lc`K+xyC z;x%~YzWMnstg+A=2zg$(N09OSGYDItNi-VFkpiK$=f;v{OZa$x-~cH5oUG3q2=~P| zhUGxT1Tf`i`t?*N<%559-=J5Tg`N!YAzlV~gMMG8dvSo9Hs6#hPP13qohv5bOV0e7XBXq5l&1C+IL;rsMT$B2bS>M)h1^{DpqkY3wM;R5478OK)6T>o7DB-lrMV!EgnC^j2wO#^6CIgme)ZVh1x z8(kPIrkv8TZqJ1XjF~R>HO-;)N=V^%)#k%b5J)!9F-g$tffp%6bjdH3m?jHABzx>U zGSJ)m2}dHmAgntTl;P3DX(6fHot@*Y_dia_e;Cw)0-HkS8thuvl6@RF8uAx)8Lkz9 z$e+aWuiI1vYT8Dbg|H~iMkzZ7hsF^Ih$?SzJ0qkn$)H*SZ2}FICdaI)-764LguqiS zEhnFS1~g{T7gG@L=Ks0e>gBbbH2D67i{PMC4CqaOFXaLcFIo9+hO7SyGgrn+LGa1KTqMgjZNo;T$ZlX)r+vC% z7meL)g3k&5TWEK^{CL4JBrv?PS%=oB{N|qpgKjdgSAXE%26w!i?f@W5F}_^Y&I_ z4TO_rBNQCn}#o7)N}7o-Lvi zg){vJS0o|W7zpibznYtqqyFg7e7HoaNlow8&d6X6-70Qt;I9QQ3nZ4x)-V@AfNjz+ zkgg$LF?f#@8NUW~>|NQ=C~TeJ70x%KMN7}_FcGB3zl=a?2Ldb3HffL5!Ur3j#Shrp zG8>N+`V<@nN`$06|IExxj8S4>!PfdB9gDz7)};aleV7%OJjq3oimxNzM831iA$ubm zohOPmC4id+(SINqOLvMBaQWN!{>AJ1PB@fS?SokxO2+U9wGeOHe5^p0gk^tF(X+)~>we?4ir%FSw9Rfn(ZK$St? zC*tY1=UAHM4-Rk#`RKxwPNnw{i%)5?Vbf?|JQ)6=6$1Ojm`)E70j>{apGe@DiE4eL zpxIKPE%5Y0rykjUxn%AaU|NpXel)##>vS3fD+tabVPr1vzF-n8cReCf3S^&q*p`LZ zplvTCKfis;SJ~>TiI#u6&ZX}rG*^QnRfWN`d2{<=(M1eBPT~Ov*<%6ep;{6z<(fo$ z!@0BNgZf$_UZ>N5Imo5bXV>Z1zd^mMMc5v&YFk|tDr%@26behAWJpeCZ@tukpHkmt zsuCYZ1k(fYO&~ zJyqxmz#o@d9VwA5S67aj>JhFnuE^YJ`z_vw75ujfOXb*&bW6z85%~($idvaLDgq4U z;mT6ong2bWIg>GZ2}-xX_b{HRO!Rw1w>D{lec3_9%|mo#ybtR)ZN&c}Ef#TS>t(Y!pON z_?4UxFwcsqN~q)c%&(X4EKxKh)dkutN!9MG`>l6)SQFS}`Ot1g?~aqRe>?dtRCh4v z;Pw8ty-U9#6`%qpkKw(&zo9(j=!%2ahK#4uWx)#YM7ex1=6OVRGMESfCeuK8Co6*B zUjV&gSxk5)nx%#4wXR&b((r;{A0~t4C!`qb&y0@g?yObnu02{ntVAR-?>}|wn~a(^ zQx&I;$hohsvp)#x<-9k}hRFpniwWLQmgF$JeB=_?vT$m+OLn+E@I`)_ubgDPVE%mO zxyFIjf#-)}lgNzpa|W#MU=&z3MIY(5hlgm^sjvp8(;Zb7nDHgRwD+(KC)!0~k(M703v2H$E$H4ZK=v*r8lmGyjCdR#$b&w@byNTzob^kR1k zL{sr?plg5;jrT{TtMeIhYiOrR*qxqSeipTlV*edTx(!QqLVWk`_NF%rZmoND;>mMhNU4TXK|k-zhTi~R zcz3f4zvknkdJu+*?fY#N)VKgW+dRakIab{JV(rjCo z?CfGtrT6#t%8l60eEz|eL5orEggOfilVbn1>(_&(9`P1@|8VBQYluQoBjE~`|J&@= z==ga1^D9?nOaOiq_Oh!I^u>O6h34QOa*6LHbV+d^F9|(<^5je9?-8$YQG>*&fezX@)3^d_^)5RW=mC{IioghV+3siv=hf*;z^fs%|19E zZRf09&0fDh2djl^=6cmHIvYyn?hlp7eDGj@_p6k^m0CLVw~>&vXm?9-cqzCn%95-QPgd1 zZN0PB83Wk@<4>0brXGU?D#KGC=k@eqBk32jSpRH*|g+KugD!uSZFAfrJUZs6}z+VYOID;-Sb%`H{NGNe?FY4R0>RWisW?<39Cw?^bJrO%L(|x7AjdiedCp=8aXG6n zR(8Y3NwgLRehO5hr+s#rR%}8Q1t&2r?G&DU={NS^8T5mqi}ANHgad`%tzp*(&?Sgm zh!_*y9~#o$j3+L0`#mXsV91MtH1`04!PbU%;T5)jJ6^zim~1qIr8k_2Sp?OG0s7z44y$zY_)2fs1=bGwe< zbk9}^I|dsb?+Yl5$h-@J83D-~X`i#J`Cmv1KWs}P=NQcdy=q)ni%if0$A`I0@2Q^& zVy+roxV~7K*QOO1^E~819ijt%PJdsGchmUJvlmpLl%N(6);OPydC1mD#I9eN?<}EM zxVAYWVH*GZv9fu6?d1)FXoLX0eB6|v6jCcwheut8drZx7vB~+qrt7mOUSEq!A&MN7 zEjhWlqy$G2lnkm3(ZW>gR>9P>GZ^zXGG-ooy30Z*SV5%^{za=L&NqYKfB6FMw%a$e zpFTB)53r00%46aAPuIX#7`XnfBe!qfB*jG7%b(|%lDlCi#-3f7;gd(av|u_PAs=w;0w%h#_`)wCnjQAJiJh4m@k z#sL{P`vjTr_b)exHv=Sx4$T-?T3#OIr?Sk zQkQ1FtnkC+9R@3@T_;>%aR-AGn?>A``|4|FGqxw;V3w)FxoG_9!3!BR**EN}0-u7R znkE6&oXh7iHm=!Z0c&r*8U7gDLLXhYX`6^hMTD|rRnr^!I~idTnUGb&h3CMda^Yea zyrU~rt{UT!#l^I&bD3Iya9vT+Xzj$rMD%g48DGyHV9b7U4(kZ19-ba$&>tiKh@p%g znHPUUV}K#x5fhkI&%-w>+GGKBtV~^rWO~pEtX}dvK2?V%4~^KaLTk{r!P(bGKPmEY zh!cC9GO!ae8#M90!4g9BoSr0MOsIkGl;KH+<6bktBbKqg#xJ6)aU=(Zau;lDM9e8w zXnaurPXAUUziV70V!Iz;5KSNaOk%|8k&GQ z-{itT+u@sF*}+x`i9pAsPx1rrCtm{~b)zrqu$9TGB^Dn@#spuchW`Udt0bMjfhlGg zk*mCB`-A*a4>mmC$l5x5U(8g~3MZo|U^^coSjGCeB-vapoEP49b7MCAY z##Ix|01xuv{KT5ReE=fV!yNl>0b?9sH#VO?5Javj!<~(=fAEwUyS-w|_{+NA80?F` zNX|^7S-tu&OXvyQ$FU3|2yILo4fA_xo&tUhX9fiEF`(OVWaLlV-!FLb1!pt$tc&V0 zGBRLS7y!ysI2uPBEFXUs_`=*8_7_!#b-N5d9-~{stqaAJDd0V~F3`l_-IvYxDm3gD zfEbvQTcIt(&+)40UNo{9YK*^?qJ{PtMm|Ngf$7~Vv!p(u z+g?-$MLX3}KrcuS1#IujPm^k1`ITJThQ~n@9LK_N8GnwZ#tds+rgiu&mz8PBy7HJK z5Mcu6H7Mg3)J{1@rbfN@p%;U|$NA71zpd+t?O5Y<3x&>Y3Ul;9N3&j5cECxq_6kr8bUSzE*}ll-N5z00cQ3&4?@8sej=gm=P-~YdALe# zuvG@xYAmb+Qd^0qkBTxJfIut|MVYaY&Kip}=lA6>27P55b!Cav0+NAz$jmQb4jsfN4sfSRfaZ*riv6 zNwbH`abcZMYzU)Q|Lt$^bQQ*pOLo;XaH@g#(&^y^nt+2mEC+eeH|2iZ*SA-fMX{sd zUvGGOdpAIDJ^RKyh&BrzcjFv_?~$3C1)-FX#6c*wV{c12)Gya8ycLz>QlVk&|wsmT(h6}HZ@G!DuJoRd>fFwV|^~X85 z3j*vKYz@01dh$6#>_c*EWc--Q;f-v0G^<`Tx%8EPkI2xZ~( z)4&5MT-vvj;nlucLYpcH+n`7sTi*PNy1Ke6)~vZ7->;1RQUz|br|JM%;F~iuM6+6v z)y4Y;2JSU>VJlaxI6D|&sY=I>6}x1))~^kkLXH`S4joFFwU!)RYHiP-7oHe2MvYM5 z9fecx_k{~ZI2YYJIu~8h-x#X)q)Vt2p9Yssv#>sJQ;62dYWIZ#Pg>@@G$$vnJ{WwF~x$S>qoeHZymp z{4HR5bdHaO>@WO`-pXapj6ePz37$M3F!MijDF)-%{|2}9trbs{-Aq68OaIb!80`MP z34by;>KTlZcg^pnIqGLa=e6R$jjL<6&%~en^Xq@dPyO%r{{JyU{g2E`NVBo>P4=I# z@Lqr5a7vw-dPgUI&k&k1erPiI6MM#cxxrg<%7Z41=>$k`gs$Aaw9%&D{uo@o8LkUu zVcxxe4IUNxWPvCD{xGipv+VW%zm-($1J^;Q06q&y1CY4QTtENUGGLTRV;cgd`wL2H zAi)xuJDBr-`^^iyQ|vu8jp@>jE?`>7u|N*~(bU8`*+3QrXo6VZzkS<)%trOK2odDK zTqYcwpK6@)@|~4KQ0#63yaCBbA&NQo53=C)!y%5v1Ij4*ue`_sqG1pFMxMy=%M8Yc zKi8~@|3^f@m;Dj7`*IGB!0$cL(HKr|22~F5aExgyi~!@vmf`u8DUc)#V%srXr1jbx zwj4?EfEnSsmj~a4G_ZLek|89&O?K zfKyu^`Vdu!YYRifJpuY9K`9DHO7^Y-aOxsZ^%{SDzC<1K1en;ULt#+{bA)9QN|0G0 zygU)bE5}`xoXhhmvkm8*qh9p9^;d;|JrWx2hja1b!lk%nw1k*A&FE@$*-uj=z#R9Z zb}%u}@}%e;fQURyob2d$be62!M^z*xXVKh?#HpoYxGpIY3IVFO;B0N4;sP50w^F`^ z*>hd}kHeZ1{sddmDZG0B+{d)C{i3uscr!313NvDh>Gj7?E~X0 zuPsVXqBZ_PH&G)Jg&${n6`FgPQO!jz%@NceVm>v^Frhh{`6K13NbJ zubYh5Fz4b404woTZT83#N*1XT?`~^@H#JXy6sj!L=AQtyE$8HnTC*nw4q=l(-EH07 zc11k13Ye-6^($mw1vC<3-NGc6X zLq@CHwTFinldBs>OvHeSj!|@tOifP42-kyb-!TBE)#(Ee2G@2Bf_04X$DCr_X1RTD zgAvZMKlTI9+0M^N&{#d>6pb}Q>qt)RJZ;24SQ}6sC;^LWSA^wqK5&y@YQ#?`0M=~99gh6R zc*U%y?%+YJcpM;PeQ`&o!>I5(GAeao-8K#ns?fK0r;cE@qByu4oC_Qqei*OAWY?2Y zzVKqn^@N%$4C%tjk_98(ebobVdYk@aB(JYdYWxHc4AwGZ>ht!Ki|CvMO>PS_Oe+h` z*KYtt9+>iuv3vbBMz4n6tO_Rqy!Q@FO{##;L2872JaED=3Ms>NuUgsiJ;MQIDCge6 zW%YSZbq4xyIzvQMIgXCJ#Xb#_wGEe(f4jR^( zQ8sAh<>4kN85!h3G}x873`1C#$26;*fJ6Lx>`_G8-vgy7CqhvF?nJ`iSnEa#G$kGo zKuoPiTUgrm;U!@s&de-cPFHb^J z{yL*kG4s#-l!=X*ApD5-dT{LIJ8UuYk9S~hVo`fV7%VxZq{zX9iKXDtrXKcZgRuPk ze3ek2bLY;XU+=P+96e9YY{reCEbuU`aw{d?49#S0m4zx3DfSOAMQaQ9REQ237yF6a zBdqUVh{zzx{_y2Q_Ca#Oj>i`nu6O*TTqb)2T)dr3#w3Q)fHAy!JSM2SH@LHhz7pwr z@RA0hnBQbC;PcFi$E9XOBE;*L?VUBc>TA*;tR|U@jxg22`qjhJ(foTs571y85IOFF zbV?&-)bt#~PB85ThqRA8nUR=g@$|}Wi&_!p`H+tYTQ*lULZyJjiQW@+xyYeM{Anz9 zHCbwa3AT_t^W*R`v02r~GznG?LEq1FgEfUEH1wV6ik%({Q6A53dmbFF6sVU?VRvMd z&K$?qC5vvbszUPMg~C%e>-jO1_4w^gBEOHG8`t4{DDS;CdENX8Z2-A$baNKh@v-1nn&xi2ZorsLtQ$nO1Q9gOSNSMVih#+_$ye44p&!`>6yVuo-&3Od) zPM-{*;D@TVuf8%B)$ArFJk__nD4mAK?e@Z8RZ4!qkq%B<0_HKxCK=O*e{uN+!| zHAzi0nVOa6^j-0ATcqgn7#yh8mS4E{TzKsjiY}U22C`6DTmeh9svB!ro|R!)Z@5FT z2p{GmvU>^h0K%$Nm0V4h&1CF^Ge)&xl&8Zp_-YnltTsKdlWn*Q$rmmTxXgHaTyjZ* zLJoL@WRZ<)&xbVXoK@X0TlR+&bU^3V*gYr?y>W104+;rb_F2=R49a@t#hHxhI)FEn zC-5E%2|R|vpDjETm`HOVg{$c}tsI@45NOzXi2L+R#<4sa1e_SnMv^8k^Mb9dAG%nc zHVk;iVbKo)reeA9uR0H$`uQ!%nVxm4R;~W61T6VOeY9WQ7rnHcYs3 zp4gJPp1zBO5Pj}XfosVwjUt27(G$A zuPfwILn+L9;F`P&n^X)b|MhdsD~f{&kADOKk2Xl+!Kpc9gC;z z_H_s2>yMpQ4UQDr=*)KdW^K2cKNlSiRe?c!tm(#%*y`8Q_0$bKt{4s(v>*l9={ zY~%~va=ZQs^+G(R?Bo-=1=SGDHv8u~bu$=81(}Bqs56IzVNAutL@zYI<<^pvr%!iB zKkmk@WQ=%1vKTci8n65#XGU+&0mk=#tfQ&U&9t;gu^h+c$W;AXD(%acrk24)3m5K) zaO!=re{5pH3}+gS5Q@cY3Uu>DLJ>Z79sDR0O1t$W%m}-V zCoU9gboF%DP9r7nDO}AkCM&0$lIBI;jQ60R6}5nimQUt(aFyYSQ)EO4<&CO>;;WA8 zlo&v-)-<>2wwPc(M9mHZp@ph|*ALA) z@Ln>IBoJ0wG?QTf+;KhGbAl~I5$os(EkA2LKDq&4u7#ea`XAPr|IfkZTetErS)+W# zeHP?2I)p=J7# z(qVFh82hn`4h0yoQEV_=sCJS8?#gXC@mNi9XWlI)ucY_{?@-@uqFsv@E>s5x`y!HL zh^C33R1NnNwG0?-<80JK>3N36Rt3*O*F|wJJ7d2VFES3i$yR0$jA|>uEGw$|)!B56 zl>GH`!-j_>xTdgR;OKnWiqAi61uc|J`tjmv`kZc1a2h37gae0lqMpa`W(fQD8RmCF z1gwkhn%t`hLtI5Gin_@9W30uUP(2Bpg@C5(!#aFU*fiS)yDQqGU?1%dGr3)Y|clVNv@ zjvY$sMLWULeOpwdNZl)XUAX!yU$Wl0w%;Eo{?O0945HMrKqq|wtQCnrf5OM_7HC4| zt0V6mxm-lvd zDJ7EQm~#1>6Og>}b_NUgNI1~n#Z$*H>@Nkamy8Pv)`iT>F-L7&nLQ#7U%dp1ro@TB z;U*Ss6o`o;^`5^b&e{vxLPPt^*65aDoswazdiT%LGvpBmj2yNSYIc6-%exSV!UWk6 zGx=QBimh`Q$4I`9UhYFDC6wR<_yABDe15)i-nX7B3jkTW#pjl0U$SxOcC=2;u7x3gO{AZ5ITFQm6srHFOMk!Q`BpjvS;{lRj-!@Yus;6ezzA2*fOZX z>DB;4$$p?{n2I|+$K+USKuRnIiV%Y`L<10%M!d0PM_*}Q+w@dK-xfIi+I;y3ypP%e zqZ4J!(yCGG4NXtX0RDRd+a~=Aao?kvXY&k@W<)DnKrF8pvu z@JU#c8it~F3t z<>YRO!Hr}XJTudB?SsB%e&eBbQOxYqp^y1Xz(m;#jKD2mWUSa?A6Vp0=IfJFamO8# zQKg&K&Ym1={UDX>?BJk9^)Y;o$>~rm*!?mVN4d^x&qfumAS4(@;qicMKJXtK{NkpM z_qJ#yZUWXUZ6OKf{#0$wo;F1t<&wdq1-)BSGD`y6m#+7;x8ajDY?ov1JcwcSw&Es= zT%tn*@MH|0c^f`68X+=<#eE%3@l?k)3vELiz#?Vc+HyU=4woMbj%%!AoIG*&ZWgk^ zOwR}YfiAy%b-+g1LjNlT&B{99HGb|~0xAeu^gzGFu{A6$-apm)-r#~+jD?W^ZPCNt zaGvawy?)JH^VsLJynKAIm;0JfPxuit8%<+irJap}yho()W3y_(*kh&g5N(u0*R+D0 zJE=8HD9N(Ep=wJ~MP_Ux3ZvY`4vx}8$RLjec7b-r#JjA zrM}HCMyo(zA5=+O)<3uy`-8q0dZ{RTXUx-ysiwMhh-Los)2VUzpc){S7%1y|+;MoV za08LWSUwv5P`Q&Abk*#@-oNgqM+tr!&umO6US3soG#SUvn>TOZCVzlySG>Qcr*c%7 zi_TO7i2Hc;rnM(1fSjV9sXfIW;N{_YUth0_CQ$B@kgEYTPFz-Ln(+7LDZt$a?GI++ z<2`8~wuAI5-`CfNmevQV8xIp#r7p9JZ09ukhk!tA-mu{S#&J*x$VOG&?Hp1n3;C%Q zU34_s#NTGLY*t(yV_HzM~$JFr&TQ(4=8DT)1`8i*g&=qr?0ttO?#iC)|fY zb^=DQEOohaL^Q7QATc31ZpZDv?i!p@Ma4Moh?xH1xhECnwQmWhqD)B9#SjW*FEi$+b8;$$|r; z>>r3C`B7+BSY7?DN#S82>hRx`qk;wO9m zUH^|j6@TK|DZ}`$sOE(?82>d}T)lY4fB6n>Uo-Q+$ELeyum5-K_Way$`~UsD>$g8# z|NTAV)rS9$#CDVZ-}McY?$QTU*4wjcBD#LgdPPUinWNdg6LZ--j#4u(2aT@1*7&kqFS(g6h!@^n2hG7*CvZs|(nBF&5*O zZA@T0_i8gNf=z31qHozZ>BbXtsYee8c~GSjltXn(moCNh;=t7OL=TyS_yz<#Mv(@` zurkebYmfnf^vrAX8|d$cAO5VJ6)ix8fEt=Gj|^Nq4-6w05x;Lb2Wa01Q6sot}le6uRfaPyP*-NP8KfwX^;Sq4O8 zu&>dmHFwd{O<1H|YV9Rdr2uy+gaGhK=zA#!!co7s1TBdm`UW#9s~`E z!#T00{)T~yiVBLcP+)Ug^Je&V;vGFhx|Dk}=nOO)Lnjkx;RMJPdMbYM4M9+o4W>-D z&%S(>M0Q;0K{WwLUBsVtHROtydj{5b@sjWpU2ZyTsL^E$z8M3;vRP2DSbZ_0*Lpn}vXUAIVvEkkb7l@&b{6|f1bbqvI>+v3W8e>*%`OI-o(IgFsdId?cO)qa*clBV zK_X$g)zyLbDlj>U0SsYjWU>w+kiLEDpkaFiA231;Y)U^TH)A#%fH@w;SB#Ec z#*%ipjD76(vrsn!gCuBq2c zK}!|`j|H5N*~K9{^Jm#YY(X9jh)BiMI@{dEoZ))@BZTzx=g&uP>Ex!*eWdJCqoN;= zsOex3!Vg(ZIhewMz?9If3}>;yGI^4&_@V;eE}n@ESfA^lg<~Y+nJ$CDBI^VczV=O? zJ7LGbEIV#>*78fNUcEjbG~$#rH8&R(LvgVmXWpG#G3yz^0UB}67>;LFgv(Na3{HcK zVzQg=4jL~5`T)FL;kRwW`1C|UTLw4$-KMA5%J@-fY7c}fnyeDp(^IJOBhVv54RpgW zOG$@7SA6Ar@DK)C=AiYBgQI)|GRaABMkFX4&k!XKS8}iU1G{a=fd#ivoj@qK1L--&bAyz{CVix=10jJVuQl(-TEV z)pv?ZV%q_c{t4Mnk*U_ATUgaBBS$1mAI7Vp{7zu!2FdX_ku>8+596M8=^q;M^_iaL zkYZ1!5;4YoMJ^3~19o)@=+;W(C}4rM20h5BjQqn`-9I{OtXUCgWr(Q|oPHU ztH!<0bL*n{jP=25rJPSt+7@ui5YydLRvM{>ikL8J;>_J%|0i9v`p()9aqDU4Ug2hZ zt?9=@ZbJt}sv=;yJ5TfgFTwoU511asnc!2YA;6y0j}($a$*6c0hR^gd9RShXyJp9+ z)?(hS1!a#8FMv1m*=H7LCl=#}rU(a6f>XB^?J{YcR)jI)D{}={I%HFb7vMCm_PP0; zhZv{VV-=9C2*!<}F4J~%=Gv;_Z){6kYrHqW0MoA!0YB0I<@$v#F;I*}q zDc@GMjuio7LgemMn5`n$fu0uBxsIou0)(6AF_|4bqQ+iR9WjmAR}@m4Y;MKH2-U!v zw;!n=`HqJ2p|q59ZN1%Jw5Fk-BDDl7f>+)dCyR*M!x@aWpglWHOpup6D6;zO3Y$RdL!Om1yz(P4p_pF z;@bHdPuha#cqDVQsC|8uP<<06t z2M_*@Xypf3#2p}@h^-|u3VAMMSzo0*rma%N3CEcex1K&-o_@LE4X?@Dm*Eq44Wg8E zaLuFvjtARB3^)`ExUA`3t(5Q9LBeOAQC0lIIl2V^4>28hm^28A&$+?xSp zRYN~*j8Bx@46A5Gl`241)-4}ZpdKoxXXymK2@QlQ^QM9^xEWW@7FSj%dzQ3_MgWv~ z4W&>OwqgS28d6<}GZ@n^Fa!&~c5U{Y*=fn+e1K?wmt(<^7z$GYf9pFP_wRQFk{{pb ze4Mi8_v+OXaaDWPwoKTN(P?|Z21^Pt^uiI`gW0dD2^ggahC@VYv0>B zsx=tbz6WE4Jbzlllq(9nIf7TrV#w7Yc#$lob@SIDzCAn8i2{>YA_!*3;lAw+UlV&5 z=$XXQ#oaG(E9Mi!H4P!TM}hSF`(z2f!mq)gXz&IFiXnNU86YbHC{^_CFco|qP4S44 zg#mvIrk{b93mC5XuW+;@1xu)AuOFyCbYbLL>9b87-iOlJqFLhENW+O!o3ZHbU&)^ zaa0&RgM;MsVr;lilz0cH0mF``@G<0PGUF=JEZ082!?t-c+i%7fL_ty{Cl4$RD|$W$ zii^D;oW;^cZB~w|5`MaTR#rXBTZMFgpRn5FkJa-5qX;Goapehoia`N)TZ@9VxSdBI zQjnQA?nafe)HaG6PaP6w zeAULKE=z*yrYxwgC@%>7=i5|iAnrZGwjIbUJS!Jsk^=(OH*M1`I|+?^@E{AxdkUeU zKcY_ZruN?aK$pXuh65?h z9W4>%rUiCKlNou{*piK7qv-KaR=`Is58omlV-bmDkF)jl^%Qy)BH_?- zD{Tp*WGT$B)O$>)P`&UlG0#=mzrSO7E9T{f<7^z%yiBZsvQP;oTSz-40?aIv&C9@< z!jgj`T6^LCcnhJOnA`s7DdB#JO^HpV2e(=XJk^7D%`owkINuaOK@H0W)*oh+LH|S5 zEB*p#TJCz6AG#Bj08{cUB7-a*lb@eFefgE&8cs#G{P6EEjFDt8JjKyPB2n9Hd=j6Z z6#=I>Qd6;5nqTZhUhlr#OE#)7bNi+~%L|?<}495>Rb){FU zCqMGXkCTW(M;c=BYU`3LN-yKwwY5#K8rVjV#p}?(y(T8WQb53baBG=VH3prqWjFkH zd{f|^UyV5fBHiMkfs;&@yzJm$2BHHeEUMmmhCM))LK6h4ps`ax1hW~t5P->fmWi~j zc(#v}cP3~E41kZ4 zNhoG%bcQ+p_T#nk@_@!Pknm>bU}Qe`42B*W>Fu}iO$&O@Fc^1e-h^vYCEZjg>Uf4p zIUi`M5r7-gFH2%fkAA5KH|ZvH)pB3}`D4Tf%8g=@)XrFdW9Y$6+{SsQthOpQ+@1|m zEYUrmC6ylW7ql3*>tFi8WLwymSPgmn3vw4b@_Ztvod!!~pFwMiT6b)rFZV9<0DODj z$Q7=4-tq}{pK2=ap1mVUIZP77FN!CpSq#gt#%+;)CD_F)mWx!UnU`b!RR#R3JRTtd z%&e!AR#tZ~G>U~=3I1h6_Y^GNDiHWVo)AoJ4vg^*f`}#Es&PZ5a~&iTou7pTy0;e= zOY#KovG#LY!kq{TW~9zrD3GxUG_c(j-l08-2M0c~CIb%}y!D4OW;JBSDi_%2mP>;u zP`mK3bE$M+tEXY?TE=K}^1$PWN$!uAYwMrq{{}cW{ItTgbW9XhuQ>CU>Z^rbF3A)Y z0+k1^yks=~>4@WbcjkB*LRuXNCcC{o7#Brhu2l}Xtlx{Il#qf=*4qZsvKfpTw?>oqzvsCy zR?p8b_gdk|{=d3A_qd$zzmH#=VK(M=7;Bp{3XxODsRP5fR0}CYF%p*~r*u-;oaV4) zmkyRgSmz>24i%TfNC%`+t5kDL2TCgIK=<=)``!QCf8CG!pZosxc^72f|d#$moxEoi-edyR_S-;wv zD+f9{YQOhkZRc@XZuTuT+f1IXfqKb$TpBMEaXy2KU=9h`y7gKQ zib9|^QDs_s^ zd`j@J?MgM&#oXjG(<7QYD?E%2nfXnI{g_>v>dC;RU&GG=9=iee@{2$-^tO}RJ;q_bYJu~O>3_}^*2s7nGq*;AkrCXF!i}K99^^w=X1fIin$1ytzwwxM_n%J%3v@X=oXp5 z9{a;C;Y5fWQ416adedX@{Ot6lg-qd zVdHZD{FTbHlmL-v&<2nDYlUFpAX#eljXMC=&wlgYA!MA^ni`;?7)EnfyrPYb!L`*Z z)3>p3MTl{ex01M{(67HXT3F&|d~iNS@GUE{hHK)o#dIW`0uzHJm7fYnOu2$44~ZY0 zjV~-=(LfWRF$tL5NNBOlgF<;jDJ+8SJO;(FAQrs2&#l~(nJHy{Z6yzz&~{aTk1RNn zB++?{`<=tkQ_@++kr6VDo@Va#-3~%q;pB*`(S$Cw@gC*WdeptNB0M|WT>b|Q53u?~ zu#w3GP*KhV$G!Ls%oY*h(NJHzr7v5-y2%h;bz`(*Qb?(1WUvfK=ZfbJA7t(VTV7*$hhYo z12zvc%8HW8HDKG_Wd|Zyhnoj4{oRn$6!wM8st4b#Hg-^>2p2vh@q-&|e2*%F!{vNaL=cAuZ5t{)vn%R`y zajOb)6AyvPCat{N51GBi`1J=g%P+3F7Y`QGYnis8UWq~%T3)z>=2ZKXu?=;ZZbO3( zk9)a6x)U|v{&%PQz_BJi>i^B=!9Vnm7DS4sH`kU`%`@4gsG8$DA-%>ks;J z{@U!Ic$A`=>hX+xE6Cl2;RErvZEv7c>f9 zl~P~hYM?*s=oYRKk`m3b=Kk;nD&^9PEzeklPHAQ>tB*51=(y{prU|#2`5ahR?M1UhBow!nd=Xq$s(Y8*REX>$FW^U zO@^nZ1nNkJ6q$qg{AR^oT{5rWp~&jxSOLMyG}yxULs}^_(Wr5LboU$A?((Qgp}Wrv zs(68cD>6!!Z+R8K5+s7-`HM_bl1u@y3>E(544YH1S1Z@%M2H0c{$k@I@@& z%Jh#ZbfIG=>hv6KHEnlKF^N~xp<;O3Mryo3c_~1nMld46ISzD6~Q#<|$V2<=oe8eLappR&E5 z2abL;5T1d2eNf&2qcyGe1HV0#4HJJ1wJA>Dt1-7aurZ=(R0s1zMK-~9fBeE>CR-K} zO(1hEbK*4M#kdaVA-S0XFMhN3k?G*r0$W3k>6|%hJ^0LUB`p?Ivi3oLa`N1Nt<+IC z-guI!)R<)kCZ@hvwdtNjR_Ve^2Ds~RWKEI>gjVNSf}Vck5%fWaO*!oQGafIOCLSE* zi;;%_Z>Gy;KRnQ$@<}(|?$4^KgZ)}>?tMIRXy3k14m_=>&}Z|DX9V;}Le5UCnuxuN zMPkiam8fvUK4leC+_OYHGDMz+}fi9EDjtU zW?w3LkLXft;bBl&Dsj=y8vJa!k2r>~M!Db7YuZ*Lhli%masj$%E* zmgpd?Iq86Bc8S1Vib;cmP=~-IA$?MO-z1};O<@z|onO}GKa>1B z!TP-!w(%|rc_;6DJbdnKlJF!YAhxB0LW_v4@Z88dgHR+)Re5D2%_Lm@z9GpYHr11>&kiPvK^)hv;rYpw=utRBd~r;N0; z}Qurx#uHvYeAscE86!-;?W~7(c05Y!6x$l#;UZo1edAdhvnI=iJM0+bh+H8@lZ& z-yb~Zl6OJ#NK3Wq=|etYJtYS~E)V?#pEtj(h_OTt(GMz>APH;gw>*q}B=o%949r?WA;l9Rk}^?UAGI-i`Ke z!`V&4STDr!%r1J^ga;U_t3yf3>+F=8OOX&V&nj&)zf1qVoiaKsJX~Bo7S5>@_9L!~ zXP}FA>oKt4d*@uuB<39<56Kff;KPNAH9bsiS@`Py^{7dp6+dxmF^tf=xNfMY#hzWe zZq4;;_rBc_u9}F`^l3{3nnY`6cu!lQSb&?9tY$Nam5K}H_X8O2CFeSP-z6LGDW)fB z^@Q8tz8t7*Mh7CZD%s7;i@QAXXms@GWT3C=ah5utRjVRa`lxEkD~{@-Go7-*?GwV6 z$&@?yGChVwlIXb5paG7ME3 zhIL|azJbvS64RX(%O)dxgXiZoGM1TpBp~y8ldRjvHv`NAfBLd%mt@+o01lh^IjC`$ zW;7Sd-1Fg==G(xkjkN4zWmV_n%nB92g;p%hHZo`$JA@PBC1}kaG$;BCi1jm`V z4x+c>F_yi2ZG>V*ow~7xi@ClcvIkPDu23%eoaWp;(2W<9IOutQCQR|(_W1VUg-Aan zd-(dRwl8w$ys-YY8zsstZf0)v?z|(D#Rdxi(txU9MGUM^LIwu&To|I_0jnDm}rtNuJ zm>f100f-yLIrrhUhY?i-KhS8nP~y+GJUn3B>eO9XZQ7kXSBG)z%S-|8q!o=F6_eB!i8mK}KOe(EmwBdR7+VwK=C^MTtDS6h z%UXl9$DRvo9OkfDz0B??7?*fKpEJ}+A`@XH?_1&)aU6?NnA5yK5(!1Z#OJai`NZRO zf1!@ar_X$sJ{z3eF=v^ZqVCy%)tm*)z1hc)OLS?9GFE{F& zD7gan?OXDuN9#f3kc0tN>ArK3%#IIHWHg292_jd62^e?fn1qePJ7eLu^|0oZdQ1fd@=#_5(`Kz9{L+8tgpDghE6yquHy%_~4bgA#X&37KV!SfC?912ZAHQiKxVQiH3qX~* z^Mi{9RA|YvrNOYH#aGvB!nKjJM4m!v@~fe;_%p}lX64u$8Teu+YEICrn?J3-nPBn! z)S=W)#iYc<(V~;{lT(-wHg(aWLzsoa(HTsZKqS1<2Bp!GF7TT79W>;n{66xJICj z20UGZbsZBC$H#Fn9mxOKV#bVjS0+e|rTwWW291Qzhao`Ye$PJ zx9@0bsgVZgHw^vIaB!2`B6dk$nDUW9QhUc$eU5I~l8*pC%Ji*Al<1LB@H={rkK#Qd z+jW>-;?uE$QE{-3yj65+hlp$s9YS;CmZ+0~cTxC30+X%wd||F*=DSEOF14QJl1hMW zpJ+UF$hdXKIm2*{tx{G0u}+-XBDaifX$qtA6M1+Mfp2`niQW!TOKp5`ZQ4Z7nFeH& z6R$aG%YqJ_Vdjc91<2K09b@bB)f6}CEuvF5MbYl+mwuLb?i|&iv)ti`qJnf?a18K= zrSI`7@AJxMp?XRJ-NxV%rN3Ss|8@9 zR*Ys!B`#ZQ+5k`)Hy|k6%%Jw>YOshw9XswcxL26s9?E0sF%suZQ~A0?(~T8%L6Sby zXZ(5wNWR@cGZ@QJui_y>Cb)&@k}>%G0^gI8$M<8mYl-(i0XTEm{Bjy+;w-M%c_g;w zMOwKcH=9GtlncNm5)vuEd3|Hu57XdbBK3=aXlSU#a3OxZ(3ij+jL3lbw}^Y+Oj zQk+OylDWD=XAd*$cvqc<#^Mt4rArd>I&jHuU_yAwh5cu$TltLi^iFI{L}+iVH9Y>K zh|@#S{f>V6yi8LzI(CY>xxss$@Ce)+b1_#4gA3B1_oBqRCt-yoyi!T1ng12kd>>#) zpfz(BMY`dqTXbEoo?Ur&sVKfsf-R^d!gU*hV9Pfz(>@`4W??gzvcZ}kL%MOLTGN;d z+K;w8_oXb8TOnn{8Gqzfv*uECvjEXP-Z@1wId8~i-0l$k&+-S(pHP` zj2mbna=|-wI*C?aBSnyR4?Um#^J4cAE!zXT(d6X;ssQC_<{p1TH3rYzR z^KJP4QOplGT*L&Zld9qS()4t&Syc3Puj{@LNkOElT|=5c?AX6=uKoJ(J?Den_);61 zHfSphnMHm`LMFhwK=G zV#^rN*cgGRX>ltHU-e1c04#>#HH4iJc-z8nDOKFR}^?uT9YHn3fdppW>NEj z$;M~1B#jZi{!UI^Px?TwM?Z}f$f$wQS9D2M?ndc=+)Qi@TsnLwC@PW+Q_<9Lg^~#U zRqlnbu}(Miv4DW4F($@dPszK8iTSMvoLLk2dD(@zn0O@7h`E7n+xwTKXe8PTSkF=# ze*u#dy(F8BBj#P^@yXStcQodVa2SIoQGiz=h{RD#wpiqc&PZWauG{(og)_b7c=5j? z^*esYEHp}lUw`QlvH8wkB1t+FIivE#h+35Py8RQRBfduaY>oEt_ z5D}=6_b`BieY&{`tLgdjnYLwcHn9H92y5bQjtiv2$?X``b-~566$`M@t8%Z$#eLdY z5ma50GMy=F*#Px!53aVS{Up^x$&4@fjtkcp_@NJBpqHG@h?0A?kX2;~S~kV3wN_Nx zkq{qZMc_G4d8sUW2OlSuG_&@p$MxM8TF-6n6sz4)v7|HCYd&jaG`U1Fat`2aE>$fm zn~&)Q6ID9<9Jx;;3POWQ^YjU1QCYNbnbm_Yr(^V`%1T!4irb5g8-i-_4%dXi^G8Id z?wsCO7SLYt*J~_FGu+MYPhVlgjIRS3)8EaaV^@;D9+`3cYjkJOz(wQn?MisKT<2WR#n%Z1^KDS3C(JpCr7tb z#r>zN^IeBy=*FxbIM!9WB-PU#UpfPUg9EVqQ8oU0a&cWjF{?-ni@FHb0aIs-6^4to zpMJ%fXxdZesk|Pw`6pdfMb2_U>r$wLp8!xYhL;+#ii3oGYSG}_c%F)(lDrm)<=_Y^ zh%t41Qe>BGs+Pbsdb|TcHIR}y?47Kjfb=Mb8VX~}!$wo$T@N06<9;=6O}oox3j=>x z(|lo*KRSRvb^J$m8!_O<Sf;(t^VcKqsqLw7xkgOHXR~KHu(E5TCtFxh zASj`b(iy?(?ip;6O0zbt73+%fTWZ=uA)RErX9YH|h_NS4pwUX)_h()82T%o+?}Kv$^40DcGc zJ(|QclF=o#{bLinT*C9>t!QW@^UCtT2vh3^Xb0YX8CT_WnFP5U#YYsy^jfV|+4#mp z)eddgt5_cjyZSGBkd5WHOGX!;IXBj?|3uIJhkynI0b*SJ4(SRgEW=l}t$Wj=iPSbp zu41YU#)JTo(QV#5#~|fXK4$ugN>GlRLpx;jr`+HpN1hg?HgUS(X#hv=R-Dtn#Kt;@ zyz#t`yA+2{`RGi?jg8Y2_^Yb6cJ1&?{s9hzdykSxL9X1o`g*B+LmHU4B>+3QOtUyF z?(z4F z(PB~?6}$MWvIQ5GUJzP-y%|G&RbxBnV;{+WB%n<*7{|Q;vo}& zse+x(UqO0lXAo*PkxKp6+G2lc4GPy=YLN|h;6>3xvMfZGJE| zfBokFk?(rF@$*j<9(5Vz8$65b6}2DKCU%+cANs}RaesMsNZ1kj)t_ZsL+AB|JUbv^IL=O34i$e>wlhu@m42$dr_)s T$D7ge6O_}woqF=?B|rQp^OnM9 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 9d1427e..edf4ffb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -50,6 +50,7 @@ print([r["energy"] for r in results]) | Use TorchSim integrators and optimizers | [TorchSim](torchsim.md) | | Build LAMMPS and run GRACE or PACE in it | [LAMMPS](lammps.md) | | Manage memory, threads and fallbacks | [Performance and diagnostics](advanced.md) | +| See speed and the largest systems per GPU | [Benchmarks](benchmarks.md) | | Look up parameters, defaults, CLI and results | [API reference](api.md) | | Build and test | [Development](development.md) | diff --git a/docs/installation.md b/docs/installation.md index 54f3da0..94a48fd 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -79,8 +79,13 @@ micromamba install -c conda-forge llvm-openmp ``` The macOS wheel ships its OpenMP runtime and shares it with conda-forge packages in the same process (NumPy, PyTorch). -PyTorch from PyPI ships its own, and the two abort with `OMP: Error #15`: for TorchSim on macOS, use conda-forge -PyTorch, which shares the environment's OpenMP runtime. +PyTorch from PyPI ships its own, and the two abort with `OMP: Error #15`. So on macOS the `torchsim` extra installs +nothing; install PyTorch from conda-forge, which shares the environment's OpenMP runtime, and then TorchSim: + +```bash +micromamba install -c conda-forge pytorch +pip install grace-runtime torch-sim-atomistic +``` ### GPU source builds @@ -93,7 +98,7 @@ For editable installs and library tests, see [development](development.md). | Feature | Install | | --- | --- | | Phonons | `pip install "grace-runtime[phonons]"` | -| TorchSim adapter (Python >= 3.12; on a CUDA 12 driver torch from the CUDA 12 index, see [TorchSim](torchsim.md)) | `pip install "grace-runtime[torchsim]"` | +| TorchSim adapter (Python >= 3.12; on a CUDA 12 driver torch from the CUDA 12 index, see [TorchSim](torchsim.md); on macOS see [macOS](#macos)) | `pip install "grace-runtime[torchsim]"` | | Tests | `pip install "grace-runtime[test]"` | | cuBLAS for the NVIDIA package (GRACE-3L up to ~15 % faster, UQ slightly faster) | `pip install "grace-runtime-cuda12[cublas]"` | diff --git a/docs/lammps.md b/docs/lammps.md index f32be6f..e56ae46 100644 --- a/docs/lammps.md +++ b/docs/lammps.md @@ -30,7 +30,7 @@ cd lammps ## 2. Build The pair styles are part of the `ML-PACE` package. When CMake configures the build, it downloads grace-runtime -0.1.0 from GitHub, so the configure step needs network access. It also downloads the ML-PACE library. Pick one of the +0.1.1 from GitHub, so the configure step needs network access. It also downloads the ML-PACE library. Pick one of the three recipes; run each from the `lammps` folder. ### CPU @@ -45,6 +45,12 @@ cmake --build build-cpu -j 8 binary on the same kind of CPU. `BUILD_OMP=yes` enables the OpenMP threads that the styles use inside each MPI rank; the `OPENMP` package is not needed. +GRACE-3L uses a BLAS for its matrix products only if the BLAS that CMake finds is MKL, OpenBLAS, BLIS or Accelerate; +otherwise it uses a built-in kernel. Other BLAS libraries, such as ATLAS, are slower than the built-in kernel. The +configure step prints the choice in a line `CPU GRACE styles: ...`. To pick a BLAS, add for example +`-D BLA_VENDOR=Intel10_64lp_seq` (sequential MKL) or `-D BLA_VENDOR=OpenBLAS`. `-D GRACE_BLAS=ON` uses any BLAS +that provides `cblas_sgemm` and stops if there is none; `-D GRACE_BLAS=OFF` always uses the built-in kernel. + ### NVIDIA GPU (Kokkos CUDA) You need the CUDA toolkit 12.2 or newer, 12.8 for Blackwell GPUs (`nvcc` on `PATH`). @@ -89,6 +95,33 @@ On HPE Cray systems (`PrgEnv-amd` with `cray-mpich`), also add `-D GRACE_BLAS=OF a BLAS at configure time that `hipcc` does not link, and the link then fails with `undefined symbol: cblas_sgemm`. The setting affects only the CPU styles, which then use their built-in matrix product. +Example for [LUMI](https://docs.lumi-supercomputer.eu/) (MI250X, `PrgEnv-amd`). Configure on a login node, because +the configure step needs network access; build in a batch job and run on a GPU node. On the login node, ROCm's CMake +files warn that `AMDGPU_TARGETS` is not set and no GPU was detected; the warning is harmless, the binary is built +for gfx90a: + +```bash +module --force purge +module load LUMI/25.03 partition/G +module load rocm/6.3.4 buildtools/25.03 PrgEnv-amd cray-mpich + +cmake -S cmake -B build-hip -D CMAKE_BUILD_TYPE=Release -D CMAKE_CXX_COMPILER=hipcc \ + -D PKG_KOKKOS=yes -D Kokkos_ENABLE_HIP=yes -D Kokkos_ARCH_AMD_GFX90A=yes \ + -D GPU_TARGETS=gfx90a -D CMAKE_CXX_FLAGS="-munsafe-fp-atomics" -D BUILD_MPI=yes -D PKG_ML-PACE=yes \ + -D GRACE_BLAS=OFF +sbatch -A project_ -p small-g -N 1 -n 1 -c 8 --gpus=1 -t 00:30:00 --wrap "cmake --build build-hip -j 8" +``` + +The build takes about 12 minutes; its output goes to `slurm-.out`. + +One GCD (half of an MI250X) per run, with the input of [step 4](#4-run): + +```bash +srun -A project_ -p small-g -N 1 -n 1 -c 7 --gpus=1 -t 00:30:00 \ + build-hip/lmp -k on g 1 -sf kk -pk kokkos newton on neigh half -in in.lmp \ + -var model ~/.cache/grace/GRACE-2L-OMAT-medium-ft-E/kokkos.npz +``` + Other AMD GPUs ([GPU backends](backends.md#amd-rocm)): | GPU | Flags | @@ -98,10 +131,10 @@ Other AMD GPUs ([GPU backends](backends.md#amd-rocm)): ### Without network access -Download grace-runtime 0.1.0 on a machine with network access, copy it over and pass its path: +Download grace-runtime 0.1.1 on a machine with network access, copy it over and pass its path: ```bash -git clone --depth 1 -b 0.1.0 https://github.com/ICAMS/grace-runtime.git +git clone --depth 1 -b 0.1.1 https://github.com/ICAMS/grace-runtime.git cmake -S cmake -B build-cpu ... -D LOCAL_GRACE_RUNTIME=$PWD/grace-runtime ``` @@ -130,7 +163,8 @@ set). ## 4. Run Save this input as `in.lmp`. It is a bcc W/Mo alloy of 1024 atoms; `pair_coeff` maps LAMMPS atom types 1 and 2 to W -and Mo, and the model file is given on the command line as the variable `model`: +and Mo, and the model file is given on the command line as the variable `model`. The input also prints the largest +extrapolation grade γ of all atoms (the model's uncertainty) and writes γ per atom to `uq.dump`: ```text units metal @@ -146,12 +180,23 @@ mass 2 95.95 pair_style grace/runtime pair_coeff * * ${model} W Mo +fix gamma all pair 20 grace/runtime gamma 1 +compute max_gamma all reduce max f_gamma + velocity all create 300 4928459 fix 1 all nvt temp 300 300 0.1 +thermo_style custom step temp pe press c_max_gamma thermo 20 +dump uq all custom 100 uq.dump id type x y z f_gamma run 100 ``` +`fix pair` asks the pair style for γ every 20 steps, the same interval as `thermo`. γ needs a model with an +uncertainty head (GRACE-2L-OMAT-medium-ft-E has one; see [uncertainty quantification](usage.md#uncertainty-quantification)). +For a model without one, leave out the `fix pair`, `compute` and `dump` lines and `c_max_gamma`. The fields +`atomic_sigma` and `gmm_cluster` are available in the same way; see the +[`pair_style grace/runtime` documentation](https://github.com/yury-lysogorskiy/lammps/blob/grace-runtime/doc/src/pair_grace_runtime.rst). + CPU, 4 MPI ranks with 4 OpenMP threads each: ```bash @@ -178,10 +223,14 @@ The style prints which model kind it loaded. On the CPU (`grace/runtime`): ```text [grace/runtime] loading the GRACE-2L model .../GRACE-2L-OMAT-medium-ft-E/kokkos.npz [GRACE-2L] lmax 4 | L1 42 ch, A1/AA/AAA/AAAA 25/141/107/378 | I 4x32 | L2 32 / 64 ch, ... | spline N 1024 - Step Temp E_pair E_mol TotEng Press - 0 300 -12248.756 0 -12209.086 40140.971 + Step Temp PotEng Press c_max_gamma + 0 300 -12248.756 40140.972 0.42767153 + 20 184.01952 -12233.328 43814.062 0.58249744 ``` +γ is the distance of an atom's environment from the training data, divided by a threshold: below 1 the atom is +inside the region the model was trained on, above 1 it extrapolates. Here all atoms stay below 1. + On the GPU (`grace/runtime/kk`), also the element mapping and the chunk size chosen from the free GPU memory: ```text @@ -189,12 +238,11 @@ On the GPU (`grace/runtime/kk`), also the element mapping and the chunk size cho [grace/runtime/kk] LAMMPS type 1 -> W (model index 83) [grace/runtime/kk] LAMMPS type 2 -> Mo (model index 43) [GRACE-2L/KK] chunksize auto: 1126 atoms per chunk (...) - Step Temp E_pair E_mol TotEng Press - 0 300 -12248.756 0 -12209.086 40140.93 ``` -The energy at step 0 is the same on the CPU and the GPU. Both evaluate the network in fp32, in a different order, so -the last digits and later steps of the trajectory can differ slightly. +With `fix pair` in the input, LAMMPS also warns that it switches to legacy (host) communication and sorting for +Kokkos; this is expected and harmless. The thermo output follows, as on the CPU. The energy at step 0 is the same on the CPU and the GPU. Both evaluate the +network in fp32, in a different order, so the last digits and later steps of the trajectory can differ slightly. Wrong input stops LAMMPS with an error that names the problem: a PACE `.yaml` in `grace/runtime`, a GRACE model in `pace/runtime`, a keyword that does not fit the model, or units other than `metal`. diff --git a/docs/torchsim.md b/docs/torchsim.md index 8e7170d..7e56851 100644 --- a/docs/torchsim.md +++ b/docs/torchsim.md @@ -2,7 +2,8 @@ [Installation](installation.md#optional-dependencies) · [API reference](api.md#torchsim-adapter) -Install the `torchsim` extra with Python >= 3.12. This complete example uses the default device selection: +Install the `torchsim` extra with Python >= 3.12 (on macOS, PyTorch from conda-forge instead: see +[macOS](installation.md#macos)). This complete example uses the default device selection: ```python import numpy # load before torch diff --git a/libgrace/include/grace/kk/csr_images.h b/libgrace/include/grace/kk/csr_images.h index 9463be3..11ffda3 100644 --- a/libgrace/include/grace/kk/csr_images.h +++ b/libgrace/include/grace/kk/csr_images.h @@ -153,11 +153,11 @@ template struct CsrImagesKK { auto jj = nl.j; auto SS = nl.S; // the bonds to images (S != 0) counted first: the sort keys are one per such bond, not one per bond (a large cell - // has few: 1L at 33M atoms, 64 bonds per atom, needed 15.75 GiB for keys of all bonds) - int bad = 0; - int64_t nimg = 0; - Kokkos::parallel_reduce("csr:check_S", Kokkos::RangePolicy(0, nbd), - KOKKOS_LAMBDA(const int64_t b, int &v, int64_t &c) { + // has few: 1L at 33M atoms, 64 bonds per atom, needed 15.75 GiB for keys of all bonds). Ranges over bonds and + // image bonds are Range64: GRACE-1L at 2^25 atoms has 2^31 bonds. + int64_t bad = 0, nimg = 0; + Kokkos::parallel_reduce("csr:check_S", Range64(0, nbd), + KOKKOS_LAMBDA(const int64_t b, int64_t &v, int64_t &c) { for (int k = 0; k < 3; k++) if (SS(b, k) <= -512 || SS(b, k) >= 512) v++; if (SS(b, 0) != 0 || SS(b, 1) != 0 || SS(b, 2) != 0) c++; @@ -165,7 +165,7 @@ template struct CsrImagesKK { if (bad) throw grace::Error("CSR images: lattice translation beyond +-511 cells"); Kokkos::View keys("csr:keys", std::max(nimg, 1)); int64_t nk = 0; - Kokkos::parallel_scan("csr:keys", Kokkos::RangePolicy(0, nbd), + Kokkos::parallel_scan("csr:keys", Range64(0, nbd), KOKKOS_LAMBDA(const int64_t b, int64_t &acc, const bool fin) { if (SS(b, 0) != 0 || SS(b, 1) != 0 || SS(b, 2) != 0) { if (fin) keys(acc) = pack_key(jj(b), SS(b, 0), SS(b, 1), SS(b, 2)); @@ -175,13 +175,14 @@ template struct CsrImagesKK { if (nk > 1) Kokkos::sort(Kokkos::subview(keys, std::make_pair((int64_t) 0, nk))); Kokkos::View uniq("csr:uniq", std::max(nk, 1)); int64_t ng = 0; - Kokkos::parallel_scan("csr:unique", Kokkos::RangePolicy(0, nk), + Kokkos::parallel_scan("csr:unique", Range64(0, nk), KOKKOS_LAMBDA(const int64_t i, int64_t &acc, const bool fin) { if (i == 0 || keys(i) != keys(i - 1)) { if (fin) uniq(acc) = keys(i); acc++; } }, ng); + if (ng > INT32_MAX - n) throw grace::Error("CSR images: more than 2^31 - 1 atoms and images"); nall = n + (int) ng; x = decltype(x)("csr:x", std::max(nall, 1)); type = typename Traits::t_int_1d("csr:type", std::max(nall, 1)); diff --git a/libgrace/include/grace/kk/support.h b/libgrace/include/grace/kk/support.h index 5f985aa..fb7e11b 100644 --- a/libgrace/include/grace/kk/support.h +++ b/libgrace/include/grace/kk/support.h @@ -266,6 +266,10 @@ template KOKKOS_INLINE_FUNCTION BondSlot bond_slot(const Member &t return {team.team_rank() + ts * (lr % teams_per_slot), lr / teams_per_slot}; } +// A RangePolicy with 64-bit indices, for ranges that can pass 2^31 (bonds of a whole system). Kokkos >= 5.2 indexes a +// RangePolicy without IndexType with int on CUDA (before: unsigned int) and aborts the process on a larger bound. +template using Range64 = Kokkos::RangePolicy>; + // A View whose element access computes the offset in 64 bits. Kokkos 5 View::operator() computes the offset in the // common type of the indices (an optimisation of Kokkos 5), so v(i, j, k) with int indices wraps once the view holds // more than 2^31 elements: the GRACE-3L [nall][64][50] message rows from nall = 671089. The views with a diff --git a/mkdocs.yml b/mkdocs.yml index 7fc7d7f..a3150a7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -50,6 +50,7 @@ nav: - LAMMPS: lammps.md - Reference: - Performance and diagnostics: advanced.md + - Benchmarks: benchmarks.md - API reference: api.md - Development: development.md diff --git a/pyproject.toml b/pyproject.toml index d4f236b..7711667 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,8 +4,9 @@ build-backend = "scikit_build_core.build" [project] name = "grace-runtime" -version = "0.1.0" +version = "0.1.1" description = "Fast CPU and GPU inference of GRACE and PACE interatomic potentials with ASE, batching and TorchSim" +readme = "README.md" requires-python = ">=3.10" license = { text = "Academic Software License (ASL); bundled third-party code: see THIRD_PARTY_NOTICES.md" } classifiers = ["License :: Other/Proprietary License"] @@ -19,7 +20,8 @@ Homepage = "https://github.com/ICAMS/grace-runtime" Issues = "https://github.com/ICAMS/grace-runtime/issues" [project.optional-dependencies] -torchsim = ["torch>=2; python_version >= '3.12'", "torch-sim-atomistic>=0.6; python_version >= '3.12'"] +torchsim = ["torch>=2; python_version >= '3.12' and sys_platform != 'darwin'", + "torch-sim-atomistic>=0.6; python_version >= '3.12' and sys_platform != 'darwin'"] phonons = ["phonopy>=2.20"] test = ["pytest", "pyyaml"] diff --git a/python-cuda/pyproject.toml b/python-cuda/pyproject.toml index 67409ec..c391723 100644 --- a/python-cuda/pyproject.toml +++ b/python-cuda/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "scikit_build_core.build" [project] name = "grace-runtime-cuda12" -version = "0.1.0" # = grace-runtime (scripts/build_cuda_wheels.sh sets both from the repository pyproject) +version = "0.1.1" # = grace-runtime (scripts/build_cuda_wheels.sh sets both from the repository pyproject) description = "NVIDIA GPU backend (CUDA 12) of grace-runtime: fused GRACE-1L/2L/3L Kokkos kernels for V100, RTX 20xx/30xx/40xx/50xx, A100/A30, L40S, H100/H200, B200/B300" readme = "README.md" requires-python = ">=3.10" license = { text = "Academic Software License (ASL); bundled third-party code (Kokkos: Apache-2.0 WITH LLVM-exception): see THIRD_PARTY_NOTICES.md" } classifiers = ["License :: Other/Proprietary License"] -dependencies = ["grace-runtime==0.1.0"] +dependencies = ["grace-runtime==0.1.1"] [project.urls] Homepage = "https://github.com/ICAMS/grace-runtime" diff --git a/python-rocm6/pyproject.toml b/python-rocm6/pyproject.toml index 0140398..85e5125 100644 --- a/python-rocm6/pyproject.toml +++ b/python-rocm6/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "scikit_build_core.build" [project] name = "grace-runtime-rocm6" -version = "0.1.0" # = grace-runtime (scripts/build_rocm_wheels.sh sets both from the repository pyproject) +version = "0.1.1" # = grace-runtime (scripts/build_rocm_wheels.sh sets both from the repository pyproject) description = "AMD GPU backend (ROCm 6) of grace-runtime: fused GRACE-1L/2L/3L Kokkos kernels for MI210/MI250/MI250X and MI300A/MI300X" readme = "README.md" requires-python = ">=3.10" license = { text = "Academic Software License (ASL); bundled third-party code (Kokkos: Apache-2.0 WITH LLVM-exception): see THIRD_PARTY_NOTICES.md" } classifiers = ["License :: Other/Proprietary License"] -dependencies = ["grace-runtime==0.1.0"] +dependencies = ["grace-runtime==0.1.1"] [project.urls] Homepage = "https://github.com/ICAMS/grace-runtime" diff --git a/python/grace_runtime/cli.py b/python/grace_runtime/cli.py index 3e1a37b..199d727 100644 --- a/python/grace_runtime/cli.py +++ b/python/grace_runtime/cli.py @@ -98,6 +98,9 @@ def info(): "HSA_OVERRIDE_GFX_VERSION") if k in os.environ} print("settings:", ", ".join(f"{k}={v}" for k, v in flags.items()) or "defaults") + if sys.platform != "linux": + print("GPU: none (GPU modules are Linux-only); device='auto' runs on the CPU") + return 0 try: _cuda.compute_capability(0) except (_cuda.NoGPU, ValueError) as e: diff --git a/python/tests/test_rocm_plugin.py b/python/tests/test_rocm_plugin.py index 2428e7c..6594ef9 100644 --- a/python/tests/test_rocm_plugin.py +++ b/python/tests/test_rocm_plugin.py @@ -110,6 +110,7 @@ def cdll(name, *a, **k): return real(name, *a, **k) no_env.setattr(ctypes, "CDLL", cdll) no_env.setattr(_rocm, "plugins", lambda: []) + no_env.setattr(sys, "platform", "linux") # info off Linux skips the GPU probes return no_env @@ -371,6 +372,16 @@ def test_info_amd_native(amd_node, capsys): assert "rocBLAS:" in out +def test_info_on_macos_does_not_probe_gpus(no_env, capsys): + def probe(*a, **k): + raise AssertionError("GPU probed on macOS") + no_env.setattr(sys, "platform", "darwin") + no_env.setattr(_cuda, "compute_capability", probe) + no_env.setattr(_rocm, "kfd_present", probe) + assert cli.main(["info"]) == 0 + assert "GPU: none (GPU modules are Linux-only); device='auto' runs on the CPU" in capsys.readouterr().out + + def test_info_zero_visible_cuda_devices(amd_node, capsys): """cuInit(0) succeeds with 0 visible CUDA devices (ValueError from compute_capability(0)): info falls back to AMD or CPU instead of crashing.""" diff --git a/scripts/check_cuda_wheel.py b/scripts/check_cuda_wheel.py index bf65232..5fa22bf 100644 --- a/scripts/check_cuda_wheel.py +++ b/scripts/check_cuda_wheel.py @@ -2,7 +2,8 @@ """check_cuda_wheel.py [archs]: a grace-runtime-cuda12 wheel holds one module per architecture (default sm70, sm80, sm90, sm100, sm120) for its CPython tag, the plug-in package with ABI and the grace_runtime.backends entry point; no CUDA driver or toolkit library except the redistributable cudart; every module exports only PyInit_* (Kokkos and libstdc++ hidden); -auditwheel accepts it as manylinux_2_17 x86_64. Prints the size. Exit status 1 on a failed check.""" +it is manylinux_2_17 x86_64 but for libcuda.so.1, which the driver provides (wheel_policy.py). Prints the size. Exit +status 1 on a failed check.""" import re import subprocess import sys @@ -10,6 +11,8 @@ import zipfile from pathlib import Path +import wheel_policy + wheel = Path(sys.argv[1]) archs = (sys.argv[2] if len(sys.argv) > 2 else "sm70,sm80,sm90,sm100,sm120").split(",") bad = [] @@ -37,17 +40,15 @@ if re.match(r"lib(cuda|cublas|cublasLt|nvrtc|cufft|cusparse)[.-]", base): bad.append(f"bundles {base} (driver / toolkit library)") with tempfile.TemporaryDirectory() as d: - for n in names: - if "/_kk_" in n and n.endswith(".so"): - z.extract(n, d) - out = subprocess.run(["nm", "-D", "--defined-only", str(Path(d) / n)], capture_output=True, - text=True).stdout + elfs = {n: Path(z.extract(n, d)) for n in names if re.search(r"\.so(\.\d+)*$", n)} + for n, p in elfs.items(): + if "/_kk_" in n: + out = subprocess.run(["nm", "-D", "--defined-only", str(p)], capture_output=True, text=True).stdout extra = [l.split()[-1] for l in out.splitlines() if l.split() and not l.split()[-1].startswith("PyInit_")] if extra: bad.append(f"{n} exports {len(extra)} symbols besides PyInit_*: {extra[:5]}") -show = subprocess.run([sys.executable, "-m", "auditwheel", "show", str(wheel)], capture_output=True, text=True) -if "manylinux_2_17_x86_64" not in show.stdout: - bad.append("auditwheel: not manylinux_2_17_x86_64 compatible:\n" + show.stdout[-800:] + show.stderr[-400:]) + needs = {n: wheel_policy.needed(p) for n, p in elfs.items()} + bad += wheel_policy.check(wheel, "manylinux_2_17_x86_64", needs, ["libcuda.so.1"]) print(f"{wheel.name}: {wheel.stat().st_size / 2**20:.1f} MB, bundled libs: " f"{', '.join(n.rsplit('/', 1)[-1] for n in libs) or 'none'}") for b in bad: diff --git a/scripts/check_rocm_wheel.py b/scripts/check_rocm_wheel.py index 30cd78f..e5c31fb 100644 --- a/scripts/check_rocm_wheel.py +++ b/scripts/check_rocm_wheel.py @@ -4,8 +4,9 @@ grace_runtime.backends entry point; it bundles no ROCm library (the HIP runtime comes from the system ROCm; rocBLAS, hipBLAS, rocSOLVER and their Tensile kernels never: rocBLAS is loaded at run time) and no other library than libgomp; the modules need libamdhip64.so.6 and no BLAS library (DT_NEEDED), carry no absolute RUNPATH and export only -PyInit_*; its glibc symbol versions (auditwheel) allow the platform tag (default manylinux_2_28_x86_64; '-': no platform -checks), and the file name carries that tag alone. Prints the size. Exit status 1 on a failed check.""" +PyInit_*; it is of the platform tag but for libamdhip64.so.6, which the system ROCm provides (wheel_policy.py; default +manylinux_2_28_x86_64; '-': no platform checks), and the file name carries that tag alone. Prints the size. Exit +status 1 on a failed check.""" import re import subprocess import sys @@ -13,6 +14,8 @@ import zipfile from pathlib import Path +import wheel_policy + wheel = Path(sys.argv[1]) archs = (sys.argv[2] if len(sys.argv) > 2 else "gfx90a,gfx942").split(",") plat = sys.argv[3] if len(sys.argv) > 3 else "manylinux_2_28_x86_64" @@ -53,12 +56,13 @@ def elf(path, what): if not re.match(r"libgomp[.-]", base): bad.append(f"bundles {base} (only libgomp may be: the ROCm libraries come from the system)") with tempfile.TemporaryDirectory() as d: + needs = {} for n in names: if not re.search(r"\.so(\.\d+)*$", n): continue p = Path(z.extract(n, d)) dyn = elf(p, "-d") - needed = re.findall(r"\(NEEDED\)\s+Shared library: \[([^]]+)\]", dyn) + needed = needs[n] = wheel_policy.needed(p) blas = [x for x in needed if re.match(r"lib(rocblas|hipblas|hipblaslt|rocsolver|cublas)", x)] if blas: bad.append(f"{n} needs {blas} (BLAS must be loaded at run time, not linked)") @@ -73,22 +77,10 @@ def elf(path, what): extra = [l.split()[-1] for l in out.splitlines() if l.split() and not l.split()[-1].startswith("PyInit_")] if extra: bad.append(f"{n} exports {len(extra)} symbols besides PyInit_*: {extra[:5]}") - -def glibc(tag): - """(major, minor) of a manylinux tag (manylinux2014 = 2.17), None for others""" - m = re.match(r"manylinux_(\d+)_(\d+)_", tag) - return (int(m.group(1)), int(m.group(2))) if m else (2, 17) if tag.startswith("manylinux2014") else None - - -if plat.startswith("manylinux"): # '-': no platform checks (a wheel for this machine) - show = subprocess.run([sys.executable, "-m", "auditwheel", "show", str(wheel)], capture_output=True, text=True) - # the excluded HIP runtime keeps the verdict at linux_x86_64; the glibc symbol versions give the constraint - m = re.search(r'constrains the platform tag to\s*"([^"]+)"', show.stdout) or \ - re.search(r'consistent with the following platform tag:\s*"([^"]+)"', show.stdout) - if not m or not glibc(m.group(1)) or glibc(m.group(1)) > glibc(plat): - bad.append(f"auditwheel: not {plat} compatible:\n" + show.stdout[-800:] + show.stderr[-400:]) - if not wheel.name.endswith(f"-{plat}.whl"): - bad.append(f"platform tag of {wheel.name} is not {plat} alone") + if plat.startswith("manylinux"): # '-': no platform checks (a wheel for this machine) + bad += wheel_policy.check(wheel, plat, needs, ["libamdhip64.so.6"]) + if not wheel.name.endswith(f"-{plat}.whl"): + bad.append(f"platform tag of {wheel.name} is not {plat} alone") print(f"{wheel.name}: {wheel.stat().st_size / 2**20:.1f} MB, bundled libs: " f"{', '.join(n.rsplit('/', 1)[-1] for n in libs) or 'none'}") for b in bad: diff --git a/scripts/wheel_policy.py b/scripts/wheel_policy.py new file mode 100644 index 0000000..896e8ee --- /dev/null +++ b/scripts/wheel_policy.py @@ -0,0 +1,64 @@ +# SPDX-License-Identifier: LicenseRef-ASL (Academic Software Licence, see LICENSE.md) +"""The manylinux check of the GPU wheels (check_cuda_wheel.py, check_rocm_wheel.py). auditwheel calls such a wheel +linux_x86_64, because its modules need the GPU runtime the build leaves out on purpose (libcuda.so.1, +libamdhip64.so.6). So a wheel passes when auditwheel's tag fits the platform tag, or when the tag is linux_x86_64 for +missing libraries alone (its glibc symbol versions fit, no blacklisted symbol, no other policy failure) and every +library its ELF files need is in the policy's whitelist, vendored in the wheel, or one of the left-out GPU runtime +libraries.""" +import importlib.resources +import json +import re +import subprocess +import sys + +LOADER = "ld-linux-x86-64.so.2" # the dynamic loader: needed by some objects, never in a whitelist + + +def glibc(tag): + """(major, minor) of a manylinux tag (manylinux2014 = 2.17), None for others""" + m = re.match(r"manylinux_(\d+)_(\d+)_", tag or "") + return (int(m.group(1)), int(m.group(2))) if m else (2, 17) if (tag or "").startswith("manylinux2014") else None + + +def needed(path): + """the DT_NEEDED libraries of an ELF file (CalledProcessError when readelf cannot read it)""" + out = subprocess.run(["readelf", "-W", "-d", str(path)], capture_output=True, text=True, check=True).stdout + return re.findall(r"\(NEEDED\)\s+Shared library: \[([^]]+)\]", out) + + +def check(wheel, plat, needs, left_out): + """failures (list of str) of the manylinux check of wheel for plat (manylinux___x86_64). needs: {name in the + wheel: its DT_NEEDED} of its ELF files (modules and vendored libraries); left_out: the GPU runtime libraries the + build excludes""" + g = glibc(plat) + if g is None: + return [f"unknown platform tag {plat}"] + canon = f"manylinux_{g[0]}_{g[1]}" + policies = json.loads(importlib.resources.files("auditwheel.policy").joinpath("manylinux-policy.json").read_text()) + policy = next((p for p in policies if canon == p["name"] or canon in p["aliases"]), None) + if policy is None: + return [f"auditwheel has no policy {canon}"] + bad = [] + allowed = set(policy["lib_whitelist"]) | {n.rsplit("/", 1)[-1] for n in needs} | set(left_out) | {LOADER} + for n, libs in needs.items(): + foreign = [x for x in libs if x not in allowed] + if foreign: + bad.append(f"{n} needs {foreign}: not in the {plat} policy, not vendored") + show = subprocess.run([sys.executable, "-m", "auditwheel", "show", "--json", str(wheel)], capture_output=True, + text=True) + try: + r = json.loads(show.stdout) + except ValueError: + return bad + [f"auditwheel show --json failed: {show.stdout[-400:]}{show.stderr[-400:]}"] + + def fits(tag): + return glibc(tag) is not None and glibc(tag) <= g + + if fits(r["overall_tag"]): + return bad + other = [k for k in ("pyfpe", "ucs2", "unsupported_isa") if r.get(k)] + blacklisted = r["policy_upgrades"].get(f"{canon}_x86_64", {}).get("blacklisted_symbols") + if r["overall_tag"] != "linux_x86_64" or not fits(r["sym_tag"]) or other or blacklisted: + bad.append(f"auditwheel: not {plat}: tag {r['overall_tag']}, symbol versions {r['sym_tag']}, " + f"failed {other}, blacklisted symbols {blacklisted}") + return bad diff --git a/tests/kk/test_kk_large.cpp b/tests/kk/test_kk_large.cpp index 225bdcb..d613611 100644 --- a/tests/kk/test_kk_large.cpp +++ b/tests/kk/test_kk_large.cpp @@ -53,6 +53,9 @@ void check_guards() const int c = grace::kk::auto_chunk(1000000, 1, 1, grow, [] { return 0.0; }, grace::Logger{}, "test"); std::printf("guards: refused a 2^32-element view; chunksize auto %d for 10000 values per atom\n", c); CHECK((double) c * 10000 <= (double) INT32_MAX); + // a range over 2^31 bonds (GRACE-1L at 2^25 atoms): a policy with an int index aborts on this bound when built + const grace::kk::Range64 bonds(0, int64_t(1) << 31); + CHECK(bonds.end() == int64_t(1) << 31); } template void check_copies(Eng &eng, const char *tag, const Cell &w, const Cell &big)