From fa6f029eea70644684c37fd8fcaac03b50c70c8b Mon Sep 17 00:00:00 2001 From: tomyee <519395917@qq.com> Date: Tue, 17 Dec 2024 10:49:27 +0800 Subject: [PATCH] feat:init --- .bash_history | 47 + .vscode/c_cpp_properties.json | 19 + .vscode/settings.json | 12 + Dockerfile | 21 + GmSSL | 1 + GmSSL 3.1.1 Linux.sh | 1791 +++++++++++++++++++++++++++++++++ README.md | 9 + client | Bin 0 -> 34648 bytes client.c | 175 ++++ files/20241217102043/test.enc | 1 + files/20241217102043/test.gz | Bin 0 -> 71 bytes files/20241217102043/test.txt | 2 + files/20241217102536/123.txt | 0 files/20241217103021/321.enc | 1 + files/20241217103021/321.gz | Bin 0 -> 37 bytes files/20241217103021/321.txt | 1 + files/20241217103853/test.txt | 2 + files/20241217104148/123.txt | 0 init.sh | 27 + linux | Bin 0 -> 72888 bytes linux.c | 239 +++++ server | Bin 0 -> 36408 bytes server.c | 437 ++++++++ sm2_key.pem | 5 + sm2_pub.pem | 4 + socketTestClient.c | 56 ++ socketTestServer.c | 99 ++ 27 files changed, 2949 insertions(+) create mode 100644 .bash_history create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json create mode 100644 Dockerfile create mode 160000 GmSSL create mode 100755 GmSSL 3.1.1 Linux.sh create mode 100644 README.md create mode 100755 client create mode 100644 client.c create mode 100644 files/20241217102043/test.enc create mode 100644 files/20241217102043/test.gz create mode 100644 files/20241217102043/test.txt create mode 100644 files/20241217102536/123.txt create mode 100644 files/20241217103021/321.enc create mode 100644 files/20241217103021/321.gz create mode 100644 files/20241217103021/321.txt create mode 100644 files/20241217103853/test.txt create mode 100644 files/20241217104148/123.txt create mode 100755 init.sh create mode 100755 linux create mode 100644 linux.c create mode 100755 server create mode 100644 server.c create mode 100644 sm2_key.pem create mode 100644 sm2_pub.pem create mode 100644 socketTestClient.c create mode 100644 socketTestServer.c diff --git a/.bash_history b/.bash_history new file mode 100644 index 0000000..1c68039 --- /dev/null +++ b/.bash_history @@ -0,0 +1,47 @@ +ls +。./linux +./linux +exit +ls +./init.sh +exit +gcc -o linux linux.c -lpthread -lssl -lcrypto +gcc -o linux linux.c -lpthread -lssl -lcrypto +gcc -o linux linux.c -lpthread -lssl -lcrypto +./linux +openssl ecparam -name SM2 -genkey -noout -out sm2_key.pem +openssl ec -in sm2_key.pem -pubout -out sm2_pub.pem +ll +ls +cat sm2_key.pem +ls +exit +gcc client.c -o client -lssl -lcrypto +openssl version +openssl-devel version +yum install -y openssl-devel +find /usr/include/openssl -name sm4.h +which openssl +find /usr/bin/openssl -name sm4.h +find /usr/bin/openssl/ -name sm4.h +cd /usr/bin/openssl +wget https://www.openssl.org/source/openssl-3.0.12.tar.gz +yum install wget +wget https://www.openssl.org/source/openssl-3.0.12.tar.gz +find / -name sm4.h +cd / +ls +find / -name sm4.h +cd /usr/include/ +ll +ls +ls +ls -l +exit +ll +alias ll 'ls -l' +alias 'll' 'ls -l' +alias ll 'ls -l' +alias 'ls -l' ll +gcc -o server server.c -lpthread -L/usr/local/lib -I/usr/local/include -lgmssl -lpthread -lz +exit diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..9a0a2f5 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,19 @@ +{ + "configurations": [ + { + "name": "Mac", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "macFrameworkPath": [ + "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks" + ], + "compilerPath": "/usr/bin/clang", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "macos-clang-arm64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1042273 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +{ + "files.associations": { + "sm4.h": "c", + "fcntl.h": "c", + "stat.h": "c", + "socket.h": "c", + "in.h": "c", + "rand.h": "c", + "inet.h": "c", + "unistd.h": "c" + } +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bfb917c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM openeuler/openeuler:latest + +LABEL author="Tomyee" + +WORKDIR /root + +COPY ./GmSSL /root/GmSSL + +RUN yum update -y \ + && yum install -y zlib zlib-devel gcc gcc-c++ make cmake \ + && cd /root/GmSSL \ + && mkdir build \ + && cd build \ + && cmake .. \ + && make \ + && make test \ + && make test \ + && sudo make install + +# 默认执行脚本 +CMD ["/bin/bash"] \ No newline at end of file diff --git a/GmSSL b/GmSSL new file mode 160000 index 0000000..34fa519 --- /dev/null +++ b/GmSSL @@ -0,0 +1 @@ +Subproject commit 34fa519dc0f94a9a3995d9daf09c84cdac37abd8 diff --git a/GmSSL 3.1.1 Linux.sh b/GmSSL 3.1.1 Linux.sh new file mode 100755 index 0000000..1fd2183 --- /dev/null +++ b/GmSSL 3.1.1 Linux.sh @@ -0,0 +1,1791 @@ +#!/bin/sh + +# Display usage +cpack_usage() +{ + cat < /dev/null 2> /dev/null; then + cpack_usage + fi + if echo $a | grep "^--version" > /dev/null 2> /dev/null; then + cpack_version + exit 2 + fi + if echo $a | grep "^--include-subdir" > /dev/null 2> /dev/null; then + cpack_include_subdir=TRUE + fi + if echo $a | grep "^--exclude-subdir" > /dev/null 2> /dev/null; then + cpack_include_subdir=FALSE + fi + if echo $a | grep "^--skip-license" > /dev/null 2> /dev/null; then + cpack_skip_license=TRUE + fi +done + +if [ "x${cpack_include_subdir}x" != "xx" -o "x${cpack_skip_license}x" = "xTRUEx" ] +then + interactive=FALSE +fi + +cpack_version +echo "This is a self-extracting archive." +toplevel="`pwd`" +if [ "x${cpack_prefix_dir}x" != "xx" ] +then + toplevel="${cpack_prefix_dir}" +fi + +echo "The archive will be extracted to: ${toplevel}" + +if [ "x${interactive}x" = "xTRUEx" ] +then + echo "" + echo "If you want to stop extracting, please press ." + + if [ "x${cpack_skip_license}x" != "xTRUEx" ] + then + more << '____cpack__here_doc____' + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + +____cpack__here_doc____ + echo + while true + do + echo "Do you accept the license? [yn]: " + read line leftover + case ${line} in + y* | Y*) + cpack_license_accepted=TRUE + break;; + n* | N* | q* | Q* | e* | E*) + echo "License not accepted. Exiting ..." + exit 1;; + esac + done + fi + + if [ "x${cpack_include_subdir}x" = "xx" ] + then + echo "By default the GmSSL will be installed in:" + echo " \"${toplevel}/GmSSL-3.1.1-Linux\"" + echo "Do you want to include the subdirectory GmSSL-3.1.1-Linux?" + echo "Saying no will install in: \"${toplevel}\" [Yn]: " + read line leftover + cpack_include_subdir=TRUE + case ${line} in + n* | N*) + cpack_include_subdir=FALSE + esac + fi +fi + +if [ "x${cpack_include_subdir}x" = "xTRUEx" ] +then + toplevel="${toplevel}/GmSSL-3.1.1-Linux" + mkdir -p "${toplevel}" +fi +echo +echo "Using target directory: ${toplevel}" +echo "Extracting, please wait..." +echo "" + +# take the archive portion of this file and pipe it to tar +# the NUMERIC parameter in this command should be one more +# than the number of lines in this header file +# there are tails which don't understand the "-n" argument, e.g. on SunOS +# OTOH there are tails which complain when not using the "-n" argument (e.g. GNU) +# so at first try to tail some file to see if tail fails if used with "-n" +# if so, don't use "-n" +use_new_tail_syntax="-n" +tail $use_new_tail_syntax +1 "$0" > /dev/null 2> /dev/null || use_new_tail_syntax="" + +extractor="pax -r" +command -v pax > /dev/null 2> /dev/null || extractor="tar xf -" + +tail $use_new_tail_syntax +326 "$0" | gunzip | (cd "${toplevel}" && ${extractor}) || cpack_echo_exit "Problem unpacking the GmSSL-3.1.1-Linux" + +echo "Unpacking finished successfully" + +exit 0 +#----------------------------------------------------------- +# Start of TAR.GZ file +#-----------------------------------------------------------; +Jye \UU?|IPIYY`Zba^œ4@@AbiQt+K+MMJ +J Gl0lШ^Q&P{lα~}^kk>Ýq/<<_Dx/'a=D۫OD~a=mq'd3SRgS2ss463sr=Kƿ=:m?G tcS53 d(G#{ +GkF"@ujώluv6U`ọmsMnc6k6faM\b:`SOџi7&o['9bO6_mc=^-3fdWld][lEM&u&߲_h+]m9iy6&~7~M=o3?M\T5?F.Meg56[ă&fN6{͸TળilMlglhFK6?lMG،K7:$&_ig6xmw~{mi>Gl-f^Se~J~;ܥ4y;0׊ǵ>nt\Rrvwrу23%LKKvḦWpqqԲaNzqsqS3RsR?S ,;-'qݎ٩L$.=kʝ7+yntМΎIh3ȋl'.'uFF;Cg;re'd$MNy$rzBn;.!ם =&%gS259ǥe&$ťNNȞ/&rq\Ib;94ĖPrX;ͺ촸$iT6 +YԴd^ў7Z#oN*\6R}0n/PJge3{`K]Lfi`9<.3f'ef9Uj4w4wR3df)̜d4##!=NM4Ɠ-kڬЩܻ33^3"y$g$"ǝZEQ\N2{V^NNa@2doާAJ;)sN^D>xsEk5b0 )ɉ΄qi3)q9q&ggԉI 'wD7BX$HT|Cu@Ňa83qO*Mlgv3 \ 98ܤdwBjZL?9ZbN5/Vy+6-_8RJ4J^g ꖓ f)SjNJa=9m=ZLHIʪDK\ 2wj<ɚe2=ؙ0CҥQgqQ, % 6JdbZrBFn@!3?X(H`s쫌6@%%"*uɳ3g%1i$@')_Ӊ!j X00e♩I$bw ,rdi|Ee.ppJr 6Fexd7UCf)٩y17RYͽtZL-0g@FOIz$fJc-Ҥ%Q2ZoZ&y\hS@]s)%ХA1o H"$ b,lY ӳsRsP iI",afE&l=/Q993|F dؘm,f̅={.ssa:9;性WRf-B~:'HFh8I 4~Ra_phZ6ِzZBlŠabCO_d"Q1'%a~dDT礋)3SX-1ol:}ѢK%I;ĠiE2h^ijm9/xolVslgF#2Y!QQwLg?B 1=<; X*Dlq9ԑk6fQ!`d\ѝ5v')9is)nplU4g;.HFed2TNy?)lOÂoq0Dʬl!:)7Q_ǰQo׫G>PVzn#ȏ|_K ?G(k¿őͿr޲g7-N3F}/{5{OM w)&>t;Ǟ/|aާ[1 ?5~7 :DK.EƯp H_yQ^]? 1{=ұ+:HhHgip4~VO5~x/zz#]2_5:~HvGRǛecޭ#uNJu㐮q2^=+F=nkǧZGޙ"5~]_PĿY*_wHX&_#1 LĿ~i3"5~r^q ~~gVijOr[?Dj<ᯊ?'|zK3 8$Fٿzk7p7%8Խ/ ECyXw~<R g~ 9O"oG%De `_C!_N~%_H5ߞw~(E/&z@^¿H+ŧ4BW~¿?UNW~$_CQ-uK ?~ +_OY~W'n~ 2§ |Iߋ+ 7~Mt~GI^O &o$ B؁?C w [ ? "p¿# 0Gw~4P%aO.O!ᄟE#?G~>"E?Kv/#;C'WX¯!q~O ? ??do$O!@ŸJ!7w 8#xB N? ?EŸN? ?S?>}&< g~ g~g +¿~6~Wk?wl¯#9%7o EKU/#r_A ¯$M_C$:~%~{ m?N~#o&|Ƿ_M؁C]@5F[ o#pNc7{O~ +@Y!'L%_GeW'~9J焿 :߿W~ ┫HR\*"/͝G}\{%VI[RNI5J H:IIz}>_'`O1//@K=t(E_#~Iw@KR/;"~I_%}A!~I_%}55_"~IwBK3t/o@% K;t/A#~ID%Ktt_/~_ґ_oBK/_oEt /#~IAF%= Kڅ%=KzH/Q_ңoG2/1_w"~IE%=KzD/X/I_ғB%=Kn/8A#~I' ~IOCNDNBNF%=K:K:Kz&,/4/t/ /LhY_ ~Ig#~I ~Isg#~IAC%}/}_#~Iߏ%?i_"~I?%]%KKz!È_ҋ#~I#~I?%A^%a%_E~ Kq/R/'D.C~ +Ki/gE^%w^%K/_B^%Ke/5_k!~I%KzF/Wo]%_o ~IoB@~K-/J/*/Aތ%]%K]A ~IoEކ%KzN/]_ҵ_һC~K/ ~I%1Š"~I%4;?_p^5T=]5:W5:Yjx=@#4Fw5:T4کѧ5ӿkQQhgGwjtFWh^5T=]5:W5:Yjx=@#4Fw5:T4کѧjG5G>џiީ]4zF/RhtF\Nd5zFGkI/PhF_j}@?=S5B7h*^ѥBѹ=Ukh5F_ѡN>=G>?jLhN +ޠѫ4zFjG 5zFjtF'kTѣ5:ZhtFwN}FjtF;5lm5F43ޣ;5Z+4zF].S5zFh];iAӹkQQhgGwjtFWh^5T=]5:W5:Yjx=@#4Fw5:=/{{WnjY=g? lmz+8bq~?7C]x+cd_g\E][{ݞ)X%6O yn_>}]ǻ +gmO67vc͡^\?m"]*__|Θ%$DX [D&Dz)D>D1Q"]DD"I6DYdb"M"KR+w9|M"Ӕ+?Y/ךD*D6^N"Yg"[L"?"ۭD~ +6DJDܟ3XGLdDnRD~q&Z1ZE0e?!1mDvgFW3dߞԾWW_sUP@Jg=Bf=eq6| se̲p4#0d=k' y_\nhqMZ:W105Xv`< 0 /:jP]< +S]^zI8Ky V9 !E}^~t^$bq>IVP\% 4\TpaICHICPICے6% JJLHOMV'b=pM# 0eTWН/-W7~Z1o+671w@e.h qUiT!\{I wwgbϘ:ibA\lRs Bdʣ 8&MyLyS;ǵD2_ T*ҹ*B\_XinV-7i(s,3ʏ'Oh-qxOwWO0ʀ(Q= /j=e0pZc/ Y/saKwVLu^ZsGzFLgaٶ-ΐ~%_}n0ar(tF&NB=0P\P#Y+ĞYPP7-P>d0 xE\ߖ7XOA+Ro ^pӘgXzA +^CK7~n1s cQa7^BV9J̸H<8.2 !Bc*@(;U0[f&)p>i,` ]<RdfZ|ɘ@\:&19>>Z?lϥR\ )0Sspt-'> ow3uL_Ԧz:Si/O^~h?$u:wпi5}ڧkޟsv]8[hv>[O'ye7Yk%fw;:~ F3 F~oݓ>Czr8HzRL~J?kz<Fl< dLnA*}o/xu}c9r'{<~ 8 & 7fc}bj8hLtj^x/;6=/=[|bx'݃0~'g`֐~[i"s ;` t^}t3Z +.y.<<D ޾/o-}oT& +_6 wfnX%zS@ݗ`$_4 4ɓM&DkXb@ɯn$ +nw-D",DRTQrcD \IǏcrB:Qa:o;珅+ m{ @_V& `,`܂ bj/nVr'nU~}yOo/Ol;i1q'.yNk ]2SispI=]w Pd~%c%5K.fO\,koZ؍v#Uo!/"7P``ʣ@,Ϸǟ;(0T3x֟rF%:$ڟasCKC~1-n`Bz +^*dRgOgsރZfޓ {K${"CLk@Sy\w^&J 6ݸGɴ,ʹiѸNi<ZCYXc҈ ׳E@Un;/n0NcZNh`aq?}=l?3xh:a#P-$RfCd1ʂ\Y<=&/?+hrvѾh׻ !ޚ= ~1OA!MEn+xE9ZXZ}xVF`}0jRm +tH*7R Ť[n=N~W+Gq}){+xg4gLQ/5+ +z2w%R%D%`a\!r r'#\\Dgf=HOi&a{NyRgqZzpꈇ* +c}k;LaxdhQ2~?-cF;E(Jí]Yh~S]= =*m>X̽3<u:!9N/S\tny^>~*JZ\{m^h17־F3s`Ұ a{&_?6(TţwPݸ㬅߷BIv1~}d/RgN)&xC6K^R 0 ߯.MV+"Oف̣C8\d2ӪM͋T?g$(VZ>f0TWv0mx3ZV>ZSciJڝ`10,نYQ|_i/R'TL;)p=E`ց @Md}WLn=xȃ/7`G]o!S=M,>Xi;wgv#omv=mdhm֍Jh=jf1ۮ`Ia `^4 \d*3e s]/|7_k@_q_gg<`MBw5~gǏ1Wi|]{'/ND'Y 9qNA'g~vN'GN~mq2J'[rBQ Si"X߻\%I@x󝯞)OGnH.9%$]GK_7;L +v_5wޟEt7,d2GqY:jkT].{c8\Ģ8,#?&Wh̴G):eelO2{;I4,6Jei4cE 3 +3:nf43:nW:cє +ؚySیS!?$VVb#--u},xm~ '1Ih6MbeXd[~8hz,;5MpgtqE揀Ϳ-{n=)!Rw8,s:a::,KH(.#(ә3't;5AGB/B"p}ۨxBϗoAOJD u|&U&aoNM3 +3^Ik7*~I ݀?<P?eAF5L6odax!BFVVyPY}JfC5]\iA/3$-A/t;e: +AG!hޥ } ڷN eC2'f|1KiMZZi..s6\K\dk%T..颻d|M>߽4o.{X@Ҷm\_!jyN0m`QhGZ ctG|T`XryMQ\zD}>K Aƶt<3<_p}N +q XnۛeRGŃHWӺcݛU2G{,H0H~&hHٚf"Oϡ;&Y%,^8~?D/jM <ނ6rr'oY +.7b!h0N|M'>W>k.bMK&[mRw&RaXF\alVK1A3 Lfߠ0:EYɠ50˻ 1/VR müiqPE8~*eGnN^>&++iUу/"7_D/7+0 +5/oԖWmb#,V4Z,67k FuS:W^ux\6y7";F*f2D.ш%!ejewXRv# )X4$ʍ%UDOseY.TJD K󈺲 |IY%tVI^5.I0#A z")s[K%=qI~0 H'4CYp&4N|IsH+Jt;^e`V(Tɗ@_n4NAc}>{%[m@G9҂ЍA%-k6Aun7 ˉ&.@=-%`ZT.WKn^0k6c*4^g 2j k 2ze ]W.e=pҟKQ] +l&b*ۤॕ _°? 79y,WT~/"lZ]`Rh ﮵juqɄfLxB h9wv7&sG =Tp/ww< OEr诮W6vy yضlq'plۜxzmS>X9=9:ܶ1 h, #@dl(&ժCT/ ĸ &kMZo@V4AOiRxa:Wa`gX/:gReMj +.5&X2x'1 :M&{BWf,wedT"X2QuɫF9V\20߸0ܘG mu\Spn&^#7w‹ ܂ye&7{dxqoKw*3'WۻA;y'-fQf"ZQ5Z|30S=#Q?ZG]f K^e-R`xĥk7heͷ\_ְͫy/,ʫVL4a-yj٤D4&eIh9Բ=V VoU~S^N.58-aiYfAp$N2vDLz"Gpt2P\am1;xzQƦ;MvzB+!cf*PgWRP3WovPWTk// +Xvm8xo祼8 L`{ito'M+͸ҤqVl%-#{OӘ4<&%Z{i OhGmKnƻ{K+1qu?Y~|B}k,>5K1XX9l,A1ńT*^bȝͬp9XzL 6X{vťzYQ/ٟJAb4cmĬжܶ;Ѷfmfruwk 3h#h͚WM@ SP!Rj}G}daOsa|q`bPf0&?/N@c +[nLk?O%.fܷ3si֜2{洴EQϗ%%۪hɵh(j0GlۧaR}Gھ匆x`j养dKxܳ +i5bـ ef;ˠIl&&/( Oi\k՞kR#aʽع-\QSa:Sp8-Wg.'YT]ӆ)b#=GXxv*%X:2C1B5pxBCRd,<^ *T~1Ldֺ*x jGF+b|?K8Ui{ -.Ggc6YanEwY,(fk?qXQJ4;-gfi]>X>Pڞ,T. Fep?Q%!vͫ_t0 T#/Hn\J;VND+ VVM['+bOSuT&=K0)ewSR5ESSKkMuG0X&jS1Aoݪ4[?ڹ 7v&J?;]GS)~Oyk]<.`؍'>|\6 G2UЦSSM[RA8 hW>z㰞@v=kBϢS%9,}dYV,o=LzFF(k aנأCIlR)\l:fY:WoUTs=(T+QCa-;5Qj. 6sSHυx"EG~ukХwl4Y䖠Cm TG"SSyRGiSR_^C'Km)%0CQC)m!4dzbhn yx21{'3ȷf񧪏!gXŁhPͥ`qQZ֝8YmXő MU.&kEki-B)NRϋM[&i>>Mi{} }1 En] g- $1o*\| ˨gEFw HLuYGrݩ6`ﯱho\,ػ(zz`:عTՏp2*< +/ +º~Ti^?R~ܴ~v߆7_M$ݼu8n9c'[L* UMAUTUuVU/+PxqN.R& zuTUb~fxvx<0HťX[+Ë._<TC懊,?8YL 07o]2A8=E۸s<m Tb=*X[ H^bdhE4M:&IhCP6Y +BycGbu bt'K:R.u$dj+|(9G"*G&Q\LPnl  +OR02&Y^/s|Un*1F쨫sTZx:u'(!⺓rh^ko*m` +`big)ֺ*cv8q(V}\(wMjawcCc< 2^+,~NZ@KbQ*[ZB]hxx8(.nP;3wklZy0*!#s'aQP aCҁN_ZK[CI>ԉ"T8+Eƀ6Tͨ5Vh4*~>8OlJ;b_?Q'`_ό!}|1EK=R72n*ǝHH v8FZީl-crSєbJ65T8 ċ~=) BQ7joQ5|j=h6-)#XyXkex$^4yzx*C|<^w5;mku:ԝSu}Jm>2&\)(.TQVuXW5d 4wQa9hvFC'pLeXwnoE(.s< 1&=/!e/P9Ĥ2~UW*o;;Z`>)%NiL/2~j +cݩjȻuyj ǹŇo}/wL󳱖OxvyVcN+ކ2Wѫ%󙵮^ ^]7xCf/$@-Ha:l,^@')m`q%Z?S`h'ڦQ+ӠbrA}tZ/񴘝X yAq S fº_a|᳡$\CsӉGCeO'E^PF 5~^@{ +`fB/N\ş_*E3M=1t3{푎cB:M }o)] Ҥ{pyaTaX%7tcbK /湥2YqP`V>(RU+4&lW #J$4NZ4*OI3O»N6mky\ei`1$,&Ny}Iן[lbb1#mdtve[ NMfLX*z\Lt^N*u#[7 BROy;?;|uy6%iqpQNa^@[V G 2ϸ͔NʔOMdN +>CچblPS2%EQ= `ZEqf/BhK8ZPI( +BWK1 S^Qfb^.6EUt𷨱)LGȠլim+!pwjV]{/|_x&ե3UzΤiBqO-PL:$\=B|?zKSs .gȹv@U?h¹E@~Q ho b_^oHw/!̤̇)0 Ǯ;!4'!o.?)3xj<2ASƍee*1[u/~u"r08d"ɻV\UEҢ!%%L~?j;>[[[#TKy; |txg,Qv=p` LG>.u*t3xc W4OԮeIl 0Ƹ{;9K;F +.ֺX] D%Ax4j$ ?^C^"~֭on@eWRlp j}϶4h;|#t+S5bO2_㹚ƱJ1K8N +8&dQ< +8`qm۰d*?T'Xl6gjTWe=: 6ZMqdt.)J]tO'x#mA<_@zMGL?+PRv:'sU36 ʙ[S(5('&q`\ˊm-UEe]̥kO]&'VCĒFkjme4?GoK5/5^`fazTkzx[Ӱ} }:0id} ьKwa,}φqp%1"k;hw;rml{M03s:z{=ȽtծqD{!n:2aAf$!!<0Ap08X0MAL0"jQoҚS`] nieW (1иhtSjmuWt޸Uo<:c 3g:ED?IbWഛ/oυф .la`Mfxi[т'hg*|;WTq\;|+5~Eog!h=G8q!}pG}ۋ䛡K) 8~& 6~Tl4aĘ54_49lO6Z/.i9ĝU:Z,ind,i텈GedISM'꼗y rmVYTIÀJ4)iYУkICN% W4\YбᒒJ.~:ڧgԶwLt,h 4G9HN](<9|7-zK`5RP\1U|3*GR3FG1McT~Ja5]ُE,`QueɬOR\("͸bzg}"tmGE\EYBb0[6ZbWw@g 8 TĊ + 6WjY?Y6{_͗; ~C-دmr \[GK|C]uΚ"͝uevswCEE +.j|P!@m ηq;harn +ƍ(8 đƓiqY}ە0S~ K *D6 Mbi +rU*vxbۻ)gAt zqT1*l!MWl-9S]uΙAcFy<_ %<3Ӂ +7(fS5M0fxїWxnCRWKտ1OdF®v3iT5E삦| +?GmCwQ["̈`aaU+* C7 5 exR=IAv&uu&p8-bLN@Ma*#d8ed8ΤPY)ǃgR0|u.@@ AHmU;*&Hxjtc~?- O2.0OѨmBS)\b?እ/Cd02J,)b ssPf5}89y9/S+Bݕ֣* + +вJǢ c먱6&vnKΏR5â0q  +Mjd:٤N4nO+Av g}5`٥fOf5O~渺ި.;-/30ˣ>bx5>|5>r3w#k`VO :kWyB;y| yU-@d_hcp¯*w׺x_M/hT%e Mޯه+mã1UTj +hwHۻ*@x SEo( @7EQƶseZsUC͏k+ow<FF$(m7 GG_IP qn={1|˓U=3-~6>8;rU]M:^w v=ӎ^{If +ox? JQ/ @zU ?PU)8k&1=1 АOi EL=ijakkڅT&`O2ދ@IhFEGsAk6;9N 5O_΃1vK&5^h 9pچ{Wmȅ 9.BTDۇ5Kބ!@Xdإ(E[ŃkGʗO |lG{Nߦ׆ku>xKOK-k<6 }<{0Y Wȶ@,Pl-i%0wU5T}s+ܯ΍[-A.Bo@o)qܲ~ʹSjK#ss=7{_L]!f8׈j7@PP\?ܢ~_k. ׂo}_?6Hp{Gs94Ίb Rp]5{]ٷqG ΅oA<28q4DH}r߱2/܊Vq|>ϲ{)ZgҺu7y0hߪ ,-̯4Wizlގ'n`X.PAfo~7*)NbBMTlأ7A +jEj-7wX y컕,\|k[o71;Y}|l֘qH'|_TT9+,m2Ux'|\"vv%՛Cߓxƾ7`^jM8Z Y ^7XEC_2Mj!6$858\XX욳#%r}$aZ7`[:Z{h\d~uJadͅXմi|Zyfi"MaڔfLˮ6?2c73}d-כxb|c?YUNڦE|]k% 'Un&hU~k?*]̾|7<:?3 ӯCr'A1go᚝UsYf/0mw LZg3XAv\:@Xa7d1gzZ$T2+l#47M wɝ2ú5S~|6V|Ѧy7oy7Up$h#|1q,:zjG|6"zkkw: ,HF+}]Y*" TnϞ|H+KJ+Pa:7`#7X'@DD]$ANhD%Y`. (1.⁢KQQQAE;*H v< XNl(,i9;3>}<GjJ =g Αm]SABיI;#~*J0w]rC 5H.}A|%(agğ B; k"&Iĩs 4GPg`/u)mw'l7 j\5N)^,ɣ*+ +"˓h(sPeA12K!$|#XUW2:[B+%Q׆HL{HĜy2_!J4 rcz-y=#^bɧʾ>omzL)IyB$&2fr QxT$~5xy~z~yT~n~Z7^k\Zk0u%v? /m?U'b4$^Ll/NU[maDDJ>Q;p?__]h ;JOA\CkjՊ sl<)l` w( |.̿2Qv /F0D 'ޢ>/W+nnv!LNS8ȊQb[nr[˴ߣdz2"Eq Zk&z?MT9Rs4T +K|ƣ7 jtf"W"鉌>me5V%Ddi&.ѨjP-v$_DKS5&V$I^ZF<8f܏Z7j)D'SW4\u(..^v\j%XAZpPO,Imyۨ%GR~>"kd 3_d]vxg44q8=,Mog,#q +7hP1OlOy8E5`z~z8;N1ɫ +8>7 Ub}h6K tk[,֪=Flnfz/bQAP>ℌ%!915pa8`xO;R +J. +g[â >"lZi uc  ztXiNO]  mNi>O=-^HSgehX9Y#`hdAlzaZMf +rQ›>6KPAhW]HW.ٳDLj_a,:$e$%hu|lja!\hi;bD6TEdTA犣u(_ QHHC<8[#']@FOdk0*=Ɏwt#xkĢ$wqL-u=.UKEhՈ=R?5 E+KVhn][DK-4zLY +:Fe-lZͭVEr~L5QBhr|Kx-yLH^l'L^(hiKsm\4m6{T~Rݝ9Fm -eT-Q=dI' .!Y""3T9Q&q6Zީ$cדI zXȊXED[q7B1} 4a Y5okԮFr&ΝĦnֲӚDL\q}j*2H#IyH(M9Qg b>kb9QT\\hp1,M+$xNT/fxNT1&GKW$8w0r +yL4Xc\az/@C"!c\i25d2iHM̙IbX$)(yVrQrq&*y <)5tՕW zyu1X_OVYR@h j?ق+N.o t ]BHa7MxI ,G`MhȞ:8:eH@izK^ ji0Gy^wAwrcKX6 \/ \c4\I= zz\trH>Ybo < &v7ڃ(3'AO=Ya`(/t{s'"?Gtߎu!LHX1K"[2KNpCUE0ezcB56BV`hN@4"gNN? V-t+' VZ<4:VfAYrJV`U6u|h2Kdyj//UKdJs{s/u&Ѵ: "ݜh[fR򉊾grUr "u18g&_$ރ{ 1Zl <\?<8N0r|ǹAҐDN ? ]r8Or xȝ!sܝuzn*uDG tamŊihP&C͎vtk:[C]wG8$0o X%>pWIJ]jEߦ}KzR T +ֹ(oC]`yxYnQ pKyTɶbeJwQ lQ[Fʸ"em!hwZ+rk^](B7.o*f+W3$hF \x|Xlc'SZj~BL$GCcF_2Їn*8 T.i}(rP~ͲұI Iziѳ18LTZrjTNH|Cw7~?]ل+a0Ex vG6`/B؅8Ⱃw ؾ심PF8~DaP(dOG#n4"B[L^e팉ӈ4DD0S81d0&$CiNL0CPgq*t&:xPA8Mj8V%En[IA[FtS9 ,U>cdflf8=\x{\qՕtr9S{+^AO| @^䘺.4FiHS ixaӈߎ8ŢD=y||$|͚ʶUH!eqlSޛ0윫3@`Ka1 +bGaż['F|oNU5ϳ`["w +Ͻ?u)_T~ a9Ȱ:{(P=!IfŔ%ieU%g}rL &$4I +$o;V8AtILn; +¨λ*](8k,Euf0ClB(!4$fڔ%p R/ńFԃpV#ҜDFH`Hd5*EBB52% WZ\PgSe۠53ANRk*f;zVQ``1 +mmޏ9-jҖ4Flj[EYS3LKX"g.*arjZٵG+*/ #ki +˸ a\#1nsc Ί|* $.}PoU `ޏvXt1wQQ +mX顇}}(cշ&mqm3`|#(8AۙD&I@`blڠuuHl<2j!9Aㄳn;EĤ%20|1 +,oOҳў8[ dV2;F{T~(ۀ_V`=t`p3:OkaKJy.jn Xlb8n{} eSV '0hT<r$ C:1@j,$: L [DYNo( fhi.4@Ͽf +WmuBtBฒyri}B1W&د9B<_}ˆtTVN{ĭ[iV 24o^(y0: +H.{V4 =[:Y|PRwys$63PydC$XO*wlnJ'8+f-LmD$Bv(6ci% ʝ Mꣽr6؄TN{לv>Ǧ}w6;sV +#iM wEiGpKz]/ya)xG+ + 푧Ҕԩþ(}@J-< +>B?)*UYRge?3ܞ!ܥ]7JxJ8 ڞkhKs!2 +-jTzwA㱙 qy*\P/pQ^]ukciu|FVY>)Jj4MP^0+\l$r +Nh?,m5 +|9Q/p+Smx틉00)˥|VcZHI5ȅ\6~dj=0]<}޹}ެ8X1yvo; tB}r]!ozyIZ2nU1:a)d%@2()Ĕ~2%:UmlΛ" ?x $6eE޽:KSK;Sԅ.70O5l9a?suuȓ&xG@G +O7,> k`[_y+XϨ8Ra=/T`VY4M\@AQ|q3"g}jbDkB @ f?ÐjG( 3B ^9B' e0XO Ie 1<r&@ݗ6퉁&+ 0Y(Cm߿FAc'g:eܟ=<Ĵ:_vjT'3ȡxs.#\CyV< UL4BwiZyM5<G6He`)hyy/dW[p]FpgyXO$:݀͞qN$ܦ+TDRqb$ gC )O"' (o{蘡9juS)J(q\*cll1]Ejo ]H :(PK'伋1L{W_PcGԂzLiG5 +kkz)KMihvy1jY/E OREI$DM<JW_d]' _/6xw2?hxF/O';yS)E_ï6 n0Sl{NU/8:N <.VtjKC+7 QbTn\k,}JɀMa|no"T|!FVF*zLgW#s!5U&bNb˅\;r.qEB}lr&7q\sr5QȽ]6USjtHݳ8Nx\xGqhEpXm?Z$.h揙FVRo™( HpDl I$f4cb6 6IVCt0.8=%~@@'"2u%1:]Id €ͼN/9,g3u(|"%k1+ߗ،Ӯ(. qF[ +ctq0G%1|4~C=/Q:}խ^6Mi{Ƿ* ,fYxKAq+zQeL ,d&RM +}6ٽiB/E$H|(xH znFʟ b[d`zŔieiK_9Ϸ {0SRZgY0ȉ'cvv e6eusJfKQ(0Ԛo4$4VmwW'Wb:]l8vYe}Wn,jp#C7Y-qzuSjt:ҟ˂uqEKL U׃ј/d[oҰ$˘WEnK'd`U?Ϭ؍o'`:lTrxOkeG@k̀&βîU57tb, 4מ)9qon$Uv2$tJL{&49w("烖^fzi J]42v?ĆOz\g&n?L?hAL*LL4 +&+8A)bVYe=ߍe:S pPzCO7T#Z);[Af==5;;t$7B|դ}W m7S l?W%^FI_RG+ +,/v)#Eŏ/w^Q&KDBBxDbӻ]&pH^'u.+uz $߷OMZ=hUvQ+\DoEA"tp"FRh8Hπu: +&靭ڭ/wz /1gB;WA9;Lټ <5 >H.8B@;ˢ#ml:_]/}PyJ|BЅ*н-#TR u~O*6U̴biZwW931 J{^%(=O'© P)I ~ U?.)-PV{$ΏA$ 7\$I?fr*0DbVK{uliBNx_%ȟR{ոkm}CR E粂eG̢u5J3 $$WikE_o9v3M7,xscoJ +Uѣ*xԌ-GdJ7_qjå胳Wiic9{U-Si*EoE}mM#m]xYQ0g"H#҈Wi@ W. Yk3072f2pȅUjf fd'@b]쌜B*,zp4mY."Os#ẄS^"O/-kF yb tYYrjhޫre*#L4[P<{u%Wü#s,r͗%ΉN% '(,AJ=OZETP} .=G-胟  +ڎO {ɂj3+%#5{ _IFrIW"qc4R9 rcT"Uv4۬{O%k~W_a0qUxDh-]:0;ZbAhwB|v =gR?CV^\bx +\a]j".x&^ns8=V'{2F@i"IH˓$"I:O҆&J/l8;L2`]7謎ܠcx;jD]cjl!vIe7AjsOO)ZF۽+:yNajt†kPP헙[fbi[fUU2ߒڼ˽Pg;Hy*͖le&KYҙQ=W}Ҏ+Tђ|Q?Puz+ShI~$ dn~^Rj.* +ìoe2uFXKR_ܡ mIвb29DK@/{ EłLm,YFو`}X/lp5\RZŔŁuP$6@܎T2kڮ{GĿO<c9x!<8ۻ#w,jwWEwOw`Nqƾow{ʸ);QPF aVPzh +^/`/K;%܁Cp:cmܧႏ͎=K +V<򦭁 &'uH{:Ce$6K ``P9b;-me@ +1B tq/ NHF0D"l1םo~{ _Ԇ<>D_ m@$DY0{S2w#,eX0qk4m XV{7?Rhjz㮵M%4zNZ GfJ>~,Gsmj$B&JM#')2yun"h|VXX,.@\vCCz&~b7D0Dh+81{#qF\m!oS{n:vwGK Tk$LXN[r .|\dn8NjOcį>3S[ "}ԝ˅!^kw#I@1: mCLa`8Szϋ ?>2|x4V*C7=NH'Y2],kNP כuCtS( ͑l b ~cRhYY>˲B6<<y n,˗m1˦W{`BޙP;]*?iRrAIk±hmU\6;T\)Gd)jR/ep3H) Uw{C^{ lxURQPĹ8b+2G͟8ޠ2 ~AcV2|SMy"O- #|sg[MZ/CmM1NdwxY^#kX̓RoQK + J:Hr ~C& фN@Vsb) +qZO1'ˇ]qc8Lߵ~&oI`y>L~0@a0].R߿Rs#݇V Y6;az>Tow1XG40L1l*kt `n[7YONZ?׳Ͳ2#&pi4l%yꄭf1v{a$8$I"IO^.9>u1(0ߠWvzo.=8e9|8>SY'Fq8RSݿcp8N ȖZ..}m`CnBO _,+ e=lBG +|~'yʱ8}^f#?Sh HEnni  '3T=uDc$" m"63whUuj@@ϞsA\45КJ~3HM ]o"^){ \ABǛ {vC 5Ļ LLG4Pm#O9ZUq(rhe')QH؇ +IG* T.8v3#1mpi5Kp1>^[ݲ7Nf>G?1 MaՌ6fi*;Q:KN +RMbts:68=#4nϽ+\W*  b(ȅQpZopEÍTGmLpA&1u?8c6mopF|  Tc (K\!: +MxrA 3{G w3nܡ-a8v{P"ޔc-*|;r°9,^SNTz _ܛVtñ1qۺ}6<ȠK)12ñjFDΔqKdR4Y1e.3櫢QIh$T;L a(F/NI.TV2;PW<ꈏ =t%\,c$IF./! pq$.KeSvCT$8f.Dbݽ_Uw^W4$gp;% Q) ps+_"&۟mlA8uƵe"Z9寣UQ% +ʰ}';Ǻ.wc"\|$5\<9\eJw: :%𤆂x& q$$.MWu0 nW_$XE2$>2_- $.c'Nr yv݃< ;G1kdSCNq5~[.ڔF.s?z4w/j_Fp@ԬP=uh37Z4b-{\4&]ͭܥF4cmdZqZ]̓KK)K ɗ~o7Q0=V+~۵Y\+mb&2犌?Xgg&&s؋=7H52\Wkn"m׼R۩k*tݜMd<Iw;DpQ +J`AQF2)L,f+J!"dr6:!Ӌ'~Z7+~z-<ޔD7Ǫdyvu4;JS8yb6dih}^ڊBo2qKodʗuv oTW}Y ]Y$턵\Z7ڽ7ol7xc{Iߤoݦ&[i$Z_, o5Dl oLRR7+ݒEy| _ '=,W0zxcr 3NHEps]}$ܽKe_-r7ΓoJ"x b#㍯(wx? +wu| BC7E\JhW(;_@V%mKokT(⍿Ⱦ.s}%t d己NX9UֿjE^TF׾Sa'=6:x 7~o\oV-wR>o|[+"\7O o͎7V{<j6](8ǙW1oƸoTxV܄,x7x9zܯ-x\7&M?v7K㍵fF֟7+F6Y^o72xQѴ{rx㩵j[W}z3x[juc]⍝G7= xWK?2tt7hKXJq +\Uэ7o,w:,8eO \o̕{GxͪzZ#7 ~zRX5{Tͅokqq񬑮[\FJG;KtoyJ+xUA<h_|kՔ9`1oTY#$O/g+s#Oo.Vxrmc׎BҠ|*2⍵*aXS>xm#7>*uq57kɮ6}3B7uqxORcRG(Ƌr7Fv~~s￿_YElϵEґ \_~qBB?Yz^O<_zI^+WRo+)epFJ/K}߇/ +3uIxN]e]%'[Kir Yi{s0] &ēSу,+ ؽK}bz{ +~_e)[E࿷[e6jseE$* KHXZ -@ \=C E%٠ž$j,_?ol^y9Wډ2;A͌% [RӧhGظ<]VI~/_40țکo OXONxFROa&bT~}5xJ2R JK|%K#K3R<*B^^cSAlRMh%u)OYP%Esto_\o)oK|YEYIA,)2mS:36/G5}Ež^;* +3P2SG+[˗:Z,^L\o{Z~V<_!5lPtߖJ-Ʒ]) tM d~;==PRVaϻ 0vIUem1o4!zqC))2y-^-ޒ,8,k, ] +-Z[d,2YܤYdD-y[Dk֒'n]{Xòn]{Kt,i-eYXX\-G5#ZZuա= vpQo<c%!^fYB3]I;M_7l(Edd"\op}I,'W\ +ܯ.T SBx=z5uDqk*N-" '?{k]H˘TPpwNڀE%^+7J\!Մ}ˀE?v٩EQGzdő2RtdV,HlXPB}6I0[Pށ/+s*EdGmGvڭ[=zy9۫斈+e7y fv]peXk96zXiH:϶oPnPV8ޛ҈Vr=oDKNlc +LJ)z =jIaZNs%L-'˟WTQԃ+47:$)\_ 8B̃Dhv#l=DhO_vev%2pkC(: '?Y;E#(t;휺*3([Ky/J +Oȋ\ըD">ᲷՆyfb +.`E!Gә7_Y`$"=Cg bԋO\PQO}bSJz28nL57aU5"N`+vFJ b}[mK|pYqu%0ո16,ˈҟ8Ux㍛ˡE l̮>_6oƨab,`qMx(!0gDL@H˭M**+#l#K,F/2t^#J,9+"jwp S툏:iUSuޘvB.c#%vkb]SkSكa fNw.:)ohSJN0?צtM;/uo3%yIϱҲ1|Y~)ܕђ#Fd.+y0=X>:ѹ~貒<o$՞N]\Ćl,hTM_U*gWoiqC +2<ԀOn>^Q*Jh.X%Ey0@r9 =_2z4NEx>aC% *vrm-8d*9f*3PΧdQh,Y y( &QEwX-ϟ?sèz +}y I-پ2fYA%v4v8:adxYD # Pb+CG8+ +*-Ls ?PT\R4>0BS,/_R'吒oaލ^R.5keyqSmABrzDs26XuNOߤٰi +&mR*Di;eun6[~Vy)`J+ප?xow SUpBgPGp,;ONjZ^P|KA f:1}!A_mf_OtrI̿ve K/e |R7MA~mØA s@ѴgmJGpqre2hJbK4ƁY]P܈HWp#iÆ{7K<ƔENg!LA0D^W f,0ota1id}cs +pr_i<h#"r d^/ioۣHz6耖|2Afoa$s;ؗ7`_Xf.]?/C cBVszvVE`J+$JK6`='0T~W5n;::gRhɯT%O;t:9Cj^Mf*0JyLU&b+b71~[Cۈy:j0Rr0áu̥eYoc;8<#fP2IaqQi?oИY#F~)I;j:;4T\(^f4qL@sόȑ HRr1LrjNrrH&2$L"/"=J4ai=tDlv$9vpYr%z[o֙/qRV Re-R3~ \t!ԩk ʍvFںHnwH/ÿwџWp\q5plQ_!vKr(dQ76e}QhFӚ|͉7OKDŶ&Mf=vWor<`YX<H1G3׿' +˲}1=yԃ|Pc| MY#v;vo>7msD6 i pI4ʶpU=2sXLTL>l:Ź\_Y1G{a`CC N /BhGTJP5,= EzKKy,deNE? @{9^:O$h,ʟ?ϯd\' F[DېKhw9,+뱕Vdq(փn@a:A>#R&BkFsvQX"x_Rڅ:Umb~h XuۀDdkN  +U"l1&:wzkVT5m;9šQ[}Hu@4i0,w(? +lcx7Fu֖2!j$RO:DJr<֖)&Zd4`ҥlb{ܑP;*X=Emf,ևCpHmC<4zC;4~[MO_͡ši{C77 IA,7]C +!s⿹¬1&D_N,c_HJ剠+qUt9&Y\8ik#ݤ[]҇K##FjrGI18Ar= +652V^:#Vo r7v_عs(vr>}Ak6~Eyꝉj](4Q =Bhd Sx6]<= [,7`iן%%7Is-*{_}Ei"NWYFa06uپ|ŏ+bJɳg}%ybOk{513hp?mb|E${7z2\1|x\Ⱒ2"uܙʿ`%2ڙ!%G' Ǻ2tGqNC$28QscDD~*^4Lz]畴و-Vws>uD6n +[ufYZ(U4#mn=6L_2NQH/TSfp-UpY, j,hPFEHx-̸S}, +Nt~t0ov6n +_Zb) +'!r>sr nc`hLyFty鑖 +#G% O(v\n]{qQjjJ#GN~K|4ʓ?^AeТ#uc_Umb$`PyQpLpݖDB5LpVn qmw+fO%J~wB~yiJI+m6vXsَ~@>Y?8gw{Jǻmr[;'t){ Ɔ678C _߇3 cXgSRKrgȦ'\%}K|K2mj4ސ<;,ms RSrn1V>|؈oQwajN;B}ʗ?ڣؽCui*|cM<$:[$±ED{1fC>z9i>3IUòZ6F#~ǬP[;,WT[7lo19d_YJ[4PYc w \2 %[\ (32՗&N`c ܛbM9P>7 +^%n(4R!{5LTqfINV[o)cXk箉 iE~Xĺ71Gc.{a&x9,')=HGcw BPy+- 6輛Ѵt +-*-ʺזV[yD:8Q {ƖІ nf*fWB *jm:֞f}G+//NW9-Gl<-VX])qʝR.0Qmp;`c򤪔0pc Ν;k , +emՅ{ua캤U]Ϯq'օmsgօa׎ZVJo]k,? eVuW]GՅc,kޭu?.<]?.Ϯ ɮ9sK5%V..|]'o kfYM? ϮV]G~S̮AV.ˮwׅ7kX~vn[z>^"][&Óٵm8<]:=~]Ǯg5px9ơVĤZ4C۱^>>okppz"itI6:rBT뢶ѽ_Kz`8IVij}s(N+? ht[~͚9 w-v;v_% [0˾>^L},Xb5~>{W +p`x`O).FAFKt~;{wt]AY֮9.oOy{E6Q@Q@@@QT F0 H2arP1 * +"&WT E3F0"ޞ#޾wΞ +L6U7s~Txc_urO.s w+Jq\'U~ս?8Ca,%3%zXqə3r$Hr_u5Rg)(2†/kN)hrܓ 4N%;'}?+RT8Wb#rz~Յ5ۘ^$9Έcvٿ9^xFh+gJ< +Ԓ%rN.5*U7JAOj_Gͱwz9?v\S^֗"r|jǨՙr7?9rqm+Cr؝W:&Ǐ~U7soWnN~l/9r<]DV=moҕꮨs:-wH#x1'v[:/}:Q=le֩.QVWO K^WTr|hF696߷}!R ݁)<OW~Kܥ#4 eas `_ک\q:!?k(0 Oc7_8m?K.۔k*sV W{ܟBpY8^da+[1l Brwȣ'!B^y1rk3hrr!rrwȣ'!B^y1rk3x}B"}G#OBy!bȫ gȅEݑ"F< yBˑW#Ax #E< yȋ#F^G.@.D.By4$Y "/F^y rf^;r_ȓg!/@^y9j5șx}B"}G#OBy!bȫ gF #E< yȋ#F^G.@.D.By4$Y "/F^y r\\\/hIȳ /D^y5(>rr!rrwȣ'!B^y1rkKG.@.D.By4$Y "/F^y rf ^;r_J5s*/7>=W#OY']P/5- -vv'Y]zMEih3 |c)ڑ`ڱxjPS+nEa?`+R8̸\ ;>C#B3 xɾE'D)2dqU1Ef>v$7gS3 $5`TnC%utz +d̑鶑y}Fʃ==T@?-bw_}/vvڞ/z2zzܗH:ܿˏ|ȇ?~)'G/fdN^%z{D<8;^7yțC>VA>ĎKϿ chy7h`n"W>G~*dGy'rEÈ%x6sKy/u\?/S_cu5vp{//ܕة͔=Ԡ+|?i?UwrqV^~n~&R۪4,o7nnEWxKyG<'\wllc _t#ǃ+Q{9.3<-%H˃i +j_Q.$x~&ͅGOl ~qG/v,ѳ?ƃ?3Ʀz ]F<W@Ly#B0A1A!lq\8 <*2(HFC£ŁqQ1bL@H\Pa qpXd/&/AE#")R{b6GTX 1ec $6;%G$p?\GUv0ܸd*6(.>JWc%JZo5SYC(E $؈R\QrL/{!KVd{CqQyVT0ƄIOF~+V6%=fTtLXd.;܈, ,:d'#YK\ƿz(O&L,uxẌGٸ:xP@G. /#SKK,co %Aꅻuo ĸzK$w+DFã`}$S\'nx"., K֎"h8O`$CΊ NG}q#&=5NޮߎՎu[~$J\ "a]ʝ-b(&Z,."O͙X pD,\Xb +ZI_u@bH5,:>&:*6d-x6KC" 0i!PX񔠘(IʰQaRʤK)zKې"gI$/VR(Kj$bѡR."׿cJXws +3{!Fky-\(X`q$M +$)hAq~ˤ7NjV;$G*,W6,r*[HKaU:%&U*OЧ?d0LwcX 9lϨ!.&`8 t WRTYeTSńq bQXRw'7F7u$cL񧱒GmB.-*PݜjhOX1@.ޝBR5tkӠT+3 +Eq$ VY" g"H[ހ۫/d$z$ɃA͠ nKѳDע}Npz+DVEI{a8=+=ʸ+IrƓ`Rde$%%IH`X,fptޛ㉎myj 㟁/4q2IєihBs?1KI^A% "Z)4E2]"n& O1=nL*wJR {C*%7X?H?,.YR_d[շbqHvĒZ91(<*H$mc- +4 Oҽ'Djb!bI'B̮)4sn"agO{@ uXG>xMԯȨImrc${1pI~шi*Uhvx;{y \Ś/io 7|+di,ŹP)R=׷r}\ gU"!:b$4^X-bc$јbk o +owFjPAqK4S(|Nȴ +NO#?<찏wYs˖*'9wt +$=E6i6q"cڍk)N| +KUJ9F[!/I*:`2^fРɬim߽U;4qQa62lAAΨ`fK< N5T:ho#ǥW-N(x9S٥fG"Zޮv8Uym*W&dY=[?Jo6{*(+/ۿ. M:+YL]j/M>J +{$;2J,^/ !] G't[d;C%v$; +jX7hI?F 2UwZϑc؄8?bD3QqA!1Ĺ%HAau:'$BH&DK'qpsv /:<)<$ +61g`%(1QY'P|D{t +8d3aDNNƜ]>d{gW76>SrCy9}cbP{+plL=eUv22N28g|8_wGߏ_|QN|+`|WrGn?]|r\etb~߅cPYƾF(!!M?zx-Ӹf8hx.`4dw.wWk2Gr&:P1\.ȜO{<[bd9&s>nr~RavA|} d +o^r¬L㸃:;/7\9A'ELUqJ'M716h$%tEdʜ$+*N PY$'cK OM^[.MO^T +}a + Zc e5/*)LfN)3s4樉f35./4Ng[FqtAUYHAS5D*v*"k,aJ5RR UOVlT>S~rv>Iƺ*=[SSF3GE(lCLAS*:)ɘwSiZAxUz[$'H$1jA~=s=k}R2&բ0ނvZB<@r$&I~PU^ι6҅Z>3i:'o(0vhgyrMk (tJ;8O)h }LGY +D.MV21.j**IO*#cTJ22>k4L ]dWXЅ/;4gWެqEcy ~?r{Bqq!4+}OCy6d/6 ]ˆoKȗP`)_#?]_6$B %@ iH3f20ސ2 e3l.Z! +9F!B'6.vbaxf30wpPȏ*&tIb%t%B ]E +7qf V%$O=#%ka(kP#τ7?Ka$/&! B` 'c$FO2&ԎP{B &dgB ڄ$n$ԋPoB}YAGB3| 9n<yAEv!|ф"&_b*[0Pe$QE| &"p D WB( +ʆdp!p}x?n !BNZCpߝpOBlH硈 'CG2!N 9@jr&*E &|XB% >MJt&dBbCB&4We"s ៗb="ZaC=oo]o !HvJ]y/}91N:0Nŝ%t0Nq4s$N"tP{-G?'_P #V֖,~w15 Ƅ 5#&SuhZ("}BZjm 7u u}SJHHzEJbs#@ Mw ĮKȍ;!v \B^#IGKȗ]ÖP BRϥ$Į=Qb%ȧDh&Y>GtgUg*@ E-&<2B+ RXtk 'FB m% NxS!tA9DBGl:N tP)ӄI?O_ TUg4NlUG> +)^z)P DτH?I!92'DH +N)! 6"%Ԃn@%fcjK"3#d.5b!w#]۽'!+B}% \D$܁#!g)!w!KBݔ`ބCnCȁ#b΄Bȝ'!/%Xz(|"4Z b,Xń|'  +#4EE(ZJ6Oh2)%>U 3&!Lx +Oғg#KmSwh33fkb3,ٖsg{JGvj=}*|vbo_X!ԤvYN3Nuvok9g׊vΚ;,+OtvLqA3ƿW<#_$ZR˜$^(R4Z2> vKnP4}E Zp -Χ5d퟾ucVVA-mTy7wR%#`y.JGmËK T(\dm5MN#s^vV=fnvGe;ɩ{`)CT*>|X6ִUֵG.s}Ԥsɩ۩j{$?"sړ/*wvVY^U>{юEq4;':os|Y#K;8xV[583"?QP3;.$n`Sr)TOݲCh誅nfvwKN^zOy`/:v:d!&qhě]Y֤p~{g8>nڦ;9yӅ[n;?ߣ_Q ^%hRvWzL9bi&*M{֊S= C &?p~y %XQڬB)fӷp{ԾADNµf-OR6Pl^]mƝwqU:<9ݓ[g[<\j*~K^^f_ri9{n^)i}HuBkTǷX|Ff:X/0{Y5e_cy=޽چsKjoq)a_6M8&8u-u8+sMakaەzOwKV})L~<ۘqt's6v8]tJG64Կfsl;kz j\G_0y6KWgrJj;.Tǽ,Z0^|5_H. žvj54yzfsH?V:XtE)%gMW4:6r9BZ pj![n0[8ƢfC[ۏlzӑ/6=ϯjv7:L} +q{_J^ӲU7~لo}~{6qw饶JSe^^0f*ygń8u>Gx<7(U9^rU_^x]31q{Ӽ'z>|ͺJﺮ00޹G)mgL}yŇ*MUҟ-g*ZqbF̨An9Yt5EeSKƯhm Z?*ig&cW(~|`٥ ԵmX4nz~ce +W +i -U1jUg`#W&)mcv(MGa ִUkz,43}ꓒȷ'_hmɛ\{&σZu{ג +]鍖i lbNo~WS~Y2TveW޺VoctEOyt}pc,cY85{&I=/\(Laag6qЍ?}x9>z"{U wzq~_.VOi _VW4ӲҶN9)w2j'&iU;1c5"D{isgO.suz|y% M (+nzϪ{nTQ8.;J}׆lpк$[kya.]ᴤ&5k3.Jc +wX4*yZjn\\. XMhGաF8j]òiLGǃy`\R+eޜ^qezϑ6MQd $ +ڔNnۧۻ_LMdó*Ǽ>t9Kמ(y.&tb+ïLz?qOSVc702nzV=^g3>ēk?eǼ';7;\3į^f[cU46c|J#7o3̢[Nl{^<\ZF`Cwgn7v97i9?r}6i7JxsKG]M(mz{OO,plt%\>W/"UiZZ%*6'7z6fd9#j:A*u7wN4j]jyRg茰1/*/]\8w ث͕EirY>Y˩A>nwZQk]gs N2EVo*">!wtՍ=|1Y퉋'&YdZgU$Eg"}[Hߟ-I>pǞ֧Z.2zND3?'?mqMt̴t917Ndž(njFG +ϷYWm\)4j2mDmԈW2WXtKZނN1oRttOϻ#,)Oe}=U4K=Ovjf]3}RIkt[޺e6E)RH>aoPޫǵeV2̘L˥{qhؚzmM]5cӖV],m{`O1u}:83­6^) ھ==@oq>%t>g;}t6g_iuk1.{tb;OGOϽ;^Ë/f}=3{[skRFdE a?NjLqJ}>72yAsRvM|)**[/2j.Wn{ho>gz/h جtB%g甎L<9K"o[!zAuWR6Zެjy6K,˻/̧7oSČ2ڣ=$HenqCnrK~GMW(~pJΧm޵ѫ( Y5hZ9]SZ_kP\t^6~{o]ɝYy&ߏ4p}o|T^'\gFˆ7;ea뭄l|{Z(.x`X˷6- zaw>ß5w;Q.KV{e~ ΤפحVyll^M?kŭjR2^vw~ + .0.{%jmw0i2'Ny@8nܼk35'7sͳ~]]CxY8I~7P䶀==oobL7|Y"-DC_B;. לjxn z"}o˄&z0Gn&i]q-f"f.Оx7 xFH6aw~{& |D Qtx]."cy[sw"gP +XnGz4|N`gN7Gz=7G:/4 3!CwN-^`π~oi +a4?bs}ʏBCpI=WX\^q8}D M׵|0~\f n)Bˉ;ڳtس vh@/OHO47;'!{}Xk/#|z=YG7V +:|i ->!3a=9Z7B )3ej>Q~=gϐ_WoV51ѐx~y (p C1~;vSXV}CY?/Fx~oe/=ԓZLXcj悝o7ztwx4nꟍrC9>Xrj?<+2q쿁~DHKj0k`g7΁Cܖ[h:`zr#'(i*wCD``X)cgcr /F;_N\wL筟<:ObfT +엾?֣M_Ӱ^?zg* _Ro;/Ȝ/ZxnoH7aӨ.zwe>0[oI ZA:v|'}t&c?<ҁ~kC{<^p)Q ;|H!h/;B9gl~oz@]]]lfogBptIGm#܍_9?++t ҙ~9l(跇A+pu܂w~DUqǷ>Ph3o.vQ$a\w2B"q8!PO(ڿA ?_R9Tl-֋({\_盃<θu"@m"v=t>^_A:[>è_>~+'Qg!^H?|A\owUZQW~. +xa~c{u1GcVW7vy|\㲯%ǐ˰?3z|β\$G]i=u] +O=tD<#-(籸iOǹvg&7}r]`7'sߢ=Fsk7'hձˋA1=3*N\L2I(i~M x'3fuqzPznd$< },oS!20pW:~xw:y5i\8ΚOlx +\ϖiSenPmX·&NiM_ݺzį|lSA8^k7 p%w%s~ +χX|~ZΛ~zC;/&2 Pʇ`{8϶ޟW Q`:yWRH77Ƕޝa-o~},Jypcm1~Pv3កhK/E+Wql虂P1\KbMF H +d]TLYt8~X?=1@~mO?FƐu|Гi݊"ħ|c~{ ߜKYXNb9i+΋v΋`=0l-]e@,_%W^a?_5gf~_LւG؟9Mom[LB'y"s'yP,=ۻ|^| +Dr'_-~̝_zxn?iAHO $bx3C<=V0N3՘<`q~a#-$Up[~/HwH:g|6x q?ifVct[ðX<;ɟ @O+?v{qEo֗>Y~Ue,\`Lzc哮[x;=mnp`*p +C9~@c31!}>kv ?D{v_J$n_'`?})!L쟿AWL{c;bBD6 i 7Ce% 녅OYpޣl?TTCF i,Xњ[1V=xg;CѸcW/U?Cw)`?E獇y0b,jg{;/WԟA$s߃6?4C.X~ѯ^~qu|>[a*O~ݗZsI9}ߠ'GrX~sC##q<}ߵ q>C@=-GnanY3q z/cp^B'y֢.=8Dś >;?\~l7r҅;peRzP5f桼"37s5h4LuӸvy? O$~8U zc:؎ pEyc6i\< {/B}ec? +ȫb>j`LhylwqYF#<|7^ v8>ЛMlw-4i7Z}N [y_'WQx;O#|K6wc~#b$ +a{1@ >x^Os9w[y؀ZMzJ#q{c I[0 U9}.؞a.wrO p8xb;{~< ~u7|AL  +q]_t]^p; ugsF./t H7,}#n~v]mw2;ypypK:R_`^C/9@2XO+]0`?XJCx O@Ws A ؙ8>$9#֋Z`U*xG{ss߉/B>.O|twO]}p|"CGOxFXnEp;A| u;'ch5gt#AP?3ר{8_&G=@FO; v">Wc03}ߟy#}iW۩rC#7ڸY܂+HTTCXL\, &C2!83[T@vW wT(*(sUU5=tuUNUV][x_'>*nqO=oGw_h'v%[ٿc0XRm@B3Ou i=a|P$Q~c<7# +s?So>FbֵwzI{}sNj]j}?%Lh_ #/4i~oQҞ*_K(~O!Pn[;T=M}7PFy_1Wx>m៯?QL5/-tQqgWcZgX8sҞi'iwP/~:j$Kw}ifd3H=ռo3/.~?qTf~t#U*~wiƗ1?omq/0NkvPP9/ވu'~z~uCSՕ[q_hG\mFs[5O^Bx~$ퟣ_s~>D 3/u{C1N}5~~b+_<_}֢{ )_7a܉&W7?xoԸFqu ?.I`=Йr?s|6j߰as2ok<="ձ࿠?ih}>5N㺷Yyw+ oAs/Kl7\w?{I9jY[ 73s%Hվ߅LJ?F}?\g;~)~B3Aڹўg)/zb#uoԎ7E;qX4!j=cyH}_q맛$0R~{u?)} +K!>)x2 ﻍ|˱/}W⺀pWygJ=}==N1IRW3PO|9n4`ݡZiI#>(S-vVq[v4#.gs>([;[?!?%iwJkas&g4ƻOTb3SY*{܁rè +U(g2;Gy'>=SgTjG +oR!o;*xxbI##Tmjw[FSC0$'xo*1?5w4f9܁~i֭fBi;/[/'~5߹«0\D997R?_qdTvx6|S^2N<]F7D 6X7_h(->:ӻ)iĥÏ2eu{ߗx~YHA99zn7 ۡӥR.d׽5XF;DZ@Ak8yBiˆc/4e򷴃zϢwr ~~T)G}f9W#-f^} QTz7NK>|/)^,W߉?܌O8x|E~ K9jێOg#ι(,g~a"rw 珕̇ԡ?vɣ1\_R%sT +d/_钨tYÕ*/ݥuR(B}:x~C޾%r_T ê*}R5bo'+M}1oR{a\ubk3ny +܎8-7wOފoG??-o+_切O8] +xw"_q.W~Ǽsw +yIϳ9~u6~4Qͣßx99qTVڗ'~:st[<3LW67$3v+Q[g~BRN5# 7q`^Sy/#SUϟ=}ϽwH9gAO|mL.7(Ǽ~яُ>S{u߯: f|/7~EM}o*V#~[}j2տ o?Dʻ9,q(}.U!7Dw +řJ{0mOGֿB{I;(X~xt +|*n_SewI}?B?a}W٭0~9D~` U^Ga1*F_9} +#}4#^{W® \ +W> -WcP =UQqw3~'zH㻋jgLv{Mko>vQx^^.f~]`׭ +W}20׮0џ7ވkQeH9j\|M_O!o=\CEf'rr*|ڊE_/I<+z{ N/XTh5+zNWA/8qg渓yqU'ߗ+nT/~~ΌrПOfk_yǟH?\ +bS|q +P~Oqo~5W{GP~Wﳟ8a]r7۪= ]͕7WA{\^5& WXh7@S}&qT^ho!suvE_Qa}Znw&ƻXW#?R3_ +WQ-C>/e1m"yH|J`bbć'.q_>j_>xV)ퟄ_`]~\#~g3<K=.~  z5vE| O pg?۰{V!nJ-\/E^h9r]՟4!o?op^Dc?1.<&{rgT~7~w<+ޣ쇸eť!Q1TVo@^,W2F_#KSyuF|fX~|s|}{^x ynUq|ROՀn^lR8Lл^-+W=&_q ⨧oa_ϑzy5>n${w݀9c_=|j=ٗAO^}lv8sG8i'4YC8 O몼t=o1Ys1u8gsᘿrLS<~ރc8_w'=D0};QhC~=5`fk+WCWHoxW<iuϯ<.x%R}zݖVWc^np^϶ǎ3ϋ]j]qȧXQeygx^v?| ^ ~O'9?[4 5gg5Y}W?uU8O!wR0ڧ}(o 4i>+[xN0?zWqQr_^G{>8<|p\7FsםqqRz/rTƗ}?\.WNAun_TC~AޯBۡ'TP3U7/ӄ<ʯC0u5o]}jQgZ?lu5膼G\#jv!}Rˏ:㟛r?ocqE§Ѱwk}8vROc]B>ck*:法k߻lv?-A;|gO!sn/Ÿze#9ȗ?q|a_e6>+\Y_Y/W=Ag_Eu?\v<W,n?/~hʯGC?6J_?-|{k^"2xLڟ[Ww&cY_w1t-0q$?Wx͸ťk; +QϏwJ_6FB)liC>r>?"Ļ`}X9>F3kv}4Gh('|E#~@j1X/ ޓ:D^s _]8'l~RqGIa^skslw> ~5zZ 5`tWփ1/~1/{o<=Ǡ _R,E0ݘ.)3e`k4~'EEwSvE;_L|]0\ޱLp_oaEO%v}hsA>F|>g?o~[<׃7܂zOG7"ny-2 b7bzO"_Vw>OV?Qm`>/wY{x Mo\u"ۋ|ϟ {O~N?Qۇ!iϦCd?vf}''yx{{S?Gn(7a}V{yכqnGQk1ޝ]V]x~?|d<'O=ﳀ?gކ8Vb?C^%C~qS| Q}O-{4%x](g0Q|wLx< mցx~T:U\Mf>*'Nq/y\k>[uW]7jI{|)4>=oպ3ۦ] }}yޓޜBzӷWW-bw|gY#}YH=O8R'}T랽F㗨3sߥZa>($j˷H9 (g?j+.<Ùz(?v^vQ&QxAgj|/$a=}tO|;f=Gb?@JsKؕc&#Q *oP8Я^mZ_=c's0pSbygSK8PA}&'#SܕW.Fw4^x.=|'WQ/H=(^~eē_iu+oߢH#ƻ"|+=>y|'s>;twxw>W> u 37v2Xl}goO>"OB#-A??YAiO wwC4Pw|go=0vwPs6a}cS[Ol}1xSώ>~Wz6/wg"s7~r٧ROy"}axs_O2ya|/݄r~ND;C*5`;lQ}ݨإr''ϨG3byD~ҟ@Գ{;c{}Aw}A-uPgK9jD +PNma~a.cGR5^|nYwT{9뺭xx̻{TU#0;st/=<3&Qc}C>ߐo3[myw̒靊'1)(0/"Xm}' \* Bc~؁RO{m`]cF;OAqzB!7@?qG}%87lQ~敷~? Qˬ"z_g~r$w'uucg7 + *-Pd4T:|̈ҊH22!JGcF "c#r,Hiy]2 WGEBjRɑd*H* %Xڽ?5Ibx*ɚpCJW#4ғ* ;/TZ^52VRZ*픟 UNIFuȹx46!NHh~J+ʓSito"Rr`|Vj"5u>XR9pOrS"ZQ 5©*MkzGcQΥ4X;-ecFq2,VA.V1XXFX\a]DxM"IW?/RIBUMW$:ǓDWTQ +t+#KK=&TXOI%ǟ4ClcTXƹўխb WHO5w*vt1]m #gu$6!]=~[8yF;dB[yLeme|.z֡lf{g-A%{gkSmCUPjN:w*4xCF)u"Pb廏(&& +ܓ[ji&h$Ӎ;Ց/*⥩脘ۙiE+\N`ՍOmw!CN\W:{c4_Q,h] boC,/2BE9ޠ̟`-/&DUNK5~K5.1T^!;DQXzڐQ'xЛs:ӌROc原*F x1YӎB?/4f 0cRh.PWGB %К0SBP1E(dS +B?C(g4C(g<rp2I񑮝b D|SOAq[ͽCK}p'|Lq sAF9'޻oӝȧ[O-ߌߥԍM~C绷ׂti~9:#ڏ2۸6gY6d-ݏ~t=GJ7dB=#=c8f3ݙ&suVJ6ϰ}W0-r 'KOՇ>ǧ??}o=2ה+e1s^lbuW1>m,D}i(?:@#{:_<;*k,~V,2И3Bc_h y{&慥)T:4xѰ| ypF#Aj[ƪT2SwF^iemufX̺Iaݘ Te>[qNW +'N88(~z+a?֩'w-1G= %w4e;d KKyuM]|E!̓642K :/CәzQ~)} k_+q)RʫI9Z +pZ9A7 sCҊ Zu*T1O_3ed2[l@u9Ať 2ʉG>ʠ? H)KudhR$9MsM<#q׫r87g4ҩ~OZp"zDD4N/w +ʗm\rOx+!)sTQkUlg +<,{ڨ{QkWuu:SʐblQ/VV-0H$+!b,ژd,g Ub8IٗhO\Q3<EH[, ز6w7Z瘻2΢˛zI\;eYe[⢀V˸l[zQ%h߂:d*4RԉV3c_#[pxZ9d<6aCN8qS6ՑpT(lmW1Q9HYTMYj'XᜀLY[H*Tt=w6]YP>En >F^ (צTԙfEp*&u2doFp.lJGOh.Sr ,DV33gI4^I{>iec;㵙0qsVSJ=x7s8wK!NJwgBh,4nPѩH""ù0Ћ-TþH ]eLwmx<)P[C?N3#9M<5mtmԖU˶TllT u +~ǿu gS>h֗d_zg) f)BtLڥܽqM7gV{:=#Igl'^H'cn't|0Cm^Nu(:ypڙQy&{pum;0_$/@$+b|=W],%(!%h?DEӽe=x:Ja 'G-@LONǢi <.u xMMpp4%d?t,ͦ_Kվ,Y;cNAG~f3Mq_u2WM{9z{dT (DnlSINR +vDmt%K'ʼrLd:NV{S; CTFSu@цn:PVmaUƭns2V_Ჩt-pB!J2w(MԉǬ<sd4TƀcBnCZVMI5˿Wt3C|rMX̟,lvY~ eUD*õ鍔 %v8Mkdyc_3Y*?eU:m>HrX=G~;j[' Mx=gU|MFKé@KyUEܛֱ*T;uʣC.S?~j+v0BAՇwwS3X+ U֨:`nVPdi. UzjwpeoA(Ym=j:gdPH8gw"l.$31k& +n6"VLDb!ODzi\^Dz׃PNJf[ hSyMʝǤwa-2b\Ul<{`ᄎZÝ+ WexzUTG]2D^wtd?'G^9#v`7؎l(vX*RLƓ4@VGHdž3uXI8 DUKB׸R.WVu*"1NkM3+U%B2*i3P=z;;Km70VaY.P<8 +vFd|jvzqYzc#}wb:SG]dxuqVA^ND:8b:߃Վ9#pjZN883yZ8;ĊjoVQqQ翩54LwtNsaR>vL Pvi2B{ӥBIQl2Ǎb{p;0 LK2#=X-bPWL.јkwFZ1YJw7] :IKԎ{}H89$WS>phrDJ <߶&VagSDF{ +GCIˇLvw{mGqzTMTMVvxxΓ6[%ҷ* Dݪp HGь#ryr|A+p5c6_OKeSMkth)VOCPDo:N)O>#^X~HɗW ΎU7xJ8ӑ@U%ԥ6]"E=QۇUŠY?n) 52+ՊMr-VYCё8[|y$VZr>n]"@W +֠}׋})"N~p'<@ +}m-x^mP'ْR[p|'f%:z I&|D@2>fpyXpf^5f5bʙUh!zam]zp|#ET,$K/-=w\td$>tPi7l.м"l]Uwԙf>Dj"1s*7]u[mnr3GQƯv1}ujoύ&/FLN6Ce4Me9ieFDm]:@ö/a8Ѹ~4-aueS\S[ß ege#!FblTp-O|Z +_ZpxrAAYsTَUC?Dx aRְDMXiԟߔs7Iڎu2GlaJU'eWG氕OcP -4~8ѫC:Jn;N"ޮRgZ//,,MñJ諒xxq{Ff:u NۋҮUGǗ<EW: *?>_?/>9ہe^pT>ԉӿC_ +\EȉGnrt΄|w|PB)3㛇΅\=9fAo"^7[{7owK-/[zmxx]oZex_E?Mk_f7X|s;xg8xo󄯶?|ṫMxog%e/@xOX c-~/xCï,,>E(g[sgYf诶xx>(& 7l!,^2A8fx,%υ,Ooπ~]|koxm0mϵx=Y X u_z"NS$7ncp-e_,~7x# +/X| X ^e_M; f%_ +>oY', ->_϶j_ `YwFo_`v;yK-%xsY|Gw_m6,<,~$xŏmc,~⧀k/q_,xrY_>?ϳbg/x|wg9x7m ,>|ţUTY?|g/%=-~jO߮7 YsX| x;JROo +e?h-|׃Z"-~@CM~1{[|5>r*O~e¯,\g#X*\wD=Y|=jC-SouY|xofQX^e=->Fśpyox[ +M 7,Ef,%9?ŗZE0l}?M{_J,Yx}~f>W#| o'JC뉟ޞ:P}!տү"> ~5:=tn!3%\R}zO|*?s>ctaw纄cBTN񋩞 :kz{,KȮćQ9s?J7uM7ߍm)T~3O#i%>깞8;ϟ;sOTN.ݸ'ރxq +_MEL*tXTLx-?'G?GďgbB?O|1@| @h$^H "D|?oS=ϣrZLAoed'n8V{I=Dg79!xo+<5ߒxq274dW ].*xWOONx8!,΄fˈ7?ʙGs⽨ pROqOˈױOJ=*g=Cf>ߚpOJ7ٛdWO- ~.?#'9'>ˈA~RE|O*'A&ggE|szf9c/#ǡF߰FM;_JOv[Fڹ-Tag?ruy@OD ?O?)/"35%vK|SF3rOlD?lo84 Od'^IH| ]w_I6sL;_W~+Ӎx+7$*?u)"\g yK8TE|O*'A0W>?_"q]ķ$'z*_M⿰Op'$)%ۛvT~?ÈO'>n_OsCA%$@sTzxۑx.?KyKK.8!~?yK|4]xO0_pC!}*#ޗO6TNE/''~%9!ğU!>?T2ⷑ~ >&?mI=t!7]˹'~?C_If #rO?29>U_)wzJ׿Og'ގ(*vߞx#9pOe^">_sO[w ?'s=;sO>g;9'8w~Ez,"8I|oǡ2]8!^_SW]7M|49C@@6OuOO?Ox/<PqO1R!>;~.9O| w'^@|'*8!&?oQt*yLӉ/Vf'?9!~:~#z_#yK|g#Tqx?/Bo$xGI,% f/rCBr⫹>_O|l w"(?9CKFx?ğ/sx$~?9I<sx!?K|M^Eį/T&R9KI?+ď3TNhk>7pXߕG?_o7#>pFKB^%_b'~?_O9'ދw'dWm8C/O#__OqLE-'yCz[rϿyvssO8sO27sxXUO'wxK|?ķ_?yxa',?}8!CKOC8Iq?O/Tж>?#˜F,^%^?O\n#3M%)#>?o_W8'އTg#/>gqOo!?Ai%%!ށ9?8It"G?_ '^?kxT2w?/?sBM|'Or[K[o# Qo"{[??IxcJq8pO|$ӍѼE3?/⽨pC|_/eO9pO=/'>#'ރײ%?;B5!pOėqG߂xO|?w//|E`Oa, /?Pˈ_I}.?{sv?S貽?/'9OF|e'/SF|>?oI?A?q>CϨO⫩&_JMCt_F|+?sxK| ~nGď?Ez/8!~.?qxl?|">SzWrOBoO|_9_'T&sa? 9ىċn;0gqO*'9߇ďe'4?7??E"^.?_Nv5?/_rO|?yDC-Go%?>?"qO=鲽OH/ >/x'?O_qC|o/G8!>gsyxK f?GR-!~8/W9O wk!>!.Q?rO|Uxڹ P9%;sCR/#KX~oe'?#yK|9'^?'>"^?s8O|Cgqx5?!~=?Ǩ? w" +OGqx#u_Io?Ŀ_???x9!|j =??H, ~#އr;o&>x7S9߈Oۇ=|#Nį!~'yOIw`' , ;;sO,x=Y[TF9Ox!K|gO[GGJ|'kI?&܉Q_׿?⯳_E<%>7/Kx_ {sO?ē?_1H??'rH_S=W?jߖI/w9O|*?c!~#?v$~7U_@%a'5OpO|'Mďb'sP dzoEw' _P=ćp\*x_o/&O<%ޕ<R?_?9'~Ce')K'N.PsаM6hq'Yu߽W:ٶ_/ٞΓr{O~Q˛yZܓrO-<-w䳴ɓZ'j'G[yZړjyOnm=y?JUvbد~-$kyg_~-"kد]~-&kد~-Vrد=~-)ky/_˽~--ky_Z-ky?_Z>@b|دC JGrدbZ/kyدC~-Z.|د~-!kH_GZ>ZKEbZ>F _˃~-C8_gZ.Prددb~-WZZ[9b|دߕ\/k_ZHt_3~-|دYb/|د~-_.k +_WZJMɳ~-|دk~-_+k:_׋ZA\_7ZIbo|د~-._wZS]b|د{~-'kyد~-? kA_Z~X~-?"F_ˏZ~LbZ~Bb@bد~-?/k_ $kE_/Z^$kyد~-/دb_د~-!kM_oZ~[Ibد~-/k_ZH2_ZDbZLbW"k __Z^)k+__ZF*_˫~-+k;_k~-/kyد~-(*U:_?ZY/bد~-د?~-%kyد~-#k_G%pr;O~G=E-oɏjysOCb[~b|د~-$k`_ˇ+9Or_bZ'kدb\ kPab|د#~-%kh~-|دAbZ"kyدc~-<\qb~-/kyدbOSrد~-Y)bNJZ>UibO|دqb\*2_a_~-Z\)kyد*_Q_~-O\-kFrLr\_د~-'~-~-~-׊Z,kyد:_S~-O|دs~-+k<_\/k_ZHt_3~-|دYb/|د~-_.k +_WZJFɳ~-|دk~-_+k:_׋ZA\_7ZIbo|د~-._wZS]b|د{~-'kyد~-? kA_Z~X~-?"F_ˏZ~LbZ~Bb@bد~-?/k_ Jnد~-/XbZ~ER_˯Z~Mbد~--f_Z~W{bد~-$kyد~-"kS_~-&ks_+/"k __Z^)k+__ZF*_˫~-+k;_k~-/kyد~-((U:_?{UJPIQfQgm+1,)ZJYIiaۺEE%e])*)*10DĨ%ofs3Y~^wg<33+;## ##JP;{F) ^G(roː9\ #<Q 9RG Eӗ:GGǀǂ8xy ||"||2<G>G>ߣs,/4y0|:## #g?r<|6<߭Hy|<G#'cq?y?x|9GGB$y<G#O-?b +#_#_ +#_#Oi?:++?r*||5<GG#_ #_#׃?y6||#<G #77[[?r|;|ߤs&|'G G??"y1||/G #/m?r#?#?#! #]??#.G?c??r$\#?#? #?#gFWσ/׀??K?r 2 +*G.__w\## ##??r\ #o7U?&y3nG# #okm?r-\####ounwȟ;Fy)####__;tn # ##[odGG#?? :??ȿȇ_6O/0#wȝG:^b# +ށCp5rOo Jp(r>9G>G>G>G#ǀǁǃA?)?α???r||&<G +##??#Q?9?hy # #ǁ DB" ?Dy<GSd+| |)|<GNȗ#Ogȩ?U??Ly|-|#_#O? ??y.## #ooo??Ι??.9 Gwȋ?=??9G^ +# #/m?r#?#?#! #]??#6G?c??r$\#?#? #?#gWσ/׀??K?r 2 +*G.__\## ##??r\ #o7U?&y3nG# #okm?r-\####o-:7;O?r# GGn??w{/j_߀{[;#??[V'g+;## ##߬sH/?r=W#r/# ~e}߉.ӑ +O()h_Hԩ$BxFk .&\Dpl N%LB8pxq!I8poA-n$\Opr¥ . "l'C8ptiS 'N$@8pAcG#ܾ?Ⴤ[!Hp *K ."\@EN8p6 N&l!H8p<8ƒ$F n!p#z5.%\Lpaa;ل3N#J8p""C8pI>H "\Np1"]sg N8p*d‰#

H "\Np1"]sg N8p*d‰#

H "\Np1"]sg N8p*d‰#

H "\Np1"]sg N8p*d‰#

,m"g^!+gCmͧ(eܗdiep5%?U;-g%Ye.) +t dg0NO!5`iuT d (-fZp1aEc;+6j%7jhr~QCʢf4D n:7[[9ܵSD$>Pms,NHu%GO>})z%:ಧrI +xnS،u|h]E3:l/+Ыx#8:R䦩KTGruYN]HtH?̈́ +{[DHaXkFp U +ǟY1ͥ൝,áNa:KaݭIdpEe}>m,>Ї$s̓=kiNVuN;A Z%I%|X Y~WWt܎Oҽ6ŭ͑}ȑaqkfqkv[عNK+c",ێ':;Dzf+%Nab~f}"TY[?^euT,;:<$.O0DV@\N +()`` + 1pAWK:6,Y+Xtwa Q<б#Cp<E48,CԲԲze1jeEeUgW;_-+R-((,-{G[<6g(vr@h0li(s>vʯv;,™FFYvck,Ѿ3yOb,a9m9$,Fx3mP׏SvC͘e6%˪ǩmzxܶݺm6f7le7R)mP^2XMئgapuM cVjW@-LUl05-ZmE@-|"Vh]T ۔>VM2@Mήi!ja3q"uvM NSlS:zC!-l~kZR-1QDv(7ч'{"µ#FXD?x^HQQXDyivnՑ]fuXɫ:,,j+lzoyۺnnvZVZVo,i[wv(\-+B-ZۤꯖuZ}ߔ!!N blk{P7P3KjZDΥG{b2)PlSWlspw}Ny뱜VfɼueئLJ/ 8o\b2o|. km%GP 5}6bzCMqrO{Lp=G{bzcqM#]8.WlS(?E, +E&ZkWlS(?6q>{w@-{w@-Tl}{= XhM jabzCM||#;gh#=[Mئ2u{+jᎬZ&:= +|㮀Z(D u{m6ǂ#ݴ h]p{)? |N-l|3(?wdšL-Q͕|la1Ǽb@-'ku,-;  :35ED배!/]tS&^6g6FoԻ'X7yq8I>~TAX yZ&>LJ*G,Ǹ77٬m|ˇyzQgپQ.kkS.qĺձc7`SRP疪Yփy#&\9ɉ=+\x `D+a}ϡ,լ4MegO Y'z }vG<sD{ ܕL ZEbX>Kna =vbmO}60,Tn6DgYmmQb@ڛ1,_C_-bh)R +k].PX>?&W֡|q|"+?sgJ%n)ϝ߷P_̋2̮\~6U(5Q c'wj xV DL %GQu/_g kyW9<`ԑW?:\'].I{q0Ҟt0Ҟv;L~UGG=zd"/7s"1O=uG q=qf]r3E[/uOkkL.j/׸#P+əzU[aӔᒧyCM{H@91SD芜Ymuq2^x[pq +&7 +q b]!&CE7zMnxL.ͮDiZWxGߑ} <  }>Ftc3WV?/%R S쭖(s]PGK +WˌP쫖(sV-ZfZQjQF2[;v!吶'1_:Eb4/kNᐺ;5\j+I:ݑ.bf 8S9ŭVv~xWW +E[u/z[[EֽֽJ|w{8+lӝNn )wyj)EW{Wp{=r{f!0 R~\ڻrhU{\Nur{p{h]aLѭ}ۊV{[u{E^"=uVn wZ[9LkY̴v4Z;k5fv+;T}lfz{1ٯޜmoWv{ aߦSɪgzN5+Q{-V[ Uo_fu˂ޮ4z^Co^Wo\ކz{6Uo .5یKv{5D zߦm%fz[sįn$XT6VUo!vYkzh5dz;ÇQ{mz{b3=~^Wo^.Pv5zbBzNo7zN0jzF ٪.QIfz[d'ޤ`6W۳7z;͇z۷y~mEfzqa6_۔٪޶\h5 [z;h]~NbzRnL4dz;ÇQ{m׫z{3=~^Wo^ޖZ]|SNG\؁~wW^k>Z/o˯o˓qK^w˷g_;Ϭ緗gl/_*f>5fqfJ8J͸`g,uVYq:g6La1a6P{dVi*ǚ*ώ5UrU;Wg13Ua5[ù~V~nz-jUoםk }k-և¨6WTM0 fzLԄ`6[ȫTc/ǘ=Ưފ7WMSUMa}k-ڇ~fzkmh3-m٣B ކPv3}x񫷂s[+U]^Co[{5 +VoSUBۊQfz}RF[Hv\mH3mi#>2XMVd>5v{ -I[C%#v3%W[7.Pvzg_eƩz[t}k#Lo~V|>Mx3Ma>C bz8Lo7[pzKކzJV߇~fa~V>,X QV7Uuv{ W[7NWvTUok2g-,zK=+Xx#2UoˡfzsdUo[/U6ՇahjzuHzm४V 1!fz=į,ހzm%i4[ٙ~VpfzV涪zNajzk9#XxjqUۊ3vfzK9ïmŪvǙmSV՛=.XRq>5v{ Wo7g^Gt;-o狏E}NOyFg^!^: +;ev2pطUwWz7]a& qZju ډ:;h/Gȋ0}.;^ u{Hsk5hZqprhþ[&pr'Wx9NHwG_x@6HF Ԥf؜9Qv_.0"ċ(J2"˫ZlԉظǦBM +7AM /bTv-6l86l5bol~HV_1z?D[7bc"K c296n#6e~cɅjlܾbc6>IlƯ*fͺ.f~cvbc6>IlƯq˱) :96Fl Tp$1fu"6fuFl}竱Y+6fÑl + +96b .o^uofظD^/ tL_lݽ^mT7<6Yy07W;Fk]\9k2/Կ2ƶGAGtq] "$=*2ƻGFwqmT'z[\)c`mT]/;륭"^=z2f:t ذ."^=2RjY]\Wm2FEU'GZvqU!e0zCo+/c5X[[z^W0uYuz+פ`_Ǟֽ +fMl+[v:{נWP_'w:{ 믠v:{q믠b_A۽ +jWP_Gw^ս +j+{WWP__A^ѽ +jO+믠º_A^ճ{WWP_!믠:v:Pս2jWս2:ƫ{ej\ᏣMpDk_"qX[ziaژ"kc-Gks>@N!r@mM&,Ÿ&~-IGvw}ZOeyȳ\2YMw9j=cw^rqwoI*p | t!Foyu+F_&<XVGjxg<[EVXXJ<(jy])*8 m6YϷ5IRiO[pV6#U D!PlzjRE"ۆPyˊ ʎePVjiUW{zrBiE;?V7 +PG̣gi +:ɰ+ScH0o ggCrmah-r ;Zݬ>sxE];$-aܥoZ3K-,Q[O.,m|%SV{{>d,QX' 聱 -|Bg3 +>G^mi΋k'H8!`3-0?_5y&f?جfE6{HOɓ:VnLdKmyù9G,bw_D&ag g7"$qp~p,[ɝsh5 e"A(L7T+9b5Kĥ :iӆ,[E2تfi +eKf,#^dh뫗@#"}!\i@BCO bu]"ҫ7 m9n6bqlTW4qe5>/7lx.?Gk9p/E`\nVPi 5}Ĝ GcA 䦩K69-gg=8X8J6Aby(zmtPk cv$A'CGՌ+wO-B-m(G _̓".6c= ,a@Կ$_ıob\U56[w,UN]>Eh:ny[͹ϼKP~)-r +>4=ThnN46K+ٖ2VZIep>iYBlpwӯ[&6K S0ք,b:>TD=fڎ -TL l}πrY ƶmH]A"jYqP}(8[y\ +fCS$ Ն}JsVdd BdUOǵf9-k +vMQSߜY7&apVGm`cF16Z>قuϤ&fV>ywo-[2Md6H)6i|)U_zD5}V%vJrLKSf5<ZNyBy7̚G5 TtIneC`>yaCVcc]3Wo5ǞMˏdb4ls3+_::jlҥ}SLS@9Bڛ +%iGkG_-CKBł(ϧ>FP.窾$NX=fTtIaq7v*Mvu/6`??sakb^t"ˬyHnJX-P(J(8Z+Pn!+w(g%b{8uSS|m7ęٺ3#y;|Y7>iΦIt#+C۰ +,uk̖w0(c=](aM ͧ:?˃޳A ߳SMrgԜ-"`>Vv6ۙ'}P)euXB7X_֊-XMkj|M146Ӿco e`C)2aGFt lgU^!TTIw=L}YKXdU>QA#lpn gD + OPt_n{ڲY泗obGVZ^k@^[W +ٌCahwh( 9P/250 :X&ϟZ@70)^ցYUKBlþTƭ0ځ0U:O4NQ$d* KGWa҉hKYąljM͒tY j;?It\ Za^PjA>{r(艹s2L,I,]Lo_W|дM>8H"p + ~槻"PKgrVMoi2m3d=$w]/݉um8@:դuE6IӥԖOmY-7 l `˯mie`lq2\bnCg~=e7vӇν$ۼ^ /@B 2w1%WU▶_z(S<3o$D:Kq-AԿ1f';sx2'FpsSJa=~F؃b?cʃ~ƣXX#)yp9`}nl:l:kqMtcZ O} (S}a#v1ͯbN1pS_ջM +_}{aޞwNCOoCm>nCmZƉu\G𥍊&~Fb˕Q֮ ٵh}:)jK6qM^b!ȯ. wtx.EgtKƎVq/Ӯt tn3]U4vXdU]'KEt,oawIѥhqowTQrYb;HKKjp&xo, rAF5ٻz,csW(ļo<<R#crTc1>F{t'p@Wk5}YE\"Yw#zHi{0/m`K2Ղ6~3%+]r1is:dt'Q4__hGܘSaX4,݆a`˭> }CĢ/M+XjKK$x2f Ή +yOf~4]ψOȊ Udp?oJ}TA;¯w»~5/L~ᔯ}z z>a@ZhNa/GmW{Ʈ_=豫k{ٵPZZh=ҵ+{+` +r.횦(&%nd'Y[o~}JnYşۘѷ4V:5;V'|͸~clƅ*[NaHbpDȫϲ[s ]sѷZ)+(AӞQ6GBn\eBgk|-,3aSᶄN)qx -{ODz5mWPOFKqqrKI4!C|u8żw~%jjw,R4- Hw]WHOXۻts#=choZkbQOl"ƗQ?la Qnmb lxYb\!.fo1Z-"ܾZ>d͆90dOCY>{Ȧv/ *Y $ͺ~ՓrqI@>/:ȓnwfѤ_bJ0Q}|>O:{slI^a,Ǿ`vg. ^f, Gd3ҝrH!{էf9e8k|[>0lGDm)XzR,_.&y;>SH{GIvr>+-,~칉])%ONWiҕrڕXlU˸dT-VuC|\!w\/ `ӂ78ʐ}2d;Z #$^KͨIEwۚCŏ*Jd(:*kOEz Uf+~m!l>l:eFGV?kV[_ڑ PQ;bbZ_EئIv>KAdsluRߢM^=W;!:ͫtn3YX_iŸ(0Ej}VOdy~>V7P>oNb{zFۗ%$\;39vlG<4V/t{Gs{{ {{]+|Mox71u]l`ֳV?Ҋ} ͺx3tcn+,GKg C7ϒ *.[b,f^D q>D.v53/72ee~w(s\]na@ \!"ϸ^qO7o4`YKt_#`#ls6-K2\KO׉~NKp5NsDlEcv8?h'0xȒYu=q(=H'@oۅbo~5ЙoDl~ewҳY<]xs?tҗ:82l-ONceAu M ^QXkKPc4Ԙ xָFdҖ_^ -6^`j{d }nOѳ} RS>^]JeCҮ>; :+ZOopDɦŨ$t5U<ʕAX놕ܫGyLWQj)ʿmjLaiP{Ш꿸2n8 : ja?#xtlPnJ>X'k^|% @|Q{bX͸ +Xy0$3=~̍0X9YP(6zY"Ã9V ~nud K2Gl5s cv?kc9Hd X.g߈?]>m4W'Lrc8gz4L: s4{KVruў;ƕfsaʎڪYм;q O_o3\Pcv-5Yh?kCV ~%uWNr8)ͩF܈?A#)|V-0W%~ْ߯$ tiC207 LT)L++ϟiv.S59;Q66(ǻY,c]DݡeL= +$O+ֵ|9ӖS,gwlr"z=9<9"e>[+XOV>™vfo&år,^̫*ڪ'C&%ևӾ|Y+,NL[blm̋B=K'zy{ߝHTg|S5G`}ȕҋֽl<~ ~%4=~}0e]F!f4qqVͰRm֪9A5#'l [vޡaa6ItIRs|֡hO:/ҡn\ci~`|m?[+Bß1VCNb(XwULAyՆ߄d~ ?0Q8DA5a>/r4 >7Ŋ+xָo20~\?/$ k$n|:\sN{}IS3}$,f0?ʿY.fp\>P"1L{Dsp}mE/ ;ՒG{eTx,VFߋ +yx,~)RB KϷ7i{Ti6[])2a\)&pnW@W)o:uv6o|o5}+oX/N`ݦrSFhR;UW9'~(U}#*Yk|ަh-4='K{"ksXoeZz?kYˌ0[PElKٶFy.sٺCX/ /@8ul0 ~+]<S] Ww3뺯 ūrl7}Ce:yO^cniO#NPy#3gBET+#[rK+xwΗَ}SB{q7=|Zq7Wnip;)W;6~-rΐ|#cρgd^1?:_GAvo0gikN=~:v#^ՔjIDۢ11_K!l׭,DHOx pD`2NyMiNG]b2\+\*+i U>D(-I%06>ѠI vѠ&\&/zP P_  ]?KzO+sO]VF; ]X,^PPǕru쿉9V(NPB.Q1ߦ +D?'H:ꖇK0P[)0[{p"'r_Odo.^aoZVȋڹpڠdLrXk+:Ngoc$>iySxs ;3+8CcqSQ7xtƌuR&ڎsc!q|L FcAzTÂ/SM{% UxJ7xn80 )%s1$ \.}eQƘ)6H[Θī +OE]vg WaTPtLqrq޴3fw*x7aE^\,~=.}xQ'Θh˅"Ha\V$ :^wfQq_°}0Nݏ+v@x%Ę-7k:c/~c5/ kȋr:@H*^X@!i뚂#{e i1g}Wbco|B(I bqS rޕ !SGW ЙhHy%د + Э~ƃ+P/3u:o,}:|KHBl7NiƄ%+]6Ĥt)%rx0Yp .DOPfWt8fVBRgXݛJ3YĥgR[R]y@0;;Gs^z`>B&׊bd R؋[^"$rctٱ|zꮀOt%/?b{"H4CmC):l{o=*^MIT$5D$y\["{i9E깒t 7n>6:f-&%b3x~L w6jh;(C +F'0ބQ،_45jj @'HME| B; +z+UU!NV.U2̗qxU}ooןrri/Gph֞Z cdvׇ =P̒X|K׿`>OG}rځ ō^=q& 'Wcg\QOڻG[lH LL<6^?u mT+ bS×sEB\H* x +yr5م r_xt dU Av>1r.2[qQ# Y&7mS Kb吢Ï8dg])^nouC9,bD.v/_o^ @H.Vϝ˙o,-|!Kx{qT"18+^xR{FB)+؉%;Il<)_|Z_cW;Z_kJFѫ +,]ǻoc%Pqދ0䞈<`<ò|/_oḎE+q|k +Όă#yȹB%gr+֧=c3%8@qĕ^-Sw.YCt?TEc-{AFLR0?3\rn둛nm +7?/f',@ùTP*_C*W*_kP~t%{v* ,B%եVV0ik+xJEq@\׆\!q-G%pB?<m;Gd>òmwLlkW⟃1/edtM(!=X*WŅ Mqɜҏ8>|xcY=sbc쯮}) χx̂~%AԅU1h5<T<^iSEZ͆VYeB/vk* ShI_յCtW֜)gIЎ}@icLShZπ]Oz6P]9r}lk.9D2+ڂ@f]+$ H.vc5Z1#]3|*3ҥxH>#Eҡx ">#3g/Bue|ƣ3P7?V}+t> + =/WҸb r)0EŊ`Ha_J|G`rzۉ:FK\mr h> QW- +4 Rvl2\0٘akC캟v4/0HW +_Oਢ7i!AUp?qU=Oѝ1#S1""LPYIUS)lP@Fs(nJ"}1娍g4M8enKz% -YM 6#TjƏ˄ ^ܵ?iu[PڕOmyUڻydXpVWބUn@ 7EmI6^}~dYm +?[9ɏѽ|kVȼ%6KCJ9{#kZл6P"@˦G(ZV=1~}5}6.y,P̥{2l= GPz2Bh9 W}6%]ꞅT4*:Tl{y#OwuCQHv1;`4P,12xNVH swGIaGf +3|v0PSrșUIǮI][$\-]9`˔С9t"ӂ Sy`vXrZ#[2H@?a59axÉ¢?P>pXF"/7zO ygrzѢώ.2+[YpN l-UPQMp.ɤ> $ݾ('x#,kD` {'O0Q+ȪV ;žig>t10sŀpdP99886/·I| n/K VZaHw3T_iCe :`g>77|T IF7aqKdS/i:ٟ9& vr9,p,D(,=k^skAXDוP%ϾG̀mET L"t9tszU>p~ױiAdS2CWat[am#md͙>SB=1rlaJW}IL_ ij{}e%ZDMTPP[?1/~Ī䷿pW'ކ1)!$ +ۦnxHs7u%-O Cc 5ƒk,ѡE[mSt+*ޕu#A.DZ2$pxvYS*IsMzkp#lH;oc'1ZjKUm*cMzqg9&]X&/#|x^&OT؆Q:%~?cO{+fL7 G/aҮ / +)ȓ'Cz5]ۺ~ݽ}+D,E%/2_e97@|uKMܟ:5 ҔĮ 2}ؐ~̇ +>\:^ig`}o)"'nA#iqޝ}Mc [Ŝur#ӆC |׋xZdPaQs*TgG +r/GE9VQ5d3L0A4q,B<;@S!il.#@֭w+Uv> ܔ^&U:#׮K >|!T EnpqK;bq #'al^=Kz gH_%I~^udsj؟S)l&Ii#HSR!)+J?K8&ZG:uj/璘-sM" 1. #7)Ȃ*= +S@k d{K /TX'{n/e,)Og]ˏW#ى?ص!42nmGa.b XAORb +<Dz1G_^?T3rsdX`c4J6=[x骽[&e-w M/V)Rӆ+%I, +Nij$Vdvzt'7xG?EG̟#hzO1X^ǛAcAˣK46fx =kh\cB" zj?}:Y/ j I7G'2M= +gy,rKg +$GpzU?|=:Qc,D;ɏ(7$ =e +2TxR/v"] $K#9 LƃwB;<:<•,"ԞE)QO0RMo K2"Gֺ-,޲ ܤ0GHuH߉&=:]zݲet2I^J:&ؼ9st +fuzIÃPwU1uDe2@7NѴ;OP̯$ BmOJ]}%R_T|%' xp~u'QM:]"Gk*]^?υF : +B>j@zj6 51-001L6 y9+>IatrBE<^ĴHOxCne {QEgdsLz˨sy`GͧZ-hՁfR&^;ZadD]q|F$;ҕ; P_a-/G J'~$ڇՓK$$~F 1y&w(r.e6\`XYz- 9Z< /ݪ & /7BHfb3fm/WkFofn2|;U(KhBsDmğWQzqg\8̕iUOKQ.q˕~e(ÄNgjL#I}y" SP~kogho&veR&=6 4ʿ҅bNү C4$d  LʿP_SjX̭&B/ +EC{/ ӊ4>Pl֊QB,L *V1g"||i]bdw-VC02 Q$k|-F׫K|ϭTx%me<$g@M~X_)bVPIrF/˦282^8!*v#@Bv~ĉ6X#A,k52ey)%v]6a+g L ~t4sDfj&J30XR7xh_&>񅢉_JWe|fE3+SvC:.]nbrB\/^oU& +-^Pr\a+v~AGW*9XRlzYI FY Ŝ=\gwȲ0 V!BBipBVM0tV˲'-00O3BNv=؁uс Mm:G}{??Xl!'dʲ &Ȋw,lE@`2_$ÇNwcuֺL\AzzeJ YUGT9X0Hgݝ.9ѭJ!zW%=|0xc[+vM#W#/eU/Zn8wVq +w#Xl4Q󇃔mhhAzh 4TqG%1E=̓H@gh&} c5H :D$6f| T])r!2\}+stk;ËRV& l]?թ% ,s7dך8^k&"lu@lT5sZL?Yۄ)ЏE?vt8ܜGe?Q*Q>Y-H' i΋jh~j0@^; lH 07 ÅeWaE/6_bm8-N.;I[~I9(?Wp"Z obR|KʗY"q8p_?qVRඹOJyi9Q&m/ivèm\h΃ߊ !Ǽc4 T/R,\k)#DfcZ So蛮lPC(H! v(y+<2v :zevkf{SPC[ß6f@S[m Ǻiz`u_jkMU`/#֡Nr/ApnU KCAv];Z(g53Wj~x7vS41.P_@(އյzο1]Xb1c*D*w3+1W3+;!G3+KJpI .Rb 4j 4 4bpQ/5V煿2B3-ty ԙޝI.I\6;ncX=C =ykHGZS߉d&٤Dc§wEfmz"2ΰn٣?-۰_l7im"8Jqc^u[, xAieF5bWzkJl?:HdurseEu?}+2@69:>-:V#g"Jp_4ClܓKuE ףiњѡَu\]%c)xQJC!3[?#?5ZUo֤[^+BIMY!On% ?A0\ז< В4ے oIYjtk ^eXI VT9t` t'5TL*Bi%jBpc3?(wenA TzԂ2{g#4] %rV9UI`h4:h~s:q8cM3 +19nz/Topӂ(=yhUb.Mյ㢫&5hMdvb +%PT(4-PhhX5P[SVo([J,XZح2} +AA|VTUuO-o %UբW*P=JUi{ _aYcx:brXw,u`.ձ;BQk±EDfK|6;Keu(i\oS6H146x=y[QüEGofx'%9`z Fδ t bqM,]#:g(;\Xh8$ +'-d+hc<v<^.|*؂HIkjFh4ΰI>%6#/Nէ X.8#z" gd,K8,;pMJX#)TM!LGʧTZ=T@6d׈Z,CS)q"9`55l8@.߄؅yd06䘢A$/#;1Wl+us)WУ>`8=@ela1 PElza3;QCIVUkz@{ +W306܂tt_2hjMdK3gF̳Tz&A&'_?(wB7ʾ#1Y8O.=?s(#63!A4s?T4ɂqE=C>~іiMZui7%ֆ+h^Gzyٞ!o9G{lإvbIi4Gzy- ͯZpj%*vUX r_?Z%]^#IPQb29 1QZ +\ +'1DsU(nFqm{*4=GŒ˘Qc.:Yvԩ I IVb[jy/,Uc+71&)[u1oD[UZAaAXNZ@Cn\ ܔ]5ۭOh Voj ewU5b՝o "ndYQ{Sw7P$Qm׷4~dF^.B1̬95\Tb uXc [Q~#jͰcCA4XBB32>+{5<ғx|: g 8ήQR4ԱkӕIRP2& JľbL+ľ>,`T]P~+6_l(UTmSY8B,T,W{*dޒ +[~g$߂[´IU|X3bކGCQ|UmR.῎ɳF*Yr0_Rh _.*6UW/˜{ +zl gE~JSE X_i|*Ʀ=S^ +[ +%רwyb=~F*^f(q5qajqF=Ppՠ @e0]T6fLKC Ԅhh7JO/Tn U +C_Zk53%(?WSmpȉ2Np7v=¦p8QL n$je3Eݙ] ˝v 4m@`o<&pN_u)3+;n2:gͳfk)'u ^J/W=`wqzʖ;^>`k<[.HZV+W$A/~ˑ|*_բ΁O(VcW_P +L7//T6܂Wa9 gg>5Q6@/\%4}]3:ě-f, +4,/51_Wp6 ?FD!ۉ+wu,O< |4@فE؁:(RR\M"/fa-CPJ|5ϊȟ'q۵ذ6gg6qs_ h&or}{^ih;Ъ|yUgTIUƌkU_y^5p%׳SJQtIyZKSG{U=1%CDk/˗E8qsʛ#Sr^1wTR%Zxb&ax5jߞykS1}DsԳJ /1#l)(+>ࠕGy7MD~xI8NwnpKt"i&K"if4 đG>[pqC/>^\e?+/݌Se:8=Kp4~?Ѩ8:8ڄib)OG[O;^#?OL ,H +$+x),IL?S9gWAg:~%?3 -ȟygY ʟG,?r+p/ʭEF=)@zSjtQ0-%L-[NKOL#rNGhw S2`єOVNΚ BXI5GneЋ!=4Z)ܭ+]^8sJS.OU{M B<W$Gά.RO. q(-3=b㆏Z9}nj:|tl8ۢGG\$ XEA'ä=Եu+:f$^D-! rE\$mA'Ryƨ@ +,0Ky~t5RoVF@fezƞYOð3J ,+yD~O8C4. XN\]}Ђ^Y< T' up2N{'Hoze"Ry!/~@x?|[ښ_/R\XֿE<3Y&fFoGOa}Z<}Oa“)+zsR>K<] +MO}נ9C9쭫DW)9&nUWiG-t>y⠞z"{T{}@W^GWӬהڧUR퇿Q]35_?W% SF0 ӍaSV3 QSo+j3$9/>h,8~u}:Qhh0sYY70όzlZP۷jo#z:ӟFlrXo%|:]Oi%9!ȇc +ol6@n?ߨY@(1[_6;Dбt<ttVpo_.FF`Ƶ`tTuasW(RҸ^'n Ys?LEo/_BEfө8Jhk$4 ]tBoaxPqD.PXcAH1w{$@ +[BH[@Qm_7$ s,(Ne:bqX~_nw8mWh((RE֑({*P +.*P +-#E +urU\ޕ5utJt+}S 56r7 9# 9m(7PYX@ӽ7UEm8nyI74t$qGNZ"'S8?PL~jЙ|9/-ٜtyx^{:|%U,0-"pS:qgͳ˹P +x`u8Qn2;JDK@m J\#)Y2S.EH^6)AȂh,xÝQIXd +2 ?q&֚7_*g`!J4ee%:XyvJ`~z/vCJsD)- F9L8}_M|0`aYy|XC\;0wR1;_RN!'bbyF?{lSE)Gj"5LV..`&!!Ƀ(`l8m]q#h"iHzH +63]RNX&lb)"FZ)!WߗoCr`8U`*xޔNzbn?IDAFg$8~49V0uZ 18ˍJIBOhs }{W+OaFL!!~ƒֲć%ِB;-wKD2U(;NU{JH +U9U]p t nڼfA%\E|T3Rj4=B5F\CQS=϶1%VK&3cݱGeV1EZ T  }bwo˥t;] w)R:k t{Ť +OSk4RS4N$8 6I!zKx&}Ѥ'mda&F/k.W,%2/JG0F2b6HKAN>vɉSkAcѸ# x-NfS90!<vݩ@C86gnQ09L aw,``Oqç]Bx^^/{<\ \AZ9o8Z@|E7+Sqï@|vs> x@3=QEH5G߻"X$g "j +Vp0CyLӹjXqkPyڠ5[eQV!e!HY7 {l +hxx9 +) ++C#iٞXY ^wGPF+U 1첶6ةN3ZdXL0^]gg|ك M~4*?3hʮ fZ*1#zQQ@4I,׼}wbq&OW(1=`˄<%H,M≐_mH҃PYdTlF8~up6A =TU+4OpG&섗nN(M?\/sXʘV.|咬qa`4WvTO&4T§j,귻8C(;߷c~y(d29xfU#P(Ԍ'v#y` +&}̪Ơ>ܡW:OXE]YU2{gE%w25R\"} +y8 >`90zES@9tm`F+Dz7="vq9#LCp8'88 S9t!/Ov %ϝ_`"xuZ29˄ +MZ6.a-*cR+_E\?J:$%Wt'Ev'Ot%M(ʹR: 2Jy#QGjL}]"x1#(L j"\_:G@^Ѣ2p٥ ߆߾W jIuÞM@auo\&E%=edzb= f #5#/.3>~'Ι&Cm0}`%gG&QQ |ɥ>GSCՎmstBrd %p"G x8zg8m7DN*gѦ| Pv_@Vz̃*?V568:HIqj*WG}xNi|[øa8l P8,Ȭs ͓*Q!_A0<ӿM QE9mH7= q%OE?؈yxo4}"sd4:0Wi҅k[e0di~?]{mXzuPJAFW%ض) EЊF6Z<FO3'j+_ FͰrl}l)7ts8Y S+G^GUL*7q`j Tr7;|8H!hz[tR㋝g^LRXTCN'\wD5EuOGTUjKNnH6|'B28Rv}{e\S.I^#ŋj;s1F_[ ɓk|_ *aAÈ xGV>>fb +, IˤQf?}*so<}f>:Y]f[XեeEtcK>ķ}t {r@MhU7y_ƞu1&1ҙ[{8`.,ɶ'a#8z'o{*#"}f"҂H:Ual||ܞu"D)"U #F,u(Խ\|r(.XVe1Xʰb̎e^,aY%aY%UaY2`t.|ncYEaYeWpxF|jru%"nW%@G`nm'.ZeNW +HYeA6܅\#:^DTsDQ# dچ/O-btWq!X';DsEfH>{@%e{y}hgT8U#nx=ZNW9SKXe)Y]B4ׂVc8}&wh{c,$Ƈ<"0 \7Hb.M[[w0a>7BWjBDMto"#]$̤kn:R;+rzc:w3/ \xυ̚r%oY4 bԠ`g"0ȁ:޳OrZm2j/d1NƩ#:/츓(Q*;c 8Pg_x (ӝ@QDpCPi'% Y"BI&W̻sٝ88" r'{9s'*]몊(˚PsxF)SͿ8| Y仄%ۉZ'u,m,}QagXW҂C2zzz.]n(}^\Dp-:awm,B;~٦XH쐳ϮΪV8abi .r`&%;YRYӖaa> &XJ/d䦫K&z[Џ(uWZC-˃ju͸aXVƝ s irjjk]I7`]zJ-qIu(Zh-oٝbDyl߬L]0\r5|N] +{ |@]η2@H z^9.7fTϰ䫒=3E>j)rmDs܄.dX^anEWmE[)..a!BsT +GP}t;@zQ HC]2UY@F4'9mS ?_p !e uu;KBxϨ>_WL0O4ke4KsQ rQӧ$OT9Id_'vq|H { ;:#0&S* *!RrTG*&TĩK07"F\; <e;Wr* (?#[a@;w1>\}E.66Duڼ}QD%mBI/AFѪ(z{*4Ʃmlبa#=161`<`;>c7ۇ~dgogWXVzjqv4`V=t́7|k|¾E*o)o[(Nt>Pd  +XX++8@ +XK4ב<9amz_Cz i/aJQH@o^em2S$Q +ʋ6rو)Q|DSSѿ9yUSlnMQL8 a \o>0O1Ɨ NjN^1 "zo_x\B8/ZXmYHMca+SShL8b1\4E򫔘"qœ`(w௡ԇ|N_ZZBYaAB ?9|<|7|F>>FXdG[lmvY gbm+H*׳-gМX0[W$nl05yO( "U,>|46}QlLcK;miDaӶm <:*:lۜk@h?mAC`WlgjM>?{߈#Z#X8#= +ͣz{(Doo^tWSo6`ܫ`6`ܫ` 2`ˋ~i }L#T T T IN I Ej:n ^Nke _^KmDٶ#"v~e ?mgv'd'ܞ_szZ-Ӗlτ/Pt:VNēq==vgš>vW0{j v]v&5]zMl~*땶+d |noev/v9v ΛM$l8_ytN#3 z*_$zF8 H 3dοk 6NKm9CVPFGĜA s' T _y}h.ZEKyh)O6ONwzw4s/N[ARE> [mD2Gl[o[)63VƼaw?66S|g9є14Y2w?67S|'|3O6ޓ+~^OޓOVl[xDc<9 m"B"$I3|&GHGJlw||gw,&}}^;7Ӗ辍;7Ko0kW} s6%{;o;6_ нgY+3:΀Q>^a(,K YhVXhVX蟈nl=j;,,t Co{81A|8C#9a_ė> Xi5*M3X|Tup3z6I$~{r QY^䁎Tyutc͹_m^>"Ú5 ʄYȻ\js F4 v"Yg  rY3s=S1B~Ʒϫ|e,}U]zH~gE AD{s7ġU_@ aUKh#͵}6ƓaQYDf³_{l-GCB.S3P;nK6j}]嵓0xJȕx@8 hj'_f5<Zs1lugk3L۰dWLGgYXg2q9D MȪYUGd`15$EG^!޼ yfd~U)H!S lgCJݧ ;@5H +@ⷮ@t e@$ڤ@ \BfeU\P@jt2=F U?r#siF&rk)q_KMY)@`qCAs%4'g{vzrFy\[##-R&+\ Kva-][;]ŮobWQW1]cz\1܏r3(^,FfrEC+80ʃ_YgL0 yKE,`40WtoW;d9M2|< ktū 9%F3ܒ=@h +LITm'q8Y<{e1\fmʾ`hx2' "UwOfF8 :4 (N9VZRr  ?7+8lŚfbʐT'DK1OOIz9IsI"tRh\l$ _toY L4y +&ðsC; M; M"kd3cʢN:B۳*-?̽䷅?'֝5* ם$[u* !1>>$ 03rkgd/Шj8˃wř>ᦠՄ =@rjl%zvê, fittu6 +j;Z퐵[-&Uݮ&)`"cb1FՈ?uW0ʸ^Ӗy[s7蒰j.0/\v5Ŀx3`\SDXjuҷ3-pn(O +~ddT6dek~%?lQdeR~24?3ֳqє`ܛdn:Xg3rn@Xg7 hdOƶuzLe,WӲp7Z׆> ewXjz/j'X'Zn4N:jd%ɲו b?MV$*#DcZwLY&"! \0CCxZ 6+ǀG|a.Ethuoȼz>Q4`$Q<>1 Σ<4e~vԀMr$Q窸M MȂm@)~D;yl)6]E3*;d!3l!j|pSiGv\|4vxbp]S bjxGbw,@}  ԇbH ԝb#-ՅP 1P/8UڴVӶmԴfM3`Fŧ aGޓV+`߁[o}11ZlMz{w~|<־YuA<1 +Q_neBD +++%VWp˹nګybcTEXoin2_ +b ++";`,ME/pKSn5 +kY™-i}KΓSq`hS8S0fCmQݍh= \a+EliW//H?5 F]'5hLN18rxr2eٞՑ'FOrc6AsΆ)HC>pn5Fvp0P :* [XFG@F}O"ngB;(ܬx +BT/]) +5b$dykzʆV{b;mllνe;n+۹=DmgKBhIh7\JF%#ى/iQ;i-cQ +4>5:2:pSY]yp +;3RٍBMVoajRLjrT[5ih:~$.44pؐcM]ؘ~P*v^w,Y'Wl$sp Y2 +yI0Ǣ=OMcg^~9 }C݅5_Zq-og_!4ZA^凱'GyDO_r[җHi%i?WH;K6yJKlf>z}SW-):${a5=RXAtou +$vHsbi/-5jkMҵEMTTh +IZ:)<ɩu%4|kmOgV^dOQP)ڣLoߩjw7>^Y r)"(R[f/VyV҃n,d{#q.,SYw8N[]+0J*9NONvԋV%y*,[%W`R"@5`fTQZF@|T-@iP^(A{<# <#l =E@;87G]P +$UI!-g\HÈT>/>UG'q@) +wJH뽥Dn=Ղ)ڜBb~.?l?lC-(HVK%R{"JtVKt[cTD:D7D7oi^ZP1E4G.}oZz fS¥d57VڦP1;gE}>S]J'3ɻj&FHٕ!FY35#DTc*TsGLGVύ=)Ɲ+駩g-tƵz +G܇NMאYA|S-&xe1dc,Yɲty)_GePЌ)ھ\& ;F­U&c@!Ur,*ZY!CThetQas++ +[ZYA%[[YAX%ZYA%e,Z%G8 +x9`% 6d(t=;";MώNճ,SDlƘ9ӓPqC} \JRI~Q;DȢ_qJy")],JtP/p)o !B8)2Em+NRė;lMW)b0J1bJ3,JJJJ_Y دR͢TUkQjU:A-*OzŞY[Zb+%uz8l jF;fI5jROXi +-[i~|cM"Ÿ3KG[L_`-:ɷߗX ,L_~i_}}Ο_`7/hp^^}kӴu#/-af^NFaሬ:\B k7d|ǣ> gBSl }E}VϣX선%@ ݢŴynhΛΧOǀsoOn [ 5"OH "& ix' "!]o7@ۍ'_0n*@ x' ,wߦU/WXFP$0.Jo|#JG3yGLoC8svNٸ[,vbxZ٧9\} O\j^d7ɮP+XLa0@zPC8ԃf'sC|.T;<*G޲:d͑*~6[ǡ:4v4k־_Dվtnvҗh4h϶=J"I$%F\ U LJˊ(}Ӟ?ws +5e +zmAA[gTESo6{^:q>LJ )1ĭBb޼┊&Ff(P;GMjdXj :Ee Ydc *] K]阢$M͵S,8E7FS}9eay 4O@膂Z^!d4gG^6 `&ݥ0hϢ_zdd!`=C`J!mW»W0 hddY魒'ݤc?_Zfn>ip!ڵlLqG\4N  RmC{XiBLRe'܈ul;fVsD fS&䎗2:nm:v _rCx:dEX# ~!3H.޶a,o vV:{byZW6y:8 ͞+?/Es,m4PX`TmzcQgX?|U˧Y?|US^aUXdy Q٢`thl6 [(Br&jm[Ewy,|Nos?G y6ͻ5 +jʭ܌3ui=l`( g'#"U |.s&WΨnH@)/E#28ܼfׅ6~t-pk"Ut$h;\Xwcb޲o6PHrqw_o:>\b|s"yW B5)G-S aDU`i51vh㳬]~؆xV[6^dh=L/`4툈b6Z6Fbl1 }v5 ƈ!/%H ݪygj^b,|7p?H_8d}ծh]Li0` sz9S.|kgٹe0Ԟl൳a?2kk/|>hkO5E#j/fJzv^ cT;)toSs=3zCՇ`W} .W/zNZ/V5o!?qP R@zEo*t$_5ED`vkT]+C/"8#o7>tyoY>I2w-x+[^Ļ׫=UMՇLO"qϴ$I#s2nwFoT1?4.xkIw~o@,N_nIBtNOxi7Mڻ8VЊLE I? ?< +AFp?I_/! "ﻛbq8}howhߺ%6Iy&a+wmtI'yooX>sqzE[x! _VM.s/\JC̽TS߉O+.'/ݧ{;'>>N!/^'=_;hSi78e]XF4&GJ4S4=]A{(C'ivI{qkQ̲^2]vMz{hh7Ԫa[mV}MiUު޶j3k*ܪAV-"mCL?S43]?Y)ZxT?Ob-W2'ȩt[bq͍ 姱 ~ľ+Y;OMQ}]NNvo()!:(%)~F@0h~vZ!?' M1_y\_V&uw3خy> S@etJ0ML`:!2.Y:[?%h P*v:q1E'Bpt0GbFDg1Y-/|#::e_Vqn)&)pӈ$J +nY5U\p*k[1J4^5?wH}ߋE +_76=OcCNtbݷ{\RȦ݋B?ԣIĠ uG6`ⲄڂF" +XA rL~m(SƋ` Ϛ8F7R#)GHCH8fA2x,z񯘭E~]*q&3ٝt`'B6%gB=CH{PўԵ֓ Li + ҄"“?EG xP6%D[*to[._ S!dsꝰ.A@hQqJy' W"#}B tiEH^T9}Pj#N; F̌ňf!]1XUГ1$KtT`\ISt/cDb{_ߣ0󛗅H8cѵ+ݷBdEbt@yxa_mUO%ed~sFQܞ(>WV{R"x`MM- 󦖄;th XgQS`/Z4y " x9kֺ>i|{40 hp;p6|b::00Q0bp(Dͯd 0Tۛ)Ew(?EwʟEw!AhzS̿j(wF9Ž%p'w{P}14f5k?W|iB֫P̨};6!b8$BY + ):F\X1ӕ2״02,/EDêr*])hHZmzĐ( 7ix +\鴣F;r 5܁|cr"i2.8&4462BaqA ]zMhɎG5^?-ʥ\:776B>nJ+DmgȄvʨ_bD5b+Ho g$LX42TMx٠$pZuJ}*bT|3?eDZjaibn=t`If`Y+2<^ x ԔGΈu8^_G_fhCAl<952֫V^x9k9*z!+d'0+IQ +- I!zpNwhJ\2KQ톨5<@ʈUâjգ+^ V U߅,OguSOg{\=9P\ +ޥ`[Wcb*?\FRatTb uO QY\1QXEg_}8AW:rhm]i;2/N'w`_*l +ЂY0qY辴)( &#`9 &X,AmAg[+:Yފd+:;XъNJg8dljferX`cuTW;k,,C%( )H"Hz0 IC 遏Bz#=QH;J(*A;V&* +eB`LT ;"557 Z1ll͕tAO` A)J!3N.HS:pe#k8,+]1 ^E3GWG:gpJ/X_u=[U: &6ZkYp>xC3\&bWqYz"VNt4"dPe(l(lKqgmL+3 q6bSP 9?Ox…OaN%"EFgH3 zF!#EH4d8 V&'U|KW C҂  J 2$2t0d(-HSsٚf:m.,s =kqNpը]kٚ1PRx|D<,}L{23 7ˠ*2R,E#`7bb5dhjh*V,XXō"ъjlŪx[)5bo&<5eKDzKdмj0"E \oy'pbO7 <'s q8ya@VC'$  │L&R py r*!X*`qC |p>Ks>a2SEOuEݏ(Y`^Rbw3z`PWl1,UbX- SN7xp)׋ /W(m q0{XTі&<&ee^-D)  \?;JAj+[{ιK*1>CiPsU;5/KdD&'Э +OR ?! +֙XLI k"f"S8V!fOm `#  +6cq[4KgmdVPү]vҶb΍#odW_w_`;ܬK$W"A&d S [;=y!ypy Ֆ?z'[i–s$/Ck +kA¿l~<_h6wln1T0Fe/b'QԌf1 +z9֚3.g8ر} c3o4]8Jb1A/$b2*1fsQfsE%^HKÖ<)-yb~Kf]p \"XK5v~fޛ,en]'J2a6!|}4"3ZAռVͥl z.AOV/ע<֙4{BV,\n)SmY }:荒sPyY&26GD0_rDFcwT+6Xp'LXKc.U8v\!qqM5PBq*d heU MGy] +-w @Ud& RShN@|#@T@ $ElHS +f<2G'eL{@)t!h>8J}@W3-#r>ƾk$|Q4[ʒ 2IِE]?ٜ]?~d~,vowl;[9e81c<0nS;@ h>ӳ_}ě&¦IbS +R&]e̹5Ai +yq%(/Qqg~+AEJrd?E࿻'[͝geafN=DH*M&f^戦'*P`. 0vRv` +VTۚZdsJQsBi1//1kW,([9X\8ǤX㦩F˨; l97gJ%poit# 8 $_ǿ,oBBJRu[ْGO qB=E[B T E^XxLW9.4`(rRꃳl;>a +-4F\f G Aj&%CS]v9ȯd7(KB1B2r++ޘ!d顧nRY6\ʃw |cـPNʖl7AN{!?-96 qpv\'ر)1n`ŽEw +v|$}X()j{w aWނ'z>M<~ +Dzg(PbN4VFI&F\!b|ŵR>:W# a8]v#MvR"ڽ~&!"A}(Pw.'q"1 u-i/ṄpM;Vx,,zoj\s3xO!zy"nS-!-jﻉ#q,IBx +YVcv<#ǽHrQظ_9m&-5E Oapa\wa}xF7DQM9[O3LոWnzܐDZYڅn(~"GCgo~S+RnMI69KԌaB€ݠt_9K@3Hr5͌1%{Ot x#S>5`Fx+Oe)R_{x?d__ђ8hjSZ`-Kp9b,XiǏ:2 <$F6 KB5˚|-<0ym,is 9AHoUƿ3D󓙠7ƿws !OX$Ǥo +J!>2#Cwp9X^0Yn/NI*C iDʸ/}v2Fpވ-u# 6Blϖ8ޭ/R[!2gw{U'Y[ E8WwII]J7^B@I&]jM\J0z_2Z(S+(6(1W ʸUw0Cᚑ~ahH)Xkq4i"&aI^ZWȨʡgC+ I: Qq7uW?7|^ekAlzL6(;I*'i170N`C4ZZI-SK{PZZ:IX#5rER},,a +61f{]TŻ\D\ |c, Mzeh }r믴b\s2ϺQ/`tI>s{Ԭ+6lBاÀ6l^N QLwg 1L0a au髼3 ^3!kW_ 9׋~#` +z"SL Ԇ+5/x6%ܲ5jmҹ>v4^ځKZjny)d/e{y- ;lx-)~Z +wYD=OAx@Xwy_jidZ1]$rATI1fYݝ1E!ӡ´`{P ++>/wWh",5ڨy7dX5*]nmiy!`|ʝeP]qP*_|dSNOg_EӃs{(ܟ4 +a?kqs,4[S2.Le9sFǒ=&KsM=_ąy@eڲJ\7"]>s/{/5M֣qv_f5wWKfc[gQOj!Vmᰶ;Gr(FOOsr 9;z +aVy)Q?4QpI"?; $AK=/{*fWYK@aJ^W1^BJm7ѵݧq],Q} 7߫=Bov`0oN:u{ލ.Hz_uBHHV^&I47j1*О ZLu/[QUPDGKCUHq<,e46><ƴ0q==4mpY WT* +ѫłeK<~edtAç4Q>V9O蔵X)jS7-(}=0ʺx?`wstPs5 ~-;Ē棺?Ҟ迟Pi5:c_*箏fs5.1el\TkR1| g5x$偒푀^;ΛS:?YQfC()mX?IJn+Xߟ'g/ۼK + @B8.=Q`vo”K +0[m(2k⠇5`??#ϢKݍY}-fAED3_袓W@$4M廌}3;Oî㘖hf&0cJmh|@5=J)ez)p7ݞf^WO{!}{ }W7 K +_鸞PĽ\O[ȉ+`q; >|\>Ǖ|hc8"/s6 E}**SEr W!Tc}Tc-eS}_!;:, '[Nx̝k$UyISOQzba[!h -]ŷOkq;o^Z i7O! '*t'h~ T Hsw#͚]*00fFBz_Gz.H?t=D'+Iz*k}! +pkld= DKH֮T;pK^rJa&A&KBx܋Qoωi⛤V(jP)fc ؖaȘ۶Հ}\LjI0ԝBI͔VA]nѡRŮyBLlAp%*? ~V?S"K;M,P43,DzIj҉Jk^I\/`Ӫ^DzAּTf~ہAfQCxHh&\l؈83uVx%[q³Iv97|/*I`=d/k[!SpXXw{gJ,ؠ%'*X +=FquEE +zbM+&zt +5DI:6j^d(p7#UUBpVpnpnfV;VFG +:~MБtBtdwtdq:(pkpNsT.hqtfQso2RTz^,=jgOӱEetM_E柡wiԿ=M{7"1m +}%D_woJ߉if6ʥ$MhP;(Oj)v  JIr3a?k# ;#&|kye]=nVV)Z =hYlzLO[lCm$! +B<פ-ς0/OmIh망.7 +y4D刹-V^jw€SI%vecA]GqbXM=:oz8=&`0h@/Ze(jEzFGXk\m05#<$@]P!$G{|KƯ4}euSʔfnFM|02*ΐ`nuW(*m g;9o$,/6X \8Tj<| a~ bFX pȡt9!^'`7e*%g ɡSэ#>\1̰iS=M>!N;uЊm'H"$v~}" '*D^%&<_h{Vݿ~ПcsIm +9Lg׵ܮ# I ] 5sG>YA Cs0* fMT8zqCJ!Vc WC3\ Aeq"]'d_Q}7%dw Tz\W`ͼ4+<撮 u;C @("8$8v>Mė%A0F_Ƒ=9.,0,-@WMvTcW.e9b`m{~xY G k`ᅫKD]u$ (pr'A> o$_,/׍ѠEA=6:i+j@qZ< xm5p +Ja(#hWxv@>SPLW0IR!Q,Q(R:P3bKImg@%kxM< O 0{AH "4"lJ K{!\ 5biB@7)z @@ Y b:*:h5+]TǤ+-BVF.[C7Mk 8yG*ɛj rd_ ]E]6@]6tY_0lN}1"!0iG 8d1yW'*ƗS9䧬OZg}@<#k+/)agG\e d M2LI'rOICWf:9|IT|֝W'YؕIx,~rܓ {K( ɢ'-&t?6l$amw}Kv_N:lS]cN[\?*`;w . &ox4&JxJu-_ .(b#fcϳ;%EI ;~CShtпcKOJ4g f*)R\sZn/uG ~×\M \g7PTfa,i2й~6U\'aQknBfTp^%|~`TS+)Tn$x ` L3v+]H$+t2}@8aB]5Yq_'ԓY_3:3Зx"BOmj]a#Q⪚8ml)g` ?I _Q нԨ/ĕl;?j@uZNzQ*$?BY⛬FVIJw9s4:݈UBiT cɒl~)0h9dاK[ak7U J +?2+BSnjDgCr?Y.?q$<PEP"(oP$r:ʍJW=ML՞ +63z72_+N;͔b5ƨ/F|b=w赩9׏8WKlH@}'0Ck0O퀲6l!!!''1k@1ӠXW[۔+4 +ӄڿ% qblH}fq+$-֙VȘ+Ȩp!΄$X&[ϱ7Z[L]v7w`[hoTM=d3A~*='$??)G\ *O4S8=$%@'U@wI@x 7zm͞`EMNlH`X&sGpCR0n;4 quiXǗ5Nbg2t:8sba ^`e[vBP)'yI&Ü?*|E?`f.[DxhTع~7m6;;'7Xrs`ξ; p\ߤQ +k g&nGB$ދ?`F}6جMJJ:f8B\i!ۑf}~AIP/%3T uCS',Ti_<81-n{6f7ǎascTuyCy=yy:yOL{ uac˾;lXgӾK%p%Iv +OD0 QC+85~ĶKܯ`{н1ISPSҔ8/6?P\?#R5R%`#5"jPEo^&=Obu:yt.Koł[/I(]jQ(jU{!{-tg;{*A46 bA$ha$~hh_qV@R8&k:p'8|ak#tws.!1+?Q~7o`!;dӲnp]QóY<&3ۣi1juVW559Sɫ&u&-hIEZ4k}JnN-,[4*}^[Zzd 2 GwЂ5ԂWSZl{1 13' 1* '= ٿ7r=lZB3T ahk/u46<qdOT"Uˬ(U*UXTP6iڠDW/Þs)ȺO%ma}f 4\^_nh,(0DG50 )hG >(BV70KoPVQd-тxM/ %("3Jfqyo$a]PX"ֿs6:? AsCz%У>y =omkfL oݹlؐV#^%{XȆC$jQ9df+kWDL\g煥0ޜ}dcH {ZͶN4:{M>vUX +#9 Vq}}IPw?5eW.GR6-;?ayt1pt's Uk$tdK :~e/H *%"/%/_f%> %O +&j HϷ ?A*ԡ6ݷKl\ &v`^_GЅ>-K؞;[rSv_~-654/2cn0 N0}uJFO~Ѭ>YB dv;,Ƞ?qg@B@C\?AR,E4$ILwOn<|MtycaӄN:*co7:ɪ78d6^/O5x\YQt,':zttkUo[ 09sV{޼]$ir ?Twڣ {ƞ,0ߺ;"VhT}0B?;RֲFJ2e1_qѨڭ4@1x3g +[FzK=[p!\Ҩu|𮀺s j:ALMBm9(k371?p;=ķCd[)#y0aC[ +n_Y xV7IY^TwVNhL8ԽomU7{}`aQ*Yxhs֒6ֽ$U ΝLXgkwS __0_ ik<itn~<7JvJcoQ_3=4]>QCW˘v{CֺL*4'B$plm `(KllFYN_n]z0`Q%I `'OYz93x*7㋚"'.]Ϗ7 FfcpoJ }\UV_9ט0rg&/.\i[8˚ Jt\]ۼٿ]#:,bsyv}n*rpPj۠jVGj~X&􂖫>C9E@[ mJANQ.iBTC +ժEA *r\RaQVA(-ogfwM$T^ߏ&yle~B %\3OE3J/|OI;4!7vj\>!+ 0ƔWxN MY=25Yd2BA;gLVPll)9d7t EM;nv7Y4vwwIvq1-5Acܖ͌)qŪd\_٤dyS|k~lz0dhAQdM!Oɖd(1ir|rWii$^g Pd{i->Mpۖ* +n*W ɀ3Ј6<=- w ;CbFQkP;I|ڗwxZBMI|AjOV5P`3.4hRl$* J7A6#C@q0AQj?6WfdPlFolF?KJwB}5ӸhM6'nux1_ nnۓ({ԱlFWM]mAF<%sU9ulFuo6À_ ;D*=Q뿃!1~D @yo|.|ᆦRJM"~C!;[ՠ3;c `vq_5:;:YH~M&,4({UzچF?I2H5Y8fpUnn;\*>E\MT.o\N(ϼĤ.Xsy PI9 |?~{;zBxGAFUv2`K_ +`@yPzXdϬջ̓w%!X +sg?TC0bLuR/1ե'uN'Ʃ=!= ύf6uPdvdWk5X(rO 1Kt7gc3kDU8/2Sy͡|,GGPX@Yފ^qo}5t5TĩOh|MnJl٢Tye?]qi>s??Lo% |!>H76_p*<5xby6פMǔ$fRMDo[Y7Gso?_!P= :c\ӐTTtt+,$\c#\;s>Uմy _8k.࿰%}1$$|99VR ʅ}-GX4\<3 gE %0(x+tVM\QEp%Kc$# x^0?.FafL;2^Ig׌`l:,iFE@2ᬞndg X00%v-)Q8/(7ԅY#c71<|"6ē栂'ccN̵!ۑBb0d?6?ӂ< 0CMaEYݑ,GB(??tmObDRxMnXJ"fPo!۰ɝc! ~+~ 1acozMXa ۑ)lY~%x>pիf>lE`YEe nxJBax'O\O;(bDu"p*r[(wwhB DR*DjJ3B0Q5V79ߟ䳑rC(Zg=#h7$A+'g(L\|C2Ycq7>IiAint57Y$Džz V) s7wM~f5^َ7KK1pܕ&4qIbB3I'MhVH]9VRZBb.w5af;S+ܼ`?"r =;q~عQ m\XX ch9pЂ㔣Jh$0VJr[,C臃Z-4UBA7Am/s ?&/Bd(=hjƭ\KhEFk̄u6^W[[L՛q>YOD\lٸ5t/)G!L4r +I4d2TȨ=uZTWr&$x*@UP#V@@=4f9<'ka8U's43.NG3Y\ї{PvKR\A@x}j<(rL% +g[Xh]Fe+Њcԡ,׻Cq?eǧBǙ5Mb#L X].uX7+fE ȯfhJlЎr.c` 2`kQ#R{2`>NCo}tb)K\yeaEId篛rX,j %%c:.":*Nlo婹#*.O_cLa׽4ٞ '6:.R]O$kqX2`j.I?;IP2WOW_"$&!dлdGJ،40wP"%kήՑ@OaKBȿu(/8{w(ɥ @hZ+ h`d@狭I5B`ܳ;|]lE<\Mx!92 3+%Oܝ^oFW9eע60fҏҏXҏ٤A:jbMx䤶m oӚқzmk/k 3ޙyoЛ} Po|M;sb53Ϸ%#)(63DUIet*n/RP*F-0-r ,*AA⁢ ?GƃްCIN_K%rGuoY?/3L26(eޥ2de*Ѕ + W /x3kOᒶCkbmAwНBtw'F+tݳQv))r,ƖXk3NYw\=tߖn6HAcw-墷Ϧ^iv-aR";K@6xsdHQS}0nsiֽ y*Ƒ#sq(CrAw[ePT{G|( )_MS(HH[d-sbEF8MLe nrdjpb#15Be*:[&?\:G`cGCϚ(D;YՌ'"y,BؠX$x.d%:o*ZQUd8dۏ%in@^ ;96gA!*f| RmejNj9AӓT쎛iJJVw%:a?v oPLUɻN׳Kvi ogܭÊ2p8kإ@7TSN!I1QnO_T)O.%OB,>Zx>'TEܵ2+c;} ++}ZGXH Fyc7U8pӸ%znu, +ՒU"&ҊHލ㚹{S`=SD{ i-nU_;|;t]"|>̞ 1Al4iz01ܰ@Ts`.Q*dAưDꌞ1|r2iQl +aR%^WH2D=JW9%DI!`v gT,MUkJ!",c(&ʋP_3sM!n'M$pcS Za*8S;ekr\KX{4b=虌ketzڿ,R#$Vj \vA,抺/fJ,]uJ{o9kL=3]Q|]b>-dk u3Ϗ'x8A# h$ HlVM,t!ާ%cQs& WPU΁ @]Dn.~|ZXjyoyW/O=M6s"p<% nP0j;D99,wMqi\͆]͆/z]j?\߾R;ņXg\m\7qAǁAm⠫en6cmIsмB4~*WP.r=k>&a_D!SpSB/g +iO-Sa :I&/g#3mf +5 +Uƞ+4BɴYϴLWA{qvTiKBN1AoBC!($?k<_B߼Qgn<.eVg^Tnn^Mn^cHm8\]u@r}B"k+E9(Ϙ +Օ5􋔏ٛ.O%*=j*y +̏)̏~PfϼDw\QR({+*!|6cxB2g. +vB#Nu_^^3xWq'~pb90|.%*nXCO{U/Ugq:niב irQ*Q~TΔ&,AId,W BW띅ӴK\_VB~2<[`?Hc7Sh'?ͮ%넦<{֭Zt b5x2 y9}Q+Byਁ"jP'zdAJh~e[ .$}rDy/ƺ#l IOj2d"ԓdoFD ń;oz 7e\6 YsX`Sx 5'^WyXZƊR,Ou)o*ҽrI,Q@$_>Y͟t+t$PudgYu7E>LU$KQ*c*Ry}o3/&5TWk{^Vf$fCf70{Xκ&JBc+/;=_pD4nytC#c3q7n=M2ca 5UkdL!NIEv%Tc@Pû +|7Jel%⼉}G@=ʉnJwg. GsDyJ9ӻywwA?@;G +Y7$lHO/ "ǹfJ"@!"2y[%]{nHsTwbs/C2GfZk^Tj?<1,yqZw_⩖C&x|W̓+5Xk +a[ B&"~Zr> Cl¿٭8Gu0S42{3lB]=MͬYjUX;\OAU|0ӏ`*us fB|uU=R{rz<1%Gn0Eeb8qo+\o$Uri3tѼd)c_s}U,p'_eF-\~ܿF&#,yHG&k -# tY^eb7P"y:݆Lⷵf%:*CLLLWZm5{m6sŕ2LtAF

/XbX1$hb&lze(wPƚt h" 9\rx+l~Mk `c& -Mڶ7[[Ǘ%sN7TeZ'-G_fi#UnȘ{r">]E+r_a%6sB(=6e)nJ}̺:ը*J" +fs\"bhLc-Z"Dy`p79=v Tkdռvh1lUXyiXOfI,ۍU\xZ ;#he㊚#M63'Ms&4֘\?1(wHL6.jBq7oЂ%s!76cv> l?GC*>NU Z쥽%x_d3|TS@_⨲ؽ4QpcCggagrnj %'.d6&7Yމʉ +.[7 g#I%dJ_>HY| :mC]N}gLyO#+ִ +!S v%[q{$ .Mk;q4x1<8OARp^ [pp +rxMƏ41<#u}{"klWl^XDZ:OBL +ͦ\jZνe $^XPsN'2{*P&_SNvi Ώ8 +<`틗ƊG y#^/U^8HF QbQb+л˱JoW[jV&_gMfaER*"KP? xy7S7ۛ8fZX"vM0ytC.K>W~|9-lG[ɽU?&:|L# gjfdw9w5" iƭHg^I61 +:`3+@x4bP~ޢFf?E55Vjq|O&+t4-ʯ gv.HZJL4 k3:{\7IQƣDTxe!Nm-DŽ5_,t*%y_bʖfll- d +[cl5arL/:; +T٪_՘4OK‭ +VbktuF⩞l}`~`:6 :1MaOڸgeDx̉<솰?yyv@O +5g5w!mƑm+FY=ϓ z쾠D9~^?z +)^g1ĩ(ĩfs=Η%7b31E.o¾\z.O|w1A= _Yc>%t9 ^إ`8.@!Kp4FCVIvl=L0?ۼx#w &@&du{2lx/⽤|L&u${{$ %썝L qD7ȃdb=G@(D"$Q)i}~|ŋ놦MYGҲO?3~#*]c׮u_Eك +f}E69ut~Ss3p?JQp9>Fj6ťū:kzT^qNB>`3"R+8T9d` +l)5x~P; n1դl(tTeRl[>9֭^(=ؿK5Nʰu_$QvIoe&nWhg;kԛ +f2|j,n{w7FkR{Zr +Iۥ/|r*$-8& ϛ&65h(-WK#_/0\Mw!oOI8 p|zp\{BS߄^^LQ_D1CD&KևN̍G| +1ar6n]e.mh)iC,/C3ChW$0DwE2Ll4UI +oB [jPE2Xy6LհJe62ש/=>Zg _vK-_ޭA"Mw,˦zz4#(1>2+@)ěJuRO?s"=S3eU2jdDEBntut/O_:zg8䝡%5c_8npAIV8KM1Zě2V[(QbkZ~쬼Iz|S__ԆmD >8ԂjThUEIżLiL]8pa̲wØLs*f`7Y04aA/ ]`+!ux.Q +@OQzy 2|LtפZz oӘ<&βh\I0bܱ:+L10.wh$Ew|*{7"doxOno,x^o\~oƻ }}ba_Q?F@ȑݴ 9hح.g+O !B z0_"r(2ynVz3L'B'0_d. Esa_HN\m .1,[„40! /!ؒ+6P'G6Fҝ8Lޑ#1@8GQX4EQ-׹!/efQ6^ч} "{Vd֊3JaXø&[&` tܿ4}6~QF'צN6Ƣ7}4t-ļMϛlb.pM." ?k_=6|PbmlgLH1A~~6A&HSCT/K;Xm ʥ9Z]粹T:qu@ez#˥ &s e-n>&e9Z|mRK+ n+(~ՒFRkR 64xp Jzn=$]0dx0Tk$ +v`PDTwp8M}ynJu?yYXdX>$ +)l' )%JP a麢ta {#uzۼ8LC/yHiao c!n Dn T];wrkb%WCt\ZhcR&lﯳrzF^ZWܦChk-{Xq1^8.f1!f*3+DfX_'tw*ZzK0^.cϗ%'Uq w۲q]>YS!JP8aCuz?J-$2> +T$6//H\@$D"HRI[˖ k`ߎ>uq3^r?~ +7F)j;蝺 &G=UݲP<韜GH!C;SI!"mVMZIQpD{XzH'6]wry+Ŋd4Tg0?F(TIùal3I5Q QF\0rsw[TI$vx?Om ȶ@m/ᾊ/ %̇Ӵz2p88,OT9|ZpHx@Q mvOE$C" eb'm~rR,gм=I! [o%?lN#ͻTѼ;5NͻcJУ(V>HbQG&$GauŽ +\MYM`[A 0QuدZAK;QM5Y'Gu-;Q&-FE1F!Uh5r%2wM5=lr@(g42 {ј$TJ4eGE=E~": 2Da{Ԝ_jvhoFB{CJtZuYD0`{Mwݠ)%=Q{\kwJ9S6=s2Utp?-}MڴS6k#"\ bd[/)2H0~҆ ʻ4̏ ,?J,O,]axgѣ/,uʝfƜJ>c~XUӥ]kӧoedsxx7uUxg.T*.ݴy*2S.#D}I"K#BXaZkJ}&?B* WVS(q[IX/vc>N&OtxG8ean&3{Q܅8sK$d?r-& zMI^7Dyp!ҁ+|~G)!Mt +f 3CRBmLBMքK=K c-Isɷ?ӛnHfIH@[ LXCZ1X/|-Ɂ ' _k&2![?7TWvBfwRza*e,XoA U$D;1w`{J+E`U ,B]TS\Qk`7KM ;"gB6r^*l=j nfFJ3AN t<[$!ȣـ {C%5R595H{| O''r%B +*ihE??  | +/SךDG상;Dz!~!0PEomjvDzź9DfzY0LV[/6qz9^.ܨmѫD:6X|)-yv +F&T:0>5Up#n#rqlEln<2oD]Aߕ=Ai +_P}\;1z +샋l5 Q lޕßT3J5X2R[`5Im[@NSr{`W#3;@ŮOàʹ!z; ~ +ASvOY[I D{Q;5(pR~2O'dL~;H Z!!b{Y6)FO;e1C9& ֚#Yy4!"kG"+D~%Ef5-fW8n?nCй*Rzv7ycDxJx$`.HS=MsMuJEk-_u:nu;>mp]T*L>Y]9>.R$h&"7qۖx\/ډI(&,HM?+7/2带A<=a%AY^i-PO^r\jד)k߫ĶG4( E5ҲWu-ηv6oiwpvMTb LR%n +ZSmʐ/`M>|duqB=T-B 2ǒ^ "|غ,"ϐ/S\&cm +"ɊOhT9.C7ML-FWcKx:!y Z/Z93Q\`rv9ƅ6qďh=#L[2_Ch6_ @:lM% ZDc/EnÊλ=Yѧ蓵Y{*:O!{)z2+_YMTI':/Q|+{fKRA4.d`V.uIشٜޘlںѦ{X{ͼ$( ++8|a0D3?xγ ^zw l&FZRAz{S̮Bɻ>6_mY bm{q$X2(b|@]Xf`4 +Yrmn|5lE%FpTAc $6H!>6ihec\&2&C4-gIȮ[#2#7tnc hgl3b:|xGZp 6?qB4]KŚ"ijU bu+W8.asبQ=em!]X؇{)*Va*6jx?u.>dAmC+HT1aیizr&cL5bLxB pJT\~AdQsu$< +w\K7[&f̶e *>g?8]ǖ0wpmD1exOJ0O:c%Q*W|@lb.B]`Wlfb!KO&YM:) kOk:HŠUB"箣4e jS BYHni`oB ?6cbZ7B1D6RcjvYd={g3I>+hƃ\^&GoHׁC ]u?T7:2)۸BAԯclÔ΅bRJ0Z)s?1e*P[>'*3Mŭ`el \oHb"ҦI%_Ȧe55wpA4. ^>>_=)B_.U_y֕K"ZF2]Qj3^s6e/+;m١Kާqs[U:OȼNdT:sCUà N[HOAyN|J,vK\թL̼/egmM8qy5CkV>AxIuuc<.~8Hlol_y Je[`u*,k!k`B7qF] *Z 8&d}df CSd6X~b95$_E:-IANi (HF(oUZ>,yȻeǨRl\Y Gb + w(V|CL|(;}[q3Mg{ :}]VjB͚146~6ӶgjUAyuQ"I-rGT-\s1OV[a ct7Sr6G`QГc^ jx94Q^ +%Ok-R/WGEVY[Iiw9hu?Dsp="COyIrX0Ӈ+"TT㿫PT2)sRErx\6V*nPySC"ԙx԰oANe3OF^h(FyMuV||V,,=ЁWP{B2S{6E>wئ^wr#w^˜Ol aܖ8}G<%ޝ-5 #7y)Ցn58L5uV9Ji=P DNaljЉ!ؠ!ܞ%-^ +3QH Wu[ ār__|oxǐ~d`^]*{%Ivn@O^2I +?SʋM"\B3FB*so~Zy\O0mwEG a{|Ck?<ˀ Β.ë[jt,Hϙ^ NŞg,*F\_ȯ0DʯAs0|o+j + lce3ʎ‹) +ܨkm*<x_)Doķy?)yN\&`Bl!R# l6B$ p  mtn)L>H>|l!xd}xWaYpogb JX1 ۾D1\CL  .+饜6}Eӷ>7|+ǿǨ1&[twTYُϖF^n/^n!/win ]|LkXie13Z@^oMYHm9eO +n?&\y'42= 7@ ]ف޲C.`oJ݄h?2[o!rޖ⸗LG¸!}`P,$"y5}YFXE: GÔ.Q;Sc@O|kKcAaot<Md˽8jiAB uxglq(]X\M#%ˮn9.{G'_ˤSm*[N9qAP$9^2W@ꤽ'cN+Vne <]3XmBS~Dl |z"w||n"7t|g&.pEf&xHD o3BQs(0enM|OMnBhBMuJS)])R%`5SKh8$ŤY#V1 "%VAZbxrA܋EXj}W^|a勴x-Rbj 15Ha`^DWA&2 ^;Ѕ+TX]σMqU~S\-b0!@7e<w,f$BBC%x?vfA<#!*ڂqdj*EQ&MLxBM.JԕJ:R ՙG+_uh*o ?Xs$]|- ֋wԭ!diZQ^ !7kI޷QK n"jq|m)aJ̀J=b%*Fao6x`CIᅥRe %}*K>.:ssleiO"3DpoߢfRft +%rXh2z ޛʱ\(Y+ȟ1WdlK5~[]uo2 [nۿ +6lw{֢{wNx_|Vӑ"N {-{x"l8E V-p؃4 @\3ư4";&TۗC*srRI* PsKrr}\ +wˎ ?qnib k oylk?E"'^Vo'o,1,梸[2j&CE7$~2_ Nį!0mQ\_\QE3ݜ?0>ӝ=3eE@@/";.u*dH,i@%eH[' (f AP!\~2N:~ AJ.) v Od.QGBv | SUȱr + |-K+QA  + b%'Y / d +҂CփCkST>@)eһ +__ P^$*\wŊlENe*Ҕ<$8pVKtVl7-kf-^[jZLM|r0A2OQA7=u m8@OKӧz%{{ +Z4;,4.S he5u2:B!WB,rޞRՁby¡KaNk$蔣 ͂O;xᢂDcP=Y4 + ZxQ9%T0-qY0`Z+!X/{`]r}w/#ej6KEm)~̊9^ߩ/tǹ5:F4-/*ݯ5sx_X.Y"Y̖CBdd&!A;5l˲%%(4)ka~@K=6q˽z9*xJu!^RykD9G) dk0Imru |-S g_Smt0-#5Io9/jOSE~_7`24#ocRLԘ䯥hF^%`؋"Q[gFJwٍ1P/O "4g\t_ќ@kd ѸOE3 k`)lqb*{0 8کIӲ ,a\p'Px f<]bu'b~RXsO16]| e'ᣮdRgyfQtNi>=}#6{<pKko?[QןW7=O}ψlL:6iG `x81<$Oߟi8ZN lr_`0k +n{ߒ5b d¾|ˬ{rlڔڀ0u\sE.Lcf "^Geԗk4s1_IxGkz*.MN|(sD!|OÚ~[e=y_4¯NTEdr\:;ur!>d/^8k˄./ Ia Sqj_hQh!Wey|'1[@9+Q Ԑ +ڮE#rZ) O9p "Bƾ98{Q.^]&~d~<r}!{sƫ{XJm J=Z4% Z[k5%TC41jm%dbAhjPebkZ[K{Ϲ<$Z$g7x pPaXrVIu-׭Wj$LvY"E[CtWB2i)BӸC=WOMrWώW鎀#a`VS)P;in ze"=r] 4Zy'xsϱ_oNF+Ӹ&HF N \NR-Pm. p UϊnV4؜-hpy 鞢& v0%6]G!v>~ & N9-x*]ӝS9m\!wT!t&ߎtvF N^p86PPIB]bY"Pq0Q$85L)%Lh|7Q$: N)=m/m̧8PV)R)XL'>r|]>[/lnؽ &[LW:ULW%F*gQԜGSQ'N\'Zme=| 3rQ(/y:U ΐA', PQa;e +տg2~Fֺ]a]jz辥@t* 6}4^Z]8e(sH@|ՄX}p~;n*t(R Wz|Qvxq‡=ߌ$k8n&,vϧ\ Wn_ߪH}v==eS;yVJV$n}'hV mE ᏷N2y_+IK!'"]~?QQkYL)n,HaD +/6 6Dc jnY_w'qTDP0zX}V? _8NH!BE$$ UW=>O:lq{7hT0"R^0s'5dff`ff!?k֕W_UW>%{rI!vȏȏLo_wLW:漼4_~"'S* +=TPRq&N0^_YyjMK"-?(h>25;H~9.(o;|[-/tdw^hA%G?Dm]#SFT %Zx3G,(ޮzzox=pq##!?VSH.I3d "_QX(@P=6Q(ќ$zޗ񏤍]i74:2k)HlAI I\Hej/m9Wv|,7Z +V.u8"*u 88 05 NK[9<+%χ4s{W lf `h¡IHzB3Tr\4xuA1=hA3N;"dg[ֿC烟&q9!$Kh :DZmѧDFZ&3I"GMSgLBP)*jjfB7 +p-='߅*98<:':ym#Z#(GF5D'zEv0F@_yx5ЕED ?Bw~P Wg{f_@igdLVAgh ٻL,zd&Mh +ٹةBm g'M,ڧ뿳RìKS,O+䇢%o$9>Xo ߏ]{4^QU]{Ea\JSn~^4-jtβm'mTXXxrZf+V6DFA/"X3 b(R{V#N%5KpBF}NUᆊnbf#솊~7H/@۽X6ꏒqc8Y9[PID<߂)"I'nPoRD@EubS;đCtxf7Y!C GZ/ZZ׬F8Dʎ(,vjSlQsD)67""jB_(Yܫ7ƞoωB[%UU0tta;24s0i/[R_ OFJꄷvhJV=y^8/H$(u}K:|yڥ87C!6}_~U:~sBK ,ONX,?X,WY|n՞K?VI;7@#)ş!H% +5uvn OL:N@L W-qD&Q&%L*2H_V 6(8u)O,Մ:d!d!Vӝe!PL#!"*_sY5,.0y t) RsTGaOĻ,^b p9h."?H>zͦz._)ޙ ~ f"b +bQ{{Sn:ܮFg\;ìfZO!\vvZ0NkJwHYq m \f+֋ R#j|FD}{W&zE/ZuQOlL +>ɓ5|Hb +g{ N m ٔ_ Ue~Ayʹ9fj;cí[Q>"qQNzEt_0;ݶ3+%y%|(Ͷ7^bwZ!S4?y%ށgz(~jBYpSOמx\*^-GFQ@gY_:iQ徍 *SKFaGW|M]rZa;QvTяB8?WQ7u&x.T2wл>K\Zݝ8%(YCCTKo* +WDUF޶+@fED{wzg=]U"}Sh9CG^ Ǵcd|ԂD4g9 ʹrOW%lx߷O.n+O3Upi8jKC#F/ۘNãf[!xU9Tڨ% >@oKh[0@#z)OxL{2lv:5~~T`8Tccםp#pA*~,ϖnlo6^AZZ ZGI|݀sjsd> zqkBOS%c` jFSp{qSqN<*HI|g_8*7ת}їhIXe˪8շ@gyR/D7Q0iVӜ#bԘ'k L,$"b^2IK9NT@T +CEqjL[rt3ҹ4kΙ9L( 30GyGMZ&o{F1|1*8. 8b?ȎߛBy7@<}>$~7 8s J%lyHNb[-#<؅EiЙ E ~}#_"۸DTY@ P=6a~4M͏]ᾑ +F^%,n݄sC9<檙ǹ]%4y,ڵlޠrȆd׺Y.!rN [2H}JO#zBM5֚[j'p't;vTcև7>#<w65sY3{N|ṿ'apbBt}iR1\%qmbl_fe2Gdb'ுpw3)̤N6$M0=CڿĄU L+Pf5F{9Z' 11Sൃ`zzcnl),o[pjuA DB3k O7+?&yF|Hh^Cj.sZ@t"i#&0&D'HE` igssh}G7mw{ZzRfiH'T>D +\ BEѧQ|X]~R:sO m[mno 탣.Tfө蒷8 [Ci=̻vWrNWKFT`d`GV^q2*d)7Ew 雍9mjXu!sHIvI[LD-\#QhA5x& 84w@f(Hϋu +L-H2qM'aD!!IDyIIyGO 80 1T }/q];^b!XuޠLd!yb4u0?bh`HDV!6Mʆl-4(NaH%+VAp3$UGƩ睾r22͞|3g|FtObbM~Z1ax G>8f,?QFK`Y/2ZD޽|[?DҽOK#q@4[DۈGnH ^ₔHJqAA<8( c:d?aLg=ߠ(}&#>d^Z*'(jѾsz {)2NjGJ(j +xl۩ +)x7Dy[iwjܽ.*_ CUf ;@ͨ5|,@{ }sYjqh|u䏤vdr _SKTVG*;TfT̯zѻ⸥kU۴\\vA%>3gy:D^zas,'xGLm[k nL`?`i z!7T#uҙU Pg`ތ ݪ%/R0sդd3AA$F-&: $Fv@o]:j pBxgIIX"zLC[qp_<>geO= ':cdI59oQ[ ɨTX9\$r%@d={k۟tGl[#Fo^|who R0QfQY[yi;/3]i7)~:*FU]e9sN3TSI hCqհmi E[WXHX㇘s'K:s~%|eOv>@`EW L?P?|TUw[#I,B$| kk) +^eV ҔUL?P? 7-xnMfM0mO&I~mL28^f{Ou&3#Xjۛ]%LN츯!jooYFvwjV}Soo΀h$si ƫ:ϻz)nOD/}j00 Ko9wYdCQ.!F!RSz3د"w0^Q}{ 1K\&ǜ_= W+:2E9SC3҅jV6KӋM{ +3S.@?I{VQkym%YY?H=YzU m>ջQ-ZމV||4y''f:tC{})1J)05L +  ꧬB9ARWDIo$@x-%6BG1t^a(}Vyyv8FjQ bkq,Wv$AKL]Qڿ+BrxQTEH$E"]Wdx +XNSKDBnR*ڢ nL!اJ)LEE0Yvo!+#&+s&*#vFm ZF=!]^c b:m{`Z9H~ӲmD`ikRa<Ћ)m-c0?Am]_ +9)l=d'x + @oez,^,@ճIa$&Tp>k-yNl+ +`eDC" +SࡌOOUH^Hi,''`6` 0,ˀyDuUS=?D_Hƅ7`O (xPBԛϧ仦;$Bۈߝ|7S|We35㉎.1LiLX2'!YMPN4:_E>IEDd:4sSsf8/?U~U8ClB#l2E]W a.2֖|7Q}.@61: +7ЛG46wH_{'5x}C|`%+}V^ V s=FM;ߍ87/s *X\}H{LQu%NׁF!]~AWx 4)KRm ,(km+C@;zݦ UJŷa|{f{D^d%Y,)sL#sFk~f'k}.ꋨ~OcѾݩtr@Gv_z дП5 ))&trީ{B|iAxan'6`&]VgFotFC& ȘJ8!пD +lɤkC$;Np# ҈*&Q}L}|seE*Ud&l ?ƨ \j@%4#] ˨: 7Tp¸lB@RU,,n#ՏKr8ʜă2_mjWV1J űl)2h`yw rc8~7 ?y>Ps0V:Z)bj&K!g6P fV+]ݼp zI^mΌ 6Cs=*}Z+邚{Sz2"LtK૕4QjGRo,iʈ~:G+pjU%&3)8>b[70N&;]p!:|EQ%,V9J96ډՁ&XaFL*$&R4Y f` ̾--jmA1+?v8USA빟tч=O:5K48t(X]Jrr_#rwԗ_͜e}0U&Ele3Hz]uc'qjʞV33#/@f̼2s}Kc | +P@zud>~5~"~B6$Ho;w +vв#cqƤ崺 (!pSQ5ꏯwgvd +ޗ,H^-Nm ANa4J# =<4hޕ .b7*89QQ~U<9DeFe'oo,&Η'~qAl;T!4.z+%h0(0kM:o#/UZayy&Uws+#hr?K +ƾwQDKķĐeD`X'6,ʗAPzSeěe=!4hQgfpԢ_ +rJ*"doA9K_mA #{A Z4:^IQQ?X%2rbw-RYKa0ZR3u"m +Z"-RWv?F*U[Q$&ۊ=I8H^>@!G +F'3CEYЂ> X0Vb`,oLɿ|?W?ZB)/ @,yCMW:K65 8Iq [܍OlfaS3~αdG"Z/(/D؟+ ]V +ntd(mӠ5(k_/ ?xL28Z#SC,wY@k/]<_ ^IW^SJsz;Q94W*WRW͠>xn5޷{Axpo3 9vU"||Q:g50:](,.tS(6z݄ue`ll# n$ƷJuֵhZZz(F$דw& S +0yk6-:"+KdG?=@.dZ {[{Yz*1 +{p7ni~Mﷵ(;]]&&6 .]ZdjkUI"K[Z'2kBt %[]Uz7z]OǓī%BIW< ![aw>fggqKPG#p+hBw(ù\&ב2XJ_ăah^c7oA99`Im6"0W 0fY- ?"Zu{05ב"ܳ>y",k˧4\6 t[+.-dzUPh>C1a0@ヘiI&SPcywNUZQ,2W†dJ8]P*\}%A|x̰dr'M#B_{R!w, +WtYLnuGXpL$8!b:Q3c=a=Tv51cXTmdˤ{-UQ!vx|~^~~o5tͿt y7P(Pc~Ɯ{@FY{F9 üe%a9aCqm.>f+"Atec9ds"ؚ40N gla O Pd_ j +GMn$|/{T<]#SIGc5dDer2Q2f!*]"r>BHtQ CJ#]Ԅ+SRfCgCr-քrMX1D7AF;CXg_sv? TO຿@oV9Ke/~D@! +HF/BNAEA$#4DS|SgY$J TQbӑO[K[)U/H~W ˻ +̱Pj9;X*՚5XsP^g)sͯ,\Ũ6>T=+k =$_,tA ֑/cP%z%& {"zʌK0 T 24t[ 66rۯ([loz06ό +l_׊Q`1m"Ru.s^߁,G^5 )򗩭NJmΚ^Պqę؄2EI{ `b ?qbJsTؼaE|Vb*`Ez΀xZʳ8, cTkU4NHU:ų)%r\d?k^E69lcsEd_ +zn@mgd'` + +k^V"<~K jXчB4%TIUvܮ&}Ē@p1nW3'U'>o׾?>;UE҈GXSbvjJ5htQH5D4O!Gwԛ.'.EV k:1#+LooOpm;wr`S t|JICnD4ԄwuE%481ڐk+5H5:2 #d/ O/ԯ/YD>/c.ŦEofCzg̀@5@E*{/G\Vk"_o5^˧`SQVj&̉VT'Y>[Ӟ8a87VccE%uAbwDh\I7Nib#U2jp2nP?{Ma/( +CzM-pC<!uMAAJA8R0)XH/:N K%VQqWs[noI"8-ցPK/ IvyԒ3 16v4TPUۻCQXq"X/|bGm-v6l3e'(7>W"lpݖJ|lOpΣtj {Ks-Z/;Lކ]x7+0k&5;MUʹF?Pll38 /?#96gN_/@8q9 hL#;jj)dU6Xt, N*1a +q&!- +iC@aDI17$s@tQ^B !n`NJY_fދ2fCu_+/М5縷HEnBC;hyƚNW<=:]A0wx:N eA+h&HaNB &XEmv`ɱ!}L!# +' -/@"ZHGr RJ@hâ s>.@hڞ7xvju![[px(ψƨ_o#뎻NW +ț3&R'& +Ty)SР,ϔgr_{ϙɇ9)"Y5 +*GP8i[e =+k){OGz#YSj(d5d\O K 2kF>j mc)F+bV0V1(1&zyVI3U^)``q9kbE=틑@ +dApW$kl QҭVd . 8*,'0DfG8Me^I6e1:ɋ|AriDiWAc /}m.  +f:B`4s)f +>Px;0<@|)] dßozuLfcCE1Y_Ɍcr %yZ>O"ƤZ9&^zVdnυjL66&i9uEnr3AD(#as/}||UA>!Q0߾u#Ci (r#<8q8ȟQ?@G"Dfav">1J>xs܊i )x{xZD[Wshte~FB9L"xT R<|NNY(Qllwbyצ E)wRt~bBYTMpIݲO/i}j*<?`7,W_)vNv,)&qb˅I#TJ8\lC#~T']!)R{JL G֑Ct!HT . )Rr&`X2x5'A/8"sxNY2؝XY +l kZQ`;@p;™0E +{XymFFJWdsjT'wVkp?pW#7p*ȕ2 ExeX)˚+e_9157%*9[e I rO{َ,ۢ#APoL{DȟC`xLiۖ J-}X Ff-YN d +&c+]ǩ0O X(%ؒ} rN#.eq=Kv4sȥ}F"+>?@P*D⑪\;#i OT=8sь1k\q -]K˖Ț%BUR]vsFnJ4~u! +FP25j-dWߗKeȗ8^Duvu*D޴fNs?UX[Ѵm-iVYWUA]@Ԅ"8l5a '":1n uoG9.OTcZ#j +f*{r + zCP?y+R*a0f +ԼR3_ +trQݶ#)DtG$ ɎW$x{pXkB{CPO+u\A4j@]EC}]s5]vCԹ0iV~58i ]xemm\ BE2 p :BV<$(_@PY~WJNm=]K(ΪM Ž㪗sVy +xijw !ݗIK/+Z}WCf1*3mrUi|>/tƝ:5A'vݜ`*G~FQ@/s@wm&{}urA(2UA?ȩ/+[_ts.hU] gen׭[n3bpqnJK4WsEB2:Gtɞ2\dZYelOȒ VrhBD{֘ a\!7w_ctT.vijS6AʂUpOnBG`p+1`p> fr4p wT˳?oV&1 K bib<Jg|B5g#MSr'; } :x5g,Ez:k}pєԀJThfRƒżxSM3/yٱ0hZhWD_M^$7pV6 y Y҈j 7)HѮz)we`=BsXl~r+lj-d!JY lm+乆ZbShh,=pMk]["!pS&y8haͰpPn0WѾBu +em!Jʕ`n',CzI `hv= sxZN}˙ZV"E3E&u쀺0,3t08&׷\5zgMKs+ +S! a_%zد~Լ\d1g{>;eNԱ~)Hעޭ-E!M3 )4:/R^YE[vN=~)+^Eq돀oqk2X]b]BQ=`r3~Gk?`dKuή)\1bHs'yAqw!.Ï ۋi]ۢ%(KGܻ䭽Ϟm'Re9xǁq! w{|3Գ˯! + Q0(u*KyU,7$'钾{}5NXhuMǞB9=Rr\` !ea˭OnW+^ۗZ}\U'Z <.m'k 5VvE4Q>qTX"U_{fYwknN4Ed]VA5U{MKIe2)#iuY"R=/iz}v#u-RJ[$PE:S='P_?0xGxQ*}x2xq< E&xzuMi`LNol +o/)?'C\2\z7QLj!l4[ Jl8T6JPTl$@%`u֥?,]hU@K1n!%k8-K1}`#gtWlza$U/ņ6Yұuei/kk/^0 ?%H6I$hl=#dgžN6}0_! -Z1ϷQG؜zlKVQFva,WƲJqDOd5ÈA8'&MIOxPHDje/M¾.t )%27DTԷT֢%a#[ Jc}|5>dYCNKSeSTY:PYTT64h?S*k\ߋձ_+=Bl0!VƦ AQǢv c>ХgіHvN`?ӟy({ -0uX50DgGHf~F얺LV/^ QJj帣[)\߇]PF޼ FYͨk߸'NmǨj7 + q[-&KL!uA~BH~q$J~D2'9 @ō=bJ+,*O9n3wRW-38q;Ȇo7_O7\,5 G1 `$>;$U=3g+,>V`[ gK0cƜtHG8M(YW*=Dl!䪜çqnGn;܎Kv>{SY^YpYF `+AYv\ x +x: <_lf 484}qa֥"O + 0sʦ9BU=Z}SZ>/_w `OR诲}fxB#M$8eDm +u&BP?W&R(H|^05?jo0!L8&tzN-ˈ@t4As,=#jRdf~sS{g(ZgA[hѓ_w/$9~k8N9^ 7VNMY.I)~D4 ē nщZB.XQ3ҙr;YQ9!Z0ug/8UORoe/) >j 9/,_ t gpcܴH{x3Nyg +^.6 JID=9|PjR-֟`NdCfODe6f2Tr[6^db=ZnH.ٕ'PM >Ew;S60lvv{[˻F*XUM6$ +x +HwxGYFNϹ: ~7~ dU"<8& \7* >j_=##2J;NL,mҌiBj{c d]}6H?釒u]+\Ӈw*~T.%I+} ٢5)z"b:Hk31dP*";hGN P[\e|2?ń\ꝥ4 +( 3D^\1XF\bOL^N,68O.d[~ %V$a,I| |_i Wu6Ҙ!(Kv~O9eg6ǯ팔}|Ylva'._>#zC|)Bp/롈9^C D?'Y?GԀ5쑼PКGُ=N6'6+ 3%-< M] l~#)l"?VvP9SZMtM>8OD`{S0T3J^rObJj:@`xLW{K +1 V1ch/a B?)Et d@&@xU͠H\}0faI BQ.8'lb׭^p||`d+ZyVa=bTdI?lj~dwA'V.pʋ6ț0@"nxcP/#Gr᜷]޶! 4[fne~#v [襐dkkmn!tn"Q?PXG#[`3٫ t|W"q่ۜ4ю[˚/e-R<(#'f qNΦ0ȕ"&QhA0pY:"Fmr+!ه8[C߹c:h za:( AFLtPLtLtLtPq2tPF~䄥!HF^Db!1R^<4g ? E^adZi+Yմ̭ +@ߥ[B|l+c>ǶYw*c&0Y+j +Sl6fd܄.x}K ,=Ec '|57 jo +QEQ a]T|؇sC<>gdL(oM'oeWQBla&fcI9NXĒnsOd\:~IgvBuiژmo7$(],g4VۓM2w㾠EʯhNz +{ݿ~UHgFz>Nz\r?PS9bEf!!D'5m v |>b&H7dSK#* + ˭5#Ca?3hQ 8XvVp병əhw<0[<^ )""sxmŲqE8^GpV.kDV+?)<^˧晴ղ#O)[BB!,B(qJqU@i@P"U(p( +~; dީޥs= +9V_?Fx'9^b]8ǨDޮoZ'#3 Z"H_G"EyNCO[~CV 1z!]KI|/wx`%o_(UuKUTBW1.úu.L( 8Q.u\h9ДÒv^<9dG͖ +eA CFS E8qEDV;-S/Xև՚zF co8,o&dbػ֐*3VnM*h^Hq/uDsE> +=x ~L^s^QyX4hne!G`6{Ki|$=qFWЧPeZUUA|?J>$ހWS}Mܗvv#.L3~=o9~^^g O +e #q4YyH/#}dC;6<\%_{eVC3Cd0#܋=܃c<[p |,#b΄m f[DdȦ|LޛPؤ?ܛK1fOPo*jn)H%1 1s+HH1"Je@-x_V4.R=E0\7A8}O-XbC{Gi^Wv@{ל{h-'NKrVy8F^,P#UO]zWQ[0 [uKd̋* ֨ù ă#,ݘNVڟ\ 1|[0Jh;8\sfsxfZ|ToqY#0yYG>[Yr]#y`8ߧ !{z"@ys9Hld^ۜ8$X[g rEy4[/QIQ3q!) + wrdvOq&m{N׸lq7ڞ#ȏk ^0N/ug{aUey6`i _g/ HJ51p:{aړf) +IaYY +W`”WABN-[ wJ~Jz}L=]R9Qoւ^3_.15,1swdfϾ%NLjlzxʜ]6a{q☁oEGoss{oCn~{c/Lsƨ&@VJ8JCl'tjr }- +DE-lf̜*ޘU:߾Hh7ئBJ mc.jϱp>ss7D:6|݁B6S ɷR > &t-Qұl*`;; 1:FepB$ÄS/=8ѓ\݁ρ_x;++7;#G9²NtJXaׁN{\1}r L6+ʖsEٲoUF / P&,+ăKj8f-~窆JMLpHЛ @_`[)lbmfq"xܳN:hf.uYԉPSJ'CmU&٨-Ԣ@P_a"EYMd['[eR{ys"l( A y$@Z ⎴2Fg"gl9C\/qKJ2w45͵rj,(P,%EqU*4LȬ,H4ǭ\FSsν |C޼w9swo,R$^WDd\-&əO(j]Ԗ^#|Р׋q 4{ndf&G|fbTag᫘4,FBnKue6p^`WCCaC+NцnS+iEjrqp(&'2(QreN}\*ΣĖVS6:`snqe2>ԟ/ rhѼ跴H5J6VLh li\Bol:Sԡ< "N4ƍVkWATѱ# ~T KɝIaeuW +-[dja[7m-y貄i͏|.𖏍 KG/ZĿ# +ㇹW ca,X)"7!BV%gZdVl\Mr+, +\efȽ,;h9e!e]-L}.FEe٨HT²8E}XMF\UKlthh}tmNOԘVk"r>]"g4EN9~D_ EKkWq:-" )MޠBG0jz^sR9{צ 0q +a~6ani$3P{vǑo}*~b}x HA,h6J$π()?CT@H+二RCȅgn ,ay?#^֩_np lBV~_A,ѽB5] ~a@zLʉ9HN_3B$t pc }\Pyx&~\@aB岑䶙ڗY Jj}jd \,7S/ %wga[d&h8_˂oVêr(3t|r^Zy~˶EЕְzv'*~܆/_0%#<5 +`|B,;宝 (]9J?Uq}Wf-^Eƾx׻զTuՉ]}BmLcg6>[(QX*;̡ɻx#fO/y2E3qᙉPݪ_Y>haP𙱚+Zs?W/_I&Pr ӹH<%*#6o ė4=G>T`#ә:8\%''Pn?8o.Fǫ.?{;e?tt7/!_vz ie2<  +4rRLzc`9FZhdFCx27<ŋ +1寤O!WU)Մ0R,,?kc+[,;;-0o8~u>yI ʮb/,ʩy hU+apw ?VJ $Bɪu Bb +Iϊ?]Ą0G[aNMcU@Gʄ|Nd)'_S'iHR^I2cx.[xϼb]|M*N\k$N+O9tmW_k^~ bj3CaQ32+?:UrO< ǿ79pn/xYAKP:Pﷂ158lBL:[)BQgF'-ާI Ъ+h5s%j5t[q\Fi.=YH{vRJYF7-fR c +.d3 Y{Bi{Qv_z_l({iu0GwLh*}SQ}`68IĚJn'(zY\xEa1@8&zP,gGxxH<֪<,] 9lm65&a+-1\/F{%'6PZO%cNQ`KM$ ,bPs:s&MEH8B  e?SpPhSS|6!񵷡Kķ^V$,`)di +9BqQup>\G[0MXz {Irpv<зxJ|?M{YV"e|- sSpegKvÍdֆեZ<^8a>k2 3'l(ԍpdX_OP]K nq 6hemB{0o'a"^T?Փ7ّoc凛ɒ3<8SZHu~|.fEXVOXVf' +<'MToQ÷ђ0Î7wH:E:džU,jYRLZ,1I'eDebr3Pt,rSjEV )=Oy5XA$1$vV%ΓSӌ003Ki)j* +j#?Ϛ|ss_*kqQUo~ôYK=_~/R#apJ֓(S ZϽKjUqd}rO}Lb71˻ifiߴZTJ8p*9wγWU{I֩Ds6|}8<4hE}PrK {|YTdJdC'#er[r>Ě98:9FpGvedhP.K)X) "? ^g@"q6&vvU cj$B?r)]~Q<$yJ;t.л2 zfofЅ%ͅ"w"HO"=(I(rvJGJ$1$NW%n%gev{Sw0u' 1!`fPy>ZNp"b9{I'&8>"5A $~t&(T(+Gv6@xE]pŻ 2'8f.$] +٭(aY濗#avJ. /g#Ƚ"p6R֐k|=`&ܸ?%G +~f 6fv:e;-wYt eM:nbAi@*XBzGaJKN2@H&ɹ 83Y$vWTcwCSr> _Zs˚H,wן?i! erڼ?(06FЇ 4H@*] hPV{(IxVr܋ZuJz߷Ɵh-Dp~St ) [ˠ葉B:8`HfSuc=kB6ikOLw.Cg)‹"UN9Tu}EB&ν%9.UN\dUzN +E; E EZN/ߖ"*?#T.Drڶз{=E_ [_$vT.NSPJPnV1\zP^8FGgt3!ŊYA.*Z$TE+#R::ŏ 7^'Ŵtw /A*jRY:Bp~,Gjv:E(-\B"?^Lfk*Wӫ|P.TP%2׽W'UY{Zg~P6l ++!a/E7)\M*%.- +$ 7*fqThGڊ֛=yjgַi]:Fh}zbz`4lBS1ZQShSO&RK3>IpJܳHJi #-j4|SSh5_8#BqB-5p&B==u -\2_Wpӧ543Ap aX0=s)3O{P3Ps}2[!*6ܜIyrfO=p{a5aB^`ȶUhkMlrI.hE!:KxxBl&d EΤCcQV(b@€V{'=ǩjl.1d#{APZPj $j5n {"F0V +Än<$/&&)ґ1a+ї%n:ʃcM5aIh_"X|BTں<#Bq&fQ_D Vi5H +B4- xO됢a Iㆁ(Y( y>2$?Ce(IuA*ĴšA{@E$ MBBYoݻCo[ +pUD=R Pt:>3W:=BݕD3 vL\t&'4{ ~\Ib&էυp\yBq9(n|h.XE\< I\5LC5|-iEKa?I=(zUïyE?K1~3ޚD7%BIITЌ[[ea*YBXcC@~@FusYX$[H+"oFa!DvB4}:9uJ +vJ(KRJ(_,M!q )7 Ḍ_HBZR7^V$% ƼY +'^Eup@$,|Z$&( 4AcAL+Ѽ*,p%uA$6QSHshȻ3ħ!rHLW"$ A",$D_#c +E$Rm`vQFl0GFYBHͅCMX3t""\#*=>?t^g~煥 +K =]ޝ*b%! D D1= y];_^G&m$8WCwNCO<'Sx5vcF?I>1`,S`2~pD! g7,?',FFs@ 7Xp5 o- P 8ן-Tō.@[:#PYyr)$fᐥg,b}O!x0(ySwBsd<)0uAot\pZF8%ۮE'u椰Fb5:Gkf93yS;1FHQ;XO) KHPqW]H>3ɺ$IN +4&9ȲoXtjB ]!}Dyf).Ł8/{%F7?Bz54p3'Gg]ΑIqIƾv~alagS<?3#umpOg=Ǐ {-x5 +6"h +s;ភpU[. m 3%Ïa08^0< + mG↥POqFopi'Hn*%?@3bs'<$/V% EǿM249Kɰ&~ ̳x++`WJ@Dp# hGomS~C1~)JI|>sSTJ)S޿`}Nw Gh )FE;$'-{ )WYTg/< Q%ߏBG)AC3c aw%\KCf65T:F+RHxTWER^](a*ߑ1őE#П:CHDP|86'*[$!Eao hE[" +om +G7B8*PB4 >[BIXWţ@6(vA$c#Kx1d8TSZhDCW:#K#~HĮaaua M$H?@Jhnɣt>*'Ɂ3哸 >(>_O[OR|re;O(= =IA('#t 4 !]@::|z 8(|u>YVM$ZNXJv_&D{bQIJϾBDty@#FG@oĠ.<ït<԰"? 1Qa&}$n9k@~JjaE_Ey f|yP?I%Bbշ +Іz_UP4 ,; /90F{ |z'IFRRZP?o"UX ǮhjE_GuWE߸X$1߸R%uj0@b_Gְj=>H.< )EuS)Nthצy( RsIj*u- L`w}Jqvh(KYN$D Q0r>u#I=sY&pb#`'T7W0sp V0Lb}0A|(w!Z= V}" '(I4{|oˉ".EhG((T1Yګ3F^a4L(Ƹ4UAA +O%|(-iKʟޫ$6J٨AB _,iOW\n$y-AK}Fx(?TwEygp!ȜwO-p-0WoO׋|gBrmMʎ̥"fS$WS ?DOkDBQB4F#zTG=ݮ#шz*D4TpF#+D4:(&h(F! RʆHtD +Y(N!:n%*D%&(b.CGAKml:L=g]]l;.[O}ӥktrt.IGKut~: +t35:HO7F5L+=ѭyt=5:/8t4ttt-5:`=]FwJ+t_Btjt:jt :z4H]sή{YF%kt?bt4utt].VOUݬu%<*tG4uJP6qJdC ʑ1cAx6ך.E%ҴMSac*<颭li+(1m{x[ ޏ.{3o`[m!{s4/9襉K;Z4^ 7F}y^{cPRmJe .b&殁+VvNc<iK74¨3+@Gemno鉩w,&Z8؟6(M~g"+vQ{D}=DhM4|?;h-MhnLLWs[wo$^M|g+qrF_r&xiNZ8J19&+nhQliDy!HPUޠN<>l*l="&ɧW:NY!G"'~^!'$≜xF/T8WGܜ_pK|!">POlGZ6!i];-\J%0){sz׎H5Vqk$UYbng7nNy?ERTPIܔ;C#7@d\hﺊ)o5wBsD;"Kpw/0aX2X6a>(_l%3jⳓʊ'@[vQRkTrq|uSBM\dtNhna]0"_S`SY=4 =^$qV1L.5e⃞}~X!.u_)ަAP[5HEp.ZfbV 3Y>;2Y¯[F{t] WnH6]$(\\pMX [kt}:U>9]>.fp1]hv.bE#x]4E(\.ZE7v.:pт]7;"]x7Oɞ|G'g oD_Y[0D*zC*:v_Sy7qֶQ|鴝_ヾF ʱ07gQ\</0+^R9s֊ xdtEdw:rTAK )?2A!3vO&B?>=ǁ(kj$e=;X>;㺳Xcx7bJ2\:Xݒ + k"ZT#P %y[ i^ CkD7C5h#kLP6*<*yZ]8{'Y_WhN +W z:-rאM|:Z^#E 5O u.:o΂iqaZ2 8Ԇ+^IĹa4W?Ip'GsYq<>Po 2h'uĠ`60h 9&Wv^3طro À;uQ~pCw}p8YI7 D,UY%39`2d CX6"}U) B u݅%~(d ,P"uc% (ÐNZh"T-RG7?cc4Y?19`Qw N䙯.=V5"LְpCaRä]J G믉>|_7$*| U9vV=(Euw5ynCG5Xr.8iGsj4^0XM2 }\_减k_To&-"k"V E^˫;@W܇@~29+!oj~r=𩀒ȽPV2@)TkoA + pJXETVl!kF: ۘ|Gch#L/[9B,ܿv_B~pk_*0V0`8ƼyXMR:$Q2NHBU?MH@ϳYpR#a=v +D%+fqe,CZIBfdg$*gT%.I-ue"Y%,BI)$B +iBΒN$Uȫ 84LT<d24I\W#bJ "KQ?N%#&dvlyLP>85~.5~nmnik@ \(px9o堿b+XkX 7S܎RR%_-[O(KJP|rޗFw0mh[윶e~`nL:J&IbDLLI& x)3"kַAm-%߷%9|H6!ڱqD,bKs9s@v< @T Jf1e# GwHؖ,Y$dHHg"!'Hy֔lrz9=NNO_ʬhђ2#[2KZ+|;XYrp2#+aki+l2ǡwat?R, !b)&sF0348W}[ˀ'g8( qa ęK1ɶ^[1* +%"7A`R"0]g1+S~-S#6O!mn mzTYO4'BNʂvNj<-vP?otʴ3i0HXf:2,V2c6g'q/gxǢ{):󀄦R|L,$*a +Hx)@*!_b: U66Zi )Rw]b`x܅[;m0SB?8Xo~'w,R -Nk8ΑC7J0=ҝ? Mh(`FpZxrEPjl:a7t0i&_N4IS>+PAÏo6&//mKߧߕ*#w vtEI''iLK"\_zQ\9`Tk8=\oDJ Wu\tuwb83%032./5NES(w: >lGW&:eV7)ҸJQWJD֎{V2~b1yX'PG~>UcTlvcE/wXO1<ٰX܌q?qlr8/U]xs7_x ? Ko˷GTz +`P? <";ZOH b؍Sfۋ g7@,6A^>L@4ULp.)|ͨp͊«@_r;d8I|xq㈟8m{Gw=+^ oڟE!j}>9WOyX|ىCeWj͹n?mܘ)}8 +k;{Ipxd4wJ& 5!9y/6{D|L]vXXc=傇 *$gg%G-B`[\ +0/O:Lχ7$ڳvhOW"L&ău.E@ۜuӓjⱦoTŞ.S-WOe¦?-d(2 '7@;\UVx%z"F+tAǾ7,CDCFzQ" +[ѿJWePkӈAvwS` SuaOƉ'0/im#6h+EvVDgO^ΟFWPȵ*gT\)4X<:IlSpk!A;`CHC|>uJ6Q>(^Ajm7RtFȷӾQP)hI&ݪ'Xfi%>x9o'ci'QQ -*Q}OT+ wvkY^if@v7ZpM?o'(,yXN..3+'G 1rC<}*WNM4#z(;Q=yxHQ&[GRa4N녥FS/#CP*XŌr7l0Dv "K"=)?lO3\Xb0yu&IshklfuA0 r.ӨZhe!CĬ`"ak3ztϛ<,3*iؕ6fV'?"D"oC}XL(A(􍂳 EQB(xNȐ*QPDAFEsS+QQW/En(kijE #J8hңGy{hxpco] n;dD'Q}$ꑱ֠$ͥE&O87zK]]#[ľ> !H^P-@k͹曕UqRږi뵕^>-%Z>&1_xJP6OEh@@ ;G}"C0mΰ3-ug?=%Wcx]Y<;A$ʢ "1c= h))12O7k~/` ֏"[a5&_%P.Ǚ2ce8˰;SӑS85rl7 +0'̛(D)yRT4Q>RW ڨPMg#0({7Hm>;F_ƀW1^:F~D^#r|@@H1!wds!gDh3F!I_OH)}c?FqH5JH#bd#61H3:Rz'oxw >anwɁU3UO.75; 8hIcsKOWtS}jD:(^#z[G=-4a:"T߮Q7QOF# +WщU"T?OIuDꩾ?kDY:hF4OG4J!zO##RO}Y##RO]%*D4c)DS}6 v^NmMejittNJf::é5tS} 5ttz{:<=BTtnplv]nFWSGWitsT:é5::éݳ:: I7AGg8ףNݭ5NݨZ3F3F.LOX3=3<\k3|FWJg8%FWGg8%FZGg8%8P[3|⸤3\N ttS?}zUf]e]nF7MG{R_G5ezit??=]K]F@Owƣ?]F7TGWv]FWSG1ĕFwC]^m輆xȚ{Ztittt!z{5??5=]._G u]8?]O=aa]ήH+{_t^].I[-kt#utqz]]FKtӕ7c3+6s`sY!6X|ґa}gj̜ѧdrs8ۍ3 :~0?#qηAؒ$ED ;qebl[:_ܷPn[ا+:Ynv-s#)p瑠y8# ΅>93!}:HGdc>l*up .ؒj؇#pkBNƊYƊle8Ɗsi3r &Y6![pFIٕ7U :+݀%!ɏAb3Of3xj A,N_V 2r叒7C7Ί1)ޠe gn9(ϊ]ˮX|'w;[wSN$ +KDp-]fןd~' + hN'ɹ"]p<\ LNFX.&E n.E(wsn[I[5sq9+8?n$ ^s OJ^5ݐΧGrδnP4>xYlޅAyJ(Ehȗ/Nehi9#a0VܝJWZq\_ܷ AfW=O 1^Z'o_fo(Qoz[ѰkԧoLl޲CBg}=<:4XX6ߢ}?W܉5l~7`+ivfoފr@xЫN{- ZuQ3%!#uAƒeڟޯ}AwzvШGF/07 z~@{$=;ُ㓍z?t}_0] ށF*z+7;9(~ ChhkkzV_M`< -5Ow$-HE3gʽe m5#\^Uo菜@Yh(UQ ++FNJwP7C%"00sy&U•BaSW~AwV*xT%i8KVJ"g%goU*i~QNRB7B"iS#xj猩b=T}WUAOXob94I\@q^É@=q2'~A#~/tN<^\񃜸/qGN\W\q'>netڸ}F"z.%Iq$sN1n)R0~YƆ\U ؙ{f,)9]R&*q$ˉsbgZI|.c=" ؐ^b79"3l*V2ڙyIdWA1w_aǾP|6it)鎻_hAW= ak*4j5ɲ~1WS !G+y+){->ݵS3fii;ŬvaOzXvFvfDл}ՠP:l_%k\ f~,5|;8KhdҗV +CCh'uG%扭@_P+)3Y(f`J׉-YţY _c}Pk@EWEm#Ų9GB s,aS⣝M^-#Gqd +=44,԰#BxHE쩛Foxi73w-/ zKϐ$[o}k40^S_ȞS`/s?|)qp$xxIB${ kS+wA,;E>; ~FgbHaH^gKB>o:DXOYE/+.*/tO,ԉċ#hOm +DZ"]:^NкKiX(U#Lw=.wZz&Rh'K"G*"a!O >MJIRLGy!/V%`Gd mj|xkơ[-lDz|볽tN8`+*f iB3uye1$\-UxhgԔzSϘP9~3x ):g' w˺rOr{,cWyd(] +)N~;fxLNq4 %hl! ZoRRf閹 +AkZ{cF5RUgCeB̞EсQNE3D˅>bT*G#е qx0ě̏t2Oߢ!}taV ^KlDvVb&YhŜWĉr)v4oZ`ov7MZ(TP'X\dwT]mB+վBʃ2umb^M} juhЮ ]p2ITarjg]q + Z1Moj_j?j ?%Tk |ǧtCY| O$ݚBiQf:9?w?5Q5%5kɸ9[ӪH 8J%,R GEjlG*@g3r'lEjɾ(bX0|U릓.*[%,T/ wD{830RjY|USZvF_,Ҩ¦1yuTNwl.hvl* +OFq]#js+<6.Ce*Z:sJ +Ǯ +/**@$aW9xՀ]eSb^_n}FlSf$*pX"bbߝAe큎]9[㉯cc㹉Q\ +!ϳj#q:Ph +b𠘞R )ɛKV|[*%(Ԫ=O3(\=Gރ!Kc* b; ~G8p-:d '^3|@}@H"Dt]jLz^93t7fw) =,+iw)\!c<)xgt0xl2& +&]*WZ=]#:[MTN*uM⺛lBQB{[vxF b|@vSjaYY~6i u|՞P~:>sYZ׿a/sR_Tf>hh6h,\'jC7UuVUۧXUGTCE#e:*[pU~IDh-T)/ȡucjG04caoԤ)0-I,'C'.~1Nkەr8}S4G.t mS6v MB1'ӈ٩jSjNFOv[N5g*HaI}Ji϶>owr*KvD?MKn'xKhjɺ8A3>-=Ȧ=BFȮDğg<>Cc;645le,F7I@PC稒iQR~ zu I+xFbMeL2G{8Oк<1s#=VBXO?R1H %eQ$QҎIk IZ`qkƩ pKFddS,j`Elrs2+Yk5MIMZ-ƤJI*7ƛ.{mzZ5@]zip1,(|zR%!I[@ђG F!2Zh~F[ON:5,v^LGIW$|X"sIeߛhGrY +\eeRSk >鋽nϔKŢ/ E-$* +Z©3`3[#Ɲlg+l~H,>!]HebK *xEaaBLqOAp R^u^}!,+b7x*lh́Z^[he5pyM\pY-'rY y%/|Ӣju݆NJcJSKؔ?LUJv*[bC. +\GYroᮅбLIʶG?Y6,`a*>l16EedFlC‘ÁCpNBCm!s$Q5`}yQ`ZõEKӶuSp!ʜG>rOܡQ8ȑ%4y8\oe(o:J}φO>M@ceY-Wct /N@w1A޾ +![@4yGk,~Y'aT7C{Z܏=3yԃഠ%xr(ic xw8# qwqD_ ;`tkaO .la/)WVݧHħo_ExDz\}݇-0]+dw% oڗP?8[8%'s`72Ho=]0{SR%=%ToߐRJ}*wҨ5}Jv5jEퟷ]8s$b.P:]K |ߚ7L{ CaNbdX\O,,(_A"k.V~,!AvwUōo" EABU"&ҕ.*-Y%Q="%Z@$I(bPԀ(4*Psܳ%!_y~Lv2gΜ)LϵaFm6Pc2Uvd,!=:dCJ+Y&ocAlFYjpY,x7LhUaBЎofhz+> + tRY!誨\Ac hSJPa{#"օĞ^Al̮&B3B jste` k:Ԃ 3x7+  71ӵF+0nYM$Utn{;"ND^Dk"'&*@N@0 9C +3zAv(]/U&>EmDSlZQٶna85+DIpFH'#|K4Q`3#eeťI {\ॐxon@ OL4NST˄^HipΈkO8 iq} 0\zDĢjoj8Iz<]&EJ$p8ijKcN'}& 5p= +5k=jtO>*fꪘg_zU.'߰ߵh<KD/C1[tVE_-h\}>emR[SP=,&8@T$isij*iM+mx@\wZn-=]Jl/Bc M9b 񺟱O!gѳjpSd㨲=,aߖYϲ2&%$ɇkhg _$ɠ4㌮\CM6rm 0xRЮ3/ʟ|2:dB?I 0a%B%#ʜP&}N)j~J >!bqDlk2#&. IGG s_֎Іs4ZF7[v^F#p+T»6ry|$W效ײ>]y'"wfDVuqɓH~랂i00}<٠F-6kLy [a:?e$N '‡˙h[[%4 [ne߻L~OLv#&ǽŘ|F1VR0)@6_3ܺ3qhm6ZG4+ΫKNB0 ]OҪ{jr_^=#ZsKqA\rq *^h;\@]>)Qܷ.(O oeO||7W|;_Qn'NٰнJC.:B:NA6Q [jWlm2 7rHhR26Wd<O{,YW?ޙODpeq. Xi +'U}+DfMB-PZ4h${U_^>@ʟ@'r*O%6X'ؙ;ACw+f$0mnE\=[P!b8A'eb8XcQ-R~R/dC8{:GqqT8LUU gkŅFXhWf!7{01CUP9{bl'H+F>7dJ}M*2Z\?WnTAb@T'IC2P cg0E fM 5|DAS԰5⧀X"XxI[VQY#,-JR.k'to"=H;QŐϵb'#hNs*ԜHu8RFZHtq}FFVξʐ7V#tZpcis#؄P?bku} 5!3eJ!bRn*R^PCmwqO>ƹ V:'Ħ.(eRDy)C9H<ꣅzңL!5;N x9MBe\EkN栴OxǷт]UDAD4o }PPC +¾mbH%Mk*ng1p|7~D`F&ОlWQ +"Y)FfAsyyٹ91r1^Rhur{4J-@I( %,([LŚ~UĈo&܎S̖$M,sj-b0?4(=LB,& Dv>';A}Zr>\ =ȿ(NgxV1R* Yf{akOA1f}G5T~F(o BQ(!2xFmcFM%,&OiaQ +Y_]" `y/q0Q!zn:sCAR-e5APJ Ou2gBqbk +$p(#i7ON/a!YW03*~sp;99=B-M'{MqBS5!)^VEdeXN88O-@~~I?_N^]>n D_wba/>'WžV3JiEbv OyZCj<&.e_!`1 Jy4Gq4Xxlyxtv?,M4`U'41*SP1x=a.+>YQ +JyHTTò GFL'*df2-р"L;dCl,[ORh*03YlUC`wb\d 3WGru&6/X"O_yr4sU4UA"&K2F+n$$(6.D^-BJB*sJyN%r '90" &) +bW Bϑ>HVal?hP(ۜC?E?hՠgQ)/e\fg7e#|́|04B/I9{;HEE0#%F%D3%NŶqr1 G>{XV"$Z[QH&'Hx[0Td"`OMeR3g[M]D3ןejoiXIU}e'85B펁 1wg62W3Wq#} \ 1?S6w~όfgu}9 q?f6JN="  YT#V_{#Ȗ8{FJ5TE3W{J͝ǿ72nK-x;mJVL}!1qz&2LďՔvSNӂTyligx}q'? cdZ)e\CMja-\l˳aYfz.@&papU]é4߃2u,yٓIf +6`*xRy[[#Rí0"Oq5ǀ .;/e$z] D56Th-e1A֐kr AN| יdj )~ȧ Oj  (f˯*n770M+M< }{yTܻ.jeZakh.6bé #:"6<ɿNƜ&o<'"8פQ//3ԪO86J -iaf{kCnmN 0LjؚhNJ~x%|F(Mz0qN'Ǝ +Oݗ?h7m*6́I5/Di/2ޯU7w Q(dh?(*eҊ TUKwP# ‚P6= ee %JY0P9XDÏדoPEXfd? e18!RJَnmc\{Zcx|UxC)1cwc} #5/D(eK6/0?p)ɁAOw\~ $(5qx'DR'|D 9il9 +2|[gQw䇧2?RmUa̩UZ@!4pI;5yU)) `jLeia0#H2gM A5O["N5#{@"v +3ZQ@Md )<~I/sX؅3x/;7Qy UX1l(B@$(еLo+(M6!j<Ǝ;#LR ]> Ws'2aRu"gy\ +Ԅ~ѕLޞR'1B/~{cv2nda6b߿PE{^ Ξypfѽ Gcc.VhIh mW9Nc=18|/xѾT'ss^5u7&pQ>ot8I%UA>xF.<BQzkz/'0Vua14:4F/"7,BI(9J?MNXA)%@<?97w˰}&X^Qh@4PeHf Lo +L8m׃)7&)a-k:,xR +U,O(UB'K +1({brhh@E34*ZI@ h@;( ,WDjO+j +MB"Q@fr +4`/!`$RqCd +U ,L׊ҞD|ٹcdiR|}OU/6yyBK\BH'7㣩?N[ʊ0ccAs{gczm4.(K(Kzk I] ԭ~5^!"Mp.oҁtְ58 +9TV^qjR K{ mF<o7Bл"ĵ#BEBc/T m>F̴:TRGm&?0[ktӱ?l:xR-r\ZY;I'ޠ~.UBex#_=H|HZWwP%%k}kq"vg{AOT<_M +J0X\sGUU6o6ELۯdi NčtujO"_o4&2"2'",C[rRM}B&c(XL}c¼ }OTp~lTbT>Ua~riY` O t; DM )%͇O#w?>zIOnWJ?`~aH^`ޑ  3Dn>s5Z "~6`^A}@U&(?j4^%l)-^XZ?Gi"D`iFD6ߤd:1vTElZ3pr5N%-y?XT)*>8Zg !_Xɂfh55Ut"ٲ*,OW-J{(Yg۳L7VN)7@8Z}~@7ךp[a17O5Z$'4pD+: Z*Ѧb# !Fہo!3$Lp(mv0 +YPaL~}{~~(*=. 6X_; cߋ[ +o9m\nsR5h]R;"H^O3/=~T3AK~l} +u8#CG-P;2%$ZV]؇lx<`InB=u0NuaTG7N%T7(pGuSnͣT7P]<.NH: ZY@EA,+<3_]dtH Fm((GmGNxs^+ h8Tr_yZ3h6Nڷ оm/"jt2 hme@YSF-D]}6$o{sm>% +$G:#Z  ߶}i? f[ +?r;!V]%oD/TJ9']R"FDr"C+Tcc/:o B4:ߙ|߸c&Kn*ຨ[}kI/El6U0l ɃBB^V5BN~/UDm  M4[ x !B ֟z5A[ m[" _Uza6.oebs(X^ 6 @68yb^@ޞnd@}S^r t܆X!@mhC! =ͮ눕H${6S6o#V +եzҩ.ۈEuFsЈ<<}9b=tŎh#Xdk|u"EV8/7-zcc5gM_Ņ,\ ɦ}YC#3֡=HVCN >T&a̎Yg*ch]Lrl}/#Xoren:KklР ).5],ci+ƌ R+c{&Ui>L$V7 6YrIMOu%NYc5Qյ-ND|TFuTPpFu)T7P]*եS GuTEuK.격.ǕDz&q3yf-Lװ.R.O$S]:eR]uKuYTMu.rAu5"w6'A;~uՍVԺnuj)t'(* je"ZTvh$Q|HSNpEUaXUK :<]̐r{]pv6EYHawC,Ѽ|9u8%:Otw_aD]4WO ýCF"W"W?T:E3njBy/;?9 i(a#PNc%dFn U~ഥkv[V3zaS|M`#1ߏ<<w.Nv_N%?d+@EIl?P-$o%9hq>ɺsطm'd:ٟi%>$g~Lf"yK<v'؏h.p篺8vMvh_uqVB'WBl1ks"dw8 DzD gVcx8(dn8ً[eGʜr>qţL>汿-wM CQΖjEt<U8IMFBZ6λ\t?Cᑙ)+6jIq+JaQfjG9I*Sx eQfzqVEr4@G3>*IyMf W=m? IEd(/O3IRbk q6;0 C5@#{mÈm=} +)4\m >q6}(2r舎7('Hތb.ن5OlLDFJ%bblRAs//|}5262}{^ +GwoJu_!Y[BYr?V+"2r tIJA˿ޙQ?4@/>>4Pzsװj#؏b_cOFx-AC{=,`VaGD+$٣I[3y {wdNO=]d -B&0QDx2^_ya#hHpA=e3bI͈""&17򄩨izsYHHRd(cJU.3GR E}BJs]jR +ljTNj&u%5['%Ȥf!o7eе˭VU3:|wcEw&Ǫ5}Mj2 5.}P{*O?uC8e52͈ :"|9ϗS.BD_-XTxD<%wc<͹PL䱸♱^66:61eΗN{wE2V*m yp7 ֠MJ 8:[zd4&.ۀ>a[f2 6A~о ]w +I]*\0yczj#D)ͱIHՐ|84"o+u@%Nw S3~4 F6iXO5oUž_1"B5 !qrY{P4>zDDX">f%{EDxQ(ŊwqZ'"XI0@DWpGg\QI78HrvB"9ow?/);ߣh! ?񴙏Ȇz}F GsuI +^M8Mq9)sL%U`O[nX^Gs^"p3pg:JğE%@r&r}T\ե\_z6\}tH/ +QsUĂAP.(1]I1 W( +OjoKO6E5eoQc_.b;;L~co؛^wT6C/ +eI5+5Pw@C]z+߫3nlZTB@0{5R*pD-ƀ"@$U9* &UmŠTtR4)(Gٚ롰cFTaE\5yPx;>)4 +SB+0S)$+ =) exϗBDQ8)ۄQHSisF9+OQMݑZZT'UifC6`#(tB5Qh +h4n}/-JԨ?2{XAGߡ?L⏘j/P(Vf&̭?7ʒm7/% 9/du-q@zGn($C(N +-E (4'̫2|Rl}HG >C⏘1Pӯ>⏘T.{~?X#$=9'XCj:Oh"~pQŷ UmTBuA+ uyhξP1p8C{|Pʇ2p ȆrsKe(" +@a&$N +P+ +ա0T{R_g~}U W7I+U+@ea⁎cApnǠx]I hTm_ H|Es+Or(PF$(?Cd(w:(z(7(עF(gqtnL|A9ʇ93./@m* +euʋ|ʳC=(r!STvT|e+Wr KPUT _QQ  5:>%{FvF'hjtVF'*;AP zN*;P ƇN*;AtBe' *;[|*;EkL6=aZ20d STB2R -$?o!>B2}dX":)k.Dֆf7}Og-FX>ʲw4}OK4pKO~_vK--j)w@>ʶJr+nEG}_1WEa: Lw{XNyF_$||J#uԝP9DA+xm6µPeh4-z@y àEg<<ʰE_=B'B=gB)\K\(Ru(%@9ʛ|MP>AwNw0T(2R&U[P^F h`EP% +0 +Dap +D@kٲ][v E-EB7xv{4!@kWd?(wqf/Z4נaa ܶ϶&wawV$GAV8]mewVvԶVv׃mewl+멶l+Ѷ~Q/E0ZP[ +j$P1H*UH8)qG—k d2HX,&d0Q`&㏄g$#j,%'< a%b %`m%ok؃QA6xp1ncっ1hcm1i+ǃj*k 2V ̬ 2gW2wBչ s E<Bɑv7Z#3'pgVa7;kVFxޕ{w:!7maƃ=E%=>wO+bUwY"pU5#qoP,52}U(?"e ,LV +'p_-=zu'I*y/9%bYy|ﰎa\/3P fqZccv +Zfi6Nc鉨vweI~+ rA m3/cô-y͛q?3~ 9>l6d@z}^Sig7Iܰ]D\YGC6rhwYb䱍<>Fwɮ&AjQ.kR݁}W2ZǿPѲDOy$Z-Bx)Q)bL%EbIсx +R|Us )vA̦@wer)zzbPV J"$y1JJQex{w2ۚ%\^$Zrʽ]*Z#Z ɴxJzs%E%W)y'^sXOW4Of3YӼ8CʞTto#Ruvَӳ;/HaH`^"E\2}ˡFYKuᖈG9Q6&0Io֘Z̲FBc.FusU\? g;;T:%U=fX1luC N_TV ;M߀?kZZq^ˆ'$kv]+Tu uHݭ.̏*r"m(%ⰰO PNW<)6܀VLC> 3r/l.%i+7)i窻(u^/a0l9؃̴H#MW1љ!N$#LTiTˁe}w%Pi+}B,u 0ǟCGp;aQ{ ,R ĿIbeT_ ͫɚu֝Q_/\"RGPKDӾ!yX?oˇ[&t#G#WNTtf%)S8wөlDrΙEA2%Sx):Y46Cd7̔￁Ǥ wp ]>sOE!!Ns(;6OQ/~-Q`F+Mcc6H.=H[c䫣(>s_n7d{Aۛ1~kLx"<`{>ǫi1s?~IssԵ%?|kcFb~'u0J\|p%hLm#pIJw%{u}կZUN Ṋrj^4x qbF:"9Mȥih~Wxu2ޜDIuGl5 aˉl"<,_k[4Fo_b1#2I0SĚF2lMHmW2Nq-"ך0n&cG &< =+;ɘ9] vuG_Ș+ +><^&1vZhMc,Uzb["v*|ӓBi +WOs88MW9|pٜxg]̘{^< 'ܖ}H]-V:Y$\ g"qاd:iv拎k_B쫁[cyi>ixOfť3Rulwy"S]$Ri2C.!&@O39_:e9Wk} Oyme +[dlb>5c +uZ WԆ6\Z14yM_h+Ƃ*:ڄ(q$4+oM3S 9y8y8dLӜ4lZcۋ-ngz~xy{!fJ1>OH B17`cXQb%׿7u9}3L tD-SچkuyupV$넊(kLзJ4~z4x}H F5~6_\SuIx9ޥ=?X=IcC<>:o;VSTh'5rZ{Í, bt9s%H )"\ ]i|gcĕD:k?>کQyl +Uɳ HOb >LPLi^ ʤed. .s1 x-<|o1NGxxmx(`;⩱J Bu9{`0!1@1"]TױƤX#v$ w_ވE%l%2Û:UDR" Rv1M >8hTf?PYj³Ԅ׺60Z_dsEToT,e.hXZX?0Rspr:^I_ 1H H DE|҇0*A+w;b*^~ 4pֈkr:rA.-k2@qv:,,gg8g-4ga˶X2fI2G 5@f _\y9|@2nd^ 2!`AȼMdb8L_kĉth/ 7KT Net'Y',&2 4_ U~_[ +ɬdfi2>L$QM9j2'D&;bd޳)2@LdD.$28.L5I@f;)Kd*22W*2L$SC`&S(}'yX8 dp`=ޛF =[#1jm8b= +-k"t}rlU)Spb#Jt`BzdJnz_2w5n dI8?4(Ci=*jhbȲ$Eլ/Hj.zylKz(iqxs|0=^_wŨMGL&J4Yҏ`c`K~}ZTt0n +VI1Тl [:# ?gd/jrJ+^ҚM՚ݡv=~۶m1Ga9, +X Yn4~"KNqFqvq0|%@f(LNB=a)1IjW+ jo +}va<]mkT]A2/s8r@Y:Ւ-"~]-(y,T-0 .M-jA{ 1!&B10Ĥ[#L'4\utrdǓ!.2]Zt18WgJgi"P!>@3M"a`{]h(Lͱ||ezn,1ٞWGf Q|>?ՅoΕ|޹L?]<1y|ˢJ>oDu5ۼm&,"&Uր̮W$0OFfs`SeiNP\zt5]I@@p7ls}23Lf Zkl'H w-p&<S&\TS>py'Kak uP; aߚ5=?E8_;0qߦoY<7.9PBX- \R Li`t=RɅNS/™B]h#j{(]] ut7arDXHώ%#;)A"М @Vm$w-,@Iz1ЕF#f5aVZ,1ye_V"u[û_ PVQʧrS܏S61ʽ%"ruk f"*mqɨ["&&݌ +6cˀ:&z +ԴhOuq@WCK0FMMT?N$H9O4 k/0%XݠD$u1ſBă=F*Ifkb^4x@%.&w8(O<"pGT':0Px%؇k".~M_פdjBlW ҃N4uPǚ4@Kb%/˧ԥ`'Z)=.TeM0S2՜D$<[]{0[ G5OEo񣴘{0˓T >z4y.Yoմ'N$K.%$5rp &3IDʳIд2T{LX҆Gg yPK"~(2&}''#FpIK18O˦ kc[|5R&r/Bd7>mG*As+WC_SQFo"F%{ >PCl`c=X'Zn!]ɣ=<&{6PC;Vs.r|а|Ow|z@wC 1tQҒI3nI5ĈIs}3K&Bͤ>F4ZkFpy\ILna5][; 0\Lّ^=1I|\wLn#9T砺T7򨮀Q3?Ic GuTWP]<եTHuTJun3mGolKw A8#l02sUب-yƓ*s IlwhԎeo`;6%oA{I1 Ɨ^h ^"uZl$)?ch) z#8 +,~8<;)>iگ ڏKXG5]Oi9%9LgzXG;09LA/֮l56{'L<-VKdnwN㼴4hR<eD ldNWCpǻ`e +cZ0`[mdׂ +8q]SWIW i(m擱Qsb;ؿk{3y} ?%pqҏ89'8q_3SwD}W2^B.ٗT~s>B +XB_[yA/_ITzWAwF97doU=L3|oȡ<Qf.Gp,nÀH`l=nKs.p {;CuQWLxLi?3z*=n$Tq`K$0rtc?~Bڰ%amgrLj1U@{Nɼ7?@Ο@" <6ޫޮc?e(":Fq QK }5aVLJ^.2֧;fEhMu{ ?2֬C<1 B}J;Ȭ_ўDt'ZUuV2}}Cm>:RN`5oQI\-710G@Bmzvw38֫){ՔD5JnaOG16cXK|/LQ4|(lG}~MSbVG}Tb 6(xA#rI==x0Ar&yL~H=I " D/rmQ*%3pGoAbF&Aຘ#qyB݅W8Ҝ݌SŔT<~ktcG1(mg{2XV79ɤ,ОGξ&]`/m ѐnaW4k +]%D'x^"ڕK~iI@x' |D=J~81rSM܃Bo6a|`*>|>9s]ނ2㌩jOޗUP<%.-\|&Y?(VpɌbfϒLYʍﭿ>4"aZ0 pZvA"W1qg4vI%eoFOg<=2q[Y㈜jS; :ڷ6x8\N2;VWaA8m"؂P}I foOW"l' +Qdf1;bi IT\]I eR](յ,˦TFu9T砺T7򨮀Q3?Ic GuTWP]<=vjG51SFX<6gņa-Viʣp!x0 ҄Q#ܑHq[&]*c6j8:8TJ=F~]Nyb07H=$ԎQټ +i8ƮgPH3nd&`ǚ!Ɩ|־I< + wZ?DψTwˢ?YO%:Ʉ:dA3$9_(C!1\YȑL_sLyBbY\8=}NJ)5> gyHEOb* +c>s.=Y4Y,ΏxYE?CJ7/(}f >D}3 kY0@ ؖ }􆀾tI=] +yK'I?Χ<\ +RF36v*j&G'(/xU)ؑˎ%w=B w=Gˤirc')~BVqҟsΫ"u:XR{.6Սɡl䎆\U< #K3ZzƎMr|a '[!Ped3; ž->"`6WzX51g&ՙ0y:}&eө3/ lQ(IeF&֕N5PZhUpZpfɛH'N2Z821۰JZ%@ YIt>dtu)С+4Șo(D "ZvDs‡$lC s{wdmz5ې!S%Yth8ŘhSwyAotV[wo&+9| \n2/A.Oa\.e_2- cf髕d=IqR89).vYaއ&ccgz4<6;$}UP֬/lD]7^iV橐HpY"Y"R-mᖈ.aLǦ 5Oaz̤В"=a5 dU5A҅mf3LvW5ǯVip +oԷk#&?A`}\l˒5r1G4\=Ǡ5"G䎟rhۻ9L^ק*qϐ0_nY(?3SBh%Sބn+9T~)`IG}A]=# xUZT 1G;'t}t/ +e>!Fh)AD#MCΘIM$D Wt`+2^l A!UGEzA0}-3FJ +6EqjS +Rg&u ,5l@GAВ#|ٮd~MKaL·0\HQezq٧Ny9ݕ󼰁w ̋5w`l Jۅ7?OeΜy2f,BLР̑(ǹBfEtP ʜxO2dJ{ 9)}}]yz{==}ڌ{vGgLV3A-A4^ gnAjQa;?v6ZI^"`n/yɸ`̔ʫ-b w] x#A@9ְLAP +qw?\l&WPER,:;m<#%sVOܙ; 2с: 1! ΚÛ7<Ċj +*R5 +\ y3dx?qKň!yD Q\uhRE];NEgD`D!FzG T{- +\!׹5Z\_;/!7Ih9wpY3 UFw|4rU;/&HW`/o/| CmkS<ɼ,r,rS&1RkWKFQG/!.qUNQg jy:6Gv,?Z[p-7: I.МZ"O̵)ŧ (GG2kU110y]OG Y,/-v/L3erpwUn%;~ej2-OoUxR\@ sqYP+/E}QXBN:P{ l_h!󣭣M8t!Pkh?9K`aa?MT +)AР"Ho2*}.-`وXC Mn * #TN`~0hG),uM7fX 74¾Ġ"/H^. +C5CtDTd q>l7A)ݭ0gZ|A~g fo4c뗍ęk,\G$}dkQ (4Ɉd_<ij2Hz5䍐S_;ɼjd-&k.p_#T-2x('Ot(t4+.qF/Qb>NQGK( j_W/!n&! qC\?d^HT f:nDn+ gYnۤ(3k~CD=a+˺,J ;L f7`O ;lؙJA!ٰؖ8m_:UC^3s5x1{fNe4ӽfJJ--VYP#B~43bLѪj1o'`hb05p{fغ9|4ܪd}=L/WqtQTRh_M%n*nFS=XC^FUq+zM kZ(ʾ]W?ۛadXI1@C{]T]P0^Pa E'"i#4 iH@҂4-B!-i1HSm)xےi.O]Ӭ~n&Jg lx]}a:g8k2o + OCXSp%6@ץp[ոn .@n4@SKX*`:fN;ܔ-R/2Uͻ?*Wox;)DMODrE`,E* u\g86aXV_嵃yYN%YTUƉ!pv#wvʽ,} c(e˟UĪ;<u8BP]3PЇp.{:vmdde\e0$:b+()5Ϻ4XǽҊu[ntΰ}1{Ԧ}d5 wD,-&Ma'/e+p+a Z8= m?`lݐbm)׈IOks_7÷2}Cl(`^Etlna0;Voduc-a dFYQDVߢ&lp2~פh\k0YzD0a#v5Z/ 7,(bREؑ+eVEaR;<)g&6Lĵ԰B$v㗼5rڂDH|xM eHs}8qn& $\CReLZGP3LǥB*@1RƔtVQJ(j3 ;+_/hxj&/<κ$RL/~` #&k wL^Jcuafz +]NBIWu=s4MM so PjQ1y\"6N $5j2~#̸x̕k\1[V1@!}8 ԉaqP*Mr`'i52z:RHa +|}lYvTB^h#/aGЍQE% +ZU%r ӤΞEZ mHyq +v_:1I^jp˭SujQx΂g Z:\g.6U@+<#?fWsQD&1(}8<t C"ψsZ/97dN +v-ouL~WWW~UUO&!25 #^CnUZOEJ2Xrߋ k [rQho[Ah:#1VZh_ۨ?q$d>B<,<|< z'EtE\[ְ"]LBB<T'ljWK p +X%A͊E1wC P@#VvҁdU,Gҫ1v63c, F)t!9`r( U9?V5cRE׾֋BZ5'YK +wWC{b=Ty4fwbiVn p! M6 (Qf +?Q 2#\UA\B +.Q6\HR77GZg"-iHGZ"6i)H{=$t= B=Ufy!(0D3"8t3YhJ>"&ڇTXh JTK @O|IC#hE *p\eEfD1 %ı:Ih@rFW,ퟞ'7wJ)Ή8)Ή5rF~8-b6,٨f/ B)i7m%fPd2.|ysG9 +P!J'DA>ʳ&03ABﺋTrf?(WBQ_@ry |rH.Q$$Iv/ >6wL6fDVIEm)9\+PxpGB=vͧ4G|+Yb9ՊЊHmmݡ!8Dg_s;#A)ǢrMUXQѢڵ$Fq<˙SdNM.ss}̏P^ +{ 'W1ӂco: T~x6gA|P4+WLGtrIՕ8HKj|3:sL-,UR,>i܁ (oSZBr$&Dq^ԑߥB Dj$)эi4іTURcjf$5SjNR;LTkjKR4Ոu #I b I$f SHj0I545CpDz8aP^j $OWyU4);bj}m7_ǻ̂XKΠu /ҫZݹmݸf s(|^220V6AH=u:æ${P[2TZ&QAT!QcRƖ,1kccjK_/zŗI)ڥS%uLKjN7I7ъ&T"%n`̷NBJKU4R #eݠa;qERgvܒ31W@EVӇҊ#{((vŁ +Kg*SD?WQӕ+B*gW5 +((QRCTN&2qâHbh с)zi-R"Y# N#daxQJR'+]Do 9zC.og uʔDa0J _dvJq,`$ZuՋ>.q٩F2@HwAoAQwzO'%lrͩH}(Q\HUO1@2JHUfpLL/W*`R4R5maR)4xzΛ'Q{N4]րfcI[V ,A0h&ZC|+@-Lt2,nGr~0Si>Leq/>'\>@J OG63(OC"O 2pSHt1H>ϔsHծWQ~,L,3*d\>^V֨C0h6iFO W*h62_ +25lj>ݫZ=2!B2uS:O9Dvd|E@TE!c8obLѭrGl|'j o Rܝ;c%7yk%;Lܑ(+n S˛[yaLOKr/'*cϞ #,7 yiCYQ%EQ9=!XE4>I7lh~N`F]yf2o_DzBsL%p$ē]}4^4J2TE | 1\o_A7H7$ M֥JZMz26s,Z.w@a)trqqr,LIJL 2PV;U|\;4m2)x-y?4p~>MY9xpr*ȉ} ^<-؉~%Zf/VZ;7ޏa8^ +^}%8r-k?X㿩y](>u4|4#~ />;w8u< o kFY +oaZ&KC_؂t&#Iי%#i[ P (S`c2tcGY\&O;C=3?>aXUG9@-D@6QGX%xLM[YيK.fb*/&j'Lh&_3QIFg$;gB Tm&LUGQq +El`V܇tYVa2M9&R>&4G0mq~,-/ +il85C4`l;IPC̆o^P,_ џn[YfaY@p_*1!9B%f&j'|8ΞvʝnC͒D4(Ԓo7JƄ:U nحL$w'>da+t,qBsV.Qþ~#uUNZs4?\|f|i$yIx/[zm3'na7e +3Ц0J4t"Qhb {qØa41yxp IU)G~l#$WQ.ҸH3M|vS&(# 0 GGHFH\nL~57֦Toxe#0-5tSC> e40,ocnR8&Ob98Ȳ,Txi!;u+ƹh."҈B}7e~"G<bWCsʒɏӥD@1mW:/re~;(R6) yL B +6QȌSRHfvr0ji̔N|g +vɧѽaf`޹=|u/&IHiуR >zka!_Hg3V'&~vTh0 +68win=ˆ!Stǂ4]o@i&o4[Ic; m$Ҥ1]4i x?#-iqH AZ8⑖H -ii\{!-i\{%"-iZ.=Ґ<.=2F#׫0r}DX&ҴHs,X-gYw{p.c0M b׽hhPxN|.3tfxtu p l@I(Hi^9Ɨgs*Pnz;uyPӊ@lRn~VZBs] 7xp{u#`\R._Iڏap[09UgX&4c0HI}Dž]=W< iT5vBTqwjԄ@n|߆}ٟ5aNcAofK z_Jtԑx(&wWPTcy2(h,]A49|H)Yf +fS&c1ŌǛ6+˔n%.AlaC+m)[A5HȚd*6łBж@u\N6X>B3}<6BilrVk>6SSXxtN13hjsrmcpLO ?ah{^mmkgrhiԊo,e3gxGC0_ +n k3[~G|Ѭm=זiĄX"x?Ksّ c@Dk] e@DrxiY1)l?!ܓdɎt/ā(ho*NoFbW"1+QNMQ*Zmn4] D׍E1Aj^)JqZmW(zQ{1(?ַ' JJTxwֱF]wETLGAdig5.(R""WAIZF xiBj-b(,K ŲƆwH˙dŢdѢgEy~=[8 Z3 טNjUX%( +(I{(k#ʞ,؃j*xoEљhIDép!uO +''"w[v(kGtGKRMՖԈz b~PeD`,xXA)sxaOUEqYqk+=g8U5F$)xZ4b$0Eo"θߙ]Y^FE+k3vȔt|qڡ +(,R/#(9skLhhif~OXsƴ' ߳Y(T֤NTYK;1%*xXYpdl=֎SP%AZ_!xCWZyB 2;nUW&L5MYg"iIɢtאiE ׳ sN<6ñ[MPC ;)I)2=ye>Qm:Pe (N}e#.gVqCI|PpwK ξI<žў^מe>Tdٕ(J s tuWثBƬDhVvOs0UpOgt+B3RO$jG{cۮͪ^\byI[U~K r)V[,mm'Mq5 +BXAoP4[v';]Ryϑh,mEtT2ƑN6՞>$]fĥ9:u=] +C8cbv m{*:﹃܄Aypr!'ydGRZHi 2ٴޅiflnLfVc B4N5Fc DEL,|uei8$"id̺_ta<:CH._y3$F\F?cğ8g31?10JSTsPh G0}cP$?uI_9ִ́ښifa'7YjQt4&6N/ <04. +WKckbjls$F|pL-X+8 X tNV8݊f򫦥Amڌ, +f1ts\USsL#(DM<* {FVVV\17a1/$b +u$z=.a_t4\]krגrMop \6O0ScMHK:PISTѶfu*i#fHsA'Ҭf4?#i#p iHA҂8 -iHKDZ$b4"-iH@Z<4-R!-iHSKM Di&w5@FAX-4/`ôRGӥkP qXpcާPI9kiQC + [O@Xehu|y5 RZ +J,d6Hۥ\F%yu1GA~(U#O!b6[%fX(m/)Z:LZm4 f,!4X)TѱȐ,u7$ҊMP =29>77Z$|1ڷ{@=33!kY<33CY<ܣ!\"gHC)q/K i3IZ6DiB=dMQVl }~9EA+(#s+fsIFeĐukNF=EVxBZ%v;بeD5mQ#qC@͙?gwtT>jpV܄uf-b>L:gM}#GFNo[Ɓ7n%PC ơ teK8 Ր +5`NX n8X!T_ Wj$u7e_>GAY#: 3*$.hRd.rξ-Hm +{ % ( ee"nO֕E9ǂsFPhV("blY:RƖOֈ¡ +ΘVn:xο 㑗|d}|v}UGsQ{+vNZ- G{fijF6c7z#l:4.K")l$A-P=+t?qfk4OrNj7Δe|ā N瘉;&$Ó0Vhc2B_3 + )A+cSxoxH] +|k]x {ͺP(iXlt9X;~iy}26P^M#;f+[k.ZQz!lwAuP5+t3YUX +\>w8Ѫ3rpL +fPY^+=HhH̵Ŷj_ IQiQxI׿QY ׿:<΀2Q.5o$#, +$cötpa +/[UU4)܂/)T@N6mDPdF{* X?z۟GP>@ӫQk1(?HJ6093 ShR 3+Fh5Q1ݹB¦ضpLE&?\:Jg>b3b])ŚUZh"UeDo^2}1[XtgO½ɛ a_tfEmb%0LKaӦqi0 m!?)شfƦ4k6P'!G9>78hD85tnӱ:!""^>I. .(· DCUo.ڔa  Jn +kS+(39>O SS8ClLo§C +4~0Ak|%aWc*ffIJ >v) d d)fXo2ȃ{+ +mLNzwyL3yaBy6axgy$%hG%(]\Fv)KIeN%)PtsǰR0!B(U;"?稜gfLE~1fD~ɗn\iJ6IߴPYN&,ADb!"rQM"rBoW_TOv/p2d8h̜ +4l+Y°th"#/&ҸAU B_|z }/yC҃Q +`^"eˌ\nC%~k:Ⱥ'J`m;k8\\;Cn'b b +:cbDi@OrlfUL#LIfb(O1)`>Cq U1Wi{iz nX+F7"vLfJ)(olys +^S ޚ(d9f(Lj;;K. M&FS&  AH3A/ W2aL!.Bυ ҡqQ'X|H EieaqW]$ +-$o#_Ѣ&fyk[v9Mm١zը=/;xpV矿=uǎ=6̨֭ٶÇ9Um:tOnܣׯ=_n[:u]TMw}.9=ر>8B=}*:Mt'iڴq ss6qcv7Y2 J:} ,[zEN~zr֚ܓnʕm{_4ѣc#׬y6#OkDov?Əؼ 庍|4qtgώKM}ۡQҭW?wEYٿ*UZb?|qZmv`73$,Ǐ>wyy=9;_Wm'V9gR3/@>6nf(j#f38kgT/w3 nfn^~($SڐgxJhKip}Xv[,x9\[MkkZcAzpm%\cs`@LL(9sn8&ấc'8~ꯡ +~- QZ<9ap/Op%dԏDu讐K,B"n=t]t/zuȧtZe^b,}?=!勼~}_pdďg VzMe:v_#{_ *(淭75ɇ'kLA2,OG,tV^|o<}m=1csϋGyȑuuyX.uk̯˷W ]b ]4]S|Ǖ/牤PO?W9M>WjuષOV 7;raM4}C+sSpF?)o7ܔojuo +og細r]>:uǨp-[!f\ds?hYH9'[߿?q\<9C7X+ W/'4MGQKNNkÿ`yYQmG:e*:4rEEp=1j,\+yԳzG~QoͅڵOpS}ڎj +f]|p5*[y%\5Wא V2 gV5Zݧ~Xpm2_cʹS;~MHݹcT/j{ co7ת~t{2Uhv>:;MImﮎYr+6)l"EIQzC~rp~ +/rrgΨoo׀v*\뵦6߅LT-<-G_ZYkix$P>>kUY#wXWxLTy@˛$cPnpE9ݹcΓ8ɤ|~M)lûm{<Ԏ$=p\:̋y 7+gōxۯG+3G{+ggR67ff.?/ٿk?_~o~ZL1пZԿ1|e0HR?nեєުg>UOOWyͦ~:pev'Q?nO[֟CF>oH;> q`o;~[a[^:xn0jg:cJcÞ̟ݬnZCjF˂ *_ʹRFcO_;aEuVk=f7:ܸMiZ#am +Fha^LEۿD$Ofm(Y/O6w>iuӂwylp}%_Y͎qaWve{}}Qntp-UW/v}K: }zM6b(wσ@&[{~Ru2;ˬ., Pվ`&盌;lqf4`&qgt<ئkU>؁ {;X2OVe:M.'[ i#vW[ү&  ;2vCg<t➀TLn<=ד`ɰ?<rIV OȰYHw% ]DgEuE Kz +^brb2h-z/qd ҏ8 -Wl z{XXY[);3s@ bAO_ SG$vɍBx~ܾxyP \K:YF+Íj vS K׳I ::t,zxM + ?`AA좆1c,vN+x>OZ} xEöFPԸFEdJHDĪL2qf&********F_EwqG`B6{t;s(~ު1l{z*q +s +&)kbUR<HH. E3 `(jM_[ƙRG D³CAm:6F +ayӹsJrr}O[KϏ26 LQoIM=B wMbAr E鳇ә7'\@pcg/"|HXƿ ?o?9vX}H +D! W,w}>4U)K(볆B{OY\H sZ2>~3FTu6:lOJ|kuk޺Ϊn NY]OݶK=u.k1(G(=\ys M'rMg{뿍]ӇM>5}kmZ|il(cS>aS- E8 CyxFg=uPPfSoqZ ^h}XH(Sx=Q}5HZFBMLBî ψcNf&BrIq%7DY)WPLvQTc1e[7Yڎ(__K6e7RncvkO̔‰r}\ܺ|ҽ JU7|-fVOO]SO]S5=ƪ.6 v)W#^~{ #7Ec /ݾ^}%?MB>iYBkP +hCB'ǡK__7__ cNۗ'ӥ/u{\utlGݚ +7uҴ_0xҘt7 pƷ_SmO=)>mwU=J8wSOv@i7%8u5 +Cw$<ӭNݧ<4uNԧ +)pTe:4mO{ӎ.6KIJΙL[8*dzc@]5ظ@NDkUkLbq̱x?"WRLhQ>->'fZBYVSUqp"vVF0DP .z'돶_J+u!c8.5g/9ܴR6rVeqe/JNv%kWThRl4Q^w"f}N+=F"Ax5axBۄ7},&|@;t4Zj˩_87e)'1ىvD`m13CYc^ O 'R)Y- <ίWOu B2)&%'+K +UErM0dx{!{]` WS%*Ũ/t-.U8bTY#>K/Dm bNm?9vs=KcC7hJe1:>Q]>dpmFSiM+rcN$BA}FQfBԓ XX+IWҘ7˘,m6;k,&Ҭ'fid;SY 3刨J dƑc?}*+ZΨDA9@ +43TYȒ&8MpHdJr:Κ!@Mj2]%! fi#2Ѭ@t(E"eqq{Z^P= +ݢ5<ඉ@UU8Y?AG?eEՊBvqHhjHI 3j}U8T%UʨA5<]2+8)]E~93W;^5Rgj1cK%!5fUb(=-3+a\W.UEDT"Ok+uf[D6-ñg[eYK\ !SV0wl5f;R{uk{ R^ۛO\)FLݕ9߫}6>PĽ~k +v@}$W+۽;_ƫWLo]8Յ|ޑ_!kSܹN2)%34o/u/QZt[Vywu9ݍ4mypZtNݾ ULJymAq١{oځIs|K;wy82#ѫ1o񩉖.[z_d~@.ߧ,|wXKO7"Y+œQRu6|Z2d*rvJ]Rtx 2"auݷ^sRj-&Uw/5};x>3,fT=Zhnn>U\Hܺ{tgF*_ۭoJ?߮{o0?XCYWS)W֮'/eO=_)hZx wߜ;N)UGc)X'z?6ԖնAOc;Y~d.WPm8ڽ#7YنoMJĴW˕=^EV^v9s85<8u=hu虉iWiQ+Wo_=l 9>i,tN!ݣ1ڝ뾴U ˛]ԇ 5NAC!JJR?H=ڃݣC8b3\ pKw'c:,{uׅ*e,r4vs:B5顑$.Glywe,3A{9ݖpjѠKؑ:f2%aֽԕuHo.Qk2AgsD ߜ Ey6(Q-&ͦSQ Ah y.Η|Cn]o]q QyoM;@&ϒGVί-}1c1ZİSç>z=_BЉv OTXUd,j:(Bt;*1y@ {z[wC4ww=ߒڋ~ԍsȱGSOG˳B(s%f}Ԏm=aN}ju}u);.=e|KO!q~ѫ{zDsy}ϩc r~CkϨN$1qI]9s;ӵnj_]?l}tG9^F|Kkg64ݮUx?j;[(U{G0ۋl3arh::vמbc0S8aU^:i=OBC}_uu-]ˎN+ i룪@}]*6٧VPMUb_b;Ԗ8y>!*`)H[1zq0Ew+1EO|)vfR|ts)>z?J_R/ixik=՞5Ho{9_+u*u"ܺO57mF{0Xk6K"JzmTݹRu{e~w'5}Cm{ݝ~ ,塧.ݱv.vN1>/}|i^-GQ>:Y>*o!xCGӜ!ƽ>񷕞~MAYWC3}w/`-o1;e۟6YAݕޟkU2|c4ody~nn,Te֚T>&Bbiq9eK]Òhʱ@,jىrZ^}ܽdC!5}n EB u2"F+?%E9y#JrJ&)(47_4aFGe-f\QYy‚lsKɃQS8ľ~(ţK챼sXQzҖ& %C&e(9KRuǑ쏒~@W:F*? kDa{avG&ٟ5ͧ?kO4WִYjr$&JDor !+BW|G\z}RN`.ק+իtP;=r5Yz}mE$Z9M{ qs<7zhfz]_o_]]~3)>99Ʊ*c7dfŢ19J_K?So$%ϋpbd"czt9E V"^J~m} 3XZd^85"S. % +՜jZo~fFlSe񚰾fZ 4]>*!+꒵I[2c!4ձ qC\Xi>VYڿk<+yj38eR=Qs6('V sG L,mi;85wQ951g"3u 3Z 5m!ZVvYZ]3,u>~cJoUkFڢX{ή)\roИ+Ĵm[!)8sٖ3הּ&'xkQx=km/UScn1Zcsj6ڞ9lŚv]mYnmȜUgXֱJo6SVt|MNV?iV㷿MHlA'hJ+X|@6qN#vCD6F|sv%'7Oi3\Fϩ*T_jVzˋcy O(+sОn`5l W*MܘVM:ދw" jd;51`uzT6w WF\C>JY4d*Zs-䜬Һ1>6gREVAm]}B➥59ã#‰PD4X, Zv@ )8Ȝ̍w=)799'~[10JjɘYj}Fl~G%nZux ]K5P]> _Hܜ5^mVuuOk+㟞NJmOR[yT<04+9YrK͔/SFdictbc{:+~îړ|C_&P_,w ]OteZP =Hiѿl=[c#Az  D;~7wv!o]9Zڢ0,N2dƘ,>l+LMW[ >S3Tp#DU=eCX{wy2X]~ 3n~.A+B?u_軼: ?S~~ko7ۿ~oS.lEO^e,ʶv_c\iPۻ|kyΕ^w>*WeW[ҮҍS/ת/+ ~룊jU3Z8*^.?4a \ib[Bi +1>!?^_Vbn]}V&_۫+}\rk~Y #~t7Sun;r/ElnUO4jLsW@v[)f]_2Eq#=яkukWEÜZ Ȟ).-i֋gLYSXiʟk2h}a//h sBԷƍwTf=UT}ᙾr7+Xɮ?vNn{k:!KOSPm%<ۮos7wqZi9H˓Z=S63EW_!ku&i\_痾2]}Ks2u1ziZZZ4G~u?V*S9jby=ݍSϔ˯ ?@b0(+,h`A+y~800P&Cai Fk2ұrtm:?7ot6wDQ1sS(Ӛ댛14'%17y_!%5;'T{1{luv P^\T8yx%9{!eK**+)+(W^0ndQyinܰMr|OtSmzV:7xMl$4D:j&0!0U}2Oҋ{9S(X}\L +$ӵ/ʫջc cqG_bo(K $RFXyeYXNbP@@`,!{˯645?a\W8[\~khZV]̊(ou{,-_$ӈP}{N TVAjgBBD;p rvJ9Չg1V9JfwzHfge1Ֆŧ)rT`R<[Z/ G˗Z3=EsÕZJrdڻRWK?)b\jE{qux1;FB3;mbw# FN#Tb Wn$Mx5ﶉ]' "D80PA%&\J0rviZ— v@xO'0BB,@ 圪LHv:לJT~!Xͥ4dB~[k@yCm UZS;K۝HT_^̉cRFoz?K~ Hm{*4 +܉;a"Q܊Iu}qR1 ЇΔiW~m*_:jTOƄ7:c{c1Y3Wj*OQۢ裈m'3YE6Y^R +ʈ:$QB~Uկw-OKR]O gO56ёdW# '>")DY0!F80ϦpF#B0X]y}K~XGvefEBC1 m<>64Nr6[>TyMﻩo#U1ʡDg.V㎱/\#+]KY:Uk]TW9%kpD^m#ֵE*oZt9ARק1WXƙ[aVf3A&S/\V ++Q!r%α+BmsDhOV>U7Ü"T~0du's9nVxmvƛEKn#mLA=Ex3m'`Bvw|;ȐO8hgzvƫogYp3nÄM7J~Og 2?椦V-1<6m+<$[u̠߭F#zkZiMSczcx23;{۫vѹpTSfkIL6p/Q+ o> |AXO$t}?7sݴruh^?ꚱxR99_v Y~ux~Y3!1f~mDm5FzCն3W6O]jP;[r7bnݽROK֮m'XMow +USO-~z$mI㶌ڴ5iAy z-QQaNWGls_/<aH*YX#\!m`.s2SCtuog hzx"/iMx95Ɵyj/t-BWtkWc 4D$2˩4T̒:> IvyΦmWH[伡G}Aǝ~3>Ad~fN3|$u/:otYY4`@VјJ ?ߥӢnǨ2y6L3FG][c 9??-/<ţ`ӎ:_;eΊbb5Yl+`2~f aAG_Y,+*9b=qfi<{?z ?._/}?**} ?| p[a7o澇?[Q^|?\~aGf?lEIEPu";))#819)ƒOKU'.>:`ጤؙI>}ʓb5nGݎc=`_8"+êJpl?|n!2 +?yUㇻO>p5av-~x \ qnm瞋>0?< v=?n7^E{!~xeR㇗ UmcCWa5p5|:P܈DEYx~{3~1A N?|n/l}᮷ᇏ܁v?\ Yw;ߍ({}_ !gi ~a0~֣ᇏ%r8myR=O$E9Oy2)auCR ay;n/ӗW*p -p :~x|+)M&㚤c'GIiR}pI3z]R o~5~x7?$7'+w?&E#p?:$04p1 <.S2gޙD3g5F1;QTÛ|xdux+[u_h4p{w;28~8~LᇇNo^K?<2p+W\^}mX 7 Eө,n} 77Bx-"wQ,2x?\ ލl}'ݏ ~~? ?gP?.~?IpQ~ipgngRN=^?\b](¹p9lkq/5? /7+b~z +G0~9?㇝~cp+~o+)7_>~o3Bx%̂I8ojgwy/aX{t"w":D Eݶ \}GE,ko | +{}h>~XZJ/å?]l5?\1 ?6dASӞ< <a "-O8b<[D6UE0L"[D<-b-\ 7qOSk×a]?.s>DQ`6/,g5?< qY(?ep|63˯]v~x ᪛Á`,?NfF} 3'kGp,R O?&/Kw?na=,[`Fσ kV<~ 3cC0< 8|~x*lOµGÇ`f)̆s Sa|I0р~,~8ί⇓&f+J-b-b/ 3"Åon"l"zN)wO7`g[x,w/Xo:6}zËf ߳Xo'3nڈ'~_ÞIXF0ڂmg"'& VuhߩId#:72xG&$wn nMb-<;~8fK ~X?|d7~8vOp៣(K{~~x0]06?|/~Y?S.<?<? e7~, 8w^0v<~Xz~xމ-r<ϏOX;?S^>a8"bSìRpad"hMGVn 3ì_$_(lx[~n%~xR?6CMS8IlK6}q!&1 n 7pMb1>/GL?I.sE ыK.) G^7%˛ +xMb& +?=/I )U>W:;l=?zB8~z~7/.7㇇߂r{ ~pp~x{Ç⇇܋ +ޏ ~xCaㇻ?~(+8q' OC=޳ç+[_zUpw~85o=Vx[6~jwó׽_/5/⇧|1~gMb)& +^I$:- W/\%=㇋<\ +wIOI WQ_$z>70{c6p_MxaQ?,llk}E!cĎbsX?,Vǻ6 ꝚEE͢/3~x~7p.][3cf'=n܅`^͢f,p :,>⇽=nN<?|: ?XVγ~o~S%~K5~8'q6~8;_(DC?~Mf⿍c~w>?o^^r"f~%aewÊ+Xr%;8_Mp>4~8pTRz?y?x?JUGy~&~8-ǷÒw=x/{~)~83x'\9~a -~{[~Y74ߛEW4ްf1*4j6,Öfr^B R>D~n܅cRQr ١E C0ܱE:cXuO ?C7]ßvge7~8}?B}gp ˳;?<~wGJv<?| +FG> +?<~xQ> "r8~Y')_XxR(9-~ FrC.qWߌmepZQH-b,ika :Ed>AprȆ+gKÓ'`~ 7?<?|l~xX~x:~39S/?<Ó/??jOS_v?s~z̛ÞKŷ}C[0x=-b +|tikK{Z:x-H 'Ǭy?l[6 +ï]x ?6~8{þo +?G ᴍa0oSn܌׈oۂ~نf*Zᔎ +W]Z0صUL;9p \_h+`AVfwo=_`a0k8KG*{eU=[zثUtz;W*` ¯i+{/Ù⇡ӳSu(~X J?wz~xSo0HÇ?t4~x@Aq ep'}2~x09 ?\4?} +~xB%_E{*y?|h2~ g⇷%r>* +_Kz +.L= +`V5~x.Kap\ae4w? +p)Rص?2N~ X*FKjxՌV13U<*ހ*~洊o9UpEㇻ?|)~2oQ?u~???%UG* +TV U+8Vm5'ߎ> #ew-p5z~v{GQwBx=K%p<^fxw9a_8~5C߄p~{a!oC`9_[u|u\w?p݁~ ~8 ?,?|.o +O w8 ?L9W-p;~a#8>p?O~aϹ>7ᇧ%W،l3 +&:8?ܿ :pܹC'vns`KX&VwjD+l*ǰ U$`Kfan].܁+z~t:~Y٥]9eםgt#:D?|͢9 +3ܚ/ӔK9}Uߥǥrwɂu}ahKo >ɮw(R#Hꉒ~C:,AУoBテMiAvf1ġmeo:cXH3%gn>o*,Ӯ7,kk?zX~胯I8Џv߲pˡlm?6qGi/B?b@{Gt0'߰Y:7mcm? +gv$ܲYcѿ?2n%9ҏ'Яm~o@hG[ۏԝak ,.glk6>X Б.?ȬXؾ[!Iq#Фϑnfs{% ?l/;C͑ GoAܡ?`%vJ?~a˗"G7;~IOg9")r}>IQO19W:78Ȥ8ǡW[ۏހ~#iV'J"?H Lk?Gݡ`m?~G'>v'K{qGXۏ> +=ؾ[~IuOsLO=50[Nc%=`m?ʡam?by68)V=n }C~87;)Nw%߉zg]'c C{MA GXۏ^04):vH zߜ8>gz}ۊ4"g~D~Q^RX%?)l3GmLRO?BBߊބ^C5?C}]a;菣b'['%;#ױK]uQR|渎1KƱhl?=>);ΏB䤸֑|+O9-)tC/A:S4~їgio&'k+32-+ן4kџA?Ԯf+k374ۏG֡/?z +.r/urkק_C~IC诡Tȿ|Z>ʿ|kEE?ɮ[' ?\0'&*G[ۏ>?*gbOf%iԃ[G3BP,&Nv=ZmThMŎm܆,W;WL}8uIp$sB{NRh'E ޑ~LNíD3v:7蝧'ŻUSWv8+)Fۗ~YOu1}NR49Okow/B_qICoczG~ܟ:'Z?Q~9G~uK/BqR;Q_>Ԯc+6>ޑ~9?$_''oV"}#SCkkϩ;?EaGX?%EC˺|_?I*oF?خOW{-z/_ROڿMjGXzon~.B_gϵm?4Z&v}mR4z6oOgi37C/w VG?{GD=3KQ~?l?$Ş_OSRs} W֢oA8Iɉ7S6i2#MO{VG>:~Ԁo+dkl3͞F>D{?_)C-@?w2ހw}Ǎl_*8{~@G]}}iX^OR_X^E2)nv_lc׷R#zvCDzKY~h׿2/~Hc~F1l@C[zcFSzN֢G?ٮO,cr.qRpE9nGu^ڹQ,p$vi9AWsD_S1:GLJf3{oSz4!=^)wSASmvG9DsI$bPrLQ!! BC?GY~eV"YJ]?M#cmmczjV_N];iڭ?j71B1F6O|rr r!^E1影o&pטY f$ޣh߱c@x1Mcyf43g3^1:7W_B|1_3ω)  &$_!d&nvѴ/J}bz5Qq+ )o.!˂?c5 E=1H7 רo#~DM 1]EI1K񶓩<7G۔EM Ԙ~W2 +ӿ̍fȸ|ϊ[+b3491ukscz\߬V]MUU/#}^LyW?D]6N&u9)ת_DHl?u:r❗7Pzu&^ug,Os_'MY7g+Ŕ]ˉ^>n'>v?u|:"wݢ>x[coZAዾ<՜SSޗ(','7wŔ/$Z7׃GXSx."Vy1ƚkqgJuXNć47$sULry=VvϤb뢜_O?>Ф51z1vko]1}_?adLKO|S1= 1~Zf?]2s\p&cğ{%k?L}!1|]'V>׉foW[}”"};1G&ҷL_5'k4gUnn}u8@5h|~?;~/M;KL_%}.| +hڗ>ίn^G?b,k>|cz]Q^F\K:R1|[s}W=ϗח[]G cJ!zNd +Z\<2Ǖ#>5/ Z2Z?V;l>1|,, +N\Z?ˌfuW?,/qfˈnW>K|/X'a\q~s~\O9޷# ,,%ć+'O!>jd-_G|)Ju#~uΦ9Evo,ż=a?-V>0}Xx^໬Oc?`ćv+#jQ9t]@ߢ}fWvaQ[Oe>A?j/—_M\u}YVW=/(\;Wve~ o;N!.+wƈC#/ D5ozHWҴ_ό+Y?g\ ~{o{_G^_K>^k۽xYO|Z,'z,'l,'kwɒ"KP%Ŀ%͒w͒7W1`o%,<X%>@}ύmBW\ GXxـXy:'5?(O>o {ߘh"X'~;/_bUt' .s:Xa|KpD\07@1|ɷ?wd\AⳈ"xR{lܘ/O1qB`c"/;c2猋uog_=4fu|ZMӬkc +>?Y>kZ'. >u~㘤PwϝorY.W>3b|qԸrǥ߁<0=پCV׿o?_R=I\uLo|W]o|ruXv]W^߷xY⃮Sk#jzi|?C3Eb|4J}~5w>c|>qVp\_.&)2wXNƕ7wYCY: 5!+w1w_?7+7WF.+*OǏm+ߣ`|W"}~+?%+CUߧ=KXOQ?|=װO} +o}Mǿb\*Ÿ`;/Ϸ?^V_6ƕxun+}|μfM?'6Ǖ}yz}oAWU3Yތ-秸],G|kk4se#G^GͽCw==aG+;k7S}65?H<+<6Ek#`E\D&J_qE7X'DKEgտ>񪮑6~ N>%WfWGשPU(%~G^B\VMEEˈWWsˉЯ|ɷ@\58L|3qupqTUA2?rlq#Ef2C_;|?]'|.09?mOhl +F|WÄ>Y) sٳWoP{(3x]3}ğ?I>?&~ "=<'oOP?_Yx$.L˪J3XjtpyۉGUJA[_lPCˈ.K'>}'_BSFq3uǝP^o'^܄໬<L+iZt~O|xXJ3 C&~r+% -+J +~qn܏N! =ey7׬c#3'zL &jZʹ\1J5~wABE3]P^o";|FόHW>GUQ ~2ZG6 O|5_E7&1沉*9?x4\O(ߛy%O|EU xz.o.Nunķ^ Źy.I]S_&){?B|Q%f<- }c~"~ *7o7/BSb h\w_㌆G߯M!y2=P/m&J|C 211}zaAtM6Wy ,?LCGyz}B.ӍoJ%" iA|3 8y +_?Џ ~Z"sv-ϫ}L(I=Qޑ,|(Y e+w~-D巁smįݨߔ֨i_{~5|;DO|k~#KH\M nQ&X'~[ 4J +I}p($hfmkBb Q>_峁kѹTӷ%b.ʜK$>gzt>ϲO oO|q85x{+yBp qGBAwn?gk=wةJog?g/V=ZA|/q= į۝Н<<n#~ A}m]J&ܓP~#divAw ľrf@B &%_m%֪7Rߕ z굑 56' ?M~kϥyfT}Ց=dC#~je^i +f?Gg27W3y9A&7ی9N0y5mOL}*"^O襂4y)k1J7l΄UF|N2Q{?<21pC|W%>鯄>Xq.>;ZRytzRF%~{~M'~^RُċOH*!&^P+Y_e|7<ӴONLZ'ޡnRl{6%^~R x+4T?Lr1JFϧ $)H*xqMqOIj$4 jYR9״~͓ʽN!&>y_XT2?"ҷ?MU0 Z%o$' ?quI;BĿq$OmzRUSU ۪geyB3%hg˝ g M/O{$~Hg\_-\ +_ Vh=ȿꗸYO'z$M"V_rfR +~?.?/{':ty$>,*m0ZT=:?BjƟF .'§KRqf1m%I6m6ύ"{o!IfaI}zBc_ni?~Q˭4.Ҵ7IwDRK?L>wdR^/M飒!| (Xm}7Nc54r.ִ1c?Xh|bcO\sM.J*wG\u͖&~%@u4WT#>Ҥ{]k51--f^C|>\&BiU't\*M̤>K˭/Ѵd/6y?⫮P&avRe sǂo5oU˶{URnK|3' +N'Y'>hA/5I~%]k@%? &^sQR\ix1_i\`IR'?ޘTg_BMxU1| =˒'WoZ"sI}(M@w$pK\. =kߙT> ?F(2O*E'|EKZ9f W۸xUII5f<4VkL=*scz:Y&\{JG"#vmRy6F=T+oG|@X-3זKO_T}BI2O*agz_Qݬ?__T~ocq95ϻInzN=oG|6PB| Iw|qKI徼uĿ}9V7&|nojRty-_&+a[t Lj4xˈo3o-{J[O+|>tBI彟ev}^x扢|BOKEa=B|붤r27>#^_hƿ&#GgIy)/v~T~⯨ N*.#&\\G]JokNGQ~'wU$η#{oR-ͽ>%?%%k+ h.hw8_F>%߷,'~a8x_px /0y[iצ#~(r*%>hR^kL>?-/׬ě$z7 [27=L|}~~tEO+D3˧'䳍릪3vqJ`4&){iҽb0ݜwrJE9.L)ʈwoүOSS4l'>]J][S󽤇_X_kkOkknt9"H)aď DY'R~S oJ,meۍw^"ӭM=hjt(/%?(ǟkx!)#q'WN&>|2:\R>YD|)zU)q;7by泆eg~/h O)/y8Z$~h~gܩiǦĿR~3}41S|W_E{QJ$8~y#/Vcě]R~.*Ke<>~4%??񑗥뚫ML +'&AS#)=-Q+wkڍRv1S9%|LM񫈏NFgLWH)qnc?ZJ~FM5m쬔uEJyd4y2ܗoH)KsAU)^cR,cWO1mS߹&||[*⛮M)߷xEAb5?F#YL|ښrMu4_/*k#^HJyl6kSį#ު2S)"٪MMm+ VkZsl)_{>R~nEH|coY?F Ӵ+bW?! ֥YE|7ƕJ⟬S3wod'^h~Mz\Lyh6T=Ow'6敯#9h-٨gSyJs3ϧlv e~c6|Ms|1S&z)|xC_V_-$٘R7ѵ֮f^ko&^ZJd'Ư'>99zo'mI)'^A|8^gCZVC?\B>>M){W?zM,ǧW +ִIo|F< ć~^_BQ!~([\wŢFXEJ5a:}_M\ W}#u sT5RuJ)&~q3iRRQ?z4xė +>#{o!>uv_G\lbx] jڼ]Y??ߦ{9xOX'~,'nuww|>>M,Q*?sW?߫y?s-w_&uVER?F\^BZI)+׏'{o{S,!6?kTYnK_J)Z=?iꙮ%<B`JwdAieᅏS9)v+;^'@/oz8՜Go!eou_yԞдWp.z0"~a +M2+ukEVWFx H;Q);%UǿڣYO?ժFB|6XWiG0fl9O9gs_f0'Y)ON_^g_."V>ZJOki|2urW]sm'nr0V[OuE\lA׈EJ#ZMWe5Q_N|Sf90iR ֞x|ŋdkW헞M{A['>j?v7V=L|P>FRִU鋈GJ<&!q|xӺ[!V·ٚ_!V+hi-`N1>%o>i|;ji[?OU[/E\5j>9x|OIy]jy_> +>ۉ)}ռ5W)">(;kW>]RS793|F om?3|Gri/&6zsi(_YEď/rkq`?"Kqqoe9?|k9/L]E?ЈE6V4*]^^6M+YE[KmEZXxif?;e^Vây/4|0*j/hڝg?I ?K&?%zfCrMI+7Nکi^ 9+tczZ^/OćJ+RJ=xiˈN\u_Wv_W=txihݬuGSUO+!Q?Xiseć-Tϟˉ/N+El':0iUkE%t} 7ժ⇯O+CJ!|n6{}i}8Q/V'ċoNW?axia:lmy-pLbOWڟYheO>i]\bՅW݃~zUc4ҰUiCe~^M>אVQoXO/XQӚ=@ q@~>VC@/|$|'צBGO7A ~ϫ4o|3>q;GKSO ZF|:}"}ZϿNZ$/7J+ո9Fё δFy(,#(L6]?#)i9x5Y"7_a![u }i;e7;_SZcF_z +>ͬKڮÌ2li.$~rzk|^>S'%33ۮ!#GU~xߢi7Syh[ɧI,oyh['ELkКm1͕V(#௴I{_)¿ݚFzDkK*]^B_ժ29%~9'~9&$z_z +qll}x'qH_I`̿3BYX{ +ЋD#> +ӗU(ŗ/]^wog] +Ux +V[ +Q+zxƦ >RJ;+޻+bsmk>w/C͖f򉮮gg=wOz(HeӪoGaH:P>׏xG*2hT(1V(#XC|cB*ϡ&> +廞k=Q܇\6/_W|?YouC 'oOW׬Bsʹ_KzH@3 ڿ5+c`.߽XeTf]>◽\OǏ5jM+DTbL5a/*kݚw9v?"zOI T(5xNHxr:⋉J<зuՀ =ıצq=Aq|h GB9A?ÿ>uA̗yhꃆݘI?MovsFY?u|eqP<+Xy_۪M_h}@?H)~Ԫ;3vUoC_ist?}=@/reOTs8PRrznj+oR<-{{ +HBwt? z=9!{5>Wπ pgB߁C_=g9uߟ.'6{ys_hy)WqS_ }r}5TuO?g"=|Po?ÿ56Gs;_ToG ߝ4h 5@ = [hOrO +?#?C띅#3MN ݡC:S ߙ#37ߕÿ's>@.C9B0 t/9A?4Y~wWQ н碾r!t?@;GZC{4~OK;_>o7v)]mү?{wH_2V߹39>w&ss +@nGy.zsHwnkݲqnw Y(_ ]{vP?]9Aߗ1t?uw8=׀MW1n<6Am's-0jY|h m2hens^nr X}yFyϓ͠EՄ}D:W`g:~sF10cIݹ.׼~v'ڵ z^AhFQ'P uAP A4 A4 +"~ꄺn~hahj?"~ꄺn~hahj?uB]P7B}P?4 BC04B?uB]P7B}P?4 BC04B:.z>!hFu@P @P @4 @P :N z^AhFQ3:N z^AhFQ :N z^AhFQvCP'uC=P/C 4 C#(T;ꂺhhꂺhhCP'uC=P/C 4 C#(T CP'uC=P/C 4 C#(T"~ꄺn~hahj#~ꄺn~hahjG?uB]P7B}P?4 BC04B:.z>!hF1u@P @P @4 @Pu@P @P @4 @POu@P @P @4 @P-ꂺhh?uB]P7B}P?4 BC04B:N z^AhFQDP uAP A4 A4 +R:.z>!hFZCP'uC=P/C 4 C#(T@P uAP A4 A4 +BP uAP A4 A4 +tu@P @P @4 @P^ ʇ:N z^AhFQ^ꂺhhUGP uAP A4 A4 +j ~ꄺn~hahjy:.z>!hFxaCP'uC=P/C 4 C#(T;CP'uC=P/C 4 C#(TꂺhhFP uAP A4 A4 +NDP uAP A4 A4 + ~ꄺn~hahju?uB]P7B}P?4 BC04Bz:.z>!hFZ}u@P @P @4 @P:N z^AhFQCP'uC=P/C 4 C#(N|:N z^AhFQCP'uC=P/C 4 C#(Tkꂺhh5AP uAP A4 A4 + +?uB]P7B}P?4 BC04B:.z>!hFI:.z>!hFZ3u@P @P @4 @P9:N z^AhFQv2:N z^AhFQCP'uC=P/C 4 C#(T;CP'uC=P/C 4 C#(T+DP uAP A4 A4 +Z"~ꄺn~hahj?uB]P7B}P?4 BC04Bֈ:.z>!hFCP'uC=P/C 4 C#(T; 8dόwdMҺun[xs{Ϝt_}졕eo†o>h9iTFipVƹo\|G{k/=Oˏ럠;9`9_)5thho!RfUUU(7o5xJ ߩU>:>Fc}U,~,O__UT,Ǔ sxj5r*y,k r9xʧUoe^ +n`W'<ζ]llk~ײm]w=mOiy6F)J6*+ʿ~7ndw+ֶSm~no}wO禮m[j=> RMWj.jiݫx5z> [x^?{}qz|[ss9\zSgOڏSߕq|/s~$fz\t5Л&Н@\AgAB@O+xi lO.{߼-iOX;ZK~w?qx=À|)3W=NpfߍE?~_8 x9smt3(ggUÿ/'ؑ)jLyVwd1ϑ)?F;4Uÿ/Uw\(\w\g\W\G\7 O\\yc_gT +|ilU @;<;s9]:܌>C/qet] ٿWJ[^i+e^Z֫dJd>{wW]muVfVqu}*ٿoX%UUV=~ߟۣ _yyyyyߕNgO+~̡ioA[;K;gk1!d1r` ٘qn 7ec̡#*g؍cnc?կ8I̙[ӻڭ5wK2~ li5i +fu<Zdzrx o Ypܿ:VQ}p-K*>?wA}8/~wß1=6v~No7=h;`]`\n_K񭘪apNBO {v T]Xao=3W|mN}?!|ܻ2w%߳ >\_^}|vf߂tIZ?Θ= +Nؓ߇܏x#2^n.}w`er; -l#{kSNU[:-i{hma?v;γ`w|' v~(={r |'-|n?[~3v~?;/cgz zzw =?HzrΏv{ WDaw+vwV/{a< +y"È߄=;vmf7ۭ-|nQۭGۭcv#+nnqg~_og_ܞs{=9G/{e;+nϽmܞܞ۳w>W\/?f]fI{k}Ik?I{k=6{w؃Gd{v:" ކ!!?vn#rS;*ۧ,gnpmp;vGe~G#_m΂PT\/Km;f÷ٟ=l/QB?&Ǔ`xL.yaN'׺U]~氻v{`1'?y?8?蟲FÞyOvgLgsz`?,el~NOLok8=qY8=q`|o{^f~߷v ?{f?{fQӰ7B ^&߳ൊS`e{0.cط\#qy^%ݜW$dW3sL +` WBtpƟC<ē_H+ėi/dF[B 9y=_R2|dB(%y^HK>/߼^#mηr\V!ઐ|^U$T!/_x~gq8x~K'֬ztҟӭW}.O.Q\~]_.Ϡ-S{Sfo@8[8)Ì:rBU@z;e`yl'/ßg՚.g=sb; gCt%RGiw8|fۨvƟZm̷m< w8|wՕ}6N'=x'ßtމpnNzܖ;pNs`w{qNWDl".[:@87N'Cz2G{tQO[Č?_x"ڧ-]y ^pBp&#?lh?pF)p9D8<`=9p6y~'VYo [_FΓ +s(k3v+ye-=΃of) סuy< <QoOC6 \Σ`r6:8/|sASO,禲~rn*ۃYMes9GVnPϑ$Yd?j'Wr"o=EΟ?]+K] +P?P'Ԭi{fo {N'صLz~]-e?=vOK9n} +_KYn|Rߧᖲ}͟S䷒|JS[V>,O}͟SD[)[~)ey} +WkY|_ZN<-|Zga8< /:xaluzuS(e=3Sez ;oz +t +ߩrSey^=U7>W&^.+7`sh#ۏϡyLmdxj#h~?䷭z^l+˟SyV (meaaoF`}|tt>H?ߜ7HE;U/讲~}]eoX߼!&o{ ]΋.QCawuh=y?@w9Yٗ5D?$;=l{fvGaϷkc'gٗg?fv9lߣľg _%|:%\=%<=_D쿼.Dv>󺄣Xcȯ=.,^p~b9:FX^w:FcD|13u7cn_p)ˍ1gyc 1yo 1B;Ox#z'ySczcx{jۋ`{v6{GL'{lG,7^6c^2|^pu o/9:y#Kk{-|;{ ݽey-ˇ~[u>~}}l%YW>^x~#˟W>rWcίqE.YUyWEx^+knEo;߭=jo]"ÞofOٛ6yf +f/cπkfv؃6^C6A]kEr1v~"y}}>z&y(JLO?["WKd?`Q%U-N N3le{n~tAw}=:DK?T1NPY՚"=Ce8 ` }Cy#쁡r|>Py~{kd`w 5?L{s:3Ls;\`wvp ;\g ;\ƻ pY;8D^Γ0y2xS3gd~nI"$igأt=T`wvw bؽާ/<`sKe}鷥>N}>?_Qn!xZWivRf<\99_-=q/˓[4[Η[- - d8ua^Uu&أu e:B~^(||o+pW7e}nٮ}p}n9ޚ +ܲݚ +ܲߙ +Fp}#d +F +F| +lv햯Cxz<2B_k#3v^/qH>_Gw_͟##e{Q2_|}OFpE1>۸1~1>v~ o?/4ˌWvL& Gzu(yoApln%Dmv^7- 8nOv<ye;uh9N:Cv 1r ػ y3D`/c3:gcce;7|5k~ qr q5j̔ˍΐcli玄=G_;grdRNL9q3egz4/1SwN,wΒ~,Y7)ҿ^6].OCl͞{H{A 7RyZ`1KΣxLRnvw^7s])7egT(諈;*bhQ,J" +!M6MBET@QQQVeqQE]T]qGE?Ιܠ$Lϝ;w̙se{#')r7&S??lHvȌl'_%)WI~v/%2%vH甬!R6%kCvd}i3Oz:yiYOC&e=Yd;WCMltwH9ls9lks!9Rϰ2V>GC&J=pއ +ø}x78_g}+lo68y)pMFy9sz(9yNz(<_}{ד0.%zӳ?q:mg:? NKܞ>Umv&:ܹ=wmsc|9b<1Zg F9he}N_;Zo>Ҟno9z) #5\1r (|W#ˋ\ϱr^~9Vs's3sgPO[ ~->p1_O'p|8yi!&WI3U.|c>WyMU>;>e}~/783^>? |ze_A/K}3^x'yFfd&Hrx_d/CҺ,|-Za>"8;COT%7? ~(^ipoَy>(Kb91|p~_ # Ϡ߀{X^p~OSo-p*ʷ8bA Y7S벽Nq.$o[NGET{;O/{+~ؽS|v﬩r~wWNsT>l0s4il;M^y49/;Đvo4ly49blm&ױ{vf;tɝ8|>l0sse >7˸X~H9R~}z俰cU R޹@F-O(YK랆;PkT~~,GBNPOBg 9Z,g,(s1XΓor6y}-%ם%8u58,a₻ddڻ>a_7[r+-31[ڱ?`p.-ۍkgq͖w7Gɻ#8ywssa@pYON08evs׉Α';8=8\88\9?p;<8B?\`px[Η#9+ ~– $g?'\`pO~ [r[/& ~3sBi/99' `{iBc]dg{iB^ڽPNrl^jH^*0ʳkK^-y"nu^b{i"e{i"l/5Y,9K9g{ibYW~v{X'l<],3-k}|^?̒omU+parFss߸X"yRrKus0~/Xp>2)sLT\&ey'p,\go[K}rs$voY}2d<72/^|!뵗>~;%g&^/I}v!햗^r޳f~dosIѓs~;c|.\''\'_/;R^ޗ^^ko탕|矴 3-Ks2 9/kxiO:딗08׿F7u~7,Q 6}8Y9o﫳8&N>&y?dQϵ}568 MqmGEַX9z0缲ץ|rp3ଇw&ys7 -F(x o9Uۧb/޷<~iv:R}}CgOO/_z#u9TQjs | +|xQ +`97Q~T~.Krn?Orx=/}֠3໮"9l )Vp.3?=|&=  P=;CNg~P}E'R}CJr8fK遏F{/R*|!νyf5Ak;xs辮G=s+,凃Z@??Gz.OP1<#oG?_/o=!~^Mp? +1߭?^;/طğA΄3ө}Bl[ 3 +먞; +*_9Lϑwzm/DO9JOm+x9t]^5@׎/oLmOJ{c H|yowtݎܞWG$ e2]w5ZW_?} k=p>˧T7}H9Fy;r% fU J?>|tOjg,~95.~ tCx>?#/z:gʧρ]? > ?lׁ-w-=='l3La|Qځf :zc;b\$tR9E}CǗZv/0?9߉?_F/G+~yzt*zߊ߀gvp'؟|\v OoFǢ8q?cz7x#R?Dw܇Q>ƀ>3js^k_:!-!;!3?_9QF~>Lr/#HN#\+VT"wE |64v'RB9oa5KeՇ_B?Ы!T9|<ɸnT=u(?u/U|~yYEj_Հ;$^9.8tWKIw9>ǰVKlxhy=M|%,BמQE|~t_蟍{ɿg+(f Qdt~8%ޣ տ kcWho;Ut___O}vEs\ocg*0υy%kGJue$nUg|/MS}Z M|@=_#c] k, FMQcQîtwPϤzr\E<__M(x-xDկOK7ֻ~q\ 8QY ~I?_7 ^@xwI<H?^΃_*׏ȎOKW@_ut_*?aa}!o cSl_q z6g?U +ot[Ay{ $??7-FK+_,5C|y)rq;?j\W/;߼x(K}C;Q9u3)߸^یSH=|ܟo%-'E=1T#o6 R?YT?y&8L?8Zze +t? +~ic ^?j ~/˃L˼K+=SP}L?Sn{aU{~xQ~'HUiׂެs._v`|\lI_t39r^͝M!?C೦ b+sSk?bؙH;'|(.Bn{(L9aV~ykr7cgqӤ 5P| g~:i7D5$hu$9s7>'9?V\Fa&wa݌/C=@ E;hW_N)&^<<#OygsI~.GMw#_׽ +|B7<ȹOo/x~o_/w/E Y|;~ v8o/M^!/Q7~D弦G|vq$];ވwLn6RsǻaTL|׃v5ɹ +r< ?~B*_qVgu_#G\J|3l?<َ_.oCrLvKoϳ?|A2v!!Ia:?~EP=߂o_8(1ʟҒgO@N +aj0\tr +&noKg;}G`={֓|_R}8|eć <k$s$9NDi*/ w~?ZW'ŋa⭧S?D'#Ԟ|sԞWvP3?w4A~_ +>tx_F |}kjQ~۽Fwu]ZQ}Cjlj +xrc_;]NH6r^J+)~oE?~ks+(?|3a4 $<^>qdc:ـCmWu1} ~Mt]w6ip>y'@%yn*7x xC躬oxta WekB@=?ot+C5{"k38pßnoPOX5]`iN3wonH՛^BP?_Qa_݆pDa5[\9yc? -#nvDQXKT_>e%Ijvm9a/@oEv_{gnuGx@؇R53I>_:T>OWQ;I=ρ~)U?u^Q|rG@\j_ be<|q#w&ʟg~$//Ugu<}l/H|RCz=IԿϳ΅'jߚIq?=gd\#/x8*ʿ>~^~u ._>x麼=]md|+5$$!+isV% kAy/#~|Wl5ڍBį93sbyAŇHpIH4*x+ ~f] ~N9qwB?Mj)󖷁/'Nv>|9 /߰8Q +>ry.GV`?>LcF 33ɹ|Ys>~?xTq̱f%V>?4uz.^3n1Ӧ{Ns3;>yӳI?35>$Y#~]^ŧ+!&"GG$u?{|\F;-jc~[>mNG~AvA"c_] +9o926RF=+'$iE|\<@Ϲ[ 3T}_>6/Xπ@ytg P䭱' +~gTq^$8_b6L%iCҿ-S=_E/݀7{ׯzr<5g8b8ʏeX 篑Yǡ77H|${S;pox!WeJwr._:Ty7ϗ;{|'Ly>vc໇и<_z (ߤx!5%v׵?J#oS}b1!lM`-'o\Mf+S| R<Ge=rUmq#~o%T׀peN}R~1}~~c@G&G?-w6K7a8ț|Σ ^<y~SD=Ic|JI2Vg(*eQ"Ï_^*W|,Fd9lFzp>I_I0xUuxw|:z.O`^N<_M;|%Hx~jz|nM,@6\{ a=ETGC?qy7vk<3Oeܯ ~qA?a.x|IAm#痥(j+Zr jQ-Q$'6;{8rP;^vc>owBl/} ;zz%?"~,wlWߊ}(9EpviDyQ~z!y.A'^ +~]ʻ_-D0ρ/H|ETvS{L{GyG_v3_z%og;u|-=yZޣr=ǃϞK|;"ny]o䟄V@F/s5t]3(;HY~Ѭ^o:ʏ@}[?E}Rr> KrJo& ޱ?Ny_$&Wv |CC{s/Gz>t]>OQ3O/r[nv}=;~K+v؏s_ ig);?w$ #p^Zy}`<-?Y5(trݹ!l]4e/q@HId\i,xi򜷩O>7,w2Y ' $çy|7ُw O=ajg}Cn7a8{ +;OHqG+k=x3oo#cZ:WVg| Q?B\'C'\~t+xG-9.sx8'xGO6ZO~?x CJB|?0~>|ȦM}qR>_r^/^?@5?9`T#a~ږr!aI`_xدxE{.ڗ )=^Y+Xց_Q?҄;_v~s\W'6Yʯ b<g!|\3g|3ȡpW<+炏z^^2ڳ7RyU??U[>c̗ |4X,rz^gA&{q>,yl^{ ]Gj0{/y sQ<{r~Q#\%;=|;pl % +G?d6ݔ +#8WlMyZ\o9 |k=՟K>9vO57~}y~mRy^_< >r/:Ifh~HP?=jb9 +k?tw%_S|ZGw<p-aRNNj>v`;H~=^*fTϯ8|z=mÇM$a k>ɜT#/5(T'e ղoUx* 9ޯ<|b~BPDL"Iŷo$~bq^ oxeϺsoN'?%3A}x;?\KBoޅ!wr3\ ;!or?dyq짽s>~*/AԞ;Ê徘gI{ѵćJ \ٷoЖ(/E-|Kh"YW+'znY8ϼ rݺ2V&q=OuOqC<?9!7vL3'uɔg~0/(7HrkGoDrxAS`W`?<8^>+oq}sM ~8'r0O&}&U7n>'@LX c|5玗6q;?|~3.#vϯ:⭿ہ'x#dx5^Ey6>gJwpn6Y >A_i xs'8_箠q=EhgCwp'_FQ~ätx.c?B^4 e_zGY"νg~B\?_By}t +xqs!x(}10Ϲ*ma0|p]>h+p[<^= c |7Ȼ@I5 +pӅP;৾A=¾Bg  H~j|t:~N|Ub~ط_yOp^(<æcX#?Jy?c'qg>(ZKp5_z?l@͏?l/G|Gh/>ga|>|gڀ/~ s./_ rD|{'!j?r&|א3j4ߡૌszAWeqݶS}y4|Ɩ +BNgƃߏq,wQby|x~Wx܋eB 2z|:,'^ځ[nnOQ>0 +z>Qԯ<cy2CX_TBΕwq[{#Go|?9@'%9c~9=Σv}ia!i X/Η;|%^ G|B |io_Qz?I(.'lkPezyA;Z/ouy_Hw/d%;8.~6 ~/6<~^w +NmG̈́B7;oov o|{Ն⺛>y5>؞kru&/}x+:N ~Qt]N*; |07 k|iʥ?Kjg?:{7≲OOޞ7!'|7K{5 ͏'ߊ_ | B=/Ĺ +|.^s<߉SS={Aw?S=Oe ^t]ϝ+x˔rk u2>4GKdTo?e9'PYĿ|Dϕd<ў=Oo2~DGP~gOQ~  7U<.xcc<^C$v_OͪIǹXAPNW|}TG.wzM?,!Owuu]XG-Q~Gt-hL*;|*\7^t+x_yW]Q~Vw|3w^r]v+xyOE>'/}XIx<޲n' ,|1Ι4wtG%I\ <(}|ׁSJ׽/r04(HkCY^utߡ>;;#_ySS |2? )tÝ؟ G;| G= 62nX} qԅ$E?lտSwI'.{; .#Aw{Cιi'Hx"i=ځ@7;ڍMOڇWv_w)5]$|ߵ>xEIO,#ڳ?i9~-g,nQiCQOEPq?[ +] {e?ٛs|B>Kd\|1"(/?yKH>g~Q^(ɋ8>6-<] >>鯛 +\.X?)r| Re{k~=|}1~I[߅8?*_NXq=Gm +s"|r]9T>u'j-qPoq?P~(ޣd~uR?yIpO%7CS[=|gw?~$پ/E4^9 ]𽝩xħ?2JS隲6!_8GSH2Hxi*NǓ@W'"HMw@Y4 `} K'}e`u$DJEH2*֔[ZP RK$§x8KB%?tY{c;c[c1w?KEҕzj=P]@Eu02?RQFcJJ. ܿ[ITbr9B[ni_PU'opX)Uطy| ݇{BsYk\rZϺ#%*ZKkR&ůIAk._*0:[,Dk+ \:GKz\П7;BϮ=]d?vgvvE%]]%w?ݏm=z<}h8` ud$Rm)fH'vX(|KUFv~6'`:R;e@:Ԫoexu_Q}JGDmtRB}s|Ź۶ tW\}WSJBToH ]غzoP(Y%0* 4}O i5`{@5*eiĨJ}ua_].P@UMu,T-Uj|P@"IUPeJᶹ~{"hϟp0U'K˝e>V!>#1-%&*"I7: +KҪƹj3V-U~X=鷓SppGêByqgԘ/H: +&wx`5&;;S0Rվϭ]*JP+Uىs%jFU&E莘\brG;toL_& w' ( I7^Q GA^9z r5k#<@>dXȿ biod"X|^e*I%&UtZ5<jV.E>;|cp*n/ߥ_npWA*׍5λ ѣ$PҥkߢǝHp.0W#PVѠH#)6lM]l{|P"tP ve ckLI;kޔe3H2fVki>iq:h'+igm"Rm)K¥Uֽ1Xm\i+1Rl}N8rjfx2ltQU{8>9p.mY̙&t/Wj{veM0hSpA*ݾn FcZ/DssP1L 2V2FT(JєG26|YTV;!e phʺu=hh8k9sϾv R{qn>5Vcڸ#[nՅ,aHҡV)vq{9+SaeMbvS۩jñ"Mg>I]jTUF|J_Pđ )[}%]gH0VC[߸-8EaW?T{FE1`|;+{E%7 KԤU5Qm=T\K'7@"B5ɨ#;)7nGgL%]{Dt'Э^EɄ&'?Zj')xJB(ͭY:!Yޘ,NX(Qo BQ+MpE'VǪO:l2bҦ qg =ȇưhgΈ=(,@zcKJ{YoX^b}PYԩȧݝi+ˋKr V% ߤ +'#1Pdi5 eb%SbO ; FZRUd,XUZ>X3%$ɪ2 OK7I]c[*ZK +*"J Ɗ5cYIա)$YsX `O3j@ItZ[vl Kض3I=Z VĔ:ǟ$jl4#vpL%R*~BJMY;[$;U԰U5;2/LXtUOėFbњ_hOQcq,ZϮss%x Pۛcl%it ,=%վli Q>sjrXs!V} +&ʥHhxO't*v.}O槩\C [ /3-t[~4-9 dW}uJZ([Ɩu@ٹr^n;ƄyZeG:j Ri Ŵ )) T/C d$ЂuF>X,帾k[d𚑪+pFYhyPFEӮ_Mz'2]2R-^qͶp,Ug}\eg$ݟ%2h73vm˪E|3AHkr,l%a_J"M'DQm$cRHIum8c70aOs g1xEO ú@!ҍv.Ć?ՋDAWS+íl^IgrU^eʨVccO$> z6)hT^'a Jpsi^ī'{J՜ Gbө뢞wvt HDbPsj4{__ڙ(j`aݟa7Ո3ek$_agFtÐ[v]k]ZJ%բzNӌN+&tu69;O5*{tƍzxt\ա]87P+Ԝ"EcGvQ4JY^^/sv' c2JVu3hl623`.dt ?U4-nK5bgi<*YY9d**eh!5w-k"ӯ/kox$YfT8]{e:FϷ(9Ւt1j[~Ft/Q z+@Mcƶ}"OС˔_t%77S$mD< Sy ci7UrH1U-M9/Ӻ +ke(ph>ZehlHPS^żm5Kٗnǵ kIKV"aPFxZhцBz<",lABpnhM#){ UhUh"ꦛ{vԀU=šk"*6hoɂ"^l~ NL$ea9kYkCe'#e%шSKYQv#$JXc{_$-jI4zeMdٍU髦嬛JS͏<^&Fsn,9YEI{'KjwgY's65T^]L|vzDc} ZEf*V)GO\$?HHuH:UP$ns7[oh5ht~L«5F #2cG'pF2KͧlsYxX5 ]baֳ֪4:o,QNed)8 +H0Yl?Egt4h@;G=q5OWʻ+y1ޛU5T}mM5TQ7) e=mSdWFF +?ɹLFRz2#ƯzyTIlJ|ch˿ifYS,yizR8.1ݴlpG bgO^OM(]cNww{ !s5XTiPv[E Sr>aB#S#/Hߥ5[s\*zANY.^,Ƽ3>h25>L%3"ӓb/VnFL)vb 2.a7aN^`飜N3 m>e'\u}*^ٴmjE6.(5(dj"0nTACEYEg7F KY´v:FnQӗ\+kLv"pr! +\;0cA摰`OzQpi[qH.@H09~Z4 SN0튬>xRjh*`A~5B8ՃvX7K}q/њ2wSȲh5z6f,7㏧5L]iwt}#pf;cRrWf6$/wzT5ZI$_ǟN뿙mh2Vx=<3۶iNJs`D)/zG>Rvu`ۛj"NF dԏ*lpa.bD@Tg)1;YCl> 3AwUeFQghW*xJ֫;agMillҌyk&~f{: eDcq5:X\݇oD<+ꏕ";gY7,e/)8|=Ǭc){3yzfhhဓ:ˤ4%: +ģa-Ҫa9( !njFT9!H,2cD^Ԥmo"AS+Ȅ/(.ȌkkpHT)?^.Zۻ)6N*@w, +鍪Uf)j{}f8E m XԿZ']~*CTZVLYCj_u,,,TbU*/uf.u0sn~[. nsp}v4y%8S-;67?k>7;drz4RS6SI)7m2Уgro#?19n;PWGŽ cgFtakt0]-; 9;#$E=o½lTmhZC_ZS) c9vzӲT=IT8_X+i#.Fn]Tt[U?^->O6bg^a+MoDdPfmP?R9%MWNdҗlDڽ9]_Zs7d]Z_aRq1vmtE-y05%!sQ'M,.ҺbIQ$ۓ#/왃cg [a1@6<ܞ Zi9NNaIP69F\烔zBiW_^/C.gdM~7 )՘NfygӨf +MYN + .7]'+mwl2^t_qtz2SN,  >sK2ʺ4t|\#S@;߶>8=H-{d +Re?b;txafNyp3Vc9N<#cCz4J1d9?8ob$P KS{dy6hLjL0}(A[DGpa#ig>QEŢ\Rw4"J9řmm2<93s2"ZyA㼏OҎT7dTKeYMI_/ȷ^&IcH5 #=G;~7cflrmwe.q=x?e3a2)'I2ݡxNQ_8 fH7Td .ehAt֗b>Nx13|C<\w-2ف23Ȫ2׋&7:GU2b.J3=um3Ciҵ/42L^S22s~fs9N/p3çZ&r¼?N:B|;u#2O78&Zmf%3r1a#i}tktgx7Nׄ|(+1.g 1dq6;jܕ뚐z_CRNKE`&;!mVIQe lC̡;]ZJ]W:##WV(1<5x^ =Mj{[[q +/$3gU( +=)u6ߋIgC9+3&&BT}u*=؏@n/˷g>IW8A=T +yyk1 9JWMX ?М=d7 +uNomue~+bO{5;zu甗*TtZ@Gq؂aGy;_74v3nV~Bx_z:F*ܟ"[Qj/v͞ﭟnVeHSv¨me2rbXRu`:/{+lؚ43Mo1t; " "įd J

q@[9aV/NqyiU %{A91+sT ]zVvLઍ.Qq F{џ<)W m'CJٝr@*KE%q]sDxXC53)N}$y:P%8\O2>pg]y f\D,ޛ֙Ǹ>c.ح1y@\tއK E{R_>籧_ |m<:SjۅW"8nZXc澪4A!@υTUsc2% +ȭm%|y3/E崘Jg]\4“X˰}Qv V=BՔ 1#_6UId:& ypn^ WbO3\p4 Oh!бhĵsu_ fF(* }N65fl%C6/}_.BmiGz`F NilE^"\6%Ʒ-aU;a=CqotLL2IӾ__tH]ow>>_/׏ӽNծcUOX +/o,e0 !x'3]oq_b-Qgw _}\w^ΤQ]*G࿏)JϽAk1ߟ1Y)1Ͻ_rܢx9/tf?nt1O)G7Ccڿlf'ƿjɿq_Y+&}^NS(ǵN2GFG܀7 ^^KGXbF1?+o;o^bc|}?o_O(krE;^'%vO'^Ġ+ gVo(dg҄_d0l*a_;zyK?1Kb岯 x=kNfq`_;7AW%UvO'(`_7?x=_ BJJQ7be\-UVJR(VKHIazJX{FV:In|^W"ۿXz +XȷkuFmU_)Lŕj%rLߢiqvE4_- Oo[~2s jbڿP,ehBu%bڨWXCR*+JRnwoo}SNjE}SAE~zm?$C(]x-,7f)]/Pnts3".\?C^|v|< 'Ds0^qӧ=~x|à^p7>Gg5> A Z4lOjixi6AgK>=#/L> 4pvGj; _t}%^o?ZʸTo`:٩&.lWL9zUpZv0tqX ΰE{djN˒vdn=|~RG!lFD` [K[KKM!cc_m!aj<ґ)/seơ +z/y"BH3EAo +4J"8+ORF,j$GtQDiLBҕe2>" .ˈѩED;0|c'f.Zu-#IJYZisEk$[\+r)ȍL핵JPY*77WN;ۍ}P7`8g%nd +9r6<3Պ"m %HApjAϨ^@sgگ?u6M$]Z'?IʔjfeZE_+b9ɝ~HsMqH%m}~n cȡO(^1B4 p"Ћ6)uFCN0pjR\&PITS"v SU+i`i-I AѪEuxLS.HoIӀIBG>gQo-abq֒6=hV#eO]l/7ꖳXڜ"S9JXPc;KlRXee5iU-%ZZ:XYƤed6D".. UeEp!`q`Kέgb?~oJ-~s[X]߹[,n;HN_ut  R5Mlb% _Ĺw#x"C#kC ]bn ie*r7ivc;!W<43rŕ1-)˒;{*Z-%1ao_["k6!ye&wc$7">80 } ':vԟi TLb!Uy+zo뙭ftQu0::˂p)36Y%?q%p&;Lc3\ípH9Pcnjz֬oᄍ^ȑ,B  + G0ۃT~p SFagrʋwpKe+:Z>82 +)f7Lcs`{ƑʋC\l˪5*Q=ڝ㪜i契:LgHTQ3Uj3 W +F*\f5ǣݮDaHzI)cDyj@'62 cmUq;ﺙvgj5i(lwAdҝ5s9[\JC^C6hCsHþg)kodmݫ?6Xط{B)rD(oxd>\jl.5Yw%_)UT\Yy~S=`0]#x:8!x["A8v `YC݇J}H+ ap$/D䡤5[lG{B)XΘYMÎJ(:p1;֯"(eUb.2yNX&@.ZsHAa=8v06:4)}^WS!khI$o4J +g5fKW}b*Rjj-1 f+j yW2ۍ Xe*TY:-*߰ߑ5R*'S]=o*ULէ3ve'u1N\D<3 J/?W_}l>{k`,7ja`"PDf';d~\Cs9""_sܔB +o|+t>t(sPxLv`5ퟮF}kq~c{2ŽPg2EBE$o qXQ +W};לNtAs5mA[;^H_])?+\~S߼[{Ptzȼ LEnօvoΝ^ǠA3E` uUȠc|)=3YR *a"oR -XjT9W(~i TO.e<]D澱^uasq\U[|3@GYBÍXa7cCPI(*~դއOZ5+I^*ġQs?a|EK"gV:QFQx!H{caTqǗO5DlÏA?IoҘjNҌY׸M٥ ۖGgncWW?7?aXL;$knmַ6LAǚV0NSV+E6i`L&@? +ˍ iM]^ l8"nuV'" *Eg z 7BwIcXǡb΋'<NBmrl非/Es_T棵fG%_KY.$q=R6J5*k|MYQG^E89ؓn2eLI9 õXC+jsYNxc~vs`I8Ar%}FRMM1'}Keu???ù.7ql&nvo]d&q71kwei2qPy,m 1ɕHHOIC?59Z-,_o+ti4>KU/׈{27nw #7 hbI8l_Q,V_ⴒ ;}C#hT~'ܔio:4K8u()' T590\Op٣׫%vѺl.>7оK v&ݛ[Q'~D +X#G saDt&Ns|J:vV7 -܄q"λp4T)i5zh,Dl:пUD22T; xs_AkMS{0jy&&n;3oQ2 0`F`~ Ofc*?`N+Œ@K%- )1E"ɊI[Iiڸ$C>iVtmKDAW~$o6i")J śUD+_[`%1xcah|,$n2ȋ^?%aE#RzK^Oi+8lٱtSGcK'3Gre| /79 я}U8W +ݨIO' R6Sީ 05;UJlRnt` ~#`d9d9`PgfWrn_'Yv5,^ry\\^[]LF-JVIz2PZV*kZ>,l)Z#d(zrA J`5*+$x0\;Y-eBefZ !Ғ.To)+Zb˧pPlM61r4b5[XХD&6rjf{0ELNOI? +їr,v%'2d"Rb pa"ZXgTxV L߻zP'i9ܥi އP^슂xkq1{,pv q\ZhŔǸSu Pdߝq`4,̧r՚JI5yF{At@W'';.m`υԌ1ޒBti&@했z.ݟ#Kus 5O)uܨuFFfFBN?ܹyH#9Fo%1x>zw2p4JhO*}e!Gv.N+({hKlE +5fء4 2O䙈B%2ɂ #INЈ}qshREEc\-f2x;Ϗ>CC/-Y9Y Djujip)hƵZ97J0ҵb$j)8<׏SgtERgYH?ѕƤL&r %]uR?dEbf wayFp_le,8AK:t-g,kCɡ!2(BQ"Ig yAzD`]=zkKǡ2=uEI +׶:€cAx[{~o!71[え𶽽Ym}rW7ʮD҄%]WeJ1|G*8;LbMx0NVfk5XF(TZrSZWt66gٙ{ffU\H">*6tY1M, +sTuGgkH%N,RD+|)LjidQaWi~[3G.i/p+D$) T/fU,\.䝒ɏMlǡ'/o-Dtur8G60 F=/݄Q3%>Fa./OM)z5]K/4nE9򎒜#c^M4sm۽S}p^Zk+UZbԏ5љh8{┋gn.{WBӪX#4Ev*֓9,EG?5Sʻ;KOy&c|ŒV{ '/ձ?^ ++Ndhm@)-}='4O}%[VD;\JOٷ3"ZLʛ0fw:NwZ\2JF}t 0GX4Ri,ܳx'FsuwLqHdf OQ-r\`tZOQуo&W._:ߝR)ƎgpaLdٸc*7V +tL|]%=qSOphC'6rr{>CG=Ng}E<%B,Tv{,H;0wP peyv +@AQi׌㏖9%%gzK져F'0?4AakXwP E=|GV] xŨ Y$ =G9 b&J,o>m XZ1P#ßL͇BDfb,tb^E-=hiEj;=CB=~+5ƣBEwվY6id}hEM~s7=X?:Doۛ軽no\Mxz[o??-^Fm=uvZCXcrYe ]mBXsw1c?3Ǡ=fh%|gYA;BK2iPL03C(te̸v*j>ԄVK"O.*<`^ gXPQ9~8,REDx(Gi2+DD .y06Q?$ a;1P|8V(?n+KkIuMr%>|Ա\ws3nn:uAۑ+2_̩.#,5$AMnbNS9V#P;J0fq ~k#١#X՘xo ݚ\~4MX])(<+J-> =1S4Jb 1Ko*HLF$qBBBI픆ɘtsܘ#yNԴC^!{3NV*kRt0FCc#G?9cS39i@wi%_~,9Pu-'Sh;~m?f%KNX=^t2gNZs +e +QNN~MDפT$C"XU|U08{(5PJǵOJӠ;C?x-mSa7u%)DL F;Gꯒh4`h5n.A"ϙ*Y739COPכBx}PS3:5Z궛ŕ%PQu%^3׮S[sKA"j9 +~66ިױtN* +k'+R,a *O>2#lkGO|f$2);A ΘλqYc,X +5Au>K59lY %GL3%(~F6'^K +͸.h)K 0TPRgj2#/ᢣ*Ufs-OaYRAُ4z{xy wOS0 +;'ֈ.QX[Z2ro ϒbcC%.vV^F}::t3#s}g=~76,$ FXs^M4zD {0ɓ50ELuel%nXآ`;6?/>6>B A{ܶm= ^Sj n>JPvjc +Nѵۘ*̩3^5&`Ψtw鷞D*M802Q"s`gA@q_jCN-\UIݟ%cnI{!"\;W_P^y-S??E@;K9JHdb ݌c5#b@PV@rK(ix#biaCMHqw)Հb)C UW Ka+9w!JA`N2)\sz4h}0 ]KB +DO|/">Mz߃n?V +Rq[Kk +Y4bXr/et_XmsGѯF9$zfqNR.iXRX",V%8lүV4_Hę~e͙W +2,GG̪qcVԋ_ݯ<Ωyy_yoK~>a3/E:l>I[ftT7r9 0*(9H cư/3RMeX1H%]H+B i!$PpZj>hnC&W$0g{4}u@C_v@ӍXmY +mgu.roh@K.М -(>n!k2ބ-r!z^r>lt A衈 ZJ]N1Ès +$ +}($'aj[tLת7w`8^Z#f0Fzavm(N_܅ te']cr>ېn2D*yŀ"AM5$ē_n:4/(̧ Ћje*bw._6n`j?N>~ x?XZpw644µp3zx}o}o=)}Bxd밧. JK8;chVhxh8 Iۂd +}fŃ̑>~q"lcGaC8E*"ɏYؿć^EԴyyY_HTE5aD[Ckc( 1%f,cL]{<ϕ= yj}k}{_f;9"R(+WW|镵B*QwRݨ˴? ;uVr&y&3suϱ~4lFãji#prP("]<ԥ+ؼ4tC 3ud PՅ7_We43L&։`Ͷ;pQ'ff3{XkGA`xIn=@߁qA+2-eRNӠ&3i6Y8;4tJ[(ϸ-_As-eM#r%PUBx `)l%;-Vl\ vU>բ[Ka۸2wI=CɷVd2ʴyIV KYӲbYdUBVdwW4vWWX7Wxd ڽnĭl/y*cK(k~~;E#Ɋۏ`jgD*-]p7 ]Ǥ兼ulJ&ԁ6HV d$0vhOδ:ߝ _zv? ,cCK, K]z |}9qM:oOw.qG?6>Jz9K Q*pƀE)T%ggP/sA=-,y1@P;t(AXP\^?fQ *#t`/łg!{MZt~s OHv}!d!I?M>ÙZ6I_Z+mc ,u^)([V/4 + vU.1?0S4?_\巘];OM]2 f*1t~v-{G#}8w2kKڻR%+S/A%xLj'%9rDP5P$ۯ({^^n6qfk6-Ѩj6 <#OO6H#f7:)S3@^f8&7jݽTFȇ@$,B#l||[L3A*뷵",쀣L,"ڛpVfQ?z ,iȍna*l[*&V `<0!ĴՑqOr'ޓSm}$~VsaMTX).[N׎M1˨e-j=8E_uI.NKhpNwXR$΅SuDd<-Kt?8|>*>y}.;o)Y?NN];|&;,p98@` g[~}7Nبߩ=o6ŭԥ SS}藡t*L#gl_ae1巸oQkleS3YݸŒNm~_n]?AflrX0ODne֔ŗA@:H+'>3]L(?$?#+-˕ow옯,g #9 +ٟͭ'hxP,ei U/BǣJ|HYN쁿Pu> !*chst%rcL,Vs-.@X;o/k +x`n;)\@/.{ qz&|0 h.e0OuRX6SKZRːZZ^z] T >m착n'>F}mt(f2)ԡw߀M ?ÍSŨ@q6ꪏOiTVo޼\*Tn [r/Hַ껵ƧYi\Q]@, ӑB-ZM)dNr3u}dT{yXbp?~KjGп3 |DFo#$<fG dZ)rR6Mn( pe“0֐LpU1.ubJ=qحsPam*[O&Bɥn8ݽZ{ˍ ~Ǩqh%PC3V6>xxA$]}E#.2ż(HpwwNq4M}μtE}BLGGLx:4 GAF.J +|u4~S`rypUM"8 _A RY5u|zmF5پ}بo740N)xmMr٨il77}.eMoH+d?d`a^ B+J/u iѿdzA9 +NTcp{k(^&L +8c @U9W9Q4- umvߒA=''yx F0H ŻK Amk=Ui ՎSA6-)8}Y𭑏5΁3a8tsL3qS`xU~j"qR v,];D1ד~Ƒ/Q 0Qtk": DKو^&>XJez7&3WGφƆsgM%7-o?;ͽ2+vqWvji(]$=8"^ tc6@z s&w$ec(8Bkb 23iy _dQ:b3X(;]XAV A@CÔ#3ʂpU7֠ +z'!A^#BLh8XbF-oHuFۃĭ=> +dxA*mtL=ĦVbri]@,=f"Oޙ@ήL:N9R4VnԵFaWi'Ni&KڜVa&׿f군,qU˩N5ְ}vRΛ +{rnܸO&9((ݷ_ sNOѿI 2,`d܆<ꖐiIbe6X462ǤWF1wG_f>H'rL[AXB_p"VQ$*;y껍&^y]ߥN=u5  +:í&L (3a:Fl"# Jf=: bD;WZ6'3}IilXKѤn +hX8>tf6y34&?V* 6!t5Ѥ&/Uf[OmXeMqr0fn^oީ6ewˌi[;+ֺyy&H<`@?}bS 45e[ a7@1wt,u+.Zb\1{ +Fle[~*o4We/7XsĔ I>ٛ@MAmGm +0b 5,R㈣hNeP > +q"WXTͪa.1J2)w*='9%ڼs\߁MW}n(8JEj7X qc*g1";G|^бMhrg#eɪ;35ӗM̈!4(BH/{al+!=XV[Q;㞸kbV|O }+ wױ +KψsnQ>cT,5lox2Rߠ}k)F;>؂t:GEGu%SB]~wɔ>k`4b̋81-3-6 M*#nj桒z;7LB;#ٶ6u66|'LSEӲ~ZSePЂ$fbX.ЖNjBӸʉy9yZ 1v`>A߫54i]~۸fs/S5RpNJ#6Z5I]/\f*ۡ:ʡ2X@(ҧfoӘzS6o`9q:=y,Ed~zEb4R⿬3Kiy>EgV +S⾸?&ӥkw963™I9{ OY߆%~so޸Xgr,:bYwg?h7I݇ )Yj2D&l$§@ x ;77ZEG`@c+Ɲ/3GeKxL/Mv +Ye5zi*5s  mJPjԮV Wvɚ[1z755ڜP2;T( n+Jd ) uf {Vs0Ԇ*QlK +y-n +85Il +[UTXY&"u!KK^DHyS@0ez0Z`BZq"T+Z=@ `U٢ +ʽD&n Į(ڬTVT~ǓhqO?GJi! g²E}0 tyһ#CX7p j^ f̑IDI:6pk{a[`I:-`~jІQTct:Ǣ!?U w4QAa@V)|H:~R]|'L"ίgbfQYʼnȵ;@0HVEru+ WEiG8/?|k_zo|[|oDgzFN{/w_܋_=7_g08wAF#޻!'~{jC +T lHT[W1r18XUc…Ng2xYDb޴+bF97 qU?'$ܷިP`Z%ɍERikhU@`zCw+/wap_{|ݯ~^vyҞ?憣F튛q9K}.kT.p^=V$t܋&M̺o~ݯ_Ͽo_|ϰ'ϵwS+%Nɋ_sF/|~/=!/6S+yO)Lp;Ǫj]4VϔT)' zjNjYS%'h:~/_~ +owְKӞsL݁x$z*܃r4$3R椦7̚d %۲C"QEGB8U$fJ] hjBpꋯw6? +蝳+1J*sKz%&N {Q%AcN&++|!{U$%V nÄY% _o*:D`0| _kMm+WZgMUJK%(9bV:tRjXU"(k=]? ^ftK$KE׉c 5%L=aLR>n UJaCޚ .[ey$x +%hm&c饍 W%&i +W.^oݹS?EzM;w4;ڎ6Q#%Gf,r(mq ,+$zr$OVrN})DQ*lTj +B"@&'DHbzq*%[Ϊ%4 _wRDm qJ_X7x 8 U0^SSĂÞEg#q 1aXVN^~My ¥3W=a.PFӹhb؝Tۭ-VGq6w [KϤFolَR,(0`0(njP/jRJ2$?Ͽ~[C_{/ahşo!E~wuXa}_;whwg^7y$݋ূ"p?ҹJD*[t[`\qΚ ]#w> S[X"rȟ`K| sM7u:7M[vzU=/\O-Ρ3.-H6\HTcvۊv;:SoJ&Q1lZvT9yR -ZOZ +`cOzY"z։}yC-m4"W5,Bl sL4ܚS{abŭ&p6<'Ʌe\FdzxtSѢ8j㪻U +&EL3Oսg9iu_^x@1gzg/=xs׊"dAA05 +h0|f%X2 >:FMC?,R?œ"P# QLR֔t*˜Gp[է.+ϪyfY/@C چ.*^`y*t\lQb8fڻ,e ;{ۘj&Ls±G=W& ;'Խ4Y:${6G~H^> z僈2n7C4kxјSq-uOhiI'cJnq{n&6 tƑW:[_(jZ=Wo +5W+Q7*1iIAʤaK2ULnҼ`)F /A'G0}r|Ӈ,Fpyv4Ws59=r.6<܌C{)1[:H\iZO{M@7 $)'y5Ko7Z ͝Řb`o|C}!kӽ}󭯿_|i꽼"C~{(y$Ӥp>KK˃Cm ÿ+U3[qem.oP7=N-Af74vE~B¹bV#áw0ŽX|zSQ|hwzgriB=;'Mst){'Pq}XZ^&_Z͒yfVJ&|9CL֠tc-碣+ `AW +ݼ~mwnm` +&CqU8Q3wA.|cAPVGA^!cҬQ?{ڊrXkr}$!hx{k *}+Rm&( +Yc0K 3S%™"KL5M}N-Rv`i;֓HJ")*:k n╉Zvsics L040+!.>,䀤;&şJ*w4o\:Q&KFV+a.[$Fʵr.s`fu ^Cj Q9̠f = @٬B(֕j|hmjao)^>kMV-+dPϮdok{Pi^o?"0wqv S{j,d{! \ +Ai\ + *2FRYK;xT x~ȏ 2.V^A/f]n"@](E F Ʌ(2]68ƞ"c:۟DfM +\XJ9\;fR$;{z|R|Da ho[^)`/XҴ0LB{TR* } +)--1k/͎y!,J31i hMx@kC {Q3q?V6g?)J={ykvYa&@jrMw<.oҋ[QN<~#t 1N܃'RI]!^|QQ^/qC !cԍw%A^Wy3&&}Agj^wPxBNyX['-Z䌃Xⶤ2g +y1s5RP}/U $-uqgk%^D.U&\?@3M7YI!z(b%tU~{ڎ&0n=^쮯̆d::gz9% g:H~TCKb&wooW&:-DNO7D#JR1U7핪u+k֫Ur¤bڕLqmn胝f5IHkLN~9.7lZ߁10#H䴘-̘ͥf7hGA1߱U 9@뷛)u+ }~M1U;:JO7RCfvJ S)k7!^D`jgLSiĬd|yKfbnyhc9HhUԄ[OtJdV3[} %塟@nEm? @ +ä>> G^{DVYLM(3܂6 ]z? +&]AwvflM<L@8& EAk "=lB+s*eRﵯaOCV8C^p`-yP8k"\=ƍ}To +ˏu޾DL0(ww[؀@wZU%>TΨM NG'~4N` ="bAw`gSܳah—5[<ǎ<eۣ`~A6<֦ʋz=A]{pV.|,z;)? FbQ(T\ Q/MFK@-mJz%n}ȋڔ6lɉku`8iӱܺ~sD ˻쪉(?gCNEhNѺo>I`NY>zbjF)&* v`pHĈl_~;µbsqa7r۞):^BEf2Ȯyч9Ǘ~$=7q7oM(/Z~v-i'S$7nx'w96Homgh ^ +9?"{q$eEYΜkyttMWxJ9^˞؎q2d8ɝ#i:ޕVc8k"< j/^72.s#QBpAM(A)ZXxmAK%"[x^DJ9l٘5٘ړ5JF0JkXŽ>StnT\ ܅o \f\}V8/KDCZ5 +;`s9 d:ib,JV4b\1B(P +#nk#'6ܼGf$|cњԖr[+Pc;ɢC\ Vu,x3lʲ^Os: =rRN7bɾ Z +r >R*($eRC[iA.ITy!Y0[^{ÙW*ZQ^De(Z vrEUҞqRJ GUR]ٖI'T)JS)l0vu2-T~y l`{n(X wLT9E8{=ɭAN5)rGsVI;҈Nb%M7XcBT Y"BvaxZFN,b8$IVZ d869C#Ŵ̜$='*BUs6X]ag)L)I%yQܓЖxSP0jXa$ +(=Q< Herm#OĦĢAGzv88M&3_sadCJ~w_xVz:$> J|* Ði$T/- ,PI[^ #TaׂjM9k+ +jS^n+[Ve +7!H}gQ/PH߄\-6Ђiv(\Rٮ&1 , `scYwҊbc;kH7])@3rx r-@l8UpœB …k<\@b[an%3x$, 1=[c=tw᝱nհL/e!:mr 0ڣN'd(&Nw@/o9&ew~y8gjmklPC\-FP]JNX%ֶ+Hx,)J)VڦDlp;E7}pkX!IUSO32Wkc u=1 +2:-Gd$P S9,mlј 6_l28IhBUwPSH.faѠh{=ҌDNƯbp Z  +YApY +Њ +J+UzX}JDh%,)+\9-]01)rDӂTW6|'6!gji-<ө IHIB?=ӎ\h=&p9d!{BXSnybpcz9T6yR'6McaxR3LC^T"__(|&)$c =(aSB1@RI0 + YT\r2TX+nv^ؙfQ 99{ȍ2Z^Rp$ύHˆ5+srd8p#ZQIh&<[,MX2d+꧸h`S6J]%\ڟBݵ[y*r"\rdєR_WrbSo#?k?pbrTU-)ev3H 5jB]my~Ee'/EV;cgG]W6=ziS94B}]Ǜ؈d2* ^gQ5D8K4MeWk0*z[fn0 YmRi#mu($z].v=8ʦdGcJ͔gwk<G?5Z"'&0LW)_GGºQ%0UJ̆x+'C;1Pyzv^1Ƴ 4FI>SLoWm$Xt#8u'.n2Ku3}?Z9qPlƪP<-Y1k X67* tZEž(/Qi96ѶlneT[fܒV. ;؃5k1TCЬDK;v!0qcoH$Tb!a{CB8\A]򪗒5ISq4F:e5 $̥䧱:QňK%,QUH +ڦ;%[=QY=YLS枆2<{>lL=<pt!>N=Pyo" +ܱ 56%4!qK/N^7,vа=5zaQPl=[ BXz`"R|UvlݜʧNq۩:W=#Jkj ,M#Z q41L &rj1}Xǵ1Okz/bkDK A7P[o,kn N6NYRLHJ}IjqF1]w_iC7M d0&'POBǬXED=^u6=!8Gu`g%D5&9-Ql .jzb˸}nXPPs&Ko<& 9oإֈb-FTDЦRG !;k&υG>KK%iFjn۟$mN{гs>dn{:kS~kJgK}2佷ʝAî( k|@Hƌ +UFָH*ě.{~ wüv@}-98E5L"Л/ +i]p p@"Ti@wRvi_6^Kg4~_~'?_3^_f7 ߰?oN}/?ߙg1i4ϼ=p^ #Wteet=\ 8W~Vju +J*-i@%aB P)@(NJyR?[g8z!naFhvBf.mqbPzς]7-lȽMKC.XX("IK1b+`+m?S^ϳ-~A1fY 37 g+Q@,6Qu-ah0!Za\gwDf<Q[Cdnťmb !L f!XZ f vd:V,H )E;ٹg3^ÿ\;;in-4qj_1hwK+5bͰG2F WCT o=Lvg+Nv+gY4: R1wOwcUXMkRh{[7E 1 8$!,͙%'p+FΟG:_??ߙRlU=~ɺy%6'Z[9س=k< i5xqrTVEk6le Q/Ȳ{.zhxv"5w,U`+$,E2TPqӦ≫#u K¸xY%R.uS铜nȩpۻw"4A.Dh1RmecŐNpjljN K;.PF`=>m ˨(q0L>( /!%[ -|EA7 ᰏtf'l\~B@V9X4(aKNzPn"BO?JM ҍ;ZfwܦF٤XɎ O> _Zi)gf96WO \%Rl:+YJ*;.BQ֍M[pmPʬ+1Brإ#DJ ;p7?+G~'oۜ cM$E*dw@Un"X)+N9Qh*0I1>\lpP 4 oYI` ebKT"R,@JtHPA $ p>pP.GΓI9c+ Xɥ %A [$ˁ0=Dz +4EɀP=55N'Yi{^$xv<7LSߠ;q}X+v M}OMKZQig]g>{ڍPP=]E¦Q}J TrKziT_OV}p~® V2lTpv mv jWhS#fZ\}$@`Q=>4p2}Qh_WW795\C:54JrEfb!rdFv&=UgiNTF㢜:";2Љ&}|rTMW`hv.CXD-?f,F% B3O>nqR'Au-kHEQ%'宙4ILPj|kAL'*wb} \&@LHb [>%a)Y?EbIH{p>1rj|j4f&J^-xP-}O熱eӞg O,Œ߼>4_-1gD+tsVt۴"7EEM\6M a+FnMW4LPjKճXirթ/KA~MF)&.ddEnJ,iyd9-x,ʖ@-g4ES%$a9#2cT+`j +.lBBbC&x Y6J'^kie͔0 o_:-E/̍Z8ll?>;?:z糣w?>|%x_.u2`\2T5h''TFNgr8'Y`dS︋Fٲc]JRv[g叿&!.[Ս3IiUyK^J%.w8.ゃALz E .Z!UCfyyg lVrͫ:؍:HpU>) +}c¬$RY}vh;!j&T5J9_Qpq9>ѢCd%͸P#r)1q=-1fAvrd3-YmHY|7t.&~ C*ˀ^DO&֏ cT]3iEtIf7-Y,d8u/[AvWް1؇8^y0@#D f{~1W1 Cl+DW2:.ב7W9GZ}aGG|E!~D$VՏ^rBzD"D,GwYL7x JcҎOn}~F>&i2@^RRF#}H\(gP +Ǎ,ʆa襸AmR UJ(̮Χlt9Wt[6.fa2[dw'!LC}Ɵ˨~KANq-{wINcVouBaZB5ɖ@^JvhBi\ViD|fL&[iHhm9RK*Z]#3s6F}iѡ|M; +M׎rj`NǍmO59g~}?="vx8{DLmsc Z,i3Ȫ@B󚇼1EO=Y_u& H>W_<凕`?oWG^c;}72+LBF]πB>UwurM(qcb9TPW˭d:N9Gy![8tbEU}^QWMfj+I`5=/d싏f@TJ#y*ѡ ԰}N +ǺRѢV{3NsidD  gH4M$Q$7529Y;=jIdb=K,4 xHdLOxct?)ɡ>O)_?/p (.Kv7LdD;sqm=nY^C^fj+썑iq5\3yԽje^\kb)o8, 81p\q\^ *F&e`zR# YϽ4\*ꙵ:li|gs{YI;2on^$@82{oo…  7 R(Ij! )Oc\vKaT ͊e=).;¥cbi7LА|SdU./-)]^\wi\-R]@.G)I(Yr (uR+nQ~SCs.7q+]^XVGyqYϕ<\+UZ} jC +s9$>9}bEM ͱ܂[RW\ɐsȝϵbI\y&zCs(mCY*&_4-‰5w/34~g_YY76wc1g t"mJnM8ш3zuFYt&3?|{)o~x EV.D^\XreS[4VANB,71:$0?/!Ǹ sK +1(dAskZ^_gZeؿ_i}h5@S(Q5<~bӱ\!ׅA&u&R-:Bnpɂ]2YhT ,\kiOGCϰOF?Z@ +]){JX(UjA J͠ΖORϛ_xˏ??sp7"$wNr}'zhCqvCM/x~!_^yq^; !`?^B x vG"ͯՏEɆKҎ{S S +t@o{ŹM֕~opɹfu5@)aKK {a?0)0<H{{086n8.TPlLNQb{{HRE0΋5EYOLFWaͭzusFN4,aQ?@RH5'*!p]JLβv;l4Yxя~ݗ޹x]_{D:[`z2 +Kc2'EdTkd[EXqnX- +܆h&Zդ\6mfP15 +?EB^2t(+WؘFFHGȧ*C?9iH+n!#Mg`(%$jIs1yBJ-ۊ)o1y3/= gg`6vf-J"!ґc&\3pNT뵠*8[bswȲQ;{`?O%O>hظ푳C֡2>~}M7z\n5C4@W)ͱMdEާ_K/P~zH1Bajp,y?Z&KQ[k0"RHp~?y"[$G_|Σ{;|o~%>$?j(Zyՙƚj ?!Bf w#]ˆ\Ea')ZK4}ZZڈ 55me(hKzsgʡ#Bfv=f Cٯ3X8 t|BsJ:$04:{0=0>kpn_u+i(9#2Je:Ir $yK=ߨ35 +aO!ٜ@YEǤF&49閆oZylVtԦ{x_2Edfn%D^|‰kx؋9%DYjįVH{k:\b| P^īIk>-1[9v' $hϖH4oj(y?3C (C[@9`SG [z2~&=44("IYMi쬥]''؋|_?yUTݗѽ>z{~/?yro|G[8|O>?=z}/^g?y}xOG]@ᅡZE<_|oѫ?BT&Ncl慮Xzb 68ޗC,1|5p$~Ç>6zxGyE߾^}.ⳗ)~$ /z{S _P>G/ޟΏP˅Iu%^ +a—zO|/h|J'UBAw棆/S@o>$[|/|GuύO,>.s$G?IltQ]GzgA4l]!;)9,S* uGoA*rHxsF}xLJU8G?:z糇g%N*.u.:/5Q6-g%Aaq)8ZOxemɚ +tOzqU +Zˑ_ߪCN1x`v'%lcB ^lvttLB_Ȼgq?5s|1W0?/~*'kfd6'9Q`O.ڒɦ{B (; 6m`{.mެol?7`iQ޷(&AZ^!)t2l6Ą/Xq3Fdr:%~}.腛s9KvelpD|ߖ-_緤w]n?RqKmоo)d +qV:C7pT&N/ C۔e/,WD/\Xvy?Ңas+[ޕKOԽRa & Ef_oD;kg[3*s'W?ɞQ_Qn%`ӱi`Qkߊ1vtlp԰b`ӱ9061G،@@,Q,p+uz<u6s6?B&/sN^wyDЖ7Y"s7h{f'2Bi3BS +y[4Ri ɰCGV<>e4s2VёǕtwS2*t]x` 3@d;c@XD,p#Z4Ebb֘r m.Yv荐#]>hK&C0]"j{Z21E&&%u.qW1e:dk2\ΘW* 2$ +>wsؐl KT%sH3 Ffa2Ffϳ̒3l{~ÐKS5HS@ +@Kb"iNQM0#YG+ȕ"Qi|PaU,RB*<*!H"'-§S(Zo| `P/,:pe\цɓ/ܼ`h\Q7.Y7R.3SY7R^RF2CUi5 EU/`r'[9bWrXy˖_ n0޲L&a|n E@i %rD!(EPTMBIPXf?j+JP[ZYOR$vBcߓ$7T2ԌY}$a'T݅cdkzVyb開OgHf=)U=!N6肤@v-6GcO^Wj-e*K`(>rw;ۊX@4"p*)0^m!|5b6NaXYm?@s211C +UrBMzzxiO\T*#<<_ahQ*$lMEԏs-Dp'钵e}'xLux^91?47=}:Fh֠!y'"ibq +NDT!m㵉ݠ򽙒V+*ShB#6am%%3Ϯ?N֮ niɗg,-ÖT4lYuPA&%uqdov|SVTju +N?OM7 +M=#U p7:Yk;k}ԥ#|cvi/p& T %(&Ykf&wNZa + +AhEr B{ ejߍMS +",H*QԪOt- ЩX}*rJ)VdКy*MH!2ZC0p`OT%E//=i%_eQ\DMmv+ڸi o&6+Cd$>JXW$EmHijSsQ|ߔRq Ey3CEW+ʶtC3d2y[M[BDZ] O= PcKh:jcG* /|/Mxf(,#@ղ@\,Z!QC|^M$ܚ'/i 6pb!xT_Xo.GDNf-;_(HVV#tvT4% sEWؠD8AFv C*Ùo-gѮRY0̰OS:ʛ k?<ӫG/ޯatxBw6$?~=vO_{~?)=FwBKp ʹyS nÅ܂hccxoLŘ0[ZKhķ!Z?LKN)&Õg U~[3m 8gaz6ަupzh:Ls^PXq5`Z 'p``0gO:Iw#S@)5E^oc)1nMlQ|&:z%JU/zDU4A2#gHHPs'Z9eX|I#:*bA5RVeD;l(8}:;N +ldvM ىfGJV>?`u4dB)ɋZL4ªH"2X =sR1ZEQC# 9ħ.Ak&pPKh tDkIZHn *-#dSɨΚT$L_m; |TGhЄXgv.ܱ cΌTVUP=v],UlHz'fv+M/ty0#$;~[>><}rЙ.~ + O?#/7̣:寏^*~y壷?$z|-Vw/uVbc-n XէEYR3]1;)CX`&+>U )6z sޮ0my-6;,*լ/V6mRkD +(bmMh[H^3"d#ڧZlnk5H䜼D0XNdRGьDi4ݞgcZ^%^i׮9#$vO#;QطvaqXk]NE]7D ڿ TҥڋDȱV 8bcdRbY {1ޫ%AY&8wBQV3;zOI_4 2ϺwTMnyؑuͰ{} =2k0-|GZȑpGDrcC_әZЊgڍ, +J *Xa_%D""Aٚy_[V63gjEۉX,;1"q^M H{^OWjT$PJJ|Ai-İAt|TȴxQ2͹5oij \?;.Ӹtʓu,W7=4:zg(#/BW 8?̥hMbţ^&?|գ_ ۟?|%XruZZYUNG  y: @7OZWWW~ bϢt[1TL&s Hᥴ$?ՙuWYFRkc "V+q|P[~%W v o?Co&:9 +rzG}W&[ljv vslV luwEl1̋[fl ̂mE.:ZPx0vy]hxSjc3NYZeyN BD.M 97Q,m]$mP\4OnDTwL1.i! I ti@CA\!)Vkًp0^u*M4:f2Wh'1#ړ)\{Q*Ƣgݸ6QQhFޮFHUZ"DTzP0@A48/kB  t3)`kk+_lկZ.T(ٙ)_ +j>d(V^Heg O$><5=BzxxB¥3dW^?z?G?mZdW^U/b.ZB5:3Z*$F(3V +".Vd}?"4O=|STU%oDU%Coq5(wHCWw`joa8tƲ%:}n +Q 3ayg+Erqy9(Hn}"̖vimsi6R '~VEDYWx'x_:?].x}GG~'/M{'4 |E۬xV4>RYVr5B\Gl(Ҵ3ihg"sfHkLԀ?bK]` +#QQx (j&XU֕ojk+'r¹|2!8e1rKI&x,.[\m"yOm2Hj.~~4kv2gcxArC'v|!V:|OWcYg(RyM%qq>v~>\=r~uʁdktFzm$`BVKHc6 iݟW,d$h\f,V )m--xbQE/g]^Sp>k_Pw821dDc"448M2Fir&.(6!MkVk7U_2"(q dҵ+s5@p~bٝ[pTHV+. }ÿ@.O$h1q8&t ɱ 4_*QhԽSn +~FZ]!^4{ews=(\ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..19f93be --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +- 开发环境 +> macOS + Docker 部署 openeuler/openeuler(详细见 Dockefile 以及 docker-compose.yml) + +技术: + +~~~bash +gcc -o server server.c -lpthread -L/usr/local/lib -I/usr/local/include -lgmssl -lz +gcc -o client client.c +~~~ diff --git a/client b/client new file mode 100755 index 0000000000000000000000000000000000000000..030db2339a99bbea6a6ac5050a82217e91d99ba0 GIT binary patch literal 34648 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 KzAT+D;rch;8XmC# literal 0 HcmV?d00001 diff --git a/client.c b/client.c new file mode 100644 index 0000000..f0a6545 --- /dev/null +++ b/client.c @@ -0,0 +1,175 @@ +// client.c +#include +#include +#include +#include +#include +#include +#include + +#define PORT 8001 +#define BUFFER_SIZE 1024 + +void upload_file(int client_socket) +{ + char file_name[BUFFER_SIZE]; + char file_content[BUFFER_SIZE]; + + // 用户输入文件名 + printf("输入要创建的文件名(不带路径): "); + scanf("%s", file_name); + + // 用户输入文件内容 + printf("输入文件内容(输入完毕后按回车结束):\n"); + getchar(); // 清除上一次输入的换行符 + fgets(file_content, BUFFER_SIZE, stdin); + + // 以file_name为文件名创建文件并将输入内容写入文件 + FILE *plain_file = fopen(file_name, "w"); + if (!plain_file) + { + perror("文件创建失败"); + return; + } + fprintf(plain_file, "%s", file_content); + fclose(plain_file); + printf("文件创建成功,开始上传。\n"); + + // 发送文件名到服务器 + send(client_socket, file_name, strlen(file_name), 0); + // 等待服务器确认收到文件名 + char ack[BUFFER_SIZE] = {0}; + read(client_socket, ack, BUFFER_SIZE); + if (strcmp(ack, "ACK") == 0) + { + printf("服务端确认文件名。\n"); + }else{ + printf("服务端未确认文件名。\n"); + return; + } + // 发送文件内容到服务器 + FILE *file = fopen(file_name, "rb"); + if (!file) + { + perror("文件打开失败"); + return; + } + char buffer[BUFFER_SIZE]; + int bytes_read; + // 分块读取文件内容并发送到服务端 + while ((bytes_read = fread(buffer, 1, BUFFER_SIZE, file)) > 0) + { + if (send(client_socket, buffer, bytes_read, 0) < 0) + { + perror("发送文件数据失败"); + fclose(file); + return; + } + } + fclose(file); + // 发送文件传输结束标志 + send(client_socket, "EOF", strlen("EOF"), 0); + printf("文件已上传。\n"); +} + +void download_file(int client_socket) +{ + char output_file_name[BUFFER_SIZE]; + char file_name[BUFFER_SIZE]; + + printf("输入要下载的文件名(不带路径): "); + scanf("%s", file_name); + + // 发送下载请求到服务器 + send(client_socket, "DOWNLOAD", strlen("DOWNLOAD"), 0); + send(client_socket, file_name, strlen(file_name), 0); + // 等待服务端准备完成的信号 + char ack[BUFFER_SIZE] = {0}; + int ack_read = read(client_socket, ack, BUFFER_SIZE); + if (ack_read > 0 && strcmp(ack, "READY") == 0) + { + printf("服务端已准备好,开始接收文件...\n"); + } + else + { + printf("服务端未准备好或通信失败。\n"); + close(client_socket); + return; + } + // 创建输出文件 + sprintf(output_file_name, "%s_output.txt", file_name); + FILE *output = fopen(output_file_name, "wb"); + if (!output) + { + perror("文件打开失败"); + return; + } + // 接收文件数据 + char buffer[BUFFER_SIZE]; + int bytes_read; + while ((bytes_read = read(client_socket, buffer, BUFFER_SIZE)) > 0) + { + fwrite(buffer, 1, bytes_read, output); + } + fclose(output); + printf("文件已下载,保存在 %s 中。\n", output_file_name); +} + +int main() +{ + int client_socket; + struct sockaddr_in server_addr; + + // 创建客户端 socket + client_socket = socket(AF_INET, SOCK_STREAM, 0); + if (client_socket == -1) + { + perror("客户端 socket 创建失败"); + exit(EXIT_FAILURE); + } + + // 设置服务器地址 + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); // 修改为服务器的实际IP地址 + server_addr.sin_port = htons(PORT); + + // 连接服务器 + if (connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) + { + perror("连接服务器失败"); + close(client_socket); + return 1; + } + else + { + // 连接成功后打印确认消息 + printf("连接服务器成功。\n"); + } + + char command[10]; + while (1) + { + printf("请输入命令 (UPLOAD/DOWNLOAD/EXIT): "); + scanf("%s", command); + + if (strcmp(command, "UPLOAD") == 0) + { + upload_file(client_socket); + } + else if (strcmp(command, "DOWNLOAD") == 0) + { + download_file(client_socket); + } + else if (strcmp(command, "EXIT") == 0) + { + break; + } + else + { + printf("未知命令,请重试。\n"); + } + } + + close(client_socket); + return 0; +} \ No newline at end of file diff --git a/files/20241217102043/test.enc b/files/20241217102043/test.enc new file mode 100644 index 0000000..97cf676 --- /dev/null +++ b/files/20241217102043/test.enc @@ -0,0 +1 @@ +sQ÷W%K)$o&TIwɽ5m=3o𯚑g \ No newline at end of file diff --git a/files/20241217102043/test.gz b/files/20241217102043/test.gz new file mode 100644 index 0000000000000000000000000000000000000000..af6f2994b31344c07a1f7f9df2b73c8eb8b4723b GIT binary patch literal 71 zcmb2|=3oE=VMYUn^Z$!4pAEcpc)Mh{q-yiR``({5RsO!+lCKux+4}Qr`N_Se+jDKN Z{rzE_f8+lB59?=5OlQ2cKi>eT9{?N~Aj|*& literal 0 HcmV?d00001 diff --git a/files/20241217102043/test.txt b/files/20241217102043/test.txt new file mode 100644 index 0000000..7f5281b --- /dev/null +++ b/files/20241217102043/test.txt @@ -0,0 +1,2 @@ +123 +EOFDOWNLOADtest \ No newline at end of file diff --git a/files/20241217102536/123.txt b/files/20241217102536/123.txt new file mode 100644 index 0000000..e69de29 diff --git a/files/20241217103021/321.enc b/files/20241217103021/321.enc new file mode 100644 index 0000000..a8e1975 --- /dev/null +++ b/files/20241217103021/321.enc @@ -0,0 +1 @@ +;;Xg:L@A \ No newline at end of file diff --git a/files/20241217103021/321.gz b/files/20241217103021/321.gz new file mode 100644 index 0000000000000000000000000000000000000000..8efd164a144f81573e3670443600054d5f95dab5 GIT binary patch literal 37 ocmb2|=3oE=;oCn?M4hS%JaVmM^~%?^GV`pN7;4nA-w6O^0rZ^>9RL6T literal 0 HcmV?d00001 diff --git a/files/20241217103021/321.txt b/files/20241217103021/321.txt new file mode 100644 index 0000000..3ae0b93 --- /dev/null +++ b/files/20241217103021/321.txt @@ -0,0 +1 @@ +321 diff --git a/files/20241217103853/test.txt b/files/20241217103853/test.txt new file mode 100644 index 0000000..ec22773 --- /dev/null +++ b/files/20241217103853/test.txt @@ -0,0 +1,2 @@ +123 +EOF \ No newline at end of file diff --git a/files/20241217104148/123.txt b/files/20241217104148/123.txt new file mode 100644 index 0000000..e69de29 diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..c18c710 --- /dev/null +++ b/init.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# 更新软件包 +echo "更新软件包..." +yum update -y + +# 安装编译工具和库 +echo "安装必要的工具和库..." +yum groupinstall "Development Tools" -y +yum install -y openssl openssl-devel +yum install -y zlib zlib-devel +openssl ecparam -name SM2 -genkey -noout -out sm2_key.pem +openssl ec -in sm2_key.pem -pubout -out sm2_pub.pem + +# 编译程序 +echo "开始编译程序..." +gcc -o linux linux.c -lpthread -lssl -lcrypto -lgmssl + +# 显示编译结果 +if [ $? -eq 0 ]; then + echo "编译成功,生成可执行文件 'linux'" +else + echo "编译失败,请检查代码" +fi + +# 保持容器运行 +echo "容器初始化完成,进入交互模式..." +exec /bin/bash \ No newline at end of file diff --git a/linux b/linux new file mode 100755 index 0000000000000000000000000000000000000000..44075491550041ed5f618d3113fadbd9e368857b GIT binary patch literal 72888 zcmeHMeQ;FQb-%kS1Gf2)Fg6%4TE1-Tn6&_#2-g#y#D_$}SA^n{P9{&Q-6ynRwY%&- zVaa6bHFgXJZ1f5?_ya6sTocDOBy|88#bDQ&Q737K+D%H^#Iq1qh$J({P2!@|^7fqj zvASCAbJOW`rhlBLdGFlwyXTyH?(crQr@Id=Te;lp@i29H*$IYPdaS`A@no#>#z7l{ zRkCZD!KSfW*a)yHfm_)bvZUly>89i;u*J&vLTfEk0?J$RjyC zyWl>TIA3(Z=eytlGe6vg*T(=98~0aTaNKr_+1I$>w?G^}+=bV*F7}^*VX^pk0`4yi z0=nT6hnXwtSD9feX>Ew4Y%5v6YDqL6v+9G5QHz=8hL(8DOxeMtZJNTgsNuTWs`>XU zWJxO+W)CDIw#8af85r@xPV51XiS6UMm+g@DXLD6(#ys#skgsm8pVRQ^91)LH}7kYIy#Y5BMYvhfw*;ui^Ul#~cmU-@g?auHI=FtWv|(w*umZhF^<- zylOT4It7AUtKrvc_<9W=t>FzCK1RcvHGHgwCp3JVhPP?B`i8*jw1$^y_S-dF-)A~B z{07Z_zlP&Cgt|I4{6+pQzy{HGGnWpV9D}HM~c|dI*NGzEg})9`W)zoOxO4Zo`4`nq7A!TCQ!vmd45Gc~+a!)I%Fx!?D*fi0)M zJK$puyp#40Y^ckA|WzefNeKqKfnqCL`R!zSj z^h28d7ofkZ>E8tXf~Gfu?)43}-vs&$P5&0?)tVjyy;0MXpl{Xm&7dFB^anwISJVFz z^b4B46?AXOVEd1OK10)YfL<+hoHw_y^!wA`&idG^=Y2;1g_+Fhh4}|_u7jPu*YQDJ z3ET&AxqUrwqt61yCZNQ*nSuGpep}OT!0YB0x!gp=)O>`OK?mzBao}Ivj_Dv5GxnP^ z@Nd|8@R{CM(;oz%D?ZPw4CXPP=LPn##(py6(}zB&8vXFj>7Q2Zc?aw-fN%Acn*K)a z>&^ROn*&?k=4xKh?m~Pt+m!JLIU4m*Y?B{#kh{>1fj#Q@ z82~!$=X>EDFrgJBygMcw1PSk)2^T@ayK2H$J!~($<8XWLU}vT}KAvZ~?&~7o4#sYA zKKm@UubXr8I_Hzyrf+dF`&hs5gYq8MzxD2P-SpaYU1p!r@8SLNbY;q`x*(T%FTyx; z+sG`H7jUjY8EwD7{i?dA=i4uLJ_H*Nj2FiJ4U{wG#p0Gb8K{H) zPsl7`&V};y`^YcG{5AUQWc`_)MnBYlJQw)E@_DdZ-0ZJJdpQ=+U%zv&%z>eVHhV?f zP5C}F_?<4m;G0D9=6Bu!ePGK6d>*Melonu(FJYY!MX5Hcgmp+ z1Nw&XhSi^$?o7lSWQ;3d18?{D)qGX$%m9DRkF

  • ~MZ(%2^l2&P-ulINyFH=39r? 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 mU%=l(Ro`|0N#lh72(@v^N`Veqmbv&(n; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 线程、信号量全局变量 +pthread_t thread1, thread2; +sem_t semaphore; + +// 消息队列结构 +struct message { + long mtype; + char mtext[100]; +}; + +// 函数声明 +void file_system_demo(); +void thread_control_demo(); +void process_communication_demo(); +void socket_communication_demo(); +void encryption_demo(); + +int main() { + int choice; + while (1) { + printf("\n请选择要演示的功能模块:\n"); + printf("1. 文件系统操作\n"); + printf("2. 线程控制与信号量\n"); + printf("3. 进程间通信\n"); + printf("4. Socket通信\n"); + printf("5. 加密解密与哈希\n"); + printf("0. 退出\n"); + printf("输入选择:"); + scanf("%d", &choice); + + switch (choice) { + case 1: + file_system_demo(); + break; + case 2: + thread_control_demo(); + break; + case 3: + process_communication_demo(); + break; + case 4: + socket_communication_demo(); + break; + case 5: + encryption_demo(); + break; + case 0: + printf("退出程序。\n"); + exit(0); + default: + printf("无效选择,请重试。\n"); + } + } + return 0; +} + +//文件系统操作 +void file_system_demo() { + const char *filename = "testfile.txt"; + const char *data = "这是一个文件系统操作的测试文件。\n"; + + // 创建文件并写入数据 + int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0644); + if (fd == -1) { + perror("创建文件失败"); + return; + } + write(fd, data, strlen(data)); + close(fd); + printf("文件已创建并写入数据。\n"); + + // 读取文件数据 + fd = open(filename, O_RDONLY); + if (fd == -1) { + perror("打开文件失败"); + return; + } + char buffer[256]; + ssize_t bytes_read = read(fd, buffer, sizeof(buffer) - 1); + if (bytes_read > 0) { + buffer[bytes_read] = '\0'; + printf("文件内容:%s", buffer); + } + close(fd); + + // 删除文件 + if (remove(filename) == 0) { + printf("文件已删除。\n"); + } else { + perror("删除文件失败"); + } +} + +//线程控制与信号量 +void *thread_function(void *arg) { + sem_wait(&semaphore); + printf("线程 %d: 信号量已获取。\n", *(int *)arg); + sleep(2); + printf("线程 %d: 任务完成,释放信号量。\n", *(int *)arg); + sem_post(&semaphore); + return NULL; +} + +void thread_control_demo() { + sem_init(&semaphore, 0, 1); + int id1 = 1, id2 = 2; + + pthread_create(&thread1, NULL, thread_function, &id1); + pthread_create(&thread2, NULL, thread_function, &id2); + + pthread_join(thread1, NULL); + pthread_join(thread2, NULL); + + sem_destroy(&semaphore); +} + +//进程间通信 (消息队列) +#define PORT 8080 +#define BUFFER_SIZE 256 +void process_communication_demo() { + key_t key = ftok("msgqueue", 65); + int msgid = msgget(key, 0666 | IPC_CREAT); + if (msgid == -1) { + perror("创建消息队列失败"); + return; + } + + struct message msg; + msg.mtype = 1; + strcpy(msg.mtext, "来自进程间通信的消息!"); + + if (msgsnd(msgid, &msg, sizeof(msg.mtext), 0) == -1) { + perror("发送消息失败"); + } else { + printf("消息已发送:%s\n", msg.mtext); + } + + if (msgrcv(msgid, &msg, sizeof(msg.mtext), 1, 0) == -1) { + perror("接收消息失败"); + } else { + printf("接收到消息:%s\n", msg.mtext); + } + + msgctl(msgid, IPC_RMID, NULL); +} + +//Socket通信 +void socket_communication_demo() { + int server_fd, client_fd; + struct sockaddr_in server_addr, client_addr; + socklen_t client_addr_len = sizeof(client_addr); + char buffer[BUFFER_SIZE]; + + // 创建套接字 + server_fd = socket(AF_INET, SOCK_STREAM, 0); + if (server_fd == -1) { + perror("创建Socket失败"); + exit(EXIT_FAILURE); + } + + // 配置服务器地址 + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(PORT); + server_addr.sin_addr.s_addr = INADDR_ANY; + + // 绑定地址 + if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { + perror("绑定失败"); + close(server_fd); + exit(EXIT_FAILURE); + } + + // 开始监听 + if (listen(server_fd, 5) == -1) { + perror("监听失败"); + close(server_fd); + exit(EXIT_FAILURE); + } + + printf("服务器已启动,等待客户端连接...\n"); + + // 接受客户端连接 + client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_addr_len); + if (client_fd == -1) { + perror("接受连接失败"); + close(server_fd); + exit(EXIT_FAILURE); + } + + printf("客户端已连接。\n"); + + // 接收消息 + ssize_t bytes_received = recv(client_fd, buffer, BUFFER_SIZE - 1, 0); + if (bytes_received > 0) { + buffer[bytes_received] = '\0'; + printf("收到客户端消息:%s\n", buffer); + + // 发送回应 + const char *response = "Hello from server!"; + send(client_fd, response, strlen(response), 0); + printf("回应已发送。\n"); + } + + // 关闭套接字 + close(client_fd); + close(server_fd); +} + +//加密解密与哈希 +void encryption_demo() { + const char *plaintext = "这是需要加密的文本。"; + unsigned char hash[SHA256_DIGEST_LENGTH]; + SHA256((unsigned char *)plaintext, strlen(plaintext), hash); + + printf("SHA-256 哈希值:"); + for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) { + printf("%02x", hash[i]); + } + printf("\n"); +} \ No newline at end of file diff --git a/server b/server new file mode 100755 index 0000000000000000000000000000000000000000..34a91e8a11cb6185fd5e338c47c2adba15dd92a8 GIT binary patch literal 36408 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 DYA +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PORT 8001 +#define MAX_CLIENTS 5 +#define BUFFER_SIZE 1024 + +// 将信号量定义为全局变量 +dispatch_semaphore_t semaphore; +int log_pipe[2]; // 日志记录的管道 + +// 生成时间戳目录 +void create_timestamp_dir(char *dir_name) +{ + time_t now = time(NULL); + struct tm *t = localtime(&now); + // t->tm_year:从 1900 年开始的年数,因此需要加上 1900 得到完整的年份。 + // t->tm_mon:从 0 开始的月份(0 表示 1 月),因此需要加上 1 得到实际的月份。 + // t->tm_mday:月份中的日期。 + // t->tm_hour:小时。 + // t->tm_min:分钟。 + // t->tm_sec:秒。 + sprintf(dir_name, "./files/%04d%02d%02d%02d%02d%02d", + t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, + t->tm_hour, t->tm_min, t->tm_sec); + mkdir("./files", 0777); + mkdir(dir_name, 0777); +} + +// 记录日志 +void log_operation(const char *message) +{ + write(log_pipe[1], message, strlen(message)); +} + +// 文件压缩 +int compress_file(const char *src, const char *dest) +{ + FILE *source = fopen(src, "rb"); + gzFile dest_file = gzopen(dest, "wb"); + if (!source || !dest_file) + return -1; + + char buffer[BUFFER_SIZE]; + int bytes_read; + while ((bytes_read = fread(buffer, 1, BUFFER_SIZE, source)) > 0) + { + gzwrite(dest_file, buffer, bytes_read); + } + fclose(source); + gzclose(dest_file); + return 0; +} + +// 文件解压 +int decompress_file(const char *src, const char *dest) +{ + gzFile source = gzopen(src, "rb"); + FILE *dest_file = fopen(dest, "wb"); + if (!source || !dest_file) + return -1; + + char buffer[BUFFER_SIZE]; + int bytes_read; + while ((bytes_read = gzread(source, buffer, BUFFER_SIZE)) > 0) + { + fwrite(buffer, 1, bytes_read, dest_file); + } + gzclose(source); + fclose(dest_file); + return 0; +} + +// 加密文件方法 +int sm4_cbc_padding_encrypt_file(const char *input_file, const char *output_file, const uint8_t *key, const uint8_t *iv) +{ + SM4_KEY enc_key; + sm4_set_encrypt_key(&enc_key, key); // 设置加密密钥 + + FILE *in_file = fopen(input_file, "rb"); + FILE *out_file = fopen(output_file, "wb"); + if (!in_file || !out_file) + { + perror("文件打开失败"); + return 0; + } + + uint8_t input_block[SM4_BLOCK_SIZE]; + uint8_t output_block[SM4_BLOCK_SIZE + SM4_BLOCK_SIZE]; // 加密后可能需要填充 + + size_t bytes_read, outlen; + while ((bytes_read = fread(input_block, 1, SM4_BLOCK_SIZE, in_file)) > 0) + { + if (feof(in_file)) + { + // 最后一块,带填充加密 + if (sm4_cbc_padding_encrypt(&enc_key, iv, input_block, bytes_read, output_block, &outlen) != 1) + { + fprintf(stderr, "加密失败。\n"); + fclose(in_file); + fclose(out_file); + return 0; + } + } + else + { + // 中间块,不需要填充 + if (sm4_cbc_padding_encrypt(&enc_key, iv, input_block, SM4_BLOCK_SIZE, output_block, &outlen) != 1) + { + fprintf(stderr, "加密失败。\n"); + fclose(in_file); + fclose(out_file); + return 0; + } + } + fwrite(output_block, 1, outlen, out_file); + } + + fclose(in_file); + fclose(out_file); + return 1; // 成功 +} + +// 解密文件方法 +int sm4_cbc_padding_decrypt_file(const char *input_file, const char *output_file, const uint8_t *key, const uint8_t *iv) +{ + SM4_KEY dec_key; + sm4_set_decrypt_key(&dec_key, key); // 设置解密密钥 + + FILE *in_file = fopen(input_file, "rb"); + FILE *out_file = fopen(output_file, "wb"); + if (!in_file || !out_file) + { + perror("文件打开失败"); + return 0; + } + + uint8_t input_block[SM4_BLOCK_SIZE + SM4_BLOCK_SIZE]; // 假设有填充 + uint8_t output_block[SM4_BLOCK_SIZE]; + size_t bytes_read, outlen; + + while ((bytes_read = fread(input_block, 1, sizeof(input_block), in_file)) > 0) + { + if (feof(in_file)) + { + // 最后一块,带填充解密 + if (sm4_cbc_padding_decrypt(&dec_key, iv, input_block, bytes_read, output_block, &outlen) != 1) + { + fprintf(stderr, "解密失败。\n"); + fclose(in_file); + fclose(out_file); + return 0; + } + } + else + { + // 中间块,不需要处理填充 + if (sm4_cbc_padding_decrypt(&dec_key, iv, input_block, bytes_read, output_block, &outlen) != 1) + { + fprintf(stderr, "解密失败。\n"); + fclose(in_file); + fclose(out_file); + return 0; + } + } + fwrite(output_block, 1, outlen, out_file); + } + + fclose(in_file); + fclose(out_file); + return 1; // 成功 +} + +// 客户端处理线程 +void *client_handler(void *arg) +{ + int client_socket = *(int *)arg; + free(arg); + + char buffer[BUFFER_SIZE]; + // 初始化缓冲区为 0 + memset(buffer, 0, BUFFER_SIZE); + + // 接收文件名 + int bytes = read(client_socket, buffer, BUFFER_SIZE); + if (bytes <= 0) + { + perror("接收文件名失败"); + return NULL; + } + buffer[bytes] = '\0'; // 确保以 NULL 结尾 + char file_name[256]; + snprintf(file_name, sizeof(file_name), "%s", buffer); + printf("接收文件名:%s\n", file_name); + // 发送 ACK 确认 + send(client_socket, "ACK", strlen("ACK"), 0); + + char origin_file_path[256], dir_name[128], file_path[256], compressed_file[256], decrypted_file[256]; + // 先生成./files目录,再生成时间戳目录,调用 create_timestamp_dir 函数,生成一个基于时间戳的目录名称,并将其存储在 dir_name 中 + create_timestamp_dir(dir_name); + + // 根据传入的文件名以及时间戳拼接生成源文件路径、加密后的文件、压缩的文件、解密的文件路径 + sprintf(origin_file_path, "%s/%s.txt", dir_name, buffer); + sprintf(file_path, "%s/%s.enc", dir_name, buffer); + sprintf(compressed_file, "%s/%s.gz", dir_name, buffer); + // sprintf(decrypted_file, sizeof(decrypted_file), "%s/%s_decrypted.txt", dir_name, buffer); + snprintf(decrypted_file, sizeof(decrypted_file), "%s/%s_decrypted.txt", dir_name, buffer); + printf("源文件路径%s\n加密后的文件%s\n压缩的文件%s\n解密的文件路径%s\n", origin_file_path, file_path, compressed_file, decrypted_file); + FILE *file = fopen(origin_file_path, "wb"); + if (!file) + { + perror("文件打开失败"); + return NULL; + } + // 按块读取源文件内容并保存到origin_file_path + while (1) + { + int bytes = read(client_socket, buffer, BUFFER_SIZE); + if (bytes < 0) + { + perror("读取数据失败"); + fclose(file); + return NULL; + } + // 检测是否接收到结束标志 + if (strncmp(buffer, "EOF", 3) == 0) + break; + // 将数据写入文件 + if (fwrite(buffer, 1, bytes, file) != bytes) + { + perror("写入文件失败"); + fclose(file); + return NULL; + } + } + fclose(file); + + log_operation("文件已接收。\n"); + + // 随机生成加密密钥和 IV + uint8_t key[SM4_KEY_SIZE]; + if (rand_bytes(key, SM4_KEY_SIZE) != 1) + { + fprintf(stderr, "随机密钥生成失败。\n"); + return NULL; + } + uint8_t iv[SM4_BLOCK_SIZE]; + if (rand_bytes(iv, SM4_BLOCK_SIZE) != 1) + { + fprintf(stderr, "随机IV生成失败。\n"); + return NULL; + } + + // 打印密钥和 IV + printf("随机生成的密钥: "); + for (size_t i = 0; i < SM4_KEY_SIZE; i++) + { + printf("%02X ", key[i]); + } + printf("\n"); + + printf("随机生成的IV: "); + for (size_t i = 0; i < SM4_BLOCK_SIZE; i++) + { + printf("%02X ", iv[i]); + } + printf("\n"); + + // 加密文件 + printf("正在加密文件...\n"); + sm4_cbc_padding_encrypt_file(origin_file_path, file_path, key, iv); + printf("文件加密完成。\n"); + char log_message_file_path[BUFFER_SIZE]; + sprintf(log_message_file_path, "文件已加密。加密文件保存路径为:%s\n", file_path); + log_operation(log_message_file_path); + // 压缩文件 + printf("正在压缩被加密的文件...\n"); + compress_file(file_path, compressed_file); + printf("文件压缩完成。\n"); + + // 删除加密文件 + // remove(file_path); + char log_message_compressed_file[BUFFER_SIZE]; + sprintf(log_message_compressed_file, "文件已加密。加密文件保存路径为:%s\n", compressed_file); + log_operation(log_message_compressed_file); + + // 等待客户端请求 + memset(buffer, 0, BUFFER_SIZE); + read(client_socket, buffer, BUFFER_SIZE); + + if (strcmp(buffer, "DOWNLOAD") == 0) + { + printf("接收到下载请求...\n"); + + // 读取文件名 + memset(buffer, 0, BUFFER_SIZE); + read(client_socket, buffer, BUFFER_SIZE); + char requested_file[256]; + snprintf(requested_file, sizeof(requested_file), "%s", buffer); + printf("客户端请求的文件名: %s\n", requested_file); + printf("接收到下载请求,正在解压缩文件...\n"); + decompress_file(compressed_file, decrypted_file); + printf("文件解压缩完成。\n"); + + printf("正在解密文件...\n"); + sm4_cbc_padding_decrypt_file(decrypted_file, decrypted_file, key, iv); + printf("文件解密完成。\n"); + + log_operation("文件已解压并解密,准备发送。\n"); + // 向客户端发送 "READY" 信号 + send(client_socket, "READY", strlen("READY"), 0); + + // 发送解密后的文件 + FILE *file_to_send = fopen(decrypted_file, "rb"); + while (!feof(file_to_send)) + { + int bytes_read = fread(buffer, 1, BUFFER_SIZE, file_to_send); + send(client_socket, buffer, bytes_read, 0); + } + fclose(file_to_send); + + printf("文件发送完成。\n"); + // 删除解密后的文件 + // remove(decrypted_file); + } + + // 关闭连接 + close(client_socket); + dispatch_semaphore_signal(semaphore); + return NULL; +} + +int main() +{ + + int server_socket, client_socket; + struct sockaddr_in server_addr, client_addr; + socklen_t client_addr_len = sizeof(client_addr); + + // 创建服务器 socket + server_socket = socket(AF_INET, SOCK_STREAM, 0); + if (server_socket == -1) + { + perror("服务器 socket 创建失败"); + exit(EXIT_FAILURE); + } + + // 设置服务器地址 + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; + server_addr.sin_port = htons(PORT); + + // 绑定服务器 socket + if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) + { + perror("绑定失败"); + close(server_socket); + exit(EXIT_FAILURE); + } + + // 开始监听 + if (listen(server_socket, MAX_CLIENTS) == -1) + { + perror("监听失败"); + close(server_socket); + exit(EXIT_FAILURE); + } + + // 初始化信号量 + semaphore = dispatch_semaphore_create(MAX_CLIENTS); + if (semaphore == NULL) + { + fprintf(stderr, "信号量创建失败\n"); + return -1; + } + + // 示例:客户端处理逻辑 + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); // 等待信号量 + // printf("客户端进入,当前资源被占用\n"); + + // 创建管道 + pipe(log_pipe); + if (fork() == 0) // 日志进程 + { + close(log_pipe[1]); // 关闭写端 + char log_buffer[BUFFER_SIZE]; + while (read(log_pipe[0], log_buffer, BUFFER_SIZE) > 0) + { + printf("日志: %s\n", log_buffer); + } + exit(0); + } + + printf("服务器已启动,等待客户端连接...\n"); + while (1) + { + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + printf("客户端进入,当前资源被占用\n"); + + int client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &client_addr_len); + if (client_socket == -1) + { + perror("接受客户端连接失败"); + continue; + } + + printf("客户端连接成功,地址: %s\n", inet_ntoa(client_addr.sin_addr)); + + int *client_sock = malloc(sizeof(int)); + *client_sock = client_socket; + + pthread_t thread_id; + pthread_create(&thread_id, NULL, client_handler, client_sock); + pthread_detach(thread_id); + } + + close(server_socket); + // 释放信号量 + dispatch_release(semaphore); + return 0; +} \ No newline at end of file diff --git a/sm2_key.pem b/sm2_key.pem new file mode 100644 index 0000000..77bc71a --- /dev/null +++ b/sm2_key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGIAgEAMBQGCCqBHM9VAYItBggqgRzPVQGCLQRtMGsCAQEEIKX7OhW9A5qAXmDV +7A9V0QRtNRm/2gJKzR4yr8tBtZ3yoUQDQgAE9leBaJzrxR7z1gN9c4txWMjZwuOE +5n+4PoNOUDwQ9uZywkn2oaOV2oqUH/pgXZYMpWbyGSTlCtbYeunwZeT+8w== +-----END PRIVATE KEY----- diff --git a/sm2_pub.pem b/sm2_pub.pem new file mode 100644 index 0000000..1d0540a --- /dev/null +++ b/sm2_pub.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFowFAYIKoEcz1UBgi0GCCqBHM9VAYItA0IABPZXgWic68Ue89YDfXOLcVjI2cLj +hOZ/uD6DTlA8EPbmcsJJ9qGjldqKlB/6YF2WDKVm8hkk5QrW2Hrp8GXk/vM= +-----END PUBLIC KEY----- diff --git a/socketTestClient.c b/socketTestClient.c new file mode 100644 index 0000000..946db5f --- /dev/null +++ b/socketTestClient.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include + +#define PORT 8001 +#define BUFFER_SIZE 1024 + +int main() { + int client_socket; + struct sockaddr_in server_addr; + char buffer[BUFFER_SIZE]; + + // 创建客户端 socket + client_socket = socket(AF_INET, SOCK_STREAM, 0); + if (client_socket == -1) { + perror("客户端 socket 创建失败"); + exit(EXIT_FAILURE); + } + + // 设置服务器地址 + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(PORT); + server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); + + // 连接到服务器 + if (connect(client_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { + perror("连接服务器失败"); + close(client_socket); + exit(EXIT_FAILURE); + } + + printf("连接服务器成功!\n"); + + while (1) { + printf("输入要发送的消息: "); + fgets(buffer, BUFFER_SIZE, stdin); + buffer[strcspn(buffer, "\n")] = 0; // 去掉换行符 + + send(client_socket, buffer, strlen(buffer), 0); + + if (strcmp(buffer, "exit") == 0) { + break; + } + + int bytes_read = recv(client_socket, buffer, sizeof(buffer) - 1, 0); + if (bytes_read > 0) { + buffer[bytes_read] = '\0'; + printf("服务器回复: %s\n", buffer); + } + } + + close(client_socket); + return 0; +} \ No newline at end of file diff --git a/socketTestServer.c b/socketTestServer.c new file mode 100644 index 0000000..e049672 --- /dev/null +++ b/socketTestServer.c @@ -0,0 +1,99 @@ +#include +#include +#include +#include +#include +#include + +#define PORT 8001 +#define BUFFER_SIZE 1024 +#define MAX_CLIENTS 10 + +// 处理函数示例 +void handle_function() { + printf("处理函数被调用!\n"); +} + +// 客户端处理线程 +void *client_handler(void *arg) { + int client_socket = *(int *)arg; + char buffer[BUFFER_SIZE]; + int bytes_read; + + while ((bytes_read = recv(client_socket, buffer, sizeof(buffer), 0)) > 0) { + buffer[bytes_read] = '\0'; + printf("接收到客户端消息: %s\n", buffer); + + // 判断是否执行处理函数 + if (strcmp(buffer, "execute") == 0) { + handle_function(); + send(client_socket, "处理函数已执行\n", strlen("处理函数已执行\n"), 0); + } else { + send(client_socket, "收到消息\n", strlen("收到消息\n"), 0); + } + } + + close(client_socket); + printf("客户端断开连接\n"); + return NULL; +} + +int main() { + int server_socket, client_socket; + struct sockaddr_in server_addr, client_addr; + socklen_t client_addr_len = sizeof(client_addr); + pthread_t thread_pool[MAX_CLIENTS]; + int client_count = 0; + + // 创建服务器 socket + server_socket = socket(AF_INET, SOCK_STREAM, 0); + if (server_socket == -1) { + perror("服务器 socket 创建失败"); + exit(EXIT_FAILURE); + } + + // 设置服务器地址 + server_addr.sin_family = AF_INET; + server_addr.sin_addr.s_addr = INADDR_ANY; + server_addr.sin_port = htons(PORT); + + // 绑定服务器 socket + if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) { + perror("绑定失败"); + close(server_socket); + exit(EXIT_FAILURE); + } + + // 开始监听 + if (listen(server_socket, MAX_CLIENTS) == -1) { + perror("监听失败"); + close(server_socket); + exit(EXIT_FAILURE); + } + + printf("服务器已启动,等待客户端连接...\n"); + + while (1) { + // 接受客户端连接 + client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &client_addr_len); + if (client_socket == -1) { + perror("接受客户端连接失败"); + continue; + } + + printf("客户端连接成功,地址: %s\n", inet_ntoa(client_addr.sin_addr)); + + // 创建线程处理客户端 + if (pthread_create(&thread_pool[client_count++], NULL, client_handler, &client_socket) != 0) { + perror("线程创建失败"); + } + + // 防止线程池溢出 + if (client_count >= MAX_CLIENTS) { + client_count = 0; + } + } + + close(server_socket); + return 0; +} \ No newline at end of file