From 9c0cf4b6147aa8b3ab6176d82bde01f8b7c765b1 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Thu, 20 Aug 2015 14:54:34 -0400 Subject: [PATCH 1/8] SP: MatlabIterperterError -> MatlabInterpreterError --- pymatbridge/matlab_magic.py | 8 ++++---- pymatbridge/tests/test_magic.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pymatbridge/matlab_magic.py b/pymatbridge/matlab_magic.py index de3233f..dd35875 100644 --- a/pymatbridge/matlab_magic.py +++ b/pymatbridge/matlab_magic.py @@ -23,7 +23,7 @@ from .compat import text_type -class MatlabInterperterError(RuntimeError): +class MatlabInterpreterError(RuntimeError): """ Some error occurs while matlab is running """ @@ -87,7 +87,7 @@ def eval(self, line): run_dict = self.Matlab.run_code(line) if not run_dict['success']: - raise MatlabInterperterError(line, run_dict['content']['stdout']) + raise MatlabInterpreterError(line, run_dict['content']['stdout']) # This is the matlab stdout: return run_dict @@ -99,7 +99,7 @@ def set_matlab_var(self, name, value): run_dict = self.Matlab.set_variable(name, value) if not run_dict['success']: - raise MatlabInterperterError(line, run_dict['content']['stdout']) + raise MatlabInterpreterError(line, run_dict['content']['stdout']) @magic_arguments() @@ -161,7 +161,7 @@ def matlab(self, line, cell=None, local_ns=None): try: result_dict = self.eval(code) - except MatlabInterperterError: + except MatlabInterpreterError: raise except: raise RuntimeError('\n'.join([ diff --git a/pymatbridge/tests/test_magic.py b/pymatbridge/tests/test_magic.py index f9ecb00..c892ba4 100644 --- a/pymatbridge/tests/test_magic.py +++ b/pymatbridge/tests/test_magic.py @@ -1,7 +1,7 @@ import os import pymatbridge as pymat -from pymatbridge.matlab_magic import MatlabInterperterError +from pymatbridge.matlab_magic import MatlabInterpreterError from IPython.testing.globalipapp import get_ipython import numpy.testing as npt @@ -99,5 +99,5 @@ def test_struct(self): npt.assert_equal(self.ip.user_ns['obj']['str'], self.ip.user_ns['str']) def test_faulty(self): - npt.assert_raises(MatlabInterperterError, + npt.assert_raises(MatlabInterpreterError, lambda: self.ip.run_line_magic('matlab', '1 = 2')) From cf51174d3634e62daabeffb7d7159ecc530ac95e Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Mon, 24 Aug 2015 14:22:19 -0400 Subject: [PATCH 2/8] LOGGING: now done via python's logging module --- pymatbridge/pymatbridge.py | 53 ++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 18b3b8b..903354c 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -32,6 +32,7 @@ import types import weakref import random +import logging from uuid import uuid4 from numpy import ndarray, generic, float64, frombuffer, asfortranarray @@ -121,7 +122,8 @@ class _Session(object): def __init__(self, executable, socket_addr=None, id='python-matlab-bridge', log=False, maxtime=60, - platform=None, startup_options=None): + platform=None, startup_options=None, + loglevel=logging.WARNING): """ Initialize this thing. @@ -139,8 +141,8 @@ def __init__(self, executable, socket_addr=None, id : str An identifier for this instance of the pymatbridge. - log : bool - Whether to save a log file in some known location. + log : str | None + Location to log to, defaults to sys.stdout maxtime : float The maximal time to wait for a response from the session (optional, @@ -162,15 +164,25 @@ def __init__(self, executable, socket_addr=None, self.maxtime = maxtime self.platform = platform if platform is not None else sys.platform self.startup_options = startup_options - + self.loglevel = loglevel if socket_addr is None: - self.socket_addr = "tcp://127.0.0.1" if self.platform == "win32" else "ipc:///tmp/pymatbridge-%s"%str(uuid4()) - - if self.log: - startup_options += ' > ./pymatbridge/logs/bashlog_%s.txt' % self.id - + if self.platform == "win32": + self.socket_addr = "tcp://127.0.0.1" + else: + self.socket_addr = "ipc:///tmp/pymatbridge-%s" % str(uuid4()) + else: + self.socket_addr = socket_addr self.context = None self.socket = None + self.logger = logging.getLogger("pymatbridge") + self.logger.setLevel(self.loglevel) + if self.log: + self.loghandler = logging.FileHandler(self.log) + else: + self.loghandler = logging.StreamHandler(stream=sys.stdout) + formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') + self.loghandler.setFormatter(formatter) + self.logger.addHandler(self.loghandler) atexit.register(self.stop) def _program_name(self): # pragma: no cover @@ -209,8 +221,9 @@ def start(self): self.socket_addr = self.socket_addr + ":%s"%rndport # Start the MATLAB server in a new process - print("Starting %s on ZMQ socket %s" % (self._program_name(), self.socket_addr)) - print("Send 'exit' command to kill the server") + self.logger.info("Starting %s on ZMQ socket %s" \ + % (self._program_name(), self.socket_addr)) + self.logger.info("Send 'exit' command to kill the server") self._run_server() # Start the client @@ -219,13 +232,13 @@ def start(self): self.started = True # Test if connection is established - if self.is_connected(): - print("%s started and connected!" % self._program_name()) - self.set_plot_settings() - return self - else: + if not self.is_connected(): raise ValueError("%s failed to start" % self._program_name()) + self.logger.info("%s started and connected!" % self._program_name()) + self.set_plot_settings() + return self + def _response(self, **kwargs): req = json.dumps(kwargs, cls=PymatEncoder) self.socket.send_string(req) @@ -239,7 +252,7 @@ def stop(self): # Matlab should respond with "exit" if successful if self._response(cmd='exit') == "exit": - print("%s closed" % self._program_name()) + self.logger.info("%s closed" % self._program_name()) self.started = False return True @@ -247,7 +260,6 @@ def stop(self): # To test if the client can talk to the server def is_connected(self): if not self.started: - time.sleep(2) return False req = json.dumps(dict(cmd="connect"), cls=PymatEncoder) @@ -259,10 +271,11 @@ def is_connected(self): resp = self.socket.recv_string(flags=zmq.NOBLOCK) return resp == "connected" except zmq.ZMQError: - sys.stdout.write('.') time.sleep(1) if time.time() - start_time > self.maxtime: - print("%s session timed out after %d seconds" % (self._program_name(), self.maxtime)) + timed_out_str = "%s session timed out after %d seconds" \ + % (self._program_name(), self.maxtime) + self.logger.warn(timed_out_str) return False def is_function_processor_working(self): From 4b201a092f58c0d8d8a02f673b98057aedf9fd41 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Tue, 25 Aug 2015 03:38:25 -0400 Subject: [PATCH 3/8] PROTOTYPE: connect to existing Matlab sessions --- .gitignore | 3 ++ pymatbridge/matlab/matlabserver.m | 21 +++++++-- pymatbridge/messenger/mexa64/messenger.mexa64 | Bin 709945 -> 11064 bytes pymatbridge/messenger/src/messenger.c | 43 +++++++----------- pymatbridge/pymatbridge.py | 38 +++++++++------- 5 files changed, 60 insertions(+), 45 deletions(-) diff --git a/.gitignore b/.gitignore index 5bd58c1..de7e727 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,6 @@ rebuildTags.sh # caused py setup.py develop pymatbridge.egg-info + +# so vim-ers can use "YouCompleteMe" +.ycm_extra_conf.py diff --git a/pymatbridge/matlab/matlabserver.m b/pymatbridge/matlab/matlabserver.m index e70bc71..bad3203 100644 --- a/pymatbridge/matlab/matlabserver.m +++ b/pymatbridge/matlab/matlabserver.m @@ -1,4 +1,5 @@ -function matlabserver(socket_address) +function matlabserver(socket_address, exit_when_done) +%MATLABSERVER Take Commands from Python via ZMQ % This function takes a socket address as input and initiates a ZMQ session % over the socket. I then enters the listen-respond mode until it gets an % "exit" command @@ -6,7 +7,11 @@ function matlabserver(socket_address) json_startup messenger('init', socket_address); -c=onCleanup(@()exit); +if nargin > 1 && exit_when_done + c = onCleanup(@stop_messenger_and_exit); +else + c = onCleanup(@stop_messenger); +end while(1) msg_in = messenger('listen'); @@ -17,7 +22,6 @@ function matlabserver(socket_address) messenger('respond', 'connected'); case {'exit'} - messenger('exit'); break; case {'eval'} @@ -29,3 +33,14 @@ function matlabserver(socket_address) end end + +end %matlabserver + +function stop_messenger_and_exit() + messenger('exit'); + exit; +end + +function stop_messenger() + messenger('exit'); +end diff --git a/pymatbridge/messenger/mexa64/messenger.mexa64 b/pymatbridge/messenger/mexa64/messenger.mexa64 index f585eabac2628c54bc37074abb85864b703d0913..a5f91b9bc975486f48883f878df923293fb94e6a 100755 GIT binary patch literal 11064 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 UjAWwsvr_ppnk#Sd3H{~&KPa(58UO$Q literal 709945 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

Dt#m*n~Y3kAdyB4#u13Q(+r6gyTb zGKzJuV%L)Il0tv40ma&)9WZmvbtA{9`9`4*qfoy(Iv)H6q82>F#uu9~t)X|D&c+dv zdLoDpKiHZu*4aUB+ZpY72(*XMg^==;|67Pj@%B{!+P2~Ez0C*sr~XQ=izk^2xusxy zb2u*{no8xM86Vz&BXvU<{nKPgh~N$vCFGq`zW;Gbh_1&MiJ{RndV#saRr(#cPK@@p zjg&xtImN(`{7qBW-2R)voDh<~LiJ4lx~XodTix4FL3N#TRsr)LhkhzM{OIE@qA^c? zvfwgssI&=j9ozg%DJ=sp)5}S(;fr+P8q?~t0esjNOE+7sHtI%+IhdV5Z4utav4*dP4a00CB&UE@Z zHet}I##38RME?bk9YGCf0rO$e!AuQOI$Cs|14HpVI_&~-*AdE)WIg>J9*0cP`068A zryM%}2y)aCVz~H#W-p$FUP@(1(FnLg5$`Gw_q^!JGur&Rj~o9nC3s0lFeV}G|oiG zi$~kUH3;MYQ9sd&-GbD2C<0m(H8Vs_5gtdXL8w4qpu`X+7#^7BFDlp|Ju**^%fs+& z?2k9!3+MKWUtI`$;3%VCaR#;Nb&Au`en_3^SkAoVTv~K|22V{;vPzdvP_G@SCMXMu zM55}MqI6qwOdQSCAMe6QYRP^LziREthp^~>^t?(f9`*?om^p)@j zBVniTVSEuKi;a>`0`qtOcfOLHa2JqFVCLDpGq7pA*$7rKXfB{s^hp>lFZ)|;Br*N~ z?g^$&{%@bOJvlH@^(38Y`tfyaOZpLq+!pg&ZRFh(jQ-=$!#k({_+zC1d-x*yfAI-2 z@?_Ni2+<#NTyt@b`SJ}WHOLRc0>-Oi5(?l1HlY9btn$PRQx3%dqad*6+SjzwBmvhd@E7T^a7i$@c znCJMfA4hWvXU#Fcw9oNh`8a*D0z7q9?)W~r;}^nlNRcD-6jI(^2;TlAExEm|Q>i`j zms{bcGsHkTYF@uuz+*hfmz&JONedf(|TC ziT8$YJGVQ_>2f&U3}tfHpe@h=P;!#-Is6S*p|}J=VlWI6Ug3`5>(CY8IBBn`6wZcb ztJ3hO!S7y$y(rk?#w*Kes?}VyO8)R|%w0?#e&J@c`yQxc*lP+UqI=-_bmI(oMUO;% z^3S|L&V;?PwkTyC_Okh4JSJI3aeEyq3wvt02f|u#Rf=!xhUWxg@%y^yWlIOV=qGa$ z?Nr8IzIv)Px&XIvr04YQ9N*XN2TvTkbnd-U+r0-He82bMJBtO z=3n|KMxmuJZf3jJe6|H2AAms&6>CrwxDA;-gXDvaV&C;taK`|7WfTb8pcgqom;3$8E`TMUMoXP_?onCd+;lGB*{Nu z8@kq73=N(4r9o{99S@z3ApQ>ApnD_s6VL#U$i+Yr6oIZ1V&^sS=?qw{a1VlxfK3hp z@5ug{s^*CXcMwopye^Sqq~jzw6ZDf4Z+n)+E^O4QdkCmou-RY30^~OPLl~K%OY$ef z7kA_wUxw`9Bvfx4KLdx&38KPzDi9~A}K1I@P z;#muJ4jyo&mo4@1GCH178Eb%_OhN;+e}m3Q`Jcmxy*I?4GfwQ5Qc>&Srh@U5JR# zH)Dg8KO4tC*VW0;*iZ~W7d4Rbe^!dct4kbo3!+2=OdgF7V&>b*h5}jp~*KY$QjUSS}bPLg#0B%4zAzmt}D^SVI zTqSSAVSg^l@F1)S@$8vxd*HHuV=tszJ&=!dgRZ@~$@l3H+QRH%Jcf?dS(SwKrw3S? zA77h{mEuWu9}|wyF!YnZU<8Lp?C1n|Dhr2}E8P4roe9UI$?OdjFHB2WOfB(ps5AN~ z8g{;E`BBv}pN}n@Wf^s%maoB6$anAsPI7h)zdCXxwC>IA|21Aabx!%jc)Sjs{&RXc z>3DpR%h4p7qH|6+F#o?dVQFK{<=@3TwWDogN8WztC+_DPz$5Smysj&j82|TosI^$4 zs%vilQ>Mkc$I+GV&G;fsRbf-Ko1XH^psBWPXv3oBg{dh0VWoWYK;?a6LEK0;9Y6Yq zWLIOA5;<;;9S#rK!y{8-4L?z1c@bPix2B@d4XaQhG8sz4m9RM%Kk{E{Plb+E){)z%PBlt{R^Kp+rDQJGqI}j`U4xAjF)0bh~ z=sf9VdYKak=r`Oa&-y~3lyB|$A#{;1#qr{t9v+Vl=aZZS7a?@194Uc0J!0R(7iatp zg#rajor0xsQ7r}YcQ>H-rW0U}|9SwQSHUNk;fX$&c=O>M;6?XX?69=L;fW&tjbYH@OHfNwm>J-39r zJ1`Egr4uj7`G|ez<7fZjx*-vTmnwg_csoD*!X@O(CwM6LK>jfLd3bEK77{esGjX1m ziH+~UX$l1vnhrP*h|IR6i_08iNdptSMjSc^vk>$co6LGp(4;Md<@_v!HU~>3*W#6% z$zd>sZELa1m3Ov^$&;e9yRqQHSC_q`n3quXl?>M6DkVl`9pTgp8}WVRDC z@YDsIgm(d=nMCC{66hrpqa_ksz@;*pDZamw%66C+7^e)3^;CFhV=83+WT@?JFTu9i z<4seG@1N8Wf}`+pmmNiO@sp%+I5q~4O)Gw2(uz1990Lc(z`-$ea2y^iNlcDE08q25xXrGe?1l-p+*0U_^!6Uj%$A#cHT~m!_(Ew4dI*v`V7Sa$3ij;O9_%95b`RDSgvH9H(ji_+v#YWVlQBgOd9sqz<`~|)Zh}{^sA<7qC zn}UzrV$aFNXB<7Ku9)`N=w5p)5yQ|0g9_H7wA{mkT(Ak3C|BiWx#cF5Q@NmJ-V1Jj z^@p`jyMx^R)4Kibx%NBmvL-9oegqmRY_r^vQI^5|P4h?>7>dUJQ;s>H$N3|83l6VY zeg6k%Z}147AE-_4$S7?d9i`3ukEqQhAFfSHP8-Rv;JVgy9P)3EpPhy;Y_!>wB=K|@ zKL~2>qN!YpW)vKx*+KUEA~jWTgciUacHt2^KX)W|`2a1O2@3k1x&xl1QEg+JW-D|~ zFN}qG4jwfr&<2#_`@*=99x%7}%V{CGqKO#L4)oFZM{$AkZ7E7}pfp_AoVue4@6CWf z6OOB(8Mns_Dwc!oI6emwq@g2>9aH|xxVuUp{AbhBdAoC?I7+{d*7AK=FDXSWW2Oe< z?6%yCcMnFjdgqB;WJZ#gkywk`KRbkPB&kwNG{scH@byEY}K84tg z`cO?LNKKva;C$}x)1PgHSXs)SzQ0>jiM?Vlw#3`l)FXN|$tTF^BWp{ir~;aQ7+=ch5*71w{8lsy{4g-4t!ua9w1Kt2 z_#o6u8@-Rien8$La3M}F6ZOXan4(_p>09^u2$cH7bW}26rJ05YInu8OHS-#&qwY}8 zZo&54C)r1NyES<>*IVdp&Kp3L8=y67$-E=CXD_)BdegrC~d5@D3?z~XI zc^@H9&$Ga};Tt zZv1*q730YYU?-ZIG(nDg8*K|y5-zk%1~~$`Cci~$HhFPE(OZr>|86d9_yJX`=fYZ@ z0W7)=${D@i!MC|5(XIcD9=Y3`krOW+UFx|4rLf<8vHt9L#GlRB!rjktXv1yQkgdW! z3H%=O<<1wY4Z;_zCAJ`q!S*VZAp=f;CoAEOV*`+1K=}3MK8(L@nUw!HJZK38TCo5H z=*}(pJ_Zl2=W1F1{@%TtlFesXn)2U*u_h1U)>8g1GI`ug?3r;Ecj|((wrT^5Y+%dRs_LNJGxO&3{1B4#$bW?Oi-e zOhQ_G4ZYNu1o|U)1b>O&1qQb;xsh%o(%I1FL_7zFCb4iZ_vFZ#L!T%0yHKrXF%0D0 zWNd^w_!gC|H-hyVkGc&`@P~Uqh8v17xb%g!c1DD0twXoDWjp10wbvc#tFZVenq2FkMwlp)+YV@3|FpE)=n8-om#%LD9moxX~WT z*9=prIBS(lPhppbnYoBD9lsV8VJ-1CMxK_db1D0oT1(D_3tAYikn-YA6)8G8;)8W> zv3;;Hfct%>J@Qd{2M-t(=-qiAv3KKIq>$)OKQ^eF~lEP({fsfc`+@a7@W(RPc*X5<-P!z*Dv{M zX*RMLv5rmzuc7a31PI%y^E%vehY3L{IsoRui9n6|m;}%x zAk?WLn!V-bL?{Hq5vNC4ZZ*vfz|*w@Y^{|46FAvS4$zDqqM=G|r%Lebfd%oG`1>!H zNCn*RT51?0JDkg7gNCQ!!N100j>v)sg>nlXFA2a{6*}oGa~Tg5wJtH|R}Jt@mccyZ z6q$zOl_gnxGyyE&|K=vN1eg~-efwQ}oAMJ|;I(bzfY&?&YRfmT)IfuAKMW=9Q;^W+;Gkd1w zW)HLr-(YNHnLW@1jm+;2#@Pd^+SyZ-KYMVpsIxx?QuvnS0(sL?0! zvWsR9b?Hbud*DQO_B>&kTjD{3vPtG{x z`#9RU+0*rHv;@tbx9Bb058jMU4W9w9vuAV-G)61oT8L&3*|g;?tO;iijtb~P?$&@* z#xOT~ey}gho^x-+hIZC|q}g*RjZxwCF99BkxtG~%8)g^!>W7`-6*vK}_d!?t2?N;; zGWUg{M=Af4RHPJ2Wl-FoMA*=M44z--bT#kk204}XelzG?+cRTg?+nsc&y3QzlUyj* zN4r)#f3?FdyZH%yH(f5tg6}+AP#KbMP#ATsP98GC!6R^gcY#p~%VA7G-y1>i%I)u- zL6dSjxZSWhNFzTlPa`}46|gS3>jyCq81rbX1}wzs9VwK_Wpp8XxG9vsgGt}hTx8;! z4_d&`kbj=|4tk_{KmqEfNQ0BjCUW@M&_bhz?pxTWCXy1l5ptiJ!Kz0M>9g3xhx^o1 zRK)re=O=}Hs)Pog><`~938xjh3bw%m`kG;*!Ny+O!bA7dV&iK2A=B zD)#em9)r5!byOUaP0$?nv*9o4JOv+BM$in?Yhj-$pYm^}(;*w|ta=K*p%z{-lP1T! z3e$JmbE_JGFM5hT1rqoSJxogqUXKMvpLdpXUZE^JKVO&9g-Yh<1&4CI`4@({SsMlm z!GJ*j^6x_IC10dD2Zu@X5LA`(i3&Jz08UIoZ{aoN&%u^xLXg-5f6xVY$rJd*HkOdb z)Q_feluA><*);Ic3~!+28EZCtGc;_S;a|>4V;e1WE{@v(j7O4fz76sM*crobccmJ$ zuqY4VikjZ^!qC2(Ug*M8o4!d-RUywRTW_bih*d%m`Y@N)&X{+_V-8~EDYFL6-9;E= z3;xv@H3N>n%(kzR+(2<#YaA3-$Iwy*+RkUQ_;W{(=5PZbR~Q_`wGF6nM565(Oxf z#zJ%O(RaEM?}a9M*gw7pCBQ$XODX=|l63YNlhM+tW9U>=7*2(!a?NzcZ?1q-4>hOK zWf_&ujHlMq*>Bn^Aa+nsFzTT;xxzo^!oV}A*7k4I`7qR};;?9^yS zyM$)V=>7Opp)ikKZuKQ6hfmqTF^KEV{r_C%fp?noW6=nV`LGGXXc)Ug@u^%3;HKqy zlPo`SMe*(!tv%3l+%_;Hxj$9F`BTJtZ5&OB|7=UEp&%f1W*9AseCHve1cW96cr?ZO znmnD1ZDjp~j{qsF@sV@vk$g*i$jVBc2~nTeE1?b}ru-}QLh9_|wq8#GWYqUueWaCi zCMhZ_XXWAd(Pqu?9@HPT|L~7xCxazhZ0ppc-cB!=h2b|oP)BWEAsXh~TWb|Hh zN6*woUMNW+4bxEYc)Um>h-#u@XuSVKbV!*&i}hz!)Y%RMJZTUp}*c4h4$ zp4y&-o%dz-J;a*DP75&a@)t44LrX^y-Z7T744j=J5L~93Zwt7W6JLz=xoc;fpD<$} z{8Pfb%8Kx}^r$B=p>k`%C4kJTN2kCywqY5Q{rxJgSG_#%F>?|A2;pdd`%moR#*_a) zcG*LJLI*!L<=SPUH3Zp(Y{7jFkG4xx+vPn9`7j14|K}arF6fCEBjH~p1PhM7M*Rde z@E=@H4Cmz!x%lK|FBJASUuy@&&AeNDExv{QTiC>d>bZL~K(D<5H(SSI(YBqKK)Y9E zU?I83Bvx-r!lig#nYN^qQES2UU&}M16jjkD+L98JRM}~T%0l{JTguBzpg~!?aGrp# zNnU{~{jNuGwer_L34Ma$g)byUd%{;Cmhh^b=f4sQ!LF1ULtbIrzk{wC?IytGbb*We zi8R?aq3AsIAojt(fl9g+@Jbv~_`7blUJ};Dd0cwu7)7kac)*MP))j z=;8|2K5_=v%ILeWO=@$gKY)?p#1Gr_x`C2Z&!|i>1^*ZkU5Y`62jS~#$GW+r_ymq7 zt-bJt?%*_#=RHKro|%t7gRL`u1kGk)`CfqEM6CY&23qnVIPw1x_a^XF7T5cDSfaRK z;u4K3QL!R!xJ02sO(>~XG#b$;xU{(Ajy6GD&|rw>dVAZrpjfR%t%|J+E?``cpvX#TC!gvLP%S(Xwq!N~mS)BW10%?BO+Q+59Xm zvwBB@sbx4FBNxJ&8A2%g{91Muf{_1}mbFBqmuk0qVu=j>=})&J_Q~3}e0oRQ7Fj>7 z6a++rb@itPAX;JF7GmnP077mxt3P;})t~=2>!$~o3gWw$V*K9Tj)%Pjzs0cy99h8e_w;4;@whcHue>0eV*KE*WN5KfM*8-_mBNfANL5pKtSf=}^khvhp!FIK;H=BG`TDVb{2FD(G4OqcI=!;EDTj-!|Ma?;{bI z1zUm@RZ9n?k3gv|zUea+=yvtYh+EIU`}&%zmNv{H6STZ)GXmQp1DAI~BX8=qN|1~5f)1itH=qOlxVNLFJ5)pS9C^7AkT`stP<3*@v zuknk_2NIOqCGx(o4I@$DQ!#Ag)B5BeqVnTtP-@&F;_ z&% zhWyT0axd{hmy~bc6}vZfllGZ*HMtT+5j&2MSAD`&Q?-!I*dd&0>OEDXFRQaG3=eE zniL)DGJEF$E{Z{zq5frKQ-cDcIc0(k^@}QOv1!1^G@)NvhJs&Wr&$P5dCR0ID))dQ z-%!j@yJn{P;0bzIeUGl>ptniCHTIWpKml)V{|M)(rH+xtx};?{po^~Tfbm*al)Hom zx1#(S%XzamwC!d>#SW9G9&Jx3O$Czk zfMg4hY><)Mo=DM4dNzNRh~mTYOT=f@buCaNHW%9#`zp;fztF{``!d50Frv@^+9LqR z2cw10RrBqF{Ct#MXn@oZh#pf(%8rT#lkqM(34laA06E@KHRr3UIsY~mOyIwYqUo{e z9f^XwgXTOlk_Zlh?{!Q`);4&Uju1@iS3ua@*Hw8!tFLetK1_Q&W=hQ1p* z$m!6paAk7B+-xmjULAo+9_I_&hugVIMHJz?x900{N@?2{@O2bK4-iEd#T2yTBodJo zb2D=6SPo9@_PFDe)ey~v4MNCJx`}q@&#~n;1CHV1w_y&s{XeJpd4A3~PP=R=z7{R! zr?vdFH|NRziqb$sv(Pa~y}yC9ji9nKfe>Hm5i{+2K& z1}vX*Py}!61X9Nm>H$?f8u%{^UO!ES4_q~%U(UVq3{UE$GK3(JZt+^tELBWKuWbcA zZPS#_kg(DI?HwKcuyB18@>uvCPwh)|SY`=4#2>P-mzkD@ZuZ62WEE5U0r<0v-I<&l zukWP|tU%)FdP9_QLqQiydc6Dnsg8Hp^_&VOPWzF(<4qWL+|Jr)Pb+3tmr5T(L;r`> zrD;N<)5Ix!4Ws<0@HLF`+kOhwTGQ%Mqk}8@Kc0(V41>P~{m8MpG*S5_WjAM8k*vI~ zE3fR};!&XgNC#gBlR&C?bam-1etaSl_y3l`#mMSXfRwe4`~Uy7x^ya$)XUKGXkMPx zrE^iy)yQW@FOfo#o~b4y>J_@FxLuqV%hE-*(*em8CH{jkZO_`nJcKl+MKwKo;d^!wVS2IA+WjzjVY^F1a$$$4(Wiohgg)pG0EudgM8|7HqG-;>jFu%>5^CuYe3YTW&|Ei8o4~#6f*ti% zkljsQmnnkw7LSW~fq}(wAaOBDFE<+~Z&pbdgaL4$H)8~?y3>#>y<~1DAjubwz@gnj zmQaHtY+1)|@^>Uk_u{sBtox7w4vW@VLU@FAXJZD@eWYVZDyYec<6PJ_vTmR&8D-s< za#y_B%;gLA9qHrw1UtdU?geU?VcL3_d>MsWitej(9AB1$1);jBpiLw`^$m|{yLe0k zGa^iT$wW`6OX(BT`>3XMw#v59FECbgIMlRp|3W|}*ZPXBeSudS_GWVA%z&Fea%Acu zeb|p^5EF2^YX3mx_ev5?%+1$tY>LTQ*p9)q>30I-X ztB|VDjh~tK8sx;+yCJNM=*oStw1WlcPaw+t#QOOO#1_*B8BJ|;&mUc)akYQNpF4qR&rmgjBg4VTl;)VB?V zys7Vlc=e{fx8pUO`rgk>JN32m{fKxvrFtreP@f?K)#N8x(wo&TKU&O+iwM+B@pL8% zA$LUJasaeF*T~%PFu!17F8Ci8;PBn&s8G~l$)ZxW>1h}m{c*H3%KjKyPMOfi{!?o* zha4lcb(s}bI_pD>H9hDru;uxWMijzFr&qpa%Um;AYwx;Tou`1T)J zcP(^rISLwGY|%!dy68`mFnhLVc+i5w!&9f2B^gv@PffSRbd? z5ZwduyCX>iRW7mz;*q~g%NS4c?STl}%lehMA40dP2QFSXNE&RM)muuHafJ64Qgg1*#vDy zHwLrJDgInY?hzs>C;j6;8cBZDCfYZgB+-M_BcK)e(LM(kQyldXQ2%S6gZFaVkt&aE zeVJ1n&$ixmI5p1NR{6%|vaWSV=b@7#wxabk{kKl2ca(|aQHBmcT7WS#qqWhwS~D9^ z2D8E&N7zPb&__g7MXmVmm=1f6#CCiQgTGs`#V|~i7s^Q4`sU^fTk|!9vRf1iQ0ZT5 z|J$xLlV(6QTOyP3AFZ`-MSZ^3^S4RyKMYi2)2X+uKTEH3Q|@oDis{~00E#xvZVAV_+H}F;hc6`4K38R`eldC z6&2I8RAbw8rhkV}&{CLAU_NJ}j?-YZq9o8=42?H~f6-W2nVvW6GeNcgL& zL$<7Ru(4f*J482l=MXez0$!_Fkd2s%muW@#icm8tBkpMnl1&WU6-{wXT&5i0JxFP# ze8EPBFWcEp9on&6aJ8;MEz1Qd_2GSv3yox9Bv@YTkMAGq#!eZ(N&(xMg9?=DjMu-a z(f`7I%9>xFAI@_4`uzSP)RH@I5TP#S!wU79L&>UfE07kP z!jlV#pFK{vZWmBr3?-17sC`w`u_sl*(^66ry`qOZ#+Z-aAXkn{_Fx+^@A{wuqMFPs z!LEOSBz!8man?#tC#!>7e_?d8{ve?Qo@wEk%~mJzajTyT`a?gOE9iIgVbOn?lIAD| z@OSEQflfD(T|~wMv(PUYMLxH|`U?Q~{<&qypW(rbZ_N@P6M2&O#82$=E%@hH$U`y&2{y zixzy~ud#hVoMU-UT)ttHgFKu7AbCf_1mqA$ktOdV{4nIbeWgd<@k-t?*NZrg<->~O z=d>zD9Gio@HE^ETcCB7JY!|?C<-qpD2}T&BLu_~Vu{}kxz2`c?_Fg_LwsQf}VmmEz zIwYr_2yX|k9k$=1)8xSR;h!69uLjzNx0g40yggg7{q9=9b~PUs+mE#$imE>z*|U}x z+ph1{4%V_RskeFr}bwlB@`u&q;Us}P5jNCGW{=5@uqgXH7?;_ zewtohv9c;OO0yTp?6gBtZb)4>z`oW<@C=3FZ|5g=PC zkS+=(IaePBl6V_CARpewd~lR%Xnm7aAtZcEbee2PFKXIJj&Eef$%x1*EZ>H412-QI zdl<^R2bfxh-exH}A3bw%;tpq@iF2$#lAKJ$6Di`eS4fA_f{y@3B#3qg5mm=-A?>ce zzU5+DSeFO`TU#qQZ!9izs4zYimi&(}!Jcjjk+#t+(DaEEfePug{B3!S23NzqIvkEb zmD}kG<#4eB8(RsZt9D((hBWO-Ks|Ds_s+!A6lt_1rwQp0!BG2mCawcpBFp#im?TrU z%n!jiFE5mvxFP@`$}-%=Kq0`e4EXSyygB>2oREPcX7q0>@o+mI<}yYLh&XgZaEk$k zzV?5k(f#ZWz6KbsI(?+1K}>xQ+*fFrWq=U3g&-PAOZg5KiJ07edpl<2g$cNk)6}@X z*?J#3JFWqURv@uZc4x>&0r6W~Au@jM=>OGi)O%1565ayT`5gGnZjsYvlOFaXL{C%y zJmHtQ~1< zcN_I)oTEIxldPs2uzMT{%zFn zDz(HD(!=38a!9llbu&*>|3=uyJs?)i@iR-!kv2rZiJJ3E&Wbp(rrM#v+MlMbs31aM zFD4-JGZp;sQzWg;Y3jW}TzHzgO$3RK7&%Sd%2X@E@H932n}T5Qfov$_Gzz-!bURsB&<~qO9ZkWQq#TWgMnG=iew6R4>`C|OOW^6#wmUskDiF- zI8h4OHlvU^9kn}te}a`K20yayld;hkNF56$8Z*Qb-{>O2P;TiWsbC$xhS9x^`I;Tc zfClL5C8~)wobI5=>)w3b<(a%YdS{LiIZIh-Q4o;Vuc@Kz%F!LY`@X~)nLB#_#=?;u zz4QQ>65ixNUna7nm(E2vPN2M9bSa-+ zG)W<=7h1~n1g}0uqM7Va=*wXg zwvd^AblZ-7;#heAf4gs_(~rKW@@`b-T#p^7Y1j z$G1(=`;Pm8KeisXnvZSM!(++9zs(+0klqPDzTuB;@MHKD_^~N|?9CtR0~)&8b$feV zN%S;WxKCeSjy0@!?K?m)NbrH9?dp+#wJjJ()?%%nJ@?*1^PVi(Wh~+j;=RCyD|toU z@HrVRjBcL_Zj{1>y%(_HilxmEM({BC0NakuHAA_F=5$%$>}2@56GI+!`-*l7jbIWD z@>BNDnkWck%x#2+81pceOO{Ll{fOqA#D@)Z>`sG{9CrcI0>(N8Tyk;*y972J**g=o zq4--$^fv)(2rg|7mzMCSDJ@R#2iRkqo+A2KSfqrKtb4)sL*xIjQF-!DSTY?f@e_rq zee^g9o^UvBb6iNX)Ly)02s**ZmmUaUa>E|2mT_^_xRq(C1=TCi0J^eJ@e}GVl{PAY@!qs{u<8*qN!Jys^NB| zhIXj9Z`97o)zztNX(ukGGS94!F1tuo!!6XU18de?^%<`3`Hb@&vUJCDjQB8cP{ppf zRCMA7d6ZwrhZSG*C}HU(NDGepMnSJ=n1^}==?Q8~T+>gYX=_Xzes5#7EldQ$9V9@F zXM*yI&Y56qO(fFL^M=wxJ2##5?tif$;oc7l^MxO0>FS=?=~K~^#nM&S+{2QIQmfp< zQmX2GSkl4%MHYnn0VB~iQ+)=iJN+ng?w^`xLA%(ZiDBE=9|<$O=h@m{z@jwcdLFOZ z!KenwnM+6*g>Wcu=C?V@wrL!MqQxR3oD8XyI@~;=0idtpHZ@m$-Z1O)g1YrZZ@Wiw zP5{V8u6`p&>dpgMF~Rqt^7-5bHtXgOZBs&Uq;g1Q}ouSTfl+n{d4;1lzEaQ*tS zp3?my70iJiz$)QtNp zM2$Y|!lL+F#{VkQ*G{tPu(0{;u>|?k zJUja#)XVix9dTSFpUxHQ*sanE{ z-}t zVNmpo@&rVNh5Cd&LExdZg)BUwlFCDV&4Va}$q~+|JXj=Ia?xI*G*%JZc)C3dMd;Cm zH6UkyJpFcOE9a;-HnxqT$~+5BFKt2NL8aImUEPQm1HXV8kU5F@?o=^FkClt1D7m>_ ztk9i&SSvJ*fRf`DAuTxIbG1U@Eh~X{Pezb(*JPkEZ4(>s*|s?kmfkM(&IR9HsTn#{ zPDM{Joy}@{nHwq%v_wT2h0F60LJlZ?6AVf3;SwkY%}ca2vn%mU=!dv)pEyhF&1B%1 z^C0f0Wc93B4~xw~F{x?TItTd~Rxt&R6<~X(;_Bi%QEw(8)OQ*!@6->acIxB^8*WDE zt%67xf!3JN*jubRSlInFMWSv`h-jfA3M)4&D5%?2^2ro2n3mv9Xrgc(pHk;NZhA>1 zK_w=asdns00^^N_L&zYE26@d?kqAZ196o54gm}1@^qSsZ*ujRkq&C=95DY zpU#d~GD#lg9p`!d@7W!t|Lu>gU>;A)d(=H6@lK8dT{8CP7-P_+T>F zu(h&SN|MojhW*7hk?qEwGDDD--_tIP^jW7N0K=VB+nuVuvpQw%1FZ*E z=eE6YhaA;<;<5(OT(fQW62lPy<|%tLAb?RBo)&0$W_!?}#qH>mG5T&2{BfJUz7%&d z7065?eLewMH!ZOV91nm3zilEqm@M2&8UJ=FKn_P<$(7jGilrD_3xZ*10u{(-s2lB0 zIomn<)>e#yhN|u4`UqAx4rRE8>y-H3os2cZpn@-)JE-7sov@Ujh~KdJC*cvCx*eL3 z`;T`sY@6mW1sI7fR!RuIW=QwlIT)yC=$gxNv#x%V;GC_a96K|@9FJAfMwkiBH*O|a zB@3Dop3Gv^DtOdUR*gB!vC5BOKpFloap7=CoZj%+dj&x*fjvVU}dQcv@w%st9|2tXG^UBq@HYL+HNH z1lS&E=Usv%n*rxCmg%r zYIQve-#;N}mw|6dFd&L=H-b=QYh4rPlmSG3uSBV*5ieehY<5 zv(HGW#`cD|80zL43LSKF=2j-VvPt3XGL7PBy(XTBPKFXHmfmf2axub&8Pqap@SiDW zxcM7tNDiHSrVKap^-%9 zYf#afp3J{u*9vq*!0+_W(d1>e$yc?>jkL+5w8=gFCjS9ji6+Oe$;F6X8Up>et+WCz zz5Y#3`Zl(Wy`zoYc81W`CXe!``LOiO(8lgWT5zxlm3s7nv}tw2NS~YvM$WdNJncFj zyerXN(2QRsbnaxs+mE#EowV(7YE(GB#e15oR*`rn zuV1xFR0!9Jqll{&DO0q#cGcG}Z{Oh+^lcl#P?B90m9{AM6bYxf=zoOEx79+5IDka z^#juurjF{YQ_=bML{4KHudRT%IOdwn{fL5Ls_mC#YBchY zi;4wD8!Cn?6{D4kIr1o((x(X^_O=%jcdkyYAMau>t2X6;d{Zo|BLX)^s?Mk6MS@K93cx-(mIv45~ zC2Ch z2Sf)i+QZS~Qxta!85YF!bl*e8WJ{)SMMYQLfPh)N4Ld9-X>^mq+fE%+kQh9WGs9%z z^?1R)`92IKYJwZvMvK5XJH-IsJ(s~wmsg>AU=W5__6Xw#be|h3hCEcVASOlfO8qCCehS9)>VQkeb-$$;kfm4YQsv5G&Y0EBM3C0tLSXDEb9NO#hVa2+waG!pXb! zz8x$?f!a|@fbjIK{uUrG4t#9~Oq}A206R>8W#UCx@%HAb&pO#@*fXHOnnNleijUJCM0nFFv$hE1DGWqI%0@%*a z$%Qjykcso+HPw+la8X%a;n&Hb7orO|+?)^3@j2_qYoGVnv;nFos-DkQq(Z4|wK5l# zjLc+cUk9X>lQY_T&>c2A80JE|!cfJWg3i=p-nNthN5b>yfq>Bwb1)bs$iU&y?7C5n zl4x6$)1}#UQdM1mT>v}4E6l(#X8>HB=vd(4uq@U&WZ_>AF*f}O4uQ#`15OZ|UMP?9 z!F*Voz6bVC!Abw*c-Zs-ojG95vapU;Sc^~+3By zX~CPX<)F3J!n#OdB^A~+3aiD3_4tOuw;6<$%mr&b3+pn4RjIJ56xIYE*0~C6Bw47FbegtyN%C6xd`R*cA%wX9QN8g`2Lb6~1tgp;b

=kmu#P6IbFyKn#|1x-tp^8Txm)(;_8J$jN1dZe9Q-pL zO}M&**=(vH;QB0oRSdR25u4|DDakAFO$o_v*bJDSVp3BLrFbje*;H-V25*aSicHApq^2Bq+A6yCxX_KnmV?d8Q%4Hc1!vB=w@-rI_X8oU|2j^a=A zwxVIO%~;VeCH#4;{h4aufzJ>*8r1OZl*rpO?=4n19dDFH62qF3$(~^wPBr|-dy5se zn9_IP)G15H3g?-WYh22FlXAI9Ni__i!-;>av7%u^zNHVdI~5#+qV*6j!Ul0YJK&n? z9TG{l_|BaQ40LD1m8j_NY_NAf&cu+~9Iu}fi_e`&A;y!_@xX%Y;GISg8!W->)fQ`9 z!qmYCp*2_C*f8tHg1QZ2i6&M+7*%82@v3==syU6p;Kts4imo~xu3aP~@KLQ75_l6Y z5)u$lTQ<&`S1^;SXw8Y*dGTWTj#Kx3fY7}?{z#dvqzsqGrA*CWEwnKUeGf0nU^t|H z8-rI&c55^z+NO7E@@aATT%`_wO zRa~^VgDKeKjQt-{!EE9=dT?K#HZ+S3O~W5Sd|M)Z89sKUh_|rMX}MaKtB91F8J1&j z)N;GCTxq^??3r4Q&SZBFoUE{24<7rhmU|aPy4(G7eV2yqvj1wiMJzWzU%64PT$1Hx z`sE6|cG>3@9=ADl*W@clYoO)EvD^s!aWWldS#4$7LSvz&i&*+w%zi?uJ#N#AX}OP4 zr2A#RoKH2)jh5qjW%r-+m7^ijayPOZH>XRxJ5$Pa>)`Kz`mOo9=z7(hmKs;%RMx1; zUt?}o4Q^TM<{@5bV@JU4nXo z<%{NQ0$^TeF1l&}6B-pr(VQ>DtcKmYXwC;rNmkuJqkbuRE^br5A(oiSE+0!Q5<{4* zn$O(B`c@-XOI|R5C94)PeRC)*k;4{XinwSo?hn!$XAh(qVe3WLDtb*lLK(h1=Uy2_d{6+|n1NPxs+-n;eFX=9YXEHvy_JFnwTp zcahp~Pim$7U1UuJy#p<~X?j3Q@Yc7hv6#O(*#ZUb!+@Wt?>r^8&%QE**BxrV!XoN^ z-)dm5K7r^nTnVGnLvdVFeG8+>w^ImO^dP8ya4oAgE}!Y&>`dQtG(&Utg0y&b8%V|f z5DG5sp~rv^$4DG4NL0OQ9fXk>ts)M>+`~Kvp&2j6LHM|!j%!Vwy8AL-tZPl*(d>VO zKMk``fMx|78+q$lU`xEo63g)ii3Xb?_54T=xFahyi0m0)_p|6tu4pj}>0sZ6ot_sU zifrFG_@kq9@Fzubw&3{hMIB5HmS}U3k0Rs)@kh|)@_T1OTmbxXnC{6!TV)g~6+HI7$jl1sooWGO8(w4Yfape5 zb;%u*J^n0dj{rV5| z%Z}-%^lHBki(M;~72HqU;`7=viI^IV7}vzt##2iNR=Rk$DaufA6x7KsT}1` zdf)U8qR!l>!+yfCEh^IV#x23uU)Uk8l|vjxq0#OeG*>vAArJ_yW+%*u)#?E(tO zauC-XGsIXzLR3&CIR=|0%n@_uu@n9)6YV}5P%Z8e!$K+O_m}fcJ%-iKRzUQX!y4kXT$IXNcO`Hv7mgbWsO~3H2k-C)i z;#CV2wN$X5=n6hSovg+Gge~|@(By?mP3;1cyxTQsCSKKw%B?vnz8OmIi|^DcK|r>f>d6BRj7dFROlNmo$lnjv_P(sog(7VW%AZmgpi&Bv8e z^9^Hh1`L(;8Va-|S4s(xy#xqr&p$N&fw|n`S*08}Lv8@Ln=~v_UnfQeJ_XZlnJEH> z^o1le;9b7LwAL4%*MG612XJS#fiy(n3zWi(EfkVbtN?50>xLaNH5cawC?M>|(QU%Q zn>J!huhV$Nd*KW|xE4J2C7+$l-AZsYwlJYTX5W*W zxd3hl7w-XAM7X_!E3aMT`7Y1oy*p~`XTo^zNwMD=EdyyQ5~Z zaOCbNnH@*&j=B;wM(&QXt1U*R;ASXK-UI|pAWtsihl>PcBc%_X{Z>q+;i540Qj6<-JRJTy-*{;R8KA1?mXj9wU#e85u#;Ob>jt$!gZaV4P=P;+4bys&gMLF13~edtmZqt z0Xkq;{YxxvIqmCPvZQD*Rv*1DKA{gy+IE1>GyQ#;Z>(HxSLe`4B8b zYT);j_)kiu8aOj^uZ42=EFk_Krkw>+4bx42y3+Oyfy`#*4kHhZL1X-dC=?h)taWG{ zL_--`ZTqSCH587j){A7Q(|Boa44)|?rB>PDV z)Np@8@HSkQ1KDGUypp})r;cpt;h`ZW-;yP}eHjYVF@KQ3LS;x!ADq$TP4*pm&tVZ+ zLLE@S!-Z!^JnECxeK{mHz}7RUAA$D>>X!kSLH&q-3+ncJahaODho{LO!S{8&Q1#u; zUJ{~U81J!}+MKQ7#>~MZ%tHP?)I@ys;sC__k|meOqg)<#@%@Z6@JNoEimYJlBO=dU zXi5(b^HO&++GSr?)yHUwev%5d*e~=g{N9+5o&Yz9^L=#47IqB%i7)ZV^eAHIban*n==Jiq}XJG5Ngt4Vr$0^Nq|y=b5|3sgKc=hq%v~a7u=z1k=nzfqLP7k`t&w7N zTab*l2Bu?DJlSHds7AhY#A{g%fZXY@eUz2$iIxfCm{kkbh7Zqof<3wB@P->9ag3Yy zI-u_Z#!VP|C)CHm%tm_j>c5gv>ESnM|*1bPqROL-s}| zhyDu7W9S-9@+hCmhwU1N1=2OnL|U-@gQ9c@*H{~Viq5vW(z`>HFs!NIDNf*UW*F__ z;~<88TS5dRa5Xv9bq#5L-75mZ>X4ykd@ojSGDZtQ}Q5@(wR z)MRU<4T${}1?`v%uGtd_EgXDs7DJ{=y>WTX_H`06M!~||>RXuGcQkC|eZ8HkceZ@ur7I?0l$hV*mrg z+&p7y%qUHu+=qZAkulHI^D2+P(iDw$@^jU9kQ_pBBH~@fInLAFwu51S92HIu-C{ps zz+`!pm-1m5u+B%qfN@9*-n?HJ04%NLmIVjAi@BAiRl4J?PlC=;*dk~FGx}FNxfz)# z=$Ig1A>?umx(@pn6p*Fqo&VrqLz!p`{m{RFQ6*fJ)Nu#b0Sh<);;XMacV5E z7R5G}3$LjFst~;z2N5GXI_^W3<)G1OLSAebGY_qL3|=3sD6Bf?pki_H0X<^Hi?9>b zZ9uJ~d7I&;uTEo52i}25lG#ogE(yIg!JMX9ftadxR zpm8ANO2Lipk{MofRM?HCfhIvB3Dq6=4cIc&?anO0rq=n=cG8fAtM~P7)f1y2kU%xQ z%cL4I5a0mH*AZ2sve2%EwNbUx@j26T>ByTi0chveq49ZhuJ&`vtP`I;82Ex|_)-;F z5%*QBL)`|+m3X2YK{GQW<@(92L^hD~a;|-0Cha`JWhAVvie-U+9L50R3dM`*ge9ZV zA9J&%i55_;BETWmdZ3H1%WtUQQ^6q;?G!HoxuPnYBMDx@4z@^*L=&i$Fdo!Odx?p? zW2F8eg9Az|e1tH$U=5&`>z(cNFQS~B* z9SKo%p@RVm18k|_OsNi+Ct3R+kqx;VTyAg{dq^E)gg2C?` z(L^RAvRG=6;O{c;H@7HCRZ?>#z<4}1ZG||LW~CUelWQZOQk@V>2U^6))rM|@`|=FA zNnGkES2l=F?aovtsT+Nzu#AYH<|KdxOQ zSW&ffK>7%65#WvOdezyk1?VdCjdA}3sm)bO8)hvnsN2XE{UbU%tb?g|IlI2IU8oF= z4p&}wMWa&tbd(pgmPkYB66$5P8TvYq42!Zaih*QsRlrLh#YT)sAAMnlu%ZV|_3Cv~ zW+~==g63)`sQ;TZvrJmW!i1rRtM6!KueE69bgz~4&R9q36dg<=l$OL;9S(p$^9p*F z+w^?ZMU6~WKt$~j5fJ1GMfF12+XJKDRv_0mATJec%Bjx*RjqXuKoX_kFM@}NT|R*f zDjf|W?hhBO_^o&;q_SP&mog%kqdbU=?DlG|dVkK_EmE7aK&}0<(Fj(@W|twj7wCNy zX+=mkK)X-8&Jh_|s&e$;QIkucBH}IsC8k}oE4=|*K)pflioaALixF-VCqLHS+9~%k zdyehn@Fz3+ID#BmDZZ_xc|m74W&GFx5FQIYc#`YKLTOh;$Cls}CZW=G`JUyQSj!Li zA5o-n`UNN{a{G`ecy+zESnP!qNCnJ|;^WZwtx(3gbE_ZmN#b@? z#pf3oEW8#8QDucrRt!V~<7-|UTJ|!rVUiW`M8=3K5RUZ`J4jdnncHtA^~eIlmc5b7 z7tEmITk2heiiYnk6`7X4lThE53S#mYP6YwDuU)Jc*F&*+jcZCGo_&M{n0F?t^?#a` z|dk0%O0*c9_w8%GSeidaFSmRC9S;_imxct_5h0b#cfZ~+9BH-SC5-^-6;+y@~M zh9Hig-$wutZUU(`1YzMAV}Ztl6JTxyEtuC$4JxWJQ;?J1IFfWBk__)W5V(aS4~S9O zAb#mUgaZh4)GT9~9hiEO0r!X&Ua<+-hP78t(1UTEU_Vw(?NZDQATLZh|`wp*)FRP5B!ysn)e!ztrClvaVaZY|aSVR11kJU?x6=#M; z!0MrjbCHkpNX2;=asJ^J!TCJaf=UR^BMr`I0lQ#^P&E!gb54Ob9r zgG?G^6QGgM!STVvg#c3}lZf6TB|@&JOqRrk3*#s9VHtla%|>$Eu}BL>3lZX{57B{0 zSfgF8SG_%?6#GqT=G(}Wm6Gl@@Jqi{aWWfMz87??#G|m5cnBVoH%P)8N zJBImfVSb6r9~9=#5A(kSJqrIH8@cuy!u;1<{xf0z)G&V$`O&yM^rkqrjh4YzXX-Er z)g2S!RnJd|SGOmsig7am_yOaMd8;zx*vF*XanLIz$piTn3KlUJ2%a0h18^#M%f2T| zj(Iy=v`UtA%bWNE7>|;qQh9{>DEo*3hhP@|tR(CFDP5 zu4uR(zob=c2>q>=)WXWy%Y8m^GzA9rK>ibzK89ZYlUL%P2 zlNK){^-=a6c~?9dE+kHtMv=I|-?5OGN&V-xmZAQ%@Li~XYs--O-2l~4--iwct!0Qn zzHWkzqj>*pL^rle@yFgm6;Zn`}ZU2y)d=z{Yb z=*DpUan1%}b1GYpr_7T>Ul~TDQ?gl^*q&y-S=-Z%wqbj|L0a(SjRp-}e{4YI=x8pU z8u3hs(q*-~p>6kMZTC2B_jY-d7yIp=ukBvNb|*yJr9S6rH`yXuOpjXE=I(`Ta+bwp z+m;1e#l^i#`IA}o&>_Nl$?_B~!I0`) zJBeqN9u+BF-6kOctVSTdfr;91pBU@MkPhGhLq*Gh@4Oq8}tGj*rblAUwLNXD(l+X~LdJ4u?}BI$|ay zcBab#p5VdqiI@sF71i5a4KkObNEeG#VL8w88zq{nR@i+vsF4Xaf`!^}<5MmQ)|G2I9UNYzaDx!Jg~1_q?nHz2*Tx4RX!YG@tj z6oC2NFHk6E_3OI(JdEwcLWyH1{9B>vgj_R5C)^U@J6P^BPGHbn1-5}rgiO&b>qYK z(6>!<;xz)Y4!P1?spCP8=4`}WbQ2@?!hZDADxi1`hYd2i$33mky+3Rrx;La$6k-zJ z>;Ula3emlPBQ3b{cbN)dMAYg;ls?NU=YH5Cm_s?gXfw+Bw`EQ_mktzkR5`y=l-3uN z%5UA=!)0gUVwCe+M2GPkE!!?XsvqS%U6oTy!#)j*RvqG3)m8sl3%zMI`|DPUWM%7j zir^Wlq4wJdTF)ilUK*5uI7HW5)a@?lZfkSG|_@cz}7tJVkiOhYVl z-11C=e6Ylth8V?QgF{?4GVVJfZmoJ)8)=aeVmP3-{s=f6=FZGoOgvj>>IF8k-ng;? zo<%$Fm0q5$aP2yEXV)clR)~Ye!E&#K^@ZJXJkcvM2x*t9Q*6q?6mWoT54EJ-XvuN# zTA8Cg8%w0jFV>wYbDBFeDEQ#ma)5DY%N!+I<6Su1DHTFHao zm*JDYD|at|Jkmw@g|Kq`>1Ce`8_@AmuU^j|>QFIss25H5+95@Hxp~Vsbz(1{@SR~F z*HXZ~>xzVZwZg^n7~d@W?g93&mOn*SaOqV_oo%ij46*hafC|#$(RjK6^E5LFmC#9S+;uyv$os)&kGojz8IX_W z9~0)Udd%e?O!+k~FAi6(jkkcspLlH#)`p;m7t6*PY!H?(WiP@*h+ujKOr6>uyNM@U zMk*5xWOkfuYy6)(!0C<){@($SaC~KHl+fAV^ha02Q{*=yi!q_3T+@?*4Q80|)DBj> zZb2Cg2~eZLYkGynbiylJ&qise?Kv9?pQrO-`TWfjs3HiYg6HQ%XUEo0iumZF!|d4L z!*4L1$%r-)lxDs!nc^#Wkx!CLf@&({nY3RHGZJlVt0CZOUetqfD=KD+`a+8;n116t zO&6`g`&D@NKk_D(uViJ7z+QsE(!?OMBd`YM!#Is7xKL98^A7uNaM>T=vf9`oY-5XP z8wjJR+~P8G?^1bC!l~fT2<&03*GNJ*$^944ywERVcZHnZUY~L*>5@lzHy>796QRlI z7SAFr*tXFj4rX#=t#~u9S^N!s<+&T3ZW}#B8$C@My-6Fb^Ba8)T8Tz4W1|bMFpV1S z9D%L?tHP^>upZ!~2x$p2J;oM6kQ#P3)t(+?HHW$}0*c-#i<*tIItuF7e*!2Kbbmm^ zxOkSt!a=wh{Y2?}a!t!j_0&!IJ8gL*$gwx%q? z)Jg7MOS zL-?Z3Qn~uHjTQtfE@Ta17fW)>8{SvQT%jQHtnpQ&WBTW}pQby6$XspDZLsE$wiy=N8N5ft&yG~QVY-9z$qIki@ljOM!{Dx7i#jaFw z8st2dDSkFe*e;6vRB)VB>EzFI7deCCbYAU2bkpngtimQx=S=>Vro^1zA+OvIn+gVa z#qdGSzVxotH-pDNJp~j%68KaF{OFM=9vA>rSH#ai98kC-?fnjI7=I|_3^%_h#vNvq z`H6h4s$v8y_-@xI@^MG%oNCd0^d{ee zJHLxy4742I@7)p%$@Bf*A!Pm!p_1L^Ll&zBe79 zB)N9>zyE&kIIgFtBbnz5zTb(WaeTxUsH`ve8j|VMlqvsP3c!Wv7kouOP9%x(#;`&K zDm2Jzrjl&FQkCQ^5Dd$H;s8;SX$78=G!j~J+)SheN6%E}1wOq4DYq3&D#I~dq65r; zA#+w*^;U;*JSo{aZPi?7;oa}irQi`R2(QE=y7xq68AFl z>NS4iylBqvL>H<)0!R!8LjCS6pqp+{L6Wv&lBqAdM3S{1!$N;#Ec87D5{E9EO}KLI zz_gBa5$3O=)ZVa1guetocfU?}>k62S(OLWJ5OyB?KR{&0 zp;_c6bp9FGE9up6Ww^y!h4b z@1y-$L{t_=ZfwsByO=}Ud7tPV9#wdg1#ORdR>6&A_;g^@4g^@WOMY;F{- z8^xlBCSW7gaob;x{y6`C1YX1IZC(}b6EsaEMqQD~5E==2#SKf}0_Vo%qawFS6+2sI zsQH<*2xjyJjrCAvtJ109@w@4!SpQ=h04zX}`6x0k*7^;)JN_LQ8&kDl2F@CetNdNGvxC9Z)rY2D(Dk{Mdjtyeycpfql{I)fPb4wglH&k=%;k zW%%6@n~jJ9Ak8?+!QhR=9Xs_E0c`x~R%vDzavSWx{{zrc6tj)I_pFvcN3!Zs!$Ir= zg`{y;7n1zGT1I|ToKh5D?EzQNSQlfkr64c(1lA4(;JEOAY=e?J>?j%RiBw?))~!cl z*gt<4D?oFg|L7AC)ikrqFiR4Rvw{IUW*)KSN2Fova5$TiibNofL`G=6oWz4SsZZJ3 z&bvEBu`f|6^-4RT1GTW196{6Aa-S@G^xJ{p!wPIu2s%Cq+X-z<_PGQBzAu4$=L%lE zUHAu0O9jnPm#7^y9;V-iQ*Bf$LP%rVWWt=xWew(j5 z7+tXV_)@W~#$`7=Q2ipd8UVo)D@@^*sY`{DL`{u8D=MI^pllhW1TA_o_?;jE;u4c8 zVq-egtHFT+0_2Vd|SEbcv`^mK3Myq^nG5Qb-n~kAaw{1<9MkAZX zFqWJ58G@Ao!268_yX3^l#!v`7OX;mkRBU|AFaL&3=lUud9BN2pgVF6}(jbuMw>p#v z9mg#dw9mpGF3OHzXil2*_6mVb05R`zmf>2!ar&0SGUzEo7(6ka*8?rj=Fw}R)U17@-vjX# zEtVLlO||P1UcdcQw`>XwxA<{HwV_j{<`@YGnQGIY_UNr2QJjkdhjXSbMhhMRq%zw@ zn=m49b1)~7pZ2Pjno_w(6LGsz-l?L<;Rex!ojCSlD8(x)jR@#%H^LEc@amUE z>*G}n3Z6RSh45bbqYOc`Gi5P+(x;39a5lplSGmHnK0qJqgyq7ss;ehf^x(!A>qSIX zHb!FVj{(&o-jvn$Uup#*1jyFiv4Qatkf4Ep>p5-1{s`zMB%}cf`I)d2XLL4lLlRRB z1!aPC0aN@KO|oVblB~A1enFL1ggH9Ceyi2hXly=Na__xaJ?Pim<;4a$7eHmXM?l|W zPqB3-j_3Vl+u3lnv61zxsV>eV=pBAf%4~OEuU&v!7lsc(iRfIH>-d-Qv+hZmd9KTa4)5(;cPh8nKT;;}GUQfgPpNA)#>G zKnbSf{=Zv5ar)<~+~kkD%gZQ~PBJbjU^4E12|agE+3Lk+r4^a8DWkj(AB7l_F(T-9mxuu}DK z{%4|xo$@Gum=CLmQy@m@;S!_;yPfJd9nK!f#db^cE7FcVq461^Yp&?!P;RQzS%#}2 zTQDGl?%xV38oQYwRMF)Qif*J$DFwY9)Uc5zXVM@#D{tHV5$Tep* z{UiT+@Nao(eJjkd7|F=T zA)|-QA7f8P=EV;8QDK5Kl zNkUC?{DN&`AG9rCa|Gyz;)N{1o>R+b=h@)S8d)faM$wdUsbF7i{Qr6{(7Muaj>x67 z0~gYZ^@(QNd$lqn+U{N;2}7H8%`kS&FRy?FSjxjSEU5tJ2+eCMK!}6vFk%u(Vt*j? zUM`9-v!M!TK|98*HsFOPwq9{l3+M6);xFXjnF>}rqtgy;Xfq=v_8Y?x zh8Of~PUFMygw*+pegUD2dg^*s{}=3>y{EW55Gt>9a|)q7)I>~m461OX^mC)l{zN)* zqfHzsi0!WRjW)cgPv*Ah74|!nId8N%Uic&Y!l06MqfPhkXrs8l7YeCvGz5@!qs>-2 zbcQ$D>_yw=pTP#%Fwk~3O}p!?a+m}D6{9s;a;NuYs2RA>i_U!@CDD}Qu0bo}YO}v{ z9FgQ>b;}cUK#*348b~`^RxH>U%g8U{crrt3=-cyFEkr}9qQFWU2X?Yy$$!UXBDqEw zP>K6U#4vH#LruYts}_9CjSq7@e84lu3&q=UF?xFquVMA-u{n6euCDS?n3M{BYH$kg zvx$LcUTwA!8C}6l8P9UwX9Fs~C6nU*4LM(7x06E5v=*IY%iB^x6pynVpqC0BVi;Yl zhkv&W;sP8e&3cGfkf&MMEPP;Vl1li$yjzB+WJAg${DQzdJ^;b3THGwbT56zf>SU*Q zBdvt3+}$#h!Zx#GxZu2ra}RtA`i)r;PNOmM91U+yf;QCHRZz5@7jsa7)jD#_iwU>= zMmlznd=n+P*|W&DpASLllhEx$p2S+O9eyzX8?0>{8JoSbo#o?8V&bGNs*uOr(eg-g zEz>`Cz%SM$tL77p!gH~QujzOcXk5a-1#rIc=?DX@Z~Irj*q7rYT9p?`2(v)_4BrK)==jR)LBdY zeDP;%Kz-Z(V8I9^X{J=y8`lJjlNyUx{h*d~VfP6b?OcK8ZiAe z>-J+@2+)bFal17@+lkPeN%^yAqnear*sOj<_K6gZn3PY?T0@=1sAE|J>kg({KR3&y zY%?w&>g&qjlRhUeAj*rHtMYnf>>2-TE%GOo3#ZAQ18 zy__Sez1bq%AtJ7C&aa*{(4x?vGoj-B(2l$(ORl>i3@j&0#@)y_@mZaxwY@2vYUn_- z{Ku**8eY|(g=aj=IxCho<2@Lj0D^GK?8RuEW6+YlVT_(h{0eagh)kkEer9fR+l%n9 z6B0^9>-5k&G*abH@L@xDw~`IXanB(wIR6Ms%j8l+V;QaJ_dr{|rsx`qzoldJnFp|j z;L^r61eccZr=q3)_oQ+7DA;*y4i(~8bfSEEik@;hf4R`jQ&1Zg!AZI-R_;T%Bz8O(DR@U*e z3yxy=;f!?SL2?t<3ct-UQ77NsfuvM2_${jq@p}|Lm?$FLfoh9%1*rA+$qT6;bCAd+ zb%qD(Y=APP9!P#_tev+Hbr(VFqjMse0Hp$%U7O#3n?pZSZ!2=MW}UfMuiEpWt#X0K z2mQ>&b~D!r??u!&oOi@9)oTTjt%-S*b1?JD)qS$f&O239)byCDOe zW*p9zlS6NNQ#wR9AGSjzArfHTPQ{;kn8*)vAk2eQi|1fa>)rue2G@D#y>OlT#xuBH zxQJ%}xQsJd+bWl~O5)mNv)|-aY%)3ST%-m6t|lKvHusx23}zhW`xAvzEzlDbXctCo zDDb`tbRQq+vk)?XZb_i?LZE-iz!P_4i232cCmb@RU4qkA!8dZ?-8$g_=J~c)#gAjXlg`I^Y+-am_sD`DHrYz)02KI{9&S>G4fQ;ocp^Nh9t-WQnk(?&OM!@Lrw ze&h8)s%jN*z?VXT$N53XuRn};EDHu9YQis0)UTVW;*tYCci(%;48EL#msHjFtb%6x z>bD8z&Qg`%pdM}Yq7^R7;MahvRX9P6_g5icIXt|IpXA#_s%;qj(pIZ`6ex!HyV#2^ ziw!obR6D_Gmr(=U;umjw<+hm{&*wak%h7|;P#kZ;;w#uKc$#!bC>NM3yV^VWsScd^ zL1}z?(i{Pe++?%jQgb7~AAq1nj|#7S%63T{|GWmIqf6fUx^&4u@nO5Q@_1_OX}w%KW7OSmVS0+5nux4QH3A$*Ph9c`?yD0U&U z3$uqIZjrXGI#_*)q2o0W1UfJl6#i|Ar6Z_peOT#u{WYQE9X>1_dn+9nxiKXN9WWuh zcF&Daf_uDvxkZ0G%4ecqR}x$T6jBA8n6^SC`nts#CB=|dRTt*!SV2hCE{8?!a-ol% z0V-bgPNM3aaAtXSu$K@6v+7g0jivAl{4f*-PkIz~DTS+E6$-!Q!%|oS!wc+%!W|FB zfF}r2ts7^(DT>*a0E(Ts|MCs8+U`3vsFi z&5~a!wo`p@SwxHRe@3qeW*Xd9KvgphTJ}hqAC~nfbKl=p+Qn~b>=w(RuWCd8+IzoZ{T7Z=pm{
#m2S20qb(XVLqWXE+gT%#muEYo5;BI&~<$4pS7uA_HMEahTp8ggbGbA_8Fxh45=1!XEuWIQYH{2(MAq5`}yDRIHR? zD-R!v{+c1p>lDIgi#&b!bAJ%VjEmxs#-9Dcg{FEJnQ&Hr)t|46B9JZ#{_<-Mg_{Er z87;cM6t-XxEyT$)a4Z#Ef}ymrw-4PBZkoBC^hK7!ws~(<<*g|{BPN*g&yr49^6U#@ zH9GjPR^u-;G|6#YNDD5jR9n&A0B|}P|K}sZ3iiL*_3p}%*J0Q-e|eaHVwk_!<^L(n zuMG2VaQSn>{O!a187}{nFn>Upf3(Y=5axeS=kVLlEp zO!zxkQtvWL>PIxI{9=VOX;h#q2Ug%o7p$<^q+Dl427D3Eq}+U;?68K{-6<#v;@#H6HTNa2V=%vLmfk9j8ahw));-vbnIa@;7S1y>+W5tY(^ zp0wh(3b7}8sFty^X}rm%Sg~Ag+2SO!lVhC~#&L*YD;z6_Jza_w!F`6tu;6&4vZeQTQ4K0E zeP`78oN9O?sPbT2@<&CJEf4PbspXSZ!&z7lQO;R4oNf68QV(cyYPc^&YeJ#3KV#wU zbGRjC_GbjuEjRMa{)`QE^P6*7aWHajEGrm?`cLOclvF{bUovpg?f5|;>7@$6?mrOW zyWIdTVnwJeC)gPX`^IEUAzES67jpM8zKJj&qj=^Gr89ZTgBpD|4NY?B>SslxZ(AW6 zeJLMSqu+(Fq0v_&Em+7U0!;haX!!+9=O#dGaF#`5S^K^WRM{eX>+d#QzDkxKu5g3( z&p{c6HsD_L)t3b8pJg4CCpeYpZWE;7r85-HmE`zKW(6!2+8kmr_7bfvG~K4P0T^*66vgL$IdY+BD)^VYM<-eE zmNp3vJu`xRy6_3052orW*$`G$#nB|m4N{L{(r9~^rm%pC|AGmMSplk)$My)OZe zs>uFLkjSDj5sBgoDk#XHs6;`HBuWqMf@ahxia5C8zG0%c1cOZ^ZQB|b6!*9e?&u&k zXf!OQqoTxRG;Tu_lp7nzFe=8C_xqhwb(c;D8Q=WB_r3Q$KgsP|x9aTY)Lw_-gXg(SyS<=TN53=ge} zRIbV@ALzV>GBSOIsjPbWT|}i-m}Nny3A$B*@$%ax8;s%tFe1S?mUG(Qq*h?qElCU^ z-gxe+SKvVL!ngUbRl@6tcwz}Ce(%0wWKDXs3*}2otJzfqyd~b7Kv+|^C|j^i(hraf zqti0ryizwqPysp$``&=O>gf;wGC@`_BH(dbxvW1hdz#Jdy0CN`-s)zOs60an{Xn#&$ZjxE*!}aUFvT06rP|c~qh^oI5|zaK*&C7Fevj8m!!=f|;3OP3GMwE@K$aB9=Gnia zA^a`dr$)r_!fEx&)#kz#uKRGmoNd1R8@H{c2Oqo-2*+j#K0~CMWf?>kUD9?Faaihk zN|9gQXOZ-1b%L}->iNh*qw4unX+*yv45%d>86flBmz2yig_yhIS8SkF@cl-yW10vp`l$#|x@o1Re3h zT0U%eIZv#zs19k)!CZpx8ElpWD})NgpfcL~33|b7;EL4qZx;3&M(PE3`HnU#s|B;Z zVwOLpFWr=B)sW zFKvwyRjmsgrffSahN}yl$*-}T#Sf?!64XK^T{gOLS~&G2|JY%5lWKvFG%ZXe28`lW z3poYr7l;;m<7#AA3tu3DqTRn8(wxMwfEKRgCx|Vk7*q?lPRfQB?h!5UuWCVXixz|! zzZN7xw9tz9-Gvr<4Y69dfwD~3g2E6j(|BgA8f;z^`APyK2AdNB*1Rh}!Na)ayyyrPMYtHO?~`WjC|m`4oJNELEJtIN?=UU>ftVhGMb!_-Aj!8ATr4+`FRbrq^Q z7#)RXs-3N|6ed|+g9Ip?1}j;xbOg6}33}|mipuxYa4!XGwswhC-vDU%g$S!TOZ#bB zcC(g9R^PB8xI0AUyASRT3b!U5?hf!Hq!BJ58hofjh6_KI=JHV}Np$ab`PDgNfom*O?mRsNUhctN$mG*}N|U>gH@hFyw~ zV5a9s3F9_=Lkk0ceRh4kv)@T<6ufz2?XBq4`T#dD|4WAG_F zj}IGl&iE?|#dj2KJ+aiKv)CSGRDF1nUqt>W^ke~_9)B#V2D2ItLh2H}%Pzeek; z&^hUn_A5^`wEqQ6fcAE!{ZN;7CX^&vHE=HeyU_j&AC~qxrwHv*5VTL-U8p-7#grOE zN1+YZuMTku!+qBri;I4AWb{jhfo~}}rTXP!Iup{a!XO~ZswQUn7+Q8KPVuO|N-)SH zID|X%E)(s!`xV`qTp_w(h0-4L)4m3A4bgrn(wtXz^UwkN#91yM5DSknGklmPs-$>L z)L$MWq*;<0_qSMX7VAAA4{doQo$Cn%L6cN~ zwn0GFmV)EKpg+ToD>kW*&twI@mP^F}8?b`%6O0ucF&>Db)g7b+>tF7)7R-c_#J^Rb zFFh+(@E9M~3LZRJ*pz~xaLOP8@Y!UV6GLhv{(CS|5A*v=w+li3kC||Vszl+1elu3M->*YN%w`D z^C9}#@G~}%;3BTJEj27=AuZke)goDIv3uI=LSVJ}lJo6Fw?_h2@ zQx^%#X|&3p#_Vf2&l;`nNunb4e6XMQ=CQ$k-WM`hkTXrzoSPkoqsTm(o>=O?6O=hu zxvvxMLH!En5RCTtx^MZ4f{(P0!)Ss<$6-fNZb9QyVvTR}VXg5=kz~G>N3Ad3n}N_+W-@tPBxUC8>Pw-Qgcb!xqBQQJG!FCA*i&gNB8?vp0F5>*Rk0(SH=kZ3Qi5V`KpflcK&pd|35;%_tNv z+68G&Lw`}9mBh6YpxEzoWv`ZbDJVhTPo%)V8KiLX?ka_+kF!!ZhyxPF)@4}Xd4)Pl zd@Lq*eps~K9nQY`enP13r?$z5&o+;DUM)3Y^q#*^Ow|LJFP3xTEy6Kk2@^^ZV}$eE z+$V(dpC0#d{w)*)f}|kyzGNrA?LNu^NFA{=6{O=j;FMz*=F4{SB{)q`Q$3BDlGUx0 zis)24I#zW))X!V+a;xf@1wF)-GzcS)sMc*UigTgMqqpvao-%(8wK#fFV_vLLQq46!jGd_!O(D*Kuhsp(d_@Qo-@EI7*8LhaFF3xioUmUC^bwFM@WBqpdWWIrah@UJ;OTUd>#3TC7ru)VMY zX`Lm?jKzf%t0}2HdVfg-roIqm!{DeQB#ObRpGdQ-F9f>(^ybm z3U=!0hF~VP?y!#8MrytO^GA5?GyuVP)Aj=`1|h_26O4J-H+Eo}k{{iNw9%SRc!dP| zq7!e&7(_8hn*uyG&DOIA!~1Mnm2ifZD&hS_M>D>>Q6d@xVg$>fqj}Dns`~D(~@il+9cMc4JVObtL~}IIjvZ>6FTEN)Ove zV@e|PSSEgFgQS1qT$R`xmpcn>9 z3Y;E?Q_djHh!6`=X(PxNYEGextWaJhmRNC5w@zFYr)}!TDt;trMFF&eVyvL3cuDE5 zk(MjhRS0m}|JR!@uE8aFWvcmjfqdlgVXk#d zKHdAg8$WxrS=oIprcn_wvJ-}bvfCd8O*B^LJ4F>;M-d)_-)OpCB$1S+f;Cl0vd$_J z+Tutg4ALBuu%j=B6j=lBvPI?+#?KI>O%Oa^QL;MLdlS(I{d*+*y9NGjj|NP4@f*fk z7f(p*v@czRSCGj$qe9aUL!_4nX$O{h_%>TYe`5p=22ag;51zmS!L=;J)0?;+i5`xb zxc2td^j6GwX^Cdnyq_J;EosXlt=%w?$;o8z(-eFnbhKu}Iov0}A7(Xzm@2RB(g|`* zgX4Qv+kpV@-1lcT4I&+zb;7;_J`1vJjMnn*ftFa+8A!vMq3kJV|OQrkFSx zZ5OpYH3bN;EJ_Y|w8vpYLk`!}QW_*hU1=D4YFyme;FqI8b(2B0G3@oM)w$_YoJFBd z%$ecPLrChh{Xv0)>OVm6FPHqbe#nw&i{a;*KF*Z@**uGWkpHJ)8zX(cp`bp^6I*PLF3 zy_#C-nB+*u8M>Oim{~>WZd`aCIlGek`387k>2H&0p+i&x)Z-e^LICH8hn|sPC(fZD zR7@+Am)HX}HUk2#+Nglppk)B!Oq~8JszN-V^o`vj&sbaDpzE2 zwNR^do7gyIly&TK=U0_MMt_-SQJXS7a!75r^;2Q;x2FhPHa$z8`nFa(r;dV>YscAfgQ$5zTeNR$#vIp z<--k;gSik1+pUqZ1gz8BOB>ABnmHf+x*q^K@at9pMKb}RELxjT=fbke*<9=@U)+UG zMcbg6wMcVUNltrw!xKNEHe!Vty|%$Zz(#NPr^zktlv{shUSMP`IZ=YU{N9Y?S%K4j ziy3&ZjWvp8bq%svpC>6ah2u3`dS!N|O1o^ivoC22z1KD${5nk+u%1M)j#Rc}m5-}p zEaDmO@NZf7kCU`oF5lgs!0lo~aDY*BxTv9VSk~pHCizLE$8uadSIa#EJ_^{7kceYw zcxG#%A;kriXq{1@!ttG)Rrd%_FE&++VVzi3`K!*Cqtz0-WA2O9bm|J{U6bUi%D6%G zp6SxdElJ!>vf{bB+|><_f?woOSjUGQ>&Zrl##qm1NORtUIg%O^#u1aT{tp=Z>;LQm z$Bb*6kKbIRfc^elLztazd9p))Tsu&77~x2JviW`An#2J#J+4Vq%Y*(!P_wxR1e@3) z^{muh^3h!`2{V@l_&QAP!vowP|N6Bk6TxG#L8A_!d?^H)r!{Zbcac{cTymE=)gJB(i4b|Yjyr~FoozY=(BP`E{QT; zN%c_3$@#H}Mg9tQMc3Z`$u3JIGnTNYY>4c0BG(whSgnT93+-7L#y{jyIFk=+7!HCJ z3}YeEoEJCqX~?A!hPJPTmr{5Oa3mVwRV%#x{qSZhymJZfysqG_oM!0b-WeF~ISQ{( z;jQMIr7x`Twj;dlJHxX!=32vIj%+YS!USl2uPw35?UQM?oHNlvZU6Bx6zvk zO&dbOeJyB7y&9CMSf44|^N*GF#!Gqkfw!W0)igxH0m>I@zx>~W{*a|?IJ~q4l^lBb zrVr82EsHdUb>&LF=SZ&^wlg2iP}Cr;sY9i=h?ISBOdq@C2rA9m;@m-sm=OZo%l^Q5 z21Qe&Y_WGWSfbxxL02f~c2p4f7iu-JuLcSiDT#onW$IALgWCHTz$N(0q1$Q z^4@fUu}JEqtvl+BfbFPO+F7zM=HAc;iL@4TE=79P*mNofop5$DIKNkPmGRP$n(>lb z#Xp|9jgP_-KCG8Mh{%U1atqR&iXP&Dg70CRZzK57)6%_d9W}LFlWk%nTOs42pac{& zH(K^2Xi22^F5Vw$t0oL z7B~ZiV(y1fh%YcNpvB6bjMhrXGuSV}Jh>aWBIs4a9)a^(ZZH(|G1+SfT~+iDP^pV> zLl~e1zQ)U%7C=K;FK@{YAf#IuqY=W?`U)C}$mjtok-rVhSlL{|-9Z?R>6Cp6vd1Pa zv+}zHwT_kRnfQ&t4s-vli1!#I*?|g?eF^jHK*g8*8Qi@x94beZFPl+8lM}0=RHPeJ zzAKI$X~(f6p-*rU0_4%E(TB}NX-06{y{%azYr2BOVFZDMlLNYfbmB%q>TV%*?;29x zMnURnA@%GU(yK7O-{&shLdx$N(p4J;X@G?^ple8bZxp0r3#qtkNULF>zsKF6DrB;- zs=9`C_r}0t1!iGoWp`-_M{g7?DA|S8txH%iWXq$TbukIXJ_p8Lhj!xZP75xvx6O6( zycz#QVVoUPH#r)5E*5$?8k%R0E#;V^grW;&0z!uv`*0dFiir6_*>iO5$08-$zNLw%>M|a0!+3vDfwmiq_w?EP%ODB0ZFWM0&L@F;@q57DyoRE;F z(P9v{?m!=ZMZ9Rv>Yfa}Cz#@)<>YBPd5V`Um-rPg%)3!T^y?&0w=$aeE-?jT*KSQQ zlMEUt6O$$#z&7wiQX&{B2*kw$0L;ckp{o}mYFvDai1g?;+g8bksh~B7 z7F4`o`B>DxW-|)dWE}4xXD1YLGim1%_%xrx3?|!f$tLXp59U=0v-2nf0n=A9j5Xj( zd6!>Kg7z|(DfYg2_&@%$@I)Gu#XZ@%P45#a?|;{P(g*VMK4HX0@jgPb1=>JHDp#YS zkeOcZi#IaDzA4yW!EuSG^cIa1p2HOL^%-yxxDxF?YC%<;qP7Dg8lHv$cy^c6cwahE z^K&O^syC9Fi5sS7UYFEl_#$meG+#xo5|~h$?Z-6fcFuR!UUJaEZ4H@nVz(spJ=_}c z0{|+5mt?Ft!1qYQNHb`t0r4T_9xelNG--~XlL6vWq$4VGVel_EnVoQqffMdk ziX-U)cB5@)e;Kwlt^d)oJ;;!T0mFwMsAuIHq9#|U8OH#C!koc^*_HI<1vtM;)l45% zoqBREzYBc1EbZi5=mz<6Lx4T0$(38D92>Y3=QU^-0)|++QKD&d3nVn&8z2U(0mcN8 zm1OV~eYE*Vm1+BFyYGQOZuO(i+F9<)^*_Vm>OD7}!w;|mVdFV`A&@&5DWrk!^~ak&Qsk;_1{)A34WXC$(Nt{v;CG;6 z+gVDsP``Z`sna9?{L#iEW)j69J`M#!);AIHa);&PK=byQgS5)w%)}JRnOzQ=j~m=Jyb@2{BW=0z!Hx`>;mqtDB;1K z1bXL4cOr(q19<#O7Hnh4!@U1nhnHH~^3ZHUVly*+BZ-{4nFBuSi~ujH{Jd?0)pZ5S3Y)8ytp@WA2xUl5z7^>=E*@$yOR(Avod@IzCs2P`N2(MK-<*|K z{UzJ`9QyORJcmd=Nt$c)y%&=@Lv)CYArBCPk;9D|#jZ_7Nf7^0y<$b*vN%Vfypg|F zfk+e8l>>(KFOa+ey@!8hI}-vm0{V#LLK6YKe;|qJdcPdY^!$21n&VCBdcQ}C(op?+ zKS+yq()&&p#K!1-Evhp^dMow5T;HMV&U#<2Y-QB@ApMp}@4Ms!h0)T6^uCAW3+R0t zCUw?(Gm-sqy?@N&LA^H##7=sD6UkQZfi?`#BlDuqH^KRruB{D_dQqE<{d{(I38NLr zwUD~L32$r{IZ@YwVEl7!cYnz#vD7it)J%hxI^ zRRA*Sgx$~OoBG@Oa&6QLvd)%q1Z1f@y-!#6iuW?bqnlWKB~0nM4|cK?==#pEWN|H&>+i4E}m9_;=G*?R$ul{9qb)pt@b_6Kg_yIaCK4-EQ7LY1;B{CPL=iL~T3>8Qmc zuy{4rSWu-^xXJSyEl&HUM-P@N+@7_Df%tq_66#Vg3WoOk@5qJp{&(dPbMF}Q%Vni_ zmwQ8@$indai+Y(~E<2~orNxuW{=08bE=LJNftI+D*gC*aPw?zs+!BqLD8nes*4HF* z(|XD$tyO!g)Ws8~r4KAz;0-L?vRmf%S0E}tj}@qOSdEIy;$3Q>4_!i`bcPRqMr78h zds7L$<7U>;%u?h}0PtJ@o&(Ag+Ee9I8f$qoZc=w)0$XLYDEyYj8wyGTtV)~dHVY+y zPtt$`OjxMYYVsNTMhyf)8{ZCp0P3W3G3Y{8Z|v~`CYX zZdvY%!&%Iu4Hw`}I!9CVQ4E18`M7jZDwWPwc1OiAG-8lvRO^;%VZw z5JVZ1p-O4aJRN-N61^nRI5YYO|Pupi5ku6yNh^JsW%2~97ENstE}6N z=KG6n`RmnUxCHpDXaIaXlg@Y?H~^!d&B*&CZ5w5{-E_Qsp)^42xCTR1%Wcv;IVba$8>Eb&Ej zIB0ihkA+ZQi*9a|pv49#tnqWh;19P7gMlT+8E-fJNxMeWLsN#^O*h+K7=!GJ2P4#E zOSaCpn@*;bAZT zKV6Hq{eq48ftrx^1CLKSe-=vox19b9aUn1kfP84Inxpbk#}Xq;KJD5ufU#zgsIuqH zznNvtJQN=pr6Vi_1{npX7z!mNJD~DM0frq=8&?)-wdrfG4@X=HQd4R{VI!-?IIzW~ z@JdZxttg}uDR-??Tk}Y{%%o@xc`S{T{ajL{ofBvvm;snrAC2)HC<+qr=8fjq{A?G= zSUZN(yip<(b#%Sp@do}p-NVDl)MCjsCy(Qo$lWXHw`8A5^l7* zh6p6w;Mj)sC0fU8Ukgy=!zs8R#4Mc>D2~SHI*nO+-QZl4x0FC$GSC^!s?3LN6-Xd% zg=Vap@o{Lzy3mZT0iWJ3@bi&1bx>+ol&*D`cszkb4HU>DWG!ckY&pYSr~MjO>9!ij7*>FI-}$!ix8y(^2102Bu%&~j>ANj_IO1pv zR~2jXghP=@XKNb) zNdWx_NP=S~m<=}}?!R$k`3zx#tx6Cl#8fc_uWlsBhfF{*GvG{Fj~>gTjneqK6ZTf7 zmD8^%AH2c*kj`)nhQqxt2Je5D+-vnklBOlLsiiVYw{6O7B_5@iybD zch0|Si?J+I(-H1SB)6a)&dW87Y+4ki4R0795k^Zw^b~h9P8POi{G`m>HMjUCvEfQoN2coV+ei_74)* zjYvs#$9L$+J0I5TNkWcZYwts~3AFau#PSA=Y~&+6jtzhkA-RL|4J<-s@Aaq!Q5&nldZ$$M#*t(kFQXb3zS;a%E)zT#Jy}?Nmo!DD# zhCb=i1YcDNXMwfU48fzgILd>KAX06 zndy17b>i^=v{5#|;~N=xoVhv^kKfCvIQk^QlsH(skH_8|F8~z*9;J*D{^;hNc+5i) z=QsKec$_c13Xj{T@o4K1sKE5Mn4*ysrpKNS3@EUw#4~jxn4zDMCx&j=f=KvzR5<#I z^HfC&+{Y@GvbD79+_C*?eofN68DJ&Hj9`H;*f=ng0m5-tqF>ZFse|Cz3n%b8+Cyf0P}(Ot~zY0~U>b+S9Z26eJqu)yBF0{=5Q`PQ2B zM(X5_KwC}p4J$?rq?T#L_?Z=6)VfLdhZfAeNh4I-jaH()G?4hU(-yn<=~m7Y6U zoa!$dkXAT20(E_A`_#6FMPHRuJ6AaSA>)xziMrkBaIE||UXh6@8{J%81i8ZQK2IB6 zarO14RDi6HL;x;@Ut&tgT_E}U+;Jk;kz;W>b2q&ccjJ$7xf=+t^Ks{CkXDQf+B-39 z#=y^(hsS~Ui*%Z|^hf|C!dfmMXV^YXWp4ZdtN@AR`+e1+pg=$oji<1pUl*fGAPL z#ET#;yiSvw8gJzy4xe9NhIus5+#bf>@9YMK_eHI^u{G)J2)X_atgk@6KSt~!uuP1w zGhRbvTR8wO%kf2wfZTvzYa7kWracwP8@|nIXbX(2nuB}jSRF~Y?RksxqsAw}DbCo)QI8A!U^9}Dss z@d#qOE-P<>mQmKk-#Uh!+g*>zCl+B2T{r$7_mDg3~m` zlc1H%w;;~lL9CmLc}m5)gMooJ(EW)bzzuZcyWvsL4cjlVjX0MNyN!54H_#d{T8$je zo^M#0SSkJZnN6`$TJ5G-8lIBFA^dtBy2|JaV)+{^$8IV*UIdQBO|vqJ`gB0@Wa^s9 zCoBEQD1I!hQG3$AkbLc3;&_0mFtN5MhiuHfftC7OHfiG|rp)&Sj%Oyu6o5W|{jaEi z45+T}4fNG>QMrGN!#~)ej;O*RJnCRdki9T83Uc5;oR^WCU+OIDhA z4o`SH{|NA=MuVGsXf(V~D$rlCqY|Cu{1uS7wK*#))TbC4Gg8Y}B5~Y+b&0-4YI3-s zU>_rS(0F!FGU(==SFoNdg;%_;f;t5Yx!n%H2OEuQ8qp~eUh}%kT7#OAmgfme6@Bj>|A3(AFH5e zD(Da7QFyx_^r~M4^h-!{UTE|{?*Pz^#rbAWoA#Whuc;wC+@gY7D~wxI_`pH0c;wBm zVjTcBd9HJV)G+b^JAB0~Y+Y}?@{>`9`;(Q#RmTeVW0k~j`DVEdC`ABtTP>8fgZ z9PvgkGSH0hkZ!BVOf&`1U@Yl0jYXlzFWGt3JPNhekkcqSM*Z!|@3fD3d_t8Rm1<8cD<9|d2O7B+ zWF3A$Ithf~)c&Gygu_Hh;wn}8H-Dkh3;%kIPus`-j3Q>G-fl|++Mdyp5!n@JyHY#AKn|(w^XGAJz_zsaB=QMq17`-1HL#$0; z^tS!1Ser@`waV!1QW0xUKcm0=D2$?7!j^-@E-To|ZCi4Bh)9ugAhv86!_7Ysgt6bl zaY|K9^)*P~LDo!1HH*VY0?rN`{a~*))x(jx&?lWiACk+ONM%ic%g?_xTrL2+;IbK9 zK3!4wFQ*2`t+dMujwmBUlQ`AAYvIW>gf;b&y1cQtT9*u`lbdu#m5+`58$IckzetCso zrY~i5HKRy6qJ#StBWp@g&CNkIR|l_{gE-43I?ZXAXiAdUR5zhFN^+4AZH!40NJ4c+ zb92Od=0z&!1q5*Ezm2#Lha@0w3SjgID{ctjaTUO!M~S%q&W9Di-+u4}aAgC<9h##Z zhiqNks)SSp3F$9{BqEiG03lzkHH0hzMIfXVgv{U964F|dct#0XI8F%J!%xUgN=Pd; zvGx^92qk6C#^L%0EQ4r9f)USLLlq=dBds}URAIPcxzqb&p5FRWr1B;AV4Q>syIH;2 z*ShSh6qY17sD~E*4nkeQY$b9iA68mdFg(SJDv{%?o)nbQ-%q8ulwGhf5+ z(oKYSAUBMTbH=qB^O36tW8AetM=eTCv9kgvXH{gM28E zb7aH39w4-Ezy!1;ox4BqpRVyHZ3181a6BHt0|_uUYMFgXYkA^@7U=q7oLVo z8YCHy97{<>mg?eXwm`j=z^Jn1I41QroR0(p$ZG4!iXj!e>IrSoi zgl9&3!nrnJMrT?)ACZH2?gffxojeM!_Tzb-@gQFGG18oSapOJo+zPQGwn`H?GDyrw zLhY%Xc;xX-(-%w7(WcR_%`_$9-)~CY{$)(*L;NtN^wwV1&tXbD2nM9RbC~dch@YnY zNRu(8UZlw!ch!nnHZ>)o=Nr80_yHuN6eXR*|KT^Nt6|WhLHX{QRW_`S$(~u^r;LP{ z#ggP7esi$jtR!g`l8jlklgh|aU1IHym@|ZA`PO($MO?2zT(3$y7pD>C1rlmvRUAc$ zhhf`gHPP#3NQIrh$l`33Zv~CfI8W$MYJ;0CE2yM8UM3GA&}y7Z8GcQ^{Usm2C!Hsl zF7=VTF61jv;nJib(h5fVcDZxhH{ivzRk;crrVZL^N(Td59e!5XxPjBv;2Cp)lO7@? z4UM4$9TQp59G7M=wm1qQGDdj1APfPa?G87XMs*ZlYRc}nME?tt%bOp%-|a+6zy7Xa z#%1KBzIg6~W5s30hsA83<(qYx^;CAes0g2&cNU1*)KLPT9R#9bPTrwBN7|JFAO&N% zyoXII?;WI4Vzn+`CV(UzAu+PKouD-9T7*dFAj-`TAyy?Lc?AWyC=GSmh0N-&U6W)8e z@0;MgrdwK{pIIUDQrM5%!_OD7nJ*&_^v%2kzEr^xGMDkbuqD+G;5bMvH4#sf4z9hp zfGOtdhEBHGlGfDquF88lQ)9<7WTr*ba+74z*pN2E#2bS=8C#nOt|;-X&`?Qq#?W8D zxY0*cp-U6&it04HyLov1Uv#C%*Vt(f8-t2OsTrh=d}cM$rasKR@i|$+C$qzBJ#aXM z+r$viWEf2%!bhT$MMA4=bCuM45m~*tsDS3@Gw8-3u8fjApu}e}16&u>H3f8;cH<;7 zrTZnbt00X_Sz#I_JvZv~8H^Qng`Xz`XOI-Ee2ib#qzoqMKiy+bd=DC@|8x(|gCnM@ z(~H51P3_2Jah4EjiOSZjin%^J;s@_^4>R8=>xQL+>Wz?(1UZNv-j=R$f{qO{BqyE6 z+37%j z%?84Whaqi+k&D4D7y$%tI(fKNw?uK@gz=b~?gI_aR|AA=Ii)C&fI{X%I;AWbwE+37Kxm zgCq6>0K5e>hXETjDLR##aMkxl?m52{U@Qhe_tl|l z=jrPbT+6q!Y%LIIGq5+?s8#wK&6*Xwe{c0Tk}I33Wo_XN?rYMSES#WgC9|F){}_^N zU*jA4$|207t%8r+#6sOY=T;{E{VYM#h>mMcxqGlq5=aban{P;2*28=rm^ zez5T`A7x+>Ne4Y9aA;#g`W}^QR2%RMGZa5S>{M(&>GTlv{$;9n2I3wwcR-}DOSBq&qhe9k1gmx;}dLzBq`n<3$6nwK1 zvhTb~1TjOJe;eFAA(43luDZLAyU3bJki#5sSO+Tb#JXi!1^}U(cg%Q@6sIxtN_Ofm zNQG*sQdLp8I51s$4qUa)Xn8iu)P!ECs(d9&!XS!Zg$9WCHpc$SExxX9Q5YJKrmFD& z5CBN&vn&~-xMq)wIdxv6!32=;$cR?p2xJ4_919Zq5F5B(FAyUNuaTY-R8iK^c0G;9 zG>xY*uEeyN{46CbYc)uc<%hS|0}GEf`aLYmr+HXXyQ5=)J~dGZISoJw1CfyRs4t_h z)-(2^@xkleH$g?BAQsu;E)DsCXb(3V>xp7({s8{a

On=^5_MIL?;S|2>y%+3q3@Yg^U>{FLH0&(y$z+EBjZ@wm- zb5J6+FKS|E)aQ)aElj*mekPrDpU@cur!9L{A=c|3^_kDuJNE@p#Q?~O$_LbfeuuTI z^!9+D+gI6hghbP;87`aV()U;lV}J|pvA_Zj#zNU+afp0Q+kYTsl&{^CA0h%`k;PaP zai+DB^(D@JGmsbprtaXMWw0L z6Gsr>P8(hf!^7^yUaX9612BAxh2BFy+->ud8?G93+Y**u6hm82Xn`pSA*8pgxn>76 zxJBx>Fx3Yuz28c@*jO2&>lsl)2bMQqxStytY;1#t1=sl=2^2=MHc#hR@#`KGg7icY zoJ-Nl!BPdcD=L<~!Bx!tP}w*$cSEI#rfk|O=IQ9T1y?a&jErU#^FeeDZxyrK;_}&; zS`^3vRjfYPZo70-ibb}5d5v(WP?}+Iafr=`3?-)X9`*ItOp`&TYf=SF0KHX}Jvgvb zl?KIwr$#E(6`%+_uO>;iVq}KJ10Jexcm4W}E#Qv& zM6_&8RMt6mV2~|Vwnlb|0pGcGv~Ca=FL?KxT@h_mMDc>}aSOP&ERWweSt}`KQ5jQ) zXiBZbMc#^43`@a_Ky0kK7;l~K8B$zl1#m?>;krXpe7Nd0#p0r@&UnDw1cuI{d(!sT zANrSH&9KY3I7*1$EZ%lLerIYa9LGGQ53nB%fO*@1Ni`W5saM3#jt$$DC6zVNiW%YP zEWs0vUkp%bqvMzp-?V&t{Oy6uCSLdlmpQnX4z=+fk8rG-#W)NJmq$nv|Gp%_xrn+* zWnEy-@iG9Ag$m=|XP{-PJLiyX>|Dg0l7tviJol7+x*?_){*@0qsQmaxVpDU-XC+$L ziY@7U&Up!pc$3nKUXaAx#;ojAE=jKFp|8~JT(tGjn42ZU#;TQL8FK&Z18^0(2L`}= z7#>IUsa%8}V%!rh%6mHt-V@?O_gKvDVQ4!VdN@+~aDd61HDA&>8{C32)Yv%_xfB#0 zjJmWWVHSy9v9~aJB_Ec_SD`=9 zB1+{<;hIfhwWA~fTZbZZ=c7u5K40O(vigz62(jCz9*}Ma2T)L(m|0LRCLE-|N)it$ zpbG?0!L#%J+oI36cF!~>!+jn8V>MQWl&MQORH z&h=1r%X$T0vYfHV9j(SX4GW$H;ImzV-;HJ$t0wa>uiN(&^KwcNT%e`eB5ekD9WR|l(qg1@87->%L`)Q)pBJMa(F;l86w-QP2 z083J`?MEmFSG!ZxVO+f~4=t;W@|oy9MytO=dZeCzv&y$|PHd(#MLM=B-z+Ad+WrnG z=DWRawvJj)R(G(B&|jSoaV=!rbS0Y))3Ivqk-!lcG*MP?(dxd)oUHDLzkrjKl)@Nl z%8JRCNJsCAyqF|LntDd%2h>Vr;rJ{fGQxIIg+yb1J_?+hmj^7j?Q6hCIf0Vy-=Qsy zGWwIRcy9bpqKq~2DEu2AHeNhVUB`>wMw(N3uPB2cG13@q2uC`02x@svz5zTy0gq6? zk0{`y{DA+WfUhUufkD7%cPiZs8?m@3Ke7m}E$W{0wpgDq1`oc%YCkV+Xy>Iws^adi23 zzyRtxS3i#cbu_e8?z0>k!;g-26}iqgZ&E`zjxH;;x%0Wauu`v0K*Q^8tZeE+vbW?J z$)2Q={b&zS*%3qeDEy9ZR%Jhs@p#d2d~#mDTSB}*<$zn0gyPt^MA#GP3E){iL7GER zR(vU~4X-V+9UZULhY{Ui5X*-Fx}^r#UKiSufXxPA>uN15M;B}wsa%tVNKToWAnU7t z9@)Y$dyX>u^$=k;E<6|Z@H5+6nVo_(=hM4{S&mnv(N_MJu-J}TXL6*YTg70hLJkbA zxqK(3P7X+HUnr4J&8!6MpofmyLksn;*i9-N7UH#VV96AcXsm@c_shT=$%z-N{8E?~ z(fV7U=SczWhuHp-X;sb_$JZ9-7#A*kduKzqb6~`E(WaWRdunhT71sFxSMO-Cz)BtSz;SrW`N*4eza3B+|eIA~Z4bI$R)1cOB^hG4A8+5-CcDE?m01 zc$3rjZjM1!Yy)Ua?mt+Qf4!^o&=iR1iEE0`7sk3svs|aYC<3zzfQ;*&7EX>-E~G+M zzZO);eIT%^@}8{nA$jvB&bF+4MzQIjGR{8H`s;F>EP!Qesonh<6B#mYfq`$kw$I!v zcOZ;pPTmW}J>dYoD++K2)j|m6D$oK0m@_$gNbl5ECULSaQHSjeN8?nj5MR=ve_+ko zSvs54%A_qQP94X2S9s?*l6?6N3Qi63W!(hd?aGp7mi;%lun7WR`ETL3>j*5e^lXH2 zw)y4uDu`|(*ioOGyQe8s!j%iNIm~%m1FYCMffcQ5|giO zJmk(GuQp|gy#biVr%!l2c zGf3^WKl}#`3ONx)VdP3mVX4XR8%dU7sioo=)srZm_$(qd9&;d$l|_ntu-u3%9YS)@ z?!O5^EkF+8g`!&3sFI`LFDPp z#NTW=?FEAP@na^~%By@5LX*SqUfsm0eTha=&ulIR!zxI|K@e-i7{3t3Y3TV8l0$SJ z>|DGw7ADU?HKm3ASinMgPigA;BH{yR=q!KMVBT3p^UHnFMg4U%s7 zxj~Wb37T+oXQUHQA6MD|Lp&@VW>n z={yJ0%(ByI+=%9(>ovV{Sry7$)7PI|-VZmR4w%-*IcG^g45>Wkij^&kmJYPBUPAV% zDnkj*WkeRd5A+Zu*?28^_GW%H>G%25cONMG&HvqaJr7|><2AYuHhRMNA|2~1{BivT zH(z%zA2s_adxHMBzK}DE8XPwq*B^r!bsg8Y2SO9qWw1S1=j2s4LNUI$elV+xU|eql z{IC{_jUO1+kZ&US-}|eDl)Z{Pfk=L+q!iv}GK|2hM)K{%+cHG*OBM-?&XIg73GkxP zi4yVM$h93_+nx(@F%`3vX12=>}^v znp}){jn+*?bF^$3T(Cv07c-T-z^1&n>7XpTtgAlK^lZ~dl5Je^+}C!14C4iN?Z`*r zO1{|+;g=%iqHFNUS%4E(fv!341%{;-2~xO#skaEH?MaD=LJYR!YW^lD!NitgjIAF-V8$Dz;b<{)KzY zVqknQb*UoF_eMa8^jeElyED13Z!hd`uSi$%&9c8*ETbrkNEhCq>;n-_0CACSE=b{w zS&GysMF0DQqX%LmSgr=+Gr-C9uHV(Wdr?fxO(Y<3)JATuurs;~1rb)ZOA&4nef zd0-I2&TDnIEbzOxq>qLxr^0OekSrI<%k7xJ!|5m{c`A(xz_$fCUNRESC*|s8XHvu7 z$$aF!AKZ&g2NK-)fuH=dg&CLpm=KGKBWPc{{Dv|-)8JsJ2}5LisC|u)M`4lQzGg}! zE!q}o&PmrBak^Y?yBM?u82r?TDV$?@D|*t18f?va?>CK9Frf>iAQH#Gq*8x%WzuA1 zQV-0YOk4?G4FtYqi{*nS(j>SCP#FpCN-Bc~8$5?$zDzS;7-S(s9aPGbFZ(CZ-tIJx zp~4j(nZB5GsA;Vhe!0&2+5}ke%nT3 z@nwo=OFyCsif956?P(Fk!~FzN%mxYU#{?vAXnkA{G8xkK-X3$~oO=>xChXD$6c?jg z&e=*0j1If3&Q*%e7m5o1#fRm&xgJI6n9#sO*9p(9{C)mAmVb;Dsm=VINm?(X1Q*lh zn?cKP48zG-ax7y2n0s;_q?j@q4BFTx<{o}6{BwXDca-zskD_#{a`eJqu}(o~xQ$}6 zd#f;wJQW7kb{N*oSPvUu!kwFBrN1j31DD2jt$~At>qWC5bB(?RN!4TX>lt-+1CP z@nfjPSIZhhwBb4$bm@1r$FQ)28NABHH!J55U9_GvEaB+$oH9up4N6uIMq(AS#bhGJ zM5g#GribJ4NmBGJu$+J?MXUdW_eeeeVv-1DWEuuv4|oxr-^=vWVX;8rc=d3FK_mL! zA+TAA5TavjYUcBkZ7ax1aa&9GFpJ3etlb;>Y>T2kKada zg3%?pre1asg1yrpqae$gqSqR|`SL%C{L)(7#rbs}%_P!sD%Uo-BuOI%q}hRgyq}gv z;{tv*Be#uCcORKOu@0|oOeZ4u&OqdPU=I@MIt%9YgxjBiM^L+Ur}HnR9#IB#$+|(; z872zXp{7{XNR&hU%sUdBVzqpeU(%F_z7GLqPmp>5Sq}e$af-27@c`7mT}H4e>Wa^4!PDyc*^(IBM}MTB&>MuX??^aSMgyZ zKqI0kh>}Qn=X8kxFqm3X;kl|6`@Q-r8a52dmDnw6(Sfw{k){JDkN{0YhEG8KP>^XY zu3PFP5k;*WWB9PE3p%$nYV`$Pj zkEvy=qWPkKgjl<-j$;%pBJO%dgtYL10Kin&e!MzJ>c4MIu>DbG{98U{TyVpdBI+&q zu%e#8co{Fc1ZmEmRS-2g+5o(;3MJj?kVXh8S$z=FnH<0!j?ZFxAYhFJPf=Ms5UDT5 z$Mt#DttjVQ^Q?N`X60u&m%6_vIA@vP-OG=5CYax6l^^OHZGMj}-`_dZ{643AsI$NM zy?J?mXQ=tzuY4<~zxlmQa8a$9$2;CxKi8P#`^XrMR+p0SSWeTwjaABuhLXhAbP4od z^F&%lPY!(atqUkXBlzhd>f`fahek>~`5$QOJ*3{P3dkvC&I{A{c~5C}PKALbMP zrH+o>E7DVK!o;O023ts(HckIbU|JoxLw<+1%Ya-jg_xZh8jeU2ENn_6;o?D1>4EYQ z&WX9B8*zRJ$uM+X3o0;djs(y<8n&S8E+X|@ec`KNk9QV7V}y4nqzK`SCyB9~7+2B7 z@c%3(lqAslqwsFnLWH*kWoU)hF5yoL0$W3+5ngIjr67I2{9;%g>J&PGH(x$nMk&}c z2Z(ZV2k(VP$@>U>Z#R>F?WVOf3=nLK-LAcr7Jg4eV`Sp-o89yjPTX_aq@&JWpUrM= z0m8A97>w9BY$g7Y@`?qSOW=Q|w<0~1>1*Z!CmH}ECArN9rzSyy(dsiGrbs>i2E=>% z(?+}pAQ!}Ywu<*pTsSD=WkN~f2!f60uE`bgw)0`ddo#sl4uk=1r(R8G4pm_Wkd!p) z(wa|T`AS1fD8ZNks*N&zL8+HO2C!eO*q`P?N5Rg7lEgU0exYKY;>W&~VwZw|v+^nm z%II2G*_p+50&c3nKc*+T_3N9ZX>IkBzTKL&09PT)(oX(_qGcr(`q5K4VuVU!5k~~j z36yx{97ZvRzQbl`W$rNi0!5!cMb4yQ_`$ynTWlCkP@eAETqJrQA6BBH5yya`gR1TW zhCCVv*w!vqFXX#nax{dO0rS}&=81mHrz++Fig}9OY%$Agc$LKO9MHeDtE;7qEz*1$v z?}tpjkraz{Ik5VY?E$0xK%SQj9NQxFn`ZlBhH)LDGIQ9$F{;xV{Zg7CGV@F67ESR< zDWNHzlq_evy1ZI8F2eM2P;R+KZr-u* z=t)#{zGN$+@8|oIfodHMMMv@OXDAMiL80G`I_Vp7-G(#q_?!H;EyV9kV^dhW>pF5i z=zZ3B%sX_ic2q)y}Y^l7W zS;LWPjEP}+4ku^h7o#P_CES*eDpV5A>o|v@CUk!a3om{*@76F2@iy1OA6Qx;t^0*5nd<}*N{MHAr8tJ)HXU@NuCWE4K!HrCKdtWy zb&e19XdmjU1d?iJEVNSt9z?k5RE$snqSgiuJ97nnECkt0N3HUoyh<;x8Yk9LOB`M3 zt}7HKrjD1<1ptO{maN0!xH8;sc>n2Vz*3LQg$wzz&Q8y|+{^m;6Bw2l_Lz9^RImM* z52J*wV)s=>N7xCD5L`3Jv0ZMi#t|AAbQ+AkeTj$dgmnVVnDwb5*lKI{3eL+oG4#T( z=;O>v%ffBq@-1%`M{hf7YH2E_;S-1(E@j4aIhjK@eH;FLBF16iu+BD^7bld?e*E<{ zUQ0K)H@j8aKK?@BNo=lTn&p{ZJ6Ianc9%Z%aV)0A(1o&xeb$6hz}*6CXRW5o)JG$w znYt_DY!(KJ%t%32OXYdfAhf$cwbXBwSVZwNCj9y5R>be#)}j)vB7 zVP<(wEVL#y91G)9W??*O2)n_31z1q3%2GA8Bur%MuiwC$>Yjpg3qCo+@~&g=!@+%% z9kKFi>({WX1&&?dy!0S-kNQlPIWs*{WSZFa9rUb&opSyBmXe;R$@$=w1Ie6fvER+KVYn4s=M&fV3ydk~8eETu5os zuo{f7{Wv2dDZf2nNcjh70x4)u=e)ksl7car2N}!axsPTGDa-h@_9n~%%!QLO`XV*Mjds`d`iKMgLU?Ad0+lPHE5s{@7&8bn%jI?D%q z9)XKkY`Ja_i&g({|9#6o{aX>X!=+$Rre#n254#q?ed??!L{1^c)&tpjGrkfr>3-ou z7%C}wRyy&r6$rqs93n#&k;r?b&+IK8u3@#+?J=y!N36hL8TTx-lrY55>F(YAGc5-Z z#H%lWLVTnYjSqK+i(4KT30O7e|&LtNC&d zzeJXXZ2)EPIRl$F7d_%zo=v}lX;rjFG5L&R z_t~urb)@=1qI^TdmOA8@)u1ebYc-M93h%*GbTc*_c3l1ei+KGrPt#!ZOX%2Zm5c|b zImkVSGNAmGaSTeAAxW^js4AQ5OOl(o<=Q^f;!^lSmfw~hXkfhwGeNeWAt{|Hyqq}=K|_%xK;d>Qqc!W_ z>3$g~wDnP}bU47EGAb?(N1UG6gDM9}AR%l%a3n?6z-^}}nRhsvWId%^v~+lCE0Ei+ zZzAUj$e6CP%=of5gzxhpKH3KCB?G>1GT>w0cxk?ri8R0rg|b^Q>*`TP<3#-=76)}o zj&ppjHS>3KAE*`uuT47V1#)|qD%*}l!UL>?hY4BsgCaf{#WlG&-zVLCIg|u^V@602 z1X>lMIm2bFnD9lSnc$xtgm0zkgMXYK{s71ZSS#95ucL`n6Izoue;jsLV8{mT7Bz^Q z2vSxp!X`MDBW6&UY=@W1*cnGpa>)H9a(f=sPojwg zk)(5i0&?7-`yLXk8z9W!L`G?iK(kmsfEp5R&<~E9p;wF=8>3|wldc?#QVBov_~uJc;3LQ2%L^{9mendshT6)QyfahiY!{ECqOH zmUG}2&;wc|X=f>vwV@FcxDjq3GMcj#+V2(J*&E@~{MU@)yUncbu9oP?_g?UNWn7tlvOB4bqYpMyohmi#^!WC6=B9fe@ zGwCawu}>32NXA9S=z*$*4*nMhbb@oOz7vt8?7=9jCnEg{*QJ!RkYY}$*E_b|xI7Xu zTsm7sU%oT;J-jFGfkJPvaBN(QI|F*Iu*F;d;6F;v6Yb2ySF93ZoY(~mns7W*UM*@C zA?8`8X4je}O^fanyXvBc2q4Xd;^V&l&79@CIpCvmOFE-~zLR$u+;^(P9siBAN%z=A zULFk%V`r4jCeZ^Y*5N%+D{;@i@s_QXRJTjxmvWGB&zH+piL-%dPXUSJ;(h!`mBayZGxH*Rw31lMfwgFpIiH3>pIi=4L6l3J;f&83u4c*4 zr1SO760V4YE{>-@w0&|8#mCene%PO?d1qG!I$uY+^E@Y5M2~lS0O$zT1P75Zbb5(O zPlW#1XL}=|?G`kzn(4u?bpJ7$lcecOHyhV1pOnr!m@KDjCY?+0Tg}cSNEzk&ex-S& zseOF$!o|mdzF2WTsG%oa7h|C`DVXFVyzf~?0-Ymc1Drn-C6=-u7T>%(vN#Oct}~C~ z$4CghN(L8#8KXF@RXf z_zE(n23weGza!0rX|no2&LYUjQZHI~wW{&^QD2z&<7yuvptIj!rnE5*45y$blZ5Sz zsF<)B;iv+3nk7c#`aN-a-YvEMWGoNU!q%q$6YqX;_uupGY$5l*?cF=75YoMSYmS&? z_U@nA-xiO{;N2pLliej=Rua~`<9*XS`}kX3&wf#UCY`Nr{G*Meo5Cdd4hH5M#w|lXGg)GE{~~#KE3Y|#USk(v=ZC1D+C>G6*y1HhGhxR zj3;K>6Y)?|Tkwq0gWWngSRXeFAgzo2hJOp&@G|}`$5(&KY~J-blJ=UWv4ZG%lLQ1uUjH2g>OI-VSFv|fj+RR0sb zKL7KE^?Jb#u3q1fpGjwrnHlw3@*~ebjs3n}8yRS$e!VVc3S{bPFW;3i?0{e0FKJp* zy>`@Cy;8>GQ8)qBn*))g%4h9Ej0sdkgH5Hw4UgK5fq9nA#aG;=PP1<@8G9lb*O0#x z9@U(8-Q%ik0LXVgo8C!$^H*sKa>x?r@aM9fYIoD%LKgu_pHl4bn#%^8Hw+xfkvsZ@ z2fnG3v>?d0$;~CWo0v|WDkC-}$3k z%%H8q$_O0aU%t*-nnsWzE4z*$YMUp!CH`Nr%}>yq`~$X`VzJ+`%?q~w9ow8Ihq3&R z+UBn^d)}38KENK{M%(60o;^(u-k@!s%3Qy1o9!gbXPZ-|8{33k?gl&67^!W+n_GX+ zE|*4Z2^(u;#raqke7_lC4_GTI(K$Nt0=WR)klCP^Lq4%k9YTb}&7qtSm)MC=iliYD zH8fR23<~me2=LG{rJo29DNnx7W*bgT$KYi8SRil9ltqH^&~m^8Y6(zxun2X4VqeP? zIo5CEP7|+Mxy5X~t!wX2pDTlyHcCwiYXKRhiMX^(?-n_AysaN%j| zKwF9e>kPp1@@C2xXw8k5?6%#Ru^zyc)dA`@O`~pp)y7kY(;_-iXWN1>0rXCJmVww# z(&2fZJ`?>)ngHCgAct6e&)49o0E6MaouKf%Pal+rgHW)N*AGSfUlt-lfBjW@UDCHJ z%X%)R;Eq=&dLisdE-&;ZY_6|Z3`jQQP>#}n%rvG&|H#5hIdv?)Ej8r=8 zW(Jpze2Yt?Q`iP8{gZZxAC@HjlWRV9`Vs8c8RPOtSf!0VwHA6B^t&cM)E_WpY>XV`S+7cU{{C z;1&kq?iPf*O#tq3>2T9~$!8$L?{YE@nS7iaOrV~*?S)s5lLPs2BRTmVjbb0%FWE-+ z;C_Ht4{qOdxMBy;N1EP^hK_sPo%PEcsZ73)V8O114)?3EF|%zqmWQC{jCa zd!;m4IV@&pxcf=?CE$3$!khgX`s9{$4Sl64J`LrIPHR04S>pDGxUm>q_lwJRX}R%u z&OE^6ZmWGLj(BdrceC***g+nJd-7oy$>&Z5t?{C4q&cm{R#a9dYr%X5_+blwUxlAQ z;{))&l}F)Qd|3ETT`urjkmgjm@FyALIN}70(JpTv<)&B~HrdXq)N=j7wl>9TzK4OB+wgDA(~&busb8!|iZzT^E) zX6K!Q-)4S7dlsg?#u>-7)DHU5?d5FmqXdtwNp*D}3aX)tVOVp}sIQA+hT|UpnF}3z zHvn24!)f4Lo7i*4IEqwxKR1i=!f*3YxFsJ}dF_xIjAIzmoFxZ~s^;X)uc9ZitNgP7 zK(8DGZ+R^DZ@d)2B^3TMH4eVm?B6K31fZfJkd)I~34qr(lq3#OA}$jm3SZ;HVxL0n zvO^^4gcN(7to6`tYun?p%Lhn>P0;Y>lOWNYv%L1WjPyKxk)fv=gn^zW&~xRpA`sBi zRFXJM>G^WGNMn?rp3k8ZplTw!&lgb|ai6%^Qcc``| z^mA3^&p1gHa9d*bM3`s@N7=24bPOrai*)Q;epRGn=kn6F+rgb=J~UGKOV-pP{?!d$ zPED=Z8i18}Rs4y;5gs{%sLB9~cwz%=wro{NO-vmjpmq{aI2+XmiV<9M?VlRdWiHy0 z=GwB>>3d;dkD71REesP+aC{vkU~t(AZmt=RePbICCzge;ZbkIHrnbUh@DFyUO6ou| z80+r`B_<~N`2}Cwb_cgm9as0Znoi!!-9Hw6qfU0-Q(CPFvob&gGh6BJ1|I~Os5Hf&k{YS z2soS-FvekJ@&#k!wXB#W)2PK2auROXtE}y~jIj4%J@9BHHv+bafX96{c4VU%ih_6O z;YpsN8jPZL!2$YER4XuHHm z|GI$QM?t^KHw*eX#9DyfhM=o`pkD^jjm7!c!p2%qS5{A7Gn??t@gvdaOVI!h>uDSa zM{FvBP1ZSmWx6`F4oDRDn4kwI`b3QgEP7pkM%fAdP9tn(MT3C2TQXzOrmG~FPMDkC1Ml0|&j zOp5(nRbbRWS)x$JlXo}LAg`G2by!^qbEyST$>18|t@;6Q1$M3RhTD-$qVE(Tpd65m z=?fS#1!m4UF`gd~C-QyA3%pd`xA=`oQaaeaPYiDWXO+cyg5qRr@kkdZ zT8m#O&cv&Nb2C5AdFKjFR8C1}rs5R8^_)hPrw5t_JTRsgm1(WktqunmR9^&f;2bPI z+;}f4PJ_witOCm)HOmL5DHJ3B4J0&?KQ zBt}mCBNiu4JpD;=4pE#}`*99ZoT${3PRHKHbFgB`>@Tik`k^=z#k6jYr}hxRO?dfi zp8Mq>ewn_M)fGmxOD1X`U&pjdZD$N|fgPpsh(&aPqr?RyiNhx*v_?s-_64Lr%r1lK zd^buyl#l~O+;hUmIcra|{6i2%=JgL-{vq@3#1qdQvP5KlH6K>ygBWb2SqT1zQ|6&L zja8&3+w5(SPKk8GJwooKcXaO6ooxvjt%Oh!BV0nDh+axa-C`l+TRtoy_aOWMxhUcy zmk>&d!Vo>&iZ~DmO`$n8wROlLorN};$-~-zlrZwEkv>*j){y}M>dWQMg-7r#hIy%- z$tlhr&XDB@%@V1cmxUXO4DxayNBB$&V-*XS%bxJL9Vd*~@J#Pp@AZ&qqa?9|3gG@l z6hOfUmBaIVvvRnNAthe4Ej~GC?WGEV$&gK;M?I*rn2D++qb%BZ{;~3=N3uu(X)3Iy z6NToHVt-%!xk<)+qNj@av_fms9<=6zV;y!=qQ7botrhvH{gPg8rVJPCY0ZaP!^j)t z?)9*4y8~b46?5ze8@dh(T9Gz-pF=Z}wv8q2U-$vbc0k(72P|ng=3%IkcC?cAARktc zM<{6y5}ch#nnC{k<$AD#dF?K=aE=PJB%L$I`j2wB0|w16Ze_U(JdnaQE@EMRIM#@q4JxCgsmSWmG0 ze=+yvaaPa!|1;IJDU)T$+8{)hEQeB~nKT?JrYK!&;wEd08FdlEG@0W#*NDhITub)Q zGI6Vs%uKe1n+!!G;d4xpgi$fS=kxV?zdy@4XOjE9fBbqdpYwUY-=Ek1e!XAs-RTvU zL%e0D!S+kG)snaxC9Q~uxuOp)V8PR2@E$3u(hDpLsz^wDlv;5^QdL^_n5jx5RrTjU zH>gT+d4#Uy!&<=U^g^+m50K{Udj#bueSWkrVsou#Aju31H59R5Azk57FkTZ|--Lll za}$ie!rXeHsW2lia;@iXC+U^akYS!Dpv8fHS!T*;qJo`@>p6xMQht7#*xZ)L;;n`q7yD}cb?_%u|7?xx! zdLeg-41l^Jc~2b=Ehm4M3rOYlU2r?p(kH{rw0AJa0h4{^Nyx4#y zeb-Zzj!{X1KS}A34B-CP^JGT_zlOe2&A{#Bnp3}}?RrdVCCVDP9tK)%dAG}3A%)EK z-Fh*$fEOV=f=qZF<6l+^n=^Wm#;9MlRpkI&lV6N{y2Ua+tMkiHkxZ%lVla*WWAd%Q zmxxYbkyI;((^L03}8xAfD zXLiGxMEGVM+*tabSk4xtIeoDK%G7Wpw;E>v`cW8_^B;hoIrSMZ6n})=QJZpNE)8K1 zl(mPI34udiM#4o}NG%O_I6RwBs0R!6(Lz?O?EpHG;t_=01@~n7$B*sKLoYXGh0DXsdi1ETuD_n%UE#`#w$2J_Jb&_qo&_$nx5UBSUe}Kwy3} zS;p-GSi1Oq!V9T60co54IUrV-wKbj&0vbsA7s%J%3hKOARUPZG$^A%jg@XnmS&O{S zWDz2Oa4~PuY@eku1IwIKujBf|Pfvh{Q?aY_SN-A41nPUOJQPf`e5x>!R0sw%!K-_;D3nYJ+n43T8t9u9BBbeBY7$wMu*MyyMo*&_YJ9}m0soyQLGN*<4 zZ22y~!8G>)=2jsO(?lF6s3Xubr7TUN7V@hyzV+`?s&HpXMyVU|-pK9jbyHV0?lg5( zIX}IU)myJ|u)ZN%Y6q30dwHxjZzmS`YAZMEE2M@7);v!_NmDANOr9qsPbQdJPc4%f zQZBzvdW)8gYvIV)(4-Q~{vCpX`BDHR3g+5tWc9x*7`fCnQ7}VCxPmeMs3p0)OC$lg zXvqkyIoMFWAtgmr*2^qKQbKK4m)KQXNvSngxEO3V4fwD?)M~7th5C28yQ$IEzh?<) zN9&)Q493yjKbl z{Ke^wLy_9RH+|MPrwVM={8?~`6~-kFLy%gQzqokH;xzG#_yl)Nfj2phP~JWkPHlUR zj~ULg>n!@~38eD%<(7;Ng2DqZq0>qgbJjb*Vm~E!*WgMpzmH$M2vy zo9=Htycse862~wKw{PN=BvlxGZbK@t9E0RP!}5IG!_s&tI=%H$Ta=tCpoE*3ko-1Z zL0>eZao9$!H9F&w3l-HuMIeydrH0H_KV34VDy@k7hmeQ%j~(2;`IUvaNI@waB!(1> zf~o)3fB{uU#QRU_JCVy;Ss^b3J%aLyBZ*k*!3K<93m*BpPMsTV0E5!u_Sn|H21P0n zS2)1ie7Z=WR(9p`!fW}mpodX$gP|d;4yD0uB2Oz2+st+MFo5kQunmFjNL1jKW*wIZ z7>-6gH{md~q{_QHycfztmuNf8rK62!qYU0KqAnoCBf zvyX1BZD?eiA|QU%EsZ8xeHvh3ja0n|aEOMyXyKEZJfL4I=yBU}KI);AUxT{h^D{n~ zY}7~!bV~nfy6unHQ@+VUFuM4V3nqQ7sFkrujr0R#^0{e&-hnGui-l6Om_z_Vb-O{( zr(CTfr-wd(Gm>gmTg~4 zZ~;xH#g-t)?b*%pwFFmQ+Kj6K5?X?9(ZqNyL5*#2q-TeZ11$kIF*XNVf)ly3)?3q6 zW$fw>6x_jtpTZfRL0sls@H2S*E*9cc+3|H{L%-Iido zub{6M{I@N^T%PI?XbA?ufBcn}VD2T!+jdj71haK83hpOmOYrk4B7xdJX$dyTF(mn3 zOOQj)kvL=G^LpyvTkIbuMte&@rBAM?jV;A}bd{{EIH*>h-g~xfO9H(ydUPzW5GgPQ z!k6OX#xe!3L98Yc4nhDgLpGW#B&D4he=Yk0Aq=v$aAkNQ2A4ojY45w`?`VWLipM^OC9Bi z#tnd14WwoAdYV=qe~CSkdX^k2Brp=d|E7n6*#USUM(H^ClKXf?>7O&AWxOEgN=h$f z|6`D3j+uNEQydCpsT+QKfeGv@RV?r;qq>Mc7Wf>oh7myEYuiWdB5{z%>5ozecZ5^M ze{}DDPB(8%#VPKVP2?0SEErGAftq!aje~~rt&ku``9?b-i*iNyL}X>h-hi`5KGGv^ zIUmSVq<`G0;tBi$3-%{nu_@m+P65I>eO*B%kC95fy$^oT6XlM=9RN;~zG?x(@c|6r zmoccPYFAgUvyb4;I)8^355tarmFCf9?Omi17%}R}2{|1PM(bD5g&VBB0b#MB?ViHi z6{I zph#@b(>L798BuZzY|6+iSr>qdb-4+!+6ydraBh^e+fxsd^DR*NIS(G`svM*L+WM@d za(egE`Cl7Nv))5G6)o){{Pi8mA9XC2)%8M5P3izA-cGuRZ~i@mVNLPvP`g%Byd7$? z+zQ0re-Ok(s2N<1LS`R7MN_Ja%a9_Ox}y(4T3X{V)Si^L5bgqmz^<#d@4GXIFT;p^ zV=3gbtAwA*N5KVtJ|+rRem;sd#mC3fn&Rw$(d@O0gKW?c}*vil49 zNc;#|Ou^4$d>7#71bl49K-T05KRiCu?EQ*&XNSz}B9l31vx}?~(v4eo>ng>&nGFDI zGkzC6#zPh{r0800eRo^HCpu%D0FK9@v>A|Yt zPl9iHDaIE)xA^g({kfl@$1P4Yj$j*1xPN*!w_6==~=dW zfo0q7sq<|`T{kc(-?qH2oHv@)8cVacQ`Sh{mYtWoow7!Mw(LjUR7;-zY|fniJ}B8q z?MkdnvC5#5ezV+J;>Voo8^s>@X1vQ8ePVAQsz(D>7a9IuWC-jP8wH2dMu)$LVX-=z z;?|{NiWmsW+V^kPXY%dj^Y~_cCQ}A$it(9DnW!noXJXTm&;zIs>DF(gSmoS@f zm3f-t)5>a1@w8&4^~qkz(kdL{+1L461m=daE#N1|M~{DONPk?PF3Pl|$b48dF}KDxxYq(c8f7Q@~`v_C)I1*#sc) zC0i^5fyGM(syAr&s({O=ZJm~}P49JVN=?&yx&Ed&}CN#F66^a(}DvwhQJa;cOkX0#<(0o3uBKpHQqp^JiY0j?cqKGE1d9hCD zKf0ryISEc~xnA{xoHD7P9CD4Iix=8k27Z@2CvOuyAr(tK#wD$>YSGi42gxURb+2p! z5!}bwVp&n8kR>hU*cMs27begWlmzB-WTbSta|wbGs85)?^;$A#wVVqbq0N>RPgUf- z?cOvT45*vfVh>a*sWft)+gV7)(g580S~L(p8!*nT^+VRYVm!*YKN(bc1AQtK!gPhz z1~3S7U&D>W&xOm=^VqOAN1$Tb|B63_Iv;2AV92psYRFMS{vGC2j(lP0%`AF_gsUL0 zZEWHDGx+^NeD7S?%eal>j}f4{NP=)6*DvU-pOm z7FyokH3cn0oJ~g?RLg)9!p49}#-a%p6)r}rdJKtSlGt)bnA*GZ7xyiYFg56S3D!*3k^FK+6~09a3K=m)r_}@&2?OCD+s& zd?luJNLTNs(vFqrN;JoJHHE=$ov>SU7{A5qc;v{G1$W6v{0x^YT+fF)Oq`d)JNJ+a zearUTE`8jd-1v{w6i&qkaC4Wce@*^|BaIO(J<2tL1><~1AS+&DolEZ$f!@xC73cxS zi4esIHgA>RLghgLDyyLA(y^4tn{emWMyyS!L{vc74g|@h#b5Fyr-ouPW|$0AZDTHI zx<31~lWJ!tecjSbmQ= zR(RYm2O*PNC2J zEPtEv1N^a4$FH&cp;EuC{LPICfAjgU{0*hcG0koFE%F=k6-k5RA*hjF-4Lx_K&@Wo zY1JDqh{!Zy10~gSce-*8Lda{s-PnwB-sg^Ti8px%Ft^AI-3&PfR`!mE*O-M?q5|`_ zGn0>EnF;nP0k#6o0e6nW_M{U1f$5wS+qGKvG@AbmKk#W4B(wZ#D;acqsT{bDhwc=~ zJi>>S%!%|i#;AA~ZGaC|4R9Z~8m0 z(S8ln>96VJWhV==ER*ud5A;aKqHb#28yI<#>1+nn-r3J5Q|nC9=?wT4aZiWZWL!PO ztHRUVEyEiijKEs!ZSb%rgnOJ^dn;=^?Fxd>f~ZKyDc&O6lFkskSe?lgj#F=^FoiZr zkcJb4;svAfn4IT>RuCQ5MJ|n(vN(ejpQSYpQ5Hhy8w~p^h77#ylS z9$>#Ta>;jd5_WQCPJIJ>ETT~@ruLlQufPr@#JHu!kcQUCS%*{VhGrgWZhp>S5p3Ck z`ov7LskvBaY(xc@E)`W~SK3NW>3Eip>1PT$=TLq!Lo%YJJ_ZL8XH35UX9uGWl2Fue zA&mO`5fBx?)(+M=&|CyC&=4FktJw^=VcGoBcC0wEyvptb zfi25r5MeBRaaglFr6ZA)p!*U!uP8SLmg>CKT_-;&NamaH0hi!h0&=D4*Na5RP0-clso6CjyNXdGir1 z(f^SEO`t!lHPbk`RUW%z49`%L;l) z#O#hDjB?{US$G4>f=er1rB1MdsBdh`P%dc(qxS(Ol*>F2en}6mXmhCz<#1j?RK4Iq zCG>)!VSHHkcl9CS^6Ck`{}1w8P*q?=G6kylvkj^zffJ~}cg6#wEh=pCk149k+XU6O zd{|WJimHLAR($_^bDRstARWOsy(3%f%&AARJvXN>G@gXqS&(k6@hTC_;mMtKHl7si zcK{f*lZpm^p~E#(QB6`*PxD~~ zSk+y?qdlo{?g6SeM$0Hbh$y$KI)(}j0}4C*(Oi=+<^^H$mZdb@x~syhGs5i0?glRa z3<&ezD5}EjP?BE>Szc2|f#Q!R(7H);xX^Yc?6YteS^b)C@Gb#fE9;9eKp4qiS~6v6 zK-SUyjjTsQ5|A~Tzl?K7Sy`h;_9B^zb-un>Wc?H$Rsf3+5&@vnV(ZR&b^_elbm=FW zl}agk1z4)$EzjKfZ|?b19}t;T(3H;qNm^*4i@ZldP8vxn=bsA?l;qbhNCoE%4-UOn zf?xN!-)J~nXw+tLckeU!LHDyBqV2{bP*N)Mi|`e0|5T2P<7KT46kVJ1Fai!J^x*FL z61#H31Sp69lr;MKr#W4~rR&WQ#F|wN9D;+T^a6U(+*tq};aV$6<_$v|(FN*ZZWvMn zmNWfXp2zlS(ufu*`eT!&HHGG>CpRoP0{sGZwQQ`&E>yi)5#W_->y|2P>!(aY?`vG~ zyUU+e{+bN6!G#KKNV728EtLZ5p2<*)S>A;L#R-%vB~>Wd(t-vVh2knYoPm)bTI#-u zAI(gmr53-a<`=e2@1H(W{k!yEze)e>U&%bS}&?Bv-98$UwpchXe zTFI8ULtRsQ;VcF|Jn39VwV>))2?f4TQ3O92;C{e$9Vxl)D@D4JSK7)E@`@$#Z{fU2 zKXv|^EwWYt%X$$bU!$M|uQFB|aA>K8USD-?4`W##eG~zRxdfl4=;`gt*kGtwQno|3Gcv?tepLy?$8H>r9^8^5HVeF%HyZ+^Mfv^Z3qY!rdHQfkOX|f9782hS z7;Z1FuZvb%OB>+_dT{}%Ca>8*v*P)iT=69KdS^2cFdDr?+@^a5Tgv(}=|5n$ zB)5k~XNM}Z+-%qxWeT!jXOTKtPZ|F8M@d2#NTP!HQHFMYuVW=LOtNN#sXUje9L}3W zIb_`}(&{en^5KL9$C6xDSNM0Ibg8TzBT;ub0D;pWiy^l;sx-Y(_$QX{@kj=z$l zx?XN6X|r9*B$ko`;MDiQltqhaZh0M7WUOdI0B`C0XB#Z;6i`1_{gGA+^*NSLit6r_ zRH3B1-t3qZmnTJamI3N@DiQr@ROkO<7{3TabxcXAXIQ5jgg37DqB_)zgqY0jjnRhx zB*OaYcPls*Z$gB%)Xh#I*D1*n)-VuemQu^y#Zw_q6o^meRb&G2I_Q>=Ru>-mb6-V$td6*#+Riw-I&>pI(B{>TaW%>MN?mf7+8r%9V~0!bwQNUWK9XD#yhk_=>Supr z6rC>E=5#D%4*CX>6keU#n)BjkNpi>f9}DX;g_WkT`YWuR{ILG1u(}i0B}uS^hm6mL7}Bm#aIah|q-~T( z=-+%;()ug7kCEo=>Iat{nX*1o1;nuS1C>RV6X*& zn>;K{Z)AEj{j=WE#L4GcP!L%-Sazh(&BepNM#4F!s;0C6iNykX27iWQu~B$LOZ6LS z>P2d*^c3TDu&cAs{NAImlkdPY;>+N zG^2q)agrh)HEp^h-b%|`fIsLU^Y4Om$cPoX6oU8jnT8XIS)g(Ma7*OeGl$|!i5>m=a3gBdMSEL^d{8${HE8rX3kw)Q4YR6o0qs6zA-X5ZPr6T1imjc z+}ft3B(Hopr7dYpvGQS%?+d7_C;5idVMFf9g>P9KlGZq+qh#V5hlS#>>Z$kXYWg!F zJ-f!C#j!6Vo5RCUoDmF{#Boog+{3;S#7CB}-wYu#IIsayZ{?aa_j4CH}NP?5LBq{b00D zdq@^3HN`WLNt2O$>C=?YlD;mB&*m=_?}*}!VH=CPP+p^Mz5DMbo6_rW0lAlq&rc*1 z8b0@;uyu+;>Y*32D=WPMtb8PIE-O)?wxp@qo9Lq(S)Xs*$O&Qso$tI{+{k_M2tCG! zbt6N?aB^-$n$!Iwm4V0RSIiB_=|eZgGS^OTS4UR?Yl*P?%!c>eb|8s6!wJ}ZA3hP@ z4oIF*ToH~BCR;3z^G*E5c#}(lQ(xg2QyX^o+6Q|tS_n;2ANMnCJ>~Wd5voFc7 zt8gV&ymblbP&0c)_+=P>TZP&M0>ondiBv6WO!8Bd^~SCxPLz0zk#`H9+@#_Z3cqM8 zW-8MG(p^vQ=Jrgzvx6!j=t@fe3 zOk%cxU1NXL`Ba*T@NP;M>M#V7F+r(;)nG>5^aDBzMWMU=qeRTneh6pr!$`=SO3ez3{Jd7ffQsc~*pQ>CAcJ<5&Qa<6j6 z^Le6lsxsV)o4JLCM<^zHK8LMQW!S>6b1Jv4?}6qZ99dY;$`qMfheuKr>L9V03W=7o zn5j##8BAwLN(U?5hC1Mllwx25!6^Tx6=H#WDPd9^!`eW^k1)OQ^l0GYSm{P7BmJ=$ z&y0!Akgsfp*iAJCnqbE^4R{eqita3=x?jL@nE#@Dm z;zyyGNF%q+6jvk^xGh_e`S=tRx71;cJxd0#u2#w{p%+`l+k{*s$SMaPc$vQe=llM? zErH^U_*0{fah_Fw-xhdFelPQl;8>t`>)v2 zc)I)*946L`;f-f%&9HX-Ds4mqmr0^~RvRngxo#WnL490Yqg16+@qu$U0o=Njb;sA2 z%9ep|#0#$4JwHnyzfX?w@v?a+*7*(0Q(+wJ^o#ijeZV*Cc&Ea zOwI-gDZ1*bw}=F5oY%IJJ+{snv-$~2Hvf5*uZS^p9w=x-)qZ?kh>uY&z<-57EaD3W zk(t=34|7GG&1R+-bAAok=tNh-`szX+`{yfofk+)^o`5_dDgS-t>onX{ z0%Kdohh=CtGGvthO*MuOMAjJg+ME#e*+SQ^VjYFGY-eo%^Q&_YOPZ6WqCw{60Fh#i zKvN&1hJ%#ci-p`QeS|LeQ+*-a9n>%oX-+Rt4TJ*ur_W$0d)rP8P_0FRsqGPRnqrjS z9rtx-Prl?w94r>ONQ=OxD#4!I33fNk*>5$GvF?GIXl^zRhG{CoN_{RQl}X9={0+gt z!Agm)Eb*6C2P_iO`0NjyM-DxgbOknCvHsp=T(3a%+ z7gq;x#{4j@EA1=|j!q{}U(@pZy3Vtg6>vXI9c`-JD*D9+32=Rvr7iv0_{E2Qk*Wc~ zWt5+2s|Etx5o&8c{Y|Py_IbXl(FC6=iURm|-x4DeR7YSqGX<)@Sya6g70f5&U>6lu zF^p7HWr}JpAGQ|86qO8AjRGq1U-5n6bK`&TtK{_z2a86KL(px{0qRHAt$!_4AC3_|PO)TdZq&d$n5eXqM z6%(Q4&}Q0I27%=S*J12P7HD+UXE<96OCY@Z6I5YNtfgLW@FPQJ`5I_&(PWnMfGE*x-;Y}+n7Fn zr(DDVK!SBA3}z;tM1ftvy+Np4Gn%z)O=BP_JhX8%JFxm;9pr3S-08^w%j$=oD@7yVMns4wH1n5MKbY~ja1HnuV@KoB zo<@&>Ryi74f8kUD-&(*P2)LjK+7Z|P6`GYcFbcD=ZvF$H3*Ew@sFzaC1z(>zKewX{ zDBq$0boXB%Cb;T2Qwxq&r5rbcO36Aw9-%&bSl!gIzQ=O*L7MZg#kLmsw)kPBRw${V z-qoE=#7@;uOiOOc?Io}wW{}$Nr&>8IS(>taxRhq20vjmne(gCYx^w8yt4sg zOg3>0+|VJ|Dk5-j2L#h;xF8L`5GRSU<1hL@!E8omDJr-E0g|%(&!w~|j_tdjr0e!c zBB|=IB@r2d#$=(3IA!UVQ)rivB7}{+sPx=}TN2Va|?m`U5HaGfq!BN;&<9a@txsJ)RG1D$o2VoDM{qbHnSx z={Mon@o(b`ttvD@;)xEDXXd zN%;Y&YNrb8svGQE*% z1=C`!tfDPL8XW81iVd`Q|FkAgIHyP2bl(vG(iF;if48-!pIX>cMfXn?-Lx}Bbo2SJ zqC5Nt5nT<^oZsjFMbU+YtAUJ?Jptt%Ry8nEW!(=%2V_>hRp8AIQMV^?I@|D6<2E}) zy@mAHA!<8wlPjZ0?3|f1|FJEs2|S^CAlTtX0l688?E|J3Bb~aR9{J5I8IV%Y?9NhJ z+woI3Z1eT}#sYYt6(1bQpEWpwJ26Ca5=DjVZ(f3_ey;UyK#u^6mkKD8I0)_T-P~bJU%V69#GB`@&d65-J zjZT3u`gLdZyFz<0QjYKWyXeV6532Hz?h7AfRv6Jz*>_f08c~ooH$Wzpa04Pucy)H5 zBnhkpXI7{85V7P{zC~QI&gY#$xn#W~kI*PStayHBLb*}%)~4t&~;-3iRLq>Vo4E&KRXK-Y9# zdAnxFf!_lUHS!kM8SDJr=_2nd2k{Zw$TutR+o|AK&RNKE&U?)@N55JdM+z@gu0*C) z(x9*Ivt-I{6lz35I%cKg7`fG{%6{Hw$;~Ose$LOeh5W**ma$o8X&+;&ZZ)_MVRIEd z0@*v|5X0VjHK(1Fy$9tH+QrY_EDA7|a|_a(8(;OQ;(Bt#4 zg2|BAi9NW?(wku@XmVDcl>d3q(4RfnP_{)Wn-CVkcT~zI@y!Z;XQk{1q&Z){Vkm zy$N=Gn3Ef1Mt{K>U25c&?uKuk?1l>d4@Epo5#QoRyaxpx%Q=yVttx(x*w2+QM#*iMZ~Ya;qi!+imIP+D*l=sU$WAwFj@YR&XwsL4nDX0`qx!$b!C zK&2yg_qFle6!LUNm@6NBP3xF9JGL&o|5AIEA?iSt^L#|eD5)w8lYjEp4|c`i{at) zpr^bg+Zaf9)!k{BsfMe1O~p2ZZ&qyU$W$z6CdD@Y1reJBUr^2~w@XaOaX2J-?dQ?c zG}c@8rO2bw8|ITQC2Wh|r2{gvWk9BiAf&lLBXgv@hKK>08x#aeo0C%d&i$ z1rlqVYY;GTTH^)z_`*7OaPovk70R3j6^h~3i(u)=zun*HrLXGc4Yq&+w-ayx4|xz9wqtq8q`WRa-@_@h*4=GM@d4n?3zjD)bFI>%{a%B1myH3 z`zlFy$|H23pQHuUcPwWD(wsY=L-hEJw%yRfpGe=0sFV&i4uP0s`F=(&@G2zY{#=pE zUIX|DJ;FCDm*bU)KS)G75Fy6Y0>2VYe2dD1_;m?}6ArXSgD`4|9Zt}}=2nfnVH9f# zB2#0iee;)0VlPKc4sSt<_p=mZkcSk1jWan>!>(7cHS*0;d>btymUBKS9{#MMm?K&9 zfsf%`r4EOQ0`VQysu8K5M!ow@a%hJ+Yt+nO!1eT;@qM)2u4GViQa(mAZUSN8due)* z@1?2uUh3z2X@KvgLB0>(*J$bz<$J@)!uQRhu+UF@vwYt{5@R`+BFnjOR)FuN0lvko zd*&~dc7PV^R_?G4hlvj8$4#qI^#venY13+`T*UL3h>e2?llKu~7mN{Fv+{)2&_q9x zUlUX;=QgA{mCv~56lgW(=PwO=jYNYs5=Il!NEE9w8mO2jKi}3I|0fWlmGHSE#!Z%u z^jeLZN-tLxRYOG}mui=&%$CDhOR$k@|BxswQo8PHuGN0ERZsf2#ep!tI;gg5_cm&q zsA@YQN7PoM66wb`tG54u0Z8NpO62LMJ&BCznO~h!Lykr3)6o6|vI81gxtD6_dezWl z{YX}*jt@)EDN0WR(wsef^!VC!l^ur~hd5?M;Rb$X+U;FdbCnu=c*)X{cEz~fY>leJ zgYtRK(U2+(oRC*r~ye7_L`Klq;zWG%u;NX82O=h>2{VVokvd}Z1Yr2M22K$C3&ig3bWex13c znpM8{lERF*tO^lqkOjGr^MiOaQ+fPwPFW>>lX;sNp8zNrEd3pq$(x2)u$hKJn& zvG?RR=Kl`k%|Z!lTv#Qz=iNKcBzmV9hVML+QJ@LoXi)_aI)V1*&<4HU&VB2N~sBdDPgJLcELSExlxVxfG>rVyXHH~JRqr~B!r zoIq6&*%rjzE(n=40rS#71W2#&Po+XCNpB$j5B0r4@aQBdek)tQsm!ZP9uUGgn7lrB z2pj~6@ai#)|A_!a_84nSL$QriOJf1*FqWH_ej{TnXq#hn3R278i2wwf>lg;XG-*DQ zk|E0YhJk4G=hlGS9`25)T-SCYB#QsjU(dB*>y_lFn|b zHmWEiWSym2F7{FS{SDHVRHLyQB{!etUF2J1(N)xI+QlQWonPTW;{tC!C%+p}JK}1BS#Z~51W^L=xlfq857}d{ zaq2FVRY6S%;_v?XKu|!t<=bn&@Xc;-V#=GE!UeRZ%(t2%OR)J>O)*b{7nbp=x83l~ z)U(9>RM{>nnML z*79M)tkwU4xMMlBNON9(Si(Nh>iCPj?NdF#t|Tu1a9eOy<{*?Zt1^G0-hw-y+B5br z7p`ohV>EZ2akoTLD+*o6CJxFGzb^x-W!{b`1E#Uoz-V0Tw>i~^jGteR zc{6mPbcvnp>(~uhE&}MJUk9lx4b;y@jQ6EjzP=w2$kMpY_<@=Y@nyt2ivr-iu{2K3 zL5X!f>sTrwRKkaq{!pk~jVFgo1QG1Ej-j<0L>pS8IxKz1X0j_i&*7nXPS^dS49N1y75ad7kUB@+d)XO#u>AysBh|jU+>2D&9 zhw$6_MNi*Ax-SbE&)N~V{x_brOGo2b*~+6zEkBA?D(gdegzEUP)>`yFn26=fLz)x5 z&v@3P3;a4jPF_r^955Orzf1&JW$z_S(HL!DD^RL41fog@ev8bUX zD<3!9wens8iyD?>QKOP9YFbMc)$;?tm1BKF(8^yu*EOH>DfyPI{Nas$D_;?Ac0nue zeuP;0A@T?v%!jq|yWoOh@S)reh_;RdYy z>JNQ*vu!-nQWX75SL0t|S!cKg#hCe;fI%_k#(+UFE;&gN&vF@M$bj6klXR^;#^zH?P%MaQ?Y7_ClYN-uLCz>!D#7n`n<(L zP0lg$+$IMFVFVq6&yhF(^Y?8aIXZk>hu{d2M$j$vkp`kBst?Y(CZOHBlBEAglJwsS zO24{zA55W12dcVwU;N})w$VBJPAPT%Ye46FC1E`@3G0v`R_Z+W%oIBRed+&1=ko$! zwxe^_Bxx?dwUaqdgrULuuFjWLw1TZU!#ao+G>$--22wr@^IdLaJ_Bp>xAJSm)5w+n zd&vlFs+IGua7GZUqLItYw<_G7Sk_2g%*mB-FVJEm>Uu*9$LySuK|t%TQyS z2i5(=9B*^CEiJu(L^vh5GOw^baK=mYvpTYH7bd`bED(g;>}F#5X`CmLX`HhBZ;8qW z_vzs-T(6fq#CdJ8iJk8NwTPV==iicUV`s$q1vIl*=Y@yRU56I&Vg2;CP#3UlBxSG1 zes3ELAJC0Bdp?E^eJO@baj*pcrujWX z*Efu7`T;-Sn#$lA)@_4*U83Z=R<%)+`egz>P`v}J)ic6*x2ME9T zbwl_GN;o`XMo*XU^1RA3mGJuy5W;8jVF|wn?hu5R6a1JmA-uvR{E2_HOgIRV8HIVb z(ccM8mgIA!1yOydg}`Wvx4ahkkqQPZ57~D+3 z^3@9r%cp>M=xQcd?!DFOYGz*LC}sJ{Y+?B+J}k=>i-hHw1b^M_J`ORtpbhh97^t^A zwJyhap&{nLN8$5FLo1+_HH;9he!}O~(aM+JsQFS6ae1B;ljirmIX=z!R8FwTu(i#jn!O>L`TEANPb%coe?U)Cvf(o))k5<4B_yY01*R5}jYjLRa_;Qa4=$il=L8bqDx3!(=3 z;1qJ~S%fnPqM$Dg%r5~Q<0<8TMoRuYOacDqS^gmi@Xx5GN0a3rQH{Bf_g-igVbu&i zT>j}b*d9WWmrnKZ4+>N8-^kDup^8>h{Pf&;DaN7!DquGcLlUXup=15<{qc~E4h)j* z#6zBKC&o8A(`v4+kh}l+(!1-ZY`d&6@fBE5KS|K zwTR(SAxfH#FKk!R6e{e|c!m_(9|zf{P43FSy7%2FD`y3hy4-kjR^cgv~YJ57-gMqbSb`LdSNCQ^# z)MFbI=Yg;a3sZdgP1v^shSAND&Cx|0heX~yJt7ABiUcGQyv_Uy_U%smjb6t$fAChO zDK>bkDQ=H%`Oo9Ji;b-j*_|E$w_6gpK0$C)#1mFe{_%)QP!+w%?>;+_5KB42TPTf% z*1aBq54~8=jt~f~M$b`U2538C)nwuM@daQDg4;-{KEo6k?!516-y1L~!v;9uX;1?W zqNG(SsH6PcZyq~ibh5Fi@lp$Asz5~@V4Rpxb}h#18+nd{;6D!~;lHJ%4+kZm@ZEF# zZkKZB(O1|kap#;FNJ%NHEgckqUy+oJw@1D{0s_3{VP*L%V9ky}TooY z4O<6eyO&C4EMxFq>1ok6t$5UbETcbOu+g!(0Z#N?8Op6*+y%DdOq0e%4mIR%h85=Y zyegP!Em*6^Zotz?f}CuaNndF9o}zK!X#*KI8E`a3=fuAPj{YD3F3Y)mHpM1qTaKW1IDWP&wBZ%dif6_AN{UeENak!F!nNgTPGtGzYZ0@78T!|S^!7Ft;g;$ ztrwc(oe(ll)=;BCB>RbT>0@kV;CV8nZo}jkPjN@#P%>rP`CQY%uQ`sF* zZhNNagYtYU{u2Z>a>SpLlvr`P&@r^roHtd!v6DHn}RG)R#Z3vaW3%xk60F+MM5(YCUV+Cxn2 zNItBI9sZh_*ltL3e!o#o3}EHd)5L`k*IKaWQn<0sBNXgbd4yK-VZr_fCI`!HK$`Qk z0gHfyGKHf$Py{XlTa-;$5YmMeR(C$Zi^3R=aSuD2G%AoCKdfBQ{vQ&jOCoR7) zDR)ajCVFr@RO1rVN=0j}nbK zt-`_{3fP_vxW+Of3BeN&`wIf#&r4ln`JO@y&f>t5+(jU7;CD)ojIIwElZN@qm;KG& z_FFHiVRWrTmp0rLbGm+mF{iPr_ltHDbLzain9~=0vwB}eDaUd)A=SHWCUi9(Zi5Zxv69>`P$z)>Pz1#@Ll|EzsIJmC2_y=Lc2jro9P67^!HZ0p3uGF_3oHAftUH^^PPj?qA{n}c`s z>+&0j_M$u4!B4vTAo{H7(2NGXVeQbI+bEJpJAn?(%_{xAyNGSHrV^}eEPhF9pqSJd;510)7&JF(4%}<89nr( z)Spj~=3INd)E`mDBX|3(KtedXoJfd(!ZtvmR(X%#ky3ddJY$si6nHYqdob=(-oI3N zH)BOIdZVZM32Q~dj8FNv$X!mP{s(hw-n5$33Dt+#9K5An5+m=RH4n6UmOBbx%<_+l zHXTz1RI|Jag^TDABKp$+DIQ!-^vU}Wy?r;Q*U zhD0EUO8Aev9V>{+yh;w8qJb;gSp<WAx8zG$}TZqRioeM;w5nsCB$8+(Vw1E`ChE)(jk z^`{%r{LFi3{RoEiskSiMQ0CX3=YFjo>`CRMVgKMlj(H}kq7?6GNY6Xe61@= z#MfowU^;a}oLJ&~(L|VN3g=s(2;HEE+f(S)8h|Vi^dK=1^l+^#3-O2h7!}M)({4AO~=hijaL{pM3ii(vG3bG-a>8KueKf< zs|M62$1+j;o_2esDCSA{(ZqGW?%0ywj0>+#ExCtrvPTP&yPsVzO0Jn=h;_aNTkj#c zSt7ttGvBP_w$Y`;a$?AGmXCuVcrcF3go)GLcZt)px64#d473DeSm7$8wWSFui7_9sn!L6a-7#%J8t$x!LQQoUV6>Z?FMst9|UFm4V5H_`c%W#=NX za9XvT3XdXToC*&^_cvC!nhA3PO!cagYo6k!PGqNz^4&*y>889~Ct?mg#y2b9hvB;+ z-;v02#$C$_923Z~(mEoDWt}CQ%M4F_IrB9GwKvQ8;W36d<3RiykZN;$9te(>rr{?B z`wO$}&$d{Tur#4)l)M=(BBcQALXMPTHEeUZrWB*)v=8i8D4k_~)|8HSf1zEH?CR1{ z{8e3g2_Iox2!Ll8H`~Z#E}?{DiUATH{sEe>(yNhJvXFm$t@H?|8;F$E&%fXYPQfqc zx6urzLBtu3&R{}b<C8p}X7p#5v?id>GXafo;EQD6ttrgJsruqJRQX^l=F; zG}U$mf@NgxDEni9NP&c-bL-?G#W?UMHZ({Ax6)&v1x}vG3{I?cHcJ9c6If`O|3@wV z_yPXQ1bl|G#`4dEyh?28WDQw{{f^|HVzA~k2Vq!VlkmlTT zmDsKyE9g5Mu2nW0fk=@h(r)0|toq;-n|rN;Ei@d3%mB;lVA;ud9Pc=b9#-v}fg8m* z6XV+z=si{>^d9f|!qicX9y{OIhSJRXRfW2hZM zkCRULcoTd1sw57MVR^Cam4o8mVRZUl$&~kem3oLX=pkd&2Ruxjag9#K9-kYF9$ueU ziKC`zNLz5P7tDD{YoFwAuD~Z4&!u#SUST9}YbSflVzGCAn5dJWJD#=LsCtxQDi=&y zyAV?>)WwgmGZEq-XOwUn#u6+B2}EzE$(3!T=z+`@^&w{gVA52aVOWPGMZJ*1J%5|S z6$e@>#wryZm5Te6iaYpb4eoZjzgW(V$a2mTDrj)r99piigV>)JMs(2@7iC`6(M%kR z61_w7c|r;fo=fOsvkgyvUKuS(K|;$04%enpUO0YNL?pJ^tRnsOm)Ef+yis9ow1j9p$VYnZ|FvUp*Dsk$sRe`@W@ zb_(1cojAvH`Y<+S~z2-)C5!pcr`Pc4sO^W;%X2R8skOqpCV=bRi*G40p|=o+Ym`yI1R~cf08dAn`RMxsfeysM1vI3_k6R4 z-1vYXI+}*g zJp4~?G2;weetn*Q9`lNm3ERD)tpR*A_<|bFFfRI71h&8tHnN`CiZ5cJNd?Y`Ybj#P7Dr@KL%L06zKzx?3AE|qD0F|#Tx4bLky8kw|bfx2qY6$UE0NccC{(uZ$GU0p+vgC_9{Iw1~PS@vVym zb|of1yYPJ|NCB=&w6T}HO#?*WCvWrQO;16J4xgj9jqsGSuz+Hrnp`gE*UxKmNBVw` z^8My~pDi=q{;tmD(X)h6T#U3%rU;gQ(Avx!GBJDLy~fJ1hJm2KmW=Rr`VzVoa?5+P zmYfQc6TVw>s*8IeBW-XjH1ZJK0KJ&N_{HGJ?B2*29I4FZBX)5ALy^7E%dQAZ_N)Rt z_(65?Nc=KC|7L%J!cqL~=8UyD)x}rXpC~lmS16n@8E=&RSB6NQL&Nu@F^m|=Us^I{ zX`r`r!9PuJ=eWDTl#a#ssDrMe_-{DI;)fD_tn=|re1!V*VO?1HJt7CG9+zGquDLRr z+ZD*BVr{RHozMdwkpa(uycaRuEw-FF^$x?Dp*j{?|Em%|0+1WW>6~??$J25qn{^9F z7PSCkWiVOvh~&^0{?f)IKftvhLKzCwPGMaWCw4HLo>b(#3-T_^yD0DC;Mx;5ZfNMT z9$jLsm~R{9O{};UaTtxk7k97yK%|&gd6`OZ(=U`@R!6cJ3w2UXE0LGxoHiZUV>v&d zgtPbg+Qva%3~DA5vkG+=(1>tAq5-$3HpF@GPNTsIG0|WH+SM_N8yalLtGrtAPZa#2 zDSTKBexOFuKm&RFJVlJ_!PvzXj*abHDz>w_WXkG*?POcbzv2gM2OcY9{rlE-a7WWb z#oY9>u-w{@`5eUzFNlc%gBi!+jptH|Zi1UHFv60m_Qn>&(P86l*awB=j`WuunN)V9 zudGxgyGjG!>U#q8>8x$uM{Z5}o03}V8Qf`ZinX<6s~`c|h%vLvdjXVbIWEDfOVKk} z;|T#$UkXw0tc3%zt+gAyP$Oe}hwEjD?>R;)~sWN(NUG(9rWK%4LV#N?s4DZP! z^b8*s!&*oj7+xWUx#t3dT!jAx)heMfif#GfR)~0Zk36-AwhgLTp*oE&j`hT0MlTQZZGSzD%DCmiZ1R1Xnmo_Wo zqIc+*su#2QboPR=n7DS=MQPa-!5ZgSy%MT?uEd0~8?^(S! z;oDd!!iSaSy>vFQoClERTt0&QXMDO$iReut?v>_5f@_b6IP4&S2-I64f|WT)#1jMu zBFX^{M)TT_LPQ%s5t&NF?j&OEaAP#Nli4DFcd)NT#$v&Q7Wr3Z+ZGww{uVj@Ffo#> zSb44e87Ua0l#Vyg+_C8Rz&5GWL1V+|8>`dA2%wxEPzr1mhqB|22^NSB!bf}#L&0}U z6!Gv821}Hn3fc?!NWs`YMRSXmD9F_>q_5aGSxpFCNPltc&Rb_6^APbV!o;1G3a!}omTl!85H!tG#7O6N{CF0Cuy!MC#?Ciaw}jCdFI7=WA`tR)<9x~bZT zv0BA=ry$5WN~9Tjnr~K&Uq(cXyAk)CVIoFS%BT{Qa!wd1L~tNM1b5Z-BDi|>J?Zgj z?0-tJ+yd6u(g%suTPdw1ilB_Gq31C%44XsFppobbI_6dp9_&VRVPukH>E#^JgF8Of zl}uTeCPSbii8ZLH@y8>u396IGOPf7KRhRZAU^*AYKJ(@b#BMD00j`?U>bcoCKb5bMy5`; zEj9ArKuodDo$!RWnkSFYA$(Z*UxMlb-9Lmh=lG#2e+Zlsz=`DSe}Wr%1%89>Fq>Q; zgC|p81{VBk&Yb!b@$nN3fYJIJ(m_&DXHA;PB-v%b`~n(KL?Q7;x-P!&!Z;?tTvI2& ztYor1$&55H5tTSyVSOknwXUrBKadis!dajkfI5D zBs=qVtQc@av}r9 z#&2?sy|_1I8?+Bea_xh?)KvDt?_B#ZI0t1b&guHmN;L%B>4h2$m#9}XBQhy9Q4npx z5Z=`#+yY@duiqKXgCVgVG?R5<*^DQziJYSyU67Uy;ts?3&vGk-Fz5DoOBU}f;=)fl zZ%A+9xyVl9K`k!d#8S3|P2 z+f80I9_wm$56F5vNPSkbA!eBuDRL$0}q zw+SLYPD;KC#x$RtB@lWB1#0T`3L5e}4K!`oGj2j#qmH!6`vV#`ZU60D0O z7aOh1y^Xj><6F^sZ-faRR!f%As=N0BBe6ytPsxZq5^Xow_ssBGT25iEc zi$YHGjmGE8o-!DY>%%9kfO#Kk{T!Tn(|%~?_dr7YN^+hurZ6@DI4!r<>x_jK;F;W7 zpSjS8mq)UrHMr<&5pR2ua%eK&tax857E9QGG-ulBR=hjjTCYpXoH`qBnWD&?`n2oD z|G#LhRY9^tT^+85bEVQ;Lv;r@18=aZgIg}uQHBo$qX7pNE7V34SUah(Xg|| zn}$8jC?!{(8e8_k*-8nJF92jsVvTp(IhpCx_FnoJ?Y5adhBq2<>-sVZII#K(EbD1A3d zqqUGTN^v~?WG|B~nx%#!+^mEd$q~V!NcJR$l zcFftwpFw52-Tc-jU$tM-)G>3~0`X)PdH{fru>UAwnWcC5i)%R0GI5t(;SvXlOa~0~ z)^;^Cm=x^V&2g#TE(5XM+q&fEf{e0O@olt9%kp+V<{*bxG(iD%ukQ}pytyD)jf;uv zI?!RlWpN@SU4O&X^VaxmN~=`s>7}D}&wNvfIHd>I{jW8AWWCqGM`$76Y;A3V??OlG z6=XT@p5m*mN=DJqF1JZ6ptccQJ)xpLoD3!!v0gby_4WW{D1e6zfZrzp0G6?*HjTR1 zP4VkY@efekEllexz|MI6Rz`+e0+S7_uH+-vCj!Y%0YvAnps*dwKZeOTqq7>lOyr5GX)Vr(%9sj!IZWgn>3Y;!;^;H z6eEgf=TeZ|pGV4^Vk? zyGjZj6Xl=_gymO+jTd}7^H$&zd{!gv{mL?iikmQ1CTdo>0z%K2lA~lJ$e(D_Rr&5Q%4P{1gykp}fxss79wg2N#K`ha%1CcCyscyZIFyhSbu*9x22dzP()TzYmcAEgvuI0@=G>BlfUL?3$cz;G;WASr#g(&t zQoNg1lqki@^HWg@8}@A6-zTI$d4NFS>)I)m&()LI&{jSym2H*Eok-=U{X~jq7*fW= zf}FM&vXoKU?SN2ZrQZaAu8Is zmYBa*W$0|ZTA6=CnIA~ZmicCi_P=F*>3#nt^Pj$;%x5d}->nel`%(s$`BTRW^JgH< z*{cth?b)~(C7jPY*-qK5;0be^YvF?IY9rB7()8vm#Fch>)0FVfa9YKip~#l|9?k`B z-vf)P(kh`6=wwJOw%2x&?X{Ux2O%w`<5e#HQ{DXIz5EZo{6pOQ-M#!*y!^Iq{^sXg z{_ghjzZqxwTjAwT@batO{5f9!P%r;!LMyDE;I_O zL&#HQhET7?_#*bdluTLSi~5E**NtT_9=aHG1uFrEbTayr7=%=qO~4_QVxFDPK=+xx zgb!<;&%mL`zzjaW;RL!%7dQH%$N63}=K(Gb=ZVeMXi(2$oX^=5hJnA(7~)q#FR_Ee z2uG}q@;IN0-f%mEBeOWMPzf1e3}|V#5roe4*zq2-3bhi8Pi6yKCEDQ$AfD?X?h*sd zpS>uTKY*;OPPA3pvB&7}*+x!d7IGhaRmqg9fSk^_+{o!b2n=$ng`D<$*2)PB;tEtw z2Yo1VI*Jb~r(38&uusIpLhxa5W{@uL0jqKLADnUl-l{PM->X0jd{AY^GqWtdy1dGB z6yIxgf^QKY7GI{~!)!;5v-Wt=i=a9M&*a;U#oi3n3AT1dAm79?2@a zm$#n4%qV2LYh^j0YgTUgLnOxb*FPfy%d5OpIheMb!pa(_I;!BCmDws-9|F2_kmbB| zoXE@t>+4-`f?5}Z*@LAp?_kc{E;!LYxAtI%`26S7hELi%20yk$n}Wiw2^6N_^L(M! zzgq6k*g61g@gtZ9XL`Ufr;H#4j_BrEj1-12AJFl3^n2e^hVNUH@2B4vzV8w>hpPBy z`QFNE8_Ov~mh-_eDfsSXsWAE_F{;>RcF9ydSD*ov5o~h88Kod6t{7x&dWZO3Cd=sJ z9nm8r*FIlX01KaaSvaZ(R=@?+%jqIBeQxdFT4`ol`;WO^Z1e;XICFHS+0B_&N&og_ z$&@FXi@G?4qs<_0=F}Gf45-F^Wh@NGbq>h(I|l%-_aEp{ z`*$ELSz3_fE4o0Em?6Y8u*@u~M7+~>oOwwzl`WPH&)-g2iFgxz(55GhjlQ5Z+Ui}3 zDyvZ?wlCkT#Lk5yhK<%C%Q^gLkyw*ephs>WkZb4D?Y`FmhBJ-1S*fzsobkPNR~zl5 zdg8|!;$_XArr~+#m^01ckBS-q7qv7wdZ%~oYB}R+weUJU-Vx4rQO*YN&2lz{s=zSk%wJ8y8bHEP&P-n&0yO*gF^as*3C1A09zO5L9AOsSOqp z6cLahBG5#M1{)q?P_$?WBtS4En4Iviph!T8;aF->siLA%#fp|%su9r!L_!rcwbZ5- zF;%oXk}9@TqeODQYt76)`{V(%{$KZhuOGv2pV@n6tyyc$nwd4TXQN)Ux}P%lHx%{r zelyA1cDS4OEC0Hq_qe@oThu|Dbj_z?Hj=6H(rPZf+w23K!nxi}_WIcHWG~NNUlUIE zrr7J_!>Qg?_WI=TFz<4EJu}?j8)2`n4fpg0+Ut%m)5~5@40rTSwbvQ3FYMb*9;3al zeqe3(cRWb#kZ;`f2b|5;C6{#-6+}9{^@>2^y8=#){W8fS7J+bDoz0nE+JxJZ#QRJC zieys^Z6n#vOSg)UGLX#HS z)-7KDWvy+BprrKnQ&=t4lmtIT)yFg4{FFHROcy_eMM}-p-cOMeANDV6ZM}tiZ7mZ2 z+K;rZz86U-Sy;;n73xU&{5pO(xr~Vi^7x&6*CzB5(@tq?S0eFdjt@+`##-xl5wule zxBCN194KW)I;}O<`m><5E|TVJ<$2{X7_LXylUv{G1=;XI#m`oh3y(N+xXMP~VXyDVv!?%V=OpPj&PYc9f>kTMRE^OwOWODKAX|FJE0{dHEeo!3)Ezxb3T)#CS_8YHd@KQr1N>ZAl;v$Vr$Eak$3<^jw&G#?*!D$_ za3%DlfGP@DXYZ7*NX1LZjgl1`Y+97jxE3iQ-uMVg`#{Ic?3>PX$7i|NM+35soQYTuz>SsS>~! z5%@xR9t!R)IFeP7Wc>INM*G1-u7}IvQs#Bf!Q$Kl?`@0abkhNvlpKj4d`D2_p8oPx z&b(Z-X9qYUjxSbPv8RSa4xJwQjf$g2A#t666UQXcU}X3kqmjd@Bm;(8*0_92T^nIeRInI@OxhYl7Poc6Irqou!QhzP} zAu@cVl)B888kP8E&J2BFFTB_)4#EF{Bd6TZ<0@4ZiA!kh&FJoH=tPy|7uS#CqRC{x zl`^gFZW7|LXHH+pM9hr_qq7LIC74au>L*&m0YR8sKNSPn_q!&~qXlW6Shz%iG)oaK zb)P?aI-P>lvC=>*3Gk&K#+-sf#xHI;(Lq^wkXZI3GFJu>hCLA!$Xaa66IzEm{geY9x8ZC$C?HMXjkyL72DqY$_ zf=+~OxOX(29Ixd-fys(FcSw9z45P`0(JITR?*C<3$;6A(4S%>fPMSxEHCMFKS9SP# z+2<;os?xGWq)CR-W$w*|(iQVu+J>;nkz7(ortM!yrnsCROC#O>n?)4q_0$ec-#3(V zYj`_inRPK-j_byYLFV*}zP}-_+r=QAadDHwJNihuthX-~Nk!t{VkMEj@cYEz{8oHV zx;Bp=kmlv^Casnd?f_v5Ebroi3_87g#<=!{Rrchqt==Nt@nd9j#tqtJWB4syB%ZEx z0^e-W_o9COtwRm_63qHpScmqy8hgSO{`%H5Y+J$&OsKDOCSG%H<5pqLM2a3ws;>MZ zDNtTi`H@z)(+8Wh*7uuQ*UB&FyVhK(wO+(6uduuF9W-iD?{O3owW!5S;=4RDn7X+@ zx*U7q8H-jQZ*0n(zp(9lqGfgbtH>fx8tanRCFnL|Y?9hLl9X+#1g<5}8Ztv6p{eo29mu6oNK)bO|@M~k^|>jL=-P@ov|tO=ya%UH4;uv42W! zFd9UzQWgor{e&Tu#!OyaYUv936(y>tYTWgiXiIc5Eap-9)#%YL?4yl1+qvXWgAT34 z%LiG0m>cFu8pjz&?z{ne{b^n<9%{eV)ZIJoa?|G879Hm`jFMnQAu>~$;GujyVsib( z_#|(T zy*|0w4a%dvu6iHt_HmJFW;4|?Zp2UNX9vy|MMOF+`L#geRnG#>2vf(9#SS@6`<9Dx zogNhiaRK=eom_AlU$lSsy@WqBh;F`-Vc#`|jpVYShJ{wjLi~G%lMVuolb6sa!@g~# zc|Sf`n}hXO)a=J&MecH}UQA5-)KpbKh4&d3w&ov|1ZpmuL#X*38@1+>g7n4+JzMi0 zj$ZVmIxV@=hfXwZEGiHu4I39C6wH58^7f>*iqk5RXuy)f6>$y|FN*Odou5l;N7HOo zbc+a^_w>3nc|GfRQ?KN*zEXUo({`;>{0>vK*94p>3$ao}`4nm1rSZ|hw&@# zc?<9of-`9_O0XiSi*Rk;*mKOxxoTQP$|t1ucT9DDZo((2Ti$PD-`aJ>ookCbjpC*i zr+lI>6>2FLrF>E(-IJ*jiu8nHpe;tfgGE~_D(7e?PHS|?(5M-%P zzL6cvQhA@PC6%1gAiJ#`o0aA%cZ;^WV_M0@5{}#g~q zVl%S$?Va1SEj)jPnoRspo)ODQ+$P{`j-GIvXpz`l%+0+J=?{O+O zrj3U8h=!G^X&0sJDf+!W96@vuv{9ndhqv?Oy(eYO$~3ifT$j$zj#fDty_EOaf{R_H zwUT#LWU$e?MmL?PP@GCT7k?%da3q-!G%rsR6-H>|VuTiv0Hw*VQZf^jF;a1jpj_O% z0L6d(bgAvmuU83nx`L%-y7MgxiB}0YK^_tp6dC>)Y2NQn;DaR3rR<$nl2WZl*<*n! z%Ia8A@=P^GAdmUAyC|i)==GYh;<%y}{z$LYm@CQjQLC-Kt;n6DtMMf19*$Jw$Cua| z=a?F2Y|t9NsgRf@;A-5_)OaIl-g{lN#vi3d2E__n=#^fMgeTA#$I}?UlBU-A*|$>r z{88SRR&TsF?aQv+KrB?{e)>b!OK|{AJg##BaKN=n{Qv!FHtaT_+_m zmz$%4j6eAoBFMzc1e^q4y;N=HYSO$1I;*3WR@FXg$nCXiBuVcO8&dgtvDMT(qp4p% zt(xj@=xmZ-j?NTACtm0z8aic6O~v<@o7c>YpzTn7D%Grc%vzvnwjxwyk)Exki&9ZPQ5O~UsFJolkEQ_amXsC$Woc2w zu3L>FZZV38un7f4yd>ZRl$@f9c!M;r>+wfc#65I9<|P2 zv3TLSP?7AEEGuOo@78T!F?}d$#t_Q1kJU${i+#-8-k@EqXueF_4po*fqp<%jsqN5| z9di?CVCJsh)9Qn^r(Iwdi6>fOuKg8ByrN8;qE1b@(!L>3Qd0|)eWP*!ovT1wQ|3Br z$Q!I76Y9~(#ePB%%Tj&|9S#2cjinperTMB3#jdOJ$3n9u3`E<$K3Tk@U(MKY?2m7; zZS5hW;!#g(Tl+vEag2a7rOz)`74IO;`|WW?#je_&m)<7%rRsKAA=m!+P$Wm&S2l3z z?JYa)8KL-1zw?szT7$SlH(Qn-Gb}y(b7kpT!_o`#%ds@ou=G7)X)r9+yuuoZa&aWF zS5UTjR9I6V6l41H9TSkFQFR(%nAoh4I5^0}9+7Wk_`{@mzwF@4rP=!G@QM@N)iTMuAPW5q~yG^YmHs?rLU(a64mhqGEvrJ?7L4+5xxYFlG# ztgiF@pY%!G|^n}PD-cv}tP{3*6FG*VY*Gcm>9&6jZjunYnf6o{mU1X&l z&8bPW3e|kuglAl9>%27AO!+loSxN;R<*TjCIX22Gec`LFqg0<9j%T#+s*V&jPb)rH zT(R#YhH$US5YDvei&9>l`=b6*30K6L{yht9E#ES=9J5Yqd5o#$mGaBg@}Sg&gY-!A z-e@1JWlD9h{Fpb?2fOnBV9NjGaV`H@C6o9M`Q^&L-;{s9l%HqIm!{SExk?6>6^?}8 z{daya=%!!)p{(kyXg>RmZJmb^zvF zpBty&Gy;Jb={wCfJ5C>HSbP2*6+!$ynlwFB_aI9TNl}sEeM$2Qj`5q18owRjHX{Ri zj7Uc}AgfMowMArP2Epni`xx7+M#SFe;l>VW8x=H?nl-e)Bes*yOXo{7b*98OEwITq zu*pjeC7ql&u|!g3RQyJ8)NjWQ@`|Fh#&c5MU_882jr5J6k-jl^z5mcfDLZ4WbpL#- zT;{9dh}Qi~AbzEh2zqsqjNaNxYOs)haH_hrxYrfGDKP$WkE+W|cEIpj; zX7l%^aEl$4cAr_;Dw1XiE5r~iVhI@7s-p`E**V8(xS zroENRGh@hI_iXPTD5|;M-5i?41}FFl?dzOcoWi+c#j~nf z)m%t?A^K&i{tRxSwX8^~ljqIJX>8Pt6hSV9*xheOl~n5HHVqz&z>e4F%<|ggp|T=p z*9ekgO0*02@{wmLNoCiKtLoHJdgKWt7FF?chk55$h8Gv5R2JM!QdMePNLqvGet14) ze7bH%+=IIKiEdh(!eR%i(xIF)*BbHpQc9%L2dD<~dH+#?L{EM>BVGajm`??_ys2%} zd^}N&1T*4lzBV;ADRibqX@(@zFqkw`ZBa5ioQhMbq>*`I^?bpe+HtaK>1f)e*&i7F ziv61msA`}WqJ?NeGV-O{1hZs}rWB%)_!H}i;LM7~ch zTPBLCl?epSJdrcDD!h@fB1Fs-@R0DYmA@$EQ0JxcE^?!ooQ``X#4qM6!>QP9bb+0? z5|tZ*IY7)tqjche)=ku)?iiFHNs;*1Z$MinFa@6sx5rJ^JMyvtJPswM*vz|7)6cgd z%MpXbm!OW)xburt?;`T#vfd)rNT)9zR;4!xIHlh|L`;Y*6rb1XYk8ANUV-y>!@||< zA)>&vlE0*t?BfNvw33fgODac|lr}Igff`nL-y*@TZ9jM+h0DH#z`o&_ z7$sGHXQrz%Lvd5hmkAmZkYUv|CNjHdpsnWB)R$_aC>5EIE>{BId zX|E?!Omug;vw|{O0v-OSA&b6jUEwOkj7N}9UcZuk^?@TTEKv?^0e^E?vT}OXL5gzTmrHP2-2}qzV8eQCj z1x{PM2sWCm808eEKX{^<0?sJg4OVS2bgl6IbV#oW;Tq!@93by+2N~^6b>xN`a#fH! z&nHJ47;DJ=<3S~NP{5J97ezVU&xD+JGKE#>LHjDzeM4y#Lm4LftpYu1t0-%!RooUA zee2JezwSq1XTDfMDn_#on(L_65UJ*XHo_3TQeNOgu|GL4R^{bD4(C>!NBvx9p$4bAnd!9CwpD7b@L z+M^v=IbVxK_~X+$1X0IOQ{rb^s%cIl%Q}pPZ-U#z{;9{h#MXXd?`UEhKQSSiNMzY& z?-osr^Ao#76WjTT?W2ju*u-NiV>zYM%g$1HG?u>%vt`^w^Nzl?U6%Keve=)UPN?-PG)tfa{vHHtpXuN+#06PWBK zt=RUV8z@Mvmj1b;OFV`q+Je>G7wCVh&yBGfc{i>^w!|=$!Jav{T%3%INM$y`0jTD) zEpjcwNuZzRT6`DJlq9!LExCek%9uKc6}s{?yF4z%B=x3WEwDevbt92-yO?|W3`KX@ zce+gw1qAMkn&iHtQe2y)jzZqxDv^}|ojsJNR)~7hj|}vZy2(@_=6u=&Qg*~1>wKn+ zD`i*IbX91l_N!E{qZJab7I1pK1L30AfuwoYeW99wj8$x^u(!ZiEze}af=ix<|0!g1_3 z+V@?bC*%|1hYCcDWbqzmJt{EUo|5hOq?>PeS{;cZ>Wp(Mj$ccQ#3xTyw?rp(3SxHM zW0USDS@#LbbV2m;lKkUslEIGnguuLjK@obkBk4%|2N_yAw2)$jCofegpFuy+(5FQ| z@biElsM5!D^mUc1pOC78_3L5Bv95Zf#nJb$T;uxJ(j-lKSyon>?O**0N-tY2^5JDn zzk^kO;ogpRbDuJ*#h)p8l&lTOaH}|FN2}CZ7w$L&PjkgGcBuK3EgP2_e7+5fZL}zN zZxk;hCs14eWn>wfl3^iZ)6ddM4yKjtPm>vLW%BbPdr<^D613;veRHJX?MbQPZ^<`q zlu)%}z1LpVsf^EODSQU#UV-%1VLiU|0(4`>A5pp;gs$u(Mnb_)Ei~6JOub(9-$duf z^=?t;!4bpWvtoR|SWzUtvnliFdfi8^a|Y88;;p5pO`;mo2uNdp6#STGj^`dX zL?0-SI_JEChRDC~1Hdw=e_N(pf zwTK887}KxfX|70+`^1I!E*sa|j+KgQC(}gB`~}BSP94EJ%UUB3i%|~IuO@4%hCG@) z&|klAw~n?|ZL=h4e$zqBm6mFkf@(&~4^yn}l5+cS${3*cmL<`QYj2nqJn%Wqm}SV zL(z>R$A8zhn^sb))K9sx-95%>)>A2CyHc)JpsSO`miS>B? zsSVgxU|Ci-0^E?P){|Ve(5Ui~ABp9}->Z5Q$zw*DP2*cTT8MJCCVoY+J7E5pYp9cna&E_)YO0BL z&d}@P@>H?PG{TY1L_6o7Zrj+n?@&h*?M#ueh_pJJ!KS%A}YK^wR&#T zzZUI$kXpFVAT_PGCbTx*{D9)ZLk;KO;91Kz25T4daiv{Jjq^&WFR{jln141;6< zB>p3<j_X2e&zL47Gm)h zCJdKF8BId4V>J;Y?bTgPh?X69nha~ygybwPkyfPBr=W-JtbD-H@ogOqCQ?Br zk*bfEl^$fNlcAVN30^={{U(BMs%mZ1Q7;yW>veQd(Oac7{#;bl^zv>_i$xx0=JDr! zI@^+XU+?hh}Gyj|7SAmG$iAVo!n zcV5QmBIUzqmqEc5-mxG1vy-3GZyjcK^8G7ZCravndAu+2YSpJ7@9WLNI+is{A#tvN)9ZcWFe1apljhC( zKs8atIJX;O`d=OI+kH`R5LR`K=f$BKvb@UXyCCt?sY-W zoM%9rS2l<_5?4HPWI)kW+K(&7bfwYw9%XPiCmo*K0V%OjNHY>Uat*C5Aiuh z2SdMO>0CjW=G~jETMK`?^hHuhD)yu)6j^w70$K`_Ax~ue2QJYlBf8 zO`Puq>E8lzzFUz7aXta(aeGTq#Q8|`4!+x{C;cqilTOCm57U!wx!f^chwO%k{q8x5 z9JXg%M?p=Zr>~#bVhalPq>t%i|3A)G;SKpm^W)!6Zv1<^m<6M&(zq>SRr458AkKG- zs{a)Mr~W=hNjh$-|FbI0_b1ovZ?7jH z{l5|C`||u?7cW9?k9I1X#`$`6w(aJ>FV0si{hzGRx;P(5r+cqL;#vV`KwcNPCC*2h z_rjkn=l>;fKDU0wz=tJi8$astp3Yoki175K)+LFMCAy?L4y;Z=8yhw_Q41bF>FBLK_1V|MbtGw$^ex4H5MB`;qd6^;9ohep6 z$i~X#kDoLvlancRSItV||LPo=RG9E^QqyZ(pDY+R7p9pWTx^zZ&Z>b1y3=USWb zBu;VZyQ4isZM_@+o9TDzDPTjbCou;!XYG0n`yG_0)iQ2bFBXx15J z*%@kJ=L6gZc4V`ET5Dv!E05GQK5`|YP4fnSLv;JfXm4VBE4%X$BC>-m@wUp!bE+!;RDR2b5&yuozlnBa+F*kFI{9}q)#$vx zy^S6nVQt;K>ZoJwS1wUQ`FFtgMbB7(@eOG;tiXiie@hish60mBf%A!XHbd^QHkRB%LvBAFtH3809pBw% z$h{%ptnD3iiB0JE?y28da{q6P?@l@UD93k~#;IHg+lZ_FZ&}BERD5n=eD^|FEGNEm zks45U0jJUS$G~l5_yL~q{`{up{J(5`hogz@cn^ExXn8jx>@wDfxbq~dZRfn5m!-{} z_~(XGcN@@-#OI8VU+!^n$~*q+P8?lLOH-~&&6!ZdVf>A+^14)gvQ^UsW{gl@sA@V! zwUrnr;M9~UM#Y<{JmC#`BevK`Vx459#XnrhuBrWOM3%)q-j5)rBy?6fIztSdm4?oC zg~SI;X6=-{FU2QBhCfM~xAS#Nr==4|A9>qKy>!t!83@2Z&h^q4%AVGiP8_|AnnaJM z^iQpv_bI2m1y3A(jXmjhD7Z~3f0z?Tw_Oxe`J7=fD(~Fn#L=ZmR_xz1;#gXsVt-R1 z@lF9J_K!t_k>MLj^IqI(#6f{;sI3i+iF^mS0+UREgG_-DQ{eDmfj>0`7D$1)w!rAo zQ~qlPQtF=XSvHeRse5izHd9Qgf0bX3%}Y$FXG^Ik+ft(^j{d=!p)c&?KCy~JV^i7Q zuevArDf?u!D><Eo+>wMitH?HfI6B1e$GnFRV^NQq6B)8& zkAu~*+9N|hYmHht@s86@4tr$imos$)Dn>(r7*}zVBSSxz_DT?wUP(HsFY*KuXXgXX zzNcagG{Z%td4qo|1|>VPWpAF$myUE~=x8DVQd_Cer(&5pKX#{0R&ioqIn|6F89Mi6 zJ|bw33{6&N!UXU=Z%_R}_es9QlTgRK3TcRF|J4&iM}K)x z_X-^O#LzR3K&*umL+>G*_adD^iJ3aJbi`d~D++As#L#PO?L>a8`viPMf(}Nk2OQ6> z!<`sN)Tv$VLCx&j_V#X^+b7JVsMC~~LFFY}H@P)RY+GHBFynDk=Oyu4TH&C6eU*7I-hF&tNA?BZ}ogZ@N_(187OJ|`GONHbohs%3j5 zsy+F$7Ea{+RECPYlM^lD9nK~o$Ag$}qZ2v%@LEGd(dk~{=f<+z7MCR;W~Pel4+@DL1)Ruc98{5QBF(#Kn|guhsgf6c zEi5-VRdU-ug2v#%z_%{a-jVqV<2hCBOCh)J4Dl5Y*PP~~6WU~j&N{!NQuYT?F7P1ji?@rU{&CO7fZ zz0%coc6jqhW5=m+-NZwn#5I@DL!9o$w>CPSdbJ5NW}WtdMB$`w3mDOc6SQf?gg=2S}GmU1b}$W-`axE?t5 zA(HZ*RP>5ec#4dEk9J?ij@EKErX!UKulQIU0q$TbtuoPMjdRbJTG*#PyjZWbq#l&C z?;H`Cy}5&%W-?%DHC)EiMt&!nTBQ1WRs$#FyVV?DZkGu!CDNr=+84k6`g@67HQA+H zyWje?mp{`sNRJy=Hqf;})+x?4ZE$C{w!z;ExHgy|uF&e>A1|praN3Ephi&Z-5hvcp z1A)ZXNi-$`Ulm?ImSWOM-cK#rBflp9L(8jtDM@IOuum4p+?cRYQ;}nT=e6VC4mTg8 zVS9VXeP9l`e}L8_xy;4_+G`!+dzh*u1*1! zB@~y(nYN{8C~RAV2$!)E3En+V+o1WzJG)<#OLo>=qC=0AMfNRhJ?bxIksSY1DW}uO z>lsyraW#G9u?X9NkozHJc62!e5eNlGQr1ZN+n?L$!<1_DSY^Vl+C9+^<$XN>*wyF2WoT{ge-nAPb_cCgl*ES#AVe>cUH*jh{MyyQ_; zByZ$ErB2#WWb_78OcBo2)V%T&m4ZHVKrA#ep`3gC)>lJYsgNd+O{i+p3J4PXQU|5k z-o><*{Fx8YZLF0c+sRN(-i+!RRCN2|ULb?8h{!6u4Ln?YuvJl;75g&u#=h&cY$oBw zcf-CzLe$iqr)k?<#Lb24X&;8>NBiiY2pq^x#jPLeVgu5KvmWa$b)=wbv$G|(Nw zGfbjSDn8h{=)4u8+g6=#e}>n1_O;SqA;u;L_6h%&`TXx|m%N!Dp^+uk`{o&staaEa zLNN~b#}sSss3@M{&c4Bcge@4BbKa)@lF&6!*h7IQ)`*1e6k9ZwOtjEb1?s;u!ziWx$TbM!GJQ>hNB~$CH_ew{0ya$3)`Z zQ z?Q6HfPFSM*=&|P*JGM65IL-dHqip&&cRa|J>TV@6s;R?+*uz1#RChVnCE24vwp6$G zlkCAD?hFsNqr;==RO{&xZfk;`w5fjRlLI;)ltJmjUS}XjI$3e;vbk_Yg0X&XuIOzp z34-Y;Z%Yj=mdy_aaV`f$F9$|1&yQXXa+j%btHjz++N!@%5CdG9%|LdMk|cfY zr7}5)J*LboM+hY;zSX_~;%+2coN`C5vneeaU?$-fsh)8gzHxllyyF3sj^_Vw@d8(F%<3bTgbV>>lCG!W+?h^UNs(z&k2mhs}ZO_ze)0k z;tVM0J4MD+KHfX~Bk|QFRh z!Fy$KW6wgoglWf!xkTctejt!oBj5&rnWwY;AtLZ*tQmA6vkkDV1@9XfUq3zX)s2Dan_H{LL& zGSetWDfSkM<|TLiU1xr4U_WjSqrsGFr|OQT2Hwx8I8Bc8-x`&x3kwX#+c8x2)DVnz z{kkkf}N(`w_L3P+b7_3 zGgWQcWJEpZ{{rG5c$;W=o8t2( z3CU&a3~wJ?rM!&|@>U_OxzuEYw|k$qytPrGRd}ZnL~W7$sgC?-TtI%ZA^$-SCmKme zE?aNNXBqO90!}okhP-Bkd^by8tau@QNM0`$KfTW6@tzPB1VuMUmeX1i-HU?{Bf9I~ zv!Y8hyvwnrsP!zLcS%St+L+{R;6qr8Wdn;q?&S ztrq>EStsphwhGU-Dg3CsMS+g??tIq@G+UXHfJ5B1j-v^SlFMYy2|IhPRCX>8va?mp zs?>xb?tZcvUT#I!8elVx)aUU+bqNwvgvSc+Rs2Xa##S$y4NClW)Z(gXhnmrL-epjW z5+CjTa<{GAGHQwMT1Mp-o^HiGVOernxv5+$Q@L3JPSzia;?4BlEBkqr1AmaYR=a?p zpnLu1FoHhQ@lwwPysUti&%W(=S&>|}&G1sh8YK4j7Xio1HHMcJBCNj6@zM=mf`WD< z>q>2;zMwPlN>M@oL^K{0^yzeZEeiVafrk-v>YuHkzhf%5ipq8ME4M1SY=^1bsw=c| zZG)9tAUu|)tdh!&eZuF!4A3ftL2Jhq#P(WfT%*11?^q5VfEC2M1`h7(?!>z$xooH5 z;AF$WVgV=Kuf*a?$pQzjuWQ6Xm6b?ZWb!G78BXM2Ifv68(n>y(EZ-O73d-?q#B6gl z?U*tK97c{ISBpP#K`qu%i=C&rTC7Vhlg~=f8pn+jNZc&oYB9*vVx6#bjMPF{Vqzdq zc%_>UBfC5PWM!9WsBVDjRX)`X$z{6?)py1!)k}j^UlJpdb9Nx|25eI6Rtje zOf-|?Wu=~P1~lO~Z@qAJ>$Y-A@FQC?{^>2_-;x)r*x*sIw3dH)AXKqbKF}gpH7ofi zHL|n|PP_DONll&l7RQChNf;SYpKTI}OTOY4HFxyn;;X!Fu0Ee~L01qmUBO>Yu~oWT z5|Yc_R}!73F#AG`ZwRz3N_4~fqK;nG@uFae%?yb~hgv0kAkv1b-V0!|#&6KLq;}XOJxV6lqiONls7cV4u z5s9CE5?mc+RPG#XNwNi^a;1w_Lc6gI$~?JbvCQvcVpms0-}hJ{H9SnTtn$PtTmC@i zN%5(|wrH8MnncUKg25Py?^RP#6Q4WXP&}$=*)x>WXr5bAR9%r$FSa2Zl?M=F6GdS@_1}sdKK|r#x|4L}p+}pI2PpPXbMI^v?b>&eRT{FJ9}-fJaq!plvMG8HZM1(K z?Uj*LgAYIY9ky*kLQBNRzELua(b*vr8hm=yIqwl3s zJ^jh|7Q|z@Gbzk=hUj|--A_0&AW$WVSiMJW$7lsg3}A7dzgODMmy8p^h2Z))En6DB2B zEZRp z#|b!z`EuxlSisnygjemFn0D%=Z#(vUsUs!7-?}zrG&9r z&(Kd(#e3gt^wfHJN*svU5yJ=H^c51_t-&{KBC|7D##~H5lnez-+p5@B(xx!_g6kE3RBt!wCi-}jC%?L7OeeuHep`y#p zP7v8KB9Q_eVg9MZxh&o`qw!v0Mn9sm zm!u<>T6{=AubG{_AOF@mlr7YY#w}gUv&X5gL-uqro@%Aj-;*dNlGq^N9LniN0d-RR zXZNZ@sg~=j@LhUHB^d@J8}f@W!A7e^3EJ0KJ|*Ajac+hc932MXPPEbgpMw2FVyJ&60Q>k#?1WOob1 z8k)De3rFm*Jm;inORY{u>qUa@xf1sAH?(zx1o0lQ05 z$#&{JOa+xF;3S)Fj7jb8te>c4%f;@N>ncdhYWVXaD{FV>BIG03-Q`k3!0t|!B`Irn zW>~P_4GU%&j=T!^SGyattr@$MF+rUyZ8x?%k)N?Uv&On#45H-4ZVV_=OMWe(#MF|z zC63X;itB2^d?ic!@<8#6@^4Il4G!`)!SJRT;q6Svo6PXV44(MeVMMcTs};>HhJ2DCf1^)c5|YcZ4Edj5 zsG@mJz=`H|G%C9TeSGvp&|m=)Ql-VMJHE#q$0# zl|Xc?*|1O@248xH6#3f{G&!{&0BjI(amz?M;h|u4Ee!6 zc}Ykv%QfWl4fzE@^7rGKu`107`5P>G5nUy2!mYS|+lbq%7Zn9Xce`2fYF>0*NN&;U zepzlsw~R_4x`~GOn_4^3NkVejY{UDnE>O{x3pmleCwh#o^Z(*bL|1AWfWMk~zk252 zLg2R_J&ZuRJEs1@1x!sgOnunOF(nDfWnshA>4vFuf=pd*n9__0@zmy+Y6nwhMNsAD zGy9VI1{ubdivq^7WD{Kxyj4^j6n#gt9;Zb#Y4CTSd>GLW{*4uVCsWHArj`vMS4&Aq zE}Lg+Ib^VkK1INZK1(=_?h_ak35edUZzhOol>|lq$is&b{lhO=rslyNqMvP;n&~qo z37jl#n0ho(nc5)Wn0ix;v(#ind=D*ehN)826BNB;_7e3yzUX)1u%e=GCl(qMy)LF% zQ)?pnQ{xXK`WIfbwY-b!Qpvo%u9h`o2hn{7 z&zJhOY`Q8tU`>kxAMN#btQ@1PuvMTmuKtkaLv|M|vHCYmqy(ABQYOfPoG)n10plrc zg~3(XV%%7CRrc4S;-Em2bnUN&&g-`)wJ6Zh-ptKbpvhE+fx$9rG1#vK+X$AKS`?hG zqP#`GiSj|wtKCL$;~g+4EXCPA>z~B@T5w*Yy#p^;s;@yFsw<#c{ajtpy$#hBBD;enhN@go#xZSD>XF1>m<-->QB6=#-@-7hc-?F~y5C~WiH8wXvSYcM zVR;oSck)?g8-Tp6fz6FFEMFzy1XUz{!fpdd6_!iQLK9pM)t)EV$~O}%Y*BD8Y;yJw zI|yzKT-;vo1jkkYSzCdNmj?(WRth*SJ{7C6F}JPDVz}6dOii=yA`J?@3e=1E4Z02M zNzn$KD7F$5YdNxSQLLj*IE+|7e%@AS3pJxc>!{GP2VI5O6`vV~b+Va$H`6(SaS^*^MhQh5*xF- z1a64s;ySo6Vs(6-roO@#>v|kaRIGbMr!Bd~HfW|r{@0dSDgKa(AjLBHpZ%4SB6|oP zGW@SUPo?<0fRkdCC{s>#LW)n`CQ^*uLoh?^{nl;!Y1jXedkCJoPxKL8f{z*Q?|RPG z=SeDtn-3W`|G<~FN_G#y&rPk~?x(f-K)}_iwbshtL-5wp|L{Eo?T#0PL@RKlJp^~4 zYt|DEw};@}XWfJ=x^n$5?jacZ5E^tZAO~0VZ}rP=ZVy2l$=2K+f)2QGHvzcP2-tfJ z?Jz+++#Z6HqSTt%LvXh&JvFz7U^Twa>>=29?$PWaSpRD$u$pG}5cD%-n(iS;gp8}y z9S{=J{~a7RQ>ow{f)Prsg*^mYWR0hpJp{j%m5yfi5EO2A=5zFW2x@*RZKj1i1Zy_h zHZvDCX*23_O5<`qcWp)zlFRm(HuK0i+Gc(s;M&X^;yj{z2p(K~bbAP-!!NFFPY}5M z%UmDszm$T4{DPqg*N(m-p)k9!Feg7RAum6ikdv1a&dJQpxhXr#XBW)M$rDyd%ghr!NbQyA)cjeqG9e~XkGa`MjIL-h zQcgl9fPqs|eBbn*qh(&8gven!!}QuwVA9+2Q#Kz59fcG0%cP4W;%0O0%;1h3C)C zP8dGi)hZ)AbZAz7UbZE77@niWv|RU4{tcnI1vz2bL}*U-)G$qJXvXM_oIK$wBeQ5; zD0_B(Zf-M`ZMn>&qT4*NG3TSM3zTF=nDtx!8#_C@z?i^PV_{RW6Edfw;@OzO478n- zmoT-cpaAVB6o#=OE0}Z)pGFYQpPHYWkW;8mLUK{ol-%ruxjEq(YNys5MasTi&!r(p zZ96n3pC{F@Gv{E2ndA?Ja`H1wqRJ-pP4y7e`n1g4!t5hhhG-?bfV!&41`P1oadNX_ zu=mf;$&efw*>jMStc-`6x6@hFZ%V$g)gIW!;mwl==HFP9U6if%ZYX|3yO=*aXSOM> zV5+M^3>p*B$1=jB#$1_kp>6I|JS}Iy;FJ_&H!+z4Ka9KvngXWaD*we&W))6Xjb~+s zGcyu;3{S|&$ScatO<1rXp^)AuLz-&;(9{{(Q*StO`!<>`$evc1kuXB?VOQ8OjbP|d z2uWKP|Cu4gde6zv$vV5Qp%U(!AU_j&pWVl$>+L=!{p>!W{3$bO&&ul2*i&dDgXv2C z;_k0+Na1fOe>d_w!rv=g*Yek%fk;pOzR%xm{+9E%fj=3bI1#IShZyQ&i$#Pd*YG!+ zl~DORmPqda{^a@^@K$^6?h8Ia+VA+2H#p??mt2qHS~mBO<8Q7_e+aCw*Yez_f$J+- zrMQ*9U-0)Xe;2ZPb{v0>P7l)L`c78Ss`v}@&Y8Q{9FFAK4*Zq#w~xOi&zZjz-aMSi zpZxw2xY1s_`+ws1A^yJ0{-{~}NqQ=H7k>*W=Ry8nv+4W6cs60Uyh8)mWn90@Uu!mH zoW-9!^OL~+nOvulej|Tn{G~n{EytA?#3|&j;+f_hasJ#qHJu(@;ARf*26{MO$#^Lw z*BO~pZzxO{fjvw1tY~ki#*s*3)Jrw*hqBD*Nd3yZIhnb*n4@e`Q=onB2>;<}1&mb! zztz3`2aE@L%+5wGJs2Y1AbqHKg=x8&)9JhWB=kzKZFg3FL3Sv=C@e%n@=r#{v_;Kk zT8#Et;xwG#G8m7A)tyLh=HDsEzESTG6w?3ve3?_jj3;9<%*|vloHspVT7E%BR(5XA ztQ-mtx@!Dh&eV*;Z~;%z;a{0CRfk`pBYI!k-&_#zzlmB|eDA=-BRXF=H~x39DPU@T z9#RWiAAD3Lwcx)S=hepstIX{{!phC&&nzg&oS%VQX5s(Sa?ba=jppwUJi`3}df#-) z8Pcn0>zSS%&dAMYK#Wmnw{ZA&WNgFo>A>)FexPX6cE%-7xH2U)KIO^@qf%SWo6S`^XD@w zJiHMV73Ao!WXy!Lw9wG=&SOA<#;1mIW={=;r_K(|o<55)J^vW#yTL#6$Gm(IK}zyv z$%rI>woFP2k=4{W8D?%3o*!yqj^J!n(AsN2U{PNmy+5!~`|IDReaU!L{AF~!O6{{V zXQ|e$M?LCUl<~YdVHvGO^D^mW{?#Lg-k~rXN0imic+yZ0JDtej*_cV3lp|%RXnW6Q z*p?lpqshu>+56jePY==5ul-Hw47Yx8^ea{Xf%JC9~5Ce?w4fv?X9EYaG!+U z+&gzfW{%63j<*ZMrFf*Z7uY|(P3@Kkm5dFn!vEv_vt{ZAELqkLSIxj>BIux=w zGiGHL-XNsU9iRpHY?xoBxZw%C#V#p21BQe#SnqAMAa|rNjsAo}g@u}j7SY0UOp*ul z?9n`Di&TM__Aw-&4rSfflx;u3``Up?f(d?D-&ZKDwIDm3Q-B3dJCa-Yrt?#Oei_pu zRLTJ!sG;G1P>@}zTVSpnblRcNyxG=(O)EXT`318!ZBW5x(o8FAsl6%3gM|-av;YIQ z63)!a&znChzo<}s(NVjbsEcty9#gd-^Z%YRig7^r6#1{I7+R`l( zd1Ph#z3soMAuUm*JH(VC<;}w_HE}>kQ?gZ)^=jCcc4^YXWf9ZWBBhw4R#Q+N%};`+ znaJV4U1|><|2JPY?I|!r_gh!S5qkF?Htu7gnGvIDe-aOh&cSnLH<38Qftc=~iQheZ zLnOOMK8bh*1^wUPm#ld^{}g0f%re&)<$sE{5nl!Z}Pc zC?lj5vN;pZ^&dJXVSpCzmp?*t5iN7i#uP)&C@Y4f$(cD%h6}=hB^Z5@Te0+pS(XSK zvs_`u^{%3gBrqV9li(hoota~16+OfXj?fV0k?1%(=u3>BlETEUW)mCqebbRzx6Mix zleKWhznryjhGf-(5?zm$-L(0e2MV%h%hNIc5oc)PEO;(=zIKAl0CEb#MVW-uU7S(^ z6T~U!G0V*A9gSQPg4F+%(tz_#_(Ip~q6}(QOW!W$1*ce={~OwWDE_a98rr@_XErIopV%M^0ge1a4#%OjZk-QK)6ajFPmcHU>lMk_(B}_zA8sNeq-_2OY+6 zd+XCWn_xeV{C8AOn*PBj0Ck(GA zY_A6^oH%<~PR$7C%*rkZ|;<+{Y`9A zo^$`%nU7(uiKW78ZqfAVN1P@1u=GNX?l&DDJF-3Kcy%q7fzwpnZh^#Grph98mN+mL z)|hpKX0S3^I3x205vrNypb{olh2i|!vtizH;tLd7Mfenljuki&4Ja%-gB1(S!D<^G~`wqV6chV$70?i7U`p zo&6;?dMN4?)jo&hWEg{EA~UtAHx<${;jxD9rVmUekI;+AC|2g2=Z?Ti%u*$SI)mgh zLOryFVG@}IvKN51mzR~Bonc}GjVFKKI38siGT|Q6SWWwuwjAu+TAc4C##CP#@V`0S z`KIkq2UlTTq74jn5bA)~q0az+=o2#{;KBZZp$x+ftPbxUJACo;x}ngy{xim1lgW&V z&XzWiA@(t60HJvG2u+-pOP5Up-?aYHx-!Jmg!9!W9Kisc{SSV?+dC5L0OYvr>EG7d-y!hd zt!Jm-fledM*Uu?3M!&&4u6}GpYEhA5Qs1z?c6@YxfQ(`If0|rl+mG_=WEeBWXu16~ z%3}pA6ZL<&UzM?CGyN*b|8x4)#(infgE?V>MqY_AVh{`P$3;!thskUgV08DGY%S3^ zxNhUi&@{S;0sW8AJLF}~%GM}24-ZUC4Cz9=OXxrEf=kVRp;5Z`j`g7{mB6{_vYBdp z%DB*YHrl0(=kkis$du$XF30I$al)0Up(`g`9GWQqjFSubXI%2A@u7JSH#96>)6lSm zzupfuG)(93G5+fLn@QSu{z5!6j6bPq)2QaZ8vnd9eSAvtXd^Wz?*YDeoqLc)nhZZx zg|1n?Vf&7Q_Q-2u1m{aLXb}VY^$!g&L+ye6WuK7y&)CP{SoR##JTyBulm0N4@nFG4 z?DP{o_hVILI(y<+svd^22Oq&SW@i=_&do2#YLYE3H6<-=Z0MM)Q_?OO%hL2Wlu!Fn zV@9Qql9lbCZTTXy;xp1Q^M_dR*!FWlBQY2OwK}cMMG2{)P@7{zp|!UkY#7FM`ig_R zUK|QN11<-v!1ZAAj}JEN0xwy4u%R9-1iOz4h3)`{f%k$7z{~DF*svCS4%`NIy60fS zUhqb+?d74+n_y2c{@#NPBf;~)EN~RK1bhx$3!b=&{NQqMFWBy<utVKX=k+zoc%wVbx&L!mQxeWowCA4~(=@`6n+7zUSv{dqlc zBX|hh1$N;b$^&2;*!9X#Xix?61vl-Wp5R@-g>E|KaPGre@Ig-2*a_xxsL26v*dM6> z?V-?ZU|;Zla3lOa1?~dnxV{76Ua;%9Q0Vx#DGyu%rh^B-Fqrj6>ILosH-di$cY*Dz z$Pb4Az4E_K*)gXM&T!CExtgSUa*C*t@%AU}8$I0@VgE&$u@ zB|n%1ZU)zYyTQF+J=p6*@?R4QEdz1Pp-;eEu52k`U!I@w!xEz$j{WpSr z!FRwkF!WdQgJ*!t!D?_bIM9PGxDss3*AzB^J;7>lBzOqS0{{Lo@&Xg~p?7d7xC>kZ z)`OeC?vtf*$Fc<8wAHKms;70H|a2J>h9sutGyD~F=1{?%d zgX!STf1oGupWtfnj04CE?C=GAgM+}flS83tU{CNKa3uH^m<4vLquyX2a4k3n+y+hq z_kz`6+f4WbdxFcpgl}*Ym<(@O)4^R}x3AF`I2P*wcrr2<8<0HI0!r= zuD&51>eZv7T z7wno#I|B!So4|DNZ7>Y(1y_Q92RDKV$CDrIcmi?*2ZP;bp?`1~xCxvDz6~w__kydz zL*Qm`;EBi`oCwx~ADu-0Jo;B~82EWtSW{w z-UN;Ww}M&V8Q&s5I09S?=7QTKy&L(#L15e2@N)`s1Fr|uz*;aDoO3F210Ms|gMSBi zf%V`4u;*#W?MCi{gTSp|I`~m{>J9e%HuVNafSbVra5uOLtOuU~yBDA*a2U7;oCMZ_ z3&3`#lOOB?ZUzT}yTK%|9=sOpUWmPb!@x>#68JH=0Brvq@`D4x&0re18@v;&2e*RV z!=cb_a2WU%I0@{TKz=X@Tn&x^H-lktH~3qy9{e-dy(kp=8#oL+rU&`K$>0)jF}N0d z8r%l%2ls+!oPpfuFb)EHf|r9M!AHPca0j>?{1{vh_WdsQ4qgw|f-Av}b9o-@3wmH0 z_!XE7ZtID?f;Hequa3&798)nLEg$PN56xEE~ShkD0mv06WINS)E^uMJ_t?%%fSWU8{lfN3fv675AFtQ!Fup3u=@h~iSx)0 zo&in*M}iB$G2m)27u*ca0e6F|z_902hF#_9s8s8{7;I19yWt zU_Ce&?0$17^kZ-sxD}iP?gkftAA_sGL*QocoB`wqQ^0!gL9pj7)E68HwjM}32M2*m zz>C4P;5cv_cq6zMTmrUTgkJ`Gf*sCB?qC>P04@esgKvPF<^CY(f@g#E;4rZJtvm+~ z11rEu;304U*d>wt;2>}_cn`Q23=PIk79$UE5I7V}2h+eXcs;lhd%fiRxQmb*xDIT48{=BAC-|LV z=nEVNW`XO#*drF90F#6(pMwX$v&W*J<;WEr1l|UwgFC@6c=tH!4_1Mj!7f)& zfAC_k9-IMok6_o}FmO3I349t{0B#0XgKvYI!G7bZH<%8#y%RZsJ;5??B=|9y1=fK} zz}8n%Z?Frv4Llp%3;qCX`y=v$J;5d5NN^RH1-=3<0f(oPADjtp12=$s!S)l7+lo-= zLa;CRAeaWWxeB>~UBOy#`_;(j$JA#c^#jYmbZ`$C2KR!?!FJbRhhPG@6C4QEg6Uw# zyU@$E&;c(8M}qf&S>S4L0k{ub4gMY62u}F{dIHyi%i-f~a6MQL?iBtep+D}2u0#Gm z!LNcN!EIm`IOKZj53bLk{*n%E17Dg9U*L#L>a~*o3>*Z$1Ezyxrcf{N0JswDH5Goq zG;kN#Hw(RkTfy#kV;A5s@O^L+IB*(t!Rx`b;5={}IAS_-2WNt9@4@eZJ;8o6;2RtX zW`SeCC14m_3myP>f_LP=H+b<(^mH%t3NRO31uh5gxdHir<+(f$R)e+RTeFb=D(o{4 z`Getn@`LHK$q$aWk^JB|aJ}3IcY>?IT5uEC@u!pn_60u%)4sZ7+emPf$PDxHW{%Z^6D`(k}U$A-D~E1l$Y01h#z?y8(NG ze+Nf`m#>CzFc(}7J_xP{w}CssH^5qOH`sA4^ufO1Sr5QBm<;BEdEj#J9dJD;CyDF? zXM?riJz(0;kjq2V6I`?gKLrkb7(T(t;9jr_Z2K7U0DFQ1AAwKsHZTi(7F+_Zd=xt1 zSKv-CcP(_l#bC$BsrS#|6Wjr&fny$nPjCjf91K5>e8DwfN9b+<`+~26yGY*)9sm!4 zUDsi^>+nxt0XPX<4lV%S09S+i!Oh^wPtdP{H-YuwYOwng$P*j}z5`AI4}c56<9|+m zus66FycpaKP6F$}aC?`PVkOj zA~&!M?D`aZgM+}mU^@6Y7zW!vgPnt?f*Zj>;4W|ucmVu4*!5}T1`Yz>0@J~2FbsD1 z75Txz;6`u~xC^`uJOHi(yZ(aq2@V45!E`WhBXR@hfvdsWz|G)Va5wlgSPxc$-8ax5 zfy2N9;3TlyugMRN0at?)!Oh@Wa5pILBG-d&fZczIKL>|_4d5iO&$HwQF9TPDcYvG0 z*TG4@!u~g*7x2!_$Q4}ve;7L(cqhyHai6m@5pfaHBBVt~6A`B(Ekay~I1y>q64@fMMPx@JT1d1AX(8bxq@_m7jFu8DG+IWq9~w;dzrK5R_S`$| ze){|Q)HR;#e)--n&;7h^=jXHwehrr4I%v<(KInqaLmw=_AUpsgQ2w@19M0Ow_`(-q z4pw0adY-17pD^!tG4J89-Hb2X0V8n1GmNkJ9C1L;vy3l%43=TPJ?uBznD2YZ4@1w9 zA8!2>`QcuefV+N8es}=pq2qb-!yV<1z7(Nc;u<|GR5e|BV_QH!{8IFgJpK&~a9ykvM;Bpv&8JK|kVH#Fp9?p7| z{BZU``YTI%=!J)25LRIn_W3h$Ll4ZrNw5F|umWd7=g(PJp%=g?8^`e4!sEU>H_P#0@9>mAK&sn1@?n8NLA>Pjg;yn0CWKFaV=40w043 z+5Q^&;W}7={?~~c_WK)g?_xedFC2P=cEeRL1~V`P55X)v4vWz7cjAUqpz9YL*PsvX zf+4u1On$f#rr_W3vU!eOuo$HOWNL069R4(Nj$UZr!Fwp1iS{lxTIT(W__#mvpBy|0X^B?GgFTxPqeLDGJ9;V>nzHisEa40Om zJ7EPzp(D?_3q5ey8E@AD@NpP{d6-a-9v z{yX2U#o#8Gf)5WMUf2y?&lAs}w`<+-#le&ZKlWbYfww}(3%sul-7p4y@NpP|KY&q~ zfeE-1cEkNJ2g|SoUw5~O~(^G4D!Uyi~e95j>d%#Vv;7*2t4I2UFa zzZkSLE^AxWg4NE!$xpJ`T$;104t1ALcRc za2*W7jW7y#z$DDW3=DpXcEbg*3Ll29Khu8bhkb9SUU&(N!#S`UPW?3X!YC}mQ4#7r zM7_`h$KOf4@FV9(_ioy zEWx3R=&us{9dyI7_YgOn2g7hVjKdV{hP$G~4W0KAH=F|?{GV;!i6#V?Qa}! zp&xd`FdXw)>V-j=hAUwnJ_*ZkH*_3f{ed3Xe;IMZaWDe+z$APfX5i2Vh#UH01+Ik7 zztbM*g^$A^+y$d>A56kB%)sNY0PV}k4~Ii%ne_&G;WQY8x5Fr01d}icGw^X(fLU09 z&d)L5{=s~KKDY#i;3gP@+hGdsgIV|nEJF8#^c#Exdfs4u!T`*{2(&#!zrhI1!ey`s zSHmiN9J>C=ehPhX4-CPVVGMfW)C-lH`Yz*Af?8_ZagSZiZ#}?G){y{$0=w{|x#_mEsj&r2iL(6+zw;V^&RrVi(nQ`hDF%_aoYJG_Dkr73!xu= z1BT)EU>v>-yW!gJ(y#CYEJ1rW`A;wppc{^aez*lj;BJ_J*F8c1!WhiM4X_ONLdQvt zi_im4!2q1Gf&4HI6L8>0@-qly)X@f@F0xB6EFz}Z(=`(lVAZZ zfEBnLI^Sj;gkCrxO~1i$Fb0ppZg>LbVBa6oZa4zkPjOxX-Eao-gU%PZ@7>vVin1ZKZ7Eb#$<-q^Ez_^`8TrUzobpD3; z;gJ30hqHf2{cyp{)DO470z3dKaL^y$%s7dM4*mk>KVM@W5dYxUA@N-W zlQ0Rr_{}f~$Nr7-;B=URFT)(1a)kK?w?q4xo!mEK+~9z}v%kOzFbvnhI6MWr;p8&; z;SyMak3zenv*RH2!1@26Ubq%U;U1WT1(<=u-k=}g5?FzcLgzck4}Ea{KdBe4g>kqC zcEbY9!C^KJOqu8~~kXvmQb(d=Q4<0T_oB*bM{yX*cYK6}S~ThcNG; z7ao8?Sba38F| zKSQUhv*XNx2+Tmc zm;CT{Sb7N&8V;69*1$*F`j;h17QxjVF|8=juGrX&;zS5 z0Q+CY{DH$@0&avEIQApN4X3~goIHW?KacYZ=!2_Z2(E`Qc;V&54QInFTn>wH6Rg5K zbdBWv4Eo^siR6a?7=wR+DcI)<^23p^2q(cRoC96wGjE^|PP~%*a0ZOQ>3-S`m%$ud z3rp|-w2z{lSJ7|K1^sX`48xmY96k=a;Y%M0g3`0L$1;cO~jKlM; zX1{@#!aTeUmf;fU@X$}t17}TPzQDOK3Kzm8Tm>_53oO7Lumbl&=Y{ke^unVs2nSw6 ze&~itI0a_lY*>KHUL4W zz#I(27hwz@hbdTt8QAw)+7Ac95-d)m|3;ahmH{W;VhVd3qC;{@CYox6LY8^4!(taUgk0M z!wQVR++6a(1-H_FFb)gwc$j=}?QP`y5bGKA!*TPd4@U1GUKoenaQl4v9qxx^ScZ`$Mjy)X;|a2brir4jlKreOxY0SnN1C-Vl*gw79lcH9ZQa6JsdtuP8FFJRo^5}1V> zVG)*K6?WXk{yL8R2m0U?7=o|BIGnJMxZ%q%2fcR_H=F|e;@%Peh7=&dweKB#5=R5#M=!a82 zLx00vUU+;B^}>-~CvKQrN8Ioz%)w8{1NSiXKp24I2I;h2xj17Sb*zb1!kc0O3rJ3Onx{82H`6i^24Jr3H?7IKYSh* z;3-&v!+*;B_7ey6!^1EP--2=2Z#!{A7tFylEWx!;5%*P$KXk(_&2^~!MMR3tit`!HJNz^eem$l=s!5(=ky<(15=Gf&VpI^GAu&-F5-Zrp=%2L4Sg^MLvZvj=nwdNn1+9WIrvXl zgjHC9!*??t*K~GV06owP{cr*d!JRM$kH8ch^bB#pNw5g#!YVujT~j+dZp;w}oCAY! zK8(P{Fb-3&8$JQEa5F5x?XV0FK*vWrJN^beu>Z5nYd8@`;7c$8uh~Pp;0&09b6^q9 zhZVRQIs=^@-+&(YIP}9b48d`~q+M|2bF>T2f?1e=MYv=i``5M12k3?s=z|@nKpgO|unOOR z&g+=x&;y75j(&mX!7v;RW6=E)<-h>U!ehT@-ob@`pkJqVc6{rP?04|{FaWo~Ff772 z{3}esH(&;O{zNU>UCcD{;(V zKZI_0=V8VLE`=eu55`~tCgBm7frDS89C+Xe{Q=+j2mN^ityY0&_N&#LA7eZ8 zKpTIXF$f(n0*?=^@x62Q-}l#QIrzpowOSdzG`v=G%wk>o0Qun4?piGX_rfq7GNM*X zz{xNT7r{K7avu5N%#qZ46X(Cs2VXv)d~n;SS}hI-@F(ND;h+m^wG#a?1=?xv0_cW) zE~?f1a45`?ZYwOoNf(oDHgQ2Wbd4b$oav=K@T{@)2OJ91&=2!)8Z5yT(Ef4e_lL<3 zKL-8qW*CC!T}ph=3sdm>FblWB0z5LFeucryXkUo^*GK!{-jC2eIN);f!=V#tADjkr zFn9(10yj({-zQiyD*uN5Fztko!Ytel zi*WF5lmn}uBHp>&_q&~bfCuj&PPlnKal!&Di2pR{W&54fdn@;8?xG*yA?Ra!1xDoG z{E_b@9DO(W;Y?V78(;-G7SYZy=ZjI=2~WTf9Ct6{0_VUKJhGVi1n1sIKIq}^Y`bow zUC;;D!w~HF4EbQ`e)7T1G1>=T`7HBq9_IB|pr3mH6R47=|SnhbLh-JU2=G@Jd*ME1><;q=(&b{MQ%{n1K~|06HU##~R{- z3%*Xd@HmXavELvcoSh;cTnx)_)VGO;{1c!b&VXTf3yi}p&~Yc{kL&3-IPp8Q7tVt* z=;&sgVfqQi51xWWIA#O=1-(yF{sPv^AJgBk3ZrmAhI}vyvv9*t$Okh&B_Dhqy6)mQ zyq)&I<2#58KKgU!2OPhXbq;QTdAMd5?SVsoLA(n&-+6|42G_sMlld>ZGZ|IbhwGp!6x<eF@1MslgI$p0??=t=pD*k*a3Hp&uT z<$u@V-=q2&rgzZ~lkx9R{S?#7=FX+l`I#Mh?(}co89%4vy=wnStnVWK7HEIhd7aHR zU7hH9$ZqSFk|d5e^?Z|b3;EnkV>1F3-;Mt}erAimz8;A99R8dDzYo&ljZPC^!rz8( z86VqC&HQ#7?^EC>x8%Q~>D~C}@IzF8V_nzd_v4?j@L~MV@e9=awmX{T$MI)gd$RWN z7C*D;yYZ9pOI!TCO`pTBx9}zW3H-e+`4=|x+nGn#O*>h;tHsZ6dN+QZh4>u>_mS?Z;K|x`vY}^xwM}it9l}TP zy0~Nb2k>{R^-Lk|a8E5p+})(xJCon5A^v7PlJ47G&GyMW&yy}NTR%_B_{sQl)p&0< zije${)A&9e{v)biVtNn$cD!yL1@J$&@DcpLkL%-0;2rpL)%unA()hD1d>%i@qWm&` zfQ5JT;r&wl`_=kqEA7Xhf!Fm<06zlnR`WO3ZrSFg{!#e5m_had!_DFma(|hr+ z<6l+1?Lf2sAbw-`WNllE|54LN@e^)4SsSW)V>zzJm&CvN`IEJQsyCWf_Zj?e@cmVP zjTv77|1|!5)f>x^(SH113-4rn_TzQ)+>0N%LVvsp;+I(XD1NVnPvQrELEk?a{2=@w zwSC6nu-?7`-htPRUj=`h`iHCeKVkNt^9EEtdTtML9R$cCt2DjpGI*4k;&2IkWK3vwqs&-K(6Ov4%>z zH0e%#igN6vyF^JR``wxLdV%%zj}Cj|(R%67@(1v% z?`%IWBo67fgZQ6G9KRT9w%a(iJSmY#IZ4WiF4D)5!4JPjzkd|)PP|WThq8ZH@T2js ztKRmPdOIb~B5`_{|7kwkFID1{bK1x2$?EgWcP8%xlCIr;EakYVXEQz^<(%28oJmGG zl1}>VVd7aK^Wop`Gy6rx=QHMfNK@b8=*ime$8DW~0jP;Wo=bl~gl|DjTj z^rPB-(#^W>WbGR=kH4m*lll_oJdToX-)EQ?(ofr!bke?OjDC`O3&geX{*$#A>4#=N zO_g)*u3s3vV4S~HNtga&`}n1OE>8S6Sa=_Py~fwuPx+7GZ=)>xRju*bK5ovVIOV)- zQBH(%_V<+Y4t+U!${C;;4{1*s-%sOv`pu4?E%E+@tDl~8IvFqHbhJM2y&QPPYRZv% zg80!IFZD>jjq0iACVf3A$_Z)8k$STDnfMWWZpM0x*{{V${$Z+D`n}rl=c-;g-*UZ^ z?+01b@55Wg7s5+?y5md?KMOxnt^Zat{uKUZ{5h%*nLdlRim!;5_;l^7HuCGPt6T%< zWAf{~4?pNjCu>)z@x{#eLilm`YgBLZ*AvM2#qe|Sm#RK$=1<{c_?uPV*m3IPkI&-$ zs(--DU&J58w~J5aVUG6O5+`eO`E38w*{$<^mQjwRE0fMgy83?nY_D|6d+ln9N%uel=dVV`E@>xkCI+lx)Sz>PP1(>`W#(fXHt~sdgNs7dfCvk7TE&zL^3XM%A1C- zkKc7ld9q$L#!vdSL^%(WPS-B`yNJueyYWeUyW_mHOZx3me5I3i{r){>y8=eLy8dDu zn@C!3SCsN*e)(kWLfO#MuG`Ido5Y9l?dE~BJ4StT@b&rlHKjgjw=y4#l#|kwBmGjv zuhDp^NBV6w{%$_oKhmq7Pnq%hxrumybS$T4dz9;uFn%xoeAS1|{Bit#O&k(uH$JcN z5@&*T?7`RL{LUb=|D`{aILnkXV6{F@$GbUCwusY%?@Ru6<05ee@HPt{!B;6itoDP= zyib?FPb5FxZuX;c-IvCXu_!-}_gMHcegs}uzk>^^`4;ti@FBczJ#|w4GCX@?hyC1l zo8w@d-#cV4kba6%&H{dKUN;|-_$3xTgZ~^}H{S~Qg?Qb0K?T1UKTPdsWxsK9Ls)#f z{Zr;!m3GGQf49-j8=Sq{`Kp|;N;^Z8GbO2SXAFNmURO_;IOpJBlX~9uU-kU4r=A?; z4E?&ko)Uf}{t~sl5p(~ubAdS?KU($5eR4N`D&D7h_N_&YcKY%2@K>qcHnCoT^g|e* zz_VPN^V(R(>+4}0|5?0leeT9Th^HB5e&s%W4!;z?RP{FV{%{Fj(9|#EX+N9w1HVSi zFKb7_=p)%I?eLJ!yH?+i0sLgVt{)@#nRs14Ch&{!?ba8GGfF!m_y_rHzhIy_?<7{` zK4pP&_K;4ue^l@pyl($<62MOU)6~;EKG}9O$J2|S^9_CeApUj>AI0B|*Tt8_-;5up z)_;#N7Sazf;$MP)hR^nk&uZ<5r;KzmUPa1rK6bM9VYM8YwESCq6@LL<7l-S;e6LyK z>+^>EeerWB%l_1W);Jo^zNDTo_#U#Xvzh_~~9LsRVG0Z5#5x;VY~J$PN5LHrg?9MaAx{&9_$I774}iLb}` zMTa)dEag;4r&~9Q_&)3O>rNFv2=Aj#b-(U8uDgcOpLpGT_u+@(7pnP{=hh+oLVUaN zl6Ly3e=eTa?mFyGp4rmQt|`Vflk`_NuiNk3_>e_@ zKYp4;{xE)uMgBN`Jf6dvIS$J4qZ{wVk5&EM=6ucJr{Z0F>)RjqrTjF0 z41SE7|4y?X@_0X9SAQ8l6)$Bq=ljRZ{EiQBoWbkXR}X$RUf0h7{1kkD#S89#`=L@z<#RXfy9mx|m2l z{H3Z_?oaygGx5593gKtqb^Q>-PsHoiofLjNUN;}J_-S}x&S&NRbrBK7uj*8M*B6`T zeO3JKC)%&8bWKNz|I6S{@!9^dKE3+cc1-phX}g~b?Ufr&)-K|6bH6fP@2UGRel1?N zzQys6;&uJljbDWis^#0RtM9myCx_pSZ+Dy#U&3ebkF?}}xS8L69`8?mkH7PzdgZ*& zjlT##MfJ8ToB93tnfRMqym3Q8>JQ`B;N^3(f0T76j(-&2ZoW&NZv1-uHZ{M^e4ikP zAG@)A`(+%{w0|VNK91kAYsb+slKWqz)AfS~FMsz=*N*}G68y@RI6vR)rwINK{$kZP z-pi0U6Zm8Jfa>Miw(+b`HcNkGNH=Jc{`{+e@4yS1{jEG#sUZ5|Kc{+|@!&$rcX9$h zAKz}gBu+1W9{vOBer3LY_^zJ&Tp`lU{ek{`KZak9*Y5xLrFiZBk6(q??*I6tMfuf6 ze%*PjYZT*2eh!;vKPvA@`0x^+ZhZ^kZ?~vFhL`^7rhnB>Utm#w z7BBs)i@%6piPyzn#jmp{-^D_(7O#unhhKx&#UH}2$G6*$WLpfM!t3Tw3NP{N=64pq z8h@kOe~ky#QhpKtEM9k9sN#QW;ax1q-^aJxKV=>8;lGQYrPg0R2WdQ{V!Ol&3{PB;G4|3^Cm zq`Qc6INX@+xW$Y!g7@Ne{gA+q#p~Lc#?Qj*u6OhJ`FP!RQW?J--(QVSc~0fvz_b8A zS@p_wk_Vr}>#mam_!ao)dgbqZofIYA$RFzGbrOFeUUz<d`wD)k zMg2~0R4&KM+-n{`mGc!ZK8C+a^~(MJApUWDKh-PidK90)>*hfczY4FrZ=1nCfoJzM z<5SMp3iz#fnrV9V{ZIUEe7o}l*{_Ra+=t)JXZ!sp%`)U%WV1P+eN4pJoAv8U2p_=f z)~^_T2EN@mN*rP0oR9yZ#PP0PaeUW|BS$&^Bwf4ykaE(LQ^nWY^V$h*dmK!d#FOpY zBjtGT%kZD+;vYTFt?84lySj{E*er7C6% zv-n3X>M!Dxcy0Uf4_bKFhq!Nu*Ub+femX&tb^5o5yZ^6hBEVM>+rU3ZJZYP>^%uE!PPz;=}Mx^~6zuiyicq33vFySjc5ko7Z# z@5lP*Q#~>DJfFzoN8pF4UU`qB*zjkmUU~1JiXTk=mh(N^70vox-1wV-*PZA1@VDaW zUNe3Pj(^tIfBaIsZd_vc2wpcXVd7heuaC>8|83UMYg`hf+eEthxZI$m(~L`ndP}5l zcm5-BJIC|RBVHG`7ypWd58_|6@KOA3d{FH-<$hige;ltnu4V8CEqnpL&%#&m8T^u# z`i&P1>g~Ubclt8=b;pZ88?VbB#NTa^KZ;+5*X(-kB{yvNR z75pNL`km}>H{*5dvKJr3>(=EUelA|OUq|t)EXq&fAH?hWCxc&zzd`LE<$Ztx{=4{= z{hEEI=XqBJ|D1()euVRByl#BG_^W?n(SCdouj{`keu~D+T9Cy1@UztR^*U}zx-97; z|0A7?bS2WINT=%$`vmq!yly_Z@xRr0iNlXC{eQ#}A)RxZ@!qPr-Wv}rB+dl>CJUd& zufyx&%;TT5$X~{foOZG{mAcIOjSEw$-*GwDWB7NgUU`qjgFm&a{kkOm;H3N{^`GFg z{rCSc>yY*OsBv77bUxC}`{~IVPgFYWzwDK+Y92pQ)aT!>zn_xDPsLwNInDNTO=>>h zDdHDBb+VR6H@)qb&Es1YKXiw2eQElQP4Ak>wWEdi;m7|>pFf1(YvE(~nc4Q&tuh`d z{9L^5IF!W)@n@2@8UJLn|BCpD_=-*OUH`0qp-9TF;+;?H*I5@gRtIamjH8|W1M#=X z=fPz&1{rVVJS0px(@Ceh4vphy;<+7fmZ7{K-Hrbw-lux%=s6F{;bZt=s#oeSHN5UT z$j*uF0`f0a^DFO9y77DQ(&lDAH_jiWAN}||UU$3-$whm-P8;Ooz& z&r{mb>$!B4a(3?4e{Us;KZIx5Hse&@@66ykp3(Pr0e^!0UNyh+o>&FnpZvP{==9ST zJg56+{mT0$Ui>J0yW@%ULl8e5|D2j%#O4UDAxFANq#L2eq1<;b;iuqraoQQksd%QZIS$J8ts5V~>yEpA{4%_*o#94) zT|dV0GcEFW{c5BAy7=Arapc#X&-w8(58JH^GCpDarFh-> zWE}q$i~QaAb$FU#jt~2ZoX^TU$>DSO|20p_q^pol*H4Zq9UZ4Vt3N;U;HO&n0RGGP zv(z}{Gyh3HMDPQCrLRAMAC4a(8G7yqDDyatABi8Vdgc4@N!mAz`hV2PapZ-PS%$Ix zJ|QPY(qCE9ZQ5ge|J(kol1|pBSB&!q8Ee-y+~51<$=VrGU*kV%hnMXkwzrE@@&)m8 z@qKzS!Fv1IKAr97$o8K0Dfe*__!)TJJWb;Rc-{F>9zVgN{4#zbo--A*e%ovH220$I zsr+y6f4A4o_EY3*cReTh{P)qZE+Xu7#x|aHk--nTWG5pnS@+H|mmhB5$@|nMf zl)&f zPwvOh!beHl99Nrhz?J-Ad|Ev7vgy0-YM!UZ@f~^nypGV`x0v@QNM^saSDeaqh4kA# z%6UN2P3x7;_&Q8|9#*Jt_^;c~Uy0YrK##;P=5sS%n{fgl-iu#`*R?l@-;bAmHS>R` z-l38|il6noejP~S=i^7H`5Wtij9ZNO7vf*#vwhK@%{pX!e`k(ck#a`9(Cd3Wwy!kf zsN&b*b=P~YYq_4o_fz9&JjawceE4Pf>FT%=L)YZ`&`Pd)e}_r8;YIy*P8`1#f3{@k zSr^pzfAMMjv#Pi4YPKVXpYa?0`vWEX9DK4R|CgKj?b8@9yzY6a8-EC|>nA_{WqiAS zs?UG?ZoFZOx4U49RK*zZr) z4z}d~V>5pMe-Qt-7GG-m2!7Mc`r}supTd7Y%|EA}-57uTdi+S$-)j0iek1;Us&72M zknt`L2}#+Syg#gA9LvaaXxTk)5uUU?o_#^>2Jbo=+*MDXFW{dJ2+)&Veir^?E#8>m z_4$uqZQ&h3)?vI?&9B@y@ZgL1iK@TfoSy-F)xt;cu2=QtC-9>!d>Ze^>*~+r!}yP= z@hSIB%J>H@%6Htz{*C7{L+RfuoBOW^zZ36M{e4RN@dqr*kKo_H>+Y*0@b-iH@lE4L zTlhRaglCyk;{Rwf{xUvc;T<#Czb(86U$&?}fFJy4ef<&q6bqlgFTv~PcN*Vq;q&+x zEy^$BI}WwK9;vT?>^P(Gy81o%5MI~60er$De+0kX!YA-0JdbD1@oRkFM9w#(#D5C^ zLDo@CA$V)A;A{el`CC z=Khz*AH!d$dgXnXGQOjtKfiO_#Qep7Sk2#fo-b{xFg~O4^8TCsp5K{mH103l*+nSQ zPeICg@J;=3DvD3wb?a0TzX{J{TC z&@=y(`?%fsA8G25_T=!}@bbBtU%9Ve!f(Y7QN8j!-TrZ|Ei_)*;l^*k%k*iM-|Km- z)Eyw*OQajFrc>?*NANG>b?0XZ{1N=QYJTPWTxtAKyzV+Hk3WFd&5JUAFJ9LVju6*r zcwKxR{BJGt2k^hf>-N70UgC?W?Q1;Xaj`9dAMqdkbNw`aHvS4Vzf5ZWE&22K7+!aN zTgE4B)!G0xzj1i1=XZR9{P=eLQ{VsTze$vTjQsZR{l=UNGN)fR;*fMM>T#SnS$k8` z{j^uQf0*g~q$`qcN4xU2nC@ z{D`+t))uvRW1$eA$1lOZTlLe;ek|h`;Q0kqv!A+#G_SuLpTwWi_p=8d#jjAyw|%Y| zUjTmqubV#+d;!ll`px?3hb~(^1Sz%N4@uH(uj%g>W$iMAwBH}39v{BHg%9ET;wO=|IWK9ioRUla7=9F9w_c|39=vYe zX7OY2w^CNKe4BB@K*}%T7h9BH#V^6@?kBiz;d>Bx-F))lrF`8ugzyV3d<;L|!l&?I z3!lZ$vG7IwEPR;0F#E?iA(Q^8;#2s6s=wCUUtDv!-p1>$w|)4v7Cwak4qkV>is8S6 zpRd+$Grj;P@ul!D;kDzBFXEqW$#4EnQ4t^OtZL5-s`w>%-Tgcl6Ke&&UH`~_`aiu_?F|cw4-tFQo@pQJfs^%J!i{?p7S*2K6L=^#_Ns~5&SH??)&Ho{GP7% z?Qm0Nly+>#pW?IqxBJW(jB~ML(xVb*fpS*a_2XK>r|`OVIB(-V0AAOhUi`xrK8Rmx z;iLG7g-_z=;C1Ut20sgb1#NAPgK{2JXw%bFKf3ar9Dt>Ly7NdcezAoQ;=}k+ zYJA3ST_2w)egR&tRh#iE@A)M0(tjgVZ=43y^JnnO@w#=XfM1CpuI5+H!z=g%UbpT$ zKgDw&e7pE$9(wWX@pr4`%l^`6gKU<07$V&f(&_fw7`}kl^>Yfp8$VR7NBRD67Qf4) z{33o6Ue^y*d>XHt=dRniA8z4&_|PC?*NtBc z|6Tl*YWd3VP^IvDEPNLK<)PKud)55LpUtVyzaoAmUUxlK#jnLbsOGmBFaF5z*~|i0mtkc1pSc>B6K7OS%vDN;lgauQc_o zC*9~y680Q_x-O`nJWDxA%GolE{Tgqt<;*nH*EQ5Q$CkJ&l(XfWUh5}m1-9FA7rj)K27{*RBLDOx#vIGo@e`a+H5be{n1|Ar5~znkF&kqIxFS5 z=zx{@K0TE{+3scgk~Z4|Y@gR_yVMhAdywtA>(e+sZQ;A|_I~<#n8OdikCr%l=0)T8 zOQl~+_+j{m)OjO)-}u`Kl1<`t+}Y6)JF{9_sHW@sbbWxtd+>Qjwf2}~=&8r{wfew_ z58x-iqguQ#b@zl{Biu5HvZ8Qe^;O8^EU?tA3CdAyQ(F=iOu*t_`dI|)@HWkzrLA2fS>Sg z{q<4=@5R5_QvR`K`3bz^J^J&KG`AoQ8KHV#w^1f`46T?v)ht4Hkv#iE_-1_(v&uIMXQqBi^mGg=@ zt|`hnN;=)RW$`wSQ|-o0>XClyi+@$>d2Oc|i?mC5Ps+ZC^C;4-Azd?GM%6n2_{2;vi&SSHDS$`Y9@hI73o+U^(@dNtv)iiz*UU%J=$6tm&Qwr=E zL*@G*W&8;IK-DYvI~@10e&E~96N%4*A86qNcn99Amap7Ljo^pjb?1W#{80S)YJTPY zhBSU8KBRh^@t{M-J4yS(_)b~hPW!pp2QuDon)9kcITPIN=clyO8Ra=UeqKvG#*QG~ zi(iS?-4_eum*d;b2gx7B&&Ri$x8jrdg%;&!@bfInFW{$J_zHeJ{w%e9jrUxnAB*&l z2QT}B{r5jJ`_Z`1uu^(b;`H6i-}fQiFg`cuoASMzP{a3Ez4DwchJTp+?^3<-v&QxE zQ}`I(se0x5CX1JTnxcA}@xDU69r(5QCsl8>;k(9cF!nq9V&>(!`g!Tb55>2;j+A;F z)Fb)p$JOi(voB;HpHn})*V_}JoSR2fwZFHRz^}w}S!$NiIN_H5PUH9Eb@M8Z&*CSj z`Q^(b{9E#u@dxnlR=x6kz;Pe%58&I)3(4=n@5b{uMTyUN!AyJr-*KLPUPthK@UfQs z#`&G}V*)=HFV{=W`6T;p<622JOFbEhgLE5YL(e*A`%b-~;tTjGBdgl?MJxC>@XK2A z8yzM2ot&r#&abw8&r;&7(vQ3G91c6|uWmPEkXV)bJR!>IH%i|hG5i4hMQR+%`;;mC zP`qyc$l?d$b>msY_r+hPmajZVuj1YKX{xswJE-)7>odGpi`T8kK70tjy(RyTo8u6| zSMV3B-Z&kvk7EpPzo4r9K0pfJ2fs$muN;@Nc-QFm$1549ZrT?jKf~Q&zw)Q8_W>qaOWu2JnyKb;q{|el`B1E$uPiZ%g2_cus4~SZ&4& zj4~c+eE$o%erWOa+rIVpSn~M8_;c0s4CCDXY-1HN_MZyrPF>W#-|F-Ke%`m&`1<^( z-;d#E6NlZo&5Tv%zp|c$D93$qwe9;PQcn!;!?!z66raLR!Vgi~tGu_6ZRFSaB7Q9S z+pXJDeic6sKT<9KR&%^vG0w;E=cwLzEK#4oKD@-Ii$8>)g4e|tYvkAY6khsA=d*Ze zUs#P#`FlD={8GH`e6Na+;6K)q-?+i&Vw>x;>_d3%{*T{m;Y0YJ;H4uwv8R~nl;5w7;3I`fafmwpz4+P96b0(@w)jKz$frmsQH!WG7EPdiw&V0ms)cneG84rFdUU%Lez;D;&ua6@>hi_Tm zWzFpM+$2f5{$up>HiLhQa&-Mrz#qmB?cl$j^CRWCNd;fR>-G!h=XlQ$uUj|0_!sfI zehlJe9Cbd5mvN9jX~w5KH%a29A1ABcc182NB7=VguZzEc-;1B#lHYs}xPq7dYj<5C zF*zUPTp54M=}LU^w^)Ox8wUqAOFBE{jJUK~`$H$6M{t$V)7Qo^_t$dFm2@7`y*$2g zzr&@Zld*5y?~qs$)Vubw*8AErFT2^klI`v0o#e~mSL6Hex#vI0S7iG#w(G{BieHF7 zM>6%qt{mT75ApjM_;&ldw9AK&;E$>KrA>`@!DO?<7be|U-+#9&#`ckH52*QV#`7)7 zm%<0}z1x*x`y{qs*OG5)eQYFO0e^R!d}X%Z%y!-Nl_SpgXYg05i1&Sw+&&G;Kz$~R7^r2aI%gkRp`jV~aG&*S|Q+F!r9@n!s2 z{Lj?wL2#GyM6@#A;n+wCWkKa9_6yu=Y8&dAkVN7;zu zb|nt!^Ud|g3-xh{lCF9U_g^L5XM3gltdXuh|Ecfefojb`***Ws_A=YAYqQzCMn4@APWzSBy_Hzr^qhV{9awq?3Moc?S0{`VjA2C0^ribbnpGbs+Jk zC~w{8_3f5^8+%i=X5)s9ecpeS^X~zTa!Qo5(4w3?7Hy&*Y%P-?KRpL{383+0r{^yiH^{89XQlA&jw&Nbqeek|eN(s&sU`%3;VTCF_}n)#*eYmG8wvy|f@-BQwh zv1PrBH`luWzI3ntdN6`Nf*&OX_Qa{2pC<4X{0~)c+gJ}m>QCbzT&%y}lgBT?pReXu z?w^+%`QNE}LUU_fGgOB2M`2+Z{Mg9nW9$t4|mcXyE@M-)W3!ldy z$B$OyZ#)ODuYdSH_qDE9(y#Ue^Mic4^AI=Q-6o%p?St5^I}ZuruWFMo%J#8rzeA1F zW(<_Xlf*B_k5PT&ewDN%gMYM5xp}t7E%KG|YueJ`6~HB_+?94k3-VFDBBmY{ktvs*46XL{wV!+9RF`wk5U`VeMQ#NznSZK zmU4D4)!$Dq;>#AkiXU{pKEG=f_kS$B4?o|+hww=YAH(mo@G1Q3_>Z>qlX<@|i+9HK zzKEZw@zT##d<6d?bv-lAea<&}*;voZ^wZMM8uuOTqn~IQ58FSCHB!bk@MXS7_kjL6 zd;~uNe~H>2<@?zQ{5X8O^9?CKjh}#TcOD=<-^kz2OM5f4cMSPw^VzXqY7 z6~7ukNA))2MuF7t`U>{}@VfhRKKx<)xoUpp`&uD<8Go_r)%*YWDt@BsmFt5P-nCp` zeilF6!WZ!)@w($#6+g7Uie#8!UVl zzuuz$BEDo%e-;0drhHk)O7zc*_}lnwU;S-!jgfO>Qy{BC?7uHS~K^(+0KYk1vxe+fT;{5o&{I^SQ!>(+TUehmIBwSMJ& z5kKCIXF9dck(I`|fozubAVRv;q`O5n^j!Za&ubF+{rG;WzsfwnNaM43-TsuvZ`OF3 z&l&n*J^o=n+h0$aG01#Y?(;d!m(&^U6B7VNcOFcR23FGgU{&?$~t^J`q_i%rMekEOh(ly6Td5_1BPvLd*D~x{v z-|jdfaRi8SE581_u@5M580VtRzh|1JoW)<%*OSLD$8S^PRGzby@q<>j9~X(EKpcJX zr}%7tfA2WVzxU~VjOP!e)72BiN57=6$44CV@b!A0C2`NbP;akUPYUHrv@b{Yr!4*= zyhm-XGHylucs!@?W*xSN>pPU>ui`i2xh z*AHQQ1@F@ILmYn;|G)YnO}g@z+h3&b&%s}zdgb|U0KXjXRlV|jH-b-El%K$_!VgvRE6**{_ym5G>Xqx6JbsNu`DOfS zye@vnI@Te)E`ASwk45L51E$YwX58`$4m+=+6 z?tI+ADc%YESharT`)VHifUoF}0|ERg@=sRtb8M92&QV;D3&9d5%XMpJ~KV!5_qrQ|nRQJ8`b(ejt8~>Kpgpq#a&-zen};2k`^& zlD7A{C)=WU2fp2URX_d{-(dW9(%N6(tg7euAm=H{-`~qp&PI!Jx+y2qQ_lDF<=DT& zb?8_1>#G|-7T@kVRO0pH$KhMnSBdqZ`k{mrjq^X!t<#hv{gS}1$Lr=_8ov#%8}~f^ zXL#LtR~f$-lkmEJ zDB!2yuab`MnLDc=5;Zy5nRJU&ibDH;RABqWmQO zWxTF^8T=ki{cifSfZv6mrS`9JZrQkMGxo8#r6dctVuB()sn{)rFoq#rL)y>dS{ zgdbrsPO(OQ-Ts=w%Q#7!n)6tBPbiD;hyRf37aD7htgYR&Zy5d#KHGoEP1&A(LGyRP z96V~ciS)X7Jotb`JOTW4e7obf#N#Di+3)J{T=~D_kw+gJE#k@IAG7d9e8R$4@yjf{ z>w8>ZT6iCRu7wZbgZQ92KFa%qG5o`L-F}k7FS77ie8|EV@v=_o_MRE6ZrqNj^#)<>TCLS zsD!@^f16s5&3I5D?X+*=x&=Q-^~&!gxbchex_RQqFT}q`&9B_w4C6nAAEkQbx+RXk z8?QTFb>r{CU#aF-?pNjTk6QQ={;S{D-{-ggfa@{~@5X-(&x&QPp*G{@p7fs|Z{O7Z zdsyPbcn`i^|H(K9h;I<_&+Vj~53e-qU@mmcGM+?Ax+v+Uui<;DlJ3G@>25L7$y_W@ z-&eoh`rKKzm)ZV>HrwrK{!VSL?e+Q3_JwR8LEh%E;}+xiBIWt;i}7cOZ~Q0QgKYm) zo9z*{&+4^Z>WQ;`D%&5GGJ1|twnyp}NxLJ&oyGg4-SToxPa5f;F-E(koIK^cxVHUu zh4?bQh+jZC%`&>~s2AX2ll0rD$Evk^PothLrJleeT?zX`r*(x-Ga64?iA(xz;kT=` zMO}QZJZzR}+_#%2Z}CVv59xM1ZoCg=eVXEsV9a% zia(dn&GAs4pQipt{%j+^?mW7PKW0&W75^6g-D>^Hb8vZ8`3;NsefZb$Bh~!M^XCv= z+INoXmFJ@|yu^2%>Ki|fD*cnf58v4S_f^Da@x$=#))nzZ{1E&^J~#VUdA?l5kH_o! z-?fGJCoIbM;U&MW{t(`a53BVn&j(}pC3xNWW(q$aKUmG*`2LH`!#MHJ#qZ^_z0V4> zjm&r3PGeVYmFw9O{w?zB`q{pfbw}f+pUd=L z5zn5^_iy5@{j3~^1C-+<4qZJF{6+Xj)Hs#<@d^Al@gCJH_w&>EjdvKu`}=qJIqCNOC*u$$ z{^|Hre6~-2$c(YqbCUw)jQFAcd$kq37q8oIof*ane}&o(g#Bh!0zo zAH~nX>(2L*_z-@STE23=n8DA(>*h%TzX(52&9A(7P{B)l?bdDS=OX(-YX-i6oo zX9+*VqI~-{;=}9q8#lfWzFmJxfBErm(av>zZtgeI#-ye}Nj$JTu-H{;&9!>p$BS^#s!16#mRD`tq~*|0BPoZMIiguZs9%`01)w zuYd8wDc`Aj<@(#j#2tkHlIm?Mn(_JY5904>@eAr+$_(Luhd)Dn<3HIRW&0ksJ9;)k z*`8qgj$YfPZQX3&%y!*%NDiNAQ%{lYPqf)yVf&h1+hxu;p5lHC+YhqeH~Uk*_x4-k z+?lQQdF& z-i7e9@a@K}zHU(e9DJ8tKfM_<+alL1|1rKRA?YI0jx6WtlFs&7Go7@#uhC{{PoDZl zKHYwu5?{s-!AqIVepA*5$Io~##Uj54KLGzhHNP?4>+>RjcjM1eedCU^)aj-EL3sK7 zHT(U&+S_TiSNiS5F4`gOU96;&_MT?8H%on`XZZaJ%4@c#>zaB&QeQXajM!7HRrzec zODRXz=K8m$jq6zHw-cn3-=(vMThn!oGv>bRpPnrHDf3p{Z(VHnv%N3d+l{m23*-Ca z)pbDf#n|4#_M1R6ew*VHJpQ^CZ|q3YzBuilkN<)6=Wp&e%P_9Lzbzdh^_M8; zAN&40?kd|4vHczD{O;=8+|Nps|KhLs{-yNG=aupq2it#)T}|Tf|D5$H&vll%Kgt{) zYwnMdE<(CJFR10e#H`7VGlcd|aUw{6U!58ql^P>X(6}*qKn*B;ViwIfDui#JM zFKubJx4AAjcQVd}_TNvC{9gQ8{AbkiZN`ff;)D2m{;WSwkK*@}e~_AAx!;(?@5K*M zz49JL2EQBs9@Q)N8w>cS@Vfq~;Ge+{Rr4#)@0?tS{Q`fb>XqvpFTP~qgZR`z{e9~w z{`>f8YWa=dosoGGB0g!q{0^i2JbJn37$S4(GGl+N&wtV#{vF35N%w(X=?0toZHf90 zzSKJZWxuGhz0hX6a~JjZ+AibjVSASCy8S$W-;G!I^ZNeJ_8+&|9%FlVukBJ#lI?5Q zzK74vwm1Hcp0qng+`ixQzNzf@*DW#ANdF{^byUhJ?&5mw5BlqbDt;S&0cp*8j2|G9 z{H|Y6{()-k`WA02=;D3&v3RfQ8`nYgal}u>|55eCX#0(^cF1NaCr-Lkq#Gt1dd9l( zeyfzz-S92vCB_<8FhR#y{Fw#jp z-W#k>$_`&~=z4w9BYFgjM_w#2@(==+z^hc&lnUW-xQRyU= zBnioskW{9GBsF!?=`b>qRFaWokc=cD8J$i-GLj@CBgr5cNkTH>q?!3$_r9<7%zk#y zo^-zN`*~lV-@8AbnYH(I-RoZWy4U};_p>+nen=})UO{~?f}~#nz8Cl_qIewugf9j^ z6}+E6*1}(tz&rksmkF9S=kZ4=_U-|R`U+NQI{LlvJw=2bWr=;I~aeP%CwGR(V&nxN7 zf}Td-`1>;pdfI}AC#~>AmmVn>9k!hDq!@apK+d=RLr)g?rDD(DqVgV;O2SXL+r>$ertnA$>M#u2)75@aL!)yGvF ze=TSFr@DF9JZ3ZawTK_fUy{!P_-h+@#~&wo^6BzN3FK0Lpg(GOPa(@08 z0)7s7KYvUGKLdO$e~7(#;Aetw6?FLnWfy9yb9`}w__a{ve)4>0%=MgJDfs2!{rnn! zA8CR2vm*`s@XNu+vP1H@9Q+I5V~z9TuUzCaAN(os zSNQ&$tLl*WtVz|ns0@1YfAPQXos0o{A^2GBO6*7np98)p&Lj2ISWQ`;EuB;OAA7egXKY;9I!$yPg{;20snFpM7QECI7YE@m=;Mf1v66*_RG}ZZ-C0 zfS&@sw_88T!2Av%3;d#L_+0QCz$d%oyY}S^z^|z$elhr+)$nEDyQ`l6I8*A)fmHKiHkVGhYdEH&^#fyF#uh(y2~P?9GJSC6Mz=F9&>|qv#R4 zmP2mxQRF1OV#qCpoL~Je13%x#9*Lj474^HC`03zpuO@y5c(JoRbVd3H*M0CT@b^~3 z=Yn5YP5K4kXH=7ZG5BfK=r05RU^RU5N9Z5Gk96DbdR{Ue{CD87^Hh~T*Y{R4!1wso zKYkYY>EQk1=YszNe5`)nssG@M!N;mkPWgl10=}W!KG*(e8Thxsw|4Wc`|HWYmh}O6 z-}VpweembGQ28vw$01^+sDzvn5_U`Jvl_HpBo&Lmel=6T9j z;?z0NCFPX?`Nej5GMNIUsQy16yWqt{csuPu7SZ-wB8$~@@oBlHZA znULr?3_XWxmHXbOP5A_VN{U@iC7m$hZ$kVmvG@DTDnH6So$JL~9j`K>C(}od*pUN% zs1Gmcj6phs!Cxh5?scVu@^U|Kxfyz9`sk5#_JPmw;U%47q;tDTXO4e5>D%$%Iv+if zP6qg8)$m#1^TA&S*+|`UeYZCk{2uV#-Ms6$#RBm0bz_%{q+bj^2)?;HzH2|J415@T z3pekYKPG>Q`9n2)I{2h&($8Rgzx1=fCsw0B7koYNe(?*yCxfr=w%_&KYBAII8z0KR zOa5EA<6oyuQT&&@L+xwk=3URNrh~7I_}$&St9&xRw*~L#-z@Oy;2XQ+yYBDhGQJ;Q z0KOICqlUWbkKV|4${+j~@b%oh`}r^ML#s(Y88>VOSHq`+A5cyD8Q|wvlYSQX8Q>ea z?c;N;Vt+39>}vP|@RPygHkd2_RnLnSgKt!?-1oVlGVsaZ+q&a(|4{mY68NV%cx-=L z;Z4J;(vbe<-&OUbYYF;)$ocI@3<19pe5`sP>GXmfTfk$R&I)IF(s4b%n-4u>F(2?t zrx5&P@SUM2(x14V-z^0{x0?9j&n@c_@P6~B+h3AS9@6OtzCzL& zLQt*EHOWBF}82AjgeXi%7 zyMo^a-Z%f?H-h)gKlrm6Rg-`4J;D3gzZQHi@P77}fbRxgd=)7_*YlBw!FK`gm%o&+ z(C>ivtA|~|mz)qg|56XrpnnT^ryiDFU1fu(9_Bz#eq;Z7m=As>_{Pu~$%kvaECjzC zd=EG8dS1H}{1))(Zr=60c6b+_g97i{|A8+8@3&s;1%3y3Kl?Jl7lZe+F9-ZV@P78? zgHJfoUw zTiy0apU1W?u+-66kedKGzxK2o{7CSAc5ViLYc=urfzJf*XJ;||GzR=?*b=_~%Bs31 zwz{5IPcKE^2|2%UA_M$x@P73v3w$wnzw*ijzZHCQag14;y5{c%jPI9zG5FW3NxuyI z@@mpg{s!w8@P7K!!RJkS5CVnyaY2eRs z>*srPr0%Rm{uhD20q5a&uBh^HjOPKQUZ(9v`-Z%qKYD>L1mDk{p6hvyOz```_mASM zeutd{J~gG>cfU9ve6kNOKAeU8#)IF3^Ki(OAE~!r=p0Do#BUoRhwWc0{L7%Ke2d%$ zl}iSf{4IXh*`z$`Iak5k0MCqp_X0lHgNxsW0PhF9CC(%D*tH)t75o73HHGIP>Er@G zF9yCGc)ACdbP9pD1imSN3)5agZ%6inO2HR3E%$w1GYrSIKFPm-Oaq@@4c`lVH}I)Q zK9WA4UlaQ>kHY7W_v_d4!S{uJKfVzBAn?82=?8l_1uE&6f}aZBZ+r=VhxLIEFZE_0 z{Fe{j`F{J>jH*1M-nhTto{V%lG%K&X6Xg)z;*rzOf;hi($U=JeH9xX`%>sT$3_KtB z1P?CxS_^zMaKHLh0)8y`n&KB8QoqW8UmF8Y+>76Jd2mT54R}xB8$^exUwj@@_+H@m zfcGn(Oz>sZ@HybEll{vtAAC#j=epCMqU}}EF9hEk{FhPne@9jQ2OrnMf1fY>J?0;2 z<(0<=q0HnjRNJ{>>f|5%-j?N+A4lmga`a36=mmaJD^LF?eM(QYQOp)SV<1-uxdu^s z>PGZrz|J+NmOI}E4Zl2~$`;YZ`(KjYRLIqCU9Qg)JsK?+igVOC`>Eo$gOF>Ae1&Jb zF1mmaZeR#iFlgPv^2N&g!0WAHskK=h0O z->z+W9+x&bXM&2B_I93CxAcf zjxXiwthfc#c8~?RFCf=J0OL>Bb56P7_k-{0=3UPh6o9YSG4{Ta*jWs|5%?bN_^$O( z8Tc;X8@hSd{jubqEUP_uKl{?b_X1zn9iMlG#SaQo|~%L+gk92;Jdncq$6F0_@M;+PVjOb@w0pV3%&$=Z8z_F4kBeg?r(ta z;^rr6`jXEu;+KM-FXzu)Qk90})zvR#LeGFs<(0$SdR)&(=YXFFeqj{UdyEeAi!C%*V;Gx%ZP54-IbKY7|;8RXKt z`q%H|0~k-i`?bGx@T0-EaHr$Cf06-yEO@{6l?8qj_`2@+uJ)4)elYmz+K=Qn2l*(3 zTo%s5clE0(bICKGzm#$*g}$V7Vy}mU5C4L40Uv7~C43tAbnqK-9;sKsw<7hT7x)tJ zW21Q8P?z|b;9Ga|ua`NZAN;BA_^#*r^1*kjhA#x)ry9N#{D5lsa2eJr)$nQHM}cqa zwvYD&FkaSPP@zmpA8-*f^P}_rKtGJBk6~K#dmta=SK1OJG|7hH1MZ&FRz^G9-n0n_0Q<>xgX@_^zdKT zj{!dq{PR)iEREPP3w&x%|8@3q@Co4k`pI16GY5PQ>?j>do=(f{bXU`CiUxGSO6FvFh)2_jN6shQDUL*G0RZ|-qV9~P~ zax+Ky+p`aR9{Af~Pn4c4u>=?n(UW`#?eS*xQ||nSmPYDRI{55c%47b{K;mbBzaP9` z`DKA$2;Oi0kPChh_{L(8$*=2vM*-uva`Ud|7mC3zM*RA2-t~M$8TbX@{nm5If8c%y z_*32SUE^^&_5Gqxfl2;;On{dxSqGj z1V5%4J_r2JYWRHc{lVYw*3ZS1oT>krh$ z{vqHOPx2oxrh;GN!%Mkl!oIEG3veE`uo^Laft2eqEmx=fAvg5z<(1Ef+}c*$=Yr&U+Z{y~9Pf_?1@YZC19$&n*606};tbo-Be5zYN_w~i^VZ;~SDW9C~ zRW^Fcrw!!tA?K9OSdW~md}blNlW#k+eDZ-ejDfEOUdw|^zKeld!2Qan4164TZ}}t! z0@iP^(~GA8-{Zk0ovy%l0KWt0vC3x%_%2AtuY9J0?_CX_2Yx^`{95os!Kb>@cind> zA)oE$ga3&1ABVxej`$Oz_^S6er33?3-6==e&vw^ zem{7x-}8Wf6$38-zSVfS$f6oH{Pz-{F!e3eBYAvKRL+9Qt@V5frP86DST>H;m!FLA#oSP3WsVaZ) zh2YPR;=4!qso?j59}~sv04C|@f$w;Cx%2*oNczE?Nc^?n7l9uh6<;4zmU1cq{}p&| zxt0On>cJ(wL~Ljj0{1JwHsCjT;z>HafWPX&Mc)wM%Ypxb^D6s)jMzUFeD-wz=W#M& z=M3;m(0;;KpIxOx*N@IG-K9Rvf?V7Ttm{Osk4p~iAe5zRR;S)TZpgjmm8Z+TMrV)Q z$xgL!?oTJj2dv@u9a-<&03YbVC7->3_XY0fw@mQ;!F$VLD)1g2T=eAv?*P18RKIa{ zq~9nIeY47a-%D5wel7T|&{gI4_alBU13z}Qf4xhtiGCiu-+oFu_#Jcn_vtdg7lLo^ zPJfJ(ywfhTz;6TpUR3@zMDmvle%jpf%HN~-UmRZQTLJj1=0%r}_-!-rOMnlGig#Hg z-aha-4;~pWoDi@k1Ao_TFMsDF>7{{hmV0EpuD}}r?;jOUpX-r$L%{b2?=E+-GYfcU z;C}1#T<~qd$6D7&J)VkubOryW?3+E;v8s%v4=kwKH!FdjZ4cwQqNshMI*x$YaTxrj zh2_!jDF{xA)RUB20juSssAp0BoE|BsuHfh8`R{WK0iOqcJJPDEhaWlm#XnQQXFPVK zUvq)?0X{A&-J6_ro&3Y@1&^ctN&XAZs?x3fLWQ(s$zKWdOnK6OU#Sp!R)K#Dvf=YxN!8om&G>+SyStrUD$ z@Ui+Q@lzNt0PG2V0nV$+>A^@nNCUqHd?Po{-)po1mI(dvuA3j*(46pW zdsf_CH9~u|f0gp<3i+-1<&`@`{%)7N^w&jI{cs-A&3Wd?_EP|S67X30k$P1Oek%Al zv6qL~S%7qJ1fCj3x@Wr5b=z4x9I2lvcwx&`&mEb5I`DqL{qCn^fd2w~XGz=48~A$+ zu`dh!LGW(-#4odemja*SZm;5#anbXd0?2iI5&L6qxzOE_c3lj9(aQ45TiogMhM=Th z2L31T-t-gez;59C-FhYc-BsyJ{B+1ISrzRU@ozHpE&%>r68!rMRtYBW{ay8-ILYy^ z(~hBMz&oD(m5b(tW`}3lcf|z{ilE5lL$2M%^2!75{-B@H8Tv{(2C2uJA$REA^2%>< z9!Z-UV8ZVMzkZYF{&4U&#~$Gm@q(hq-z%@gV_6`*0Uw9>vD%Z^cNlyk_cdq;f4Wg-67BXuWB5gA(n|FR6(D+O8|FtXs(9;p+avZ(Or-OeXSmC?A%>cg+ ze5`sWe#in}R_XaY0?Q@n+F#0pTyLu)=I>aS zaTPK92jjO9aTS$NV}(baT4jT2W3@c(AAc-nWC=z(AT$~_l+7Wi2C7dr~TPXX`OzKg*x1Mkf3@7MmOg74nIzy0NbZ_qe)`;&a;!2V5$-%i@!$PZgx^b`H-Nj~`Bo5Zdsl8;%)@8YHvx<0!Ah$|oN^_lpsAhkl*XWcw< zuJu`RYQVanc}3KHFUdz6;9Y^o%BQSX`ho8Wz9!Di;p889I&i=BSq}Jq;GdO9#&*~G zEFb(f@P6yFLhzq^(iOjm-?jjsA?;)A$yK^_O)ynjh}a!&hW+NWBlDXAyg6{c^;uW& ze+Tc)ZwBzuz&pA7HGZg6{E-DdyG4cb``fDgW;zW~?9K(h34GLjH5o&m)V2x{XM9@= zxl3AB9QAiYrI5So6!are_8jMQ5MocbIsD(MqVjK1e8&i%27dIZ6)}I0CGmTK9}3>@ zdA&^VgTXfx!%g|}w;K{a2mGbrF;lAIUBBDN2Y)5_rf%N#`~E`kSAajy&AZ+wQVM=b zHGCKozlt*}Dvx)^*T?ak`Cc0M1J&@o!0!g{_gq0H_>aNI8n30i`@z1Zum_( zD=Nz%7b!QV?F9Fjn&^~22SwR_|4#_fqyw_zWahR-<5O{%3hx^x{i73pq*oS*;lz!!m+{e_7Ap~Q%P)`DN(yP~polz(eR{96KkMIZlu=`i?Z z;0Ho|L_c4sC;2EvK6Zlt5csG>4Yxi6y_YZ$8Aiq-bk|XBNh4QP#v4&tb@HFWDT%i3Rz?AypZ)+z`iGBy%@0f2dy^) z_NPJXqkz3WXnh{&f-i!78A1#w?cV6A;BO)8o1i@>Z2cCrpAK91hU~Rr>(P+?QP_Gu zWbX}IuZ8T&u=Re(&b6)2L-w<_^@BuTZ>x^v(-3xgq()f{>-!owy*FO*lqRxd+#IwI z#9MhG3_rPHdtObeB)knR328TIY+qruvBz57?7Q*E0wOI6Xw1Y$_Gwlc&b#aNX%gOI za%Ac_LJ8azPX$K$Y~^=`WJY$?q1?K?x( zwNiEy*hiJk53sO$Ka z_Sx1Y%DK-IPX^Y-?qLmz9j|sD;5W8-1Y29Cj65+~_khHRTNj6{Tq%Zvpj{Zk{)@dL zWbJj%{}V(#E-`j`?K;QqZ;jNn<6Y-<+5x*aaK*3aLqx6A_eWaWhO$+#Pr>7+4~vzZpze z5Ttc~IuDhBgzjhU4Oou^hB#@suaL&^ji7j-Jtp)>z6G$%xm%{xo2{6sTK>r60XmzvYA?JdhZ$ zzriv~utOw{sG_F$S%!bAtSbYJPl3)%yCP`K2-qJ4tuF$%d>6EyVtq@#Cb$^WEc;&= zLnPf2Cf-P_O|##_63ku|u+G2qNepV_8Z@eZwbdD4#^@vcQw9VVlBwh5Z-8A;l|59F zp=hgGNH^786Ois!ib3jB%08(83q$s-u(doSoz3eZ`-_nE411GStEFdpF2O!f$9gNl zek{rQJfZ8XBx_YIIsc^AE9fv+N^c*lMMvuHqwNDN(MP;uTe}0pFpmxO-em`tg)hR- z)TL|rT>d>Acm4-vp>W`BmsLFrs~Y&(K^v&sos6;ZP+Xi*e?dG?-{RN zD|@`v*G5kvT}h<3@V0kXKXhc@;%<-b)|b%THf;gEc(j`OjryC8PXgwVX5Xpgc^NginZL$4c2 z`|M!9g9sOJ2&PVG8YWB0Q4P^(8 z!&`T>N0HpLkpu$vJ3(u0u!Wl0(!RvHPGI=BCBlyO0P7~bu0N{o>sTxV?5{EP63uX& zi4+-z++A9v87~Q0PX_GYWMIGLfspkcT^F+%i@lYBi>KIoYglUo_RM%G&}H$s$zpGc zx29nV6K@rU?3p#K>0x_WO>1M=-c-|?Y1?~iTAOWqW`Z>*&R&*ay&q?9O0cHY*n@=@ z6rSA*wxXx{Dr{{C*qg#){L5i$PSDN^TN{J+-OhyR$B;~zK0#X!+3P~qa%p4|dGM9@ zqm>72WTYryzZOEV+QlKOEMR{hvZe>^X<=(Y(0(LrEyEBQ#>4lB_XoR!4uepS?naLu zvYrj}*b%aR57?_iR!%St=c|JDyCG|Ruo=!D3Y~0OKhZZwYq0*)tv)y6DZym{`}ag^ zOW?6UX`(efl#!Qc?G3#n7iG4+BGFnG_nTZCinli-DYsd%2yo|9^=tYsfM$$GPvoEO!4C=SH^_3TZl){FJ*RjJko z_3Xu|))&tC4-P)}_*0-`cCvjS)%rA9&Y!7o&uV6s*MHnm-q2ps%v#Xs=^9`*pJXH1 z&!qP6Yo_+JkYQoC{Uz=_+FP8u_!@581mqk!28)tqPr*pnCbT#l-!uDe|tPjHWtQywW&iN~LZUDr`aT58fIOr>uc`&L$YG16z z$Jkp@c!9@*Z=!yL~+;%kzMoqT*YT?$kX=bDtmCX?n*|@3p%l zb$77dX^i(eGUajlg+Dp>s&?K|O}~BAIn7b$E$(@W`@FF<=iBW!gVqxC4ngbfK)(lr z);9L~Cl38P)~9Hr*d0NQ*c7y~h53^7@lvJEwjT{z7p}nkY6amY*@09Gv;1~1Cs>aK zvjguZSigjJ#Nqd`36MwmH@IvzhVE~|Zv;Mwvo=W0D3yQ0^hcj)tqFb*Cwef^3^io0l^_47Z5;~RIKNk-70JIlSvV&(!NsZe-jH>}Z-GxkGJ4>= z$Z&Uv3)xqLHfrxX&iT*6=Y{P3VQW>${xWQ>cg}Z& zdSH4aRokp@ldrIM;|^|SHg+Kb%`EF7Do#v3A4@3+nhBft+EdFDW$NC-Ze#U82;<{B zojlt5r=C~GMJkt5*P8^An>4Yk%hT|4!iU9UuLTnB4VW4%>o|uWZ^!1*&z&bLnp@|? zDPqLm>JPB4hZj&37deP3*iQ1c^N+&Vs^4yVgH z9Bj6+Ivqaqw}i_YVJf&)@(E+TO%sr_>g&X{xa6U}OzH*&E<=oQ3Fk%p;*s=~lePM+ zz|}|VD3EeeYJZu8Y!6HiTcx3{j)APRPof9Jye?$Dg$5zL^yHGDR5C}V`Or@Sb7Vqf zKke){tPNSagZ4)u-3{79sroHPJEQxIko9svy70$HXczuTpk2;!)^oubfya+SNBl7! zF?^X5ng*A>iG&`Bdn0hLhP7A5_50#AS{r2oTmRyrYUFuJQDx>$%~gJE&N{x*n(^5~+fMP0L@nV21* zoUt+aRlt5XX#Enf@zX*qmMrU6)5V>Pi!S!nNWxLv;KbPh^wj9Xf8u^Y4keqNhIOg+ zaj-KsXP*q&Ux%iXFuitA8x7XLk?)J-A zbi*EZn|8G)Fi8&w>SE98Me)Q=x}&yM>Ia=oHYa}Vq1gSyrk7!Xc$<1X;<39n>{9w>tX3OI2LEG9GS{XPTwsv#2*8Ii?LZxAAM%ex%Y%N3|ZClI3 zawh~mHC_issg!Hxqt)Ve$%i#?&j5?~^=Wn$*rI3*;`Mt-Z>tytaeYbzD>sIzv|obQmxqyaQaaLdu6Kid_#%X(B7JA zz19e)cb(v@j8DL6Sz~)%Gpp!Coc^3*uWV+$-vpZ!lF6g57Gtgs(Qj9?R;vu0cos5$ zsl6aM2Sn@M4-!nyIcA=Dl>QgI6r z-N&l%$=ELw$^Uo!KM(x>$^+e3X?9oQon+3zYhL|jg6!4KQ#n@Kk|M4uTcMr1g2Kjx>r@7oXcVK2b~|GDCYj3gy&hRJNDDQz0=jM8}HFDZia@7 z=4d#D*ZH&bdM@Qs@7HU;G?HjzdK*3bCh~FQ9i#BCJM-T&QCsvPh8r06JWlaV497VS zIpW@P9mNY68hzey81?r}Qu#FucQUM9SMlZyJ2T8;xSpX`uer{q{+&+mgzqr~RG;Dh z$05g+F%|09#~B*EN#ysJE8pD1r;^Vizl5QQKa8_elMjQNaM4ltokyA7*5F=>=#!q< zvzjII1c+=WwxTvj$|GWFw_%k$}ehkg{ewcRre!B8~X^&~w#_q|KTgvc9%J-uD zBMiNMGuK5ms`_t9>4@^>_-e}6#EXQ5>c7L?)Xt?nG|U;Rq4A%$e_uxa&(4ob|6a^^ zN9*6G-JwX8^d(wuWeRzK8>B;a2V~~ zJyqo!{WCh=IP!b{p?C`Ayn6huv*md@9@4*<`GQHsq#vBDNMyb^L$6Kx!MP@e(Wc=d zmwrLkd9M3!(E8hdg~s3cl7@fv`rCY^=EKzAP3!b}<|`VGe_ccCRSoy!aSAz7usU5e@(oP7_SlI9c%sFDbI7r!Fs6|{{Q=L)bg+Q ziROC=!@qj@ubG04Y8-o*pS}25fgBqdj>uO2lG`=R{)dLk88)4&*V}m=DS!IwZtC64 zFjD^H=Mevx;Ze(<@fK443x>y9{^43${_VDExjLDy=HGs%dsU&%zw#LF+N=JmCaOav zy{qYL`%2~GcWKxGkCDbY7Re)cI7~dR%sTQ0Pu-;Y2mGx179G>S^dq?Hyl_b^pPP zudQ+0UXG)UuV(!;h4Q9;7<+SR*9L|y4yxW9JR%@R5ku#qnt$1HbDxK3@Qx3QSk7jA zFtR3Ww^{vnFr?{rwKe>!x9{7TkGPtepKS>m9x~U7dVP?1uQ^1@M!JZ#A`?SEQZJ0zB|-Dw*I}{7A^nByJ)^wb=B~%UjDx`AG^9~ ze)?Xf;o9>w+;@qF)B0+d(?i2cdTMCOf5*9c9VvhMYaaENFpQMH@h9nH=XYk_bUFR>IKxQ!)1TK8e}>^v%b)RXqWlVm$6EfM9%K2N`9UB2L_?10 z3_ElFan$)pUF~noy3@=nOt|hN?O$d*tNOPs)6mS%;-1s%|5fv|Vbu3$=VvP@Z`!x9 zcN6VA%rNBzwezU{Fd1iNAt z9Kh>(yYzZLBhxio?k6QkWcOvD7F+A4t|Ls`I|1&NB+I!VMiy8ja z%l~NW^SJLdzopFYpIx69(O-8m-bRLz@+Uu&_=gOSTKwTv& zSM#svb1nbiKJ~|ZhJW?)_pZ-#e$xDHXZ|vHo%w^}e|CLt{56q!)-sHgKmB<-@wXWs zwfq@xCgrycceAcc&7YJ zyvCHjoM9o;eT3;AWH^F$`T4m&{hRN648pQH|IGUK7oT67{f~{mYkn3moWlHN@;c{N z<^A?Qvi_sIDL3P?-svmX*v_Agd(*8!osXfQq{!G5!Wq#s=s^@6!&&2zf@#-?(f7||6G^|=5 zi-(VP{~~ffoAkE|R;u-2p?nMn$L%L;SlCL#Zf!I)_gj{cpKkbe%5OYF!-@+v z+|TE~jQ%Xf%V)Uh6qS3OdfKMzbtmfkzOP<;?e$(SqWwKDSNSZ4Ub+AFx?STc|I7U& zvmc~)qj1gigGsSd=i=n1sr`M2XlUBc6keP0>wo%u<4WrLv*Xv0Yt)`u z42NB-*QUQS_Mbz&;~3sW`O7K)F+;Bp#+?}L-=o!UZ~S$;)qhR@p?2+Kxa%&x?vtb8 z5d3H<*0IyXr~DX(-uSWNI@q_Gewg|@`lRC*zn#2*0Ee-|D>sb1#dN&vd=Rq)m?6^EEW_Ot_BmYg2v*LvMT|?+v@l`$TXUJzjno zdB5`Q|DF1;<)dm}Cc`#Q=ylTK*mj$A#xefj$5n0#L%;Z`scNr@XY`n`J9$6<8#xp1 zWcmsDn*JV!wV&4Oo(%EkAQL4jEMj_o{u#Gd{WFj8ix?(8tNQjo7hA7MWG>@(UaE4_ z8T!S~Zl?Y*@r)i5E+YSD{j=_SwZH5IO@HkQ4Nd>QkJtaJ`v0_-RR5pt|F=-Sg5f;8 z7)y>w|4;j0q@BAM{!01jl&^u;hr~LHnyWvB`){7l7`9LSH|kZ@zmuUitwC=qetoy3J*~<%OTvpY19bUZ$GkLv@8Tb#c zk5bLmnE#9ZPiDRMnzWns<{-nk7gVAF!kX5{9c7ZeX~L;ckWp8OFWD^cl8f*pXpxhJzT6VmOK6bcXX8E@8Ne z;Rc4=8180xkYU_Prq8e?!;TDlGaSTl6vIgjr!$<-a0$az3^y>`#&9>ogAC(dX8H_U zGVI8(H^V^;M=_kla5}^J43{um#c%_|Z47raJjgJvfax=A$*?2C-V6sZ9K~=F!|4p? zGhD)O6~he-w=vw!@F2suSC~G-mJB;G?9Ffx!%++;F`Uj&wYdJ5X@BcNqE26x7x3U% z$?#c*xeV`RxPakohEFieXSj;t^9(z%qrBj}^SY$A8aQI&*sO`E>1{i=?QnYgvnM*2 z?N3#}vf56#?dGiEBM@ed*Ko8s8+%LE$hOyyo!EB7#2dzBo_<572 zL{TOwL$71>@SAVA4oYr8didAYF+vj@F=2w$_PSeczIo)>tf=z(Z!cunlrhwdfBbo- zWx_O%VlxgJxGhc&Vhl9#&Ah;btte>5`N;T8Tz-}&L%oS_<_#u{=LAO56&VxX%pbY~ z6Wu1hnTMFr%sU|B9A^GxuKVCb#&{FojO!+BzzD{EBWJ>ah%a*pb8Y4oCY1ci;k92; zyoVbnGUqVy&Ah{eW`Zd3<Ov8mcei7##CR}GGc#M?f31@ra&t-pS!WO-v zQ#A3Z#(K~b-^`OuXy%VbK3W@IcgOg~|2sL)Hep}9Wzv15x-W44B>p7-CVm^P7fhHY z71VWj)0b(AJAQw8$r%n4PHiP@)nUrdApgdRJO1YRT9PLG8n1kGAKvue16dn?rhb`q z#iD>3@Q_bzJeyx?=_7d*!{?Un8#AZ_;1Qb<65M8Gnx_{yN5A$M~zyf`IEt zb)C!UulSRkn)J=Qdh!pN|8^``<2Pf!@k<5by6s>3Q%fM0we%;A-^aPC`e)*sFoekN z_+}kt?brCc?HEyD;+Zhf8{f%E3RSpx@#kon_A^0z!>8Bb&;+{)Kk7;}E_%q5i|C7(q81l`q6fCZd-%S50 z{X?wut(DnOg|TmA8(odD;iI>OurP3*SAc66OA{pOg|EhH$=bC z(hWK1DD}wxiJJ^r*yJ$n*+qn`#+GTPE*Rxvc7v)=sjp${=gKNX&t#toUj;rQU$U(d zw2mwLuh#qMm)Eq!vZvSwm)ESsl9$(|#KQ6BY}ixVT4(9Jqz~=v zh;A{Ky!>oF7H;yjk>j(;*TqMXFY?F_^pPJ5T*|8yuNjx40qy)d@k7MTd=?)eapaTn z_HjAPzT}(4Pb2PpixT`##0L_W@kEY>7(6813B=D+*t&rDDi3b_u-%idTOl9IZ+H6O z_xa%SeekD%i=A7}Kt^zwe7!{ccjEJD{{|mD#{Qii`?vYXn{wIyyr%0dmmi6H%O(B= zmG_p*NyLr)rd%#0?k$(=iJ!-OnQ~d?!A-vQc=9DbH;7d(@>p>!-00cw(IbyZRVV+u zM?L`^S1kGZz@;2}%8OQUoUPT@O7oF7{$Ch?0XV$=UqRgK|4qcb{{M=&*Z;MGs^9DX zQ;DDFq;5sp#TXB6{ATfebEbbd{V4g`&?$DlN{D;&b&$9>U&nP;J>GnEBJR!CK;qtf zE%4wbU-6!Nb@s{Ec|LeQAKd6q^5`GzBR|{+AMJxr^1=V8zs2XSWZou+(bLYOXPS?mnLfDD)7hgZ&qw}gAH2W^f6E8o>Vtpf zga7P<2jZ&tb9Ya^j`xu_{p!wtqd;+Z`_+TQz5P$p8kP6q_x3-x5cl>! zD?NBK*dM?;B9-&uVUD#`^`Va^zXN^pYs$U9M}G8C2WhJ$GT zbHHW2VBX_t_BB4D{0MviN)D5+By4y%^Lf6<$<*7{z{SqCx2PefI|{Ym&7nH;8FY#`pij>dm6@`qJ{v8M?(u|-cCS>WKP zr?fSVcu~5hYy9?a;#m(VKA-ZNh!2{l{xNz2SQv{x7roWekxZq0DsV}6Yj;hzAMqKK zH}8w>OnedLr}S3&7R0|N-nUZmdx+P;eG<`celHF;I>)KRN3~S@jo$_kH}A_)Yc1<$ z;-#%s-t1GZB|dYJ;>Mp}5jVf5G5dJ`A%4kmYUk^;r#&1ib_T~p+cTB;sBpADUnD-S zU9=y*B0l9Q#nY+3DK?WuzxmyO@k1x#hptq4d^X29o*-`C|Ja`R8^q__uJ*JdUItw1 zzxkaNvgsT)93|;yU$5=)GPGwoQiz-9!|?@X=Qx{q$3fA4c$D}dNG{`WT( z??5~i8=#VIhg4N;%CR%?7x0BDIfhgI5#r&0DR2YvCy5_itnz(`e@J}pP_@(4&zn%; zopjqr+fzt9JWz4dZ~Q@g>om2~)WZ?Ss~+qRZ=C;%#qJJ*K?wB;K0+)m6;b zCg4(k%yW>Y|172a{u!!&8Rg?3Aoi?hxtMz1f%vxV(SEpyc*Q4*!|l%T2=VZJiW`5v zMcn+3&9s*i;^udh8>puSCLUtXXHThrjQ&}~C%>xtJ5hcG@f9sJUw0Ch_gRV_^PbwN z#M=`;__XS8PJ9vZxFXeW%D0&KP}*bU8(||-^zUCEo!^1P-@^yq_&dIc+S|_O<^ZUOE)Zc{ooX6GvQ;A*d5Ni8uDle@3RNoijIRzD)i6i1>`Lnl7rDb0joV`LS~qZ%aItc!%q?o|t-d z7x6rNj86`e-!KHk&&wWA`NPz6I`KwL6|b$ySPv8LK>4ARe}{NMEfpL|{14(Q?g~0c zCh@T+Yr5vWe#Xx;iTCGwo^k0M%ZQiox#uRdXFu_)!V3J2@`-7x-`g&3Cf+DJ>_{%4 z{5;}iKdYYKsQ-E5LH;hx_~!@W8J_;IBMMIZxsbo(GWsteKE0PJ?!k25C*Ed};->#O zNZkAm+0^GcXqckE!*eQs0oDm}oJqW+XMT7E@x8Bx967oFA;(R`&HGon6Q5=D(7~pj zJVSg@rs_er>>Tp*1F`3Dswyz@El*K=(S=&>OX5_%H}Q2Bs=VpvA0zHv@9ZGntE=i+ zt$`K5gizA$cDmZrjrN>Dyq#w~(ueq}Q&qvI%~0UxQsjIeelhw z=T*wDVZAluNCFB}^c2bi6gZ6jbBSjRQQXKsO?>7(YX5xdUroH*9qQ-K#CH)NRYUa{ zKPRK3mUR0OH|d^Fyw7megUmR`-Nb9x)pViOIbJ8e_C&>(Qohz1s(#k zkMVyw@k`pNp4!xNaR*JeLT-%WF!DDMUskDtvVSed-NeoN=;|nJJwbe9p#sOLI_o*& z=DQsyu^itejt@dR5lnk2CEnyr6+Dmndz`6uZe~57P5fWP&G!?KP3QQ8_+Y-z+~jKz z3QqjoW`t&lpDVE@5${k#4L9}q4dPAtyVHxQ|0m*8IR7#FyPu`{ALsh6IpyylzLo1% z<9~VnOUlvWd+3rWUqty4d_Ks?x4=R`>^HxMGxiK3ZoV&I#@XA5H|BFfQ0p8|5HFpn zei%l47x8eCmdh=~PsV~v(rwA{!q_vCc(;etZ|IJk;}hZwPf|VkEcY7dKtzxE9>O%r zwz3 ze3kf^TQyzNFP+du^>q18{WgR4TuQuqvFgF4bIc=d-ha1`_|wGu|4sFqe(87O=DlIY zpC@4ACw}X{MfJ1VS+5f}zt=bYRYF&lH}4HiWx6eiuU@2jQix9^-v2(uhZ8R&zV2NG zmaF?L3j>+hW4^caHs#MGZhl|KWt(*?@lBk!jHLV%#Lf4+xb0%SOnlf6DmY!;WPL|` z*70iR->D~z36j`j-hbYlcpCBUQ&quB)YFG}4xhU)?d2ij=KU3o!;}7EIy_7K9Ig-y+JH7j>or#p&mrQy z2PtmsIj^Vc_wHZaOnm*@n(n34{|NCo&$_S4d8((B{pYEazk;~={*0+7V~DrRQT@iw zT;j`SDqfd*-U2TEG2cyUMErn}KT*qN2=O+()Sj(7RS%bu)&SzWJEu$J`;ar2%#Q=gB!K=p4M8FD0>Q~q4ysk|>>@EeFfHdytWe0@bcBTxNc z>}l9X^-sQ6<-er<9>l-keIFx#EAehzFBtuw5-)jD^i;uz+fqgG$lUq>Fq!jbFz$8%W3Cv#q8>cb_(r(L4;?K;ZO zBfg3IdnR9{#DkoF8a*dpr0LG!g7sAD8AsfFm&WvabBUYx;ipo58Szb7(SA5c+`L!I z)Q2)E$yijGU{G2fG_N&RON zU)omFHF};RUVN(J!zo|Czv?l+r@xi>nZy@*_68+bo=3h@t#-^dNB zHpG7iF8y9A-}ixOo^#Z_Ozl~5Sg*$sZ$Z2x-#cvb^$+6vJoky-CT_kv*Oq!Jh~LP0 znyDv4257qd?uhnVHt~|NTE3>9|4RJFnJSMF+Br@_#gKB@cWJbqCy6iNJ~p}q=lGF$ zbI-i@oD9{oV7=;TPx-mTbLBx?9PCD|mxzy^rS)exk?Y zKJng-RZk}6PaLFryz9rai0@Gz4)LxdwZG+UZ)*?nY~Fu2@*S^IJ#{}&1udxO zJmTiNsoBIQ5-;@JFHX2x^$csEevb6d#484>J$=>P)`P_RaK2>f`Om}~aUN*eMUNq> z-+ZTt(|T(J@ea&aI_-R!cnQDnY5e>(aqoJ6#5Jma&@1Zyp42mexcLq*x^d@NK-_!3 zel_v$I;x(Ll&>>X^)DEw{<)R-#l-vVQG6lsn}~nGeR$)adx>{AK^);_WsB9nB`ccM(63uXuB&yPddsFO6vziRgHx-?(vhz>z$S@?D5` zc_`!{U5H;q+`Ny?^tU64AK?D5X{RfQo9}^{`NO-!*IlLhjs2&ffrvc^Q`LT>=RV@* zdu$VE&tt^RcV^MtoZ~Ixqu4HtAL@@%{jEzhUEZd(W)r{tF-^BM^@Oii`Bcus(Jebi zd*bnYj%7CS+lg0jU10jX6~uS)xg9h^=h#Vn=(*~DGjAC-TGK75h_)w}_`)K^&A4#J z4JyBY{ndQx?+#q*m3g0BUE%{NUt@&5?o!@8+GrhWZLeA5kzKTkciZ`5?ndk$Y! z+B%K6c~9R2HP;$Re6q)%j}o6UD(qbKjr&UPdnNf zLIad~HT``BS`e>KJcIp)X?GdKcX!Zw(uwkq6VI!!88ZF$HsbS|sspA_zTOy3H>tDY z#?PIJAK=E-Rg}*IF8xvw-@D$3_zRTZ!*S5m!~Mj~cOyDezUIxEuK7MJrsd9YD)D7E zMz^~`#Lah6jo&5{ui!lMHjQT0LkB4SOu144Gaij2o-{aGe?IX8|5QKhp*^nwm;A2d zbBW!Fe?s{}-p4$J^~b(N)7`@Ts1(W%Bc9Fqk15}8iLa|2ZBGg&{9=FG#}qg1;v(YS z`#!UYU&7~Y5}5Ay#24*Wz`Uj`0Tn~^CvYFQHs!A--n~+Rro<-@ug!gaqyHV^%RKX| zHse*l`OZg8>gi2<$err2=ENT&Zr)#PkYg@pN{;raqJrFMChzpHBG`{;v8Dw^H2H|MtX}b396?{0+ocKdtipiRThe zxLEO4#6Ki%z5~>c_yOWea@2m4-=>qbU7PRpCQ<$z;8L%aa-22wWD0TfzSk|r9^&S^ zaHjsOAl`ucv}u&zL%j8;3UnoY*vO}9z6?I}Hnpc6`(e{RFCuOor{ht5>e)cN7yA=a zfA$c6;qR*7lvgVZ1d?C#T|;AkPvT8kz742<7;*Ex3**o6#PeFJe$%ek67R+NKx^u` z>K~eJ^I_V*8G9Zl-kSTL#{PGScV{_b`s5rx8$H~|XiL1yRMo$V&o`R-_A>FQbu`@> zlz)$SZ{x-BUFL$+ats`e5kmw$IezgE4kokM|;wU zoA2xxKXfB*z6W6NF~rwjt@>}U^mvDO(*>HZHpKhhsp(G2R(a#kn}~a#fA}Zy-t13I zzw`?6!|WeSzP==G-go+HKodSpd<6GtO?_@YP3_s8t#+DvcsKDCyy0N%e1-VreX7^Y zA3h}YtGdiD`d|A#uhJ@GT| zRy)^Ss}2}W{2}7r=ixUKpUmGGnesh*y6Q3Sn>PLS<-~`vy_o#oK|E)R+GE;#0r9;( zv|N&D&ko|Lygy>bsY~zCboZU1_M3kAZsPN~Zq22hmxvFe|4q8T5O2d5cp1D8Iw@-Gt~^S%1P)bkI4JM(AmZ<~5(&D3SJK13ps!8$5Ks z>fgrtz}w+g8{+Z3)qc}{vx#SZri#B;+L}ka*JlcJWV&04kLPn%ZHXt%)pX7GF0Uls znRtJ$qc0*pl=yt^tC;${oOsJ-n(iBvZ~TDj|AOnItB5~L+`OlG5$)ej{Hi$$nEs^c zJk_(JjpE~|XASZGUuZw@p}N)jnRsJ<2ZY-t*2xd5o+-TV)`fbmCcfnj)nA+VD&k{D zEB-w3kBJXuJs&~*ICONpSQw;u6Nh_C)yYm&5JO}{jdxcOdIBGVm9ydC#pOnZ5m zc%o;Yzr_O8-+=S&Wa_z$xc520#l$PonK; zZb1F%z@;9xeNp{zkp|W^#8>~Mz&^_VgZQm1_sPT$6Hm!i|Cn~y>oL{uy{|NoxW(tL zZ>64z25+G0ns)st@gL9E{2G6LK>TFxk7ZELg^z2xCA(Fgx1FpTh!^~(IHotwaUbz~ zdC>%pzbS3KK>T;l{igUQRDUZz|6}sIn7H|_VI4=CWvwCpIv;SpnE0o}Q#||3hlr2m zeM1Zf&e3F%rfa@?XUe@J@s50M^FkH31`}`nicvrl0wm_zw0n#&2!& zRsSCL+s6NWi7!50?J?=zL)`njp(5fXThz|mYiI@z5nse{&Gd)Up4N0z%T>;dQ;!he z*h|wjehVy7dGGHpt^+Rf>TG@oVle%dP5Hi`sy(L?|A6?^i>l69aBFq zByPS3xmV4yCJ`UR_coYxUnjnR^U^L%cN=l@-Ct8r_7fk$eHi2C_@!!3ZI*9S>KP7P z^1F!N1v2xBNtAER`xnM<>xoa{dg?0bY5lC~zl!tW9>n_+FY6n2kO3yY#3!{^zr9NN z2Z-06uK0Y)|4Mum=V@Ijf8{dm&lj;jKau!k;L@MBIZhQcC%%UG-es!a)Z236Z8=`t zK>4emQ#}VfBoz0+;d8e8;Lj_3Wj5{1qy1 z{MPgZwP!wm=hB1n>xg$qR(Vqo(_U2hIi7L6H*xcwT4VpU#Al?bo-3$dzKuINN0hjm5c;8D|MERNRHCe>45(%f#3I zf5g2DoX^$v|NpL-q#-29k;agQ#LSo(LvqGtuO%jr% zk~)%9k|ZQak|ZP~IUPx*NYa1p_v^Jjmp$`w>ig~c`@bLGZ*x3n&D!g|_u6Z(eR;p% zjC)zMv&C}gIsPm3XOj;i*YA(%I8sEOGYInCD1Sfs_xY2W=k=d6BGO1`u$^t7Y=Qu0+x;pgozoH(^) zATxTxN8*09y{41vcbRmYT26lIcj!Mt{kzF$-UD7ne$i^^KgH*#rjk!3x1W!DntXB? z4Al7l3i(q!zs+N&&ZolN{>AU{45a>_D1W>s>`^_<--JC4U&Q@t+)gE*G!dNJqRv?I zv)1#5>&Wfri8@JtHhvOOr>bj-#+kvwO+DM^h1QZ6O8b~A8b6#ZVJdWer{_kdH4ayhoSnM@5r;Zqg|x?xYr$PVbA&<5Y#yE z1G)XYdHmauUsnh{mq3mC{$Eo+-KT=9|No2f)$+ivq5OyByUM|JUG5j*#vh{j{owkP zudxp0Ze4YrOS+P$lH2R;&ypXu)^9I-2YSXm0X=GGOLG05z2-m3UdjYyqf5Q#1r_UjP56I)m2lj$|BKatC{oY`2^4a7+GJj}G{twTdhGciz`(@(k{qbf%t@m@eMY-h{ zo$r!HjJ$tC$mdc1hE32P$MvhL$ur3Bcopr^f_yyrm?^lS z#pExL-~B1{tAB1J*Y7?yqx_fT_PTw;_h3&??k7G>`L^Ws_Pj3;A^Kq*>X|~` z=LqakI~S7AWWVT4`K{y=XQAD7-f@|9Ort-He&VJ4jpVHkLjD32{<#f)ON4}WzP%ZZZ^36*iA5J~T$!p#R{V9yY zS8j(r`n_b0OKr)=-wDB^)H8tG-ghn~x6cQDNj{YG$~x53>0^|8v=8hYg6eYyldt7| zN=?eoCSQIZ1l8YuA-B(^SKk5seHy_2uc?0^`8S^dTtfXLg&Y5@^*j1YJ@We~zkWRA z8R%ct2E!vyt3>ALe)DXZfC`Z)wk! zJE6bxG1$Xx0H+gqzqi0OK1?M)B5}f8rTF1IO0M5=-bcQi{7gsKc@KU#9|$+=B-Qxd z-D;HoH|6d3p!WO}cJ8spg*(ab;5;{mdOjvE<3u)+{E}VJbCU0;szKh0{OmT|Z*%f- z7fjwhhhWvyu{GtPS zi#gzllpjo9>tgUu&Xvs-xhc6IG>Y8O@zGq?J4r6lGmH-TKsUT9DqIc`T2q5Wmf&n zAW!OsdV7d^UM2sT?;F?n@CEs#2*{75{H+I3?xa@dxkT%219{JCkk@hTTk@q`*Yb@Q zUqa8IKG5?5^}j-HKWB02A=LAJj$chFf4y+y4+GMmr(E@r+wZ5n<}1kC>q2eGTXGy% zJExHE=Q{i>6yuyGx8DQV=rHt$asC@gdxpE*|D7!LlOoF3T2aN7DNj8PHtWDCn(?k41nepFOz4Fh5l^HU;Q80x%Fx2 zZ$v(Zd`%^M82JQg4$C` zzOxkZFoN&Ljexd;PrFO0(U$PZEmU_MtZrXi9-Ks9BNq&;@b4Q}R zwA{wu@xHi!t$xyneCtcF=NjrMCcmQq25SA>LmtU>n8B2Pp8R{h_gn3$dK~4>mUo0lr(%QK zYc+YF?%-)IXU#r$6L1F0CgYelgl*809bg5qj*rC7!&0 zX|SESEzW$4lP(2jg3^I@%r67t17ABb9Y zoQKHm_tO6)+|>X6HIR&;J#~LVxqVyUzUq)qB@bHol zAwSFg^d!npA)kCb^!FpLaT0cpe>>Pu8Vfh^EsWz1O&BT>?S`u6YZ$=^E>(8Zy-O8 zdg}cO{q}Q49mrpM1A5fX6!O^Xphx#ZKOrAH81k*C{|XrwP5Y)j4}LRwC-VRBJj_Mp zrQ}(Ypr6|S&OGuut--IL{Au!WkAgQLulpOyou3J=_V*)yZ7X~hU$k;kZ+2D{pwd+$?g24iCAOWap-5zuj5o(;conS19m=( zUpw6?-}4`6_e;pL$iEpI?EiO?FTM!&bfWw`@~*8QA4a~Gyydfy?@j(Cc|)#$HX`qH z9_*j>4eZf+9wyw_pTc}t+p(PT`6iI|93qfrVyL0;|u zJNeFH)U)=-vE=r9&sLMS;d#q}EVqiBZ#I7NBKwQh=ScE7yJ3&ozk+<9_1=tcg`0LM zGA|OBOZ8kR8^=b!eg642@~al&zWz>oyyQ8b1MoGV&SdfF<`6ze&Za`IKow|yW~l&>fIuSS1Q`oHE03&`!~7B7?a zG9$lb5frCTPcnJYXxvvX@>248=0l2d<&r;5e#ZpJ>wM=s@&#;P<>BEdcjc!jSK~kr z@@4npzKVIjW#smIboY?wJq>D; zRpogOP4oOuTzOe1{0}@ok$S$Td;$Gdgqn^{L ze;avJKgg>;N6LDrX_s1DXVCGqANibrL%uV9I0eezgumTG{d36e_tHE=erz+^aXRI1 zmhs7yn{*Of!j5~Dldt6dvc`w$|uFPvrVQ z3-Ubj=y2Fmn|wBTWA0CBJMJW}#^-0dQT{jbMa)|?4mYn0J6~J~{gIT70`+N zG4k%_!>MxV`Ly4Jn>aT9aIpW>xeWTJ-3UFZzdO18KIA;|&0j)Z{pxP=ANc(R9cOot zpXmyDy|1(6_PpSVda%cSo^dR>{ocqWv+mLklXt&W5{O@g#W9Z z2goC4p+3K5J=d-e{pIv4_0QMI*N9!_ig5oc-$x>^&i#=v@@lf*WBhQ2`4F>Q0HkhX?+C7kP2~Hzk3WUw_G^rC`wxO1 zt&%5P^i%THtbe_)m?+rOhv)HH@xC4>U(EIM zo5|lM?|nsZKdRpxdZu0puKo8}@+_`fwxOQ2a`tu?3Z4)3ELwkNFzoQ6T@So8e?^7dSZ)HroX-9 z<@P@V!P5|T%E;~Soy`+&^hazC&SPJr{AP})8kefYK>w_h(68$fO~_k5g8S0`TcYxu zA2p^uFOg5|3Hd8nZ#&5C_xV(bMY%sOhTtgbi6)=R=ODV1cPF=>j~+(ea1YAW{fm#t zS9by5$b|9)xt;$HYy*1^&4)ke_`8VQem?gAd84z?e+S#KOPs0ynobhG%OIJedkq$D z;>o7*5Y+fKp4@&P<16IHIzT>+dd`c79(!G-7kQthuwV1Wx#W3VSInfIo#cm_!2VeB zY6;Lkzc<=tCwWKmY20_{M82PV?t0isuXdca&~sTY@Gg`uBcH+erhc`PylH#LYdjw) z?l{YFN5|P?lwZCZ`n7$Vb%H%P4??l__eJE1d_GRsIX93Ge-wJu zKlhMFeFd)j)Thb2-WS~8V>_eVO^=~mE{iztlAmS%nale8j(kiM`n$f@BB2ZP*!#|R zkyqjKBf6e;Sy#x%%1?9Y_}iP@p4T5Buflb2&F5<-Lr?wlVgD@J8Be~H@kjkFPdV>b z_X|EH-_Lwc?X1!b`tA3Bb|as1DePDM=6w^Uzt@s^q`5R7J44=`-wnB+cK+=~$lLEb zx}Ln@9cZsJQ0ELMUsNYJ-o8v;Z!HuTQvX}z5l=vYjtjq#pXT$t>W8(v!=4AA8p^#MKb*VC*WUtp9bdjC-@*Q_{@GvFQ%wE*`~l>(-X@dRewg2fYDD`B$g6W6I*0NPkk{k+I*nr&+>CPPw}<`{)Ki~)JLlKB z-Zhmxd_3Ze@~_FA)=;2+J|G49`^Y$EF6DE{ALsgs`r8`vb)0`Sq5b>FFO+i3rEzb_ zKcL@!Pv8^eQ(u9drB$J59eG9=;)(W)gXH6eqaIp8-09sH`qz_pB7cMY-g>Y{`}2lCXIMc!j>JK8zpE#so^^e@ z0lB>|`FHXi*FgRy>PaUbGXsX`{l1`l54g7D=j1gwPt@_{g8s0_etxGB`Ecg9(^>8l z|04 z{i9m`zW?{2si@~4>(x2FDolBdY{Y%a|QJ|SOs z8278|y)_3xPq_6SjDh6G=D>e6?oA-y#rJGzf1gLb?<~q4L3`dNUv15Un%stR?e~+O}*LA&1I6?&vV^DK4&-TLH%%^^2>3*y6^b``8pZL%%$yB z|8|tSTgDS}Y5n&kug-SS_L@x|yB_VU^?BV8=$T`k2Q&M2=DxOA-y^t}e6gkHNAjo_ zVSgCRavFM|$L_xg^OOIuFI((R!>K{t;fL-o$p5oH~n`% z`|mZ>-;44Cxvm>Y{v5gey{fOtcYF!`>OZHc|D<(pJY4b>(~k9KLtgX1rsVedxHSRUZM7b^R0$rzp4G=b@GmDpl1yAZz7+~^{d|Gr^q);d^MN0S9CV)+`{*k zzef4D$QL|-`{Htm(|Rc6Plv;w8$+FQE4jmS2wLuZ@`K!e(eQTi>fB9b_CcS5xvnd9dHH&ZP_!Zv1DA8G=ntbko5$4GUq< z`8=1X{+~%cBoXpDjz28i_|ICNXRbwio~3*N$F-K^or<9UNE!T4{ohMIi|1^$zsw|W z%Jok@7x4_a{r;;D$vZ})p^l>%=NIzLy8v|E^}3O;r!&uqsUL16pTqNqK0kDMb!VA2 z2=D7F%G>AvezVyOiKe?n7dd9Cu zB-w;tJ57X}e)=NU>$F{ZkT2T;duCAn0QvYj06H$5Uj{ul42C_L&om=n*ARMi{Cbvr z(}&Qb`Pgpq?e9ZAlJ|9k#5-f>-)h2twA@?B$IS)Temz0B8&|D!0uNDsJkQNOPyHLn z6L}6q$IY)?J@uS&zE_Rn&N0f{=k1%6n{sP9X;)QsMRlIlSGcj?{_a2_c}=e8YuuPk zZog-86S;l9x}NyA(O+*K>VFgsZBPCY&!K7jNfmD13o)MOSM|O;lwZU3%$xX&$H{j; z1pWV^KWrwq->-hj7}(<+f}qCdDDvHnGJZ;-F$dW+6q68{PPd+WlGPL$6lugP^7ZLfLc^>2Z^>Zx%D z^w{qgjUu6kFABE#ooHP_7O$vxS@U z-kaE8IPG)hQobMO(OM5*liT|XVUjl+Ke3-%H~F;Tb7$hdbbi-{ydKAE9mg}s7xTSd z>W2@KpIQZfTg&@;j(lMf^lN^5mfU{MrPD;%Q%&*+b7{UYj@-^q-XV`#fO^w$>NoPu z^jjTIb7Wp;?zgjy&*sv3!A5fXyM(nTLH^(qxUUxOU&*=!`6=#a)g{j%55EldX#Lzp z{@Q$$tLr4skT>fI{vP#wO&-SuNG&(xZrBrUtxK;ZpW6p^YFye&-uGhY&!GP5lcA>{ zlZC7?zOlC%4Z-UUx6-8Gb$NS3kK=xQWjZe2!S_ zXBFj#TKh`vrW$#f*F<1k)_gKmxbeest_v+jG0rMiUe0Cleew+F&UVW0dkF3OFzx@9 zd@%h=^U1jTpnq0f)Pwxfy#|we!vQpI%qL&d3|#ZEz2vJ7g6n?tcfw6Qr13jeYUf4M zP;UEGkRL-kdysD}gFOexGsp{gZdvR30J;6VRpNB$@7f6Z8J?XI@}tZ@H9l`7x8J)S zDT$@2{{aJ_N99Y&Q#yf9pq*9jhy218sQ=F7H<3@OivE5c{>&LeUZ*{P#-CTnhmL}L z59&EW-eN!WKT3Y7#ARb=b?&okUU4IN#~sk0NBLLCUt0kETAx)OfSyB=$C*q0WDvRi z{K#bT;j>`R9O{3G-2T46d*nkOLb;l6_k0lLo|uhtBk;q?AV2mZq$y=8;e3IoNirhsVk5b6qQ({1tNhy@;F0?dN3M=UjCT^lz>KdlpkqYx0HbP|q*p*UoL^2`y1>H05WKcTR=8w&T;} zW2|}8Tjbrj-=ukq@q1IB_WAaQ$yW_Qx$4hfkT*LGzrC0CB+Z4M4`tomT-oH$liv{w zd5x>P$qV?LR0QQukT>iPd5s%a&x3yZJw@%vYyS#)ZQt9-&!oW~%>!Q*ZpQtwT+hUB z9p@YJ{ne2V=(u^7dhGMw-DO-i^>!*7wTw2fYi&uTS22A@m=u4gMN=0eLx}r_lKSI(f>a z(64@b-c!)ilg|+(QBR6+GhQ6$cXPDdJ1Jl79q3U%+)3V#>R|9z4?lI!FT z(*CXF9ZOIT$H^~v2KryS2t0@N)1Lg{Q2^SGndJ8KEKicZ*c|d#Q~wt7_S=H>ocAos zozMBE#^KK7xnm%&e!h@=^IF(>3H7fbFW@<3ZO4P;z1dII{^rl2+{105U-QX3$y2!x zuH)llr7uiCSXJY_cw(fsh=Z5(DBMdojlY5(h zYx^D|pH(HeKEs}e{(h0DpY#h+KrHz;OTh=S+!4Y}|E={NMtqIicT@iKMKFZh70zPv z?fapJ#XDQbe{KSMbeyfa6!t9L2)>HtUQWJh4)klgbRe(W75a6ZJcs=BXW;*WI%gJn z^yR3ZBJ$VCvlc;K^UtP|D4Kq>el!HN9Y-h^e=(QlV{?>S<7w*`*^bt}`8;y_{OVzH z`#kDd@+h9qL@UU1337wR&MNG8iLAFl$9YXF@>0sDai2o#Z93&&ybkwOkMi%3AGsyi52Kbt|7t!5 zF@W+JL#XQ10?-;A1GCLB4M^^lQJENWOYB^vAQ@RpbM| z0=SF(Q}R|TQJ-4>r&NCz2&z2|Ux7UxIN#CwX-&Sc8T4peDi&_yRfP4OzWXRYzdq!( z-u95U<^E|H?>BrU%3Z>^8iCt(`jU6O2YR|uKAYVB-sofG_VY65y$b!`yp8+S_PvJO z{vO%bZ0)k?uf)6U7{oy)*mlCLDMQUrUn9lszC zzXbQI=O0dz+uu#TZWZj=v>oyqABxC#@%^!SuHy~zn#_|gr9CIeCv$(fDfzfJp#S`G z=pRV_0eQVaxG!z@)8t89=j=rJYgR*#{XAx8^04?|J#)#^_`Y=2-|$W7Y0vXNy{Ny8 zeE0RRQ}gXl$kPUbYo34k8t94QdB~B}lR$p3CE7*H?L)q!8T2%#d=B~W4*_(%C?&7Q zd8@YjQ{?;VL663tQ{?tKf3vsXht24RI)1ekZv61YLC}*-du}6l=EHvNM~{;yo`5{f zb>1TH$c15_AClY8cb_KjwhMZ+ewwX?Js)pExtiY&CAZ&8KaPCv?`U@}yEwDS56ukr zhd0R|roUY-gE?9ukUkvyF9nsU}p7I|bJ$ZOnQLVlKcQ5)QbvzGkD8zHar zl%3=!G7(VuYv&j8l-po`eU{sO9pZVK70*YJFW`4@be?j*aC2Ywdt&#HALlx=-mjT| z8u{6qVW-X?qsW_a{YvHEARqHR?7WEM!XEOxy8v{Yx_CYGw>XL$()z!Kd=L|4ea@&0 zd7m1vXASFNEcp_?za^FY{0-0_C+%#m_sF}EH;6-njKi;;bn?Ns!%p4zyqo;NYapop zxtYA|5bjs^n?5Ix*cL2bTk?2QpLef?A-S}tA^E@v*rWY=0r`#v!Mx79(DT(3;9aO^ zJoyf;_jVxPOWud;V71AsZGxUfoY&}h9Yb!P!x=yx$>%6jsAnhn_Bps;?Wg}CxA%FI z-b1-nsYmCJi^#({PrR4<_mfZNdw|2q!^JO6ect>o0FTK!mkD?0W!64a9Od^iFVcBR zfAXVqP@ny%|5NhB^T59#KTG}5Tj9ytAM3midnR!mUh}m6h zJnKsMmB!)NEzln+{mEQf&v%mB-)nx9+@42&O1_T$y%q1P>IcwY%ySevKPn>M^&sr& zO!>LO&C|NutaCe0Qr>=!?<4Zge2z)$?I?K^_sa%Tf0M1SXDRa^olkWmx4)0`4*9bj zXTzvxpK#+3NqnD%&aZ2J2)>r@RTg)3uPEWhue@B})_8RTc~NT!YJVvs?>QTOGM(jC zlm2h?EI0-EXzGt8PmBW4_&JXJ5Z4K_sHfgX(6gH7$sZ>FJNf=9C|C2kT=JhUKzl{9 z+;PIq`q*ceApg{IXHfof`ol%k|15d!G$_#fT~BU5e{rkii{^gAB4CfkvCqkm&4(WK z+eRNlzE)gtJ@g>IBNz5Fjc|^U|ATp*>M{GBrrc$t5V!l%{xtFrRtLCPRN1^|$&IdVU}n#Cmv;yl(^qb^O{xzP$|X)r0cYBo8z7X}@o(1$hL= zca6hc$d7e`{wB2N6LS0cee-@LqraHXRf?C*_f z|3~Brx55w|XCrq*kG;;>O}IHvwSaLff_f&pT)r2)2N6L1;UVhTmVkOIfw|6F@&xW1 zMp93#IDoOg@4c``<4HRCVr#y$k34ZU+Lz1CPW`>mbM?OULFHw{6# zb!pFqpF@xR-ryv1+nzVc>#aaP`a9G)`^Z;Z43JIzb@oC36rM-Yb$buF{ao8!82ce?i`o^{o9d`U{ks$GD;OFpYel_1w+V&dIMgdQEI3dnaZfgbg%slv^; zoW%2Bs^@jef0zb68vpAYM!AcbkHzx7I+E}I9Q{Sxy@Y%W>tFlJQ{>w&hWvZf^O^Er zP%hIH=e(~`uKj(VtH|r|{d+f2Paox0d>cz{zYpqj@>}15f3cpL59L7vBbSnXd`kD*-qJrWJbw{L|4ZI>wWB0jgG@wPX4 z821wkSZ)D%N9IwgXC3*%mcjMY;XBxq$oHG6d@*@+Rmdy9k9@i0Q|5|fxvRpj9!J)>u);dn2a1-aF z`F%r;KmAmm`!70=n@c|FClt7!{<)gmexChza{IgI^-jPZ`?o)Q}w*aVLy-B|2JILvJ&OY*W++WZ< z?TVkFf6RDPjOrO6+|={<8i=c!pA=L6EY}GmP>eH&yu}RI)0%t>^=ylT9&Io4-DMNc zYwdu%_V;Tg|1kWk4!B?Kzc-TG?>kK=&xwJ2H9y^P?0ry$d|KAX9>NCRn9`|m_Z#o70pQru5l8>*3cIi&uO7aO) zKSM^M-n9QtBae-RybSm5^$fZFzW0yFXY%=OeNOFr@+k#Spm8ATG|K&u@mYB;d3a68 z|AThkPi{XCyN*2Cde7K#a(jI^UdC5<+#dz~>L;b-hxk4gwP&|G9yh4)9Nb~b+us$f zc?S9mxDTlQ(^0s)j`0@q0nI~FC|}0+@M!zaCGU6*?9}!1h~J<;Wf|IK1b*$rlMmSf ze>I72a0>M{;Qouxo^CLa#c@La{K*wgURE#KBMt- zBl!-#H_S`@$I0#Y8V&j#<@Vuod75`UOTO%R*q;ZpocGB~-hkpF>fc3vSEpe6Pm|m4 zy^IkrF@7?T&rfOooK9}9CqGTzvljFhvfNL|*GHjU*bL4u!ri?05d7g3j{-AN@ zb@H?Y;F`~e%R0NUrz7Kl)=vWYES_Uje;7*s%}uy39pCqnXVk-e<K6AIR->fEsch(bdCsZ?$tgx&7SbN90KpVJF?f`IA*76>u$!Lgn9tYsb>axwbrn+ z3;8;gZvlC2-+FTX+vu_1Ti%^K=?%!MUkxL--&e4je0wLz>waZZabTl=7T-gt?Ug{D z#{1QHl0v?4H1ufxvyePu3i{DD-q!~5`OGJ^-VTu0v*v3xFM&Pw_i&q#pI#SSZU*_R zG2q=;?i}IndIID5K=S33pT={5k>m%-!{T7S`decepG^H6WkRa?Mk{jr9MNd<#o_S( z6zYG5{OvN>sqNlW<^x9mI`-e2DW5{#pgZ(@O+KCcHO6i2@0-a}xv)^=FY+p9T3e^1I33{S`pR z$LZt)3Sp1tCnw48Xc8Rf>t2p>8-56R?JvW~AAA+^b?|Fv3VDuoE~vWfM;iO>_uTd( zpUmfmG+q^x4{r>AQ2S4jFJrt?KS`2(9i!iVA88u-$~&M(`^6*VKUYV+?Wg@K$?f^q zUh-C6=+U@WU(OSoa?db7Y{~lnC;661kk|2gDfv;33+a@PlJ|%iJ@)&%ZYAGgoqyOv zzVdG9A3!~~$a;s-6UKSE>c5NJe!ui8^6+iYqy4(7JV#{o*yq6ekvHs)3e*1eB>6yD zPc>Ho?Rk$p{4&(@z2ry8?dMMi%lUg#uE~SU72*EZaqc0{3xmIDxzCXAjzPIPetkvm zJPAFoQO`|RL4Qw`PlJa+x zFKY?Kn!h!cxNP)4$aC*{&b9-2Q^wEds3)8JXO5c}kEGnf7C~O~ zft;o&x8W%8m28)L$nA6EFOb{&wl%JXp3YxEkCq!jo-z{l_okg)$TzXS{ENJt+~GV( z<>!+}mO#JO!z%KfyI{Ds%g5v`ZUfgid`mOf*_R72%Jaz6=D|)~_gGH8_)~Dbul3~i zcM}?11N{#!fV_@7x04s}{EW8y6!I$EXj1t_zmYc2WVY2a#qY!u41zuP;K zywz;f!$#_vD%{OWci@h6pKC7Vk3SE;-Aws?WLxu^7&KkkG;spbc25FN3+OFUVuH> z)bk6u{axUzTBF=|t$uesx&54A8u@Yc?iorKtB0-*rR^iI~wKM=k0UI zi}V~g^-K_M{AWMU*F}@hq5Kbx(eKj9zao$R0pKwd?=*=)xf8ihq4{24@;VzKcqR3W zAus0ooA!(O`t9eQ3WU3HgZmK?)IXi_n@<3IfMT5WGWjC%Aso2W{te`{?u7ovls`zmqyY7x^QpRtD0j>j$ZNYK zkZ&x4y!O*9@?G!4Z~IdJL*xg~1J`={7y0RE=uf2lcjWeY_ccxY7P1KD1Tjh*wf+?aM_-AuVV6Dvtj2{%2&A_ z^7ecF2P?PMh3+7aztZb)aU{|_IP(axxGJ?O}@Jt z{8`7fhsf>cC@<{_{S8;Z9&W=sUC3*00dL6rT}NKWdcX1I$+-#~&qM zHVV84^{*!{`y06WTaRwgZ=XM3M*b}K_g7HQhvbn5(0}Jbom2Hj-fw@@kM@@Ya{GD1 z+sLyv1>5rz`F5WF(eb5zcjzyw3Hc4Qr@L_DCo}n7RP~cvDc_9wq>dN+D4)jtU#*AJ zl<)Wy97oqD8}vZA-H)JL_5XI{VO*C`-kA{YP(M>>|Gnh)b3lv8oyI6v z$KS}FuqTo4xz#)>m3;7E=x;^+kCM;)7`wVvE|>Q=UWh!Q7WoqLBtBoGd=2#vx&!5^pL|Jvnt8bTbBo@v$Nt_>5Aw9L zC{Xp>NB$z;YtfnZyh=Wa?@`e>@C|wYoKfVxxxS(M6mO9q z>4gf@eqFB*^xVpIW{n%;$jdms45Xbek=yg@W8~f6g`Mhe#WzF$*|jKF?`sM93a+hrH|oDAxG=68T>1 zJlF^1_VA%Bj1$U@lp68SsidG7}I#{=Z{djNhR-xLcy zb*ZOQUz9t{n#Tc>-FoAG)!%Z-r&SB~lUd}SFz*egp4Z6}_5<*BLe9tJiM7$b*Hga6 zEhu*==gZn3o~rj{LF4B(EfPi0NAtiG1QO7f#u}I zpP^k|q5faU*Tq1;+Fx%V^wjSP{aT+1`B?pn4XQ?_)l% zdHZJa-D_e0_pG0jx!uU^=cG!>?R;R1aAW6c>w8}ND8J|#)Pv?fSEr-g z!QA&zKP(|%u?lu-zj%>+(h}%V{tNl3>%dh{J@HH9CsDj#9j`OU^O!$tJ+C64!S8o# zzP*in4bNMKvEF_qUvv-3RXx#}DA#^pWeWM+g^*XjT2DTX=WR5fJVCzw5c-jhv#qkA zzx^iY(ffKqxT*h{R$lrx<)f{Ags5!jS!SIt>Q841@mS zECi}nh?G$YPbL0y)fU7;#a-e4;H<~nWj3IB74*l967n8TjM!kjMhqH=&>)QZ2 zo?ey<{qwmm|32kAkZ*Yw_UJhHBKaUrXf!^YAh+N1Q-3)059a=n`e7V-*K+9B`E?rk zic7#BVZA*-zWP3J)pOYh=wHckQ1kO)`m2uEXC<{a=tbV7;l|R?Ub0^+!;y+Sy#V$={0je4qBmE|i}-4Gp5_CyQNq zc@E{gs&0uYKbi90Ct!a8?O8;A;#-s}(;xTxoZNoj-8ba+dE*8JuzwxbpF2>0Hu>TY zVP_=yTyp!|#Rl@OVX$)+?fHScYzctIx2t8n-o({|-+*(w#krY$@e?SwJn|$~e z&>stR&KU9mO#!rhtCm5Jw>ISaP|x+`8Eql2akzlIPaCeJ00t_sHwC%=olnPulH^4A$ZHO~KC#tEa}e(olh+&-T+h1~u=_&V}MJSVC7 z)mP;9b4jO#oA{i@@1tpZ)gKLeQYNB)G(Ox;KA-bJ9Y>~;SL6I$T_Lab zk0L)i6YZ;fF1h_Y-D>i=`%!N?Z~c@!f)l%oXwUcLW0phzTomurmi*87!=z5&8c&kQ zdk#fE)&7`DZohA56ZyakVULa%zmflo`)lgAjsJ;qi#~&aU(n9>Gob1?GLC%g`!HO`!OJE3TQRKsGLr)rcHhFvIr8=&SC(jyz_PUtz zbI6CV-qhdr3ODwTx4tKJp{xg)df38oQ^(%~@-ci~PuFKW~nm@O@8}<~BKs~6QM}-?bYk6+%6z}(C%G>kk_sHu^LA!JL+c{32 z@*C={3H8*PjBl0J00$ebtnIh@(DbzrR)3` z-Gg!$NnT?vZQqXMn>Pm6=UnBMpR6Xg-wV2(JfbdcNXOGQQ&8@*D&W0oXC`@hGI%HQ zqvR*}9>PZC{qKby`@F$Y@{|uDsO|VV`M_$pFI{*2ki1bG%GG|G#o!ke=Cs@yc zE>U?t_owsmljI4PK>r;u%V{Fxika8cYF5=HTA!VSyW=3wxfM{}OI|Pp^{IK_o8%d9 z!O!`69p`ITzr+W=-&OO6)0AKP9`p>Q{sz-gZd5nu`2oLnZYFQR^J9^ezlZ$z%eXI% z^DD`720=kL%6~#WOX8Nf^nPp3K)LpFsj=kdJF(`{xHnd~8~1qrLFdbhDL?sF=&y@# zQVcLlXv7fAN8MY|yBHD*f18 zTJCJ&rvJYA8~V#7D8_l7@)Ku4zBTy|uKZ1xAtxFJjQ3=K7z_Og#CJ7H;Ub+-d43j1*pHhPhOSpsnhciAq4+41aCH{@^ZU{;He?_FyWdL2Hw|%5b}#c z@RcF><`Dc~2!0|2ul{)D_j_ds-X#R@9fIE$f{zZtX9|xDtT6uXr6J_khTuCw@FO9( zGq>`3Xb^(848apZ@BtzC#1MQz2)-f&e>Vg_5Q6^}g4dFHNM-%*+7P@n1b;LHUlxMD zAA(nt@uRYS)LwXHc4md({|vz&3Bg|t!8eECpNHT-gy1(mQMvu;A^6x3{E-lRX$Za{ z1ph1q|27177F2G3atJ;!1b-w1Umk+53&Hn>;NOSfHJ+^8{>CAArx5(k5PYHVh)Uwv z$`JCOgy3I?;HN|IOBYstU-7~#>qo;w$iEYUe-?uO7=oYoROR+uCcH9xnun0@8iJ>V z;G;tD`$F(1Lhv_3@a-Y^p%DDH5d3mkAE_*kT^oY;3c*JRudF^Ng^-^Wg6|2zzYW2E z55eon{J*mMiVnehh2Uu+_&Aq`JNd7olbz3b=#&uh^Fr`7!Yj)+_J@!^8G?r|uKa$R zgy8K%@PWcBYsVSFD~l&fLg-l+g6|E%PlVtXK4a|po~u0mfOfI)%G&qp5WJ1>%IxnP zLVjQfJ}QKs2SUid7=phYg6|2zPln+2pRK$eoXlcxiMMp<&{mm_$J4V*Ur+BIsr@`2 zCo8)+dsuFXH@n#5&G%&H6&7TdIF%reC#%piEUz#lJBYtAqdnOL-r~{D(Bky`Y)@8ce*S3rlYoDDMA921nx9=# zl3g$?yIAZtzsya~%N>)Q<&4Q6*($TB$ngy7-LAwVB3bz*!&3UR5gyZ~q%dqCEH%a>|Cen3Kc=0>lhQZ2U%y*D-EQgArC*Pm`-pQCW(?2H^t!4Fi_9IB z;D3)QaDNu%7G<-X%I`(0yN@UyR#586EH8Iuvdc4b(xpM&x=PQ=N>1r-Dk)el*5gU{ z7UoL@hmeSk_jqhgo|4>xVR_lfDHZjJ4Ss#0C!3k zOLB)h0gjEo_lmN7{Lj)1_op|r$W&Uf^c&y5^GyFPU@-wML)R-VEcNCVWIN?W)L{Un zv$B2mm5T$rDg)KaJ;OhSqCbjH1~^S_k^2X^MQ%g-Y%>22vMCRW^S#BntgZB1R7z1P zoxZ5FB*#_eGg3NRA@0368|4&dYfzxu3-Ea3%T0JlPU(~CK|e?i;q4_-XQmhX+DtmK zRIdcBVNyMA;hsUz91|b(JC8Rpx4@HKCgCl)EQEGx7*~a9pv=O80_j-VB6`+fCl|bAz8ajHVdSlyYb(-cb@dnt1p`dV7fvKsiY=5!wF6$cOCo!>QK5r9y z+DTU6$r$Yw7m(4{V+O3ze&GbuFd~&uKB`!10Yh23Bn3g1`|r_htJs*L;=)X68227M zQhE9Eha+6A{d%~jwjGUz=pj9~on#vMW_a}`_s)$;NKQ^Zcg6bMr6jmflassPKKrG* zg~YVUg#~W!EpgS_4$;;fdriBTs4m?~k{B_>_=h-EavKv~d~KM>$l#T7+?XRHz6cL@ z2RXNcwJi$nBpz>UY(aLp*CX9At0X6VM7A`Yd$)l>%iQn(FP$YOUfkc!Y6?e-vy0=T zNH_DlnL%#1vMof#!?}`8r|`D(^vIIh%k_?SdzPx*9RuY%N)fDVK|ixw|0D$FhLn&@F0AmPr}m?dsongAFR zlUF#(BteCxZn%vxx5LgI6XQ!?MWO3D(w!>$mH*aUGh(BQ#10vSbTBgmwiqPcI@a82 z0$TGN0|_fpf@ngUSVmEk+DP>>ii#_yoNFiw^2L}o0U1|-4zF~ZuGu3?v;6`1Tsr$o zBuO#RBqmNADMKb|Qg0^M`U8twV@R$f6vdRt49A2c8T}-kS3ilDT*%{XTb`3%B10Db z*dNZ&l8J#9=ckv9kP0;2Po@DTI7%(HK`ojF(NXstHR@`ubU60a)VXdw&eJ!$Nc{OG z8CQn7vlI7j{8n>X7vwM+F5)v}_R9M-{UlKoGeriN0zZQ?wh(t?0x08f6Q%$akC zN^F$`}&CUEW^Rm+mO3gwBx{>;CJJ)^9T+vMeDskB$!_L*g{GIqONS)&)%Qa2n6_54} z)SCL50f=ZL&(D&kRu>Tr$HQ5ZD1o`X<^xVH_ME9qCaOK3{ z?Ce}_7!&L1WF|hIoLrgVGPuaCmW)a-(nfICsgje+`by_S^7BV(sRV5wl%XWIWy&fE z8K!xmH3bJX|DYwoB**_RlXC^cDEv`~seu*0a4Uh$fxrHffkaamow)?e@dLxVS(A}v zk9@3J$>5{@Tp`FvR5633Z}R2NS1>_zBcDc7+8Iz6{#5aQbSDWi+Dpj+$xSR5(u%w? zm9%DjTCO!nOQNHLv^%V^=bd}<{C^z_5@paTOV2BnS&~W9{rv^gBncPV3Y85}>8U3D za)&!HRHh3^Ao7Vu=J$?apu|@v1nV51N!HCfY13x@#b2GTGVV<{(mC z;*Q?nztu5Wl=`NKasIqm{wDN-hd+!~m=+ae`zH&b<3i|MFJNQ|PRMeSW3xw!?i?f! zOuzy=U|u30Emw3XiAMg&A6a1tlg1;*jhQHLidC(7zW z!0b*0?0BjkBX0DEmQA>#sVk0h2SKqTN6M8&)EEjt z={@p&;W!@^(k5Vw%&e_?bMs{am|HMZwlyne-tqp-JKr4%1jx$#Fj)ohEvLJs1||tH zae;d}!RZ2L`2maGzDkUZE-mnFflHd=E_+E=sbsm)+@{<0;{rFeq$Dm^hVE3ueQA1t zOeL!XDZS7fzKGxpCT3vgxX;xuB)Z0)cHFNOOMG)|e_Q;I8u$+lE;5GaOFDn9d4OAA zzE$#oiHmQn=T40;#>jmpNNXo2U=zj!-OikvYhcA4g~-OWmI4D2`fq$@PBu3kOdzOq zPU|z{9Ah8usj?lZWH%j1?NnhY;apYZ>nhU3A*-vxB5a7wE_;bAaP?fBN>V`C6*Duj zQ1*mD7XQ`Uh0bpUPp*Y2;N=wc*T3&2xP@H(;G_MHAa7*_gfG!Xkuv>bBlnG^Vg>K zftjRiBKkJ8&5E^*p2JEiZXUYZf$hv3)Lke^cIO^$71^8YvGF>%{i&U@|53CHj1@7_ zMWtR(sqB3u#3iR-#WXNw3vwxVWk9`G9Lp+C-UD*1ptTj@X8T#sK4EAz_2V0_65Uz6 zOt!FJh*=l230c>UPe2gC-hgJM!J|Y>v`oFsUcZbR$+?n#`s&z3=5b?_y#d%#BF@50hLE#tD~B}AcA&QDw9O%d!}i+np0SX zqdA$ZY^v=Zdn%K4CKHm;l9O|iE(Ua+%0_D#YA@INgI3_6 z9p|oYyQxxu)(Ra`w_qyFVuO4%*k%Tc_`uEQ&}HN#SDbtKO=c4XmX>I;OUc&kO>V70 zBv&yB<$q!kR2KK$OioXJNTXP-o-C&TO{nDMl~x`GRj>>%ZTO>yWb5R5Tj<66rn6GGK~jf+RPx;UMmY-3P5PsVcK> zZ13DvK8-Uw^42Pk&f>&~pqbw}(+p;hnyhkM!pS?|LL6s0zD;#E^ys>?Mw4@g!~fl? z1_mx$=v@efedaPIhUgoLw{;7?N~7w`tnvRkB4dlf7%hU4gZ>5l9(7tDCMA3u{r)J zhp%uN0BhNSO&UD2b~|FAWmb3kgX<$f3(itm!83H|3_g;eu|hMNKpXy|0Y6r{vAbO7 zpE4W&PQU`bw!7bd>;XW0y|1*5B!Jkk4_L}L*Bx2w8-dBUJ#M+DL*ldZi@X8ny(}Tw zw9d*htNHFU*^HC!qM>i?*SGX*y2+oKSHur3E;J`9@rQptuE}&RFmsYKKQg`fZ=JP5 zQt^lTQN=OTv?ey+{WFou=9p+L-DNRjcP0H9$qlB1xl-TeP^u1H0a;!mj_gV@=06nZ zpZTA2IPl%+Uoh*ebZLegSFu=7Gucmty`F&6eWv#86`YtjodV#5q?=eKYIXQVZLVzD zqiJG(X`YM#W`V-$OTM)SO!Is-VRkdjj)fJwc+5yA$$`tOz8R}K36`AzaX4Mmv&SO_ zxBtT>6AdC}apON$Ey}`epX(out{zH^)%z7Ko()lMI{!utTSB{ZX$YIUm{yEO# z#KdRinv+*D!is0gk!NGLtb6HdlfNJR&qg81HDrx6;7nYIel7({!PrW1dqE|O1^$TQ zw<>5{`in+w{~Qam(k{U}{;qkpUk5De(|jwZOdKt1OL8`@lBM*vnK`8e=15v{oIENr zOhTdm6l6>s&&LNYiU+MS_z#N8cpcE&-LM%V1q$8w&Dy+fKA$7Q3w8#3d$SF;H>Cqs za(*B<=dg|qxTCtpj=*WS8#n&oOf=|3jK4#Kn1{N}^+&cIG_aUI@GV66qjO32$O1WC z%b`2e3>KMvVEbxr>mM83RV2mY746)k((*uy9E>W4hB5Q^ZZdMD7%rU_J=k!B}1=}9Q&iYefmo( z!K$91Lj9c>{vEtmWAZICECltG$~Jo{TV?$}-S800?A4)=t0W=js?uQs7ENU0Du=6N z<-tT%T{Lm)q~b1nOdCzL#5d%54>zm#E#XN6n`uhAjFfUJHYfC^d4(a>L>|mnOu<|x z^p9qh<;MY2ph}ik&E{8S1F77sN%m2S`(RC|#Yn%e{=dtQ&4Fh=RODLkv%$YTo!Z@` z0q!=5>}ty9J#OA!7LO~+E0uAwau>FD3$#Xj(}ch@EO;Fw^zx=JAo`YZ1Ba8qs2&&x z{vT#1ZpSf6rCEFqNGb!@87eFt#YDTif$k0k`kmV|Ds063@uziycPE1bj1DG&1F805 z?G2`UEaAqqt*{|&X4-vCqX+IaX!A?j89PYxiM?icdxQ{xmQSN?W@9p6kd) z=6?}|E6kA1W_?^D{kn}gcdr}v{>3e`Si|LfGo_OCIoT=`BY2KQ(tL?&?mE8SfiEA? zDX`m)feDmW@VUCX$^^s@MSpOi#lNW$P-h_nxHX-U%+r5NNWy@dC2@_q!gB&`MA~Yb zO3Fd_sBFVD*?(LX`?ENT67W!jJrUQcK<&7DcpOK4wU3ZgVX|+n@5$DFZmxgNFX-vh zHbvRyNC=-9vqm5UcFZMX{`<3s(q_I8E7SjgA?1IRn#r@@H+f8E)JKk42G5SO%@(+{ z1|PVRwFue6#xqU5hJghWTq|u;<>c=Yd?QqCauq!Cn#dCCeIc{PV0} z=hC3>j!(=@D(lQK@$SJU_njHC`Iueqjz`-2|Gdo3oz}(s%L#!ATI^y`wvgvdPdrm>A$$wd9@eP*lN!@@g zIdl4FRC=+zA|+^V&aM&3Ky_2jeXPp_;DBXuMqwScOh~Nc0jA*I%ClSk$;vsFtz<7> z50ZuSCDdPFx>n)Dk<3}FdNNbC|ME})CpxAx2P|AyJcS?Q+ln!sA9(UHa5=6*Ud$aZ zb6a|>;#_%Ca#@OQ#{1)XaK--7MS%Zu-+?2ut?C*D|Ig2sM09R$4K2j zZpW3!;5n>sjuC_BWZk!CnX~zLhRIA>wIlI3tG{7`a{s?(cz5@80uJP0+sJgKkYhox zyH^+oDqjyi_rtg5Z~V`ayKjt;#5A+a#KOR?Cnu8p)nkk_`G`7~hKPWkB)MH~iN`&T z>TdC8%UgKlVUmnW!u+{G`6^y!(Zrbr;d-5%Gjy&^DdN(+BeKvNSx-_hcssMIVTL(u`lY|U#OsWB+MBHgzMS)v$`95eZA7`IxshM)cQ4#iumGh|hlNE(t+fpEXM z!~ipzx`S^@V^2KZW}wSrufJ(-&EG&&(WxE@W_XaeU}Wa5LJ~L*tBtgwN3=GZ5dRID zIj5QO3T)^4u%@L}=*d^%dBaN9$XS#D@M@pUsB@_{U8Md@ey}cMVFu6Nd~gxZpyeYt z*6@4D(umgA_&O3OVt58VKSl8Vb%M#8D#yVxL3%KgG0xuLqDiaKtyfqh*N3N+ISz-Z z(i%T9ucJjC(uR}z(09VV`&S4z5*2e`3G2SoiI`Zz6DefymN3JLG@Y!dsu$DM?l}%e zt1%D;_7u6nOPHh22SDKriu}LzXRy3k7c#VNP ze-tbeJ_!f>^wE9(dj2wSGZ59ktEl=JXxegdg1LDYs|||rL!^tg-b)_wit3Y(cc(f6 z!@td=ZWEM~u-@dsa*izNjiB)}1b{+V1_Fks1Ug6S%5$Pdr`We%jORYWM$q)z)RLn$ z;92t-2t`6iaig2AFy%=*a@ICuj+A2^;nn2rOG2wrM^x3IBc2p17t;2#{i$ZfRE8sz zEm01FGX7-h&182|sBdnsGyGWIl_|f$_)Jx@dDfe_IeB>qWUt{?4K>7EGb{kjIj5s~1vG zIRD@xQ;fS7lL87V=Fup6cFdSjF*eV&N{l6aj48fn3iI=!#ac+mi5+gx#p6#b*~Zzi z)zeTZYZ`Vca#9v}(%?6>_I#+B59j_A%7Fuu9ix{5Ly+-VJV`aP|BG+njP-A5h!KsG z#5@{cFbq|bGz&hq7Tb-)VfIjDg)|JLS}-(GEA^7f4AQ^Sph9vNn}zlezzZeQKV=qx zxdZ9@H)BrY*&v)H#gb+fEjb160m5GgcmCP| zvr`JMe$DmQ?vg7d73#Wu=nJ777H;@lX%YR30jNcJI@LkSfMt5C8|CQhe~XXoU7dS4 zti0E@V%GQE@M9^^a82xhYY~U@g?u+HhA(@@54{6F%ri~lAlsp%``R&gbt?0#WPpN9 zZ69!W2Q!eip--MSbvV%8P5SxXD>C*>CtL8v7&O$~TL|a0rIblC+@FPHYM!coiDwg! z%K5xK05b}jYRED(Y`r&VqNXWsjF6PG%KA@*b$Yj7F*G{u8F8M%dzQc8aBs==fNlq@Y^+FIFbR8&bq?}KDKeXQ|*syk|s%ace$W&^>)_j-mT^ZCx z(H!O5$IIf>#4jJqhqB!@GK04u(FjQb038rjg?1U)8F(s-lab+v3rWSvJ!Bwt%Xv0u zQM7$Rebqd$025iL(3@6O%&c{3Pj_-C*y zrd#qHu2PnPQdf}p+YRhhiof*VnRJYOz$9%c$vYegLD3?lFUR_vttcK#!g zLo!+PI@&k$TFY`|kCoZX$53Bmb@8sQ)125--ZC1796MNrZAa``;A#cWILWXJ%i;#= z-r@<1Di1#PvIf08O`>l!b`J?&{TIc7oLS%054TDxpSql@>D~&9UxLerWtk0G;oB1T z*$;%%T@8|8l=u(4XI7BM2!$H4w=_V@-^XBjp-KSTiV4N!_R948Ik~K=fk&n=>^)ec z&NG9m*6IP!)>3iHpO!GV(hl_4Zps~PZ%L4x)@cq47o>{}mPY@Lp$48t9Dw&glsmP3 zA>k=X&{;teZThThWZ+R;l$t%TZ_)OidzkYDpM3-Wd7eAmCD zFHKpWgEWx2s8MA&GKRpa^;nlWSAk!hMAd5F%NjczsDGV_cWtdjWgZIAjKsP1 zY*9jW3W%~_~M7mJ0Khf1qo4e(nZiUE?8!c7qfF$gm~3L5GkKqo}Ue59KY! zw!OdiHiMkHMAsYV9YKFXYb4jIu zj*IE&>#}0hwc3myj+j@bHjK<1yHqRE3XxYtfVE2>hFL)$*~IUkNY+k?WrVK9n`$hh zLrs!bhkB-)9uzF-`;#CaYHzuL*n|qwM4F*wnj(aN?j_ux6OCArsAki&r{ji1#w%fX zQm+ThQqMT#FH*xq$^34iSWMlgK0+_T)3=rxkwwA{mH_<42x~X{v+sW2p2Q=n67os%@R8Z^^5Xg$6C=~! zSefP7vsHPusPggDnB|VEn9nauRduK!*&Xt>^aM!yXqU7>o3=3;y8P^_MlE?Qs}(B2 zDm}{&`1p#WI0ZB6Y65JMrlqv_?NbZh@%i=kPb^U-B;oDT zU;c+0ye>ZIHGvC)&=56&gAjZ8|8r^k$b%i}z^Yz_kDE8r=qYg|AL^!^q_&PN+ zSg&9lo+SiG$97W%1qZ8(EhU=NI2v5a#72rf+FR+7oOWC3$?nNM0w}(p!$pADD4Tko z{=mu?vYCKvcr1-83 zunP;6B88l{#H;o^^EA~U7IAoHa7BE5>;p@Bj>^P|oPnIo2_?bY5N7fAP|n=!?GxP= z+?k)Kp0qMqnJ48m+WvV*-R7W-dCdH(U_whEn>i*+$!i7_dE8#Hwy>oKMP<@#wmAEKy92bjUYtoz zJz%i#_*3&(eyEx^V8PLgWAa4uz}W-G<6tDuEx{^&BCAieUPek~C>E4jx$tcrdt>KK z=P#OE3#f1#p`x$blJfFh8)u(6 za3MN%YrF^~eEtVQ6$7fAA~J_u8WW1oZZWGL9k82gKjVZ95g*KetCGDDJRmA`%(8jy zTs~YMfjlgCT3#%+*ak`o7mX7=2zrjPBDWZfULr-Tw4^O=U&|udH%Blzx++F$o1w0T z^>n>g8FnStcaVDF(@?G4y!Mh}<7T|zach_vcLo~52Dhj`42m_FJ~~hZ?;FHC(^AG3A_~#2h`%t<4q( ze$9zw0%#o$)Z&r+2YTpuOfBQD*_OgNrf`OB#)SDQ$^&{5Oae8NKDKCy>l}RDLCfCJ z@q+#p%#U+;VhW-MMlBZsJ^PK)5o7_qB`XT^zE{Gv=fVAYW|Z$*Utv!<4W=j5;AWA& zqV)oc4X+&ZRRzV&Xh~G#gV5#?)2WmspRdmm>#y#Ys~a?sS+!5Ht}!1D??ZP;RREHI z<>H@D*!#ww!ZA*dLOa~fHoznKjeR&{Kp(r25*h3zudGBelG+*hD1h{0MB77Yut<=* zcZmeJbds(ZF z7F|G)suObXNUN^+Zyr#%{)jzTzs}usK{ZK-E9HB~)Qk%0r#T4-5c zp;L>Q%R=H+f7HOGXFqgvzy-68i}&%2wnpd{bINKWu{ODAx6D-myXFcd!~@! z1vmd4p3~OqPttEoXyJ7#-zc`y>(kH!%4z1UP=1Y9HaLU&8?io~9mEU-n+`y*!n|h6 zrUn<*HF%}vZcq%gS?~6Sc2a-ED0`}CsqzUhVb=Xb?^{P%h>ThW<0b0A$Tr+9Hn#v& zgi$hC!i{I1|JUn5^V&D;ULxzNlVmVcNKh%f(F7H1KwjUEI0)|ifb&{JmCa?9M^1jr zGX?=M5#ryU%-`#_4@Rg7xS0VM;Q@R8)M3oG@sY5 z5Hf4_-A0oh(!kQ}>N<)M8-XUO192GTG^Mrz=ez6pL)Oxi%nY-f6{K4Fbiif`i#NP^ zyQHaC?>VYYq*_s;jQ0w>?1#0Gl?riH^h6d`k>N<^Fgv(!F^c3O@F?|(1HBN3R9^Rs zhmMm($-(oxiaj&zXrJ9|eCtaro=r?IX|ICKiHXTcY=z!_u9ecbumH&7D=JACR&Yu! zbCNMnm%*#fY=vg_{x4yOE!Lt7u3_o$@8uS@+0o?+%<$EEcgY*X{K9OZNuX#6Qrf2d3MAsEaH0eKN!wOlOPv&i}i-qMwke9%E!#e^lJi6 zPj7CXD}`7q)an@YqEVmJUgsM+de`+8-gx8s*xIbw%rAhZU7Q9D)Eg3;r=!y6yYx?5fCcVt>k@4_4=^R$J&C@axXkRZYx6p+=$a-cOTu9WLW4%A^?Net?s zTlN4nr(=zYng5eyEnEMfWGw1W%TOlYm}NGa7%Nin(j=j}IfZb5&z(S}33*Buul{|z zU`EPv*W$|MaWxtS0DhJ2mN88*SMoQ`b`%^x?yU?znkSOeM~{VKfPFEF$8#U%=Z3)z z<5uQpyKA0kwpo$NxVNZTKsk`Wr8XR$oDUxjU9Ty8QKw?)uX)eUW9yG`)8h!C;xS8= ztH;Uxao{danX+WSw1y04o{MDEC!?syDa%P)tBK`p!yQ$+sO5tK17+0LvlGj5u#w47 zKH0VGKuiu_NePG=ZLhUrv_2WUW0QS3mx^{%qC z8lqCp8RhqG(E^l@9UVbx1YJMJ((x?(2q~@#@g)!fBW3`>Hr^-<_UhmC`hIq1Edzea zrIQGjsmJ#EMye+tLvNTw(&Z^llS+83`J|8f`Td{f#&9@cFcA9+9tq@0FV;8f8Bb=d zb2G$$QW3jc0==Q<%?dkt%Egx2UNF*-+;cab=jljFIav4IFmmih-pSiN2f88HK5;Ul zKvizMOt%9+52&Mc_m+nmx}^qPo^HiqufTOkw*~ko_96 z!~C7TGa}OHhrB?JHHdz5#*Oi}7<}~_w(rBmlt6PD*OOaq)gvbp?OP_ee()UzTz@L2=u^SE_mmL--9>IGiM+m^nYv0 z8gIbKn@6J7&Rh5FQb4j=o9ILAwcpKxKhoDI0G?5*Bqve=oiUEvLofWkYZN^{*poSC2pyJ(f zyS~}4udh%dirp)6;+EVWm7bdVXA9hjfS)JyaG{?>Xk6+_XRFMPFBjWC z=WsEXi#?k0ufDO7v&@Ld51B(7Vd1LZ^hZbc%qf#4RG&G}@{ZVL*Yq5ahm1k72y;l0 ziYh8sF*WzYBaEjwiNTp47lUS**h4I=Y+GXDJx z;Ic!s#FZ$Uy?bMcC`$1Lf}CGdBA~ZBZDq3rN5Q1a7Zr+^Y7@AnI2XQ<9i}_U@|NnN zc6)8}X1nn2`U;N!cDe6Wx9nUu8x%?cL7LP&U#VG(fNj!#M8?M11!rw9CR8C4KNaG zOiW7Ajv{%KcC{75f@{T>e0rwoya0zoHWr?;OPiLy+okrEri0VOkkrD1oQMgLUFWm1 z!F~?Rmor8oiDz=$zLfkJ7zrHvp*JFR;J*JErjz# zW@31ilQPQ5`zYqXjntYtxWS_E4X4y_0Xc%P=Uk4NtbVJD?6bt*%;ve~H>R~h`#AlQ zGG}S{B%d|Coi6=pH4lt{i&O){Ep9FltfYiyDf{qawE-W5;?fWwdPRyw554^d8nY#P zmMB751R_zg)cnVRuW+gc4IC3xXH^Kx!#CDwJ?quD@@zMrpLsYGq27&fV1> zg`{Q1f9Y50ioz2OIOXPQIcoB&^P zKUHlh^n?e3L0GxEm~IVj#Q{yT+VWSq;=tkjgmEM=^X*P)?o?H6e`TJ~6tl3JZyAH4 z3aJof_KbyV_X}~oSB$SZm3vTEhQqEFbIOob*&cVCd|yWjrAtOP6g zrGGM=Q(VwijPIf9?E9w=)L83{XvtC9UDLPprvQ{Wm57p^Q4Ydh;XtKj1gFF{hR5}3 zCdr?DDB6h^F|lpUnFxUzy2ITR4f)~Zbm9V7k&#ehh}#S;VfBKEA_h%vdeEUWsqo(P z()YBquO3gBu~p|}@MWo#0C833QoLW{6f9YBTf(c5~EX8C^E)=lhf*?D86?pb#1BD3#nqA&` zQztDR=v(gPg_5bKTb~Vzlv{QaZvIVH$~$Kpy- z;;fyaU;M}e%e>$ghr<8#_y6~A+tvBs=JRj&_s9!vch_hQ$DqOa-7C5KYy^UYOf~mT z>%`3H&_=baC_+K`%&?mkE#;H}`1r9F4gAr&G&F0| zJ>35WBT)B0Z&s>DMu3gqMUjCdXLfaax!SHNxqC_R#N{byjeEK5U`ii#iaw1(;&qb7 zhzdO*g-JP8$(1-?(X@s)v#j2rx6XkkNo^)*T?k6vwyocQj3MK9sJR0((asdO#nGC~ znyFmc!__fnh$Q*xaFljS#n&l18{Eu82xbaskpF{>*izm2Wx;nRpqlawhTwUUs-bwv z@zbRVDLNy$&@}{e)S{W*=Ayq~$A-Ds*)gd*vwH}HZ&$lL*QP-sSz&EGcYM}_iV4Mb z400M{!VgSU>id(lnhCW?umhPvRXnGSH|P$tnbHr=s}^-L&PT^atk^=PjcDVAn#>gg4HbQXA6&I zcqh0eV_fnip>TTz-i6&PNEqH^G-&}x7tpaFw(9>9$7j5dBT{3b6pIi$i~qvx)N4&# zkGqF_QtYZd-5Sa8+0i|9{Xd3hVS4^sb9Q~#MiJyfPq1TY5Bjcam+yduRu zS!&Eb8~7M$uuCGeNjMr_fjrG4V=ejK5IsU6J1TN~FX=4X`6M$kEc!F|Swa>X@0MMU z7J-TD%Dshqd~c*_nZCui=n9o zk^rp!3b6DQGqz~16OyVr+eLZ_;?yVt`3&l*DK)H$^P*G>k*77_9dQF5a%}h?+HzsD zrcQ0v3SOZ`Zzp8hfkmQql?-GOU5(JY{I|N3XP)093Kjhd9l@75Mj*IGiy+lQ(Ry5K zys61tf;$~XX|x%O2!ZMkpBbEXEmigfwL%K%WahYTzFhnzMtCMA|J%jYw-w?7p(5K# zlXsWnHT#k#FWAH7vr0>)&K}bY4>qX!?aa2c&GNT@Mj8;~tXUI&OWUvbjZL)!38Wi&%oY;&cDxx+v zj7n3stDB8B_Tzk06u}Z}v4t(?{(@R%S`mrel#+h^-*X6Dl0*g6Jf4J=jn1P{)a7z$ zsc7khV|O0p#QZ+5kCK*c`XmWI4$l_*h3GQ>kc&1d83AL3eeHXSdTlt0K`Wf`6X##{ zbj|z?W^7=#nGAR%sv$Yo(Q3ALvswuhwjITaBCkj<0?i)KXe2gDj^%Q{U4u+iHPP{# zm$2h71JH1gGX$R@|Mx%5(3sge+Fs7jfoiinC3f$agbn|e{wYnXzfv1`hE@%NydGCPYjEGJa*0(RR@Sm1@SHB9Qc;?gNmcWW!@+A~@0S82M;j zh=dA04w8sRG!#s|GIjYBtOuWbFroPJ%MFP|P??Tt=NC!&v(VpJ*CPzWh;ny4zpHMo(ZB|MAs7E6e0Nj8S zzY!)lG39NsCwb$t^amy_DThMSeDP&gz1~N>qi<9##=|Ss`U#}L)397*Dm2D2-d=%( z&!0H$F4$g$bDk4%x=!mNSVv2+B7bJqyab^*VLGV{a2RI`HXvt~nhLu-89rjrQwY)S zq0;ag^b7?i?R_7_XmxWygc`NXW1jK1{l%OB+zuskJhDc)#{60Vw!dfD!o>8sLV zv(8M=vA5*5C>QFJyy*jCaC|V+)(%~Xb++0peug?Alb&(KfrKVYGz`!lvdl9^1=+=z z*zrkJ3agB@^S~&6){|4U@{Xo&?h0Fjd_7kifM&@1{ zTipcxuJKhUyoA}c5fSNFo~cF$3Z42oZtqb`)TWl{#BlLepb6JZBSW>P`O(|TZPqHs z>o|hfTpW<5Tu)d$$)R_;LxxnY3L)11Jg^?J?K@JWGwl<@^s{4f+H#>C+|)KkH9Vz} zBpn{-w396ylmWz)mzfhWys=vyu!}HaB$D_i(ZE7J@oPB`tma|jx-HK%6mc_EG>Czh zxY;AtRzb0S+|%tNX6%HCAhP;MMuOOaj6n4CJZzE|cxJxYDw>DvCf+3+B zOy@VlWz`VAAQxF&o5_f8CbNLx_ciUubGTdo!8Mw|78`)A7`;$aY>|h#Pk%Yj z9U9Wa6;^}lL}1vkkDuQuu#?B{*}UjkPq7G$*=>T|SpbW!ZXiM}0%P8X`$#XYP^Tms z{h+!sSNM}k+FTuvl(p6UMsYc|7N0#+ZUqK43WK{Kg#N0K41>NJz zKNBmcN3Zg0);1ab3dY1_58ke(qbiMRhnKMs#RA;b<&AEK21{ep;4s`=Fj+~@6u!ai z6aTuhjZPMdFgc&qXjEU#m?rkj2JpDntuO~tk)?>Qf{5Z`tNMWJEE+XZJjzk3n4}sF znD~%h;=#N`6`gallzc&~aj>0{WUH)r(z2%!yGJdXTF(Cf+z#Ga*N=dwh85Srk>=`g zzY?C{5a~eZEESbIm}3GcPn&|FV)2uyGdr^$&S@c7y9F`2C zI6#J<29;qAs$H#386qCldKC*Eb#^pX>{7LZ9YstAQhg5lR|Z6L-s5GF)qHWFCD$Uo z(Zvvb6#X@o9p&KjMVxB3X}&^aV2#S)P9)M$LaJzO3!55|0;AX;=IT<^)#rjcacRE( z+3aHYeuOB~nz>Ah89vM~zv{}M`kL3uh~RNQkhuZ+RU2hP9Y*GH$zPgx84PL!U1NgF zUcg*L!MF3S8UcEU_b{|gS4m{LOUs$31{Uu4tJvcEz^5sc(7NVPSZL-;A$c7H!WQzDt^ zpkPWubV+`}Y`=6H;wMyiV^Bwme6&#vKOgKbS6#^fT)lRFp7;n;sY#P~Cqxs?KziA7 zn&pv9vt%7Q!$7|IUQ91vwfz-cyYeF@Hri*cG9gMZ)}Z%1W#6gYvmGEI^Iih^(Q`7h zMRk15GC#IHsRuhG90M!h2nPd|veJW(HP)@t(UKyr-nt6e{_62ca7n(6hSxD=Vc|VUSg6VoD6>{aTz%SAKCBb-{9>{J(na~yvafT(2NS$4*m&@Cm zXkJFnF{$P>QW-XB>IaVNdNp)2-a=G2jK&~?_~9*;TvM{0Hx~16`QoHwX^P@AFte%+ z`ZxP6EG(|1meTa_uL>T-HdG_J6e)uwNF)UqE<&`NDR?)>%3gf8;k>dCVbq`|(i2E; zFoQqrJaLgP%SkM#sEsv&b$MzUDdiUA(&D!$p$lE;IF+Orlj~N?QC)9Y1Co8?o#&ps z&(4)iASjW|CQq=Hy@_6sW-MsnAE|qD4q}^%U#+JXg}AB+!J2fmI_VjtqG>?~fq09I zr!;}zOHyM~>2KeIyppPazL^4a&SuQ%OW_JqI5ePDp3OAVAgh1N$HA+IB>hSRo%$Tn z*oc`ti*GA-5pHEu!UP3oN-t#7vFpP(J1MbcnfY=qsb0C2^KMkfbtm;(RHTQ8f$Ri2?F7t+q4s*bZzO=LdFc1%WU(tI&YkMYCdmnsbks{sXRm})$v&ASsl-Tn?v=b< zF*$CKxT_6&Ru(h&tFnP~l%&XD{5Io}YL#D}X&8zKY@~4|ipn!qi1*O*X=eF*TYEez zswJ=j(4EDxMFw}A01kk+`H7ApY8#*Q<&e_IW)>>1gq@i{_dpemX!}jXeN=w2TW!$! zILDwZ$t34mPGBcL%U3?Bpiqh-zE(e_2QdlM5MGWg*%L9aSxFbGjAGziV=orjY+Fv_ z#Oa4X&6Tdpt{f&`YM!R@oG<8UGRdM^THKiF>H40#NnI`>=(D*VIwqm)3&l-cEAp?@ z<{AfZkn#79>tTmhs}?Nbe8W8#gVi#*A%!9MEAvYw4V3e^H=A4SwV?wr?i-0*wBw9I z@Q(VMlB1g2!gC)=WEV<3#lf~BgZExF(f5ki{S>V%_kVBcE3Kus;4!7S?>dJwFH4 zhY>+CSH#8n9J!3Ihan5qW7JQU_N#4nRJ|yAb17+Mir^+YQyM7jjVs zNaKEgWsNi_yk z$va14m!onEW;>OEspW;M-p?<7Tw-PtgCf|)Y-I+I6GpN@%yL48{<~s(9v=`G1~Rs# zR?;85%fjlv_9e2lW~lx51d$S*2t^U46rskf00{WW>9pb6TA${>{&A;U1OX)-*hx6B z{i0|#3D3cDakX4wkvL~1jG$`hu;K`Zxl{d4Ws{=|xZBo-B!*nP8ViW1 z`JbzwApa|(B4i={Az)hhA}i2f)GE|~cZJ84*F)>;np5w?CNHDwy}qSLsqXkNhS=Vl zzUf$6cD4JFqQ15yz%1QhKivBd(}dnRd27^=zsFHjl7z_dKQ{Yn703ijlItn6s>41c zn8`G`Z^|o~S*~uI$rjUF-R%2d9x=4S@6 zDf`!=ZaFA4sVLg5?`g{EO?pppsgel(&Jp~I(G-9gXU_I5qH%U+;g9pU{? zsh(rI7Q9yV9wQm4l*X#XTX@F+-5WgFwC1}EWrtX=K>-cI=Q`?}^8G9j(cRCqf`s>W z6%*dgWz_mf%W-6R>e5Yng!RS_c<1^meSnODQ*4O7>y zZZY^xsd+j$u#%hg6_xsEwc?J$p+dr0(_B9oDPBW5{s88~oN&Z$nT8!_1PF8C_eseP zb)$)rr=F>vm5H&UEZ$B?^3-}l`I@4goJuNWIVOOVJ}q{!GVp1Rp$r6L6nDHh*QmKU z@kz>Q3PrJMw&z`%IREn?I~l|Qca7Z8>Wqi-r(TCYCZb>CCr5EFon8$(Wf2xE9szocaHCoiO5$&^yc-1smjL+5=1<&5l|Jg``&tBc!?&r2<`GPBC@J^OB=FWr*SR7QH zo7M1!|8dgSC)9}|keMmP`A~WxROx8#!9asl{z7s{EWl$@%cDY596~i#a`Z8dHv_SP ztE^^tV^~+b0@RRWkr1zamGDHXm?Tj+nnov6_1Qv4zepw7JpUb);Qv9rR9Tt|)Fw|* zt(pQ9BKQT3OM^%;<#~(hj^UKq;!-BgGc(|Z%A-~TKjJmqUllJep_e|tZqbpCnM0~@h}+A>CXJVp38J9-&ep{0u+|adY9vZ5eQaugAydi1mCuRAezPMkdE0ImKj&x# zUg`P-`W{XF)hop47wU`;de+_28R&PdbY>v9Fn;ii5#*H6(NI8BX2!TnJWL3~8X1(~ z;Ay#K-@8(+yvr&&D-yYK%|^dDsw$Ikvp5)TcDTA+qW zPB4S&aJ&^5)I6*xd4mYCo?vax`+f;V$DC+W=!=bL_%yuSNuT z`keTeQ)Ra|G??b=^)0X49%4d*!N2898J%A4U}8nbPq>#I_9=-wTe&3fskHsW#pNe| z^J2~Rt4rKGdL3X^v^bf*CM9_6hfNJ(m)ttB(w5X26|y(ju6n<|yv4jf{7rJE!(g;9 z0HcrhCR#OjXc7zxCKBKutmB+wgoX`!0k+_W}Z5Bg!eTPwEq**_$TWVoj`$pPy&Ck!psVty&-4vpm398MpUHByylhc zbC!t*U4nf|8VbI_jK=?22TIndZJb2jBS}(!k&cnbmgG4~hchn{qCvwPBpJ$}PTNt_ zK{VNUJP3Xp>p2m#jOh`jpAbyeNklC{s_4VpR;}R^Ie#Xfo3Qv9yq;31zc#AT^RL zETculnRqBZVd+Vqy`ulzuD>GqD*ad6-r&%(eph+V7Lw#FEgnQCxI4aONQksPW16Vq zl7=gl9CN2w!wL^5BB%SMz&whQEICI)Hz91S>V)6cpEHk;+7a?32J<6y*xjuyL(Z!V zsIz6RlFIhDLEZlJ`P0cJP@V&7%`T=l6Q`}jB#=582UCKWLBR{xnwS*?)GPsi z2satpXLP^>nIEz}x||6Su6y!gh)+cSr&NYfjPX&p?`CX~LS!|e8~*^^AFFtlw`){@ zRLYa#iLKDB`=@5pV=%@tHRmdhIVa9O_80lWS(ClVjR9YLpS;_Ex`GTl!Fbz2M03j3Dt>^1Q(qitEiCe8Pui zAA4rw)G;|7Wyu}0;0(CJa+hAizs*+g9NN@5#x_8e)g%Qf5_uV5kBp=rq#f+wWl3>MPwE6p@JzE2}Anj?HB5%5tC zPET)c+>R)&^*MNTd$nDCLvR3U8z|=HdVRI87hjQ?l&54$4|h@qZ3Y5pHb~xAt?_^5 z_XQ4xj0b*;S?{*)W{Oe%yiA)P-(JPO+7Uq+%n-_%lf(Pv1;RM(PVGDrKS^RW)6|f- zN9p494T#m7#g@G71&~mt_hSyg?5o%4?33VTifb*ceLc-J?DoOmmEj%z=_$HDr)^^? zAB5y9!I%L|K~kQzfh!trZg&GBHN0;JWn{bY91Iqv|JGN#6*eHsBz6L-GFIoaNZ7Gd z)FHeFze~x>_qpI#vu%nY$_qc(&{B1}Yg3-kNj-Z*0p`sLs+ZW|kGf;l2KIE$fuAn< zr-uwE=tH94a_@SFjzel!Z#&%E0Ny;N-eF?TYtOZoIs)`WUW7(FD?)erTqz{^_(49Q zz&?$}8VPT5v%u`l&1SI%3SVK9+SPgoPGOc7$4k!pAw*0+DtT)h`ROI3$0V&@$$-S6 zYvS^ud|BuFM=vTKg?Q!h7l5>3qAFOHJdS^r@;-iF6XHxJ_fc+91fx#r;z{X50jU$p zd}Phg>@}CA#Ql>_2#fNHignH~9u`HPA_pgjew=4Y3os6e@w@pK{->d!8X{>w+C`uo zFJR&5h}`d2M#R*$DGY)*PPr`i|C2NM~`xqZZ9K z%^77FljF)-apegz8B{*FmzHWCZ_j|#q8?5aQY0LBf31w}%x@Bf3FGZTK-Y1|;2u9y zegJ25yTmwjY`DZi#4qGoaz+e|DNg2T#beAoO zzstVd7C^X~AD?W9rC-@OKNKLbO-%sFySxy8h`>D}uQ(|NA)X8M7aD_*I_7OPcA}G# zxzj2E#F2EJfAb&;>4B64+O3Xqid4#>HX5l-w*l;DtGo4b1#S0AQ-GgpMSu2O@#)9{ z>`&(JbpSi3z>?*5S+Q~KO=_AmG~%y^GkPvQT_9BF^c+PwI<`X#uu9gxc(IhCi*!AC zIvXP19bY{3%QX(IyskzEBMa>kl_&`P_$@3xjF003pLp^U>req*!(On}zi(05esjG8 z_a(}c61U8!$fwy2j#}` zEipUpum2^Ab7OHrsI!qud2+xu7F?#u#@6fO^Tp-bw$VF}REsa0iwcZ;dFCx7Y_ts= z0hjPb642-v_pgh7tvoNhc&r>8kUFrQ>vByW^n<6&(jAMd@NG!G^a_m7zi(F<7tif# zN9Wt?tHhgE9d64`Fhw04x2M+zOtJdQ)7Q%dxK4^9q-LF9FpO0Ut!hTHkdzo-;UQ^) zAC;fna2*K1mLUbgDsWy0){Z2#?`M*F#d&=P&HY_lkzlZA@PjB0LA+CV0yP5$C*I5L zx?)R)vBfOl@yJf@%O19z+E-ws!!9<8QiQi)b3PL7W7NAy(R75HdiT7)@CI5w z@G%HxP;O!%HMTl1CiV7e2%w&r_oD|PLV;Zp8GU8nIcBoFLn^$@9≻Q=jiga~CMy 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 Qv3mei 1) { + mexErrMsgTxt("messenger: too many outputs, I return a single bool"); + } /* Get the input command */ if(!(cmd = mxArrayToString(prhs[0]))) { mexErrMsgTxt("Cannot read the command"); } - + /* we'll return true on completion of valid command, else false */ + plhs[0] = mxCreateLogicalMatrix(1, 1); + p = mxGetLogicals(plhs[0]); + p[0] = 0; /* Initialize a new server session */ if (strcmp(cmd, "init") == 0) { char *socket_addr; - mxLogical *p; - /* Check if the input format is valid */ if (nrhs != 2) { - mexErrMsgTxt("Missing argument: socket address"); + mexErrMsgTxt("Usage: messenger('init', socket_addr)"); } if (!(socket_addr = mxArrayToString(prhs[1]))) { mexErrMsgTxt("Cannot read socket address"); } - - plhs[0] = mxCreateLogicalMatrix(1, 1); - p = mxGetLogicals(plhs[0]); - if (!initialized) { if (!initialize(socket_addr)) { p[0] = 1; mexPrintf("Socket created at: %s\n", socket_addr); } else { - p[0] = 0; mexErrMsgTxt("Socket creation failed."); } } else { mexErrMsgTxt("One socket has already been initialized."); } - - return; - /* Listen over an existing socket */ } else if (strcmp(cmd, "listen") == 0) { int byte_recvd; char *recv_buffer = mxCalloc(BUFLEN, sizeof(char)); zmq_pollitem_t polls[] = {{socket_ptr, 0, ZMQ_POLLIN, 0}}; - + if (!checkInitialized()) return; - + /* allow MATLAB to draw its graphics every 20ms */ while (zmq_poll(polls, 1, 20000) == 0) { mexEvalString("drawnow"); @@ -116,12 +113,10 @@ void mexFunction(int nlhs, mxArray *plhs[], } else if (byte_recvd > BUFLEN){ mexErrMsgTxt("Receiver buffer overflow. Message truncated"); } else { - sprintf(recv_buffer, "Failed to receive a message due to ZMQ error %s", strerror(errno)); + sprintf(recv_buffer, "Failed to receive a message due to ZMQ error %s", strerror(errno)); mexErrMsgTxt(recv_buffer); } - - return; - + p[0] = 1; /* Send a message out */ } else if (strcmp(cmd, "respond") == 0) { size_t msglen; @@ -141,21 +136,17 @@ void mexFunction(int nlhs, mxArray *plhs[], plhs[0] = mxCreateLogicalMatrix(1, 1); p = mxGetLogicals(plhs[0]); - if (msglen == zmq_send(socket_ptr, msg_out, msglen, 0)) { + if (msglen == (size_t) zmq_send(socket_ptr, msg_out, msglen, 0)) { p[0] = 1; } else { - p[0] = 0; mexErrMsgTxt("Failed to send message due to ZMQ error"); } - - return; - /* Close the socket and context */ } else if (strcmp(cmd, "exit") == 0) { cleanup(); - - return; + p[0] = 1; } else { mexErrMsgTxt("Unidentified command"); } + return; } diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 903354c..99c89c5 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -120,8 +120,8 @@ class _Session(object): this directly; rather, use the Matlab or Octave subclasses. """ - def __init__(self, executable, socket_addr=None, - id='python-matlab-bridge', log=False, maxtime=60, + def __init__(self, executable=None, socket_addr=None, + id='python-matlab-bridge', log=False, maxtime=15, platform=None, startup_options=None, loglevel=logging.WARNING): """ @@ -146,7 +146,7 @@ def __init__(self, executable, socket_addr=None, maxtime : float The maximal time to wait for a response from the session (optional, - Default is 10 sec) + Default is 15 sec) platform : string The OS of the machine on which this is running. Per default this @@ -186,7 +186,7 @@ def __init__(self, executable, socket_addr=None, atexit.register(self.stop) def _program_name(self): # pragma: no cover - raise NotImplemented + raise NotImplementedError def _preamble_code(self): # suppress warnings while loading the path, in the case of @@ -199,7 +199,7 @@ def _preamble_code(self): "cd('%s');" % os.getcwd()] def _execute_flag(self): # pragma: no cover - raise NotImplemented + raise NotImplementedError def _run_server(self): code = self._preamble_code() @@ -221,10 +221,14 @@ def start(self): self.socket_addr = self.socket_addr + ":%s"%rndport # Start the MATLAB server in a new process - self.logger.info("Starting %s on ZMQ socket %s" \ - % (self._program_name(), self.socket_addr)) + self.logger.info("Starting ZMQ socket %s" \ + % (self.socket_addr, )) self.logger.info("Send 'exit' command to kill the server") - self._run_server() + + if self.executable is not None: + self.logger.info("Launching %s, sending ZMQ 'exit' will kill it." \ + % (self._program_name(), )) + self._run_server() # Start the client self.socket.connect(self.socket_addr) @@ -426,8 +430,9 @@ def _bind_method(self, name, unconditionally=False): class Matlab(_Session): def __init__(self, executable='matlab', socket_addr=None, - id='python-matlab-bridge', log=False, maxtime=60, - platform=None, startup_options=None): + id='python-matlab-bridge', log=False, maxtime=15, + platform=None, startup_options=None, + loglevel=logging.WARNING): """ Initialize this thing. @@ -436,7 +441,7 @@ def __init__(self, executable='matlab', socket_addr=None, executable : str A string that would start Matlab at the terminal. Per default, this - is set to 'matlab', so that you can alias in your bash setup + is set to 'matlab'. socket_addr : str A string that represents a valid ZMQ socket address, such as @@ -450,7 +455,7 @@ def __init__(self, executable='matlab', socket_addr=None, maxtime : float The maximal time to wait for a response from matlab (optional, - Default is 10 sec) + Default is 15 sec) platform : string The OS of the machine on which this is running. Per default this @@ -470,7 +475,7 @@ def __init__(self, executable='matlab', socket_addr=None, if log: startup_options += ' -logfile ./pymatbridge/logs/matlablog_%s.txt' % id super(Matlab, self).__init__(executable, socket_addr, id, log, maxtime, - platform, startup_options) + platform, startup_options, loglevel) def _program_name(self): return 'MATLAB' @@ -481,8 +486,9 @@ def _execute_flag(self): class Octave(_Session): def __init__(self, executable='octave', socket_addr=None, - id='python-matlab-bridge', log=False, maxtime=60, - platform=None, startup_options=None): + id='python-matlab-bridge', log=False, maxtime=15, + platform=None, startup_options=None, + loglevel=logging.WARNING): """ Initialize this thing. @@ -505,7 +511,7 @@ def __init__(self, executable='octave', socket_addr=None, maxtime : float The maximal time to wait for a response from octave (optional, - Default is 10 sec) + Default is 15 sec) platform : string The OS of the machine on which this is running. Per default this From 08af97a3aab4674da5fbfdbf308c50d561217eed Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Tue, 25 Aug 2015 05:16:20 -0400 Subject: [PATCH 4/8] FEATURE: connect to existing matlab sessions Only compiled for mexa64. Also, miscelaneous PEP8 and doc updates and logging now includes _Session output. --- pymatbridge/matlab/matlabserver.m | 27 ++++++- pymatbridge/matlab/util/finish.m | 6 ++ pymatbridge/messenger/make.py | 8 +- pymatbridge/messenger/mexa64/messenger.mexa64 | Bin 11064 -> 11112 bytes pymatbridge/messenger/src/messenger.c | 4 + pymatbridge/pymatbridge.py | 74 +++++++++--------- pymatbridge/tests/test_run_code.py | 2 +- 7 files changed, 77 insertions(+), 44 deletions(-) create mode 100644 pymatbridge/matlab/util/finish.m diff --git a/pymatbridge/matlab/matlabserver.m b/pymatbridge/matlab/matlabserver.m index bad3203..c34dbfb 100644 --- a/pymatbridge/matlab/matlabserver.m +++ b/pymatbridge/matlab/matlabserver.m @@ -1,10 +1,15 @@ function matlabserver(socket_address, exit_when_done) %MATLABSERVER Take Commands from Python via ZMQ +% matlabserver(socket_address, exit_when_done) % This function takes a socket address as input and initiates a ZMQ session -% over the socket. I then enters the listen-respond mode until it gets an -% "exit" command +% over the socket. It then enters the listen-respond mode until it gets an +% "exit" command, at which point it returns (or exits if exit_when_done), or +% until it gets a "separate" command, at which point it launches the MATLAB +% desktop client and returns. +% -json_startup +initialize_environment; +json_startup; messenger('init', socket_address); if nargin > 1 && exit_when_done @@ -28,10 +33,15 @@ function matlabserver(socket_address, exit_when_done) resp = pymat_eval(req); messenger('respond', resp); + case {'separate'} + desktop; %no-op if desktop is already up + c = onCleanup(@stop_messenger); + break; + otherwise messenger('respond', 'i dont know what you want'); - end + end end end %matlabserver @@ -44,3 +54,12 @@ function stop_messenger_and_exit() function stop_messenger() messenger('exit'); end + +function initialize_environment() + if ~exist('json_startup', 'file') + [pathstr, ~, ~] = fileparts(mfilename('fullpath')); + old_warning_state = warning('off','all'); + addpath(genpath(pathstr)); + warning(old_warning_state); + end +end diff --git a/pymatbridge/matlab/util/finish.m b/pymatbridge/matlab/util/finish.m new file mode 100644 index 0000000..7f2d2cd --- /dev/null +++ b/pymatbridge/matlab/util/finish.m @@ -0,0 +1,6 @@ +% make sure socket gets closed no matter how MATLAB exists (sans crash) +if exist('messenger', 'file') + if messenger('check') + messenger('exit'); + end +end diff --git a/pymatbridge/messenger/make.py b/pymatbridge/messenger/make.py index 20045bc..7c68011 100755 --- a/pymatbridge/messenger/make.py +++ b/pymatbridge/messenger/make.py @@ -172,7 +172,7 @@ def get_config(): def do_build(make_cmd, messenger_exe): - print('Building %s...' % messenger_exe) + print('Building {}...'.format(messenger_exe)) print(make_cmd) messenger_dir = get_messenger_dir() subprocess.check_output(shlex.split(make_cmd), shell=use_shell) @@ -188,7 +188,7 @@ def do_build(make_cmd, messenger_exe): def build_octave(): paths = "-L%(octave_lib)s -I%(octave_inc)s -L%(zmq_lib)s -I%(zmq_inc)s" paths = paths % get_config() - make_cmd = "mkoctfile --mex %s -lzmq ./src/messenger.c" % paths + make_cmd = "mkoctfile --mex {} -lzmq ./src/messenger.c".format(paths) do_build(make_cmd, 'messenger.mex') @@ -264,10 +264,10 @@ def build_matlab(static=False): # Build the mex file mex = esc(os.path.join(matlab_bin, "mex")) paths = "-L%(zmq_lib)s -I%(zmq_inc)s" % cfg - make_cmd = '%s -O %s -lzmq ./src/messenger.c' % (mex, paths) + make_cmd = '{} -O {} -lzmq ./src/messenger.c'.format(mex, paths) if static: make_cmd += ' -DZMQ_STATIC' - do_build(make_cmd, 'messenger.%s' % extension) + do_build(make_cmd, 'messenger.{}'.format(extension)) if __name__ == '__main__': diff --git a/pymatbridge/messenger/mexa64/messenger.mexa64 b/pymatbridge/messenger/mexa64/messenger.mexa64 index a5f91b9bc975486f48883f878df923293fb94e6a..df6366ada43bbfcb5dfe10ba7f376f1fb8175fa1 100755 GIT binary patch delta 2504 zcmZXWYitx%6vyw(cH8cDpKZ4@eX(0?*=-wXL0ekM(k_~2BsPI2Adf;Rgj&IbN2sp^ z3N9d}7P>to0`UX&gCRzfLjABMMwiyWs;CtGfLgUQVrEhkF(gu;vYvBywvIT-&e`Ap zo^$Tw+?l!2HR_uFfEXx^RMal|AeZqgWf}8v7Vw^qzahPSC^xAOMIwH8To>cI7>|73 z=02Ij1KFH~df|oKuU;95ABoxn-`=-dHXOXMsQ>xqtHU1&6Qbxh4G*M!Eeb=>o*{Kd z^;DV3BbyA1B8SeZ#gHM6MXDyUu zN)XSq*-Zwu6IP)*gR0q}z6u9X4OndU41;@+1~m@5QI)MWd$vKn0fQDPe^Q?fjYF>&_fcUSTW=d$B}42C2v(_%>8nn$ z`G(d^gI;LRmGJMGO0W4RSZST#eck3`iL&qT?({a|KjKbu)+Q5pm3=`>`%AmVd6ZZr zj&Z(7Oe?JoalSyDMtqj@`^2>7T0iG^iD@5b2Z+1N&X7Pu*LHD-0b<%f+Gftjh^Y|T zO3rT(TZtPvzfMdg(W*J`A*TJP`8aPUwiCNJZy|ONGvw|>*?JPFPTK8)lfUjxq{e3+|PMFaUSu3hl!Ge(ibd2Md>q> zS*?`MC_T57@QmYS4;Cpe3tYCxGH+&)N6ing)aDbuhgREy^%0aGdakH|8I?ZIER@(KVFK#yKHI0*@8KW29GEKx+w7(50EH3CevwD@ z)hx!sE4@qAV}D~X+9|SqK_ALd@>4@xFmJ&?rMFI9o@{r{wU?l9#ryg)r|8f>@ta7AmBo?p~ToGm7jLzmM9j7RTvngf6F*3e(#$)}3v>H>>ASV7wB%VXtih+C4UPSv2S`F>Tq(dafFC2xD9KSd@15-H*ggmh1 zdWAA5&-HtEp_`xHJ|Tzei1@TUz4?Uccv_$Nt@Ln)$zy_@xtH8BJ-c|NUX4Q#@_2

lVxZrY{Jmfg>Ct={)(m-EL|P=6Bwm;7gb?r zp`t2Fk?xZQy9>QgZAvo>%*D>ZU=a<#E#<(~q9<3RGVwHcyT>z0?9pM+ZW5WDrB)^N z*|niA;P8AhtSD~66^Rr}?T;o6>P`WDNVF^I3i0vFtXkKTDq~H${%D>So(ETI*fK96 z(BZ=Bb7Y8qGZgq2T2n)l-O%E%bqDnNrRt#~CbSV2Ne!_yenu zQiqi&M37?o(Ip1sNONZ*aF;K!rj9AH1TE#YmPY-n+XxYCOf95KhU?|E*3^`+oY@u2 eM5=1VGNA?{6%9fij8`;RSxIsk0wyRZoA(do&zP|Q delta 2511 zcmZ9OYiv_x7{}lDbluvnUEAHxZqN=GyD8fU8ylo-9WajzB!C$La&c}<&;UZ18X{~^ zF&m?@@epl@Q831+kp!G1n=!gE0xTLC#t$YC9YpaQ$A=*w7_d>F=j}Q3$eZ*${r#WI zdp#F*ZQt7N0%>A)PfRs7}D!C#6`EVw<{w*33c=k2X+v!6K{F75rA-;ks!srPu?PZDp3#ss;oLoa2E z6=Chp*q>23)~}%(tft3w8lycHDz4)u-DA=xOnSOWXR-QlKf#-6)BB>DS*Dl*$hFCt zrMfo(Jr}(P#^kk{yb2sd?<$j*@{P6*&e>$Bv^iboIc$TQsBS|w(FjEQCV1^K zL{N2^)D8%udIeRtNsYj6R3}hPHmRS%X;cgBPM5xa!q*4aP+fK@C+#y4U-T73e zN&VF{k8G2!gzngsF6$Xs<(Sp>vD43@d7t3b?W@6m#M>xX8;xSiJ4sCEOB)ezLG~A@y4)8c<+s=uI@-JYq)6YMLjn26n8c|}c`AR78yaWF=VAfuz z(iNyhU0sPisS3_!(nzbfsn=!J*?OTR=m(>e5 zoKI(rVNs=1`i{0z>Ab80R#d`iKSHic=3hdU%kMmfA&0NGCSk1zY<109--JRxRsTk0 zh07hd@k-ZX^~e+^qrF8o9GF0NAH}IbAz0^AXI+(QZOs4Iv_BVx%T^2Aa+Q^M@sz12 zCZo~NBYwb%Wok$Wq3~?iex^Dow{u82JkUzcE~rf^ov{ZiDV@LF`_%pZ1^4lR$_uRr zf}u$X7b+Y`f@4WJjY}{>oqU8<17&tUu4uW^`MX+-v&BLg!AtQR^D(-N;^tsy+7#Xm zC@dsl2otqCG2trS73xf9fYV*f&qJlV*!D&&a0Fg;&*RU*Nq6DQGD`a6 zVKh2cte!!Gi*Or_(s@A%moI~x?isEdSg4{7p^F(W1UCjZ1vdw`Y#O3;dWwWD+UP&E<$HRIyep)o4Li3tZ{4|fd&~B% z&HkocJ9aegY-WsSTNamM6m{&pAC0a+dlc*LMf*3}571`f*uEtl22=8RA80B0lIH;= zr_SYdP?hTA4X{2n-**bbr*K>>nB;j!TIz~ldCc-|T-bUvK9pb?li;J&LGQT!HZdND z?XWw|$2*`WZ5Q|S^7LxXBM_9YN~3abaz=}kX(V9T>1JX0n1G%vnK#2=R+`1bB4}lN z2i`?WW*ul{-YqB_4`*-5RP`q{ zZii?sc;$?G2} zE_J&8WSupl4lYh_)yycTZ;VC$qy%Xy4(jvgIgFu=d*D!hg_qGIn3`^zU^u_T{@?ct zFIZ@g=wCIsw@A}pL2wYs_-5&VL8NZ|3#J=*A?6vMMi4Aq=rHzBO@~8;6?Tt4OAid9 u(^$w+8Kj~LhcP8phT5Vf5}HFrOSlyVi>kQ|cyYC3#4kq83M^2cH}hW<`=t;7 diff --git a/pymatbridge/messenger/src/messenger.c b/pymatbridge/messenger/src/messenger.c index e90ff03..a25212d 100644 --- a/pymatbridge/messenger/src/messenger.c +++ b/pymatbridge/messenger/src/messenger.c @@ -145,6 +145,10 @@ void mexFunction(int nlhs, mxArray *plhs[], } else if (strcmp(cmd, "exit") == 0) { cleanup(); p[0] = 1; + } else if (strcmp(cmd, "check") == 0) { + if (initialized) { + p[0] = 1; + } } else { mexErrMsgTxt("Unidentified command"); } diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 99c89c5..5de4747 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -121,7 +121,7 @@ class _Session(object): """ def __init__(self, executable=None, socket_addr=None, - id='python-matlab-bridge', log=False, maxtime=15, + id='python-matlab-bridge', log="", maxtime=15, platform=None, startup_options=None, loglevel=logging.WARNING): """ @@ -141,7 +141,7 @@ def __init__(self, executable=None, socket_addr=None, id : str An identifier for this instance of the pymatbridge. - log : str | None + log : str Location to log to, defaults to sys.stdout maxtime : float @@ -174,7 +174,7 @@ def __init__(self, executable=None, socket_addr=None, self.socket_addr = socket_addr self.context = None self.socket = None - self.logger = logging.getLogger("pymatbridge") + self.logger = logging.getLogger(self.id) self.logger.setLevel(self.loglevel) if self.log: self.loghandler = logging.FileHandler(self.log) @@ -188,26 +188,15 @@ def __init__(self, executable=None, socket_addr=None, def _program_name(self): # pragma: no cover raise NotImplementedError - def _preamble_code(self): - # suppress warnings while loading the path, in the case of - # overshadowing a built-in function on a newer version of - # Matlab (e.g. isrow) - return ["old_warning_state = warning('off','all');", - "addpath(genpath('%s'));" % MATLAB_FOLDER, - "warning(old_warning_state);", - "clear('old_warning_state');", - "cd('%s');" % os.getcwd()] - def _execute_flag(self): # pragma: no cover raise NotImplementedError def _run_server(self): - code = self._preamble_code() - code.extend([ - "matlabserver('%s')" % self.socket_addr - ]) + code = "cd('{}'); matlabserver('{}', true);".format( + MATLAB_FOLDER, self.socket_addr) command = '%s %s %s "%s"' % (self.executable, self.startup_options, - self._execute_flag(), ','.join(code)) + self._execute_flag(), code) + self.logger.info("Running: %s", command) subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) @@ -221,13 +210,12 @@ def start(self): self.socket_addr = self.socket_addr + ":%s"%rndport # Start the MATLAB server in a new process - self.logger.info("Starting ZMQ socket %s" \ - % (self.socket_addr, )) - self.logger.info("Send 'exit' command to kill the server") + self.logger.info("Starting ZMQ socket %s", self.socket_addr) + #self.logger.info("Run _Session.stop/separate to kill the server.") if self.executable is not None: - self.logger.info("Launching %s, sending ZMQ 'exit' will kill it." \ - % (self._program_name(), )) + self.logger.info("Launching %s, sending ZMQ 'exit' will kill it.", \ + self._program_name()) self._run_server() # Start the client @@ -239,7 +227,7 @@ def start(self): if not self.is_connected(): raise ValueError("%s failed to start" % self._program_name()) - self.logger.info("%s started and connected!" % self._program_name()) + self.logger.info("%s started and connected!", self._program_name()) self.set_plot_settings() return self @@ -249,6 +237,15 @@ def _response(self, **kwargs): resp = self.socket.recv_string() return resp + # open desktop matlab and disconnect + def separate(self): + if not self.started: + raise ValueError('Session not started, use start()') + if self._response(cmd='separate') == 'exit': + self.logger.info("%s split off", self._program_name()) + self.started = False + return True + # Stop the Matlab server def stop(self): if not self.started: @@ -256,7 +253,7 @@ def stop(self): # Matlab should respond with "exit" if successful if self._response(cmd='exit') == "exit": - self.logger.info("%s closed" % self._program_name()) + self.logger.info("%s closed", self._program_name()) self.started = False return True @@ -337,6 +334,12 @@ def run_code(self, code): """ return self.run_func('evalin', 'base', code, nargout=0) + def _init_run_code(self): + """Code to run at start of headless session to ensure sane + environment.""" + code = "cd('%s')" % os.getcwd() + return self.run_code(code) + def get_variable(self, varname, default=None): resp = self.run_func('evalin', 'base', varname) return resp['result'] if resp['success'] else default @@ -445,13 +448,14 @@ def __init__(self, executable='matlab', socket_addr=None, socket_addr : str A string that represents a valid ZMQ socket address, such as - "ipc:///tmp/pymatbridge", "tcp://127.0.0.1:55555", etc. + "ipc:///tmp/pymatbridge", "tcp://127.0.0.1:55555", etc. Default is + to choose a random IPC file name, or a random socket (for TCP). id : str An identifier for this instance of the pymatbridge. - log : bool - Whether to save a log file in some known location. + log : str + Location to log to, defaults to sys.stdout maxtime : float The maximal time to wait for a response from matlab (optional, @@ -473,7 +477,7 @@ def __init__(self, executable='matlab', socket_addr=None, else: startup_options = ' -nodesktop -nosplash' if log: - startup_options += ' -logfile ./pymatbridge/logs/matlablog_%s.txt' % id + startup_options += ' -logfile "{}"'.format(log) super(Matlab, self).__init__(executable, socket_addr, id, log, maxtime, platform, startup_options, loglevel) @@ -497,7 +501,7 @@ def __init__(self, executable='octave', socket_addr=None, executable : str A string that would start Octave at the terminal. Per default, this - is set to 'octave', so that you can alias in your bash setup + is set to 'octave'. socket_addr : str A string that represents a valid ZMQ socket address, such as @@ -529,12 +533,12 @@ def __init__(self, executable='octave', socket_addr=None, def _program_name(self): return 'Octave' - def _preamble_code(self): - code = super(Octave, self)._preamble_code() - if self.log: - code.append("diary('./pymatbridge/logs/octavelog_%s.txt')" % self.id) + def _init_run_code(self): + code = super(Octave, self)._init_run_code() code.append("graphics_toolkit('gnuplot')") - return code + if self.log: + code.append("diary('{}')".format(self.id)) + self.run_code(code) def _execute_flag(self): return '--eval' diff --git a/pymatbridge/tests/test_run_code.py b/pymatbridge/tests/test_run_code.py index e4255e7..b2c7b6f 100644 --- a/pymatbridge/tests/test_run_code.py +++ b/pymatbridge/tests/test_run_code.py @@ -71,7 +71,7 @@ def test_stack_traces(self): this_dir = os.path.abspath(os.path.dirname(__file__)) test_file = os.path.join(this_dir, 'test_stack_trace.m') - self.mlab.run_code("addpath('%s')" % this_dir) + self.mlab.run_code("addpath('{}')".format(this_dir)) response = self.mlab.run_code('test_stack_trace(10)') npt.assert_equal(response['stack'], [ {'name': 'baz', 'line': 14, 'file': test_file}, From 7fba5c89f6bd64ed07e660d7fc10c8a5d1b0c088 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Tue, 25 Aug 2015 05:53:42 -0400 Subject: [PATCH 5/8] BF: always close sockets, don't double-close --- pymatbridge/matlab/matlabserver.m | 17 ++++++----------- pymatbridge/messenger/src/messenger.c | 8 ++++++-- pymatbridge/pymatbridge.py | 15 ++++++++++----- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/pymatbridge/matlab/matlabserver.m b/pymatbridge/matlab/matlabserver.m index c34dbfb..9f9b9aa 100644 --- a/pymatbridge/matlab/matlabserver.m +++ b/pymatbridge/matlab/matlabserver.m @@ -12,11 +12,7 @@ function matlabserver(socket_address, exit_when_done) json_startup; messenger('init', socket_address); -if nargin > 1 && exit_when_done - c = onCleanup(@stop_messenger_and_exit); -else - c = onCleanup(@stop_messenger); -end +c = onCleanup(@stop_messenger); while(1) msg_in = messenger('listen'); @@ -35,22 +31,21 @@ function matlabserver(socket_address, exit_when_done) case {'separate'} desktop; %no-op if desktop is already up - c = onCleanup(@stop_messenger); break; otherwise - messenger('respond', 'i dont know what you want'); + messenger('respond', 'Unknown command recieved by matlabserver via ZMQ.'); end end -end %matlabserver - -function stop_messenger_and_exit() - messenger('exit'); +if nargin > 1 && exit_when_done + c.task(); exit; end +end %matlabserver + function stop_messenger() messenger('exit'); end diff --git a/pymatbridge/messenger/src/messenger.c b/pymatbridge/messenger/src/messenger.c index a25212d..b9443d1 100644 --- a/pymatbridge/messenger/src/messenger.c +++ b/pymatbridge/messenger/src/messenger.c @@ -143,8 +143,12 @@ void mexFunction(int nlhs, mxArray *plhs[], } /* Close the socket and context */ } else if (strcmp(cmd, "exit") == 0) { - cleanup(); - p[0] = 1; + if (initialized) { + cleanup(); + p[0] = 1; + } else { + mexErrMsgTxt("No open socket to exit."); + } } else if (strcmp(cmd, "check") == 0) { if (initialized) { p[0] = 1; diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 5de4747..289fd2a 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -241,8 +241,11 @@ def _response(self, **kwargs): def separate(self): if not self.started: raise ValueError('Session not started, use start()') - if self._response(cmd='separate') == 'exit': - self.logger.info("%s split off", self._program_name()) + if self._response(cmd='separate') != 'exit': + raise ValueError('Failed to separate from {}'.format(self._program_name)) + self.socket.close() + self.context.term() + self.logger.info("%s split off", self._program_name()) self.started = False return True @@ -252,9 +255,11 @@ def stop(self): return True # Matlab should respond with "exit" if successful - if self._response(cmd='exit') == "exit": - self.logger.info("%s closed", self._program_name()) - + if self._response(cmd='exit') != "exit": + raise ValueError("Failed to stop {}".format(self._program_name)) + self.socket.close() + self.context.term() + self.logger.info("%s closed", self._program_name()) self.started = False return True From c339e8e3c60cbfa22fa44df18b6b348c017f8a09 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Tue, 25 Aug 2015 11:31:06 -0400 Subject: [PATCH 6/8] BF: lab.separate() now works --- pymatbridge/matlab/matlabserver.m | 7 +++++-- pymatbridge/messenger/mexa64/messenger.mexa64 | Bin 11112 -> 11136 bytes pymatbridge/messenger/src/messenger.c | 17 +++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pymatbridge/matlab/matlabserver.m b/pymatbridge/matlab/matlabserver.m index 9f9b9aa..b722ac3 100644 --- a/pymatbridge/matlab/matlabserver.m +++ b/pymatbridge/matlab/matlabserver.m @@ -31,6 +31,7 @@ function matlabserver(socket_address, exit_when_done) case {'separate'} desktop; %no-op if desktop is already up + exit_when_done = false; break; otherwise @@ -40,14 +41,16 @@ function matlabserver(socket_address, exit_when_done) end if nargin > 1 && exit_when_done - c.task(); + %c.task(); % already executed by "finish" exit; end end %matlabserver function stop_messenger() - messenger('exit'); + if messenger('check') + messenger('exit'); + end end function initialize_environment() diff --git a/pymatbridge/messenger/mexa64/messenger.mexa64 b/pymatbridge/messenger/mexa64/messenger.mexa64 index df6366ada43bbfcb5dfe10ba7f376f1fb8175fa1..4bf464fc007f5d742ee9aabaa0dc92099c058fc2 100755 GIT binary patch delta 2060 zcmYk7du&rx7{Kr8*0tT*-F0hsyZ4>CwPVOi1h+w&?ZP5=%FHwY$7D?9;VU|nRe?yh zSu}K`vhDi=0z{BMjOa{&naB*9jv*Uh!XQ2tf~1m|v<{VtkDC#JLM4gk&J>Mb7liaO9uAH_DJG-#1Z$Afivy)p&Xtg+>KDn zo_CZiwqzU#@2UvzyZ-%tDSx){&8@!S&)8)HD<2+6J#SzW@T^JlO(rUt<28hCYy8CH zijR==N%l%{pN44`xNVZ)8#pWQn^}UnW~*&;!kREM1wv?7 zqursiM)(r#PPBV;)&#$zJ%RQkowY!bMS^Q+kLzp(G@&iDSZxzJYlCfQm!qB1SrI-( z`xe@$&St}pXot|w>Z}87>Cy_PZl&hL{i4-KI-jNUE}eJje4ftBFh9MR{RPeG_jUbZ zl?AQr8n$9dJ)RN2K)JDqhDX^|Vn#g4`4X{#IL!GXaSHJf&S!~Ji4SrBxtEw;u$avGZDJd7 z7U!+RnZyEemsa*V36aG0J7~&YBF-X?aDI;1PCUuEl{lL?%=t-T`aEJsI6q2E-%#uz z=Ox7S7-RjM7ZK+Yci+)uO%3^K(WoIKg%xVWtQ!1T4a{b~;Z*yK^FXvdV7{3_2@C&# z#a5Zkz-nuG>tR%a->n9G2h#Cu1$OGRs(rp*^wB09D5~OO+D;q0QLr0h8|auPmTbp? z1uW*Xo3Un~PVi^M)?nrav7`ZgpK%pjwm#^6h(-(=zM?0o2FIg-71fZ_5!Y()3d!GY zYuYe2Q?OV15 zKF=(_zZ_pDOlillqGSJQTFe<2|6qt7Bau2NRUS9X zsex0jrqtF>EKm?r^ zPoiT3{+K}3l)@^S3APL118l=^p^)k;QV!fIT!6Lb7g5c|qAFGcTZ)$9Bu9&+yA^pk zYEpiH21@=e~_CQK*hj2Fe|~c~yEp9)|9a2uT)+Fb#-TMUe;WOoO<9;Snk@Ro!cx#}ms->LdX8KT zq2HCe@yNMx3VMNMDW}t%oVipUgK)+!1;QrRZ*m*p7P?I)cecr03n7OT*pzqe=vYne zR%mlb?jDnCgM|(W_B&keev@j4E>usVI%HCvFo^0Os2(<{rSKi9RZf>XWm4VnC#ow@ z&6rdXs+|(Njp~F+odqjVJ%;MEN%g`mrxfs+W`EP>5>X| z1y+^J>$~U*3P$ZEjN;rV-Vtx5zWTI*zuF&&X?y4soX-+lh%=l|5YvOyQ=E?z7ZD%k z{5i3Wc!={S#PnMAe&W8`LnP45^d6otOicSh-^6(zG3^0;73X(|ONgVK-y$w0Zs5F~ zn6{T5N_weF6ZxUR5;$pfk*tVj; zZbQgbA=|M^yhZ3O)iHq?5!fOwW^p(qZehh>h*f>! zo&l^Ii{H24k_VgHsn@Q1xMV+{p7?GS?bd-^4o$*ZYT_KfpTUgQ#P_FYGoPlQ?d0xw zYr?KQ;O6-;lySM2S0rv=;SqXZ11;JSG}RZg>e3&3?Xe3*eKl-m8`@SHw-~*d&N15I zD9N;r#MRrMiU-e%!2>*RwLb^y-ImRJ^}&sr{|;1*IEqt99) zWFS;2VJE-UC&}V-ZdFU=;e3U{ zffR$rITAF?aXeDHo%iz#(b2X!2E*g7EhyTV0^Ldabs)upd(4V3c75DVqQ6M`04FaCmwkP>-4UmB`Rh--6F` T1mj|u#MlIZ1uaZ~js?np4<1p> diff --git a/pymatbridge/messenger/src/messenger.c b/pymatbridge/messenger/src/messenger.c index b9443d1..84e8814 100644 --- a/pymatbridge/messenger/src/messenger.c +++ b/pymatbridge/messenger/src/messenger.c @@ -71,7 +71,7 @@ void mexFunction(int nlhs, mxArray *plhs[], /* we'll return true on completion of valid command, else false */ plhs[0] = mxCreateLogicalMatrix(1, 1); p = mxGetLogicals(plhs[0]); - p[0] = 0; + p[0] = false; /* Initialize a new server session */ if (strcmp(cmd, "init") == 0) { char *socket_addr; @@ -84,7 +84,7 @@ void mexFunction(int nlhs, mxArray *plhs[], } if (!initialized) { if (!initialize(socket_addr)) { - p[0] = 1; + p[0] = true; mexPrintf("Socket created at: %s\n", socket_addr); } else { mexErrMsgTxt("Socket creation failed."); @@ -116,12 +116,11 @@ void mexFunction(int nlhs, mxArray *plhs[], sprintf(recv_buffer, "Failed to receive a message due to ZMQ error %s", strerror(errno)); mexErrMsgTxt(recv_buffer); } - p[0] = 1; + p[0] = true; /* Send a message out */ } else if (strcmp(cmd, "respond") == 0) { size_t msglen; char *msg_out; - mxLogical *p; /* Check if the input format is valid */ if (nrhs != 2) { @@ -133,11 +132,8 @@ void mexFunction(int nlhs, mxArray *plhs[], msglen = mxGetNumberOfElements(prhs[1]); msg_out = mxArrayToString(prhs[1]); - plhs[0] = mxCreateLogicalMatrix(1, 1); - p = mxGetLogicals(plhs[0]); - if (msglen == (size_t) zmq_send(socket_ptr, msg_out, msglen, 0)) { - p[0] = 1; + p[0] = true; } else { mexErrMsgTxt("Failed to send message due to ZMQ error"); } @@ -145,13 +141,14 @@ void mexFunction(int nlhs, mxArray *plhs[], } else if (strcmp(cmd, "exit") == 0) { if (initialized) { cleanup(); - p[0] = 1; + p[0] = true; + initialized = 0; } else { mexErrMsgTxt("No open socket to exit."); } } else if (strcmp(cmd, "check") == 0) { if (initialized) { - p[0] = 1; + p[0] = true; } } else { mexErrMsgTxt("Unidentified command"); From f8e9611ab048adf6b6b8b36e22d257c2e8b2cd68 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Thu, 10 Sep 2015 07:27:08 -0700 Subject: [PATCH 7/8] BF: matlab only opened if executable is available --- pymatbridge/pymatbridge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index 289fd2a..d1ea34d 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -213,7 +213,7 @@ def start(self): self.logger.info("Starting ZMQ socket %s", self.socket_addr) #self.logger.info("Run _Session.stop/separate to kill the server.") - if self.executable is not None: + if self.executable: self.logger.info("Launching %s, sending ZMQ 'exit' will kill it.", \ self._program_name()) self._run_server() From 26d3119fd8a4a0ade1f8281c19b4a6f6136acef1 Mon Sep 17 00:00:00 2001 From: Bruno Beltran Date: Thu, 17 Sep 2015 18:35:45 -0700 Subject: [PATCH 8/8] BF: inf/-inf/nan now work with get_variable --- pymatbridge/matlab/util/json_v0.2.2/json/json_dump.m | 12 ++++++++---- pymatbridge/matlab/util/pymat_eval.m | 2 +- pymatbridge/pymatbridge.py | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pymatbridge/matlab/util/json_v0.2.2/json/json_dump.m b/pymatbridge/matlab/util/json_v0.2.2/json/json_dump.m index c085226..f65fa28 100644 --- a/pymatbridge/matlab/util/json_v0.2.2/json/json_dump.m +++ b/pymatbridge/matlab/util/json_v0.2.2/json/json_dump.m @@ -106,7 +106,7 @@ double_struct = struct; double_struct.ndarray = 1; value = double(value); - if isreal(value) + if isreal(value) double_struct.data = base64encode(typecast(value(:), 'uint8')); else double_struct.real = base64encode(typecast(real(value(:)), 'uint8')); @@ -142,9 +142,13 @@ obj.put(dump_data_(value{i}, options)); end elseif isnumeric(value) - if isreal(value) + if ~isfinite(value) + json_non_finite = struct; + json_non_finite.json_non_finite = lower(num2str(value)); + obj = dump_data_(json_non_finite, options); + elseif isreal(value) obj = value; - % Encode complex number as a struct + % Encode finite complex number as a struct else complex_struct = struct; complex_struct.real = real(value); @@ -158,7 +162,7 @@ keys = fieldnames(value); for i = 1:length(keys) try - obj.put(keys{i},dump_data_(value.(keys{i}), options)); + obj.put(keys{i}, dump_data_(value.(keys{i}), options)); catch ME obj.put(keys{i}, dump_data_(ME.message, options)) end diff --git a/pymatbridge/matlab/util/pymat_eval.m b/pymatbridge/matlab/util/pymat_eval.m index f38856f..6f19672 100644 --- a/pymatbridge/matlab/util/pymat_eval.m +++ b/pymatbridge/matlab/util/pymat_eval.m @@ -1,4 +1,4 @@ -function json_response = pymat_eval(req); +function json_response = pymat_eval(req) % PYMAT_EVAL: Returns a json object of the result of calling the function % % json_response = pymat_eval(req); diff --git a/pymatbridge/pymatbridge.py b/pymatbridge/pymatbridge.py index d1ea34d..e02e074 100644 --- a/pymatbridge/pymatbridge.py +++ b/pymatbridge/pymatbridge.py @@ -108,6 +108,8 @@ def decode_pymat(dct): return data.reshape(shape, order='F') elif 'real' in dct and 'imag' in dct: return complex(dct['real'], dct['imag']) + elif 'json_non_finite' in dct: + return float(dct['json_non_finite']) return dct MATLAB_FOLDER = '%s/matlab' % os.path.realpath(os.path.dirname(__file__))