From 3469ed4290003a3ab6221f70b2459e3a3030ea0a Mon Sep 17 00:00:00 2001 From: ameera Date: Sun, 8 Nov 2026 10:20:58 +0200 Subject: [PATCH] Release 7.1.1: Automation Hub certification fixes Red Hat's certification review of 7.1.0 asked for these changes: - meta/runtime.yml: require ansible-core 2.16 or newer; Ansible Automation Platform no longer supports ansible-core 2.15. - CI: drop the ansible-core 2.15 sanity job. - tests/config.yml: declare python_requires >=3.10 for modules. - README: add a Support section, Automation Hub installation instructions, and the supported Python versions; remove the "Ansible 2.9+" requirement line. - README: host the Management Proxy diagram in this repository instead of a personal GitHub account, and update the Management Proxy instructions to the ansible_checkpoint_mgmt_proxy_enabled inventory variable from 7.1.0. Also bump galaxy.yml to 7.1.1, add the 7.1.1 changelog section, and clarify the 7.1.0 Management Proxy breaking change entry. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ansible-test.yml | 2 - CHANGELOG.rst | 29 +++++++- README.md | 105 ++++++++++++++++++++++++++--- docs/images/mgmt_proxy.png | Bin 0 -> 40395 bytes galaxy.yml | 2 +- meta/runtime.yml | 2 +- tests/config.yml | 3 + 7 files changed, 127 insertions(+), 16 deletions(-) create mode 100644 docs/images/mgmt_proxy.png create mode 100644 tests/config.yml diff --git a/.github/workflows/ansible-test.yml b/.github/workflows/ansible-test.yml index 59a4d96..6e741bf 100644 --- a/.github/workflows/ansible-test.yml +++ b/.github/workflows/ansible-test.yml @@ -32,8 +32,6 @@ jobs: # Testing against `devel` may fail as new tests are added. # python is the controller version used to install that ansible-core version include: - - ansible: stable-2.15 - python: '3.11' - ansible: stable-2.16 python: '3.12' - ansible: stable-2.17 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 1f5f756..17e3476 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,33 @@ Check_Point.gaia Release Notes .. contents:: Topics +v7.1.1 +====== + +Release Summary +--------------- + +This is release 7.1.1 of ``check_point.gaia``, released on 2026-11-08. It updates the collection for Red Hat Ansible Automation Hub certification; the modules and plugins are unchanged. + +Breaking Changes / Porting Guide +-------------------------------- + +- The collection now requires ansible-core 2.16 or newer (``requires_ansible: '>=2.16.0'``). ansible-core 2.15 is no longer supported by Red Hat Ansible Automation Platform. Users on ansible-core 2.15 must upgrade ansible-core, or keep using version 7.1.0 of the collection. Other users don't need to change anything. + +Minor Changes +------------- + +- README - add a Support section, installation instructions for Red Hat Ansible Automation Hub, and the supported Python versions (3.10 and newer); remove the outdated "Ansible 2.9+" requirement. +- README - host the Management Proxy diagram in the CheckPointSW repository. +- tests/config.yml - declare the supported Python versions for modules (``python_requires: ">=3.10"``). +- CI - stop running sanity tests on ansible-core 2.15. + +Bugfixes +-------- + +- README - update the Management Proxy instructions to use the ``ansible_checkpoint_mgmt_proxy_enabled`` inventory variable introduced in 7.1.0, instead of the removed ``mgmt_proxy enabled=True`` host. + + v7.1.0 ====== @@ -21,7 +48,7 @@ Major Changes Breaking Changes / Porting Guide -------------------------------- -- httpapi - Management Proxy mode is no longer detected by loading ``/etc/ansible/hosts`` (``mgmt_proxy`` host with ``enabled: true``). Set the new inventory variable ``ansible_checkpoint_mgmt_proxy_enabled: true`` instead. +- httpapi - Management Proxy users only: the plugin no longer reads ``/etc/ansible/hosts`` to detect Management Proxy mode, which caused the connection failures in #72 and #76. Replace the ``mgmt_proxy`` host with ``enabled=True`` in ``/etc/ansible/hosts`` with the inventory variable ``ansible_checkpoint_mgmt_proxy_enabled=true``; otherwise the requests are not forwarded to the target gateway and go to the Gaia API of the Management Server itself. Other users don't need to change anything. Minor Changes ------------- diff --git a/README.md b/README.md index 6ed4ada..6a5a7e1 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,69 @@ This is the repository of the gaia collection which can be found here - https:// Installation instructions ------------------------- -Run `ansible-galaxy collection install check_point.gaia` +Red Hat customers should install this certified collection from +[Red Hat Ansible Automation Hub](https://console.redhat.com/ansible/automation-hub/repo/published/check_point/gaia/). + +### Installing from Automation Hub + +Installing from Automation Hub requires an offline token, which you can get from +https://console.redhat.com/ansible/automation-hub/token. Configure Automation Hub as a +Galaxy server in your `ansible.cfg`: + +```ini +[galaxy] +server_list = automation_hub, release_galaxy + +[galaxy_server.automation_hub] +url=https://console.redhat.com/api/automation-hub/content/published/ +auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token + +[galaxy_server.release_galaxy] +url=https://galaxy.ansible.com/ +``` + +Provide the token through an environment variable, so it isn't stored in `ansible.cfg`: + +```bash +export ANSIBLE_GALAXY_SERVER_AUTOMATION_HUB_TOKEN= +``` + +See [Configuring Red Hat automation hub as the primary content source](https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/managing_automation_content/managing-cert-valid-content#proc-configure-automation-hub-server-cli) +for more details. + +### Installing the collection + +Install this collection with the Ansible Galaxy command-line tool: + +```bash +ansible-galaxy collection install check_point.gaia +``` + +You can also include it in a `requirements.yml` file and install it with +`ansible-galaxy collection install -r requirements.yml`: + +```yaml +collections: + - name: check_point.gaia +``` + +To install a specific version, for example 7.1.0: + +```bash +ansible-galaxy collection install check_point.gaia:==7.1.0 +``` + +To upgrade the collection to the latest available version: + +```bash +ansible-galaxy collection install check_point.gaia --upgrade +``` + +See [using Ansible collections](https://docs.ansible.com/ansible/devel/user_guide/collections_using.html) for more details. Requirements ------------ -* Ansible 2.9+ is required. +* The `ansible.netcommon` collection (installed automatically as a dependency). * The Check Point server should have Gaia API engine installed on. More information can be found at [Gaia REST API SK](https://supportcenter.checkpoint.com/supportcenter/portal?action=portlets.SearchResultMainAction&eventSubmit_doGoviewsolutiondetails=&solutionid=sk143612). Usage @@ -164,9 +222,21 @@ This collection follows the Ansible project's [Code of Conduct](https://docs.ansible.com/ansible/devel/community/code_of_conduct.html). Please read and familiarize yourself with this document. +## Support + +As Red Hat Ansible Certified Content, this collection is entitled to support through +Ansible Automation Platform (AAP). Red Hat customers can open a support case using the +**Create issue** button on the top right corner of the collection's page on +[Automation Hub](https://console.redhat.com/ansible/automation-hub/repo/published/check_point/gaia/). + +If the collection was obtained from Galaxy or GitHub, you can open an issue at +https://github.com/CheckPointSW/CheckPointAnsibleGAIACollection/issues. + ## Release notes Release notes are available [here](https://github.com/CheckPointSW/CheckPointAnsibleGAIACollection/blob/master/CHANGELOG.rst). +See the [Red Hat Ansible Automation Platform Life Cycle](https://access.redhat.com/support/policy/updates/ansible-automation-platform) +for the supported ansible-core versions. ## Roadmap @@ -189,7 +259,8 @@ See [COPYING](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text. ## Supported Python versions -- Modules and plugins require Python 2.7 or newer +- Modules and plugins require Python 3.10 or newer. They run on the Ansible controller, so use a + Python version supported by your ansible-core version. # Check Point Ansible Proxy Integration @@ -199,7 +270,7 @@ See [COPYING](https://www.gnu.org/licenses/gpl-3.0.txt) to see the full text. This feature integrating the Proxy API for Check Point Security Gateways through the Management Server. The Proxy API enables the Management Server to forward API requests to designated gateways, eliminating the need to address each gateway individually. - ![image](https://github.com/nilsujma-dev/Check-Point-Ansible-Proxy-Integration/assets/114651180/0a9dc69f-2a64-4511-bb95-01e28f0049af) + ![Management Proxy: the Ansible host sends API requests to the Management Server, which forwards them to the target gateways](https://raw.githubusercontent.com/CheckPointSW/CheckPointAnsibleGAIACollection/master/docs/images/mgmt_proxy.png) @@ -213,17 +284,29 @@ The revised code introduces a significant enhancement – the 'target gateway' o ## How to Use -1. Edit the `hosts` so that it will contain a new section similar to this one: +1. In your inventory, point the hosts at the Management Server, use the management + credentials, and enable Management Proxy mode with `ansible_checkpoint_mgmt_proxy_enabled`: ``` -[check_point_mgmt] -mgmt_proxy enabled=True +[check_point] +%CHECK_POINT_MANAGEMENT_SERVER_IP% +[check_point:vars] +ansible_httpapi_use_ssl=True +ansible_httpapi_validate_certs=False +ansible_user=%CHECK_POINT_MANAGEMENT_USER% +ansible_password=%CHECK_POINT_MANAGEMENT_PASSWORD% +ansible_network_os=check_point.gaia.checkpoint +ansible_checkpoint_mgmt_proxy_enabled=true ``` -2. in the playbook add this var under each task: +2. In the playbook, set the target gateway with `ansible_checkpoint_target`, for a play or under each task: ``` vars: - ansible_checkpoint_target: + ansible_checkpoint_target: ``` -3. in `hosts` change ansible_user and ansible_password to management credintials -3. Follow the standard Ansible playbook execution process with the enhanced Check Point Ansible Collection. +3. Run the playbook as usual. The requests are sent to the Management Server, which forwards them to the target gateway. + +**Upgrading from versions before 7.1.0:** Management Proxy mode is no longer detected from a +`mgmt_proxy enabled=True` host in `/etc/ansible/hosts`. Replace it with the inventory variable +`ansible_checkpoint_mgmt_proxy_enabled=true`. Without it, the requests are not forwarded to the +target gateway: they go to the Gaia API of the inventory host itself (the Management Server). diff --git a/docs/images/mgmt_proxy.png b/docs/images/mgmt_proxy.png new file mode 100644 index 0000000000000000000000000000000000000000..3da16d2dcd9381b186dfec1ff4e8bb8f3779c669 GIT binary patch literal 40395 zcmZU)b95)q6E>PpY+D=Kwry@~=M&rBjcsRRV`C>9+qP}{=KFi!d(J)Q{xNg<^vu-s zboWzLQ}tB1l7b`xEG{ev2nd3-l$Z(#2w?uZodON{eYWWF?Edahu@V(kk`@&uQgX64 zx3Vz<0l`jojboPTGerJnP`j!E$HT?NRk%%}MqQS-twtNRja;7Z#v*S*Q+PuujY0{P zt-BtPnaQ9KWPY(ov!jjpr%QJnGfX4~UOtox8-z_bcBD+vfqvB?3}(LnS> z5Vo&4D06>&e`WqE9qrf{dT;Y%%2GhjgHgg&IRRxor3PFx#3G-Mr??;7eNFW7v$Ke(|$nsmdOam%@0@NNT-n^s`e8-?4>|6c@Q2A&= zZ!=GVx?A?SbDxxXm%gCo6Q+<|UQ24~&PVu1~WxEryu(I+ND=W|=LVUtO=pu%`8c^-8yHRZ` z<@Hh3TFp_cyDsT@oK-b%J9#oaCe1OuF7L%<&cWEl;vpa)Xg0YpZ+bt;%e`6Ccs-r| za@-r-$&X|(_6oH+ErmL8D7{c!1ARz; z%*`UBp@G#i3@lKmjzu3HB4=da)@{Fewj5oqF@01pI_yPr?*0iS6tS_ffok^Js+|0m znA;9kdNDT;?)u+A!KjrqHN(&p`2g&V4<7eV{{6!R5~SGh$b6a2tFXC@kPGU`9-plx zH|{%C`Pn%~BER^T@{k6s`e=$5B46b&M zXNK~cia)y-38C4DnWW|IHT47Rj^*Cg4NLJ**#O-{kw zE3wE5DeUL+dB33yi;P@5e9aE|;)TFRZ1l}IA#e@)Z%q*)++ZM1&(4_r-aYo+E`!Eu z+At9w5USR89`ow9W!K$zaJZh%>smfzV5s0);agT=zyd-3mNnd0WZDgIZjJX)=K2_K zImIAC@FamE=DAU|W{={-a-oM63keGYKJTvl_o7&*gkdq_v@-|Vw{IZpd=6pp9XCWh z%->Cp>rTZx_^cp|P55R8^5R#!3u3rqILfV_@8=X-K5=baw_3lK7zN#7QHeKbRDl2y z0w1#TY+(6>9Y5p6kWiBY~&q}5U@soQWbh}0tTiz`3oP8z>kF0SQBipcwA zr0b_E$OfSu>0*TyUOp-#m;TNy5smw6e}6xPCkyRcr1*a#sbqK`xV}Z!LO}4io`xhU z3gFmxyfCi&j1fr5D%wL-?kIs!^T!UEfhjPNY$_3jdGWYe;=Mcib#Q%Z@%$?7Qw*n|FLc4A!i(|04<>|=h{6txWNgKr68K14NulRhL`v_m zk!3=>t)O*WYcVkTcwO+=kC)6MuxR?_ppcO*0+8HqR~qd2_?<;B z4KE191RY}1cd4&p0wLR628GK1P}B~9AX}xUquXz@4qgeDNEl?h zlp%G-qdez<{eGXo#sBBl|K4fy>s$9UDW=)Z$=eIo{7>)x&tm;|O^j+Ar2LNNzm4{P zZ6JXV07}Un1SOl~KluNj?j8mAb0uZvK>My2TsSNS5iKifV`G!}+}zkdqM;cD^|T>( zsQ($9|3vg`3I%3EmVV#X|9rD|)7<^>ZMxZ~yF$amM=Wh@@;)>%XlO>6O^1V#V;>5Zpdqz=^4WOijV9sXUj)+{T zTJ0#|Fb@U3Kn4rH?;!az<;Vv8G0$@ECFk<#j~~96#~GofmiXw5&^?BNE6MR14D` z0b$VB#JHyVI{G+tpILNgQf{@FflIsVBGD=o)Y{gTzPj}gx8rdY$aQyq=Wy4;8^2T( z>G+cX_E!tQAq{B`qIt-+$+*0_`rrJNU>`yAhGj?2`$LUC`?~d;ysI(6|7O`xIj^H* ze7Wefyb6hLFK3z}>7XKxftaHtvdjJ`I;Otf?jnbv#>Gv5xB8+{FU5ELw#$iz!)gDy zlzEm$@hHAMzD4tuaq$o!h%REbQ0nIz0hq%@5_XYN>?fRu+9YgsD4B-&of;s+z^bbgJX2E~ON49fd9#+FF(uY6PN&U;q@nLdNJ9M9RBp%EJrdW=5Mi+v0O8l_?Tzp7-zoxce2UTPv83g&j za@B`^4{Fdu!g}YQd7l?n4pX|}`)I#O9&Yz`inu(0z29yRb$uVm!(OZ)$0wWrONGvL zX8Yyd*o=+eg~l2WM@oduSStO%N=a@Q;YRyTRr98ZgoMPI*ktm58~Ke5g01-dEVpJm zIrR(FQ;CEJ$7>nHI$$B<@3B}dst2r{d;@?r2yGAE5H;`oSqc)&6eXm7()PSQcGO5{ zdY?^*yq1-+e2Qioo$_}tlaox%#j(eH+4KrN>4kDswI0J+7eHS^Q)gM+%i@xi5>U70 z2j(VXwB4^*mpF-4@w^?-A29g*sIf$x8u00YlojoT;}Qny7crhhMx23=B0F8myO zDfQm9Ej(})In_J*x76snfeEF=naKQV6AEJe?E_215+WGL;p=}6=?sQ9ignlqb8;XG zxFaLDqH}6qnaH9Bp1xgm2Fo&X!J$#e^$cJctUFC{udq_*J&8;$9K9Lc%;c=J$Jo2N zy0T-up;igE?Nw|QvBR3`dq3EFTqLI|4>fjAycNNQ&`qPH;e<6PMH|vo*3y9`59SfX za)eS7Hjs-Al5VgPmEyVS7V;fvB#r)^t(8mE59frU#i&WwJWIyh&Pbv#s9()r>#$!P zaDE#`+o(&I+SrNhm9dGLz}JC7-~rM2*nP!RXnf2ZplW@yhbCA@lLl8+(&bp)Id4Rt=i`aW zs_KZ`LvH_a!~yA2op+PG&+m6r%4%vM2??lRr8p-i-@X&0-)&;9P^NS!r~^v=a921eJ%;hD$DucNa0<>9)1 zTM(&b6R|dYX)?qG?0k1wp>o4X1aR1&=QF>F^1TncP-${JvH#RFJ@C2Awf*1@htyAu zeM%;Fs%~3@lQCKCcl$M>Cuz7fZ^k)foeVJzsaADZOUxIZrSs9Cl40$+DyQtWCGfVB zfoCsa*NG(F+!0W`(;4TqQASh{=|E)Zns3{uCPzovB9HG6#NC$J^{P~FNKQy@Ed}6H z(TP5^z(}1Z1y*k9!z((SAwVy4MuOOmZ4K3|`J;VG=66U7UCdVTLLza8k%V((Q5$g7 zlz=AYwBha%KGSxkH9-;^h|Qy_$M$pMoRo2S%`rG~x0VeJ*AQfxo(#SWd6u@b&w6Pu%%C0>c1j@e!Sm&OyVr1l3 z3XTFJix)UQ)vAT17bYGV^_!p>zfKgF@0SHcZ8_TmbQB8zf$_8FEi6&dR&+HBy zFEtCcxm}o#8|Tx`$S!F9j3^%WYuQWD_c%Zk=sCtwR@)WI!+}B|uajD_pPBs>6m$>P@Vm_75ie;iGfI<1S?}9H;Uw?j{1QC6^s)f2}aWKFkTY0+v_2^Tk>bEB%=z%PHK zuB@pM)n8&*gqtf)U}9h5qxN-JJlJC*imWFMS8GBApTrF_`EWEJE3P7Q&UZ(HrPFJh z48M-RE#d@D<8Q=@&IO`A%K^wNT?Q zM&F#*+4#6o=uNO0MXg%w@Yj)!1Kp;d_R9xrs{7eJ%j=c~HdKpITS8ta>ifOda)!N+qI77ZipR=y5LE*bNStxc0$fBU3Y$4nba2 zX0SFC?93*_Vr#5kRxW#t46C1L&gZ?*3fZyK|6I*C<{6p~umKCtsz{<9N&+%p@Ak5y zE#!gDvxE>$cuEH^RQ;*aKwjIeffQIPrFEqrVsVUHND!SN(jz{?9Rhs|?@HQ7o7F`D z6e@yWFH?1P8(!}h3!ILVQw#x1N8)<6oj5}IIweOm4hx-=o_g2QS2_I;oH2dhe`r?t zUScI18dL1tFAFu*l5Prw`ko(p_@4Kc;Gh6dt4^H$f)f%iYyW8qg`bajwSu3ww`W}E z*QDuR8pu>v2s`astk*+=d{&Dw8|cZ_4$9pRKp0Ton_v`>zk3&KhfM?{1>qKM?ODh9 z`3YJjZszKgOtZrI8lag0lkeEJmrT*C$OPk!`6LtSdh`!8EGnL|_(Mv8^;$r7$?UZy zRBp-SYUf4H4q^mpZmlrxOCq7Hlf@u_X+$#hC_>dLwEK}uzus8m;yn2L`ztq_?@cFQ zZ85o)sY&@Girf&&vPPRT__18!Ss2!aGq1R)h?Ii@69NK{Yi?CrPj@ZP)kPPacr0paFvS76z^+SJ25J^NVG&o;EJ8+4D8qSWgZi`<=Xi$N3gR`PUa%SSsX zgdk>g;Q^&S&Q~oc7*yQfc3lUES&olW*W1BJ#sd);ZcV!=go>l!t{GM{2zx`|ZgQ8jfj2Ko6pWvY%zSGa2m;pF> z#9<8}I0jT;`987ZtN93}917w+qYhltGK=4Y_$JSLng>&2=ON^C#L3M`^0%Loy z?W_yhjX9s?Nahxb&b^gFdN_H@q$(5a}XdJ19%B4ioAxE1idM=`ZG^l7ry zF&O&yV?U#(x^jZs%&9|c?7AUQJ-uHZTH43OWX&$dcIFfX2fDvL?6ds89pU}yzL9hl z7c3ZDr8AkI+ZBugy_AJV`(;~sG~2~5D~C8`Tv{t+n{Pb@X}tD1jxokZTXQjYhm(Ve zv4TPQ@^}-^M9g+@Qgy7Lg1fQgv(X?)2riiI!(wF7*+ZB^GNwSkU2p`4y7gf}LhV`F zt;HbesW*Bv)k0u+I{oD=sGsWcA;~=EqLtrh#p?@PdQ%1cjH~@*F>6u1AE;xy{$SlW zpx1P7l>IR5gEW70(Nm`yI-z%kcKUj13MH#CX@()f2RN;(rjQpcyk4Ua%1cQg@1l%N zAvz}_+78krETh(C5=zujiHrb@IOmc`j zPy*wqd`1)>dD|-yoERFl$I9ynL@Jkm=`{o~@MHev7D*UI$lo@hcjV;$r$_Mf2FcD& z$%;$v2c_Cfa9rfDR-G~CrtiJ{xPhqu#MD;I(C0HT?my;tCe9}zqUmM>L0!Lv#^)hH z{a-Rg?j7Xr%Nae?VdZgszijq-c^?Ksm!>bO6_! zhOpyWi}Qq6wM`-R9A24 z-j+!CzSLgiJg`%V5|{~5u{OV>E1_x_TB@1j_lnc&Nk;dVjn!hAJT_63&?`qR`qRq->h@FVDeUJG(MAl)did3n~frR0uo3pOz-Ufb>oJx$$S0*(n zDGE)I2gCjA&>S5LOZBV^=%U>I@G^=qcHJK87pcw$Ko#o6uwge++Jj)iWnRCf>JQum z<)J=f`WxLpC(prPs?;Y#si2t3;XxhSi)aOU*WJo^z5VNxy3_|^!7BSkjHt>(qMV>y zH+6S6X?T)WoD^cgf`zuM`bF`hHkd-3aE_5;+FzqyS$o#kag!p^PAo-vK#x*oH<93R zPSPHUsda&{U5F5(i=xyBpdetWdP=|!&K&wE*_XQ+d=%HUFQdwB!koTyk^+I%N!^Mk z<;*i>e`vZS2Yt@60)yoXGK4rRY51wl_Cs*KYY%@-i3oOgb^YZB!_%6*pswRV^7EbZ zl;Qj_GglhxL2+@ZxDz$`!h#9V*}StQ!?WxD-w$OS)o47smK*=l4e8Z*^l9f+p?Lcm zec!nF^gtegrQu;dV1#f3uR3Td5&j&z{+ZS<7!3#Z?OMhaogMs|kGWLssk^7UiDXIs0ohF-9 zfVHCu>%go~jToF-(`wytG<$`{&evrJf@}&MGZE&lNAJ?GgDGa7nBk~{Lq9g>Ku*V> zZW+r#B>DB^G$O34@W50Mixu0yM1b5&7;N;Z+_i}o^FSiv7&Px>qn=m@+@3kxK&D=W zYYUJ>N!1wX0v5WM+2y2iYe1TGFW)F-oS8OUmP-|dW}K}&V&>N!%eB#>*veTF3oJ zBa<}63m7NJ{Li-RDvZXRo z-atbm>UBA=mj|<#svflirWWW+X0SWuyI#4%`3AqMO7uwsWy4UAa&s{ju~fk=16^0< z&)X+|BO*PM5!3w6P&9e3gN3UTO21ISj~(iD|1bLqH@g|Dth zNA2QXfKi6j!gz`AsTjWBE$eVW?u8+m;C3ldBIt`v%z^ggU^HIA) z^oRZ1S!dc4l%)L{cNWXJ7uI8|GQd+=N*@{uV=I)D9w}!}C!_{<&!EB``UO9XQ$0hJ z(^|qV3rL`d8zq&5g|u90ny4*f!(18{qX(&Q`RRvI#0IKQ-snVA6+|5?S!9c{g$L3+ zixaCvK_02>y=*=K_}yPf+6Cm%#aXwW=+_BX>k|7wa)PH{uI&wQ=6`c=F~etI#15E! zp^ZL~t@t@zChj9muvw)U^QC)7ZhVZq7eQO|?>kwz;@ov$@vZql z$|EMn#`?Z(b9C;~^dXO_ZO2e9?H9xmnMx-!-@sxT+RwP|GOBD;EzNI=G zz%gc+6>b5$W9proN;Y42qIG>R3oDWtgm!#x*d?37Zt-YSSX@L*OAA+*v}^Az)Acpnmh5n;&3?P&q^s#@4cuEM`De@~PxKh|jD zO+1G!-zS{AfXB?!{!2u3slCvQVL*9pZJrrXgk5SR>$*c9PlwwVW8JVnj$HxfpIjgd zONtd9Tbd1t#j4N{QEO}V>gMOn67ck&rV{a_@e|@M59i{*T&)1k*-z(MdwXy*EVf}8 zX30w}u*{zYJ&6*(s`>tbHi{Rtl>)RCkjqZgUA6ankXi{U@KAO7`1A@qCy z@H6)b(QvBL&a{Rr3JQd*wGT5%MueAbFY0>}ndlNE$1&dnjg{zKxFNv9ISuMh!xqHcG!ki!Tg){aK zZO?MQM~t^i8<8_6Cb4-R;_f8GJBK2E;6Ucpq_C(UXEpzwJwAH- z-YwKs9|}L3j^}8^PDXT+GEEE8<>%X#JyzYu(3Y=8C=MQ2-rr|C0#gHAYbg;k8=kJ* z5BeclxPVm-o}9_iBj0D_$&bs}{re5B(|2!&$GT3cE+D@=ibb30jR>ecwtdo}@h<25 zYSJhW3i3e+UXCpW&YMb$Oyg9<)fW0n{Wp`9Et-J#L7(Hs$RB256%~@e8Wef8sBl?p zk=TOPI#B-N7k?{J*5)QX?WHXpufmu|(WIJ1I%&3NB z{Vy#H-QWx0DhXg`RN7DVe1N3m{fFDA2Uy&BbJlcXYbl#=B0>J2rij%+h(Sz_exTJK z4V8Mm_3Z1x!lPy)5LOWE5nw>FS(p_xi&4O~ULVXPWW+XDl86U?N}{J@11M8XAvfKS zWSuK%t79M!>shx|dW-9xd)m?G(PJpB2ZhfepIKc*N}+jrv-r-~~o zs`qF&`D$`+NDj@#Zy6L8X~1g6j*^|o3M5`pdxhnP^Efka6v)|V@NxWpuhvIdOMRyQ z+vc*a95yrj+|~;eCqi1xcaC&X=6y|W`rLoC^VyQFl{(^yO=&1jpJ7n)N&bHR(eA4A z4ib^j6WxxdoOWFxz1Ecu(62K=gRr}2HlG`297CRNV;qdOx6Z}25&5Y_7YP%W{mOjKWjmt^czjVy9X47LNODjWtJ z+L?hW(79sbW9*LN-eP3VN)f9f3<>}UrIbFY5}5_WN`~u*e#f)zTDUt)l9LzGcs_X5 zRR1ufte*w_8auA>;Xcs`#;$&X6Z%DM_ZhF&6QBWZdSCsW_{FWA#A`)-KkeQusB%l( z@uP>Hg*&%8BW5eR<|w$TZ=Kxrn7la?h5W3cuQ8&$P#-)Z=YlrngToMV$zU`sMc z1UwiVX!ZJWf^T;yN+-bRfXNByN~2`ey275L3pG~Y@p&-0k7L^q8k(6E-E8Ogszy-V z+*CD#{k`KF+Q^0kc;tqL?JqFEDFE?)#Ym{jXI+F{NCDIUq@5~cP+dAk20;8csL$)VbyGr^}8 zvWptJF8EtBXR7iB74;zqCxC?MrW;_X8Z?TMM>FZ=_sW3_T^#X*(jrfHRVI*3>{xwj zRcPK|t5ab?y^Yqhx~uQ22x?*iHulzGRb7>$<4XPOm8R~&B$h71$p7MH{pDvJ+~WLxbz|0RO*T^~mJ{|5-5t2g;qWDJ zoRk>u6_jt8k%g}Kqj$aYcitr>l(sCxPjkIp361KNo(s|?mgGf-s_Ve}DlC8)j2p{y4G5X{p?UN`oodp)Ec{Z-z+4Jdr#))E z`s89d1VhJ06=-m45pc_l&gJ%#w9^Yg6e4u0F}!rk;-|gZJ|s@vTK*gLbQaZHG`{wy zW264-H)fOAwBnXk<1p4EZ0d- ziQc|X!{$X!-{XaKzjMw#yKOhSL}sIZ;4UY#X26lBbPstYOa|RBJU>tJ&+Bz?yFkw0 ziAj*G!*YF{w&wctR>y45j?jrW)SkymNl<{}7pm*ZYFKsbHYYEzfURz{3U9Zvj620}Y>~g(%oo)i85-B9M3p38`HIy!(7I3i>6 zcbX%3y*4m9@KRF#!dt{S=mJCJGEAK-V?AiiZbq47w~_6jzT;-(UZ#!Vf%`z@C#?B; zfSE^5dc7YB&Xr*sARoX^o52ZYz2kC(&NF@VaVh>V{dX^Zt+8mb88xM}q7>Sn=CPZO zZd2*10vK;Yz_Y42{Z~ATOM>pZ#uoIA75-*@n)llnesj zC^wK3P6>f2p>LiwuCs#K-AE5JM{B)ucDOUAq#bOi)kd5IScKNGrg&B@x0QYoM=mHGyGLa;_?J$O&MuSgvzu<|KwnKCc!mb zNosTpc9EgdJc>Ce2Pv10jmD4sjE$L+Z>AvIz*GLKlXICgk0Xg)=fh91gdcuPC|G(< z5RYfwf)@$xvxzDxj`#Y**6h{gbm`Fhi(;#WP%VP;YVY@#rfW6yRgy{vNiJ&H}u-^ux z2^_U(5q?E14%5;>;ZQZLdJX4Z2ezbVq(4&L%DG zn=8UYnn3dtt_VAIIu9mLhxMX^bN{vQFjhuWjapD2IM0A{HrZw3BF2*}auJ`Jm+OBy zCd#?ys4@q`Tu3HOF$-HmJxzC&%|w`(Q;*!B+tg9Gx9kct@8Gqw-?WI^CXj86VxusiA?`3T^5k(Y>I45PmC<0cO9geN)oN3Q z>|rWYl4eoCG8I%G#px8wV3*PVBeJf3HE|*T;nv*TY&Rc{u^&b9ysZAgEqBh2pbY7` zA5F2pRJnjDb}ckqM_XR5bU+No=sOsa=P%mEA8Rh-5<|*|H?NA+qEHGEVj4EA(9fhL2eMK zMoz)P$}5e*ZDxxuyZ=cd7QM-5&o^t;rGlQ9YuWb0C$p&pkOBZr>5(LiMMXQ=&jt&6 zG+N{-1kiMqfbv_xQ_586fP0Tu)S?PX{)R0&N5L@$(%hpkMh>GkUs2%Q zjeMsmEK3Qhg*o^(5Z$Qx3)UsQ6ZVoB^#<>mUAhPygJ9n7!FMu?`@VZ4(u`6&5ph;V zV3}Q-X|*5Jk-f09$9n>!(NebsvP>h#vgP41f!lHZmY$JuC^yG@^7(VVXZi1Q*O0O# zBWsl6GM0f)IKGm>o)<9oY>;r>&z20A1I7=O^wzaPg#CGM&=cFBqbE!b0viCD$>xHD z&w@cp=xdy6C&+jA=4O3F(Ww1j$+#KF{&nRPr*M#d0VfC z@uN0doW>cT)h<@(yPe+k$Gf<>_h|5M!~>2*RTwehAY$RLU(08I7Cj4fQ>a4``hFw! zo;IFE5meL(HVP|BHd2C~H?1g1{IAHA|J4NLn6kVIDj&c9( zZRycXOw<|Nh(J-3LA70~F$f)F=mP(e%>E@DjKl;oHY?Ah4y;NIkk8+~m0hJGXAX?S zOIq@81qo*hzC$`TvT%*LQ0k$FdK4EIUySSpUv*YOGE#gi+ko}zHFGYqt@~dYLJy%3 zU^g^?h?5tL|BiQV3`M-tmEFZf_)1w99{mWD$O4O^naVvn8b9~GkrPc9cX%M2_Fnmp zlawE3qs@iIYyb_M$9=RgQ||SRyqQYgr79Pejr>;KcS83)DZ4C%{2mP&h(B|9;hEiP z6Q8W0P=~0MUWPs0&53c@@_Qm0-rVP-aVMlvVMXjRR?4)cOX9MlP`Xnj09c?+8g0UR z+kRl&ExrXZnIMoFyZ9D7`M>62yFDD?O|QQ-||tL&Csrc6xWrp zBAE`ngj<7@oe5(@qpHZ4nl7up$PJH)Xh@LY`IEW7&Yo`d>Vl~2%R|f&dpfVMOan2F zTP`$A*L63LoLVqHpY#*SucFmG5ig@LIVDB>Len^0-!1Wwd*VOJ={6K~k8m!CMqlH& zB89&Z#j_Kyru+fviVCVU)z2dAG-wJt`AirO9Lm}_PAY&#nh;g|bAFFj^L z0o~Dln;`d=yeY2NL$#GcY6H>Y;io!x=HiBco_whehJupc*8oq!z{@;hK)TzTb;Hb$K#yASxW*WKvJDqjn4d?y*rNi)J+Ur?pEC-;Z82#NU)T z7vU^jKlM2#-kGmU1;xfvJoN1le+q&>QdFJ9xh@SnvN7nwO(lSmZMpgtPET-W*Ds^TRq3}A5YT;)?pn* z$~xO|Cm|UU|A0*&1gJ}|5-(w*8jzFp@9zv5l@uPk6q3v?OQTglQl#}MF4NOnkvYFo z{w+oY2a#9|69Y5AFQczgs}+=czD9}!i|1p^iYw`C8njCM?nsqw^d`peugwiAJijS6 z&R?dkZ0049YPQ+bD$Upf+9j=RvKcBU?1id=LBctzoH4CVlr_}W2F!ApfS#+wkvVv% zvqWBTfEhTM>!z6Mk4aoPlt76`*@FmDi?sU+&Jh^k1*)A@OSCo%>xi!V4nbYilwuXAnwD1MHV(fcN3 z_6>IX|6UHX z6luye00}6DjIN6(*@m|^mBrIJa$-Qq-!j`fjJrV5EQkIK%_Jhs z4@!>AKhka^oY$|}ZE)>&zsg}lh+w_cb}sF$`pZ&Ze^S{!E`>}U5%XtvfsLn&%XL?d zjc^^#(YLKf=cxBjD8b-H9;`g~u7mpIpZg@!1|MmihZ0yc%KLImX0Y>T}Kd78weZ_91t6;3&sRs8g=bEy);)*gL z-dE|bQ;PsX#?x-CsOgXqskfDxu#K8Cj+9z^$~91>CtD}3&Mh?RyugCOoCvfAmg%&j zqCy_T0Ek9R&h4kxI6_(FwVdVF&aMg67j2+B=944}O$`=KLG+)a6=&&fRfnZ(gP2RPFOiB_2$Igl1NVOWocsw zE#6NTKso0Wdc6ogwjVREJLLysGxmo5i9;S#yWXa&V#tfU6c>h8X!fhMfu*X766}HN zgz_@j_F}F30*znCr|M(zDaeuF)#2s*-zx41DV}rsZ}P$`)tcm+3f3E~!s-TkF%CKb zHmiPSHK)@W*UHFGXM`omID5o-V*1S?c5@!hu$qHGK%rs~-W5gC_A01X*y|pYRL2fm z2$eP>UiX0D<$+_}g*-4q>FYRC3U?li`Y4(O_@gs3qd~g zh+H=}E7H$l7gdRr-c0i(NKr_SmRZq zfm9evB8w$W>AAFi(|SP*j81Ci#2tm`aOr+IiFNC+tj+)G>XfaRW3ah{+)lOjUuBqI zHG{yv7F0Y>()J|qIAer)vIRqcr3Ug}DXva>s+AR=cT_j_RMT?gMb>Idj*@s0L1)jt z$2kD`#+(ZVTG}I?A|#9jgwmpff%(})ls;ctt^B6TbQSVN~O*MG;FcsM_FQvWKV^P&+U)Xtja zq7dKxvMt6Izo0MHnXG=%hSG-PrfWk%J0G9}e@0^bimUV@)7s%z664?GLDyyD#^8^iz# z3ttp!Sw8o@NgZ#(Xg%qJ8z|7QavSOVS98~-V$CSEG;Uj7UP3Q+zzH|eb8wM?a24S5 zd>|wD0~d;8?1%^>g%j^HqYN6AD0Q043{ghl8JGEFWSGm7 z3-$L!vuqNU!uZ_|nEb#LCdqzQi8b9DPhrjC;(tmM;`?0d$HyoX5v#5Dr;X*6hw@dn3G#Ls|mF1q4I~-@zWU0tw!T#^kd%S}H4lyv1rO6-)PIkQe$`(X z;$$~{eW;R6o711Y&p6EaRgsFuY()cF_f<4F((6QBD@NYTJmWF;K&&MNBEK4|3HiN+ z1u4(5VJ%mR?RGh-zLt(k-%JUuUtNQqKxE>*+=6)7DB_a-D$VA z)I*+qUbnjLeEMSvZF+o%8qBw71_1NE`<|S1j6$NG7%Y=tFd0@ho4TS%jG%Ip#q6S= z%EGMr2S=5wV@M0K@jqV*aij!{iFRMzUX;Z@m*qgG5^s&K2V{6SIhD#ExD4f*={twt zmwB>$5FsAHVLcM|;$3>F`eS)O7Own*PiwIL-95t7TsZ!dyJ_H3rPlQ1MoA$JPg5w9 zYJahLmV^(;%vex(zCm{Yc^I0rn;MmNDEr*!^>9|*`LP~65Jm+GoViZ<2qNbd6yUDZg{Jz1-CSNAY~uv}6}_-l@`|fJ1>@P5}o{ci?cYYwNAfx6oI{Pij$L1D=^`}`g)}asR3y-(%W9 zHzLvRLZ4Jl5S(lWQJ??-KmbWZK~&&Sz@dOcfexa81E@QI(At9Oop;{B{d7LPYSkLV z(OA631+3yuwN7dW0;x0uUF1?jG_aQw2#I=|we=JM zHzqd&X~!I7l%2FW^sWlM6W!>M<3}z5wG%aeo#0Twp@2hyj-r4AsM|^DQW|65dh0m6 z_~J`+N<9LPJ@G7#8g(qvGqa50wu+Zwcq47#rhN7Z{`K15amO8Z;?qw*#nVqejXt!$ z>xiH=P=C+P$TCnEshK{jm$P&ZFB9iP6CX z8R6T(J~Pd-BXx}Q&%UqXP5(?hFW639ck0}U%K%ggbAm$whXQ*Q1sp)#j>jnx@5MAq zpEPL_?t9=-oPW{f^xTqWJi5qhN=u*~k2uw_C!dDnjz0;LK70>1UjK8PcG_u}IB_C+ z_3G7oyy31Y|alD!!`oNQ?<{+N0#mOQg7LfXG4v;5lPN=Gofu#qdcm|fT;fPTE_SmI9pjv zd#yi89Eprn7?s4nW6Gr1TiB~|)HXFvN7bb`IV~7;z#v?3;l-4yJ0?95GCBu`0(%7o z96JI7-vkxF7tX`q&5c zqq&M8Os(FARfRN_DMRfna=f#-7iA?~7*aG`?`xz&7M+Jj%2J=Bfl6ikP_WY)P!dWp zw47U)7WW?kE0aEQZW2ezZ(^K4R6#ZBT#j$dk>_fMes+Co=hlLqF1j!6^&>jY)NI!u zsYg!IXU?3-eL0hH+UaK#Y#CuSacfmO@eTzX3hW^iZ~*m3KB(!_r{ho0J%{UV7>83% zI}=(*jUG%@tlXDr#|!xYwIM`GN=ke1utO;x{v)ou^jwS|KOWazcioR{$+l;cGLqIo z>z1uYJw2o-_%f1>i!pC{lCdc@3QH8}MhAmWR6a6dPqJTfnlC^NlvWx5Ro|=~Lj(?% z;MMFU8HE%!ZCZdax`H<6Hoz%b=gMoxMfg7YPbK&Xta#7dw-TEPOG|N4`E2^TOlPbV z?X^W^wW^PGw3n`>j;NF9e0H?r6zujJ{Nz?%pM5q3S=pU%#1SJ+A535DOwQ4vfJ1>j zk^&B({)opWF7yw7_yh9ud*GVuZnOY1YM@q;8bBMXim;}v9zD3{qA#)qlwDnb+dQ2x z_7v`VaRPq-#1lsRD@WZsGg$VdH0q{Fj8Q(~F-)6NiF`ve_||61+TdA=M|2iynj*|H zK>#MOkw{o}s+<@|>>H+buN0o7pd@jzn>*1osjs|mi(5q+Q%sAvRz=wm7b%~I7SP!o z)pFJzShd`YoY+lOI~7{$Xz2vwG_}!f0j1Jd3H8^ckFKZfxk(gBr*pf#ZI5=k=rlI> zON(ArZG6PO_wGcbb1iki!2Ow2tG#MbOD~k&2@VAu3hY4?*t(2s59-9WHg!(LN^Gbv z-PYt=O}BdWYP|pcd${~ayEM4YPDRnNch zQsW5wz4zXWzP;V&g$?ESwrojDIWlWWK5QV8hxg~gDPcuGC`b1kz>N(mxl(P(=1Jr> zXWXvM{OIuB%b$mPGltwLdXyvTkl-84Zv&&((5dodOoKmf0Tt zw$ginQZ&fvyd?G~g*yAI2GQj2v}tU+bQ>`m%%CEKc%=e$oAE+m^Q1c3t+- z+&68q+NHfeH*GA$KVSa`YPI``OZ#SS3D|b~oTEblhXT7d1@;M%??2a0!7smg9Aokh z#rfSvZ}$^fuwXv-SL}j}%uEh|n+IgOU{8z>t7p89l7r5`wI@{J)~9BpWb8;}ahJ5{ z;ZlQVJUuAw*MA_^uU~JpgUuFCc0t>5JT31qOfHy#yJkOcHf6rV-w#C}O@_Z$9uf}d zWqw)bA7dOe1mro1<}*!&+^AV1T_GP`5H@TmGMA6RYo0_DAQ56& zHrpq#jg+tSb{%TB1i#T`M&Gl`w(}^x9jEiQp}l);go*bMV}q@jqIzmbo#yXD6rQ8ss>7h7gqiox6gVOW4n&T zABWw51P}Kl+|E!~P>9T|Y;u+KY6kIuvJ~dFHP3I<~Jq6sO-mNP)c%}(6zEzSn86KwB z(@;rLOwxbLrk1v`s*COU{IkjEp4Sya4j#tan`vc=+K2uuSg-*1-g^%w{bv$sGRz<^wfmw2r>L9p^4;7kemv4ItnP6}C!g3!-mxIj(+>DwXS{EXl6HED;Ed89b47bpfiMeQ)N*0`I^61~O7I(6x6@ zlV)G~qqXJ<6DDBXxN%6No$l4w-hksyI2i*69YCdXYkgVLfST%Rd_Lt9yiYOtxLa?< zn{U2}XP|4UI`SBVeTPs8Qij=~i^Pp}5w?RgL! z3qP&-4=#J>A{1^|hwj~bY%Yz1YOtyV3pTF7z!PppBE_DKyH<$dQ&cr3YzHSQc`~D>yQJIIwJfo4E zUxC_n8@bgQ{qnkE5cUYH=p3J#yI#M5HikBy1XPM{62k(Rlw$%$-Z z-8`+0absCYAzu5(tN7(jHz6)zvnMJh-s{8t_ur2P9(Vw!o%vJTe#brN(X$rLboCvo~<2vFW z54j1~6Ih;I_!{~pb-_=&9=Y8_KK9U~kwMP%!}s6Cp+?g;QX~h)kS_!0k9&d2CUG>2 zum;SKCmZMA|00J^a*GX{O(S9{V*SsD6A^3YMCqj@9SM`VyFlpLx+#4Ug&?V9Tw3?PUj zRS=NKOvam;3YXtUZQ-ueAU+VW-LkRn*>_M`RE8p7HG6AuX(0ly$s<6rkxk_YiBy&V zoWbJuEaq5TvaXfhLl9C@b8S-U`C55Rc|(VO2AfW27u-k}R1)yq} zU9SMMzOeyy)iuW6RvfdqPgSn+HK9n3OF+ChRsv+p@`2Em={kq~=$FwIXNrOqXYcZ#81L(Jk3Th4e6rjHL+H1Jyo_pvh zt4qi=o?$le#~(v(RF8ETzKy3xccg=@t^BKkxv$9gK*R`H}kwrW#=FK~v`*4iE-5B9YQoEGpWBfBgL~7=Fkw`uII=yV}$? z^Sd+;y6WqPF(Uf_yfo|<#LwG=4R5>;|Ij{2JASD7$y`PnzJX2LB%B_Uq-bQ2ONEh3 z(^{#(DJDnjQ{>Gk8kU`^n;fGzGX*~Wr1@(CL8o%^Y}8Mk4?n?hCy#Y?vr@jb0ZEnX;PDdPXNl}T>u$Jv`fX^`_ zjcynz7BAYg$#Cn+7ss@@R75M`mVBkO-}Q3hp>otOP2P%%OHs{s6x38AJvIU9T+>@$ zSP1!ac2m4Au6Do7JRFwU6~mAWALag9QPtY2i@t~Fg{$#>?IzTdtF2=nWiPw01ZlWS z%sc9sG5GbZcN#8UTxr{&iJs;_MpD9?dX_Rh>(!?(p84a8_}ST~aL1?njnkF3d7W#A z0v$ntR)8vTmIevE%z9b(lwb|U;-1=XbE4Oe#}2v%X|Wv0ICyPu5Ex#1*=2a)g%@!D zJ-@+UUwIP}Lv0=e+HZ$luLTk=Jpb%dSh9Gbaju`7oNV9TAxA&8na}S%7IzJ}0O{UD z)Ot3d`n#oA_3J+&e*f-B9Yv0^M=l*WBpMB0vS8a@FS{pa4#ou`omN!OSd1zvIyG%5 zLAZ`i9tgNu=@~{DM{X8h>$hO}k z<`{DlfvLpCA%fmvz4pTa!wy3O^Q@XZ6B}K1@F%8`0}XL)n{E;L4#&mC8KBg=+`D&g zW119X8LB*m^j^M#qG@gjkk0y>ni>hv6fH7sTpWRxX>xLMG>_n9DP-#RkQ-0ROgClf zJMnXp6w(?p(5R3hVTe;j*qN+Y->Z?hp#JLKh$RwVXKdJ;rV2^K{as9#fP_CFOE%WINR0%9GN z)m4ZiC(Dk~Nj?FD170b$m=hC|(23mrI&vf-0$){CwGqAc$nTCSDwo_R#FV;MRrauJuQXNBQ6_*`wT}hIlbZq>yYf;hz5dIXKp&64c#l5 zUM?avV6R=f)+n;%<>hhPv{cs1_7QBCFJDfe3n4K+-T>@sDu-zTP+QA(vFrKW@(o8_ zSy61-SzKIp3X2z4fyuy+Xq!;73LQp4azn(AuqQRax=29lznJs zdBxO-UhfKEWlT1XPRu~P;ZA}1&6SwdSWGUM8seJR@Yk};8uc{x#?z9L5(9#xMjwm* z0|vDVrd)qOth*A=|LzLB{F)DseD@xXqEy#b?$Z~q=XT}Ke`&reIbLxTl=jBAW%ut> z3!sW?@=$CxYt}4$`|XU~zvXROD4-JO=%UE1qrw$eTmkKe`kUYU28-zI;jVihqWE{P z5pl|~L32bSRw74>vkGDpMVU`N{xJSFVLUFp-~!xp&pj<`h&#L8#+NUFQ6fkeY2}Xb zps}!+UXaR+2Cqb<%|R;CNUp|7ia@0$5SS$LwH)Nr!;rX4i87Poj4xjoujQ%8Mea0? z<~SAQtBqoqjPNy4%O$s0OXK`Pig#lu0&Z^hAT2wMb+}N>K~*8n9|u2wDJiM6J1iyF zQp{_=F;mG+%_a8|j|Op)T$G%*sR*zsi`iX97BzLx{PpXDbcCO~;gN{Z1yB`qJXl{P0g6&ch>+Ao278FPr%s)4_uY5n#4$(U!i%rKNhhC*EOJumX&Dq@ddQ`f zqnLy6S5v28!VAx{osG1!yBD|LetU<}TI)`U2lQcm)IVCZhG0s*lM^Vn#GBOc6?dwm zOhjA+8~sdTy$XCMjJXHPXr>8Hm}`h(f&n#nT73C3BT|nXVmP`GIp7e1IYjQy+NU&Z zz^sZ=53Mz8EleU{Q$BgI2Cm-{%gwX%P$kww@t(xO4GoRNbvA&Fb~8=}DAEXabAVk@ zwHBycBONNZ*`B&sib*#zss1s&08$M%b?F$1XRW3$W@5mLSOO*aSPNvCPr&En#6iGr zam+NEVSD3aXrr4d1ubfBQ(;J2zaou4A%qNp4^*=Mlw7dPcnXHt6Elfm@q2yH`l%+Hy?XaH z^xU$;d@<@b;j@pv#z_}liqGzR&8(kqnNF_>-GLr<1Qq?>K{X{Fa_Q*=hXNf*0k1fS zAw!0kb)v1j(L1C)df8>hApqBU(#{G3R4K2B6X~dM(M1<=8?GZDO~t35ei|>1f7a}G znw6Pt09D*pLBR&Z5OmHbS1N79gAZ;kj@{X94L1ake#)UpK71f*W-UeS+?A+_>|q)X z#2778iG&T95>Uj&8o=XoBg&8q)e?XJjhv{!k{Xz9a*v6FdmC>{aecZV;Xtla{^?zc zc$<-uo}l6jvaOCQhofzAA?nu>`Ro0X!U;WcgUP zK)I3kL!21+2w(=pj3PDxm+z#{<3l{T)H-^ss^owi>r-6>NVY$on}Jsq6d{M6r<%QS zh7MYHO)Rd#F z*70mJk#-B(Ns-3k!t{kmI;6kZTwEKBhpGumwe@IRUxFYV;x}!opy=0a%xIdZ`D@+> zj&UAt$!0t#5!gIbV$ynREJdAe?M%Zh+$5qD$5%UNIqIh^BsdTpDdrqLbc6xl`E$QV zElp7dA9#RSf80b(*#+|#7%r^mfF4x-$>rK(C6+E;iOlp&^zPZ+aIlM)EaBQ}6_O}w z?b*ARS)(o7P=E#kUSF9(wlbi41D=W;Bz_=OiPBpq-E$hgvGwG%R0>4ET}3_uVVbo=zKFQ)giV zmA4ksZhLU*KqUIf)wcm*X_4Dq=Qm+ zVGG;a%+BoW|2*$Evn;TBQIWRaftmTf^PT$6?0L>x4;RIKolN9Oj^oXR3#mWbPJ@v` z9C!Tj1Xk|!O)R&Md*p(pS?v3n?A`UxkTfM=h34o^Mx6vj_H z2Gdz?`TNVTas4_P7&Vy=^R&}WLo4gtc+*YR#@T0|ZNUBNf>>K@f5gal^HO#kv}m^5i3UZ4Le*0ioMPNtB4i)WpA7Pe9R_}ky!U}Eds>^yR^||W}%m2g^k3EjZo|wac7GWGQ{%BnB(<@N-{yMyM?QJObQc@y0 zFu_)fe1tDaX;LE|)J8(sQk04##~)9caRWlmTO5{79TGg_io_o%K( zf5}a42^dhLxdmtSMiQ#us0}abt&57tJ6UU1DQPI<3+9=q)T;_P!YnRhCyEBQpb2ryjfS`|C271BR&k`y2d}{ROvF zp!~k)oReb;bKuPkFiMiFd+AfkKoiM*7|WO7u}9)!72K*=zC4he!64)|(?RfS(@8Zv zpj^rHr7S0|PN4bvORwOOzdl0oD@DrW(*Ct|3zojS1V5wRIhlPaMVh0y^PbyzjM+AF zjUA{c+k)lG83&n$N^)D#Z!(?IhPiX+;zh-FwcjZqi`-?)m*a;&_<{@xMk~RwzV8T{?U&*B^K%a6g>CTTs-^qvnC$aTsQH2+Z8KU;yV{yXu%Xh)Nv=O zUj}gq&~n=^P~^PYTiWnp`5L52pGudRn{K>`=i)w#a6=0tLq)J^(}#F};~M<%>ladF z9YCHx-6AJxo|4CeN!AF#I5+IUYEL`n*K9(1a$hvjfGUmLzC_Tn1MpJh-qnj)^$*un zQc_~N^Y@l6VTi$9PiKhIpewoP7+m$cDO4A5Gt&4zetqFXIPn+1!l>*J4Ze1ja)~i` z{k8cxa_ks0AUj-X=FaQjr2v1XUtH2|Tm~Gn)|3UVURoflt9O|3#~0VL+j4glFoPb6 z6bW$Bl}73tP2?*vZ`-zN%WHmby>U@|6Px6uIJ+;=u8Hc&wQ(^sR~at-3ihCIgwoT> z61bHyf^*1i$&ja&+++vU3KGrfU-|Y*a%71F4_f-R2a!p!YMAaV5(#^$w-uKnx0c4H zCiLd1BH}s(Y&C@2Y6f6PqbQlpP=^}9wz6_s5K|XR4pKwSrwF)?;$+2ol@3*T6+5a; z5+X6XM7b#h$R^IahJYkMz<>aKYrUjPkaGyrb%ugSKJIF zwT8ho8qv%RNjhod;opZqRRJn`3WwUSUq4Kv+t{3^X5+$de>e7ni+@O!5T>dq9^_#t zet7S%sg?*5OygyoPpvKQ(;s=&2g~u3AN|1PPCosEG32`4;N zL?Vkc#CD?OvSF*Z}NNX8Z$#6=4Cmhnw&CFr`!`1iootZP~&wV*w zdht1&HsdV&?Q}nFy7tLfZntCxkNgeXb?0pmKuhJ~CYJ&Sf&zQ~I``oyw0LQe7&T@r zIg{;X%AU=rG$TfgGA>AN5MM~L73m9U`H*ciO3=%iHWr!GpVmJ2jzu<#(kQ8&fE3|p z0>ci<3Rbc;g%%XR+Nv%Ni;H|a#k&G1`I-uJ#Nm1f6rS_|lKU1Q`}B!CPqhSP_x;oK zhFi9lV#?Gh_|-Mn7+}fbHi_ZrP36kD^9xz;F<#HNiO8Mo@A#c&>ti3I+c89eir|LU3;hOs_` z(&`N;Ny$R5HZLwb?_3-=ne*m`LBZ{tNXI~S76CF!R~$xcN@&Ntdbx$9qrRpJSp_4x z$w-iqH}|7)IeI?2u& zmId|RCh4`G{QKj0`l%=Io9lk#o{_q@gmcU7a|$FdLQTg%pZk}yGyVdMk~Crk45*|v zW?5ModeO?YK)SIns4ucO#_>$$LYK|O%}ovk8sAxi+J7!W@BcpEM6}8cm)9V)rIJUs zl_Szb2w)^115qyO(U4-|I(3bUrJhyKWbx~vWv`#Q)+Ac`CJ!oh3h`Zsjc>d83EaNo z6)bF%IM!<+8O2Rz6V#g7zJQ{I;3?41cO@}!I(6#Wd?iyHt4_lLd2)dQUP(A)@FTsu zI7@LO3Qreeh(n2V6?{R7+4QT0aj4>&#hEHdg>jcuJJd-GOfc`@STZQ;mDfdjAk8)g zVhJlK@~x&Qx1Ah#3L8pGqT3Ed$VG((+-P_i{9y-L7-cF-pq`lC8)MQ75Xnn}ryvt; z?AK!QQl{*uo;AB6gh7pr$=f>%+XFr{(v`;B7R7*&4=d^`a971LG|{*oA?=vqI}7gZ6+uWr4q7*CL(4LTCm>)4c`XB_2C{1s!BVPB z-6+A6oT7Ykr2`FK`XtdI8}X@Z3=0~`i%r*i9@x3 z7UUJ8Y;&23kQJm}&-Idix4O!SdXz=W(B@z>B_rkV5|sVq1{Ja}iMrd;EoHPM?uBtj zjWfViD8$7}mN*X2c>=sJ{U zZedN4R%BN+A#W=!nt2pkLfo1}Q^R1Hwq ze(znk;iljJ2E+M1Jn+B+2E_4l?x#zE{Y?QHO?GrB^xC?03=~e0+h_el7Ldx#fw041Cf`T`&pYgEbBEd+lUR{ zzl9dP1Qr5?EPAzY>*%$l;v93Gk!y`FU;50Q-%Xqt0;_NpeNzcaVS;jqMohs?+sWoq z1T0ad&P64_2-vQvdj}u2)my|L1#!?nTM(^X=eHn`)wB3AsWQ^1S}+C{Fj#mNiApuOw?2A(>8ZB@^SLz`oeirGEzrBRf(82Py4m84IQ4& zhD}_Z>r18>mPSOJmy+5EGJw6#Iz29}FUBS1!NbGU6R87jVZH(}=zwt#?*|fW3n>n6 zXM0WbH`Vw8V)l9eVqzs8*!}@Rq%&dD=5OM2jf->9OZOv2jl>N%-Poxwwn6leH@QhE z`q(B~USBlxQp`BxE4C4rsz~3LHXYl_O0jC?3OxGo16aD`ZJa}QsXyF&v-x=U5HcO` zY4UGk&qd;ZkLth=z;viO+jHVE*|z9?b}}XKl#eDn#?u~Fe!#%%T=4cbNxXN|kw@Xu zOD~BIYv6J#cb+W8w+k7qnmJySWoTY~Vq;iTRltfNjR<|0f#-M||tq;}VOLf~b z^Ep;p-d1nn_;$)X$S0b0d51Ve+fZ=M1Yb5}#!33^NbKA}H<>m~%nV?hx#$lihoJ;B z*ltB)1VP3PX{RVx2LfoCJU9k9gy*f%Hf&7{!AGZ4FJEnZki@{e(g?oYxYbUWVXx$W zHFgKArNB zQA(Y7>uK5$|aez-2>nQN0Yr+Y$VbI#0TDcofT5KHu6|pyR->~M6UGwfQfE*E#clBDip}4ZO2!> z@)dg>Dr0uX*|RC|xj58vTJA1+cNw`#9mhp+8aYi_U505`;%vS5j=0*r>(q~&+&t5l zsg|7lM~@m|R+f9$id*W_P$1gOW6-D*ZD%ZB1$Brtv?5aO=tvc}T@jH&+j(F(#jz>< zdH5tZq>4FfF?`A0>I_xsV|_WazTM>v)lV~ueP8yKiU@xGY7;jH3Ak^18b)Ne8?t>* zWw*tiP63xg?fw_=xj0lx=omJwiI$xd1;)f^I_&$ih^tgzZVT}wPIsqhE}rXt?kfr; z1{gjsK%itw9W}7qW{oT5Zbxo2he~>9dzdGtQ6Nh0Mvu3L%4%Px%s{c5O%3ZaT0Oka5zX1g3Qi$nbtugch{4C*tqt+0rnNbUUy# zbbEIx;8LLHP~dZMsBsWXqUbNqq3#>f(FK9}xqaK_z8RU@%E3#4Elp9ZC0FXxHj(?W zRpnt+G7Mm!)X%kVJa{MUj?AUN-cW$dN|b?6+I64>{lF8GWsJxd?H$~-Zz=G(096MA zA9dtdb6426!%{r)L_2tRU$^VFclc6Z5%s5$FwZ5G8wyj99P7WfNATSed6l}!r9jW3 zfNUe0c&uXUhEm4xu0yzzHWLiA;>*o~H;*SF73b2Jupa_P4Q5_O&mztjG~3T*l=KCS z$!*r9z^A4F<4xe)7aOp-ngJJL+5(AtC-wH>?&EnF!>4Z1t>9AN(4;^M&nT|?+dQbgvC*T}dj3l0Y?8#P@G-GuO|Pv$^Q+6z@cIfA ze)|;Uob#pF;TVS_mA=?Hxq$k`(${T$KT+VB&26Zsb+7cNF^R7QQz&a{$I2Zppzf!y zVZU^%5Z=e_J*>PoT`D7diS59;v)8a^s;k1z|6S_r z>{|`S6AN0Bv8MWs=R2ReC5$fZ!k0{)xN-BDnibw^f@#N;^W6ap2 zI>)Uhl!6<#q3q__XkA~5taFb=;OxmfDI&mAqUf0&3!%CD92Hp%g9?#8tT$2#yv>il zitT@%i)M1Tz5nxT@Mfnwjl1uAO#xTryVs<03m&W#(1LUO>JV1ZeTy;a@y?bo()|e- zQRqd8vfvYYC*iC8XoS&q-8)z(2J=UyQ-C52+i*HV>Ed3hvMf21C z>z;{VWDuoKf|CGCai@7{;N$?GQ?`TQEcw`in#7vf348)JYtLGZU0ch%R(*SF4+VyH zud(sc+|cZKtRG%;0e1RlNqI=9yi<=?u`w&UmO@+VUMDVn?Hd>2j5E)%dvz4rRE|wQ zzt6xs|0m}F!~0mbjI*i7dzT2}3|@`4*H@wX_BjZQ8Hj$@%%nItrQ7-(%g%{*TcT%X zx`5g)@RPG$LKsSZkXbRr8}Iy=np^KfZJ}l2`g8wbU?_#B~CF8P>e4vz_PVo z2&9N>UA5-|FlNWNKBufGBy4cnFr0{C#U7Z!d|{-4uewoHCbqh>30_X0#ZX^7O-LhWk;Xyv_RyUl2 zzJKB{aE(Kf)91Ikwx?Qor)53Hv8a&lCz6F@DCV~7uq@?z&1hr@t5np=HK z6IR~)BoD1GM&Z@pM8e3v=#aj2AEano7``u!LU!47)bc=$v4;->8}FwRG?^D~%P|^KDW}~y;8~7=sDP9&BDrzSdcdS|F$~q6b8i`fNhW(! z8D1#g2I2H!kJ)BBIo5%Z0H!u)(TewIcqR-*lmQz)Q&Q9M0kQ4)q&vt3r+#@N+E#8t z)VG7McB?n_lt_+sawrGIy?Z0`!s#~K&Utl~+=~mv==Mqc%#O6-(D}ddxZUh1 z%G0JYFFqBK#%5GM{l;E2=oWD~RQEUFQs5w^z$>r3g1K{_#=3Ruv1!vLJIzVlPC-Ed zMvfeb>C>m<+;h)8EDzUiBADKK%Z+$#!92Q=cnMt2X;uyhiTmT1#+Lw4mpYGECtgY4 zxJwy9paGmpsl2`0waQttJm<3W-5TYcp7A=~k8UJhjz89Ojg3NCN8GFiV(nVLd}d9s zPL$lUIGA|9YDMitX~JuEN~RB113T01L(^8FS9=Odf+@)S`f+H_<{=`q&i&MhCxnIH zU55@vP)Z^vibxc}N9V(LbP2qSo@C-z}N)t65_t(!iU0xpO8 zv7~VyxD+@r6j-%t70x^FTzvJbU&UQ_-Gi#?T8ukp3eG<7o0xp;30#;x`0K-u;L=Mk z#f%v<>=5n)Gtw`n*H9>ghab8Rug-sk;G@Ik9Y9lWJHgU{BR!A1!8ip~%4)=b)N1K% zkK_RD9@$O?o9OI|IqEHL^c1fVHzX3rx%)Gf5m?$N`P}&zuj#a{J8{$cud#G;&{Ekt zQ;4;p@=jeX*rP&e$m&y!#IXZa(RuJO?;kfu(>VuH5c>P;Xr6T+nyFW4Mrk2D|Ig}`IuhZ>^KEn4mC~*_tT}oK|q10pMDybU3MAI15UzsF1Z}v z_||vOf55=b#XY`2R#ukdh3DqtzPs82LwdtMascY)zmHsUtBEOYZ0wIAxt(IeB&E9>gWl$>6SY%YV;U{LTx7M-DNT4mJ~{ibPB7HGI{_yKRK}IEgfK?{CXjQkHJ%udvaL9-S$*9& z4OzbGI4~OnL8q!()0Kgbfv4T^joG@7KX=N+9y#tf&Y|oRy!dr1#NTQV8DC@hHwU_F2d~*1imyH)%QM! z;D&8T9W$V7Z|-#$3b-6<7h<@VE(H!01>S!9Z4==hdDM8^``}{)%tExZw0`Vx1U{{; zttc!i#tk>!N|9p%uDk9!3>!8K7hFKU!9y@T_UMCnoc@)Os5n8fP@04TRJw8iPC%rW ztY;nYR2c!Cii_(L7O1S<6S3mJX!v8m6>D0c%QiZbPcK2PtpThyRmWGyf|OYkXmH)qy99#I0ydzg$Q@! zCXhBfA?FYr>EnUmtMjNCr&pbs;htgbF{XH(Yk6gT5tY`9p#oXb`Uz6oZp#u z@(47~c@rJKd1fPfZ7dF+$@&@`;!7% zz-P_+8B$ULxb;u>Adm4{CHm}41P4dN=;Vl_VHHc^aM(DHS--pvAAY#eI8=#%d-dwo zS^Z$YkOk}m_uhpE|8g&a6i>zh&45Pe$fS4Yp4ZGXz-1;W!)pPg1F9-({-^{ykfX?)W4ls(=_K%-xw`<#G2^?!fn9r!YNRYdZ#=sY^^fcze`bFTZ5tlgRqCGiG4apdo0#=p?i~u>et>Hj^FTM!|z< zSv3+FR6ps069I)HjQ_~^8A!MyEZoKoz?$ZRjNd^^D;UZ(5kD=)r)M<0HOK;l74 zDi?SDGeF@&?!>?4BXV&b0UaOMH32|}AjIR}3eW_uVmQMB0KN?51c$svM;u@s#8Q?p zOd}Iu%7<0xrLtx*tW68)DmAA7HZhS)C4E#Kpyj11G8qg?zo{}r*mjMBuXgGnm8aI7 zUgC8$7PcZzm(MjH4MOpQZ6iR7W>vB0UWX3Ki13vg_98nW83`ptCc<^vXZ=|6v2JN; zDgN@n{rL5-ucZa}c}OM4+R#vsJMQ=s9{9`sIOUX6;7LnG()1$`{csyXkIYB%6=y&q z;LwwAz<1&i@Qojej=Dx0N4#xmRCUB#>++8fZFY3B@n`PmP71hyx|0^}l}mvGLV+iq zcmg>&c{u-D7g1cdYqT2=bz#e%`8EFSj@3ANOm8&RR$=mtS-A9~Y49e5xez-;7N@E8SRS+4Iv?|1*J?-gjr(PufLKq2sZM_?t!sN=pC0W9*kFWiFB+e4D@8c6DUB+fMWW>?&>Pz=Xd?ooTu=_!0Ygnh_-@F$0|Kd2*d@u*!yXGORJ!LA!7I86-O;Y93)6;PJjI;35A775mG*B8m zc*p^nzA!=Dq&UCQ9TEJwGK^$@B1$q6F@lE{9N#wy#}Q!3fEia7rr}j>O&$CcS&ADJ zptVP6gwq^EMj8lqe&mbo%C^?W4TrxV z8)326U6NO0XVJ#SMttYunV7%eRs6qS{sQS48PrQZhCkkZ8@@%|`p>Ss3Rzk5C1rn` zD&UJ-PtVO_lH*IncQCF3szUf;Tr4?bPc_6z!(&Dc}NX_jGY{4`B-M zZyzs}wqfN<+{J4>I!IH3Ckf44Heubi9XRVNU$q6byP*;`v1!FTJTbQkTNcbl{@_zE zpvX_)=_(p#O>$9v`wt)>B;&%zm!V)%Z?RY1HTi|+HS=8BcCu*12z#XvfI1=_Si^H^ z*HpLTg^g{<4J2YhFCWeuz@QBTiJTmQgpLm*hwcqT(C>%_q>y9sf?N~zc>$lFL462T zT+4OlZFNmO@}fi0d;BP*Z>~bwjPdAwTLoSwJ!?a)DB!{`x%Fz(3FSiO2Z z4Z(ucb5g&^$=OefpeZoa9j^$4(r-K0;vy4?az~6Bip`njSiE#O{N$oVmqgCP<}zANh3TBHcC2U#>Yrow6SMLCAO6t5^u71qMW4QX;X7(DJVy*dNFF8BAXicxslfztgZmp# zCB@v>*p3y=1V7HB^E=>$3~q=uXeGERI#7T>P!kdd-oZ^k65TUeDasUw7)AcDAR{CJ z67?4K;gMo(6!ivW0h@rN9EyWWBdGuDM<{G=M^^7%h^{I{I6DnXD}o3IgQ%n4aN+BV zu%ogP-XuS1OK@XbQ395M9%&^&G!Bp#3MXg=M+Cvf#s+-&5jQ&PHc_A5jM6QoXsEBV zu#e&>C2b|tQRPcuwN}LOO3cd{>r<0pQh37FU<>BGx{$ifavOu5^FPb5XO{QTPt?l| zgY@76Yek6CnWvpTuPV(shuL3<;G0CTc_P8y8nIsZIHvop;>JN7v7Uv3t?1Rej~OZz zGO|`Z>EYwpHMW`^HO8SQB>M>FNm%&uJY?tOP-QUMEQIY#inZPOp)NaY*W**8EIDZgzX?z{*Nno?QBY>wEGqs5ew>X#X5|>?!I`&-r*OezBDO`hJ zoi+{6K7SgHyle`K3$~mj&L&JQCqf<9*N3Lzn@1*bZQZ|g&=mf$mC}Jq8uSo28PSel z(1BFyPID>t9Z}@PIsN?@nwf}RDMVO4TSjqX8;=bW$XFOZ&LgqIL;YzYLIjI&YXT}h z;<06|iD+p`Kp`dB{W~H^>6M4vAAb$am33$>%0^L1Uz}di2aB)%1=g+KY#S6A`WVoW zdlw9fMnqO&PApOM83RJ&EBQP`4s7w#RR-Q!nVHyHR)O%QGOO>1VmWFl7DvEM{;+B?4s(~oix0y#gw|5k}o1zPMsImJ&v43Qo(c5*;F zE+*DCz(lTQ4(v=p^Git%U^?An?z#Ie1i7J@GWA&8d-vVgxN!siMT_5AS6_`%ssX|T z?o&=Xja)hP>unqp0rQ_4X?vm+>-M|jrk;d{|K>b+KxDO6x z3LGjw?A+`uWOC77zizE9z}?f_;bsJ#;npU!(g-IfCyh(DAYf2$e=-V z={PV+{kBoJOFJVB$o61#jtApum~?Wn581m}{2HgmSwzW7I~Kh{6`;Ak11*gaq@{)t zA*f{cRelFKKH?$IjStmP1YE~W$a8NYDUb?EiSf)E3ov`ba??w85Ww2SmGU#0;?&HH zbaH@gX3bm700s>_L)1ggFo}RB&d^8BOJ!RLWD=i}2d3wUmvtHJAe2DP&ubtmnme(3 z37Vol4VDCGj?mYkw}8=rm(NW{%6??MWFlb|iE+n@{G@UMFtrtpYEwbZ-t^)u&vvxo zh^HX^P=nfh)X)OAS7zrUfw1(iTWNH(od+n)pZ5wbzGNnJQjh$bFPb?Mr<{5UZn@=u zP5fO}y4658nNoo{bLQZ+*I&nyB}+&PFD6ZzOd13+VBkRGlH+~rJBhZ?rHTD`NIy4q zPk}>a-RXYxZmvs#L!1Id49w7*r-tZwGWniradZ}AXJWeddD`*j>}&DOWp~jiqz$7_ zy9yVcJ!TjEsLHkR9Lsl?yp2?XK*`|22aGb=qK3<%DK>Q>mTcRyd4M< z%xQOJVqYBsAU78Qw7^z?uOy)N=vX-#V}%I1!5s`}-#eS2?}(Q5dkHeg$HfHBU`q?G zXMm3(Lx$k0tFAPlm66jc^XB0%_uq$Wulo(AOqq)7um266|K~q3V8B59@wVFxXm9=B z|HYs0ypv%3T?`ve_bs;7nK;of!xQ>4xskIIYC4~|7hNde0%{jxxR)*k_BRERs6(4N zbt-P-q9#y1?u6+S_mK^YrS?c0MxJ#o<{sZju_zbNL?3b)cCf1-suks8UsYLwXXgBa z;Rt8MEIH$??BCDh2&Bi;idRC`|0@Ytq-&J!P#`sZ^mr8aD#5blZ=-=az6cGRJiZjP zhC>*f*9%8_vdjv$d0RQMN0RI8my4{`rC7XdDau+Kkrp8Psw4oU*jS+U(Z-GDVx-7H zEfEjG&2_Z=&7h?$ImnJMb+)OftZhVAst2{?iUo`k*OI9uO7e{t(me`LH7Pz~KHpeB zkzlJiShBLb(Y-{%){@>;kF#TW0dA~7=f+7{=6f8gV&z#yO*pPP{UTkUQ4=lmx0Wv>Gs|1bu06^nHe+JaPI-X5GB>-FLD0op&%|#7Jc4=5RU*xa5*c z_k3^*yZ3)kkv$b+oD6&=>)foaEjnD@vegYHmUjIkG{8qfj*B1Z>%~0g*rlh86XvrLQ&%RVWGM&_Jm_>S;6- zX{beUWiygqUMAGR+ixtiU=B$F9_cj2SuzP|vKaItO3v4ll!^>LIbQ0SedJJ+2v8An z^(pC@$fnl-eR0h`22yMQx)^(pmZoO^IR&vI9NTgM?o4Tif3#i@G#m#jou-_<9Qc{BN ze)m%9xNgBeW;cc14s0s%aIIv6#B0$(u%j6 ztH`y}iZ=$N60NG`5bsxfu->k9P`mQe$f-81+iW^g`JA@3Z7|Vr3Pr*@cvPN1RLuzB z!US9cH3E(qH*vtkI<}+OMeIZOLP5*tn;|0aohhcR#dJj^(K zh8;?;-;+RG?M3;lhT`!pTeo2#xmvZfX7wsGakCOH)3t3%r_sh3z&WQ+L}KbrL2ElGn|;!2NxEP z!JvZP2+(Raks|O{t5~P41!=sFlIs**6y(AIFp5*@S1J8;t8rpLJ%hn3I*|ZVB2|H~ zmmHthOLq_sCYciEDGfNM*%nk_ok>4})%@ER(oN0hhRBwI#5X4pWs{ z=;taiv#!mMiO0pL9~tZ_hH)E3{W6eBPEMk(mq4pd*j9X;LAJRLH8_GI-;|AI2n^~) z7opt(fy90<8Qe4|ee+uvm@ABe<{Nl3PaBa39(cgqgKod=R?Q4`H8ptT;fE=DZo!lP zn2ifB`VPn9u)xygHh)x(NPP=ZhV;>wWo^4}ds4s!)IDk9=C~Bt?-a-;cA; zJ{wnj@7wtCsw?r`%f3$wVCoFHsB4jqbF2!bCoZO`sS$sD;9lJH`)iSv$%r_QKY_7h z$L{yBf4&YoxZt;0umw+In)yw(w9x97R<-`TY;4`K8GZpL!6%7a+PclSw$MEq<^b6J8IWhNrP4ATKP`YBVkVh0XdB!5`)4~yVo;` zj-@2kJQe&w&1h_56@Bbm;$az9>49~@r%9a8n)W(0RO~?ZrtReR& zqjkm@e?m)fa;IP6?`-BJmtf9QPvXCR`co72UUtRhX64&LAJ+Kc4EoK9ZuRf1fj27v zfB&ML4Y^l)P{0M$JxJnaxD+@r6euh##52!4gP(GN`{OM);*p2$!?!QK43noGi`?8i zf{nvv)YMjE+0rEpDE|OfFjlKXy!YI54~Ek+^UzBarE>9?tH$UtBQSaVk$C*67YwX2 z`}9Hr4^o$IQvn$mjSzM8KV4M69f>VFtey;Wd<4u48Y7)}!c?r^@DVm|DWm0dFAN#f z53kIB19kNc4wpz|GR~67U{C=g95J!L+}ZpX81h+wEo5%hE_B#T!G}0UIf&F?mKdGjRG#9x<3S$ z0tXQV^78WV&_fSlCS4#Tmb?Ad8*#&LeucdJ0*ino&Y^Vc7F)Qd(~5J}qmSZ@GtMwB z=pdTLryPp7?{;J`qSgAY(=+C~63B*G+-Go`!~G;K9N zk&dyhb_cm#p4mxo?w}D;O?4GH)-VGqcp1}{dQ%$h2t@KI8sAa1gYGws3Cx(k<@DWD zetv$w6IqGf2*jmNY#stFKyoV8!B%=u{bEq~I^gu_>Amhs&3^ zR~k7n-{)aQgn|C~-6hbfTOiCFtD^(t3F+3qIO{}O(dt=}&LU;fxTN#67r|HtP7A!% z`1boBp>f5B$ecKm#z{ddXBGDHEzW@oT)+19^Ql)(qp_C^vM6fqk~|zoc=0NgKgZOW<25uul?1paOWL&@chmqx(v0TfjZ7)0%eGXSt&Hu(W0+7x5>N~Hyfr4 zO$vQSl`o520ap?gkvWXrTTa&w`EX`tP>0Ir4Lk~O+Obpc`fCd@aneKrVF2^zzlsUt zd8Q}9>0P>%OrAW6ew-n!Sn&Zx=3}sGvDGPry)MeYWcS@^Lr3isyTHgUI(~w*~-Hh zJPhhE@YWx8`k=C0mx7%&di;gUq4xNnfJ=abl>+in9WY>ky$;qfe(rH;KQG`Q7uHDd z)48C2f~oH1S1DB^QH8*hOrYTn*+CxzF~){oG!8#{t{yS)n`pD(@)z+Pb%*MYESyM-MP9HI0z{q%rv7Q zF76W1DqP>tp(W@|&aSS$(SS_4$Q_kC%-~3|Zfk4n319?Pa*(B^+bQ0yjalmQv=p`{ zKo-y{%1};jKE^S4fllG^Gf@7qC!WCQNU3y*X(K0_VWQs%0rlvKIdq@#(8iqU7|3c* zpt71X8};V&MKV|6AiZ;vJ6g~}v9&f8g9i^X4!f+Z%(!MR$E7i?Telu3PdbqR+KQ^O zL}dT%H3W|yfuzEmk2O$o2Dta{+93E+X&AMk95wg9fUId_k$%jGy>FlgmvjNO2Y>nQ z)LjZ3XbK2e1TW&`^b%KDSXh9g$CeOiqBv?)e*@2sXb|H@A445$Dbk5Rc|}KH%jPY} z&P>G$p1$(0m*1dxm41NaSOs1J)F?&9WCO8-N4M=@UBm*LWn{lNqD=xNQ-`<#U(lOMBhET(hhqLFtV*P0r@*O_wj1!TY zl|r3s0$yFTl0LAj9d49dHesH_k$%KGb4*DzM2b-S%fkd3xS{ZHLs3ytiFK=1 zo6c5##(nz@#G4CW!+%$kG`|MVnEuDXDME6CAuj9ocRjqB4S zfvJ}?N~TrymOsyBTZt%`c`9|kE>!Fd9bGEz4VBz7E(Kf)d?6GtaVf#dkdN>32Nkd_ zS+X2yDU4kkUS*sa&lX20vX-tZtvpMWVoDHfc%8~4@M`KqrmHjyTLPnFwM)Y#ip&LF zeR}uC2k$S#gkz3DenCE-nfok`JHEex?g!MHo_q?!J@SN^w-&z1^F#;I;<$~Rs*H!6 zaDnpE6fh@{1C@yO<#}%q>?v~g3OExT5F?t)pL8Vww4DY~S*bpPA?px4S(V_)tpi`$ zG*CXQ7A-$FnU=lO8>cghQG4DeL>mjc@zI-z<RX9F@f*o&0;1Z`Qv964rCQX@Sac$ExGI8v*$vpdWq|HCX z_jFq0uL}BL{aNj>Q(KmQ;x+E%{t&mnXUy%7%*y(MH*`0K?ULnE$A*|?1sr* zikr;O$v5!aUR&yLq2iV~E+4s89Vh4b5i{%|U1B1273S9(Y^6I4-Jvp)i!CJJkRiip znB}u0*J^l}dQDwDh72Bz+@d~My=skFGLJp-2&|`zPfPhWoU|Za#K;5zpTt`)KgR|qob_sY}D#7ZCbvj@njjf zwg?owJi)>j#BMNKPv80Z3n2k)%mURKUHKS<;fRRmbE}iuw5|-5_dJW1 zrRz{k7n!`TPTRdo=RN1MXM>$jd+vn`s6F?)cW3TW;Gm#@z;nlrYE>qm#Z?T&pa9RbRfKwxM92xNh@j zWn1Eaql^e8J+S5}>s*zWRk4@%eLiYN%_Fa%iU$V_{pmN5bMi5W(xA#q{b!I|zH!r} zmnJR?V!w%p=^NV`M%|n@P(6Er1-|e7<8zTgL!?hiE}(W#9T!l$r;D5GQoyBvOMyd< z0zt;yt-9}dG%Q(zL>>g5bM}|uA3M;1HG$l-hhp9KCQ1Pq-qAx2y7|r3sDE*>ZD7(T z3`5bSXCSFp?*BP&7f`z=kqfBZ)5XnoDd1ATrNALc0qKximTe@cu0`#$iwr!y83B0s zN(>|uP+QSn$EZk+E%5isL)J-0BW>acqz>Xv~4a&aC0R(Xw96MmW<>9Meys@FP}m0(?0b)T|n)gWd9#LXH>q-2Z~Do O0000 diff --git a/meta/runtime.yml b/meta/runtime.yml index aa31034..368a008 100644 --- a/meta/runtime.yml +++ b/meta/runtime.yml @@ -1 +1 @@ -requires_ansible: '>=2.15.0' +requires_ansible: '>=2.16.0' diff --git a/tests/config.yml b/tests/config.yml new file mode 100644 index 0000000..6fe2c43 --- /dev/null +++ b/tests/config.yml @@ -0,0 +1,3 @@ +--- +modules: + python_requires: ">=3.10"