From 644b401002b36754c1e8197c0d86c977d864bd41 Mon Sep 17 00:00:00 2001
From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com>
Date: Mon, 3 Aug 2026 03:09:25 +0000
Subject: [PATCH 1/7] ci: migrate CI configuration from CircleCI to GitHub
Actions
---
.circleci/config.yml | 52 ----------------------------------------
.github/workflows/ci.yml | 23 ++++++++++++++++++
2 files changed, 23 insertions(+), 52 deletions(-)
delete mode 100644 .circleci/config.yml
create mode 100644 .github/workflows/ci.yml
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 1ebf26a..0000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-# Python CircleCI 2.0 configuration file
-#
-# Check https://circleci.com/docs/2.0/language-python/ for more details
-#
-version: 2
-jobs:
- build:
- docker:
- # specify the version you desire here
- # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers`
- - image: circleci/python:3.6.1
-
- # Specify service dependencies here if necessary
- # CircleCI maintains a library of pre-built images
- # documented at https://circleci.com/docs/2.0/circleci-images/
- # - image: circleci/postgres:9.4
-
- working_directory: ~/repo
-
- steps:
- - checkout
-
- # Download and cache dependencies
- - restore_cache:
- keys:
- - v1-dependencies-{{ checksum "requirements.txt" }}
- # fallback to using the latest cache if no exact match is found
- - v1-dependencies-
-
- - run:
- name: install dependencies
- command: |
- python3 -m venv venv
- . venv/bin/activate
- pip install -r requirements.txt
-
- - save_cache:
- paths:
- - ./venv
- key: v1-dependencies-{{ checksum "requirements.txt" }}
-
- # run tests!
- - run:
- name: run tests
- command: |
- . venv/bin/activate
- python complex_colormap/cplot.py
-
- - store_artifacts:
- path: test-reports
- destination: test-reports
-
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..791f6a9
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,23 @@
+name: CI
+
+on:
+ push:
+ branches: [master]
+ pull_request:
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ pip install -r requirements.txt
+
+ - name: Run tests
+ run: python complex_colormap/cplot.py
From b7eb8b138fd9ce402a6dca6f857432385c0b46a5 Mon Sep 17 00:00:00 2001
From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com>
Date: Mon, 3 Aug 2026 19:46:08 +0000
Subject: [PATCH 2/7] build: migrate to pyproject.toml and use build module
Migrate the project packaging from setup.py and requirements.txt to
pyproject.toml. Update Makefile to use the `build` module instead of
`setup.py` and update CI workflows to install the package in
editable mode.
---
.github/workflows/ci.yml | 2 +-
Makefile | 13 +++-----
complex_colormap/__about__.py | 3 --
pyproject.toml | 40 ++++++++++++++++++++++++
requirements.txt | 4 ---
setup.py | 57 -----------------------------------
6 files changed, 45 insertions(+), 74 deletions(-)
create mode 100644 pyproject.toml
delete mode 100644 requirements.txt
delete mode 100644 setup.py
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 791f6a9..5998635 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -17,7 +17,7 @@ jobs:
- name: Install dependencies
run: |
- pip install -r requirements.txt
+ pip install -e .
- name: Run tests
run: python complex_colormap/cplot.py
diff --git a/Makefile b/Makefile
index dbdbf82..2ec53af 100644
--- a/Makefile
+++ b/Makefile
@@ -3,11 +3,6 @@ VERSION=$(shell python3 -c "import complex_colormap; print(complex_colormap.__ve
default:
@echo "\"make publish\"?"
-README.rst: README.md
- cat README.md | sed -e 's__{width="\2"}_g' -e 's_
]*>__g' -e 's_
__g' > /tmp/README.md - pandoc /tmp/README.md -o README.rst - python3 setup.py check -r -s || exit 1 - tag: # Make sure we're on the master branch @if [ "$(shell git rev-parse --abbrev-ref HEAD)" != "master" ]; then exit 1; fi @@ -15,14 +10,14 @@ tag: git tag v$(VERSION) git push --tags -upload: setup.py README.rst +upload: tag @if [ "$(shell git rev-parse --abbrev-ref HEAD)" != "master" ]; then exit 1; fi - rm -f dist/* - python3 setup.py bdist_wheel --universal + rm -rf dist + python3 -m build gpg --detach-sign -a dist/* twine upload dist/* publish: tag upload clean: - rm -f README.rst + rm -rf dist build *.egg-info diff --git a/complex_colormap/__about__.py b/complex_colormap/__about__.py index f63e279..6e8190c 100644 --- a/complex_colormap/__about__.py +++ b/complex_colormap/__about__.py @@ -1,7 +1,4 @@ # -*- coding: utf-8 -*- # __version__ = '0.0.1' -__author_email__ = 'endolith@gmail.com' __website__ = 'https://github.com/endolith/complex_colormap' -__license__ = 'License :: OSI Approved :: MIT License' -__status__ = 'Development Status :: 2 - Pre-Alpha' diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..4d13557 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,40 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "complex_colormap" +dynamic = ["version"] +description = "Color maps for complex-valued functions" +readme = "README.md" +requires-python = ">=3.9" +license = "MIT" +authors = [ + { name = "endolith", email = "endolith@gmail.com" }, +] +keywords = ["colormap", "matplotlib", "complex", "plotting"] +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Science/Research", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Topic :: Scientific/Engineering", + "Topic :: Scientific/Engineering :: Mathematics", + "Topic :: Scientific/Engineering :: Physics", +] +dependencies = [ + "colorspacious", + "matplotlib", + "numpy", + "scipy", +] + +[project.urls] +Homepage = "https://github.com/endolith/complex_colormap" +Download = "https://github.com/endolith/complex_colormap/releases" + +[tool.hatch.version] +path = "complex_colormap/__about__.py" + +[tool.hatch.build.targets.wheel] +packages = ["complex_colormap"] diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 13cc29e..0000000 --- a/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -colorspacious -matplotlib -numpy -scipy \ No newline at end of file diff --git a/setup.py b/setup.py deleted file mode 100644 index 97ca26a..0000000 --- a/setup.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- coding: utf-8 -*- -# -import codecs -import os - -from setuptools import find_packages, setup - -# https://packaging.python.org/single_source_version/ -base_dir = os.path.abspath(os.path.dirname(__file__)) -about = {} -with open(os.path.join(base_dir, 'complex_colormap', '__about__.py'), - 'rb') as f: - exec(f.read(), about) - - -def read(fname): - try: - content = codecs.open( - os.path.join(os.path.dirname(__file__), fname), - encoding='utf-8' - ).read() - except Exception: - content = '' - return content - - -setup( - name='complex_colormap', - version=about['__version__'], - author=about['__author__'], - author_email=about['__author_email__'], - packages=find_packages(), - description='Color maps for complex-valued functions', - long_description=read('README.rst'), - url=about['__website__'], - download_url='https://github.com/endolith/complex_colormap/releases', - license=about['__license__'], - platforms='any', - install_requires=[ - 'colorspacious', - 'matplotlib', - 'numpy', - 'scipy', - ], - classifiers=[ - about['__status__'], - about['__license__'], - 'Intended Audience :: Science/Research', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 3', - 'Topic :: Scientific/Engineering', - 'Topic :: Scientific/Engineering :: Mathematics', - 'Topic :: Scientific/Engineering :: Physics', - ] -) From 34e649353023c9a05475f35863e060fcd6828526 Mon Sep 17 00:00:00 2001 From: "kiloconnect[bot]" <240665456+kiloconnect[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2026 03:18:19 +0000 Subject: [PATCH 3/7] ci: fix GitHub Actions test job and add pytest suite - Add generated C_lut.npy lookup table (required at import time) - Include C_lut.npy in the built wheel - Add pytest test suite covering both colormaps - Run pytest in CI with a separate cplot.py smoke test - Harden workflow: contents: read permission, persist-credentials: false - Declare build frontend and PHONY targets in Makefile --- .github/workflows/ci.yml | 9 +++++++- Makefile | 7 +++++++ complex_colormap/C_lut.npy | Bin 0 -> 8388736 bytes pyproject.toml | 6 ++++++ tests/test_cplot.py | 41 +++++++++++++++++++++++++++++++++++++ 5 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 complex_colormap/C_lut.npy create mode 100644 tests/test_cplot.py diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5998635..c34b297 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,8 +8,12 @@ on: jobs: test: runs-on: ubuntu-latest + permissions: + contents: read steps: - uses: actions/checkout@v4 + with: + persist-credentials: false - uses: actions/setup-python@v5 with: @@ -17,7 +21,10 @@ jobs: - name: Install dependencies run: | - pip install -e . + pip install -e .[test] - name: Run tests + run: pytest + + - name: Smoke test run: python complex_colormap/cplot.py diff --git a/Makefile b/Makefile index 2ec53af..b0a606c 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ VERSION=$(shell python3 -c "import complex_colormap; print(complex_colormap.__version__)") +.PHONY: default tag upload publish clean test + default: @echo "\"make publish\"?" @@ -12,6 +14,7 @@ tag: upload: tag @if [ "$(shell git rev-parse --abbrev-ref HEAD)" != "master" ]; then exit 1; fi + python3 -m pip install build rm -rf dist python3 -m build gpg --detach-sign -a dist/* @@ -19,5 +22,9 @@ upload: tag publish: tag upload +test: + python3 -m pip install -e .[test] + pytest + clean: rm -rf dist build *.egg-info diff --git a/complex_colormap/C_lut.npy b/complex_colormap/C_lut.npy new file mode 100644 index 0000000000000000000000000000000000000000..54234326662b8798ad5c3b8acc08c99157ba32f3 GIT binary patch literal 8388736 zcmeFad00)~+Xq~y(`l|#o#sI$N|Gd*V%?@B2}xv3l1xcRl4J@=NTMW}$&^eBm6x~osQvd!wVC7)4YhRb0lvfc@)X3?2JQ=AMeBQSiica>SH+m zO52}&=_XxIGo~Gd=mMOl6^-a{`GxoUez~P8OV?qtE{~256Tf4J^Fiajch}Fw@mKQm zfFWye{55L1b#oY9-$~v`@< {GypYrc Tl$Yx?@?np7}CrLg|;;!onyKHXltVYDYTID7< z?|h5nuTb2D;kn?@yOlV8n03}UDiq@qrQ;Q+9sTcd7r`}1 z-1WL?nEG<%WR4haum^$(t0hmuMw&qyt;LsN#De%QASTgR>q#V2T7Q+-8g z>cdZUs5<>eqo@trcXwjFHEBHLc#r3nKl9(?t!Jv4_ng1g|HgR;?sHbtsbSRQU&t%T zZHw7jj1So_5~?2gg~pzcQ_alyg*-d1s;#g7g|@lQ)HK&@Kqr#Aw7-sOKt?Z6 7#%@Hitl0Vdl;?90v zub zWO>;IHKR2r$0| 9eLb=W*J0IJvY4*rHq>0 zC93O04HjngYmarIq+XsWVspDu=*{Ib!nDO;8}D&>-T^VFA0fBqc`tF$SDw53%x7^( zZM84TF6RNe{z`*q+|l>il~Ulj>&bv8FQmX)?UZxGC2V;)mxk??0-Ks<=@MUT3k*FE zIAi;C;(cT-1zsADTwZBNfj7VE%End!9Cr2`r}S9>SqY!=6CMblrP|ro>XZOXM?90v z*dc(h%7}NvRtTW{$h6Z}oduv>{%qJ78vz8y?3GQ`5kP^xOTMMJ0G7LX6^EBfLbi0@ z>k>JVFh^^|z4 dVuX;Y@`UdXt`oxEQMIT?C&EUfnm!axqm-wKPd3cuDAwIkw z+!DVmgb(Smr}ZM2@nK64-{Xx7AN(d?Eo?=6@GzP;-=HraTpDG+*s1e@#WVR}eZ=$A zfl3K5_EDad`auFjqweJurb~eJ+LZm3S0sR)zY<^ *nR~ zfX!ccFiV+dJUfvGY+l2Ij^X=dN9^Q*
FF;?<}H4j+)lm`*2hP~rOc$>+icrfo+r`@6karkmDa?S7`;xI4VMO>v}iJi7cEib-Eix@ZpqwL^qn^ zf2?%Zx^Be!fo^1}+xp}EB)oshulS;2-AI`3{Jp0!-p}N3-N@N&{Pf{nT}UPFOiWNo z7h?TO7jotwk&AlR#rd5s6t#Ts#tTQf5bKY+(A&3LYtq+tp$6&Tb2%PeNPR@Wg8a!{ z$YzzF_D|a`;F2@%;n|9O*x$? z&tsFyi~F4%-rR|_pRe9l9Mg$nA4(^uhIOLUM&7c_b)6jkjJKJ5u@mL1n`{cU>qN5@ z(k{9T#@iB8^UX{ +9sTZw<821N#@jEi?p*4Fw;3E8Z!>WN-e&OZ4)kSN z!nHkvI*_}^pl=I%cc8+V&lHDgba41~2bY(&b2xW9O1L%cvPn@pGPqp&sq=L^hZD7P zxOY49Q2#th?NU1`lK0zCakL$!KR&J(9@&mg1i!j(zM~x(t@Wzn1+;Vc6F%?f;{jtA z;Lm-YHDBAg9kKCJJ2IY}dUE#gcErX}?Wp*HR%x7ZJD2CSbMY2FuaDxa>s@VJ9M*=4 zV^_pCmb4)@K5Ij# |p28YM{nS2`W=lq|yys5($KHksZgsois+KRker=GU>*^17s z(M^l_(uzuJe!k{^!2XlL8C#Jo6aThyczr7}oB3(1?$uVb^v&tnJI=SFL?>Ur`s1w} zevd!L;FtJw433XK$Kd$*ID>QI;|!jUKWCa@I&o1eDnA*4Zq98*<~`h84P9H&^4Oj$ z!kt>tMYZa!&33J*a$icU2g1kYw_bfQ7$4s;DQk!&KF-tpdeRgh-&oYBXo!!uUX%~i z!pGOF>-j?&AFmlTY>I3vhyS;7xNQq!^ZOQ#2Wa7VfEH9e!{*}RVjM@j5qtEypauCj zJ^wi3T?@MW^kD6|7x+Ae7ii&l0sK7-FM!V*-e_HZ6Q6hU{>155@b_@>2#Y&oev#n^ zFmGtuV_)=P%qyNOJ0rdy^N XkY@UXB z%oeFNj~yxRNqA5eU!Xi`^3ugA0vpPo5 (u4U zJ_&%>A^V=@j{PWrf3wp4gQDku5WxS{{@eGH>mZg~C$Z#y$o&yZ?wgDU86PrUWc)Pe zywn(4DFFMsy3YF50tnDw8ZJ>QfODH}WtP_A`x@;${8}Tve }VKsEA8}Yx&AI%{(c%c~RCrT_6SOD^I6|%SwU&02nYsQ3~Gw%0F$Wg5%Dc zYqcxYq#!y#xc8=(6f_OHAhB5wf4*~Ez(hm*d4|`P0=w^7M;@C=!I{$wh5IaMyvoMy zQqcQKPSNcV`25#5_b(ZP&u@wctqJ)2l%Y4iJJL8evs*@W%uFc=-G(|o%*WTo@aOov z=Ss5%FT?TglyPIS{iL8_b-(%z0a9?i#p9DOL<+|0P7HgnT?+WeLsn1UBLx|~Zq6x> zl7elC72`I=;p6=c`-@KD xl^muS&waU;Eai1V}=4ZT80pqa-0|vg`WG@{-_t z`KxB!2R^v_+^qLGh2!MC`2v&Gd|>l1K4iQy>VHUx DxSe#f p$6-jG+@ z&G98Pt|R$auHDY;l)f}>d#xb&ayPdNxzuHN!O1RUeMsMP&-yNozrk^r!Qk>aMqM1Q zPvfn_Z@;)Ip6}%F2^vqa_ Q%gE@60l9LFqc*Z$~@EtjW~_{8(pWwq66I6h(U_cmm#KIDdb zA&onJu6gL fzaY=3ij&^K1TgK@$XA7wJH}bZ$&J>N&PqR+bllU%JK5lFB5;v;(XYzGW;v` zx5Up9|7v;3WqscS?C%)9o%&Cr(_!&Qs^=j(AL0-H^nb+P5&uT~8u4dDzee;*M8`z* zO+^1hbWub%Mf6lecSZDI1jk_UV2p1txH;CJ#e5vz^9I(NG59&wmofMN){$|#qBZ+` zmb9L3=5TVXXOkNm;u()W&*0$HHiSwXdKrzskF!x3-bRuK@b~^ p z$u{{NV#)Q8>m!!M(=m?2-3PfZa-ZbB$vBX4A>%~Gjf^81SE6Sl<4&Ff(Weo87SW** z{n?+ovp;oaL|;a9UPM<$;wTblk@-dRV`To3`N;A>H0~quAc+%6{K)c3I4)&$C^Qbe zT(In5M+L>VSf1)1?-9de;cW)@{>OXA#nU9tHnZyAzGe-L%UQge#__Da0LS;su9mHQ z*~;PEI3M8FgDgf@(1y;%W=W3HX+tb;*M_{U-eN`-uQw0YOfH>)^BhJegx4EJH-z&S zMn{D67e-e^*C~=WvAA~I?>vjuDbc))DOvAvzWDH7 z$kaNVM>4u8oL?H}PPZ__>+)K;&|71%-TBQ-Zs9-HX+}TLf#y71s3o|E?c1UE+zPNQ zQCfJZ4coRKQsP?J54?0W>@ghY->07p8!;E#l%rqwZRkYn_b9erK1%cS!);*+H-2<- zx&fN+6C8lx0|Yl9cmly0at9`xEK=x3wR>ioX%5D?L}{1#b9anqY?8fmEwmds#Z9yt za2@+W2Dk1;cBa`!o=b=U!6R8+9QC8DUI62iHPz#`uN8xgjeEt%hKqsqijB=Brznm? z@SQEg$A5fNjqyxIpC=BiUQZmXvM=-xvlWM2-IDpLGqC^9S@~@9YV7xWTxgSxz_`<^ zfs58BQoQQ2^|)cK-^GE|3G(3bth%k8J$S(C1bD#e1b9%;@ZjR-ARg$>y`kUe%7c-? zAFVF+!uXij#LW&(;-FY8Bl{vt93Ggezpy?^;|*4~fUoQJyD%GljB6P_>zLGn@6&XZ zbx1D8sp^sogD#4J=beV|^*hCY<@G7fWH _>E*bKT~x zl6RnZP-NurC(d~o*WqwrmWRMNPNnUDse>qv!|DU^e3*QG#ror&sLl7q<^jGqo?vu= z|G-}u{+`aek&ExDPmAh6`U)DNgryWWVR`!w6tdN=QKu2lYexTvaSfNzA05vB<9%Rs ze;DU@Qxjf0x}DSeQQU&W3B4segbL~S{bcwiia!v%f#3_|{Vr8IpnFl3;syjKAh-a* z0nElpCS*m@JfGF;wIcbvoh=U?==#L+bu>TsS#Ugf|1X?ZGdet)Z & zKQsC{oL6)CFVXjsb(-X_WL+nIocM3zw~5~%{)G4&;*W^GBL3|y8aUK 2Lyrp_Oj>h5h&Tdh8a~OZ$kCLO( z2l4m0CtqK^2cI9W0q1w&@BI|?{LA(x6r)w-D%#S7hRqmXG$EMsIDxN~Td(^!A#LHh zZRLJg=RB!E$zUbbJ-20@>Aib#6C#$)kD3s%!^W-}(KH`_FK6>Nzt8GB2Y)|j1Md%a zSunE+{U@v4nea8*1z*P>_CI}&94Ei`rzO`#EV*uC$$kCSd2{zq#(|6r87IPjk#QvB zO2(OtJ9!S|xsc~Xo*Q|NL}#9|dZ*iy3-~#<+#NmV8h!qUQAEO>d-!=~JlZuSlg<}1 zf5?0y^NY+kGXDra*JSc;Ucc@p#Nr8f{xdiNp7#uXK<71?=Vaa!UXR5E@aJY!26j0# zqv-gwyt%GeH~%Bt=I#ReK9To}yl>?FBkv=LD@hzl;zklLlJ}at=Oiv9@gRxo32sH= zf3kj%^@PNINgGGZo#jIF3sNUQ>I29+Me-Dqw^%$d)8BND#&=}BBkNz~Qu(QOcr>mf z_$JAp$T~{!(%(4h@YomeTmON-GJ0x^uP(6DuzS$T=@wc!9X8JEcGSC9b>O&;Th|G0 z{AV0T_)>yT6Wp5M*{t5HjnjYOJe0%7S$$YL@_e=}HFF^LQ;ZIs=CdTfCAj^c@f-1T ztp2lu(|=Mvf$$83e<--sVpnjv0~I{Wsp$WrgVTL>pt!Y3`pcEE|7CP@m -b74v2?%Z=og L= z&sZI&IOJ?lJA9*B99TUij< OAIW?0jW7XP>9KYKk(jbxF#= z;+D$L_H2TOqM xWLik>Zk2-sWU|aG7K5P~OtJ@ZGJh+hK!G(}hY i~$cD6v60bPk-JQMJO`anmXo*BD`+vKXhrbBCvU@BCzYBB8 q@{%fJ=ax$g4)1A zA7m83JT%=jt3@6hQ`5e^`5_N+llkv5-pT`8e <-roED=}sTKy*;3L-h4S=aS%CR^E)|+>ifFk!XP;i z87(&2(pwH#zbgl LBvO^Y5^*FgBtVR}G)@`pDS0oE;9fvGj@9l6u?TIX~ zJhd#SzgOHl@RBUBd7&)$Z+|l{F;W&>M@ooK+#w4rKP?M4tDfXOTrLaIXPW&y7RUn2 zOUnYAH_8HAXCezJPjq%@Tgt-WkcoZn7|TMy&<)RLYstdQ`ot9-3bHWdLcY>bo-Am3 z$|jF!mVp-CVJ=@PWFYU|lBVE78AyqUIo#u&48)FqI_$wy83+_>EpWdl1G8?MZW6yH z18m+Y18kiP-hak9|5B6;44c0t$Y~ee&+yK4eIMp{@k85Eyq~EflL3}*mI2$L@2$={ z$^cuZBLj0* wG#mVuz-&raRzEdy-cDg$xvGUh&0l>wGtmVq>x`|9t-WPru7 zrGc$4!+z%W)}M|)rGe#>rGe#>r6Jhc{^q0S(!k<<(!k=|_;XBs8TC)@iYKlKPe=pH z8%qNlS4u;z{`I@dcS!>qZ{p)jeJVcA)T>IvgT#Gb1}>2XvEH*A;}=K+9PcGBI}0CY z;#T~5h8LCwHlCFRwoX rB>si)K}1#Esz{VvhHv2i!%<)*&~xKoIEy4*v1dw;~d9#el!c{mo| z#pjJ~ezQ28@^!}Tz5S(cNdcReQ(lkFAv>@n^~hdM?x{?Xh19*t~)AhQ)44YE7G^ zfYle`^HmCOMf+2}@xA%nDBTs9A7%1-DfnrZ?|Wh) eX z;-V9UPK$+*-Q4UjaEXx17jWF6Q`lPMBjj{;LZ}>>buMy^5Ux+L4OzMlf4@i4jM0HO zPGR^~{Jl2!PZoy=VY&Ul4QX5P_sQnegzmuK$JCPvq2Wux@IDbZUOB!l>DPYzJxo2e zkmGHIARps%VO%`^{A?Km;R*bCy;D*7r-hKQZ_$}Ui9$$|FiCN_f Dpgguu(v75jeS^R{RV9@vJ@W9r=Sd4Y;n+Xc$7#Yr#N zL_rx6jm)1tRaNHnjx^3ooxEw{NmCr}y}fQd#8MefoO=|KZ=(zz{aTl-9H|Vc9@A@^ z?35v(B<$mECuPv?RqOfCK^fROI{ZDSj%qG0#@C(s(7eYrI-af@o_je?$McD)AH(zg z$5*qRO-jJlr7HoeKU4y?PEZj<{%w=rB`SjFkAtoHb8-B1Blz v?~ zRcQHdQ~ !-+A(C`qgOcZGkBu_QilnaWlzC6=**(s2P_3(R=3J;t)c+TzZ`jCSc`QR zO9HA(UsC-=$C&I>qYhwQbL5y|Z~U>{wBq2VnOK*> H#mpOz%nI|u%lzptDR zNqrLgOXc!G_|d0(;|)HrdU!rqwMDAhY@_;SXPsLn)y`P|yhnX`e_O17?pmAV+lvoT zzV8~YDq@{;k@e7D%@V(L9DI{e9ka3}prN%YaPut*P`4-@xaSnkuf-20U)zgy&P*Q% zykFY3{KsMmu(7o{S?7ZF9j`V<7mcBMkF247(rtPYp!xE4d%3&>m#^`D>(YnSepWj9 ziRSf0-yG&Qc^+KEdgmp@yVZ~KAbkG%+m(BGAn&SJk{*opBA05Nf>&Xk$f@l?E*@0p z95>Cu@%eZjuyvX|u<)GYYSNzvU+#>&S7eCw&ue_#x2p5NCwofPNEv+I_K>AtJ2Cz+ zGD$w9UK~cw>{ljPM)mVuPs96-e@*!xgRan@&iBQ^Qj`BE?*`_btTrE;cTpVJdI_qB zCc2cQ_VkIfcZvhshXQ}De#ZI%>nVT4)?MJ^Ox-I!{&n-)&$BSEbtk5m#dM6D*m&B; zOv1WoraqSHrwI?nt`p*1-Y5=R7W^{W&{zC-9RT6Ycr$lSnW`%eCk|G93e^;c(Qlj= zr-`UOhFzbq9y@%C%v>4#J5NiZA|)~J#?-4~ev4Vp#D43tUw`*prP(3&o9`O^ASm6t ziQ+-OaUo83Lv-B45`ORBtaE;Ae08N5{M&J|pL`#&MCU_(pIjH=<=FLE49N8pow 5po7Z@182&w`9|<1!WQ%Eh zJBpk6&T_1 AEEP<%v++PV*930-ZaM>{aTPK4)>hW)eAmi{*>cU30`+^!QngoTk!ek zytVd9@E|9m!d6BB>$I4 3(T8% zFw cnvV&FD#F zfYqJL{Kf-*4o6 Bqo>wgn?xiZgJ%lXdxP*(4t1OC6dz;0Rq0DiufWTDTg=0b_=YUg?h4jdfP- zfs?RKl)-Iz5D#n4uIoeBAr`l#I*$KqT@#DnQh!bSH1W@5T`%exacEqBs#{^>bXwm; z{3-EIM(Zzn%2Z(gYE>Xe{7UPbjJ@99zmbi37^Y7I)~Pc1F0FU+%y~B8#Tm@YF!i5e zTz*9LHT+gL%`4lezV)~MX6fxYwJT^H)Yt`1VVU!=ey2e5_<$Ld2V(O~F<|pkG5ERr zv+p@uS|7#Y!&E1GrqlLDSue^fvHe5DINTW5S>=`u6e{EMnLZY@j*94qel8kdA}%Hd zisSn&TG4`aMx5R@Vnll6m@>>~ar~8{^^6Bv`MAz%RocYK?`hqYh4<9;y`JFnI310m z;bxu8JG35)@L()HjrF@4>J#EF;`*)W|J6qWe~zoyV)LVJq^Nko-|r~?JkuwITBluW z_k2Exe>XE 7{fCaIqs{nJ!lIFRb&$a+NTF5Tg!;-fj@5VGUg zawBi5n|q)Jrr&~TyeM|6@cXfYG*0wAkn?fOWvqJ}Ub$-L9hwJO^vz#v{#G1<-!ymo zexp3DzVSfIwsvud?-$QAmixy#%<1V!{VCD+hYx+Ra@ dEKqqhUY?P zUBIws12Ws=sb7dacH*nnLmoKD&aO0ljs3 f|3^)NRFO |WgT0CvIjR&pMCGj5Nk3HW@X1}_M<2wnrNf$CPk8F7{XWJ(n_s#8|Jg*k} z!HQ#YdQyBS*8COTq{9cJvj^;NSmFBNLDu{=6L6kwY}BUVLH#S?n``&SAJ pH_Dm z+rY4vvA1wMXRf;N+8Y|z&2qkfah8zc5CoSXytVzd*o8e0;CdcLpF``D2;NHYU4k2v zIulaw!s?`H9LMUJDSprDlBL1D{kh`Zt YqXb~r@WG}ZE=^Bo*Xzo`n)A-wj8j1zT}|LO8;?W zz8v@lCEqR6l?MxxsM=l&FkUtA(cJN8<$>+fB@e8=Rsoi}-&yx=rvlhJuaI7qrvRaX zRD} +!EHfj7k`U*|?- zXM7eytn`(tF?y5-PEw4iy?h4q$$NIK+*79v@|GS)bw;azsL3eM?XU`$sW;kcRu zvsGcazxI6Z=c?R16LE2!2!8GwHmKKDHBj;OsGH`d4lM7W0S>=L=H`GNxU4v
8}e0 zZ=-shR?>yq`K#=f*XY2^xHbIVxjMl1QPTl4wGAOL`?2Mn{xohiwlz66^)5PKUeK~X z-bRPx2X$bMM(mb?c5P_5ULLsNi#D)&P;GFX`tfx9X>AS%)CQ;c>J`^lXmfa=HWVH) zdy{6P4KT6h#6VqbVEdkEgIHp~Xu}dM@NgTUayVOy ;t_txV{V;aBqI&ri&vr;LCxU zAt`+|xc&?p9G{}W)#a&!yJwzm$yap E&=kh*v4#!jn+1yF0WD)!xzmlN#`wZx-}@t_ItxCd%^C)L{9*)Yu;v)S$A@ S2 z)xg!uIdtttygjGn+C(3`JuT>);e5P3L0PF~vKm*HrUpJG3#1NNsX=Ij-s}0sYH)1O z$2e1Us$a?7I>jorRRpDG@|{~ML?HJ1$&-nnMI25lf~?#{Z7&~+Ai&h#WA}9tn1+}= zvpXw-{15V0yjT&0^{ kIr^?~7st~a%vd{Xtc>iuCLH9IO&}>{ZE^>k@?3 -gn*$7E)2r^ zi}ogr?5hf<9r7D94DtR&3)5z3s6x`F!o!~xRN+C)+_ek&s*rmve`;Bq3KYGVVX?A~ z>TcLR6)KRJ-RS=7oeHG>^c%50TLnC>s^6-6q{8*BPyy}e!3wokRUqB{Q>gcO6%N;- z>l|ALr~;n5m#%Qwp~B(4DqLR+6=*mTwC;?L3fJF4g~N}qp66o3W}d4GWSF=eUg4wy z{F6Pe Q z$Hgx>Wh$$1@rw$FZ>hk|w{9;gJCuLxe^?w$8P1#)II5N^!%w4E9>Imm99~9sL9EUV z>xEt)v}$~ebwLb%tPK0|;|HI-tqk6ReHCKYur7$fk(Gh?ft|y`PRV2aP>cGB#yPRd zz~XrLJf_Y8pU2?J%COVqdUwiZe4a%16qz9WeTCnTyZI|aURrzod0%C)k5L`lwp1BX z*7iNXcY~QyIdl2Pog` zjn8NLDl7l?Z!F$Sd9UOvOH<^PFrQ_6{>)@q<=^}m8|Ny+(x}~va-BkueO(&^tytg0 z>77`7R|u(n-iUWpQ2veZUToe>c{)~~DCFurg *MW6cg(GE7pQpSd+kXUq&xC{aLylqo zbg =-x5BTtxv(%&(y(U{TS2l8uPUbK7fCZ>HA4}V!|5}9+~jUgm>(% z9c;dM8s(n}A5Hjaw(kn%uL++`bZCU Flnrk2IasJ|e7!*A!nmkro|$PS&gyyS?8 yR_%e!K|0 z+Zzh69>f0VqE7Is1gfXZy1RFJ&`A-r=zre3;579|4=krH9(qm$Y@Q$jgI^V&BramV z#&^H=>9Pnky)IQfND_hllQxqx$s&&b69EiM8@lk82&5e?m4~O|-=BM`ROK%I-TQS$ zE%&JZWBVfE??1K1&M!*@DK|^?9G;6HBx_EiVU7q2! G^`25qbDN43C?+ z72xmrKKxkELVUev-m6xB7r{>NRXbBk@aLKS@c8pbU*O z@9MLgUNr8A{-%4ha4n5T)GKzZl-*9_6!X(sUwa><@ypox7o5hNR^#-+YS8d>;cVxd zYEXRTXK?m?HL(3LTGAy;4a}cEHqCiO<0AP(&sU}wt3gMQ(*fIR93QE+OgrDA2J(r= zMd}hXuG0R{aIi*09Zsx>cb#LT4(Zo@uHWgW4lGWu4z?|tiD!SRL4nfiia}@S{jhnX z8fb>Q4fd|0^CWR$ne)^2RIlr)v@ x%2 *S-=e`C1C6F|Dhv&uBjK}r3mU~C(=R(C<5E}PZ8Mu zM+(5!S1Q0WrI7KCK3ESLS$D8(qyn(|eg)8VTY0wnyF6qc-LTX(MIP9?0GekizNo75 z8!XS|Px4^-Y53d^C33*_y~X)z*{ xWbQ1mQD?t}#FTz|_9!lpi5_MYevP@+gGwAi6`s zw*+s{pRG|Y4PVT@n?<~&JP2EFLiK?}56ITXQN5qh_)Ri1ETw_1bHTg`r{5!eE(kBg ze`0>O 7|@8D2wu4gr7NVp3=TJ0pli2eH!i~!_=iwo{Z=~*g7l$ z$bRoBp*)ZF!)v>dyLs>gyr0RdXn#CXSFm)GiiLGA+Al9vG|RA;2=hQpz9j&*f1v<^ zLT@kf>co7W__m-|jgr6hC8V!j!JyzlpNk~HQ6)OG-)GAEvFj1-yT`6ml2BlDZr`p9 z%oj3$2SgGoZF{Xyy7LcwiR;ft`i79Y2sW>i1l!lk-Nh0mL4H+_-a6;-_c7~|BwW0_ z?dp_Ml!tVzEVB(wz}NMM)!iM(J06dD%0KL%=aFr~Ym)CLzej$bTo1WEa=qmG%~NW& z24180NAB0L`~J6&_waQ;oaK5d9p4wTj^jEIrhg>W?}YDhKYI8bzFsEZ#pl1ZY;P{a z=QHavtrsCYEBkj=@OdSIgo)jfuzb1gu0jFT2bHfqJ6l#=z~$GN2ju1fn|ITBLgo#b zN2JdpTPG-hXN%n`PcOncB&P090Bn69?q?L(e}C&%0hB)MuAaFU<9#x@jw!LYZ{w7N zM2$1Jzt16G>2+6eU!yPJ^*#;vO=9XeDK1Ff52CjuI!&VMBsx%{7bQIK&w>1Gr*T+U zHDYCafD6^JlD;}b2TR^-@}3iX@f1JO-YOI8WSPI4MEl~9emLo?6l;elQl0P?8SP+0 zYsw=N{V`jwOYumeYYv|7r|f&_A9`q}{|8>*M%;e+txB51g|IGrR-4^?9jw1DjpgZE z$pBjqhjrmk{Hqr&l!4Ug8i~e%R0q!fT@j3HZnwy6d`xxa0liQ6mTs2;&2@#Y`_-sU zo$ZT)_3nN9&1v?Q1-9-D>*FFu4tRT<>g3qI1+u{QU%{5?hmQ63Rm+$750wKWkA3!6 z+^}DHf6b(HJ;gzZ?q3+Stb1Jn#zU7BXhwI*LGH*&R@V)19Rkyz0M{8@c=|EboBA V8-!X#Vit(<2JN*0m|X%uNq= zIaDbC+iy@2GNWcaJvbWc4W~E>EPSxuP;T^?%otkdLFzx)euzr&0DX%Jou&jU@2<2f z+d}<&msbAw1K*WEa7lc-yPOadC#h>T<2n^mzryx+q;UhOgCY9Rj{Q$ot7hUlDW<<9 z&a>{On5?=_^D^7FN^x5k;vhNGd+lU%VMVw=tG4s~_Te3<;_84vuCI?1t&3pmF=@R6nYV2JJUYMG zK6vy!=-Rfc->6nxKft{&M4v%)mvFs3X>I`3|BsHCy!hsDtkd7HKHWnP>;9R)!zK-< zG`y>}7vuMu^Y@ XY8Q2jiMgJS(TQ 8cX5sbIW$Sq7@pQc%rvLbtQ%}sJT$3+BDpZF-^qfJfzdum VVzI&YUN*AlD~C850<={ZY?4CTOY*cVYvTo;}!q*BCPk|`gpPV9qo(D{v9u@ zBUOJJcI_&zgJkkf%ttYKE9R}Zez``4YJ-#ZU|wr>;Ut|<-2dx+qGxC@ABv`~-B9O` zc`v3PGd^xFd;ZB{eEiYd`&RB$PeSykEN)75P^6C-(WP!#VsUqq4Ik>q*(v5)(muRA z_ebT^P57|J_S5h)hI|kO!jn&Wd|>-R^T9ak?#Trr+K-IQYxuyQR5gw#!~f0G5gm(Y z@lvCm-4akNsaJZUlh%h49jx)@k}icNtbgqhn_=33` #BVc|W! Nq-?~))D+8_D)t<%oR+Enj$@~El*?w))g&n nYvc2vt#fT%)4^BJMv!q z?jOBa>5gqSA7E1Cmz(eK=LV|r27JYz(>mPiLMhf?bA6|Y&Wh-?iB6BauhpNMtXK5J zy1ZUbBC{> 2M z?Q2fsYO>xCo!@f1eQ4-28uzof1CDnSY(`i9!tpuRhnw)k`LoS7ZR;W6cpe-#GX2r< zcEGYG@kw}_>3@N@nZF;1^OvU9vz|dXPwMszjM$CyBu*drJ5OTzJm5Tu=?jA6Os>x+ zspBDiAW7Uv@-$bWuHG?3<3++dlR7C PeqhF%+c~1!yT2IFI zUz5g_KL7Ri7o{Pjf98`cUz)d)x;Ii6N9yKCJQx(w(7jX|*XuETuW ysL&*g#b%S_`uv-@K;9!*n#eA_o!y|yaA&eR2gJChZ_J7$De?sr^=9-!r{sip|7 zDWe0%*<*ag?RMUbjkIoebmy-(3(6FK*ZYQKs0ZuJRsvSfgyTA=w{gdEm4NL}fN|Z+ z3!Mvk(>f@^r*|yVF Rg{w4Pg6>Xh3T5OYtTZO=C zX>xj0Ey%U+D{cEj3q~gDeR_9I8`!_Ef%$i)PDc;?-S*zx%r^q z=Nm%XdS3B{$A(bpc*WyHk|CG|)bt-6XUOqOhA?DP^x`#Z4B-K9>DE2&h7k27x2ne^ zLs*(RcxLiYLyq?` qZKHU%_i6)}`FwhkhKB*ykHP>V&&XL VeshTKA><^uTCb!HYNkdXPN5`a}PDdXRYI y zw8SDt2lAKCEp^$3_t#qTeSGo$)qH~;b9BJ3`NQx8dmZQqyfEXowGOcT^K{^p)q3+U z3RwSf)6u@URT~`3?ZhQYw7L3ks{3HqH*M(B+1Nwls5aabi(jj@TN`|S+ rYeH`W_1&eXG`YGp ztS4dWtTiFQKf0G`kS4JB1=X9_TX?oPPS*ss@0cdA`IRPwMbBLB* xQo51Ix?egEaNrGV5SI_zNPp> My>M?nd^S(m^>rK{Y>xP5&2ZtvG9$Aq XR)LUm2<@sE_SBI Oi9P%D#O*qOXR@ zQPBbCO_TSwyreqQ*Jp#}GOEy*!{n>zz!6(f(5#y}psi_p{_GXhv6%X<4wt*41GXc3 zFT0eD_mj9>Q$4Q3^^H)yi(PNx`IvpI4zPU(I*`3TTje+EWQL)o)5k^Xz;>^??9?zF zAbOfYvF(SxOHhwXc5_@mUx({cpgLT8{L6)tr%^tQ!U?}I&nHs-E<*cU%#u;)`#JO_ zB-aVg&-A )TQhk)@rEEWsHtgN-A;6&y&r{;rw!BuG+ox0AmFTd7)f*GE@1g#y zYv wau-A!#S=SG|Jlj3<73rbopqh70adsBDRecAmCo}cOapgJ+z zH%j$EqAL@fx$rP=bvx?LM1LlFG|{Ky?{%~G%Aoo+(X$CJXs@r6{+>fr|0a6)pyXp2 zcT%ZNPIPmkqZ3`7= MY?bI2u0uV=b>6o~c9t-=L?{<#E@s!Cw z5J2 ;R3n0=dWua&X_4l!TM* ! n1?-hOdf_F6p40U zv@pVXk=ZZd{j}rq*Yu+E=k=oF<4XqVar-DeU~@O9Pct#t=6vr-=;!=0H~pHg9`Hg_ zxB3L=!Gq2RE8Z`_d40X2--hLS!1jIVfm3VA{GCyH&~<6Mr)iuXeD+?w>fmlV&!=DM z7j-%VA9pP8n8g`A*syKj?ZfBwVA=8u9}KSP!Oxxnr(^Hx0h>dj2TP*kcP)LX$MIqG zATsxr_Skm4fBsW;A14Gh??ebeMt?p$k_v(4m!e EstrmV zC?2N+?ehm1pE1O7mh*?O{&(uPVe`1OxqJa_uD+)YohNH@7JNjGSl+sp)SFt6zhKHdz;7phTi7vV_U=^Hk<_jS5|6>{eD(>o9j2I+Ep5OO QTWDS0tfM!|a3b?+nMB>NhMG6VJo!i B!4s z_D59TA^og_?nh5?cBK6i&F1s2{Ow2UPHbK%^011} jZdOMh zjUWA#P(NC
uz1JOezuCGD~oTn>lmAq4efFm_ajK1Uj+}afb `E=LiRe{4U#;je2)kRpp=VoUP=!I nMsD$RJauX@=%aR94M^Q{=~CU? RyS|3&BmZf`va|?m z%Bv!rr-cKiR|n0ZzF@X*5&4flFTS=sNO?%a2Tl5tSbl~E#6F$2aK0k-an~kIINsG3 zIYukWZdQ!J`YBTn)P%jm`#p0AMZfvI`+I(Gr~Y-~bKm}c#k2Oun(*hD|AXW U3@c{2W)>gkK?`YxSUHKB=7=0Ro}q*o9Xl8!7bC2 z*%^O%(09w&1w9P3pl^yqW7-hpho1hPmpw%bSbl>R_}P6LG-R(9#ARs Q~4 zCu_7g9;_C)1>O1BO&|Te!-n;g4$}tT4P)+X(ZoKDdwz)ro@hbSo#Y?K(zPI?mu%ne zMOs{Lrxu8PJKkC=YC)~_i2XH>X+MLrbF%uoHQ1*RlkvdAovtU?zDP}A`zER1KQeix zW=J&hL3889k+U?RJp93(@L`k>#rA 6511r K;_ z%v23B%<3dNeyReSGoT7=UJ=gkPd9Cc_4s=l5hmv|?SF8hIDZ41SA;ywV@*RNZ=(Ki zf2FbiQJmL1<&~T_QojS6*Qf$Sr(o-pI9>=2HLEnz@rBJFpz}BJPhLIn?P232I$yK( zNaR$i?_Aqk5yv}@M`_#l+|H(IoL}MQey3vOPciw3sJAeA*pxR}+GFIYQM2j1O8O89 zSF$i~WJ9SY&I1hBx+mPa*sAyAEzWC9jv@8`5N;%!SJ)GNzABjWDxPv8*?J>#CzyI8 z`iz)*V^6N$NPS157k&DEm7-76j<@%;4(d?W$8Ky==n2G+!RECnf}id9-vxDw+`dl{ zJ~+?pp gcl>8Iw?DAydu=s z#qM$RR)mAIOCqbLD*~HWsmRsO(T~LWk_f+)tq-9d%;b3?x74kNqe~k8UYHzB%0>O- z_x#nqBIKho^%eX(laoaInc00da#oo<5k=URx%64vAIkae+%w}rqAvcPx!*70yB76X zFmvrN>L>J#%!pU;LCzhMPm1G2<;#*C%g~2a>$dCs`kuh%n^Nv9@oTa9N%(&zHx+p| zIqOH=tEJ-+Ss#=2J6Y!w{h4rc$-4C)Uzf>)rG7* !2pPd7#&z(0~YoWz#>Q_t%@OqUIkNdFCU(@CsL*07)?y0h3 zWnlA_l)3(6 ks z!|SI!XR= XF3wzT2a(>wJR&_V(b378QGPPfV z8g%ttyL>_(?IUM%p4EW(9ogI; >6;?_PSO`f`pgI?lW;KE+$9Z8x25YpORGI8U!-(h5_DJfcXuDu(V5&O+Rs7y z7c&z39=lvd`yw+gJZlS7;6Zh7xyl2kJT8YE>o2;awrkGiak=Gmo#(Mp5B=dih|%s%O|g%kUVqISvEXkr*GEHe84wT9v+? z_Cbw)pRsh@M{V%7uG|wQrMd&@M`nHSsDCj2dL3x^<-pS)O!c3d3qA#=1$ J=E zXSw#I3>pH)ibw92fp>&1Uo}Do{I-y( zXh%v{HGzKTDN9#P-7(>Kl zopE0RjlrXTc)=!5V|bQ7;bEGiF`P-rAJ)&x7@~p=GOr1Y;Yhmftb5&!p|o04`1G?B zY-S&j%&eC}+D9vk*LS5{f3cM7E0#j|$j)bhd!!J#;mrEFO;V2cFNK&+!R@>LQmENE zv$%Mo6wJ*s&z=S;gcW@}a lu `GbB2;|*hmen8*D zytXGsbrSG6?Ki($g#=>8%^WkcSOP`wW|?2gmcY=4_DQ=A;O&~N8|TI2?R(<0j_dLE zjdOK6%kci%byMfemVno6g~xeb5(rkhdT6bS1nj4@7~CC*=atK7-fe-;b8J?wpS}bt zGS1vNs4C(3i(*JRI{vThvzX((ia9>57<|3_o1d47LFJ^g`@SOdQTSd^s5p(jirkdo zE$P%}aYifV>E{?Rbm;G_KNv0skR`t!zeEf%R)lf@t$cJ8asSTSU$ zP8=QSC m2T41T*I^SrgRH z2;7Gm{M;@wg4&WcolHd|E*HQMJam_ydGo>$YLlJs$lWo7pA`<9RL&bhln3vS$x%aK z$64yvX#5~|XY@itkT?Dn8?Q!5%*Xe;Yta z#lF_btp*U9d%?-O)_}_iFaSZ_7>hxL22go*{yMu11Gu30L|vF<07_}%ZpxbsU~2!M z_Fu~lz-e`L^o!Z(_h5We2Egl{dn{vw0kC;62GAJ4 bM93hurc1mMr4>&P0&3Wkg4G z1oeTGKEAL`;E!C7h!CHbo+8*@?NgHCg1nEl+FR!g5`oX7_Rr#8IG$KPnflB?1cgx- zukO(hLC~{QOV4g15ZFd0sI}{JJYRia`v)lh }Pw!Y=I< z)TJRGqVsN8|mXYp>Ua=|j1r(%dzR^?{xL^|^YJK0G+T?96;OeQ-4{ z`}lh}<%g*3Hn(-`Mg1jg4y`^s6L+7apsWvGvC|Uw$?3zLFJ~WGwF|lWmk^3d{X9Hh z3W444;on_tf*0PU<7~y@ NY92+69byy+9e^D6{Y9Zw6uR<=T zfcjZxu6sMpu_xu7u=P$ohyiK0?Vt3x{U+*B0}J{FH0VLSe`e#Ar+Of+TlUMUigHod zJ{0PI@vv%%FD}pn)}M%aS=615)mg|%IeqEm RQgZ4&g}_R9E!6d(lTE z*5mqgkni$l(13J4o`1zE nm+4~?K>mn7gZF0P zdV|xIiz|nkKRrryXQD$BU7FqRP+#G}Eep%nBvU=RW>v@M!+Qjf$v;t8yqoIZL=PwW zIMK@qABX7aL|-R*JJH|Ck?8Y8umA6n_@MrG$NxT#tt*Sb<>G4oep?*>797moHb4Yy zKQ0~rs_SOmaJ3hK0-XNaXQ&9+ylfFvOf-Jn!%+lmJ&OA1+D&YXvqp-*bo09DJ4T`J zj>%;af#FYB?B*tdCgpQ3vI#i;GW!q_g!D=M_RvcN4#PF?o|ug1XYyQd+}086jrYUz za^o|rZ{hiv{wo~cnfw q*BLl%%;QkJt{Ty_#I+(|^S(vkt+x85el$LA zz5SP(SbW`If5|895J9zWWA4b^_ Th_x&I1P+Wr?^v8WE%n?cH~2 zz6h*l@?VIHMBrs>((Bq)5riw+u9{PZ_p=h2>fFP5i0KCt!Plsn)7+j@e wH~F#+e@2CLF#Q|LTvGh<5DltuXWZ(SFZuEM{^o$S?rg8}$I z4BwKl&48=(8~j^0n|G9UFU~fA(T;m&8(c8pIQIr1j_@n0xNpGa0~tX4BDb7nEe8L5 zok^;*M)s69 zGQp7gKovAh>g9$Q!iS)FI)la-Le-U1u8SudLXq(Ex{Nu7 zFjO|(qjCk_w!S6%xe@>WW=bMI(GXe>z3bNhh#|K>Gz1}E{ndi&=tGUX`7!K~A%wkK z*SVz$|8DVm^W_FZF8>I9sEj^q`0u*eydr%4o|eM~nc@4)tsltugUtKH_gTBH|F+C@ zeXeg%A8fs6J>8~-^Xg9@ B3IX1&0xNihVS7 zx&8s_Lty)^k&m#;^ oek`p`IE z8QBNkYS(mL^@sYgYFZkqClykDNKTvCaFvyqe|G!%^?Fa-S8_gYw*Lro&nio1>3>7L z;ZjS{&1#x+R@|}mRQD9*H@S2hv1c9n7Z^US7DPHbW*!)=1*1niuQj$t|H9`(S;;)) zFL`X!mH&bM^PJGAMK7rSLGsMp8ne^a@8-dZqi@DkuBH2FqC4dO?5>+QnCdKnj=b7m zsyy)KUG|awp!sDi=Nt8hR-XErB2B1Y++>-UiM|Gg1BtvMh9^#WLh*-0V>11aD-=EK zK!zLYL;9N%_6*U4mNR!Y#aL>By^Hqh)q3cEU^w!~3*tCFpLJ(g%HC?gGPSRhe jHHk`U=U}NWZ*&wAFhxZXbj7pv9ho!w=LTr*uH1-wicL zST{%d_q-Y`AGG`Wfo#k<`*b}J4r9Jq)>p-sd$67~TXtf7oEpg19@^YvBmRAlVZgT4 zGzZO#<5?uSyy`DMgX)w`Pc6;9jidQ!fe$Ww-FBdQCgEQY-XYO@0x!Qky-G~=PtwQB z*S(|LUyJs)5`PG(gOvtnulvwl4cPHg?VpZH_! NA#ChK^s+Ro(btw$*|8WZ4l7cl_Vb6;wz;(7kMAZ`$BYI^1l7c znd9D9q6d@w6xsaS4Y>id{>SF7t8sk<=(9Pv#jYSmjT`^*?{}XS#HXSUNBfjcTPCd& zN)L~_pM4p1WKK`^@An~YQ8j*Fo+z8-yu$l!u(;IThIx5qKZM?$YX5Td$oCJ74;u6| zMgNbLa+}Qn%;U2Qx$5hTx4FJ*7~?kgjK4ax<;t(Pyqx-nNMFvMFV@Me8JOqi*Oc+A zfad%;>^}1I&r|%p%*q=6 %BML1lIj|a$qKZo2+hL=sbU-Q?Wn^#ar`C%ldhv?kP zY!4nf#77>@Fy$4uO)ytyREWzr)Vm3vhRtI@-WpTCq4m$gm@f8d8 {0Uke~Vt+l=% fNYiwBes#r8*1o)h6Usf}I!Z21D}FDKkcTOWB{&AXJF#P%&Br_!u%X{ZhQ>rdSb z-!h30PK}!?<5u&bQs^v;PvrxfL(T{BTUCYdH+*3EFUZp@8++N&Ru|YDHR^Ya8T2M- zOA{YT rY}%daz+%%l7zwttfP=l^k{I9_FG&*tWGk {U_;21c z&X3lqN!>bc=MTmC&++|jUVZp@o)$QK6hD0$hdHTCofJ8Y9FK|R=+kuq;V!y ~9}W;DMK)ZtId|JYe%Sc);?P@yO)hV7}?q*Wa{%YJ#EW^sO1sHNkyGm3Yt< z>f_KTo?c=Shjso%()g66xGrGwNN8Uj%b(T+*O@yf{Y9=HneWR-xYw<3pu9ceTOc`I zzP xmo9DWwC;DHw@rLD+Q{N+*r~CG~7i+nY z=39|m+?kV;tF^Ugz9^fYtOlQl%k3$ >4&gRKjqk4dRRbGjV* zCJ#DxAO8{g8v{0XIMk^Cn>VcjM9(6=D7GI=1?rAS(_`Y%SFyj~p5J=B&2W9GkCNSw z(mqgj->bs$evwnf`6@}i=s({U(>F$W6!EFm_Yb{OhJyv3*=7yY_f_(4+}!^6kT25x z_K5R0ki%>=TI^VaKC;0#I ab< q8i04g;?Q+qD=9zBPoFp)HL|@#Q9(6E`@>EF9 zDakF9S8N&C*@yBrh<|QHW0yT{mXzB?_+2C)l^h#O^qNy-$o2X^Jd($eBRMZQlIJDY zK{z1fI>~jD*FiWjq;HtKZj$Rt-WTF~B|I{c|4Mv;gtOhybfcg1Eb0^N+B<2-;f0iE zCS4i$zH2D`{D^;$e7@xKCLA LteW=x6ODLU0xo&I@Jo**+8=A^i z zII6iYqg{>bv&Ho%w;m;2KC+J@dN=VwviTM0TjO+ZHg^Kop-jGnIymg#b}B}Z=28>> zPy5lS<9hd}d7s2bPu7)$he~*=WIajzk%aR~xUjifii77opq!vAb#If9ZyLbngwcJk zkS8ozWQBQ*&y9NcJL10ixXE~L56a(V^WP}Pw{ZXCx=)8FACd5a*<1x&H=bQ;IPAM7 zko|kc-JIPQWISk^<~eco5IV23`B~V{P P>^h(WRlDb hCDG}l8aE_V z=VE;;`v2 kGlUqPe+e$1WpypeC2m zO<&CAs){*IrWgX(Zp^hGD*-mIPy+EO)_wuuQtop!hI*&W3nrCjkU8At{qa0ADB8O! z_}D%(5RD${V7Sf<*nS@~u>9*|waL{CSgw*8R0O6J)bY)LXQaRU%5PKfdAzUpkw#N! zesf}w+#OT6?mltnqg+!sc)tB@)_zk6m!>#HZZw6AS5 8* zR++&3OB;JE_cwuz=4(~F@g~rqC7+%%*o5OFnQ$Cgd_2ROm4Up}LsPd!1~tD6*Bq~w z!O15^O+&89;Et;Bz^F4aXdSNY AHr(LHpxF=+NG<# f#;3k>S+G=%1mR(+8(tzZ?7>VRDIUn8-xA^CU?#lvJ3q;*8~|u zgLgpSfGNfhFz&}LWmjWp9I^e%OMAR+Z~U>K7vAn$DB3PUzXZc+H-_*EMIGzEQgAis zw==vA{R|7IsNQ)gh2B~^HHiy%m_DU1#dRabYDa(s0uI91FJ54DkU{Zmqor!M7k z0r5Kad>vjOCk4L)zg^~hmB8n}`;z0DB@jK+?nCY~2?(z|82+?U0;eU5cXve|h4TjG zw-)CmAR97dYxyY&$bX%0y&zozjVF`uDesX0yDyP&xtbCX#khOcuat1SbIPk|)v{i3 zY?9>P@1w5i$>+Nu0dM!dHnZ%|UvWNq>DOKoj$4jgjMt?OiMrHxQCDJp+*Dq|<@)09 z%(=@A$2Kv9_(dGL(IkfG&|hoEK1W|hLg>`{4=Lw@oj1f>-mn;!oY*z*X||ZlCl+&g zU1F%5>ND6QQ4B2iTg-93#avFZn9EVd$1yp}Vki;z(K4AOhWW1_#HIR(xqN3ac=Q@> zuzs|d%dJN4#?sTL0tSg8tabJEdws N;LDDEM8>M_a?DkS>~YKGz8w|;D2(4Xor6>8Ubn~cy` zVh$gb_^AIlUAi5wg8mX;`%Hc}Lr_~)5S8)+^`)J*v!rdv137VaSY{K|nVNSz*p*R* zdehVpRiitU8&d!AlAOjx1CF;tIU+R^jxSn$2 YDa8YJ%)|fRI{miQAOFwz^{G#V 2;al5olxM>7g+yGA zv `&xj(4imUMB8O-KFpci`j8X;dE#zNIvAP!j64 zlg2o%*@-zgyRysAY{SQi-xq#~5pn%URCgshEV~atotNP$;p3f_Cz~zD$4AzfOkXU5 z{7b{mCM=-(u4(e5uCL}${rAremwcEZ0=v8ibwR$A-;xpE(&xN4)scy=Omyb_thp+V z 2 Q9YgL z>-?!!&(7J1VBPWVj@SCpV{=E{p~}8AKZxWA74F$N_g!!F8U0@#$>Yh9oSz)Y^ONgg z^&9k~RgQc&^bq9%vHJ=mVC&lGQ)BY~jJUol9OrHgZQ6dy2-uuF9M>40xDhnDExTuY z&Inx8Rh>T+;<(7<3mQSS&9~2~#prAMwqtJ4RXi`FBjNcNPN)&r$A#x%_*O;`p|MzV zew7h~Z0u`n_5>e4^7fuj&y0Z0(=&q7UgIw=Xu`*(soyn!X9W40_v>DN#OEDwe%tPE zIQ}wyzj!@NUgG~4x0!w)F}E)gb9xv0`E+}pIIAXx2J^KWwrC<(iK)wrLFxC_ie3US z*H0$q>hxkjQ_6EqV=;W5RM~B|Db6o~1) xqTGQo4ZGkcz}LFR<9ESTjv)8n;#*D`13Do z9B1JC7iBj%BtQ%T_pSR*&O=|Le*KSzU@;tQvYo28LJWPC40@KW#`*Kn(s_R)#Na;h zeW3X!G1RYkq*D`%^X%SB*Eh%Gd6}FIF__2aU4D{+_Y1hD9DW$*SthST4D9|6=UIj? zFNU_fKSR0~ pYVNTbWVKz9RDh~QOBpcrv$>T)a_{0lmN>klK|_drt1z?XFzV&qdEHR z!z7?^vDsnCC<%N$xWK=~9oIY2A2tO{m4Nt$e8=Pf3HWx?pFcKO0---=M!Z-^eWR9o zSH2&>bqc#r6@$22$o-^4_ !bXH1d7{K*0m*=Yq zaGd{;pZwwh^_!6K$mgnf{9P3h#K+26kH4!AKXa{J@^;{H+xkuwPxSSbN#DB)^#A36 z5#Jrj{R(xPxa9Oe^u?X1RZs0I{Ks!1`>^!=o9q?mQ-7GYqkii2p2%Ig68G-s6XaMN z8M|WbN#t z{kJ@WJQ$wJq+Ye7Lo(yWO~S%*|qQdnpenOEvfH=OKJ( zXbxI*Q^<$B6(hHA|4I2gBo`~HcIBMxROH*-JWw)q9ddN$v=#oCMRP1jp2KLlwfsY> zIvj73@?uEN2jQ=<`xx{o)aA~zT}E@OSl+5O5Zxy3Rg%JDEp2d{)b4twQ;W;@MPL2C zu4;n&TF|=ibeuzx7SuWVD$hAa>jB ?+l;fAYq7iz~l*&@weil+(%s`?lxmho53y!p`kr z^lh3G6}xPLADl!ztMJkX;}q {Be8~&1WKg6ZK>4U$!nle+Bcq z)&w@66S)!#ORkE&H6ip(?31nIHG$3Xq+AK&w;(x8Y|b$CUrgQBSY0FgA9)(>_WXrH zO{m?tTK=?-CN~~oAMbdB2s2gc)3{ppCNZHqKCZ_&@vScC>-bhPy6uk!*!Op+GWmtR z4M} PYgQ$T4Bk^>b5R)AN$&A maX-yiW4EyN=8` z@f-7~%DqiDK9a-Fff;8p?~3b>Zb@ygw^gC~7n{$j2_*N5 cd_Tzdg?xWV&X=O$80#I&u%4J6!Iy>6e6V_7jcACa z+!B&2*4!!6dwiJoBk!I2+@vWFAIJ1HQ2jbkFEHNgz9xJ)tv>O}Q%xYhlR&GX12RA2 z-#HyoO)1}VMRy($T|56xpJkv=`+v5ZelP!I!-G?cZkkVY!2Fmw#m0wSc_5m8&hQ)N zw^eza)EhOM>fO)2mYjSZ&I7B|I%jDt&583*176xu9uU3L#=R_D1@&)I=On% gz=cC_u$2BzZqH(JZ$fhMN726Fw=c)_ (uVAJBqn|Ki-F}FZdt1eVl&Fa+tM% (PE|2J33W&j(SRJS)_HC!DSS z;fQt8aC!fSUfLYT81?hb_q(iKhul!64+ptnPB$DhPte>ZlEXy$mk3XkaCIt ax8$neyH`=Y@V~zK8im7jg}kwP3yVqE74k z?l^y4T6KP&1na8|{}=Nf87?~Qf2y~=BF9hU1L5e^PhI4CsS?aO=IBD)^y; I4TL3=6+r(ip)aP8CdSvL>D)e19RnIm3Mf QcR$zE>NxQ@Ij1&2|(YiLfWgPfQ1$xrA5&%Zo&(rM&| zMI5lKUW~b(On dK~2$vUODY{;?c- z^e^uBJbKmx`AQY<;)l!l(CU9bKmR*^K1}Wi=1Qe#)P^3y94n{!k8iA^pEIeW$16tb zPw1laFQ<$67hUsY8$A*+r;_1hW6ovI5$=3<%&~0jc-Ycg`(GWOaFznzK3!r`N&D-P zWNT;5-c5ZX?IjE1qJ60!LA l^1PK`3b!zMxTACL30?Z6}_T6-Xgbm=y*r@$C@BmI=VysI-QqE zej>?BjL-Z0{ukyWl6jZ#n$AArcg-8C2{w05^obpcye3Y+Ve_>$f#emE@t@2WWd6zO zTo);QtiknP(fmN7AEgv|PyKcnbF5ZIckbScxr1wWba9Tu``KMS+!%@eq>mp)Zd!?X ze@y;3`k6FWnw_7a!R?RG|IjGOc;QO<9^OIUu5{Q@?gyKTt^vd!LAX%FCqevJgddVN z*>Q2%3(8q$Il0vD$ntV2kD0CGQQsr+RcJK-vAR8z`o{>zB=Rggxj9sw>))a}pZM9m z%g2T2$7pv;>7%L6)$`Q<`PB%IYMI|~wNdZX{^e*89tFwk`ll<(?^jN|LVc2?pO$bd z@^WW9RXRrf97La#A9JkY*KW#bAwEjt_aJ^smh+1_9vutPmaS0(dAs`-nXAx8x!msD z^W~KHLh?)4{xZtVin0ov91(=RP0oi&e1KmSBQh)eF-Q78$Lq)X2EUz&{=fem|9d}j zo1BlFpFAJoc9H8L*GKePa{a`INPMG&^Fi{hiLOihiO$!Tz7E`uub=B*CO%Z+S0w&a z;#(xXRr0x9t mn|ifZu11JI?Z;@q6r1Ft~Op^3wKg z-ZOZuIuQMt_#esdf~^Ok?#$G`(RXCo`u=0NIuQS`-?J4yes8Eg&A%BjtEmh1EhSaH z?XRJUzwb##21f;$Q&a1uU@u0#Ia8n4;P}?~doFY8d_G76>i(o{m@`}hh(D6#-i1%7 z&G|45bHzE%&-MA|ecKjMpXAUtui^1}%=_f>L MM*Wq8__0%51=Pn+`0!+3thVO&uk?jl zFurG6!K{tQEo{=Qw%&(1&?^gfww|V3LpLXJhHo8miu$Rg$bF~!I?0tLdDFautr{Dr zY6Iy<@EAUO>FynLy;w5BOl4asa#@|XJW*`G^&{8UK=L$uFWl4C%O3Uib&Gbd^P#%? z^+^z}mqc?ci$0usy!J88rzCX@r{X8kuZQ9~=9$P{=JLY{PkD5f%c=5vd{A`q z7?S&q5AF6Rx~(_R1vUpv7lNN}?57@#`R2{;_w)8r&NRz)(S@vX50fP#0mqXOz!IG? z@0`MDUmM|QAMx+zrm9Z+1*J#ZRBTq`x{u>}?wxwzg;q26*K<71io}ikWBri3xxjma zEJX-bheHk@ek$ZRe%NnncOY@%OntC-s_3#j1N&P~yB=TtLH}Q$EXyII{kXN=Ce~V- z8$d&uW yr+; zSE~ZCj=A~7gZYAKuS<51McsC}+{i!Yr695qw)7l?y7Rg!*Qz_H zCl^`A$i>LG^}Y$TY%M!&INcIh4xlAO@twQPmso-*FY%Y6yd}tGg*r*zSb$B($HzJ4 z791Dd0_s|qPMnZn0U7VqqaKD>Kyb^c{K?ZSAZqxFfs?=j_U_dGYYr?A!5lK%{sikzF^A|WM{c%) zIk21;bBNuz;iiVBIpjEB44(1B49xvD2beXOLCPx6sUOSD!1rxVT3_@r1mzy>_bwIx zZ_+))YO@(^7`1is%%x_qT{EIZIL!=f;`Rt{jWmPUY=h2UeaxV@#Xzg$LNksdZU!3n z;w{?SOhGPvSf=QiDGa^4c4g5`>T7VTlAZc+z!a(`ciid`X9|8#Z#RlVO~IzXW qFUXe$nLtv7 zOGn&f6R;_g*nf910d~J<0{I{3tBf=?fdd1cq?q$fAZE=dYZV0(DAF6FGOt|*Z3V9H zZZye2=IvH4eJq0`ZZE%g+{D`>LQL)z;_bo8o=1<%xLh0=us&rO6yI$N6|P18!-|t5 zUInB7K|e_C Bt9o?i}Q~&2Kxg^J2fJWVZ*TlNyW>Jxx9P4Ur^03RbOLpC|j}9*4>z^M;b$3 z18nZZ-$&y9B^IgH`21c6Zx53ib2<0M5NWu}uS3}wPWJJh!0UqC3P5&oyA%{Wo}q<= z@+MfHwUnz@A|K*F`U|})Qf{7*LUnn=$@3?rFy3}>t6RDhwA-a&Q}$9{1?%6J!pU9B zmvw|mfz25~PQ~KdXR&jo5Wi*ec@01GUHqEcs6I&w YO0q-P`Z9CH5 z`xW{jn0luKT&3dhk_QrC=UE9vmPn= ckUk2~@k>m@&`{ zb4|*}_^U}IU^t;7;I&W!Y+Vk0Ad?@@+ogv0>;Lh>D@D8?vyMUD29rCFeySyhXH5H! zy3e?aXHKB5!{*H+--4-IiXpk7>yeat)UR~2M+80 ~ZAc>jn`6_<~Rfz6Lcj>o>> z6C=~mKVo`nU(7x+u Z~;Mm7F|d_Wt2?s>`u??qXnl`RErpRwT?CFXr~8 zRNo`|lFRte*UK=c#int|Wyvtq6~pH3s~n8_n1=uIb*K}vzD(31hj^Mj?}O)I`t(qz zWcq@r-e~FUYqb^iM}M1UuUxSh#^0*%?Qej78>SC{>XuILbiaG*pwH#WVWV&!>XSG7 zj6R}{IWTGyE{{~DzLw8UKmF7d(bvN1qd)Hr8t2gs^*p9u3E%e%A3`jDqn N#TXukZkYv`Xzbh6%9LVYzMOQuFVynxri^jlHgIsct(w?i(~rHeynZ(N^^ z=MDUL;`j;Fjk~8Wy?)#Xl8$%{d~wVO0!Q@t{o^R=(hcXYY9FCKooXYa@vaB)`I!Dj zeBEj%LYAfCx@3CPlXWSmGk4k@NKVG*AFI(dbDt6L_rDD|w-;Ym%hj7#_u%ymPO+>^ zGU9TZ=rO-$d|OK*zHk3I693|VkN>?Nxy|mo=y}QWk>@AZL#~fpFS&m5dJ;cnBrIP* z^-_%!oAn yPVar=kx0?#%GN2kE%m8EEBb zehmF^_xsOTokjg}QNJJkO+1U&&D8VpdM!ee&lKWyGJU=hD9k>!ab$^vtD8yS>ei5p zp0|)klyM|t&mGjKgB-uiLO)*VQ@QR&k0h|Hz4tBuCpb=W{3CvpVe0G#374OR Ise~O|1s(ByGx;EQ@@F+%E( pFig4Ukvc|HbXuW+aHJXabDAb&qJg@=EX=~ z`9TB6NICAR6oSr;UKBi83eR4)^oYgz)Lm^``q4R3(Aaf#tNkJ=RO)uDxVHl5Th1p- z=H*Q9%XcH=q>$G?ru&XWDHLl=9G04b{zaEl*JMX=zFpJP_2el!-_LiLbkz2;6sF2* zZe`z+!k@D@Q%~QQ!iPPsS1g`Np>FNn#>0)6yT$b5Nx|#qk6W=F_`HKOhD3BV<~a3q z9b(?8vi7>f7&=?V#APA>s`5$n{`i5$&?cVz _8Ubz`_{o=+@Z1+3b z`H2*|K0BKF@Q@Vh`>mWfX#rkG^G?SiJG_p}AiW*k&=1V$I1;EzF!-_wzeh5i9m9>6 z;^#Qp%sSTzKet{@=LYEDK7-Nis4pU_>y4J0U1B&Rmt%KeKJ|C79Afkpd}!`t*FwjW zwu8OzEtq5kL5(%nC#xAjSk3XtcDE?+AgRCVjx%5gX~_rryZto)$njZOTa0|9UNb(8 zi!^{RuQ;VVCj(&nAdqjy^h;1b7Rj{=`nddFh6McuO#hKS$Dh`REM<-C#T)b?`F7K0 zrwRH{)T)&7(*St}s(sGnv +(~%$2--{+TeO mN)m zs5aPCHI;22g}2Msd=D5z{SA$RFLCY2cV_+B+T1<_^ZJ-PSFF3-oV4T9Ys!U|HyhqL z^$v2O`?z-LSwj0TNk8m|DNo+Cq*5P*OZbd3!x+>HU!POVS&M)FYx8>G3N3J%w?%e) zo)(b)+Q8I}S$uzF25;yYl8pEg-t1;w|3wLR(rtiYY$!X}bybWei@X_|rfO2nVsg z-umHHbuB1VG1@HdiT(;^9MJ+f9rL(~P9C>!q4g<`ti|gtze7HC^yW(SChQZ|DlPVS zN$XgIUmdm}(^RdB2OBz?v?t!9ehhY8L+ rdpt TZ;Q3!`Ectx~{U5e150voe5p`{V;4}|NAM^j|kvxu^hn!cK zG*GqeEY*cc{|mV;a-B-y7y8b>i0{L;-il7e$k|}_aXj!p%P;tJjR%(3Vz-x-@*sAT zNw>suyxvhItNbePyh_tr%^%P_NTP3b?dtI+td8=@KfkF``t}B2ukxkyN8aQ65fO2F z)@L3lrU!;;cJTiBV9ejz)hy|z1@4zd%CwZUAatkKl5-l^*E?r+(PUlv`M0UA_ezmz zaa=?#Sfbl%TH2p-&)N9_zdzo&>sF1`g0!vb3V%JZ&dBL> )+b= &_)hmfEPB@+ _C z`%n!Wx5AJA+$_-ng}pIHw)CeyE4IEubIM45jjfH(-Ffjka56jUtosoh7ki!EJ+P4K zvL~zh{`y`|bJ<948_9JOwv^kCu%mrTUA nw84Nvv&vT0pYrl9Hxe$oyo!jG*^kOGwMNny Vvyf<)YmeeHgUeboUh_^j&lQXf{Vi1Z=*H2(BAzN#;I9Ke@-P#YM_= zoe_M__GIHK5p?i;BfQN-aOQqx?5P^$6?)Vw-`j?~!U4l>K62KFxX?F6SAGk@&frCB zLZJ{c9=d)V5`yc7cirsD2MB@9CqeF=gI`e61 w*u-NlRL~=|a#azOv<0K4=_o zd@(+c4}~*x@|JJo!_Qk8rd#KtUooNi!R8U@^I&qH`9N}LqvWKgC)MKj`RQXD%k$WO zH#g7o(_S6$`x3vRFckd h8Q8CZ`Pxx3qODdW-Y+iICSHA0qFU zsT0!i>EF0T#xqWDN#gn$$$b0&moJg@SH{g)eZFFp`+f__2kAM+MF zQ2!cl)6@Hw{m{2I>x* ^9pPNy;qbZRt!=$fJ@d+sm0uK`{+jejOr zP)-HQ(M8?#i*|O$P4s2FJXkHhL3uKyAGqpLq1n>QR5v9YE4I#uJ`UIKI(Zi~z&W`x z^vZb+F83I@Rf9J=JS(6_!o~Q%J(BaVdCK&8$n%oxAlF6oU2@&zbr4Ptd7X()A2by3 zb(35e)(5WvMf~5snRh8qhxNr{-nQG6SAD8AxIR=3Ao*rQHzphq;`=0iO!E1W&y)Bs z$>&XcmqceKeb&Tp*`QJQ`I83qwX(cq>U$*|AM!mU-^=vOYmv2f)bI2E)n`fix!Xdv z`Ikl_H|5vWvD0EOCyvvxZ=LhHxN0xz+f3bt{w@a{bvmnmRukfD(*_ 700JQ@h8JT%8OC)R(o?bg8D95o;KCR$-3MAd5;AXF41)|*-w!D2JwM)Y<`=% zwTl*z{maajy+>OO>3)as-O2jZPh;fAUDMEau6O3jrTH}HFT>&Iu(w-rzs2$N7S49Q zpnZzY2X_XYduVfyu1858J6VSkA13j?liVNDx1Ma5bpK-j<`L#zJy#uyKDj<0_g#v^ zJXJ2oG;_=DlqLB%pUqXjIP?zH*AGg&byR&vuF;vpxx3WRzwhY0*u#X*k9I02H(vFm z+(E(%BEJ8xWwWPw >V0zV~zox6*!imshv;->}4-<;ksKe_YX*7;g97Vj RTGMEfq9tCs`jNbVK&@C~H-sbqaf__rkgn$5S+18IUVsBWqrDE+Z@nztD_!Sg1F zzUI yG! z{zn~rnW5h8PuRc3>G-5Cm*_J@|6zUQsDEtReJROC0-*9}QUTVVTis6kr=O8P*7x|` zb=Vip=3z-8^xM*1`(vdre_}7!nCHl^U;o8T7wdp*o|Q3_tl#_kb~hQ+Ubowpy$1E$ zW!r`yl*c}L^#|_;WSGE)8SZbsFU9`)uImyzQcy3yGFwlf*a}$gfEBp*J9At$!iwY1 zT5+6PD~M`3|H@u$1%uYOw=L>|$DpvW!dJZ@>eRq*jyHON;n b;o)^esj(1wXwY* zxvt16X;CjIx3axzHnA6%|K1BiCHX_H3wpuVn =#6NT|wdC>+ExDW} zOZeQY&goo;CCAOSguS~Y6>1|aIWD#(RGrw`K2^h#TTfeXdF~d#@~ka@|KXwG?Nb)u za9X8QFUbM|myBE#6k!3|`$cFM1X_UnSXZTW6D&B6H2N2q`~~V;@R&bs{_n5mkQMiG zY`+)g(Dn3O>p5lSF!la>wSBqfTpo-$94Qqq{t{yjiTm!p*IQu@Q47Ns!VGiHr(zC& zuKrYrv@-|$5B60?Qgg1phdzjJFO@xhnt}NK=#a)HGp^sr3~t5n$M!5SgXSU)d7V>c z;58;qIXT%3R;=B7{V4hw>U)~rv0P~e$sbPHO3 G zOH3fKM_JS6924kJ5XhAuF#$GT+yt(6&$k)B#RN>dcXx|lgZu~IH@RbjO&~h2Ouxr0 z6JW 9WpG{_+CsEKu7`W;*irgzzi z`54{C{XMiv2JIKa4>^U&Kzi3P!FRC?#@BV-7!n|Zu#Y#E$4@~&g^wuLcmnlHBt0DP zs&erE!`Zus#q@{oza$|^=cdzinr5bR5|ZRWPDxHlDoK(gq)4BHBuNr-N|KNyNs=Vz zBuSDaNh*~@BuSEFKYP}Cd++PJuiy3i?fuufsyVEgX4ZSH=f3aP%>(I)F*;tRJgDg3 zl;y9-WBcfMAY+ibRYsP__L=Y?{?eY~i1-0!Jwv~Q=z0iw4` ozJ zn8pa?Q=}9>NDo4tf^aIB>n(i##{J1Q$g7YV{K&^lR~PKV4sJi8hWq{7^{9jb)j=38 z4c=d)akEvw4)Bg=#GdQMJ`O+0u03CoF9AMF*0rJ@!*VUoOu8PBRf9T`Xnu))jY$$Q zou#OE`2L(UuL%7TM_a#NLVYH-;Pv_8=#ygRkUGHR%XA>K`-O*cst#0yIIn0wr32ml zwJRSUM?clh K{g3C}@Ym?MbME4Z0^b0QD`Rcey{ja6oDl>Ng8ox6L&||H z+M8-Oj`&ODe1rb-*o(@z>h5L1+1g$_<}TCrq;UINzcT zp0!unYEl0aQ&rw9SC4#*#i3#|-=KaZ>U+fd8`i8cs-#?x{QhxIWu9sS(+`Ba4Fmlh z>xxhxW&I_7PO4){?^1n|IWN|RQ2%4H3v#LNgshi@3*x5#=xQhGo`;ne)~cpyL+Rjp z@u}x1FNDbfp#Mau^wa|NQ=+Fb=jG@}=?gShIjRliQx09oKZLz3d$P6M4pP6Jo6 Ip&MC z*qm{t--Ziy*i%FLYRH!ObUIdCza4;no&UdE@;GEm9-llf*$=W`WIxG%GyY-vy2$G! zej@TdnDE;|Tfd=RE6SswK0I!j B4&-m<8^|xo3 H|H9)O zGuKBy+B4tAG*vu)zpJ|urh&al-xnNo*3t#%r7qVm;PKJ#(ek&weDtM_T0O|#fcn &iB3%d>vUiZsMHl!wH;UG{)8o6R$1}@i$RBcfallS}tu7=by-!~dfIOnrR>Svf z#@mnCzveEk555DMpZwUN3%$CfA?J4MLiCIr{YAKrsIEz@7C)rR`kZxHJ%Rf9ti^tA zH@!%GeoQ|rzAqwu0ehepm}liZq<&Ur?xzcu)ts>5Z*YARzo{x{r0bxOH2=%IZ}|7N zcHXjIy3n(pC*3swxlePxOcNW%V|!h(_iCA(c)SV^?j2qit*OHUPaXGVT82E9 !SHL-amd->%_*>Rm0H7yU(xfH2OOo-%fM5tf&VtC$28{B@Y;#6t^N@I1hTld$VU~ z;^VC=z;io%pG4Qmx?p!he%;X^ynYaIWa;PC>4PqB9Im4VSvem!rRhNPj=u?7!RSk5 zeHBcOQ|Dg~R_n;$w+#v?kBJ 6 zqVS>z`mjX3wb(z!^36z(6zPp3JyAWX$2hL$nox4+ ^}9fZqY$hS(W zLz-<|qVHSmGpgQPP@km+HGWH59V2LOg5Tl?X~Rs_!2XYVs?%UKa1$?l8}(Kds$6V? zi*u;o;7*9dU2z}Pe| piG_7ImdbqsRO2#XREx zzlJ-3l#@XG{Wea~m%>eH-jV1LGjFRe;I<=|89LUEt3kf9{K?NtA1cAjWBx-oU%@`T zC%*T?lawIpuUAOyUd)}2UN$-*SP48iVSD1el~|q})h!73ndDVF#ad>~kyV1)nT|DP z1C_vS(#Ih~Iu(KRK)4ynueka`5lFuunY*NDPk%7t0?o&+(`x>4a39UhdWSvp{2fSr z4zZJmO4_+8!n)pZ8K34+{gC7;QeS>Cy=zM6Ku6OOGT*BzvRpbv_IgC|UoN9sX1~^- zE(HjCW1g_-vjPZHtK{386#nHnWj@=cJbyvwPQpV2)+ao~ze_*aHTaGKfYq(>E3PX5 z$NSQkds#FG;;}Bbb6pDRqjqIe? |x{kUS`x8zH<1PuGSyYLUqEK0fXB zyl~WKs?xn8w;{({L8jwo2 b;yAf9T#by*>k4k zg-5H