From 886684e224a3962f2500485a3604ddf0c0e885e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9E=D0=BB=D0=B5=D0=B3=20=D0=91=D0=BE=D1=80=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D0=BD?= Date: Fri, 15 May 2026 15:30:29 +0200 Subject: [PATCH] working commit --- Makefile | 18 +++--- Makefile.am | 5 +- Makefile.in | 10 ++- helmetd | Bin 615136 -> 0 bytes helmetsrv.conf | 2 + helmetsrv.cpp | 32 ++++++++-- interface.cpp | 5 +- msgheader.cpp | 2 +- msgheader.hpp | 2 +- networkaux.cpp | 81 ++++++++++++++++++++++++ networkaux.hpp | 11 ++++ sockhand.cpp | 59 +++++++++++++++--- sockhand.hpp | 7 ++- srvconfig.cpp | 97 +++++++++++++++++++++++++++++ srvconfig.hpp | 24 ++++++++ stringaux.cpp | 39 ++++++++++++ stringaux.hpp | 13 ++++ tservice.cpp | 51 +++++++++++---- tservice.hpp | 11 ++-- uxclient.cpp | 8 ++- uxcontrol.pb.cc | 20 +++--- uxcontrol.pb.h | 24 ++++---- uxcontrol.proto | 2 +- uxlogger.cpp | 25 ++++++++ uxlogger.hpp | 6 ++ works/config/config.cpp | 126 ++++++++++++++++++++++++++++++++++++++ works/config/example.conf | 5 ++ works/iprange.cpp | 25 +++++--- 28 files changed, 629 insertions(+), 81 deletions(-) delete mode 100755 helmetd create mode 100644 helmetsrv.conf create mode 100644 networkaux.cpp create mode 100644 networkaux.hpp create mode 100644 srvconfig.cpp create mode 100644 srvconfig.hpp create mode 100644 stringaux.cpp create mode 100644 stringaux.hpp create mode 100644 works/config/config.cpp create mode 100644 works/config/example.conf diff --git a/Makefile b/Makefile index b575c99..e8c8469 100644 --- a/Makefile +++ b/Makefile @@ -105,13 +105,14 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" PROGRAMS = $(sbin_PROGRAMS) am__objects_1 = uxlogger.$(OBJEXT) msgheader.$(OBJEXT) \ - interface.$(OBJEXT) iprouter.$(OBJEXT) uxcontrol.pb.$(OBJEXT) + interface.$(OBJEXT) iprouter.$(OBJEXT) stringaux.$(OBJEXT) \ + networkaux.$(OBJEXT) uxcontrol.pb.$(OBJEXT) am_helmetcli_OBJECTS = helmetcli.$(OBJEXT) uxclient.$(OBJEXT) \ $(am__objects_1) helmetcli_OBJECTS = $(am_helmetcli_OBJECTS) helmetcli_LDADD = $(LDADD) am_helmetsrv_OBJECTS = helmetsrv.$(OBJEXT) tservice.$(OBJEXT) \ - sockhand.$(OBJEXT) $(am__objects_1) + sockhand.$(OBJEXT) srvconfig.$(OBJEXT) $(am__objects_1) helmetsrv_OBJECTS = $(am_helmetsrv_OBJECTS) helmetsrv_LDADD = $(LDADD) AM_V_P = $(am__v_P_$(V)) @@ -206,7 +207,7 @@ distcleancheck_listfiles = \ ACLOCAL = ${SHELL} '/home/ziggi/Projects/stvpn/missing' aclocal-1.17 AMTAR = $${TAR-tar} AM_DEFAULT_VERBOSITY = 1 -ASTYLE = /bin/astyle +ASTYLE = /usr/bin/astyle AUTOCONF = ${SHELL} '/home/ziggi/Projects/stvpn/missing' autoconf AUTOHEADER = ${SHELL} '/home/ziggi/Projects/stvpn/missing' autoheader AUTOMAKE = ${SHELL} '/home/ziggi/Projects/stvpn/missing' automake-1.17 @@ -219,7 +220,7 @@ CSCOPE = cscope CTAGS = ctags CXX = g++ CXXDEPMODE = depmode=none -CXXFLAGS = -O1 -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP +CXXFLAGS = -O -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP CYGPATH_W = echo DEFS = -DHAVE_CONFIG_H DEPDIR = .deps @@ -228,7 +229,7 @@ ECHO_N = -n ECHO_T = ETAGS = etags EXEEXT = -INSTALL = /bin/install -c +INSTALL = /usr/bin/install -c INSTALL_DATA = ${INSTALL} -m 644 INSTALL_PROGRAM = ${INSTALL} INSTALL_SCRIPT = ${INSTALL} @@ -238,7 +239,7 @@ LIBOBJS = LIBS = -Wl,--as-need -lprotobuf LTLIBOBJS = MAKEINFO = ${SHELL} '/home/ziggi/Projects/stvpn/missing' makeinfo -MKDIR_P = /bin/mkdir -p +MKDIR_P = /usr/bin/mkdir -p OBJEXT = o PACKAGE = helmet PACKAGE_BUGREPORT = @@ -248,7 +249,7 @@ PACKAGE_TARNAME = helmet PACKAGE_URL = PACKAGE_VERSION = 0.0.1 PATH_SEPARATOR = : -PROTOC = /bin/protoc +PROTOC = /usr/bin/protoc RANLIB = ranlib SET_MAKE = SHELL = /bin/bash @@ -304,6 +305,7 @@ AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects helmetsrv_SOURCES = helmetsrv.cpp \ tservice.cpp tservice.hpp \ sockhand.cpp dockhand.hpp \ + srvconfig.cpp srvconfig.hpp \ $(helmet_SOURCES) helmetcli_SOURCES = helmetcli.cpp \ @@ -315,6 +317,8 @@ helmet_SOURCES = \ msgheader.cpp msgheader.hpp \ interface.cpp interface.hpp \ iprouter.cpp iprouter.hpp \ + stringaux.cpp stringaux.hpp \ + networkaux.cpp networkaux.hpp \ uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java diff --git a/Makefile.am b/Makefile.am index dd86bfe..74c1110 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects -CXXFLAGS = -O1 -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP +CXXFLAGS = -O -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP LDFLAGS = -pthread LIBS = -Wl,--as-need -lprotobuf @@ -10,6 +10,7 @@ sbin_PROGRAMS = helmetsrv helmetcli helmetsrv_SOURCES = helmetsrv.cpp \ tservice.cpp tservice.hpp \ sockhand.cpp dockhand.hpp \ + srvconfig.cpp srvconfig.hpp \ $(helmet_SOURCES) helmetcli_SOURCES = helmetcli.cpp \ @@ -21,6 +22,8 @@ helmet_SOURCES = \ msgheader.cpp msgheader.hpp \ interface.cpp interface.hpp \ iprouter.cpp iprouter.hpp \ + stringaux.cpp stringaux.hpp \ + networkaux.cpp networkaux.hpp \ uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java diff --git a/Makefile.in b/Makefile.in index f01c3dd..6f0647f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -105,13 +105,14 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" PROGRAMS = $(sbin_PROGRAMS) am__objects_1 = uxlogger.$(OBJEXT) msgheader.$(OBJEXT) \ - interface.$(OBJEXT) iprouter.$(OBJEXT) uxcontrol.pb.$(OBJEXT) + interface.$(OBJEXT) iprouter.$(OBJEXT) stringaux.$(OBJEXT) \ + networkaux.$(OBJEXT) uxcontrol.pb.$(OBJEXT) am_helmetcli_OBJECTS = helmetcli.$(OBJEXT) uxclient.$(OBJEXT) \ $(am__objects_1) helmetcli_OBJECTS = $(am_helmetcli_OBJECTS) helmetcli_LDADD = $(LDADD) am_helmetsrv_OBJECTS = helmetsrv.$(OBJEXT) tservice.$(OBJEXT) \ - sockhand.$(OBJEXT) $(am__objects_1) + sockhand.$(OBJEXT) srvconfig.$(OBJEXT) $(am__objects_1) helmetsrv_OBJECTS = $(am_helmetsrv_OBJECTS) helmetsrv_LDADD = $(LDADD) AM_V_P = $(am__v_P_@AM_V@) @@ -219,7 +220,7 @@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = -O1 -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP +CXXFLAGS = -O -std=c++23 -Wall -I. -pthread -D_GNU_SOURCE=1 -MMD -MP CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ @@ -304,6 +305,7 @@ AUTOMAKE_OPTIONS = foreign no-dependencies no-installinfo subdir-objects helmetsrv_SOURCES = helmetsrv.cpp \ tservice.cpp tservice.hpp \ sockhand.cpp dockhand.hpp \ + srvconfig.cpp srvconfig.hpp \ $(helmet_SOURCES) helmetcli_SOURCES = helmetcli.cpp \ @@ -315,6 +317,8 @@ helmet_SOURCES = \ msgheader.cpp msgheader.hpp \ interface.cpp interface.hpp \ iprouter.cpp iprouter.hpp \ + stringaux.cpp stringaux.hpp \ + networkaux.cpp networkaux.hpp \ uxcontrol.pb.cc uxcontrol.pb.h ASTYLE_OPTS = --indent=spaces=8 --style=java diff --git a/helmetd b/helmetd deleted file mode 100755 index b8078e189b8c60e2a6803eea0163f140507872dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 615136 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
SLdJ%ai(t*>i%uB1<~0vfIm zc(T>5;g=raMfFM60~)?Y($lR+HSC*lJ5KISu(oQrLDJK#-)MN9z~ik~HC!$5IBO6v zKPk|QES*O9(c8X_lmCZV?`zy00%urhCn_2ILSUSi*07RSsw*$&UN)GLPtTR=nWgXB zJNQ}q)Oow?IDC`NpA&~K)aM-w_oW;lHWz-Z*@>#xIV;+nWB;IQ)qxDLz-m z;ZM#}__c9(OTQnWDGvX<&fgk`zhtta(-wzc`x%Arh{I=T`kit3=TB7myW;S}8s8m< zzc*jy?~TJ3Yx;e0_&4-H^!_;f4oznu4!?W0qCXUeZ`bsPy8;4)4^S8#~9e@D4v6ark;orz;Nc(CLoD zJ9K*E@J*UdUmX6)hZX<*ariehekcxa%~kRlj>9|hN!Rr_@-No;Gvn}%e6r*4O*(&J z9KKKEy>WPJp5mu84)4%k8iy~{`B%o_9XYR!$Lsv9arick?})<}U#9r!jKe$pEY|0u z9r-wLp_V7Lo@cu`|M273m3X|R>Br-B+WQF=)oF!1_lyx^A__mavDI+?n?-SuH}Lu>KG9aDfgdLr^-q?8SDLTz*#=(Kr0~-XJnMEoIR@St8%!%S@Nlf$ zPqBf=RSNgxHSlnh+)t^2pX_2SYq5dHl?L~-)WADu{h7GZz-PF*Evw$ZJG#c?wFVwn zAly%rfp_jUFtOFZAK~W4`&SG+t{%Ccb_0*AGVZ6tz~f4T`{^|BxEkSpx(qz7`naEN z1CJ{u?x)AVJ9l81*lXaOI~c_G8F*ZUazFhB9#>G@&wzne71|V ztYHIxoPoEliRwSxbN7>O;I)e@X_*H8L^ro(Wf}OB41BhMKiR-fH}Ib~@Hqy4x`8h= z@G}g2v4Q`Bf%h8tnFhYpz@K8^7aRCf4g69Af0}_`Y2b4We7%9sGw^E-{44|CWZ-2< ztkYTzymMEINo@wcz@XD^;O7|l4g+6k;5!X`k%8|r@TVL2ZUcXYf$uT!XBzlk1Amr* z?=$dUGVuKd{%iw3VBm`lylvp;8u%dtKhMAq8~Ae!ywwoZ|8os|x`Fo?_)G(To`KIY z@aG%&Yyz}p7C%D@j9_!S0z*uY1D|8y-8+OxFEsG=M*d<0 z?=$dT1Han9fAaMc349`fPbBb(1U`|#CldHX0-s3W6A64Gflnmxi3I-Nlz_K+Z@M>_ z_M40}%iGf9OC9O+Ht$H^?lyL0_OnPDIq5n4n=!2z-w3Z{dSqY(pOdx`P9fYU@Mgl? z5{UE&{3zjZgu4WOh%mPRA{_$%kT8Qxkv4(vB+PA;NRz;~6XxP=3S`_!7bl;YWr( z0OF(z2s3ma84!3LVTSA@eFC3On4$VekHC3^8KRGL3H$}Z49!P61U{ZHL-LU}fsZE4 zP<*6G;KKXA%=Um?s;dc+d=MZyfBM~42x_CHHFoA7|Z+Xypc9_bT!Ghv3xBRv8?O85lA zT>?Kun4$4VhrmB1d=lX{f$t>DPC(O`xq(|U9!VGCgx&;0LVTQ6J9ReRum?7*)o4`jCX6QQ7B=F&c8M2Pl3p|N1 zL)DR`0;dvYh&oa#@cUB$Gc+A37Wf^)3`s|F1b&k+L(!3Jf%gz*2s)A}@GFEFdX88E zzet!N=g82%rT+;R6CMzF8)1f+BYgsICd|-sq(|UK37c2gzd?9D;ZlLGC42$lVu2e7Gb9|z5%?;?3c@+z?Tueh_EH_C4?CYjtspo{ZE)7;K+c$^9Wx|xKH5I2{RNN=@B@OFhjtR zE`h&5n4#ZDhrq`ZX2>_vCh*aO8S0HR34AzVhIk|O0#72$&~9X@z^Q~8(v6e~{QhLX zmk}-&_#MIw?M8A0ev>dmx{+*w_Yh_%HYhvc@`icC3OD^pSxT8PlNsPWg8;j(xxBED!q7^3N>uHlOtc z_sKi*IaCupN)92Rx4DEe8m za+Md@qul!YQ2!Ot`cG5!_o@1i)b(!*Nd3Tu?Ou2tQvYDu6JWrstA+BQ9FT3D`VM)7 z?cZSH5A+XKcmvy2+rsuYKxJ^cLI~Mwh!`gbm&@6pp>c}ni3UO_H-fS^(9cS`VOPDu zCBx5bXQ#2ltR?c*8(2T=4fuz=LC;VurcHy*do!I(QVu-@{VZb%l$8EF6%rquLJ}F9 zGKp`^Y*RJC*OSst$xo?LVSAxd1T@0-gZoEDq9wAO`n-WM+uOX}w)}^%++eXo<}+Zx z_6AEd6QUgFlj5;R7$zg$z%KSu&|`Z8+q{7n?0*eQ6>V(4!<8`8+yf57Hr>Zqo+b6; zrcjJv(G?-MW7VGFHb;&+hc{T9u5!&?v`{mGjQ)WI!76(};0<|ct6c#=|Z952ksWJ;NzGJ^L*sHuPHx zN7sHzDDbkq4{etr=>Hwt;7TD!sDL%}1FBfxulm6ryvkvt*sbGakRD)Zk`9)z`S{wa z6=VuWA(;^L8J_-zK76wWkJAjH2HjoIR_U(up%KjT%y!jduJoX{qx%pd`W>opIalo` z=ZY%`SQK?8TDsFS0y(gA!uAiy7qf^wAaRjL8l14GHj4fV-zabh2sqylhwPCphCkH< z?AI(2p01~e^+^Q2&zu1?P=+)6qs}R3mT3rs8a6fnonyG;BW%HXI3P z$upO$-NTLoka;11hD`yA@0tEGId2=B*hXNRQX&qIoapd~AF61v*gv!* z6Lew2tio;Rn`mpD4B&Xk8z@bO5EJSkS1(GEM}ZJJq?80fUmAHNbjQ^fL;hZEfod?w zwFZ+#&6KLs?YB`WrEZc*5{*AAMvJ4;4|+t9U*HrJ#JCQ?U?$WWQ5&t_)adDM2L_k) zO9!BqpTJ@B2DSnORg7Gi;@9lUP_@e7vF#vSBxuKUn2G^0N01GTH!NEUR{lMiJHbe^ zXCMU@W*}qr9;tQj6FKBd*6$9q0xnI z-SBK6jOHE1GENd|_wlGzhB>@9YcL%&hhdO16Ke<=2-}Z|-4j#P=PmNs8O=@XSN4CX zME8f(f3tKqR6;n1on;F{izxshGz=wDYK8{BqGjw?Rzot>ii0Cl5Mb%cM-@s}BdEuL z8cabyIr^k0U^GM-z8a8JW6;rf2o}=_CqQaZFbfZ$!uI8?yr@6pcG~a^xTBuC>8FP6 zCI67#MP8(P`Wr7%1vByJ_onoCi?%hME#E^&LK2`EV3J8X#U!n!2hbfMA>fVOBv^8i;NY4*c^mkt!QDn(}w!rLs7?%xc_ zT3Y$KXwBPDSac_u&IClurH5t;^Blth+F}HturuI_jX%N*r%34%Ct;YUuzloPuIUr` zQzHw}L@;Jf{9*fUMXHzfRJB%kFQopTfkF2zs^}Rouf3LUnQC&_z8@W+%#&pPDrtl! zkAr&jDhA*Ryi5M-(VAGAB_W zREy^IeU|TdC-Ys>DokP0q9L6*i*s1>`X0-7G9KNQZyGWTp$yi9lQ9BOZ_oqn5-|;u za`XCO%XgMT^*remc0UA~@~k(Mk6|t~fZ=V(HKgd!?uf_x0BLCc?-9pEssr;P#@7`} zH&IZ7KsjDo{Ag689F38j5ALON>_|ID##Gd-aZC(*yE&xrxdA#e09DM`)Pwj##zrbn zn*DM_xEr8io&jo3z39q-e;@cB4wmf`_tL2)6Sc6fhJzN${1Ssomtn}DpVlVu)O2y~ z9%EEkR7if&<7td6%id{^j08M;o7eBP#81xHu#M<{{B2|e1U;{MLoGK*X-{8UThQ|= z>NtWt!WRi`l$1~lqtCiKQxFcvWZ%+3RA{55gr-bvcVi0+WdLkc=`BrCQe@{xNt6&w zutjk!2|Fc0XNBJ?K@C*_nA!3!E7B|=bOA8phldw#xg507d=ll?pl9#gZa8C*$F9w6 zx(ERjIR149=*GYEhHCr(2)`g4dV1OT0p$KPagj<$^cq*i@ z98WYB)}kdFUxQZ0FMCk(G&FHVpk*0Z2!)s#^4ZM24|F8b&qn%Id)kH`Et1#%szmZS zs+$Jwg(}0Z3wmBh-f_?sB@#)A5y{&iNs*{-Nk%iD--L}VpvB&AQ!C7iq zrP|ibw%N%0dB{PvO;TdoHdVFFgZ4QMTe8t@*j3UuWo&$Xv{kpF46+L*rd0!yptFYU z2)3~hI%uOE_`^_4lb!<@x!vf}vb}-Q@#tSQX2SOGL2A&)NylLqu|CpJF{&fq-%6hn14NLHSpAUl$76=l(^h=3X@S1}VX{IQko+TZwYoR0&C~H8NT+ z#aKe`csd*{3r+dSx7_agFJaO zHT^We$akX+#Q^GsH@lG-E-AvEetborhbR%$j8wQEdgOrKQOfQWOAEvHEt8m8jVq+S zH4(AcZjNT@S!Zx`(8p5U{y8yR>{*Az<0zvOEhg$_N#|)#=*GS6!r)UYQElKchN>Zu zN5HWyYr027JfSJgx4VKHQJM>(F?jrye~m{SVLQ#20(MmZ^-#`H;A5?B%4g7&;6_DT zkV@Q3Phbl@uc0#ZCnWM3pf32+GozK=t}5$NmA&~-RatwZR0eF={yx3CU<;`OYKN&B zJY8g@c)0<|kij4{0m<*lXorj#`wrX7ViI3vqN~|(5{qNJDZTX5o*CSUWb1veIB9TE zFpV2=2+ZIr5@J`v9_gTnjx_{^T0Q$RHkFA3prrF{2u&9ctUnO&52O4Eo&(Wxzy>`B zws3TzDZA1B=HYR^&l}Z;QB6l)dP#H){Ebys;H1NJTqvNaD&A(1FD7)rD7eKE;52kkfVLq9(FYY zvS3ik%T@~HrU=;dW{g%CZO?R8GEF|IiXTDgPMsMVZ9#bo$<&Ym!<~~P#Ho{AXM{kH>Xq-Pz3})i^_(ZAP zYJ;bVkzBGDV86M_djoA(q47VreMoEQwtZ-8xOVfRIb1Y!>*n-_J-b;j=-KTwXD8MG zFuDfEeIM4GzC_LG53)JW1wGGUL5nV#B-A4O@i^G3=Y#>JX8e6M)wma7Kf3L!xa0|( zlNsT_k$i|Z)5^KuRY0?wF;EwWD%kyK88U~9(@_>N_J3G|!P*WT-s$-@$qs;x zUxP%Je21!3q27#5o?olbX}+Mt#aSeju_>+OALB6$u?|tmh%kUcb5FLo$<(y_53#JK z_5ZLOd%@)@SVZ)R?QuARC*3k#MypE9149z9R;JU`eX$dPvc17F=z|Ik&kgiF&c1RN zx;#A*9Wi2)ly%YhyP5lOYWZdkAF@M?YsE^T3|Kk)dje%o21>fm4S0S5R(pb0^FS&j zy2hTTmV>>H?gu@;2zd4xs(&Y9g8#khXST80fHEY5*EN?siM1^~0D5lZ=TOg+m@;78 z5HmzP6)P`D6d@DgXSbuNSx{m$F$+AYZi*X&D9)AZK+p=7ygHQevq^!iVmbU1kTMXM zgh*_>G+}AnE>2mGV2fHSh3&lzc@e3VPG>-0gzbGub0~7`Wr<0{lJ{w!;7wkd(B=1BAEZpnOErndBR+P zZp;v#I4^|ld(Z~3B(W-IhLT)RZD&6rigz$E)|xZ7Ob{o5FNcKvO;j!4|z`m7ouqlShBR69>GM zyqV(F-+AmuzBl*4)`abbVco0veoQhxb>6FxHvz9Y^$zw=B91;P9W@_-bx1%NDR025 zPeOIP8%%u*V_x^qsL1{jSW4x_Z3ihf`8EWy)Q(p-!OQ+UGO_@tN8qPI1*fa2GGXdhD_Ev<_{j54vO7jfQ)k`;k(-QhymLQFwJ2>0n^E&OINUfrO zUx6nmsqTaz=*t{5c;)IxZPbBPN&V^Tx{%tE=|>Ct?Aq7d7W6_BED09(fwn|5-QA&H z?hf@jyF-*kK3D{OnlH3SD%h$kaJ%8}kYsdI!`%57$F&JQlW)RiDA^5zY06APDG`NH z7JKK@&w?SbaCYZ!jb6tnHGMF{V}bl)y-dZ}JoKTVGdakG)?*bV;XYamMtmh+JrrPU zaG1RtD0>}SW;9X3ve$vM>2n48Fp=GZn4JF4P`k3IfF9xUDN`iQe69* zAc`E_&3o-n6e>cYjI=ttdEbN-QCFYk=QhU`EnHDyhvsGJP4FGI4`(q3H=O{qY$NFA zi9$UKkviL9XgW>>Nlo(gm{(ZZ-LKF#P%Ri@Y&SB=B*OB$#Q4Yv`8H-ssKICg3GJIP z3xB+tI;AE=@S-)Ih#J`;JBzciK9ibNU78~BDUMdC@t^I?KbS+&=;*G%QOYcf7+;5w zlpPScgaL9zNPh<{en>!S2ZVsQc4%F?v+cdp{v{F}`P$6=XW0)DI#2e4+vXkF#?D@x zmL@(IkYEm*zyamj#dD3cTjK9MxCzmcn0hf|KJ*ue%Fu;AQ_u(sLI)9 z?x!K?SB3=V(Lz*oso`~4d_^p5-z@F{cLa2^B*?!NWDyP#GZn{63kwJ>c%2}mMHHi8 zVj3{C^-4G9p{b{*qelBPSk^;z z=ROIwWc^)CP7{`SCJUv)whcMW5Bv%s2!-um16&YzdqLn$J@Gw=qH~|bKMc0?djry* zVh)0k?8d=Ioq867VQR`+@se}_GKTF<$mQAay03T(x#29@iPXVdRwuN=_P3B_a2ycK zH^t4@gnSDEHi@**f*h!(O`L9S(pfV*Tv^d=n!k+&)G7*9PN@x2i@ ze}NTf)?bCmB?D-Kz_-!#1hQZ;Ifo^jwVp?jghs{j{#9=e=|xATw|N_s>TuL1ksWi< z@zL5EmB1x%?F|Xc7SNSI7Qh$@(AvaH0G%15DQ(P?q?O-uTbXp$6c0c~!zRp}#%%dr zfYFgr14<&^&|(g<0gAnvQ>{{rA8AI-IWdmUM-_!(mfXhdaRWyy{!>WOt#R}ged?ST z5pHGdr$;NlS5d|cE(2e9`-4o^;?8jEN2`MAv4ZFjS~5g_?va&m3H(OJVW90P-oVA_ z$)w6H88=OjG-pJ_*$myNtEEw_Jx+h4{#Rj?;l)vgV|CZy_}{XsV^=_+3@^L>60B!T zGc^le5EhcsdmQvs@G?QLI<{13>h|5PtyT<#?X|xaBNv-fSG|Si2H*9h5Vo)W4QKSx zdG$Jy(F39U}C^@eC(flwZxptCjlWIUr&{Plo1 z=!^rvG3GRW06w6pT!zyFiFNuOo#VWuIliNF+zSh!Xe1i2+I-*OT8#lVYKRM3aciYf zF9D1;M(L8{tR_;7pQGx;Z2vN83XkG{7@NY^Vp(W&Dn|F{akaDgjTCRozYw{AlbG_n zH&}occ$*Q{O!>eYJXRgQ5A-bvoye864D{PD&~ZRv=YqiBMqXmSC>t}XDYDoO+o!v% z#q^U_Ej0>8m4y_Kjh2h;?Ie(B@7%A<)n43px_0CDeJ|LE4?AIvfk6@n$H`u~jg4W}FAvKQgq444` zf|pWlQ2y2Xrq6)3J$a|vH-&@Oa;xG-w!M2%E(hh*zNw_(eurd`HRiF{Qg8EyTY6C0 zRB24wlyzLJw)B$!P)i&0hBiu(V2Ihg!Mi1mF63)+2K{|DZ4K_GIr+hVC~XE^HYB`^ zgUW6~*nR~~rU(=hVf$IYa_u8B2g`QVvgY9l8Ml6e?1WqTQ038zv%p&6tY2}~r8r|Z zc!MEk180&ZoGl2Yoh|usNM0D+s2G%D!eHy~6@vweL6s1;i(H28XLpBMHi)>wcKX$* zKD1FfHe??7cvn%D7U^>zp^z#iLawM`LHFE8e;-Ba3gFkMPsM+i8Q3teSX<29aunLW zAaqve8lf=+UKRxYwIF~*r(yp&L)c^zH7AtzNWW^>l1oMMDj{qyRrMaLJi{(3tJ}8A z!6M6Ul+;j5rVxvsQR~D_SLRpvuzdvrn@VvV%!ybwBvIUZb|h5XhtV>7;dZ6C&w=zTOUcg-tI^~C}MLO9epw4gLuE&DFKcYhFhtWV4 zl0$@a^UF#|g=Hcnm4I_vFDUiQ5dq-bF8!LOnCD#c-k40HjU(=byC$bwo{J;SYL zXKS7va;&cFxkXY}u~5P3CkU}kZayKmBgf4^Hvc=tKOz1~lxC;_3?)ie_9kp!tIMZF zzKS_S+Y#9VfFY3q`4EnxVM+HL#1z`ukh1Tf`g#%FlqMXv(ybV$S|JG{vBker5<5h- zLM4RliEKsWb7H1w$=WodZ^Hv{?_X)$AAyT>3m?qdrO`Wy{(+0`)96QtzS%_&X>>aY zFKdJP4PLHv(CNJEnWC?J<>=g35tpsL6;Db=|D7&u4Jhbba7 zaks$wsu~=j?0YU+L)flk`i(m{eaNbF?iF*(l?$iVR5;rwtyJe~LM=R?;Ra+^tuS?) zNjmz{ZX|$-Uq9607H=rrC2|?ScZoq z!!G)p;Kk{+4!~+C&J26*5^WBZ-33jCD#%*>CS1o>VA!5rtS=RUfFqA`5a7^Bi?p*} z^${6vk2yo*R-StbdBPYPI3$Rn5eC$OV=A{dxZ`3_<>^qi_8iUo+oj|kc_FO*=!v$$ zWw9Eu2S`WNoEANA;2b751E&x2%n|#?6D&fuL#62BEk`r)#vN1~Ba*>0TJ1`gs44oC zPf#>U9m`<=ML@K%6}D+LC(Zz581}Fr8i9Kmp%OIS)1)oI&(0>AAYwqU*HHqUAn>yI zrU+MsJ>8lB(1>t3hl0dj*9r~yn9u@)j2u)5+t=Z;J!<(Im{I4E{syQAvY(EdoSKtW zHfkqU3{rTP(i{JmMfSjg$}>u7*2*{u+h6&kln~x8#P>n3bPGvfPY;<#*#W2I=a^d= z6V>#|B&E(@-MtN8-ROC7>w50RV^<0Lvua#Bs2+PlECPAHpWv3%M_!}C1*-r<4_-8;0ZP95^Q&^MfVJ|dj^+y)&0KVgtrbiKyJuBp&QSU!OM`B z3oo6Q(HDH})#Giklb6E>C*ET&D}GmM9?SxTe#G8&;6`*|+EeHwcRiBr#?-iFj{O-6 z=S_suvmNFWU0uBvQ~%)Sz>p2mWNhh0JzVP#E1UGir$4L;_j2s%A67%nG}J);A%U0( zZ$?i-;(@+a&tBDlL&(WskxM;e3y(#_5NROwqcXPe{EW%@vL{{QdYK6V2EtOmZ9x{`XGlq$(TPHc90FU?i?Q@F##=vZosLHz=J;Gp zaCWo$`@xgSfeqBZL-`MO1GU$k&TjdY&~kR30_$H5_;IS|0Cfn3@~WuE4JcqWed5S+0s(C0*oxDbzt!MhhV^%5PCJH-M{MBcdmz{ty%wMHMC znMU|E%UYeuFF29xB&eIg&W;1EP4|CB+`If}3Rv5W-#Fs2@}j;*P3}_6Ja2I331LvH zkq}CItWL(2odf34Vc672`yo+0%{T+2r4R3uNR{0DhPO-DXT!=i?@3Xq&{9_*InaCv zBm)uvmC4^EVb2gWbnC$Q=H85e2dDF83wuZn>C0pm4BLN`00HAI_-nSu^Yl}OOO1pX_Y*)|1!u2hMO0W(~I=MohoaGcrm%B2ro z19})|4Fbxl$`u>R00vTy)_aC`;=mm-JBugk=Op*UtI}*c;C~$lw+WRkyKTvY^1d`9p@5a+KE%FQ~Yv#0jy3`=TnATODC$^ zrfg$$0?DNIE7`z4p-%3Wp^kLWhd3rVqyxjPP|Z!A1KxIQzMYLT+8LY1XF9uiPP{f| zq>2ar&&M&MN?S)F0UQ@jo5k8O8nD0F4IhUAWPDx!7{e+9B)<(< z;W(5wvYh%Jw%brzqmHRksP$1)kw#q=MXk`NuS8MJ8g;INf)HIPAxcLoF)YAjw0S{I#Re1v&S4#P* z=O~{0WrLY}(gSnTv0H?d6DWjq$*}!+IfvrC8dz(W}x#20WdsTo>$r0=4lh`(_ILzC7rve$}JZz5#P59sv zz;+6%@Cf9H_#H--L%>}uiMLPNz?nQ&i;2}i{PbaGklRhzQPCFc-L{xnoYRIw!}Jdn zRbrgoG_~!;zER$TG~4yF66X^tRMS>5JWs8~$VF?^1G3RmFpheMJ+C6N!-;DH(0%AW zoY|%9JbeM^jHi#6FTWY|e6yv;ua{;&Lw+Dar5vR6{dxmstzpj&(g}Nd@GmBtr#a4` zs#sfxJm18#bEoG46x$K-bU=>-p1Yg{296Tn1%dwtA*m!siPdqEqZhDOdC3iHe-xMm zIGBZ6Itd-PQ1`jNEtrY}$HzJcj>pMiW9Vgcuicb4ZKJc1i;mZ4^cZi#cnqnHWb8p` z(+v42>4n&EybXgXMceUCm!j?K^}2Ji`C1fJtuu?*XHt>H_kzM)#CI~~)A1jl$z#98S47V{U@YRDL~U_Bn)5pz=PLMbdte*2@K z<7&5>l5$Y92!cz(=coZO=eA;QOYGP}KBz1xAuT!e2~xz#z$j`qP;zbyd9VVj!N7v` zKByzCeQ=R{C!CwHr3wr!(Zs{{OK8ctJUA;yg_fTH4T!D!PsqS6Ipbw8vGYGV04G;v zsPn8fT@?&&IA46}i#z*g%eco&*W#=^wFAqB0M^E#sjGh(J8^{8!ZG2hS-E0TcAIVP z4`WXIIFywR&P6wZmN2Q+ve-q<6CWsCtj@8s4f;BT(VlFlJ+AgU@1=@bHM!+M>xLtA zhJ}f>c-l5O!&l9%C{pAZY8Z73fZ`OYLqby9rRKdWQE5B4Yi9@i5k5L}qf5@0=__wH zaAY+Pr~2n$oOHP>@N0oa%;e1L{L=(acatQRY5e;5`#!!hsYM;VklKF9+OV3@p41h% zyd_!C1R8KLDeaCepPWwm)NqughL5}ynN9*=N~ZfQ*J%z;M%Ploqbcik%4C%?5cw@E zB>Iq(<^Wy`;yaA*27%lC$jIO%{F}lXG>^br^*n+Wm1Cy^<7B?Wo8}8CCyTgZc#=#; z8^=i&@f5E|?GZm})^v{+x)~d;p#wwv&6kR3p--ZDf;l@0k)VMQ|4Awxr^Y2+2Kak$ zx}^i0+c&PSpJw0qPY!;Pj486yDS`-ND?&56*H06kN&rJ5cwvH^CGM3}bVU$70aqs~ z_g(T`dI*CQAr}salQU)Se?nA@)-XksTyRg#7s2T7bjiw4qx=9<6 zKpC%3AmbdI?siyuixgQ@MAt89M|28ODr<_a-w<6TS<}t?swk@-gU##h5fK`Xi4MqX zR}yMA&m%hGgn__;-d4|UhPYwF*th69TGQUfQU{nRo)qR1rinR4^b;>7 z36<>z4kR$rU$9qlbBFze?z7}IbI4uHab!yf2b@9%?yQyrM#aSd2mNk@Jx56!4V9Oc zpld+;WqT_;1z01z^HC&%)IMB0FoNa-4LfBr$gm@)D{~@wPL}|Ro2N_Xk#Zq)s~87bDkbwBu*Q-1Mafj1r%0U~F~Y*% zX+M?=){#>-4hvnGQ0E6t9CP6Rwe>?)mdo&GDNC$p!&`Mc9VIh-j3Hj-Y{ zLpT$Rv?)V2YRwlc&TJmWuB`oIMQ0dJ7MzPRPpka`}>0VA+26UkiUSs}piC-#MefNZ;MI|g)R;lwFQ-Pd!=eA_MK z2a9-HpOg#R({O0cEEIlf=rM*BZ(}QN2PbV&OTU;5x zS!RzIdCrV6yxkgCX0BQ0r*0WP1S3j|HX-Eo*;wW#n}yc7g<>jN99I!f66(=05b;PE znWZwe^fcS^nuiNAZaNZJYyyUkY+)}V>i6ldkF$c~Qzd9V3Ewfp<4xqMcbj`NRrkUd z3H(w|E$gspE|CMuZq-znLfB4%magI_B%Md;d)MLEYp;tzb<;fNXd3bIX%bb=$oun zuo48Z>o0l&1IO|*{MX+vbI|bMXA>k|(V-IE+H+6`h6_VO2n#vO@FLfPo2H0>y1eB0 zRXs^>q>jWmY+Q-igEP5AvV7SP%B!uO{dnN77c@9rZN=ctcL@*9n-^Ul+x3|p+ot?w zSS_?Mpr<1pO>w=qwK#>Gg^?Y2>`4B*F%$oKyK{1Ka&z)>W_dT~$@LE6AIJ9EEvBvvOwTB1fspu~>4<%9}N7R{pHn-p#WLX3d#ZII9RbmZ}^p zB}aZver|qVJ~++K&!3%NkWWtQRgSePM`3=^?3~%)bavkCS+nzJgHs;E!QrIt*#)!b z%r2Y_9t&~`atrbbz#|WV;pSm?L4LvPf`S5YS5R0`G$&^cxbt)%t<&2*CvVQIIr($I z*PMbmbLJGz0biU7aU-w0FsCrLFs~3C73LStE-WYnNA&lwPVO!&EG#O5;JllQ(BL94 zhO|DU^?SQDg1i*XDMCIAX?Ux0*`I?g>>IppGvGN8X~G~4hS*Jb_hWU>w3fk(u{oT* z)lR#*Z+W11MqdiTx%<>>vtUwUa$qL}<*;7|Cns2Tz^l)#rEClIW^CG!#tv>x6o@7_*B(f1eu{J|Gj3|cLje<4e@WHJ>T&8~So|nO0Rf2E3NUZqA+_l` zS~CZaRHd7Ha@?Auud#PeqNSt0z+>a_FVt)pwm6BZl0D?0Vk1W)RgF>RgsPgOXeeb) zsH!o_oKRIu6%D1#2~{;#nG>jLtTHE5Sgp(n6;>;ALWR}JoKRsMWlp59TA33n>@!f< zUBMQ1kyhAWKw)vLUU~~EyA?5?&D;Mu{qkG4{d2l^{~qtwHxUHFA%}rfMoye55MPOz zfn^ll-Z>t3>FB|<2$fMJSe&6GmCU6OCdOb16nrB!2JtNFFO?!jy;T~595S3}U~wW1 zE@f*fmE7C>6l;T)e~B~{G;#I$4i|WtuzqQPOvAb=gu< zswU$oyh1xs;ZGDkuu)m>PZS=y_y4rQySot6;Y#&m6!z1RJD*ODL=gmhRU-d5HO@5( z&z>_+#(v~sghre=BP5v;<5_ z0LDjrIt%DM(U~A-E*tDkguUh^uF#k>~M~cDd%n#t@$+2aae>?J{(oElU z{+n?t*U0!b$ydOCGj9DK1*iI!0Z#XQX>hGf&oNtvyYRwWkjJkZ4XzoT`u8K<)US?C zU4k1~y6hRFQ)_SlR;PXr@7k6OTn2F+7`Ff8rs7rqY+VB1x9nBO*>Qe9M94T7c2F{I z{=Y2aTD(^`xr}d)_CNv|zZXqSAmj9C4RvoHSc0HDb3_$-A+AoU&w7FbozI8EsMtQ4j%%bs)xD#V@A>0cbU(DwGn$&*~1Lm!eGISY9@Rw{)M`J3`@dOg-juzgMoE&*=m+o>>jS+2l{j$N{>3Zc zLhl;NsXkPKGuG;;UXRy3dsc{ZerhkiS8tSlQ_ipOojJx-oau^Ow#LHtc?h<<;vJP* z3K6-f>@GXte_g+TOGRzmpF1#L5O!05%)sQyuK=8EpAQ(vnTHSc9c`bXzmNB2*r&;N zv}aQgy9lurF^GdbJa_;xmg?-!vy=QM%dF_J)i(Fn=njZ4g19yWCP$_GTjfBlvnwIo zE0qyjJPZa^oJn@vWV`(9pyR$9EPn6p8&O#}5go`dXn8C9Ko;bTO*>WwjDLt>D7iYq zUjuQ^Y)fSiL+1vMhM%)HV+$z6DDSm6@8!y4M-!;E^LGu|TH_$44x8Xdf4~4WhjWb6 zF60i|wS}U1eVnbB3H9)eTlCr(Xw$x$6G!0&MiB87Cq5FwTP`KyC;a{nl1GsyWNGyV zc|e6PJMwqKp~8Z3eqd+;-N0@3{@>UD0ifk#F4kx!!g!*w^#s<9F!SV(-ss!~L1Y)YBd(YsI50!E6tV7R+4T2(w7tDYk znIbYaJjvReOY+b-HJ@a#C2~hKRFAKlkqJBr=~QZtJ}^*iM_1|g?WZ}WMBxdE^vjS2&M=@o0}`XIhtU&I6WH;fb^47RAd-A8^lY9MbNIE z<+xqWz&H-vsvpl(M>}%lJ(yc`PoMof?F}8Ewd0{rh#!{iN0;{lH=uqTNx!qBo!#L~ zSXdPKa=5nw`Av{teTlw-6gO&KY~C|2uxsm|CuICGbH$B&Zuns0vnv9k*U_;yibvK+ zRXJ6*&Icm5vJ0bUNN_1eegPC}j^CQ{ouZk>?)Qf<{TI%F2Gi2?f9EUhKNnMWvNoUr zp~;75Y${D@-t*qXXIte}vlvv)Sd8UfajyC^Q~L8j^ZEmpZ#uUEs1s%E$k1fjoD{8i zSG0nYAv+L~_YCOXb37F_-Ba<-Ji#wV9}xa*em1i;(^V$pOe;^<8zpj#62%{@!~&y4 zcH$CZmh_#!ct^UIXEZqHYoD%?_E#)Rk4oX}3o8`1=QCvne0a=;P|gtlIAO?~@Grbk z1G4CgnE{KT&As+bLJ?*;#M2Z!K_(>*1sYUOl#8$#Ew@l<^!?d$XcOp;oA6kSy}YWlilPX9a^kjV~0}sB|R)9qVJh} z574OhO!og2WTNkx{O#SOD%S9WCZ?zm;YE*(jHvfavTk}d#i%~!J(Dw$#dy!8lP?ST z^m`^h*UU+wc}Jn~>H}l_#)-#S!^up1-v3Ao(R7jS{a_zDKKiGDb0lBfVh%^#)bDRV z45#AuvTN~59kJql^g+*)NPdo1xMv(9ziRyV;M5}okG(kD4&Ih=R}XG_@f`j!-~?jj z)e#$)E~q^N9I%l;5a`ay&6|}!o12)0MHR~`mshP2-GJ(XklLUb#Es)8afAf(#@5;= z$E$S?-v5lMFnrHV>*Jn@nZey31Vd&nZkpV<{z+Vjwbne`y#C3I)u%ZH_mQ%w3-$tK zJJF$=v1w5n#*3#Hdm^7gb_15M4eP-0lJbPahDj?#`qqx5NL ztIK(k;o2p(w)@JJ)mL3zQ(NcVysG}1hDM)%H3(wpm-U7{eQVaPyLNCM7RlgAyvP0f zc?tk*I`G@L#VjLwQCb%~q)tl3I}#`nsSL44_u(2C);C3-yBas47)K&9F`&lQvrTim!~H{k~#1uqZkX<1=%4}LfN69rw_k{rN=1@Mp=Jk zJU#Nn7EZ+C%9SrF@pQt(fr{AEW$Z@svgnZDZK7Vh?jX69^zN$d6*Ku; zWc}D?az_*Tyd8bs1|@6_lxzr=Z9w@}SOJ1Eqy+P!;;nWYzQ9P*$D_NCNsANLOu%?u z2<0{$`33|9?67y&FyJA4B?X#Y@(7C|UQaK)XqaKVX_Vtz0V=Nb1#Sv3DjO_m1^y=O zdGEtXSS*((X*$F5#w1c`$AYe%&fPHh7}D31R3tv*Rvr*TQfzD%{3!Kc3Ml+vY~4yM zZ_&CEw2m()b6a=1YTYz&l)O#y9t;XGS?lBmsSVOLNJIJ}&~ZFM4C%OLI$P#Rz2pTm z$jK56$SZ$y(A`OroXFtZQ_`zz=N=E2v0miqmbo?P>B3S3aV9Jc_$D-p7L25&oy33v zdOeh8sjt);2pw#pUd83r)EaeHrI%Kw90yd<-KEG$s$6ZfdxMw%ic3hzaH*VfMkM}E z$O0;eF27)BpuctVkx80g%6w8?ar#ax;jh1|yY-L)G9qTulP>oSDHd`FsgTgfE+s&= zc{hJ6ODxzrP>T>mbj$%N2cw=$w_vQe0?;FQ$k?kR|`di)2!s z4ZNrY^frQn;Mt8m{8g#qVlX?vHoQgsVVfZ4oz^M%y~ls^E3cfv$*0?f&Ab=vFYabI zsO;ZBV0P0t_oN4&R|*J0siwJ#nB#~M?}cIGh4o>mo5T8jzc5(`+nVJs#j%{HSoS(B zb2J$&W3me(8V;tFe&6^K9S9vB7ZzuZVlkoQsStP(5)MW;t>16Sok*wvUc!aG!CTT8 z&KFp%AyhLc!hcCShLB8cK^N?YS{YqX2VcbOf@K(hP@Ath?YRoD(H@8yK}OXDP*6y0 zNcBN+zx2U=AmaMq0#Y#4%k6_=^Z|y7zeo2$58I>6_K@qo6$t-(L7*4O{9!ybwl={P zK<0k%2?^jwYOr+;zUMpeqkyGd2ns-TIGBR+D~kiFBideON8mM2EG`}KLza+gVss_W z?ttfE@I2($p?Em@?gD8V2%=e;N}5v52v$t08jivN@_q~!>~c8%HTyNWK^AS+OW4Cl zvz9wq-|k^nzRglf{tFQ=zI{gv;VI-^5cqR+zv|jLWY>8&Nl}gtr^Q{!ZnoHcL4jys z!j_c6Kq@9grWy~UAl=!H ztb^rF`fuEHr@LF3ezueTlTqnwnLf=)4~-@(%NlC^AydkyKp@)rN;kSOdm3aANhKitz+IhD{So7PO-x@SDsXmYn7+^AD8gBL`J;XKfp zLIb_K)gCW|XDUQ7<^~~=1_v$E8^pHh#pw=>j7@VhQCSi{FRa8ncY~7u!!pkg46|>hQ$K^Me}ifWgdWRe4WXy{q$xNR zvCVE|wvhbl0!y_$&J6C$>F*OI-%d$LQRG<02H{87^=rT!^o0sd8uis|#;DU}9K}d| z|K~`>$+bIrly{}(?qUq|Zpg1261MS#wMsU)!+rP=Bzh1L=!KHu8MaqrWIz`#74o5Wc{!a9ukjC8&ZF{c1BiK-X}Hd~cG{%J=874|a*TS}@bK!#sizU#(g@N@2KHXgu8t zsDrqfrxF9u^|mp1q9JNn_{6M6TaN~C{plXGb4ok!j*agInR;HNy>yPHgl)W^oUieL zT1ExTa)scf7iMb!Y|v~$0ijun@oJz3F;1ZxTL;pVuM4FN+j}s~^m2S65J=ZvZ$J@& zxLhK;Wk^aa0$D{MUhtyMD*i}_M|<4q#t)Sz-z%D2o{usW(a+fKXaA{}(+xwAEbZPs z&4vUZF;QU5-5eLdh6j4L@WO$F$UgIwB);}ZWgd!Q4jPR(A}p4>TDb|u zM|GgHR{j{RJ%;u6W+uEU1WR1aP1gf4Z!xU{2%c)~`j_~LLIzVrYw#HQn^49m=q^=qhgs~{7xDj+X| zs2>%hm-;}=LA?glAY2O~@N1}_ULi-b_*T7sD1!P~WvXXC{R;f{)J}}}X3xj^HPo-; zJeC~6beaW&{es;!1r!{YCzh8rETDsQ>eo;m{a|mR`O&jB?7H$>5d%=~m>gE8oNS_R z>SiM`tSB%UQjS%Qp@0)o%;FR@3b>eF1K83;(YAEaFnM}Dg03mU4#A=3+pRtZU zogWcD=0`u`W=-@=rnd1e{|Tiwv3vnw^AeI}bW|DTx zc}>(6@}gdtBzgw)9bT{pCyN;I(&sFS6VK1+=h5;+b~FU<&=pk*+d+|$(k%4~9=tsq zo&6~%!wwJ})uQLkJ&$$4!FU#@HnG?OU3~5U0>J`je zuw6WSg>M@Ex#76x;WK>`nuovSn>aXCz1!!AZaN)L;33PIc>c1r3J2neUz|eNP^_KkeAsSOFa!qG z5`!uS3g4NmoW^(W73GyAwJBq(;oXVh9eEoZYi4j9wq=h3I}p-`CF`bZ){T>mT{yg) zjwrm7bG@JMTxusbU&e)z0H<#ucej*}X$F74O*f+lY`b3ea{BeubM0C`tl%M#!k^3w zpLM<$dAdZAm;kZirG07k&s4i4uWHw@yf~{*aV9ps4o(|DBxK@24&7Fb>fTd)pKcyL zYs6n}^5w@NT~0 zaX0wzZ;EdLV(+(qJ0M@o+8yskeAhd%b#%!@br42$dl%*b^KefIt+GpeS!hg`fyQD*b=H zYw!KO?-^1G!u>x#A4|@=$F znNa=~qg}<$hjMP?OIkHF^F6_HNq9zIoyt7*U#T+nD=#&|L6tyS7+nG;PcwTs5qPqr z3{Gc?)51XxPVpjnC0>D96>wgRvr%v&wi4&S*=ZPTUVFU6cXnXHHO38+V=RP$o5EcA zJny9Z)(*n|IJ3#vpzJ;-ltqyF(qJ{i5^!7Yj@SBF&v04k<6Q&5k6f{%8Jaz2N#D)| z<@J#>9tE|g0Wgn8ih4A+(@a3qt2A5vLH|kVBTYs`RZe6fwqRB6Z01B3xR!#VwMl8A zSHNUKhpbl{l3z|LxFt>H8kO1*hN-yJAWF@KdZZVVJY#-keqgFYhvOMB35ZH;UbV9`QrcZ} z449nuvKlqoy_&(6Ix~>gQd}Qc%)L;w#D(G^!4;?U*DwywHH1fJ!bQL#{};+L)k0CBOT5{DV}pj$D@T5{WO z3V755V(!o}%IO~;GoW3m;gmD3yi?zk3n2_LEE(XYFe%PHqC%i6RbV-j>}>+ro!_R*6RBHZ8< z;gYm1{&um2nP0Ei-jvf}AB#Ez6_)7O3-$sS-7uPO<*_Qf=$Yr-9kl31BcIY1xE-wz zG15!1cg!)d?1XL`6w*f_k4ByiA!T7^XxaY$BZg)VpaCu*DZi7W?K+#~k?Em+)fVeJ z_o4+GLn0f?vCQljqhkQF%wi?=NK)Oh0PYj-QM|y#8W5A?(O)`)$dzOzHQ7Zg@kBM) zeA~qGa5Q}dNu2nQ@)-g`n=v{1+yM2phfuPiP1x!e?C<@HSWTFO&YK%?#s+>0tiJ3b zWm1(hzJsCK-l~?%L|scCXA1QsqOuSfnE~c0=$gjNE%jQ(e0P6*y1Y9anDDUdvVNI* zx(vWUCa=-RTlF>0AeQeEGX3znOmZ`hM79NtN~aHZKnZ8M`o3(XY;JJ4t*SXMh0wJo z6r(GjDbbCW@tNqxKdID>oe!zE(g2g=rLBi%Q9*XvrN$Xc`BO~tQJh%kR>QH#fPYv! zIC*BGZ8(RM75P{6Ld5f^DJ}IYA9h>1uJ(y)2}_7tOcV_$kWSIiYGEk4;{*xM`jt~t zb*7x89%W2H*S7qf{~?1xlWVPJ)T+t*wImICp|XCd^`%m4?apdDqMTV{jocM|!(|JG zo@`;x1Ov+kq^<^C4c2FR#_(TerCoRT8w#|%jJod3HE?{Y#Cr`OQ~ZENL@d}dePJb& zug3`e&=z*E9yFD6?tE?^bw`ch_a*yVt)y=yzK9?EDAIJZ6~YPn1^V3Jhz(*0?lRRZlEKOYkl_KCoKqokx{c_XrHu93SKso&3@=*6073& z`?wAQqhrG~&%sURu%&R%o**7rm~EdwBCkV@1xp16LBtr&?E_X=Q)QS=aX zGGw@k9IrmAN+pz@%s{pBKTMT}n)K!zAxENhxp8iUbWu^B$$t1AU4_oUs`?uSvI_^6 zO}Y_znfSGH3U+6&_RX$d1B>CP)jhLz;JoT(E7n*4nCv7|HDdZPnyC6!V#77pX@_fr zI~!os3F22gA-v*i(gPX|5MYd#CD3~>u=Z*VaDRD~!HUD!898k<@{NR{Zp{4s)==Ut zzQMvVG)RvVx-!pi%sk@Ub23m1nMbJ3N}YLrW#0um>MxP2!^?3^{3n|%KRGQIw6b%Y>VD@{&Z!Y zCGpQBe%&SBYKeby4RY);hU{qqbeMw#vbSZP{mfLATafwNc`K(rkQ5}zIEs(|lD>aQPg2d#RYc>NSv3}Hyc9))hab@LK>?=|pO$|rmgpNZc4 zZ!}rz6Ars7g9vTpyVISgEcOUP$#siKB!qWDkI_3z8ai6X@<>+~IR%Mi)9;?nf-*b<(&0+15UC6n@pzF|VP;ka-?~ZzF`KA%?C>qX*u)R zbtgKa9>P`&v;V;v|zM7*IYKsvX_*F3k~)=C=cp*5$d!F$yVW;_fUC!(YH0b5aCi)LEzxFH zBuDMGdbl-RL%{81w{fB40c zX~IEpRx_S!lk6{%?GX~|ke;mq5_DW;6c&isxEW!`)y%a>=i;@IQ&LL>t6JhQew>@d=1cM4Kc-2Q%U5bEv+AfPP-m4Iw^$7!5!!1Ax-BB4!K{PA z?!|YOx^d}c$HNl|5tpDIR}zjv8;72tR8e>S z5mmg0HqZxL9J zIk5gC0qcMStXCax8?Iq8Jl=Y*wh12xZ*0HBIQv2Z+-1(aCSyr_CY-%mbK0|CGN*fO zGi(hBY$Jrul+EX>1zXL532g0O+8W-pZzWoF(|Rp)>CxTt+Cg{Gj0C#hU$yPfy*YvI z2kZ&IM!0+b!3lInjRRe_36ax>4e3yKX8k#c7+#cy+C2JpP5^w>xuW;Y354IcvO4}8 zgwjzwh*=NgyAl{b&c?Dw;;RnhZYdaF#Pk7Q<8bbS(+$MJM-CW$@UR2Cz`RdkW!%Z? zvDwEK>}v(7E{F{>=Dk~mw3Js)7l=-z@0)=4YD<|rG#+#ABFih|;7x+{``g z33y*HzkA~Me>GN)bCc%xabVf_QYRJ=|9w(@Zi7T z^Q%VRVP3qZg^O5%wivxRLBiwmJ|>3Qs|jKM`w|E*D!e=h?@VSl^V&f;dQbx4Z!fP7 zq0@@atpAjZaP?$VC>R3v>$^4Aqb7Gjl_ zoRXBAwzQQWsYv>imNC-#gmH%+o}RxS1MLrzAJamAI8tlFhNvVQVH*M0)~x z_T`)meHgzT0QQ@QpwPx1+sjSs=;jwKMTHDmF3M322}%P=g!D1ZFY% z=0m9)@+xwtTPRdm<1V0b7ZtlCfUUn^B6|*-k4mPTpVrI4dH2{dQxd?a`nqiN(ZEt#w z9Bd}0Zo=&YP>ij0^+*FFSwn%IkWxCbj-Q5+QCuS%{(~FY^V%Ry{6iWUGjAia7F=ur z+k|~}tRu{RF&g@<`n6-HbV)+1z_bg!ud+dzFN9e$d~}z3bKIP3W%ZNzq}FNg9}r2q zSuwWGjxf_f3TL=A7gW-oubJF{zDvJ)QbVagX{g|l zs76y^l#;e5vv5H#EVPy^{u)3~L1_eL%Wn)=;fg$qY#j3VILWdMA9;QXAALYC)Dino za=x+fIf3S*7Och}w9@34_PW9Z+$WJ(7vE=v#e9Rd=@wiek3{pS<)_`ePwD8yGQZ@2 zA<|mqR+NirGEB{M8m4hW^C+cIy)<@tCZ(bos>jZfBZ0Khh9`2 zIzLhlCJ$3HC7ClEK@J=ImA+?!k50_7Y1^stbZR{IG;MtBc=WtQK%#;`WBl0eq9_Nu zj%=`0sg5cUjvnh&x7XE7gc1=Pw}}h>2v;ebJ{~>KMFS+QaQb)-Evp$KichTblDPi* zcQ$k_!q+Mg2mSCQc4<89Y5ToqIfh%KF1xsf0};Bvr8RP>yp^@H8WuG?4Z;nv4H8XC zH44{dZ8q0-3|)Y*(q0H%*ymvj+NRm(E$JSAOj{%K)5R`m(|M6d{P_O+SqJ5rrHxiz zD*Sl@>4VfuX3@dW#w|9;Mh9%f#WZeEE3uN}`QB>DkKi{cEorM(s!=07*X&Hr-Irlu zE2ZCnbFQrPU+Z6|=XKjW#4V9s!*ge_^S`=pMUB5ugGoqgxJkM5%wTta`z`4@4KWw^ z`Pa`kYWY|ee4dkD*KseP}~l&rZz_;o7DQqyG%rshMK|> zj%30f#9v^pA)6x^R|b^+`p{h_d~ccwSn|Z{xJC4b4Eq1$ZSJbiGXwk@QE1}|6S0M3nQ91NVJ=2?xF~PDOSL_-LVn-npKBW zsK7dQBYw6Tb$AyiEGb0it-WLjMSVm_=USiHnCWZUm|1@T3eg%0OEK!vUoOJZODVc@ zGjY{F)I~E=1WX;xFdNeIbZx2?)|GcUiaxi+igfPwocX7_H8T==^%n=y+z- zm}Hyj_Oy2CMo8>nIkg5{wt`KQ2Hm&Ycd}aI1DIrr945 zd;4d=NG<#cr863?f{syb=h>e>fA)ONHo zzU?z6k)fh_y=nou-)+0p#VG#)=CI_{Qdp@)O0;+<1%ejnAZoI4RS_e7%x^zFngQrt z1MdSrd@riw5{(9w6>%PAiqV1r0h5Wi>swq1I2QNx=m$jtM;*XEW5?}H$z2QqBEz~9 zQtL!>Uf1{&)dGaEp5dWCXC^(RZmA%@5%B5JxDv|DMCrChFEPl*l!Ptq1}I66Kd%QZI!^zts@&R*Q?;tEXk%49X( zm$jcH_Z%lVZduz;UWnXn!FCVj>92bE<9+!VE-Iv3IPX2fprJ0HHY&vRNVJ?2!C@*t*hTv@rim`W zdK+|w1bZupD7Bs{sS34?Ni%KuD{e(fQ`KP$Oc4u2cGv|klgJ+QeEt283lb4oi6?*1 zl)wJ23;_YC3nHWFFHm@UcG@VNt@$Rf!X8Kg06ebGc`EOd-buD@awq;!l; zsxQbw?ikyye&t4b)sHLgvy|EuJ0U@GD@h%`O)1d?juzHmb_2gtt)g8Y*3c%>&E4Zk zw}T&$Zo4Pl^Ut-pY6tCI*^;-{QKcVYA`Dnt2}NX2oksg553mns=(40N-Ve%f?MY?X zJt*6Lv#?*Y?9I$R#J>CA?v`jWR(#@9223}=tlkPR7>w4z>6INQ%Asuh({21$(u=Wf zUftNRxHzJ$SQv<>fDZcED*+Qp?Ot`GkG;#e!S;PuwNs}@UX(-Qe!GzIUsJT(8 zk|1$g{VPZ@?FaMPTz`b}pR~6URdWe{10a2n)zHNH>-z)G+zBju84f5a>vyIonML0X z#l9FL4hvHgP11ba`YVVfp{KQUjd-^n?0p`4nP~!Tf`B-VSSwScxy;=>oqDF9-@*~CNSAN1~H*mQ|3NkfHUH<8qd?;q}X&*Ks z7nUd`3=JPikLjX;$N#LwGuN3e`UU~&@D}s<>jaMD@yQO9z~ke95?H)Y+5Qb+qipbw z#sBwLe(*i~NU`|UG8|-gITjzM$H3ultmv_n_r=W>_4 z!_30WVBl~^2`LVD;BYQXco~PoLz%y8B*x*QwUGLlQjNny%Ae%5G)*YQ;ca^;F+)w` za1Th#;hw0);CCIbNu{J?aE2-dw>h3ks)lF==UT5yc%OlRoziS6`ucB;pHWGezMBMt9sz@QH`&J=l^oPMvVEcVBWB*U$VOr<5k@QQjO=o z`EKL+vPIqVJdKtw>Z`1~t@HfBC%-J7uRAZz^L0oAR{uI%gs!WxKdZ)YIx#g$3=7|a zHV&S4x_r(tA!eKckSgj#%BTMd+jlv(Z=?Z)jT8Xk#Q$taeoB^EYRAoLy5_=$&~eW${%lf{V|VAIsm_YR5O4$!^mx_d^wO~rwpJhMN%KrV9l2-O_SBh5y zbP6feYNG64yU}ySm-&$r319q(kwXv(8gHyqnOD$&jrD*p%MX+56tXBLL=C^wx=fV~ zLgC|;W%pEBkH1(Gm?DUrRM`AsgCx_hm_jC(rrkCByRwqj4m|Nl!u9=e%6W5c5B-j5PnJ#6jTypb`W^ea-ow z6LDtjewiO>{y){Gy*mF7R_Fv@KB=7i1OF#wWB#u!Tb=&}k>~$Y44UfvpY#y(e`OEj z^Z)w5|NKbvzw5F(|0i9>{C{FO0;=+VHN9X899FIuc>a&A{qgx<^Yl{uuc5?xLE!d5 zrIzx)IXKGng0prq)CX&StNeeQw(R7?Dlzvx|5worK5req1phB7<^TUD_V7Mvvegi= zMn0Ln+_wZ{k1h1CWDoEA6Tq%*$(8Kko!+T=M7);n;kkXk3#!-IudB3vDi47~=5voH-}p{KDIuftDl+U1)Y@(uo1U48*ejpPX%mFKV(QjDIT%D#r)XmllO zkbSy3s=Qv4c@|wgHeSqA@OD+*FK)WdQJgis-Y+ztpHvbCIX&KNvvYQ0Xt5y6_%TjX zswI8|Lh4wL14nRvsLuB_VT%ZAVm5aI-Kbu39slp_v!|!+Q%#{2af;fkhmt)CV_Wy2 z1R))rS3`|FH*XI}6gr1s0%77?Izn6QT*9ZdQ0zQ8`I+S>L7qTsFD*C|Xfpd|tNOY+ z-$f>FTK!=T8hx3pzn|YNx%(h@(dgAqw$LfY^^_~6#eGKYVws{nQ6UJpJAi+`Z+mU*%>uEcB8u_R%nb~NgsC8LzWX;H8 z%StCBn`%bp#x*j(t1YR8Hdiz9`UD@_yT+6Zd0Rs=Z5$%pRCG>vU(NcH>uhpghO3-= ztii%rZm?@8X&6*I5JKtVdQ2a5dZWXPkJb9uuCi;qE7D z2i8YB5vswo)M9&HvV5SOR?n{^CSt&@ceF?yPj0s9a_g>i6h_q9r*3g^IUMx6uOa&? zMrW#MZ6Bk(K%9_wrSq$-SlJsTtL)v8yxa5)^lcow=HqS-LaXzL1Wu7*NZv=urpknr zxjU+R+22D|P~15mnA(>=QlnJ|=G4(`?ZB{i;dfxpo8omcp5Mej+b{pD4U}g=+V0z! zDb_mdzX^=B!_`N|6pM|v<6+yeuio*=h+2AvZRW`SrP(`{WH*jL-9>S#^)OQac^`^@ z?!s{KZVfVUv$F*2SI&SN{#xH)l)&GeUbtaGP5pcO`8lbE>x1jxvYxZLoM48w*aTep zcUdlZ*J^&%G&gf=jC@x0=ua`TmJy)`cPiCF3vM9*3`xLw*Y^v{nKc}MU$dot<+qe9 zUpe=5)!)+cu&?7N{a#m=J2rXlwvDZIYfr75)@rTvv@ic%P5sIr&RL% zDh_LMmp$*!@>4|Y_UM+w!jS@^cjSW5x379jlLvFc;eyK*CjMvSxD;?UAP3>BaUs0* zy$(V;=+St6?`!Oi#nxT{&W0P?QbHfg4-tv(_e_NuupA00hh}<=r3d)(w{;N~vb>uy zw@FtDWL}K6`<+Q)=+Di+BnRV!T@TH4f2M2~uYTnN8fJpdT?Fh*0CkbSJ%n;{!Gt|o z*`2Mu+m<-~Q1{QTp6|UY>Xj5(f#u{Qn<+7nco($wKi~9zT+Pk8| zYp9>}{oUAu;7F(#tz_A!0eWVlywl5KW3E(DZwBXA$%sHQG#LFE84jN+p_ep$Xh}nk ztBo`ct2Yn=pBEnz^6FRq%!rXOxF&Al(`fdDL-n`Q**tDbu&~O$!UR~WeJU0Z!=uV3 z^kTyAS8m7hwKnZ7Ykl@QM{vfQ16Cib`w@hTX)W`vw;2p(207nYwy?^+N?^F3Hgtjm z?CAzMmv>{J>Rk>?LC75yHq;be-c7z{FEm+kZMIqt)Ol)rkjZ4W37Xq*w+*=OM&-=$Owp zIXVu=_`+|)Ef0IgtrVlH&eFIY1SP{S)stGB&#Q}?4pThwzJ!{G5*KBc4s!!aXP4m+ zIKHDc(Q{W>*}P%hR8Qm2gYH)LZNpbM4M4+1Y2>B#G~(G~@6$uNNq;-5KLuq-Y!I%I z^!EwtuXB)wbXQ${=NL1+P3C`FQ`Z`Sx_6mk zuDjwmBN7+P@a=a6>|X3)j>~;CE|&_I$*&T)P~53DtL{&3)wz6ib>c7(73u^1x&D?_ zN^lD6$3ARRF2u$UwKg3CPfaOiu5HwS3x)_SLchW;J&I@RiRNtQ-TQ3*IyWDl&}uUA z4SmJMRLt4aQ-NHrz(&wWOnMcgc6}0jm2nz~5jS0||Hq3V{wn6WR*L$Vtho9jS6xuu z^5Tn(D#TCvSidog)-1Q16w)V?XWBS+Q#NHd5y@?q)2)98qSJiEhP*5%_Cv}or)<8- zFASrK0S~s*XH=QXYOHvj-5PD{gcS?f%ub za_i}%httJtW<5Q6q{!yAv!34g+r)aR=lB03)>F4}_A9iW9^WSG>5Q#ePw!8xC!~l$ zlbBCXdtda$7hZhr?57ozO>#6Eb#L8%I#5ObY5VDaPc5~do<%xUv7a7Ma*6%)H;JNu z!hV{KxX59|WX83h{({w_2{^NUNguZ@{@>V8+rN*2rj!_B=jvC^#D)sc{I&k#ogVn^ zgqkxkqDY(cp#3ge`Ti*@>c$q~Iv7&zYPJrE3E9$amwM;XE*m$qRihAxZ)c1x0tNuq$ z6rvP$xyGbpF?ze8sb)nTtD-N%iuzk7-B8L}c(#^|M1{HJuB}^9JK+M@1}o}wDi#n^ zVMTpGxm&fOzG(Hwv7&MZ8w@XHMRn80_*T>}(-2m%qUxafQY-56rC@42D{B9_Wd8G3 z)FzbEv;aEszY_uUe*0Y}fX20>=FNI#cGM=>uhs0RnKTHYG)dovRMkZ)Zdx1@$4vhXwuVp**BBv%-ip>>D-DXl>wyKDY^7*0lyWN)ZTHq zSHY6{7wu)cX^1VUKjB}fW=VAr(7A1v)bb-V!6lYd275src}r@ZJ}WJ$^G7Q!sU0X< zZb?1&oK+W{E_<4v+h$1}k=?o_#WhcU2Pzw1^~AeEPtgGRMZ(&Nm27={Be^j`l{GgPyAE1)yL$#3{Rb3=QQYe0(V7D zyvjC}_23Nr!d!Lz+Sybizf5eZNBI5!hE0`e04J|(J8Ec~462WB&7e9ZF{mE=WJ9)K zJ5LGq7NhO|{Nk2}x#i>bhSzLYYR2<$$F}WC4M@WL(^l1IEhH_GTWgMm?A@8?2ta~3 z%PG0Us`|Rb(m!EUJ&YXKx>dy_{N|633_U#frWzRa|Hi1gPU9>$s`kXF5-^WGc<{Hs zI-%x~;fDuby`8AGW??q7O*Yigu51+>>H(HhStwiEiTW93Ua<{z!F~v=m$sq4eT0Lf z(uSJrA!LF0zu1ZT9BLEs0IzT-s%s&`*j5|r9XtZfs9v!R_2WMp&j*XC@o1qiZA1Ni z0V&mNs3|J?GHj?HmNb;Ip?>s?fe^U;@C{qHq3&q3)vLiY>G5}>=Itw*@rbFgq28|C zt=drUwEE-NP#FiqOW9D1X=8jFsw)j)6&vby@=I-~>=MmRdbGtww{xwzPO{vM0(kdn%@XAc48)ZsXGnvNrS4M0yoyG#lXE2$*>j*cDeo9|Z>C-0D z8`u{CVO3406zKP`_flpuO`J!~5|hc5XW#t_wK=ZI^!@9VecNz*Ep0ksp5KP8r!UC@ zE-{%xe^2Xj$y~~08fJ#ZGnqCfvv=XYSDC%7SV*$LV+-lfg9AD%ETk9agmSNfg|sM!mUtW z&EgylQqk`2vU@=KcxJTss9eiWXtWPF3GOgpK46|Gfz3bSfj*<5_i5<=$d5DhcmJ57 zYwJz#H?nyRrf3hc<;XNEZbR~Ao4fRw>CM|sY}W3#tX)E2+J^E5j-g;t?l(vKYfLso z`ydOt-Go-&SmvL>NZ+5Z@$mFHiLAIjcXPj)h7}~xxz^HG_1d38pZ?@KRX90W#fIc6 zE0*tc#cX=I=1aKtlb5RG;%|1kg_9KbDIN*oPg9x$en!d9f#m04_}Ou@TCcfqKLBvu zIjD$k@3^NX`y8j)M1`%<2;nUyC4738m4_Bk*NM&4B}(pdQir;?qgN#A7Nul>ar~m) zx9|q^YCD2;95}Q47Vf92oy6X3DgFr7<)jWjp%i}v>vzI&(rR)9YmY1a34~qwkxlMf znDSQPInxgLbsta{1NNAypB7M zVRhbIS;sD1^eEiH<}^N-bxt>MI$rqjTMQZ~uXXiH!RStBSbsM;Q{L%L4#qx>pcFms zfYtHQ zZ+;C}P~boiGAd&SHAI*p^{q-Z zG^m5NW*YP7IUB091fX0(9Pz!@`(j_X9 zE)z^gsU}^@>ZGL0o!Ue|ofRtB0pQQ@R-{XV;B?Yul7q3jbSdjEC0#yL+26R*<(qkr zp0Du(^aSbh#Tka4>e8jG>y&i)gQ?`{p~kG}Zmb;t(w7?e7exutZqj8aC0*iUVB<=c z9fYZukS>pFNbxbSAWQC6YKe5YSBAV+m$Y;_{Q;9Mko2}omos)V=^{l*(uD?7(uFTc z7aEME%O|YktxK2f_N?=K2(uJPjz4!GqI@>W{I96g7TVi9p zdm5>)ZeWzN2~BzK-`iwCRYR5lytmK&M5-0xK`ThTf6W>q8EA-<( zvrT?{cjvv^KB+iXQkT6XGjP8;rERUGcq zlx(8REj8Tu_gi%@UG9|~1Np>#FXeDY7}(@l6qC+(9f`nK;I0{Wugyu2qcqM`FBZl0 zVI1xO82;|G=u+)EKe+y<=>E#sshI?r{#;;FIsJ{^d@uL`=zUaRAFJVW_G5h@XT>Br z&T4XluhJQkpH9~lWwyz4e}yYs#dE*+{?^J?J@-3M<`sMHZ$W!8yJChSs>eM;@@M%j z72{NK%H{L>`JDe7&wbzb{u$5xow_G;TRr!=yCIC=pne5sNS^-{^$T&V)0wk`sI=$4 zS2a=~@pohF`~;5yT4c)@knFD$2u;2L)epk~Kcwgqtg>zR~l zTL6FCK^gHDz=v2x_zYVB-*y}@%6R28+^#41tkYWnyKzKOHj@=fAHKntmQttgat3@C z&AX!9|M)M|thxp8Azj3j8+QxfJ6}`wZNqn%x5yT;ZP^0o-kWMww*a2}tQt&h0USch z<81-dmyy9GE6T{AorH2S_{1+$WN?br@MLiM9pjO~R`wDe*emQ2FfUK-7Urd5FX0Dq zxmRH?VXaI?H+}J5!Ub=rzL&5&0ifHqmr#$L#AJ5Uav-z^?lCe9Vy|DHm3s+O;h(T? z5Ndvvq9H9*&$;TN;K`bWcrT&az2CZ2+rPzeJZC%g;F zaXm_}R4Uy5h+vf~Mwi`1#-W+M@&})n;Z=7f&QJ+^O6lJ046JCEdYns*Fml$ZO@9&j zZ>LIs1MjlWUqYg=Q_fX0hxEMOG zvHq4;{` ztL1uMAkl&B-T0gsJ{w0SamITThf8ME&1$;Z=9&wAwS!0Ye_5@Fu5$hb5h}WNI1g^^ zJma9TE3kUs}ron1&G%Y|-4=S?^>QfB?0qXSKt7)kPQj5{uKL?CM zGo$5FOZZd%Q$mj>p?1K(g`o}CQ80F^gwt-~9KL%b`qYZl+gZa3V}TUIGa>C19@735< zes853lNe_9veqgv(B6n0es(xl>?;=~)nJ_L3?U&o}gVu>_bwKJE1uQ^!7NDvWEb zy<(6mJA4=&>i$wxruvn8srO?yZ&dZwvT$MUFV*>tTyuD(spV^+ab5@y4aMo1d@tSbX|Yi%UB zB--q0xPm5f-=?7*Fazt>+srIxen?-`+H58k^G}n1WG@F*2OvMLaGpe z#v^-!-0gm3Q`nfbtd854jPp88$%^?Lb-m!`37gzlS7tL;p=@5+cfn-+9jVV2CjG~` zT33qEV;onF%QhNAAlq{Txfb+}P2BLZ$qqpv?)~Dh0_UEqkV8j;uUc7*H*d3gWmdqV zR`J>;o5n;7xtrOy04Jk{@l*hlzlOwLI#Q4uXK}7`%rx3gtCM$^1-qGAK2?n&yx9Vw zsL>fWYlWZX{wI}TQ`2nwyftTz-$v2uB-GSw!CjPH(#I7%Fc31tlI(n_8GCNX=5o7R zm|mY+*!}EJ3CWhR1eXJ(F4^bmfcq^Xq6h0&Ugj9HU-Pl+I?)HTf}7qo-RD~vzR8+) zo+R#V`**MQ)vsKj`pMf5y*mNYOn-HX)(8F-c7uXk67*SEQrByHpB*TQwF5uZZ>Rn| z_t)&%eGSySIiCPEomLJ&=applHQ; z0L0?LnPHRs~Zuscj zz~bDas8+d+(fi+MGrxvT)?jl01~P(51wwEfM88nW$)0(7?vw7%z0DBZY=lvaZv3fz zy0XRSbX`n!XlB6O4KkbY86^T|-x&fMRd1D*<=QH1foZqsxg82@n}6D-*vKre=uA}6 zgy!7EAn4NZ^BsTF!lhfhX2^}bI@Q?;)|owN(Xo7xi$T83+!Zr}P^@NHY+-cVjC4A` zn0W{v1%l{iVXtNxXP&|xIs!Fbf&TPYGwqMg-3JU=gPs9%1{D-9&OKq;uBo6$Scsr2 zQqq*C(F-R#_s2tx>NaWX^|XcigHiJco8IWU&Y{Y)U+UV92DrF8T*+~&2jzYU3JGh> z6Ub+S(%4QFLxm}uY|Mj7Q;cTX?41!IFBdKKil&6&azxeU_KSAlzbjTu%6n;8INM3X z`#D})MH;qlLL4Fo-Rl^!D14BIL*mlD=@sY4jV|zwUXpH<1q~|)aoK*+PWrQAg{-zQ zlgU$jg(c|Zh~YQ@dn$n=bg<(5q~-tlxEtTIH7Xh644Wy6 z(82vt%#49*u?RP*Dc)i7VH51a!~XgknkU!a06zlb;pzPC+VmQ!&v#Cud<*4_PQLd= z8uNam1NVXyynn#=z34=@0=Q>j9SG)uk=fV`ii**cJ&XhRK7Lv@zsq8K=rqZWAoQbi zKNAGhs8fv>ZVt*zoOHQ@E1(c71rXeGb)962FxS_Td%7hTIU%B~-EiFjC&X!OHj3(r zBRJoGPuF+H*cK@bR-mc=`UZX`cYj+dz;f^02JYojrXaC~c)01ay6sX4Wa#-T8yC|E zx!xUX-o@ww#a`5UPtHsh0{0}{qNR&IOJ5dU;D7c4hu#1t|Yex9xE?=sLCqnaA780_o~I&u1`PBK3H-U{P1L z5;;1`Na%8B61g;2o_mnXWf=ya1#VVykTf2r@oFx+!8n(RN(KJU88J88(Sjm=be2g!tBe$~e;v1B7DT&Lt-?c+8}S8sv-XtDE8efWFR z@-6hF9*slyeXHbbEnqQ=VBkEoi;=gQICTl9E5YPzfVLRDTPlbPL;nSg1bW>-%n++8 zRagczYQ%&KKR>*^CYCGP1-WuWNr{@;Sh7%}T(Z39Qp50oVE(1!*fFXHzfTaB!93ed zc_N1K+#SwKg{wo8KbFmzhs|otlqb}uHgtR53vz2Z9f3-PokM#a%Li)eSN@2xvT_N> z_V8xEVBG8Nnhbp6C)62D8uG_hl4xyHroq*KUWr4WNQQI%(ugHJp(N=YSM?FB|DV>^ zvSULXbcA>nZ`>5G;u178_w~aom+*^9`W6Lr+&(?MO2%He;8P7arO#1x!tIjPv?PcA zEOb!5zT5=w#5!{XB(U@Y31IRku_es=-JC7SgGg zS>5ZbZef)z8}_O$P!&wV=f8S^wOg0X$${9?4i$A}bJ+&Ir}5p*??&iix~wQ&aGqb< zlg)+FYx(R=mF~0Bxd)<~86(`dM6ia%>SriA2=bI@A320)^j@?qdv`$Fj-%R>eSeMS{t=xuMeLe)qiUyFsxzdmuEx zP2c~k1yd$Un9m&;rC&n3l$rQ2C3hwNz&kT^b)R2xDtwzX+rt%wWeUH&v8ENP7+ssr zZQK@lJK7@H$Cqd(Z0~=c6K9=9`cBwd#!Wus-Ih@<%a)PaP2*`vdjdcKs)^K5(;<1y zJ^y|f#Pi584SXV114kXx$oF)|CnrxwcWz>(ZlYCcr{#BpjaFF11t(m50=G*Urj$$0 z&w;Blhs*4-1emO3O{i$|w_q#C{!2Cuib~xJmW1Rs3I};lX2ocK7zsmsds9b-b?_); z=8+rd8i|WyFEPKTUOP%;q|V-|1XQ~qo@e;&H1#f!c`@Ro`4(O-kYE*(7n+7x-?3I; z`Q3$MzaXFrwi3z>Y3?dy_Iv6aTsK(R*orp3IQksBejm!X=e& z(FW;|<41WHmX9SD_P&EC)ik?oGbo=)Ksm^Ra&7{O7kcRpm}X$>H?M?T0{&6#`wj`g zCw*dtTR*7jpGGbvi_u#9bnz$dN%saw1?)qF+M~wCDu~34rDmwG=+keCeU7GWu`>>G z!|%AgIdQa?z!-~TFGh~Cj_^Jl8-zl6iNkz}$Kw)}DkEd)C);U>k%sg=`?Q^w-D#k^ za-ncID{spxkAB}RJH}VV=z;I?x$w3&F`DHM#QFAl#vbZgd)445oJzZs^X>!~ml*2_ z5bAb16E$cyP#$cWAtjvC21-5!cLz$X#)5tM(@;; z?=7+uH5DeS>D})Z&BQ}blW5F9jTg8#kNUkwjem}mNQq@51Gv;Z}%md6nYm>dW+%n6qD0^NdN zXAqab03E;GsZj`)!j283t&NH1y$T_5Q5B5EtzcG`dWojfv8fpZLV7aC;LTjiAoAyz zCc&7-T|1Wlvi9Q1{P%#1OUQ4f;2W^P+V&Jew5T;wQ`+}4HV~-{- z(zYH|a|hn&)umko>oi$a?*2JCx1qeA>c}7gf`(-?_22p{w4U;7`(=yt-})=oxbF$e z&gZ*s*}I3YAb~bV0dEXc4%xwW9mLuYZDKK_o1=604qrKbsT*JeS8C*(aT=OCEiNJt zK()Re-6JkCJ>T-n@=}RF&+i!ub}!am%5M{mN2^1a9k|T=MtrlM{#WMR1O)Zi+d5366yX zt+hIcjJ$@j1sgLZ4U+f#z$ylGFw^(3F!IRMSt*&o&4 z5jMu;+-8Prb^bc54Lm!#xRykm*=#s2B=T0-4PZn*dz zrH!uayLeV<%3&+oF0;5o#2vyL#lbu0IrYeAi=6acGPeC@FLRr?&(SE>B;uxPr9DQd{1LZPxL<+ z``BXs%?%Kz38)X1Jm9q5#mPy#vE}e^?Z6gM0gOjT@Xk&pHJUVibRsFkGi^)275T$X zT%w zAfja0mcLKPf1ql9xgdfB8|$x^yfoqS4JtX6p|HFmdY4S4MAEp>SCp{jq~f!&?>}Yp zsATV{%jPC$b0^ki^NZl;_e{&?-iahUaa#0mlKcdkCu>+NA+_Mx!g4&dO`IO~UnVN! zbtD_FBb8C$mr6u?u|N0?$;>KI;FtU-8C#74KSd=fqQH-Ksj{-Ynriy~uOEDI+$iu_ z@)BqTM)?Y)cvm#}N`{|uypmNC1s<6{F9`E^?UaUnd;RrG74XF-M&Gnp`tNEs3yt_- z|3!RvP4mUTV=?;kQE`{(x=W@xh2JRXIm>dZoI9_o#Vk^-!~X;x7T$(;OM0HQr|FS! z?k9iCJ>3Z%Sa(!u*;i-%c#+8f_)Ca8%Yzci9p0F$;~@8anDVlq-cemZgo& z)BN8({NFw8FU4V)C5OK{2!Q06X>^F903Qu~)1m%jc5BE7o$d zdBozNk_d1TL&!P#Tr4QlL9T_b9(?pLeerYFC? z?cB6LN{HvCFH)~6H_a9xTji$LsYC@gz3^2_E$607ab}Nqrs6wB=H=Y<>{nvaW~N|* zt#T8SwG~-20H|ro$Zkc}?DU z**u-)*-FZ7pUu6WoGiSI-#dq2JcnOA-`teV9ofkBXwl;y1`DIDU-<>6vh?Jex65TV zS(9;FnE5$2p5n$@`uOg5jb#RgZ_`8=rg&xvU$cVL{O2wDEJmOC4TtKDA9`>u;4XCL z(KEP#)e~tBqgSwi`GmO8_efKvHh=;TCHP(of_oEud-Ml@sA^{n^?(v-x@SknMPi_}>@#P^1sa+W=2V zlD_5s>hd?HG&+l#kp@oQ1^N>Rg-Jg=azc%u{~`--Wj=PY9x%H=niIdWt8J5Fxvz5~ zb%G8rDe4Est{h5W)fI#$XwA;~F+0{+lW%OQHDcJy0Fn*kwAb;;%@fw?#DaOR z*~IH+6K{3>7mfx)>*~wX&pV|`|3g5m8LmDQ>sOw!f(>LS9*EQ+Rg$x=L8ZDHMz{i_ zGS&HJK?XRpnE%!@yKnJtLG*xKKb*|gp82~yzFj*Dgpeh`8e zSy4=$Ooq>5vd#kIa(9VEbRrv)BzXXOr#SS!xrE+zx?ETuA}q?&`w)a1jm#&5_FDV% zZPZs+2H4kd&^cNibkn1XHUYL|>5Q!xou>j|F95Cuz%>Ba6TG+a*(2lP$(zNP6LK4R zzxUnmemBb;>E-deBgdw}Ra=csX}FS27c=h(D}G6oA%@Pk_H+zQDQ87X7b{ML6nmtwNfY=MGs+UDDc-p=_B#T&0{g9j{d(%Zz=a1})=eo- zKTn%%272gE;Aznq1b=wCbFG`<*V_K(t|k=_ zV4Akt?A=cYX7JI^8H<`Wp?Pp)%`7*htx~80+j~SFxtm=)#C7M2#r%V^xq?EVkIHqj zf4?QaO8+IO#RY7*7;ML2pXQ7f@+Iq|qi6cq3fPRDp476kPbk4^QOxvuPD32F_6}!^ zWFuQWHjT5yv@^u6Z0|=ucGkzw{=_HG$*%jbdCS^9%kaC&TV2eoIsbwSKR5jE z3@L9=6A^MvHh;5&`8pTTZ7f{qFxkRvVrGydUy4|M03-RlO zJY*#oKIU3BX_7{b;szKRG9w)hlP?I3X>n^vCW^>l+~e;04$LSlW_z62(tIa|)vg9} zvN;SJtqPN#Rt=LS^05JW9W$M-Fe$&lXK7qMG=@(7j!b7CqakW!PE6Lbtzr9- zpsl5+>%FxNmVL0MEcW6q0N2flHzdpFl9cxe2=P+Kr9sqIe7>zsDjl5+rsVK-XRSFx ziG1c_kn;N<>N_ojlZDwCt47~ABDW07#T{z3eV$)9F3jrfvxzUX@K-pp?ehJ)jSGfc zQZZVS)3+#+VT=5%)LvJLs#J-9OYx1{issw8eVCmq05!V1fC1 zg^!~wpm0z>Kl}xuCT2d*KAs`sFDF6$=SH>?Kn7bKQ~lrVYr^@JWOqW?qW#-!85JM5 zcv8wDrg1&yTN>$ix_ocmwIy0=vI%(oh=jvNP+6Ctb6Y4;9?Q9+rQlmzw!byFlsgMV zA32#;kpRW03dGsccmnY`}Jwf!X5y0&BaPimJDOZ1Zo zZQEN^*zm*bQ}aEsZASu|Ca|kB{0mE2Tf0mt6IFU`T>1yD^pv)PNv&H^$A70R-)Urb zqMkaU9XQr^z7Ou@4o-L3!SF?{$`00TUE4lZv@TWj198#!xS~5+(WwT}R6(@R(${Wh zuxt;K0K*R1*9=)?hB)`+gN?6ptzUbaiOR_|R4XYc zjj$NCxy)WNbD0QNS#6t2)Qo`hXhPfaQ0}%jGqb^I8wk_;!UJ6fuWbte9Mc$=uGR5-D*O|%@#;6CWHKato2e8RhdkKBGibb{}aiP=dpBNgunOtDGk z%*^tiY~QB6QO#o==Wu<-bTW2o+dH563GsbxyZZuDx#GiK;f4c7CK-jNxFr@473-%D ze%%hJVtb;&R#CsYj!jDCAOglJ96(6&)~J}-+%AUpfkfW&xP!{;ls;oaZos#H$)-jK z3*CN97VvdE!i5Z3YQn>&B*g1JCCuW8<_d56psq~7AWz}lEMXWra-^W@r^w_x7F`AzeIRI%i;JLVrU zfA;)2^MP^xy!rFzFPIOE&hE(eE@)aXYr!E4fNsH@1#=h7TL5&KHPq`NZ^43v3qfLb z-9iSx5Fp80OI~lb*Cz;~h4U9uj_JzWNZ$HFh(`={69lOcq-RT-Fv;*rt!i@Xa z(dXprxc_s=a4wO4-95B3Ks(3_ci?!d)mD6#Y9-GOKM0l6r=lC zNtE9rKh>Z;KjgHw?eyA4K}uXP;$|{0JET?A+1m16>qOBY3sfZI!65j2SAy=Q69}|q z!G>x<<)t>D)8fbKuRnfT{q+!!>3`RA1c4b&t@HGOU1qyA%@pi&f!oY*^B#OH+|aha zG6l#@4+|fNbv|7o$Tzg7i&U~|ovH>7yOur<=#TSLn2z{6&~5Z+9|qkoxodzl z*Ii3RcP`{byB_@tL2-8}2(taSdxL}5qyu)fK`h@TWcuNC5p84R2wGu+{@sy*SvwbD z=$~w#C`d1f{wkDJN@rE%e;)+jAIpCh_#HC+Ol>=SGx7mEi_QEfW}b0>MjQD8Y}QH~ zMY(}l5(%)0;$wFyW`0dB;hr}uY4nJZz0jJ6U_u5X#R0671^160(b3oJl;2WK)-Pw@ zHw{SWf$X7v^xFqDgVUIqbUaHVgoCk=c|k>9zfRi7W|IW0&eI%M6mJY%QKle~?Kn{o zOc(Rz+J2oQ(sF=q2chzTt|fcwr{+1I`87RAabs(mo9w2nI73Majv9=kt=>qsMOO{p z0(%+Q3Z~pBa@SY}Z{f?5pJoN^f=FB{AC~%{rMfQns2#qPPrBM+#d&nKKAPOo-&fY* zcdY`s9YaTS^tb!m(A?#5b1^sv+eG{-LstXITXg zR<*txLV*&)OS+(6!==Lb zeSyg(1p*A`gaReGVcwQlu7@TVE{Sz!`r`{b2K>0nU$2(FRyLw zn#$*WDG5)wlky0vVlc6=ltR(oWO$)X2_Wb2M6;F$nX~rxj>59>? zE(6hTZU{YL0w}Wv&;D_+V12Ozk_P`XZqVRebW*te<&sTZhV+|FVanN+KvBmh1xcnS z`njs%H7J-jqT727b^-E5w-7U1v$$~htvY}Zj&-+kjN#eEIqKjb{kut4%93r$R$=!i zE}0mhy+axKg1TLFla~3#g@g0f7K)I+ny9c!npjKj_lt8+9i4mHZICY3XszvgtZnH{ zx`*K1?P|Li9e6G<`}mXnF4S-DnC6yT2aHqixI3KOkt6MBuo@{wf4v}Fw~^F2jymCr zqfqe|l=Cx{{R}@Zxm`%K`x_R0XwfO2qzaQB^dQZD5&2h`bkqt#h$b{?gJlTnf89m% zSBy^m6y8o(F}j68yPwTn%ehG^!|~PnulvpSko4R@Uo^#)ie(_)QImg8=@<$+Lbu%* zB5_A9y@_!6N3Wk%&cfS>0$q69@+rOayJciYBWBDPhQtg7B1FzML~Yhmg?n+4l1tr- zE@)uPR(nDW@cHX7wV2C#aX-~2bUhaJve^|bLX3ku{|rhz7@q$^@m#gyUxR4l;t98- z#pIi(C4SD}GbPdO07m)N$8t-w;CP_?nv0537pH(N0>q4go9n>fnEP#JWgWk9X$Qff z0a1EX2+0<@<)c&q&!nqAVW^7lt>FGWq@K<$i$*xRY=2fY*q_2Q{&0arjr}RqDG^q) zJSjmk{rOwK7iqS=iGhoDS3^rh2z_pycP|6wR(;Is@4nM#Aw$uE9K0=*bNL*&wT2fl zzW0zr3!KxnBsgc98hr;#cwzT%wORc^>hn42Ps>Er4k{1aBxht6qh=26P$qyZ3=WCz zb}$$-z1<}AQu$AxP>~Oc}A^g#=7F$Y>Zw=QLxkXo=2*#A$P%@wvrkO*YgGE z?y~SUJjh#R+?UmJ3L4ZfX}tpMupQ4YQNUupC>hh45JZX(3YiygscqN%5z7dK^*3Z* zOfj;ux2zEDgT2yh&w<=mRDbKJfp9}Z{jD3$>iaw)SL>sOGw&YDJ#gmwE%h_Ta_e*b z>xU-P_7`^Sl)$R($J=rDnVol_1Z&#>i6FIL-%)>^Lt4kC{nZZM7~j#`fy8FW9_wAW zVZ}81=l8Ve9ps$3@U|5th$xYdjUW%&b)xlW7)mTmxALbZ+5xy}wUF83mTDY6Om-%v zS3n!wPCjMX6r+%lNj~_&6N;BDu7hv^4|tm*$+ep{QJs zo#bw>0a-{!ys&wBt!uOmO|7^vc41dFvxzAqrE5uT@Z6`ymaHgXR!q`dYwYV*o@9TH z)deZ5757E2K3&EL94{oRlwU59*RJ!xM}ZTr2W_RLou7lgsd2+Du$~7#67WkVR6u+~ zNed3*2{E^(=z%rO!MoYRD~!kXmSI59s{e4(V;mSfL_-GA#2BJ*xF|)(OJImJ9e;&2 z(U2b@QUV=UskfKy(Lmd!+nrO0fFmhQwcNf@Nwr(UNsRgCiDg*w41P7nNEMFBHyDA9 zCQvtlvq5k%DDwRgaHL0iB2HSqM-5!l%8bb_ajhg#L#YXJ@?{^^r!&09i>+gkW-O9U($zVtm~i?fz?!mrXd*2`Zf|E?UAP|B zTr<1{Ps8s|scEEgmw@S~<|HNLGFtKw&_s1HN>n03ATK_6 z$B~ITq@P)n&wL-hWG-`UKJ(3kPd)SXZedvM7KU$)F;#?x6*6CO32(E6Yf1PIm+*t< zG*2!6!CZZXNnTCP)k66x=*0QV)$t@RVRm{eW~Wz0$7pks_00PfQox8aQ+hf5Jtl%1-?Hh|&YhEfbkFc*o>EU-CER@`8(a4 z8LAj`7?D7$3CngyP_Bg~G`b!NQ;7mzQ>-rV{*9I=nwjob*RhCS!zYgr> zfbGtU@P-A^B!HVTPgj^sd)(JkS9pI7We+@KEuZ9CE&;RK>14@jSt_^El(DVrm)6%M zTENP*$Ml*^FX#ZtirN6hKzBw@#!5GV?0AMNa@VGFjd!VQ-1-%xw)?{8g?vH|_cQ-o z6wP0U$T{$|4HbU@TrI z|H9PM4l6tV0RAoRyL_E|pA=x2EN;XxYB1KR_#6PG+2?t_E7!?q)yG3<6Zy=uK#zL% zcPc$&J`l8<+&x*_Qe(*6Y0{saI#7Q@>ofH?+>>4Z`^M~zO0Hoe$z`QwP<7gqXTUro z46W1-OzDAKxa@L8bnZzdLT_ns>Oh+Ayr%)bj@=ek(qhn#vk5l=h3q6Vy3H6jphBdZQ(-Xb{r`esHuVizN*}+?A)7f ze>}McUwh7oex2^=8Qx9mss*a+sZDKzyEw96d&rV%H>ayTY|FFW)@TFzf(^)D$ada+ z6;+A0N_zYTRr8&~#GBd~6_JD7pjEY{Usbjwr%(+0$uSTmuRM0lR!> z%{bn6v8)C2t|@8y^SNx)Mx!s`%Yz9IYmDBt=)6}hcOPD;Kl|6P1Hrt;_e z?~%8(FXwHEsnjF4W@I1q$wye`hBXLg=Nf|9M3SFFVbYD`l+LuV20UY7OUoMgKCW#K z`<}psb0U+k`6}* z{|~9sS9D`qn_T`q7OjDFBT$XREta@Oj0t_#=xH8`=xDF*^*7GYrx<08P84*$6P9XU z{$fqrWW$6;aFGYF(@xYDOtj{aS$b|Yh<&1UIF1&?zI8GahRKP~rNH$0VeG77M zRO(MxswUa1EvkD$&~8b}El1;JPoZP^P|bx?dM7cx7zUa=#yn<^TmT0Hohb!qeRkcK z4mkQM{XdJX{M_&L-x&kC1DYZjQ-YY2qo{I9p0Pfg`+2U4p1{&1w}{s)5*<0#A~bMy z7<+PqzHIAUs;)*?>8@iXl)Ul5DeIro!sT3dmJ^YK&?`pYR*pR_A5_8tuPOc*x(9@T z63=RrsfJ;9i~9SZ{|iqHM>;P6oA~^wt&|nsl;@D=w27AJMx54*fQzfKOw%m!e6Dhr zf~5R7Ea_oq$6QOH)60Okv}JPIM$Ps#4VbGkZP`S_Fx1)~#V2VVh^!CF>+S9Iu)4}4 zOg`K!*8;IByiDU(OJ=LnQ85}o^zc1Er-Ld4`gF`hl$?r(!uw!Lf_O%}6osc6P|Lzsy@3r)vJi;)Wu>?<*|%pg)Mu zA#RAjw2MJvy0P#jT=9+&E^5-(cszl_V)T8NwwAPB$_*&(ZkN_an%!$|KAUcj!AlH- zPVdS)F!PK=carDZR+r=P8`l~hy8;=wqa6+~?u@fbNZ|h;Uw!|9(GG8Uo$)`%yI}UQ zJ+tedKLS=4&sUQ0J*vt$Q#x?0DW^C&%@Yunr(DAecLSb88%(^BD_Nk=ZNr;97bebS zuoXQ}ut8-LLGn_vVwHunSCbW=SI&&v?5mx1e|=o_`S@qGI>th=$xLZ;q0v#pR!UvyAweE7viWQSk+$hKpO z@!^+V9e(NcPu{Um6{9Dq2-9}QjaoMsyg%+H4utv!Gd}!d2VB6x0RlZI?upTI?}sdD zZMKlPf~+23Sj*ov-E=`gJLjw%>*pxLAsjZ|cpv?M0MXV%8VkQ+LLB9#Qy;FHIs%9q zT>yEu!Iz%4!;O@6@_ng*wAhl;{to&di4W^*WGc*DjLupj2uik!pz2_Mhjqle8#uk) z@%zz^pL4bpg=wd(c|{1a7^aPN(5e1cpWRn0EQ{dX+4YZZ2b*;KzCJtk=O!sNer2WB z1b?fDU!MiiG^1_5OdEE86bZDOR*%dRdY^GjHyzO`m zP)mxKKaDvyT-+`R;Z>q1R#Rd;G53fvW39-r6?&vC)JTPOb4l!C6Bhgqj~6>7{3`XM z-qC4|J9q!Lw@x6%H1xl|DA07O7&(JFMS*Y?#czd`qw&fnJP^9=r`tZtQiq0&2!Mhx zOF>#O&<91dexS7~QC0VQ{@>M;7UP)XIyNnVm<3or^#?rOb~eeXf~Mt+GW;ZZeM6Pd?^43KbNI2_N>?>j1VBq1i;<1(n{!5Kwbh$4TQ+pE-KnOkzjGnt~N|XKXb{mJt!1O}O z8V&ph$zBhwoL~e$&BzogMz`Fg5kX1ra|Z#CQ)I({_xb8bu289sODOjKnP_wbQVJH3djXl#*VD=_wMwG;9s+ZuYO7^``XFXNx8r zgxJXE*_c!TD6K-Y=Qw(BM_;3G{0Wd6^yEaFkt*EQ&e0a{!&?hrd|HbS*{n+MC92VQ zo!CMw1>GT1;Eb03c5JZ56(0;NU0JV~7EnqZpxVM@YN_R-A(u*&@`}oyns1+`%TRon z)4Pvm>SIQA?>09C2H*lXUiJIat@3R|%NGZl84`eF2JDhL6C7-foZw!-z)!cs|Hs?6 zz*#wU|4%U#GUJkRi9sm0a*5mvhZDu1l6&v#nrmoWOOt7s<2Ve8Tw+{ecwNS&jHo7E z&LA~z8AS8STPKA<7@_{(?^=65mvhc@&S~oRe?K2@bDrnfYp=cb+H0@9_PU@66EdDJ z4R9YdyU>%-&02}=?!ZK1Sn@GKqNXX-enBbWN&%uo*?|8rZitDpciS1NQHAyFj8^mY z+zL787cN=Tk1%U-AwjyF3DTOgp=C6qFq=pm)KUa>J)LE2jm}V}+sO(G)CV-1@lC*G zKD$;>T&p*sYh{gCs7iPuIsm_g8js2Li^nlRxYP`MQvnT4NUG$;6Mf~JPJY3s==wsM zCu2x}BNAIUtSg&9>R4`&?~dSi>h#v1k zEpR4R$v@*K;Gal+Mfo`XjF!twldkXJ2gym44Zg=c^l>8*M1+51Ne>i2Wb=Y4_26>? zgiEo2Hw}T$@XguxtmW4;E;}wpSnvaODRH+%FSX!q{D*(V!O|Qdg&Lh#5|8t+1of#? z8L*CBMaI|jpIFDI`)@>|)d(B$5M3_sqxwGLcv{w=Q*9YfY>z8j>uGs}wufX9Ps@=f z1Dtw;S}Yw;%Z11fP>Iry=ub#vYyH8Phg;}!Apr*c@Q;KpgT=>fkZ8vlZZ$Bi=0sh+ zLcXCQU5TcuP^*zTrjrsWZh027M**Nm)-WCvGBM=3_90;A&#rZgqN>zWh10rZwKBm9Au3zyDI<^_+7 ztTLT>5KYt9{7tK~G`$oqk+$iLXo~qcF@>%dW&mQS5t8(=N{t=@XK4~Ogja#=g{&Kn ze0%8xf~BqvTet?%4HmmEcmWhsmIs)fGJtX89%kd1W&un90I&_w^0V>S4}!^ShIje) zE}Y_IICf+aT=WNxOyJmIU9^J>t*s8LkL>8!mERA>g;Ra!j&9R9ZL}_zOv}=AuoNHG zDY{#l=0A*REJFRBDRf-g)`^Qk`YCd0yT1qCk$?x*8R*c~(xfBb=e{nq%N1H4t~ULvWpEBy?eD_bjq0q+q@6RgCMPcI z={8*kJ)jnHpV>#_p$VcEM91q&(b)5t{u3EgRS|k3EcSF}C4EBG@g1K+x|XL11e=fo zp+yq=p#@Sbika4`M`FebSjr@AAc5SgKo&lUV4R_~m@k1KRw+M_AqqtPi3}>OC?CxS za>IotnT38)ORO*h)xXmR~5uMssyR7lBn9g`eQXo zd3Zizz;+wxaPGAIYp$@OAQT;6OT3`Rt9E-x2eOyQ6|@%3ub{jFJXbnuS>6bEo=@bI zEiWU&R?Ueg3ST7N#GpY&DHycJ!~W4pqHEe0@x*?8`6P8&r{W<|tL$3v;$j(!(>@$aMbMe5}H{aCG3DDmI_EBPByW%3au=1uI~WM7FV7zqP`$IDK9G?f2DwKQ@xrf@}Mui20EH|N!O z;$j&M<|?N9jfe^%Tl64W^2?=D@ZH!s+?H@qgDIwu#Uj@6%pExA(xBaqeD5?ECk@P( zPMrEn5FIPFciZpewy(cIFqZ-Fph$x%$k_G-l7{ExK@t*JgLP1g2X)4*hgqi?PbIx! z;HZ)NhMhxI__kWsp}We?Tq@mJYOcY3D3XBpi@r>i9AW{qGc0~CW@lm+9n99w zWS1O?pYE<8(~Fi<@Ri*a>_|@1PYE~<0fb$F+$90X#wN86Tz5S3xXP498Y;9Bv&(TM zP|Plglw;b~mP*a@yn?ZBLa3;}p-`ouyH>mHE`Exa6fD$ocE2lm*q2J- zIQULVfXxf0Pc+;v2F-Mg+-o0UWL+fj#GvVDd64y8jd>*-DWL^0Ft{Fk zuBEYDAHPW>g!mj8k^C+WG0pgd#+iv-Dng&*kI1`!d|A*BsgWB?rxDY$kTXjDIIf_) z6UfbV1fSbsA8Uxi_eGJ9X8xJ~FoRZ5wxM*?=XoOzuEkP>F4ll)=Gt;xvnPVC23Sb} z!W^!sy9kE<5gV6<7PToGwdlfvdtzwF*p|Q^UhMl0GyyF1{I9ob3pSerkz0xd@FI+; zh?jSdOSe(EX7W%wcv;GOiIC9!@-OTh0eyA<=!%ank^wOoBcABUW;R!mn3v7QAwUno zTT86=`p3;BC-Rc!!gsx~AT9Z%)h^xZuc*H$($KvgfZvfLfLZe5b?ycHwT!_$i6;(z zG|fsr1XmONBmZSae@EJHvk|9PRvqcjnckAyB$nC9cn*?S9y#>@dCV_H9LPUu^DgDj zudxN#1!#f1hi3r7*C+66-vZRz)iEn;IX#hSD(xogde+2L5%}GU#Fw?#AAfW0g^8hc zRRN+Hb44f)G~(>1VHP=bW$842hGlp!pqphl98ci+E8f3YfT1eJE|!nv)9Dil9WZDJ z73`y$T~<}-Pxc~jltW_`+Wa~dV~L4U1&%=zE-&KW_pMXWojLp6)s5p4y#!L38UvP> z^6N_c{AF*KMM|f!`-@BZAtg!s8;_eCdbtR=)Hv(lY3LDR8GI!i8}Kq-HB1$zR_q?G z1UlR!^qNoh2M@L(Vk^!`^veNCvilXa;aGs3t0@VVSNFizI%N+4VUMO{Wu=)fnTE*Z zK0*^sMix<*WwYmCjE`cBN@3t*nd0=}02>p!lPpg|r0{eY!+-dB*SnZM)W?*AGdT-h zh$*YG1jIHFr$e{Em|%I)XPi#{JYT@h0N5G)`PNJUJ4(S;xx1iu`8>|IMg&=~J^f&p z%#}EaZva;cpnXDgDFMR`*%$9x;fSEcTjcgmjBk9%vv_-(QQcgdx_Ae#<&60j?`hoa zFtH~3-ctT>eN5$#j9-t)a72J!IEwSRi^tXuEr!NISeo*BsqVxTYZq!B$1H+1uMpxTL zGPa!rr^R@`SmtAf;B-U~PHRW{aO$k!8T4bp7g+EvPVf60EunN}X->D%mzS7<07^XZ z@9~^iha#97D6UiREIObH%O95$AegN0KL7Abkv`J$Xl(ADwJy*0)@KCr+`f2SHv2Ne z4B}mAZxVSv#U}%b+;gVhr&WVPI62^y0hLtDLwAEu@B|hBVOS>EUj)-5ctC>B8w{Z@ zp2zhoJ{~K~qq{KW81@R>2Tj}7(WJKoKViI0_!!Co{?&>4xKSR%*8$Sk4R0K}r}R{Z zNAMb!DP4~BsXyb1y|6VPTxmKiJa;3#d934CTei(Bn6hzU!E|W-^mu~X&}1Pd^w~m$ zjZVjKs{6`G+X(f&*oF6?(-SKNhhr!?XuUVw^?_~+@M_U#g2Z(qb$I=62kP1As@8KvXCaD{YMR|n z??#uw+vy?=opHBQ>`7_1)3M;Bu)Cc;^EznmY^P|_Gn{5SJz`f5Ru~#=6i>|Q27Ti! z-8uV}Y!7uXuLO?$izs3BZEFo25H(GyCGL-SOv`*`$85?8NzYC}z>OFfgN4M7a8I!?fo2Z9pj!VzH&!d>z380Cz6M zZ~WJB3MHrV@aP$wgKzQTTSo#85kcz+%v!D<9u;++VCsbNX2~5GuV(3Y5l@_{%PGRps!VbLSj=IPn`9-R$}nIiGs%)a$PB4W zasYrCCK&I7w z)};=u<&0p-J;0E=9HHFaRa>wJ$lY7ILh(+BONZV%)_CGUz)hz2^}na5_sp&iy_W(o z=uI+u_Ar%{8T6Skawq7JuoeQj6#Rv~K*szfuk#Egk7p0`XI9fD1iq}Xe~5$ZLD(V{ z8n-GD8aqOTfG_jrNJ~~Qg-@%(7cv-jqi}4eLg!$5JTfTi!4zyAPmF(=1i%{91KJmS z)?V(TgllCX*Y7R^w{9l#>@Qyboml>|O(|x;Hdny#!d>6)EyfO~ zMuo}EG`K}f{@hp-e?`mnA$%EE@}+X6;g6^$sWlm8m6rGLR@LR7-vnK;w<)i23l)k! z$~Up{(aO0E@IsDtC?cLQxvasfKJrRtsCPeFjP%i4hhz371FWO;9djO09WOoTM^1vu zeH-w~+Ld_l(;e@z1Ie+NDHzHs@vuttD!Wb6O+~D3zAVfp(llz0L9|~(DN@&F0kA6zP z7w?8vz5~8`Fk0_#UIx$!%?(4^lqf;nc`qs6NWGAo2ox*>tlf*6S}rhNfOtJa3%z<1 z&&7^LRfIPQbb;>?qk%U_&7t6YK}=QHiSd;;0t9H`z?~$cbI`Xc%6XE<;t-BwuLz{K z>?8sJ&-T=3j*MPaC*RaK86IEXShi)#)|%vF(?PodSxOQBf_;a;>+l=ng5MJE-|^2w zTxtIN+{)*U`oJ@|9-vCu?h1;wSTPSP_$`a@-)HN&LzcC(oObZHJ4oB1t- zuT_wh%!XxLG95F@i_ha_RLv+h{s(x=vK|BBf`&stOjYsnMqC*W@lF;qWguX^ik1q0 z*3jpNV*(qoc5pNNxsKqSG7!hrGLP2Yie-8Vq1{|y0^S5s7 zR^AHHR?2<=p@sN|U4U(>MhI=N$l<_PaeF{(G30Fp?+=BD-tfHt=`cbK=6&Cd4Kmnp zxarmy)@1PL+?!4$xr~^g3>!P?&9d6a`9+pTk{($eCX6vw_l?uBd0^Hr{Nu`e=}#Z|}PV3Luws21<-`uv=U_u`|boY>w~+bG9Bk zf?Y6zWVP#W*z>Un}-9>3Rw|YW~_b9KS_n+$0i{l24N4MsZNdzf|-TdmgDTBAaLfSNnf`2egY$R4|Pw zK`6#)A@c;jQmf`PP+T{$n@Dfa<5u@&6<>~-O*RxQ(#=!LvyPGf+Rhey)2-0z=whj+ zrX7K$dWcM@k$y<@0S`i0s!Qdf89eHqrPU_wYU0M0UH1x4NE2|J7R6t!)55q>uVUUy z^0+zV9rO&w5QE9iF-;R;pK1Ch@nsY)tS1F--X2@~2t6W{Af(*%KM?(|*uwrgP_S7^ zqdB}^F#{DLxX%xu3w?tqT}E_ob_@G=(3$%*eo6vW#@k@pWc@t(J)ZhcP=d)%!nGn) zx0UJigt!!mEcIvy$G^-8WIT)R@CWPf7L2?ZSXo*73~aVm$4IfIa9+D{{b{ieNFD4v zfa=wCA$4S47vT-(wUJ-A`tJhOe@W%iX?%ydy;7F6-SI>x(6un625n=iC4i0(;3sYl zPeNNGuJZ6FH^EAq* zqGKUC#I-e^I$IuBgLL@MOS&&*IokLWn39D^L&=-QYW_I>hNFm&Jv%adNZ#X1(bs4mA#WVgfkX_-P5Tj~3;$-QRrAGlQ<}E@DWqo18s= zbi-Fn6Nqah;S6(|qt}Nna~=BxWsuw^f)`aRgXAKKIxS6+L{+5o#oO|^5b>^#Y;Gly zJs}&Zp=YTLP!qhq1e>_nPCl2(a9Tvj%-<;XC>v&?H??~QR z%SWr~aSc0zvLI*eH~!#uJYJr~%sE$(orgPNo*R4O>ojNWPX-WU8tUZ>=b$~Sj?cB2 z4i^&D1Bn|^qhxb8u4z3pSK=l9eNM-j(gv3C){gS<8DMmEM&=~gPoK6 zaj^ApZ%lQqsB9K}C6@rlJx84WXGvZpG#)KPG(6mllu6)WdFJEcc5w5`z{3S6bMjJo zc+ORr0RkRdc7}8jFeqH{=Wc&!B5(?V#S+bLrSmx4jMqBMko*5EtE{M&F!cX#S-qi8^~SYWu<3tL(l8r8-X*0 zvbb}m81M~07R#n>AJ$EL#lE1-NKyu9P8=woIsL-^>2CE;bRcBMI~e@e2d55b0VPBj zgc?wXdQZ)&Q|6y7AiElBy(U7WKagvf-48npQ71(^f5dx@TeJ&Y`a3ZAg@3^ zj})hR)7^f;OQ5JMbetzT3%3A-4@?EIa)G4C4ZWKLB|(O1orMu6L*!sCq#i~DakCrq zCv4#I6#i+O5m(NfR?LV>RS`2epAZnIPxv(^ZOUd2H*ZhgM4Ey*;)xy>4F2Aof14T| z_}M|27kh^~K0pf=jz1AmFn9zP8iR{G9gE1i=|yH?o!uUQXv~1egoP(xZQq^)^g0#{ z;1gjFgk3C7d`j|Jz_?nX2;ldohKK-J3Frvw5GvUhFjk1LrmeroP-y9O9FCS(K^}~> zK^+_KMHI93KkF%VCzZU?65BoCb4?m;uVf!H~EP1~}`A0)|` z*_>hMJn2)bmGH6Fa%5{4>6r{1fA}S$oG$ z_&Wl7hhYsn4LfcMn!vm%4G`%mBnmasW0_y#;LnEP*m!B+9+__yw5PF$uwjT;csOEO zz}57kgx}b}Gx|mT>|1LY|62Bh^al3xvO27}c;a#_I5^)QV;|$un_vw`wbv0L{`tOC zn`XC0PNtl93ni$0{PI&H^t$4;%mo$M~p+$%DxI$xZ-z zwptc!3)d}{z;7`wfo$;wcZ+X|>;yE7vf(xxrN$S8jwdiD2x9C*kU0PU;tP&~eBEI2 z1*4X>F>V~C*l|+g3wEX~Pw`}q%Tp@2xXs0$21lfHu?)%a1(Vqlj~f zt^%$TWj7_hV3c6%9BV$k+#_@?do0AkBKace^^Y;je$D)4*)>w)3x3MumyIOHwjy<* zfhcuGp@CHhta?98f$;04ZP3u?e&E}QJ+}s1J}9(7xkb88J6)M8vUphJ}zS2-^q?U7Z&$eevv45^^~k_c$eV_2vH_Oszw?y#T9s&_0R z#>Ax_Z80r>^CFwYO#GoS@tAlekJ;?+`)Pw1Gn@2L|3mAhw1J7%Px2*f7^1z#Y0pfw zmn&LDv>VwhE79W6d{T+FUdqMK;#9I>l#2s+MUsPZ@$w0zk()c$(JXl9SBN)IF031Y zs2zA>eRe#xTa8_)o9@0v@=rFeg6H{F6#h!W*QHn(t#mH|D@!6(y5aWEt#?j&s4ai>X;U&IN}86-qd-bHQfI@QLH>e1!<&Waomxt1;sA&IL#C zmF`(XL2*6Diul9OcXnSM$CqiH3;bJv&^lHBH`3mQ#^KliG3$?p<4&MYXmip{fm=}% zDAIs`WnX=S$1tlqm~Co?KC6=rqcUj+IFUECX0y@TGiQPoRrtS@fvU1nCiIV7j8xNC zRiL{nXzkUQW9|sBya-9mDyU%tGuPhR{9XuF6KzQIpp1=f;|FsewOg9N0m=^K(~!pYnTqP8t~R% ze3NK6#xhxS4_K|aMdtux;JieLxJg zGauDpAU(++9^*^m5HOdn{iKx!_LFtggo$e+fTCkL+;l5!6TUfY7LsGRTDcEe;%sTl zHR;p&zv(M`-qHhoI{!Rbb$*@y6FjSQp<87Iwa_+mBv&DyMw%-^tKh`Sl7lUdC&oDE zvMcCRlPu-lJ%&?31EnX2uJk~_qzBfZ#~_2gv3aP(=^4ZPP0h zfA!GorGs3=oMb~aldun4rJaPW_@;GYZa0-Xz(3s`#g}6;iMcP4Ed(Ru$q%#=c{KtS zQ?Howxc=#~nk)>i9!IdKLyY9#2Ae9_`X=H0z;oG8;{BQRh~YadCFRaESIho0+IZd} z*yCV4aR`p0u#e&bQ>4OF-eEdoY0};p9ZJclz_96UM_~(Q2x&=ma@~c!kHEapZeiW7 zg+|MMqEu1=w1mo_zV$8M4@5~6og@4UKXHwmEB%~^Ik1_09e-oZUyFSN)yfJ_Ryd4ec9}=N0eEaVB~>&)&UK`pHWYpI}oWDpV#9BRB)cjWK!Buwz{YL zX6%P(%d?Uv-*=((qtwM4KZTlECkN<-R{}kz0gki<007D3HTO8V2dVJp-7f+(tecW1 ze1_zu-pu|R0W;7fo_LJs{Ha(O{NK7|_NNr??CC-T`LtD}H3hl+T=^S+QrrR&Yh&5! z9}d8KkLw>d&^oDti-r{1S_+oQVUnXYMqW+;ej!DyyT9}ns;5usUVOL_Z4%cETx3rA zi}6(D>i+zqdq9bf-T6``FKC%m<8IH78|KC0=6EN2G^YseZq5bGvC+y?*U@MauL&a? zg*5^q92?Tk{t3d|Nv|myha`Z>2qPIxg*2nTs9JEA>+e$hE|rp_ixdCmx^cjw9G-JB z`w_{h02Zs#dDKOFszp!u&)d_^3b_VvsM6IKYTmDpv0Ot{WUU$F1?B|&o?sB@=ps-s zWju#p0mlgKGu{W=u!|o644N+h>dXg(d4l5E;CWQSC~|RL#4U~w&l~8kph1BRK%&v$ z`Mo~I;uL16H;?~(oN#oPus)-R8W+PlSi~s&oA!oQfu$y7iWF~A>64sAp5>6V;_?9j z@Bxt)gVwD$EVv9kz{5m)sOK?y!}idY)h5>Dqte92=miyfaf5#6`t+hJ-e^19fpa{I z$H+g(HE%soDpwRanU?wFk2r^vK42Qoy)$o*@=eh4{*fG!yu6D=ocM+K66ZrP(Ke?Q z;yux@5#YdYxC>WigMy}t-7mUGpwjr%nt{}GAS4YH{PWyIK&x)!(70cyyn5ULEPz@J z7q`I*^N=w5P~_~KiS1x*#sc%l?tCf}-@_ZHCbAEn&mll1rGGH#6m zd@j09Jw9Q^3hB=zQc>B(&hpz#4k9yVjvR&HIoT08lB>ZQ@7dcCn|0C~z0SSoO42ks zQIulWP3Ma=wAxY z2Nx{&9t*Zc!Pa;lMfFjgifC_7tJFiS7H_cs&`DVkxJ)~&#-nN?aPYrL{*c*=#NFm$ z7Xj=&9KP;77LCvKb`5%)gV}b91{SmP=;wt(11upPHocggt(ajC^4XE*TbDXbhk~gW zgrE7BAXw_(KYY`ek1^>|<{@VS_eNVLA)-$C5s5T1wc~)Ksux(_A|s%I87-{89D1`J zZPd*hjewMRdDn3L8cJ6g#OHEX_a9K8-$gzNOL;g@oMuH>4f{pv`q6BQxQH(jpOml> zc)_Rj^%Oywq0-BPq@Cl9$Au_&bgw=lM-s#O#ejlI^C{aCAC~n2fssK@7olMyvE+K0 z&=w36|53Ke{9KC1;G+Tf2d6dGtVyh3IV`-7Cwc-ex9o~<(!zLUCoS_{HLV9Z0DF~B zCB2YCHr+hRFM{^0O1@0qvwWzWk~1m?rbXp44=RP3P|5e9;*Tu%*m{W%%a$80Wk2d| zFoINgY#=fv=ETw@>)7AsHwN}3wMjSstd^j}$uR%v8Wy&;;UqXJx2ng6TpB7}%+A06 zt>jpgQ`|$VsrGZrDSp(Fv6`YdQ#;mgus`;bl4hWd{|fOBe!8{Xt@~Ss^?AJDZoOrl z^|{qU?)tRbl9N-#(L+3(k!&B^nhDTaX&)=R1=JZ*9sovygT#iOop+Ur5L1N zgFFXzLBC-vv-o+Llt>XjXH)Gl;^%ID5hQ*N+XpX`#gDLQ;(dYaklqgL6g-CP{OhW8 z617{zWtpVZW_u%PPHqzQE8>(gq~oMWgbMDr_(jl=F2PwZWk^1Wx_{276sJWc>_KJ! zOsIU-Jq;>CT_7l1&}e=^A+RL;XZV`6$6V$LftfA)Wt0NjMlr{(6i9Eb`b4xP@_RZ7 zsxsbVUBYKrIE65__Tm`1@QA2bsbG>ycLu@v><{ed4xcoeh4*GR8M{sRVUI#)+;{RV z$35tWk{|Y5d%BZ)7ouwy3!O)6rDR9$5I zdTdP%MoereE9ga zedC+g+E;O;q<%YyTPSQ~qDP#7?-9|k#)0N*(`}D6Y1-`XZ)0PeU{XSH$b1Z0Or6Y0uZEaB#O6Q!~MoKf}5jXkri%CNX*r0CmEVna{nWA6He zuAx^VoWw^*-vm`4s1YEBoY;aZ;vf*uJ0Psip%`O!aHB<}D|}9d<~)<~E=i5pndlFz zE2Q^SstR(h)2ZQTAKncwp)J^!JABi|tXn^`scjl4+a*KsanTFFz@4;WOayCe(Zx!Q4ObQOEf3UIRmI#A#wttHz^a&6 z4+$o(8QvQnIO|^(^D$3p%cQE9-!i^DU`cVRXLw3cCRN3JE=$vUH1AIz2$bcfDrQ*? zMFolvFl;~OR2m z!LN9jS{1X?eBQk?fr5S-PfR*M(3v1D0}?3A`X4)xuvyz|>;eFCt72ZU6~9QSig`Z1 zvf+_=;#d$*^wCerp>fn&$MwHc71LTLRnzvKyDiya?xR2rEsoIt# zSxb_5@_q;(r}14-kBjtmPagttJatdUo$W2%Ik;MtiyODVi0GJ;QgdSN+d}F_qSI4m zD7fxv9WY0-5Um&htC1|u$Op;KBvSxd~=6*gaa8og#RescT9EZ*DUyDtb5u8t1MmJ(>-Ro zR2)Psg6p12UOJP*5|lW20LhuY?rHmRexhE$HST&<2~khhXC&%y;_v#kr`$xZL;eRX zE{RzePc*>Zdn2N0lKmq)fKX8VZ;T6SG)-00Zf}vg#+4S+CAfk?QmUFxo{nHkw@7I~ zRnsw(IHSV02exJ2oGevMKgXT2x2ow0Zu?)_2xi8C2m)6vQ2UBMCG8v=wyNovYo$9& z&2F$^Ibn+}MzHLCGD(a9wx+7-4=15#IkTAOv`f+;e8cB)4ABek<- z9ogGcdhs8P4YzrbEhT?52tC}vAX`@2N`!{GizMO!Y3bxJ;bUtny zQ&#fO6I1%r$>CSD|scO3V6msYWu4?+vYvcmQtGNr}PO-v7 z%s8pziN7xc_ZzR12gIdW6yKxY#`20`u$mWsC$3teQ zhkJy2hsgfm!SsnVQI_YjR`81vwDPg)!RnrgQW$vkJ`o;ip^<1OL6v0_c51L$S_=#UR0mA1_ zRnu4X*+|2`6#{k!xN`=XbxD5#`<#NU0@!NNH7#1QF6;R=3GCT^upIyv$+?|!a{mzB zT&tRP*WLpb?@4a&#Q4eGJd3xt8P(Irr7qsmyUa}5v7kq9n7g}x&|v9{2~%EvxNesz&4NAPitob#=-3I#6rpze^t{Df5BCLXLRjW5UubxdQuxP z*C2q%{78%PIjguysC zZEPFKNbkm((L<36B6crAtFgYTu)eF^^?iAT*+6~9*B`x!*C}<- z3gu4Pcwzi!p0#n%Q}ZUgs>U5DCuhRCRyDo%OfEF;UMOR#w0{FrECBXE84KOX9;-i<(Zz)hy^9=E5b?)89%&4lBgKtiv3HPL0YLLN&( zD5kz@qIW;XG3!$KT{@#-hULO&!IKsB3Ll$HGs~+48n*}$5g%gf&R$LQ_Xq5OQ1;Oi z4<`Zq)kNQ}Az)927$5<@?Vf4)wha>ZW zBeQrKGL{HE%%`ca6n3jAy}pvjsTIudN4oMseYlah{PUckD|RliowyVoz&B2H2(2di z@%rZRVphv z$D>cNae{<)1$KE!nafzV>>=u9Zm&tzM1OfvJ|*s*UdErkgSC&Ja?ngtvP7LUS*AiL zzfJ+eyK0sK>SQvfpa1z!wt(TMo|fquBHV!dcL*`gq=7gA!-Jn8j_&T!^dC^k2^gNh za5hOcKzRY?A|favgQegYL~NI*qRV8#w=eVYXABq~j{b}Y9M8!})k3(M4fQkaE}81! zb?Pj(jojQrXLJ+QtIG6d@H8}7`W=7@Yu5For&0jbK=}FkpA7^ z1H2yf>VEr$Y$VjkUazjYuMicA9ooR+fS;|XSNGykjv07cLUQWWEubVe=TxDqzh2$7 z$8zSKdUYQWnF#ZbB-g9^Lfp1P&>!$0@Vtr*1M1c7ax^i}dUfaF@7(IuEqFrkw!-zN z1Ib<4>eby*MTCXHs)$x$HLPXpUazhfQfOhnk_8tF*?M(nf~Xh=>($+LpF_s4_*Ac( zYw)(tQ1=NOwD7nZq{DwkqZO57Z;@3NxUE-LbBq8No57Fx8%GCQuWm=Tv+qd0qV6f@Fh=dJrfwI zp$y#GdUfwT29(_E#h&a*cBJHrUkj_`dU4(wd_N(3y}Bw1tO>4HciQ(PXZm_|8%Hq7 z>FU+(1YZVfb3H-FG}_$mi%Df3X#Mr-wmF?-53E<$F-+;Ji43UH;Xlb_fLWla%Bpy+ zsaN;mK%p-2rL-8)!K2kRl9G6MgScY=1IbX^s(N(?5k%JFUuB27x}C+S1sf#DHPj&3 z_i5p|6-KwSUwzDNG^t+QcKRtta0F@?L$e@1rdny8-7N<`wQ~et;wBO&>Cn(XiutN7 zZcclJyBe<(oaE3@EKAKfh7EZ#EBAWq)qT6KtXJ)@FdR^?t|JbpPp!-E6X-O$Fj!}%Zwpxxj@YxNA7`KqOz65vb*3b z%d+;<3-wd7Yz6qi&$1?Jrw>lS2^fr24e~t#YGV20Ow-9| zYOpMnv${lIX*|sV@P@!#yth8_H1mHVB~#*Q-qXj8U^(%sEa?HKk#YafcLZwqc=3LW zP6lZyV?lMmK(<8*lxST%&1<{~jGTv)w92KZ78!_Wyi8;~77!@f@u+9lJ)Y+EFhOfP z&1aLOeXWV7*^WO0;%SC2#-wGBr#VQV%egr)o~E4)P6QkF8RHwINA1k)OEU`yf%aDRQ#~>*Q{Lo_CmP18@bjm+J>c-QY zj=zKBY5vDp;{fM>b*DW#(p9E)tbtdn8QFL2bz4rh!f4kj?3W>9uG6D1~3 z$hbTxo@UDoU|bjbI8u{>4f;S{F3%iKGhKqDW6J-9s1xg10xrBig5zmMWdOi6bQwzz z8B~(uX^zd(bSp{!uA>Nyr}<}(tn>U6PWBds4Hr){O{&%@cCCu1+1eAi5*SajbN1oY zdf=>oJWZ7+C?+YM=Kik1q~=u5@&vIY#nYUbrRn`UyHjN1X$~4iQ4vp!{jcnl%|<5Y z7Eg1z2j2R}(_CKUVz>VBGy`{Yp=FMz*>(3|g1d|Jj@?~&nd50bf}2B-OmyM>-PMH` z7*BIY22e)4e%j52v;Ofk`|smI3yh~}-ZglD2CE7Cxp0!=Xs#e!vSOi#nbFT zP_2xod4)Of)5X)&uMk~q9pY&o>5Z|ci>KL@j+W`;Y5ro=PCz_O!zFmP&ha!aY<1&!{Fx@6rpR|ImM-7Hb68$R?}kqAYUTjCx|hW3TYX>O zd1G@tdC*rLV*OUszLPEw`bM`vurq%-PF)%DpbtYmK%7RPK&Q!rKJXAM6@MP|759-0 zV$`f5EtYU*Ob*i?4+x2TdC+I!y&|=m^PCW{!dJrHjys(S}^##jDJVR!`A3_BnxoUCp=G3z5Gf1jBt_m5oF|>DQJvE zDoEHDsHFW6K*}Q3PveQ2)$AnJO z-T;`+BUF_-tdZ!0+f$;4D(;l25@Yu-7y(bvrPHp&PLwyIBj&G4Iap|XJ1|d)9_peq zxQyd@Vh@<#>yo2~4#M#hwA1Ukcp|g|sGAZ!RP--Pb6t}++)G@X>MMfZzx5e=x|687 z9%7_fJvY(FxS@X3I?q9h!u%tSGdf9_DVmQ@8+p4i;Yju^f0VQ@!F_ zdaQrs(9OFzSH{p!)}>zY9=FT%*_jG;B(bwa4lQCMRTQn@ybx@j962-|S4!YS8#(mp z&b0p9=3d%cSJ?v&zVICH%q69)!0T8E_n|>jNCD zZy8NW%CP}LIiA?~PG98Ew`2HPg?YBfp$9(a283azjU0;L;v*a!In;~TrbG@E4lz^i zZr6h4`FA)ITn2ZIQx@CLJUpz6p zRH%b>mo9SX;u)L(l@$=Z*p+ZX)n_(x=oA4v1H0S|zJ0#4fW1n=R=Jy?cU|7Yw@F}& z{9r%nBK{Lj+VFjs+_k_V_CasK# zC;I9UAUSeqZ+%Qa&y`~m#?0nirrt?sh#Z;?)0-!9X!cIVoy0^Ay+Ja2B8Ses3_4Lj z%Y1AnIPDXJ(@&rHaB8REy^%v}r={RD)!*n7N>{CY2}^@) zK=0c|VtP1zB|dN|g7X_nI>BoK>l+6tZ{$!<#9$lgBQ5vG=I&9=<=GDUj6fbL!|N2E z=R&Ka^OG%iv=)H%jvN}aJEz_kIn)zV4pOhc&E-p1IEwTdK241rdKWo^@VFi@@E;eH z(5g4W+6-75IrJpfC%%x#p-$Ku;QQo84t;QOO5{+xErgiRt_#yf4s{~ax%9>jC;RmdJk9X7yLU-sa(yvH zPj1fr3qcYlP~vH{!f!XGsN01iLnm-p!`gEi(#8}$Nx`(qCiC%Klp9yFJmE zq7eFKi>1h90j|{v|WdgS+ml zt8XDe%SX#<3u#Ev=<_L+#>+G7(;^e}5d1tU@pT`3oyH0E@i)LY#$`!Anl9&aj5xZN z;3H^rbC)#qu*;nw0lL+(CnvkM**f?uQ(H2nODwUIjX6$whcQ1El-oHtCD=DPt z9PX~h?NlZiEuYX&31s%oXq9r}UI)D-C8DVPAEXKvX0M0A>!JMA>^FkCCI<749pW}Normy<@|1~|NV>dxOw zvE#2he+Mo_nMOd{!6twkY5uZ}SA*Yyje1QA}O`L@!Ooqssh$kA_kge0# zou3q@tQ1ws#9@uNG9GFG8hKz;g+N`F+8pWvgg!qUT#l<0-p7BgE3oM+vXY~X{abqz zGm9vySQFy$*_Q`88QmS?pRXcS}P<8*ERrvPPnHz6woTO7+f@H7Lu&*%m3@Y^bd*T{(~KJlo>n5-ct! z5^YOG1Un6dBGwj!Gyd5baGmYavceoBTS`_&o;tx{0ThVTFP*z5*@l;nkXa${&2LCM z10L$%BwUw1&N)*gT3KhYmE|6Zw*O|-|0WbnpD2nBS=5AsMx{=o*_5BYLWph^hFNPc zfXtC-=gGe88poDh4|1nQqP^SR8;MqhU$E_I=AA{59RZPOH{qlY9He>Fd&{Se^Yj?@oX{tom)KHTJA5ga=Wwd@;7-TTRhto+1-Rqt2n=X zu7wS^2NafYTs8tq+tO*Ar@;l~-{MC+^bTrwKrh|cg|$CKU8 zw#8Q_(9OAY`9bD!K0X$Gt`mNmZEyK29Gc6BbI}^i6b36O5eAjC56ALXo@Ij9zQZ4Z z!D}lpdLZQqUV9y%8`6yAw1$#{*Lr|S(Ik8D+6P-YID;|}(wun}nqny0?{B`xk~P6= zH8}QQjF;($@((8aZ5-4zcVo2+IoCw+#fWNiKNGC6qd1vqLX2^ry|ma82h z(`C37GCpnJ$OvWE)<&;wehCnE!oe&@@nLzU+mz4mR34B5v2L>0fN zv$#H7Mna{JUOVA*%yPQuwe!d6!J#LpoaW$gaWzPpCVFiU%#z^ACKVucVTt^~`A{+{ z#}ijp5|#gx=(PeaNjC^+3fwpxWk5tWc&HYcA@th3Gltcw=(Q4p$QlYX2a1k8Mv#J( zR)=%{a;LxSO8mrbmlO)LExxkHh@qzC5dD-uMqPzg!O?4-v+rdU1U^uXHkjp_e)e+M+@YkUwMVN*KJRO9=@e=~Nnx3Byo% zo-Bw&%efu*r8_Z%5ES}fNW=8OYh|Yj3y&sdzO(P6@Kwri_I+xS!@_;g);ajz58ePE z!Gn@tSQuIM4<#xg2#gJT@I8|&#^Q~eUfe-Ad~1o62OkjS+it)Vd|N30yhJVrex+E6 zFpU_8oAK@VG$v-sC1-kVzp(rE5l_e*qSp>Ogg(DoL&>xti7Ck}!q1xHwbSa`mC7L&vjrfVY>&AP|NJtV~iG&b(7t9`L?tFH=zWZ+?Wil$=`LJrt2FpH+J?0 z2$(wtKsHdo+^Siv516}chOE#UY_(IVG)+h4G0Z&td)~kco-J}NKsBrl*2X@(!e%54 zAsX9Ev-lGdR9%~J8yZnm2SG3ICuGv)ERvb+&nz${Mn zet8)YwyIt{ar1oQO$-`b46eh&)PT7MFXX4*fVr;pG|Un(ckHc1ixxg7U~Z#}(ac5R zd&&9Z9GevnRO`LSJ%r%w4IoH2qM!256V3+^Prw{c1+?I+SAi3GqsJGqrS~@mD80#1 zZ5q_2_Y=#=1LiAmla@)u)i^XjOo90O^JW{0zv}^tQxyy6IGK8C@Egi9-H=07W)@HH z0F;dq8CA<NjM7J>?Lcoq_kh8t{?YFyKw!bru#-QaoD)n%R@RMgK)@%lZD9 zBTkNIvkXx%rO#&P%?em&H;I8EeT3V-*d0Cfu}1u~W^Gw>8yvd}!tm=mN_C$znGq*# zgxj;lq_*A*77{_6gM%X6sxX$62)85H$i!w%`*BU02)EO4hy*ot5D4~Mf}bf7Zbvi6 zjYu-ZW!w z5KnA4z6iHVBz2SG+#vX6jBxu0t07&4TfVLmi4*KaEP^B4+CE2gG>`z4*cP52VDX`3 z5#yN>g`5@Z&vG!nm#D{_iEopLx{p31QHzPcS2+4)+-{QpfHF?S*T|EtN3HeBFg`wF zPmAOj`}WI2?9+*TLkI{kw09Y1P|aMv(U`)Ofi({x*E*Ta&Xh5TbrtN4Z#f?#C`O$j zR|6{v0h>xd-K>6xbEc)i>IZWOetTjgfAHIuZu_Zd56mu;ai|fOq&-8lPW6Q4=2wHg zq}J|+_-!^rql=6W%P5R>M1MJ+E56{jesT-vm>ip@d#s^)LmN;0vX~^s09zCMHkplc z3Vv&|+_i|x#9`R;2eP$;-lgZ_r)v?lUsdBPD>to0^ho`bw0nyp)aMH1yKBmU>*PL~ zJP<(yju?quj_ZL_3a$a+w25m#zRN2Z`zAz*xnM5Db6hYN=|4U354=WoV%)&8ThVU6 zE18t3yeqyqzF_(!LW1LgFrJZp>7qFI!Xg5J>{Olj4e6CF`t2JwQmxMl)r-OB$Da2bU2|G((BdvR%RLh05&`fb4>)}^r&T1HCr+i>)S=XmE0h}m9*M5vU5 z{{j0&j?r(MvYBO2VlDjQRb|ViYNN*-6iDE4IKS8=S1>`<9znNFEN&^(QhLmfX&8PPkL=q?2CT;4*nySMY2V| zjfeIS9Q`KQ`rV^Ojh=NJY!4;2Dba6RGa(PB+}+9r%b}-oRz+1R2f`lx$nMZ)zGQpJ z68$y|M!1ydx8o~GJtz8YJVc5o`fcR5n7?>pZa<+8)?K>jw@WKzgCv_db+c~PXK+de z{?J1N>z*T?KLwM}is-k8 zVBhsbzs>!hki)5)HHBpMM8BPX0FCF6&f1{h$Km z9PGB_xHPWAcYTs7;4Wo48~;`%-AxV)OS9)M(KEyuC&4&8P`lucl_}P3J29xz4}eC& zcw#E<_&l+0%fWi!78~ofoh$-jv&EDJNwIFVBKn+-;ala~25=+(6X~(fM&>dBPr=CKjx8t8RF$nr_$p{HVEppL2VZv$${&d_)t2fCB_%jb_XAu(3pig zaMYln32J)=dv*4pwh!S_+AlH(jb!88c>xLGFO+qE$RQ_8E2y=2yb!<_)OM6UuR-T*Qh2x7L#;k-Y!7;T&m7hE{7Pb{rVwKvN*C6) z-4P_Fu^&N<2)<(38j6KY-Z0W=cfLsqYpdRi0w_&bTOIt%D)BXVDxG&~oTY}+SIT+= z#y2z^&dxnyZDrz8LD9Qmz58y~Qn$pD1TT8gqe#=F!iT$kh>?pus~bLBNAJG>%_G^= zb3Qt`ko`o*cb0$h-1wtj(90@yX&RGUJn;heDR*Xm?TeqTEz4p&miuT@rL21Wl(_$J zEL!=F(w>#ry7;7*j^`Mx`XMudRf2!xi7PshVstgr)p;28DQ|dN%O0|0m14Q3gty&< zJ>CLp+C>0S<*Os$Z?J~(&muBwa!?sr#R+eF=sv4im$F?A1(83z?KxawriQm&;BR-6 zwj(}(BfIf6rX3%^0r7dxhGA11Xg7q@ikCmr&oLmpZLYem@zd6Zx3!rhOT_k8roHii zt9ocvI61tnJxS{??PVfILfq)wW4(;+0DZ=hyxa$`Q*@;b5L>l$bFswa9$WSCr_?vH z##Wtp2uA8InoHjU{+VN|+8j#Sh++!G3vsnaV?m|HR$YSr-6~(l3pOUUsucS`Ky1}c zPq2SSx;ED1XG(0<>jhjTspge7z{G5*dmh7v=b77J(jPlS-g;E|I#C?9bBv0*>oZ|E z9!E%_fAF&vQBiY0a*WpgsHo+8LMZ4Wdrj!-kBW*ez8OFOcU@ z*#=F3^~doY!Yp8ES%;uVYpQ%L!{mhBIH`N!N#PvJ8jVI;iGXU=NGY{i6(==-AhO0u zO+-RVtCy03Wx;xaZdYq>eQ$UsPeUBV{Y5& z1EtR1L3nsH(Xb34C|`GOMjpO-czPZl1`8$t4JSN@hvSLf?TG?*xGYDhB59X8E7br@#+>mZjZrUE-uR-<~^>OzB4B(U&hy>NiASnU_n)5#9Xd@+6+v zY$Qfx`syiOfS#BvPn^{E@;x19@?SPh7a&WGrzN)65?GRWrVq71Zi%_E$!w0bWX&k- z4-z89Zv@jhP#P*7FT`T>4;!e@eeqRkND~zUs^GSm)qU~3Wx|rc)R(mX?D{14#UdH4 z@p%kG3|eO5SQZw!s_i3jQsUrlZ6DP6m*+7aU-@42oMZE4 zMHmawH*B@LtW((P^n#$?e0h(4=^SvY2f;DtY}?iM&}%_}M(rYPSD!0fqasLGwYc&? zt0r{S2+hGx$L{C~Q)G31V<}1ic7g~dRVEnrzQ?!IN4BKO1Q!K|q} zLWra>F6=0pJB1$d{41b3d|SugV~}S7|BT*;@RN@86rPT8;qWm&a+u zJ+(L88ZqA`RpDgg!b!a3N^4w5aG*)Xg-`Vvhk060yiPGLfW^`Y8Rn%1e`OLfw$>t7 zNOVvWO7Vqb`FkNP0l20`)(!lr!;#{4m97VKPlyc&tzfBmm-L$=6<_(zk&2W)y+tfW zO6rVgMCY<98V90xS<~^vbjcVt3ty1)u!!Z0oeJd(S<{d4i#9-q>WBz~2J=<_TR7<) zeTqErD3f>?WA0CJQ0P;{NG#?b?fXvevp)}Phs+}c?w=iZw@fO5E1u-oqJd)D&SUp!LidH2EJ)DeYgYKLh0hb>L^L{Ql0`fNF$^kc*wJt}%N87nM0_NcF;2Z&! zHNZO{zSe|`PTh@jE|-bR1B>d0v%`5-ct_y`<_O5k4yV4Wi%(Ed-M3x|9+n$6yxJ3< zo4Kg&u$=tRq@ub%yc|3hHa%XV6P2!kMRlt)05S92 zwTFwshRYGq=z*G4R5!OA0S6u6q7|4U;JufEX=H}?g$GVxQQe$#1k60p#VV<&?okyIHoYcp~Q<0Y~+AL}->A0rUP7Jo)Zo@6y}FE_056kvYK|aF`1(Fh{@v89*7n zJoG3RPA&8iP%V@~wVZPV+;@x%EigyGqb~##%wV zy8&_p>eO8x`(Zjas-@$hp9ONuG^iTdUFKi-6`ly z5U~&t-@Nk?JX+A9!pRY^xGS2uIRfThLb%SAQG*dOZ{aIzf6p^FU61Og+jo496mWF=!Pd$-9HJBYeT9r=a;f|?9?JS!>i1w3G%A;uWp#xd z&C6Gk20Xd=9zU;-d01(LeqUeG0~e@lUN8mE1RzpE33$^GuwFZwea~7xPji6LOARL^ zDl$!i2W$MEhyU=e<^U@eMOO}2_wybwa$Xhikf$amXT+$#9&tLXQFp20G|2x63!DLz;9`_FNn5YiO9 znRm$^rEM-LuPfOJk4RH~wv9lSEP6-+-e$#q?rgeekhN zNm8B14UB=7tvXYy+EIaT{1Aa9)NZ^o)Y(p&4a~J<3{!6x{hG zLos31+qPWko`3lkt}1^%{x+)ojK0nuAxHqlInMw^q=y!2;)LX#TO-xS$n?rcmk&oz zrK4sXn*wK4b~sn*F2kOecM~`Z-95|V(_N^=st$8&LFl{;0LUssPIQ}Y z?r*wVmZoj`xlJ2zfWZ8mm@+?KKNU<6LyiBQCILXwolCsTTvIf!$1WR3;7weOg zU8n~FDrjQCOm%W=Df@YO&rM177~ID#QGdqum6@c1DOeEBe6M*j>+l*paGp||gDCLHK6 zp{4G7Ex~-_qwZ5k^l#_19xBo0embiO$__k0)H%?d5AV0@i_ z-Q58%i!9s6+@UTUgjjl4N;pGnu9QDKO@GJMRtp6Kbv6*E#}F8Bzj}w5GBPn!KW0#6 zMd;qJI7P82$GvLBJ^3aa3SK3U_6CSJAo}5mS9@%{{1X{eT2Vfld$nZH1tC10hid%0RTi7)l8tlJ|_&y4yTJ};|V+` zbjS|phzm#@#V6>TF!!P0VYwUrrT=mvWj-g|kQ2OzE^^@|ofCRx06+=T?h?0Y(m7%E zgTZ5A(^oHbn+Bc}CT9R*&I$JobKz{bb3*8H7iz1{36EUi0th@OEQH@<7B-&mfwTVS zgeh0LSS6hkPRf7_=j)5B+@?wAgn}$htFLyOCY=-BJQEa1IwuVMG1qg#^7ho=bxpPE zoY2RE+4`RowrzCLS^smws%u=TWj-g|i{uhPY~+fKJ+F1)Wj-eylM}qb*SYWl&k3vU z4@S)_;688^v6Hy|=Y&UYa-jvD6VA_$)yB8FaFWgmMHyOirS$SNUEg!U?pJQebHZnE ztlXgIgs}wJ%5%b&aCw1>TM0$ke@@s7CeL*{C;V9*a84+tGL`Ha!YcW0Na877XpPfk3IiW2crk)e_+?=0!&k1i_E$G}N$A*A&!pFO% zoD&|{0?piW!Y!u|Zpt~~DtwiEPB>LRCBrVvN2@gFgmuqUyYI$ChkiO~GS$BI7toJ| zn!;%_)gF*1O`C{NM+*jjx98vKGS%)22Neu`sJR>Y-!>G!q<$ZHBIm>-(HPY4%_sIn zJW<^qAcgw+X*_YrRqP~lrrLqKI@Gt#I&vCa6pmi|w^09B0S+nv{gXBV>60?mezTc7 z9Txqz+LldD+KPBGn zNHt)HCk7f{UfTIBF8zA9CC(Z1(q0VSPnVbWDl&zk;zYQjXUI!?InI9|r`UNwiIGuK zB7I)k(>^9bE>WN3%1a{Z1Nw|attEY3PiyNhtvL^j@3_79L!b>fYZ^umh-or%NZoS{ zDmMOQ@x;}A3ExCHA=^ByQhG~;Y%;WDVOT@>Pr4Z7i~k^@o$O2V1a0t&v6@kMt3~UV zzyD_RrCaEWlZLx1I9>Ju0LT)+={S7}@fXo?4Hmhl!MHgx%lhSXn3QD&ZTk}TzwO=j zWp4W(Xpa{>MPv3G!p5<4>}_mG*T6xwI9=n9^r>iRImh^W^Pl93)KwY?;!8z4{T1m> z#(_z@7`8SiP*UUl;)zQmq%^vhoh>DG2hc(4_n^XDd$Vy&7g9h5kA9IBGRzIokFd(+ z&RZr9&yHI|PIl&e5qBJSpR!+d!B=*lvLks_KPBM(xg31Ox#%Wsd9R)FUOORN`uxY4 zGSPN|I=jA^Xn(%X3F_|(G}a*#?Zj0weY$YsiD~pK$eM|E;BRQ8biPSOjoTcsd2%M& z4o4H1lZm!Jkc0^hOJinYmx|Em_(SqA_InpkZF1EPCV6Z@c_)yS%jm*}@UV|}DPM6~ zc;@#-k&kBnng4L4zIy|+UX6nB^k7qFtN}e00~x0zX#VeOHe4p!P?I?thDxDDq-3I9 zN`jQEV2NiS}`4SZ9rBuf)2!_{E~X_@|SJHiQOt{aGLfC=h=AGQakv&*A#x zE?cX+tVrv~x@V%Djbpec6K!w!l5g-#v`73*E^u~=bH>UF6Dh+?h|!)9v&7#N_tr$N zzp#;RmAL)Dw)!WQR}6#II?`uz)fyJbmWg(AC|lwy@k%&0;AQY*!&KPiA&lk3(S}xg zZV?(aD%*nx+n37tdVp>g&M~FpeKY0m<}Fw*Y;h*|FCgsEh^(wM^A#3GnJhb-*=r)P zo_rWpM=A{YG}wJoGSN_)6`7SKb~s-c`@e05uB<9%zpS(1LYugi!@!3Lc~`=q`t`EjNc z^B*{gb{MLyHY$7J8NY1MM>SZW%$+6%^ z{PRC2TD{^4yqjIyNwm#*b2`O73Xal|4=3r8yNnlPDRW7t>Y=;xF!z_AM0@Rbl1ugo zH+wFbaNLtf2sn6l^2HXjD*LOi3hn}e zqe@H2slRX;@&dG!4g1w&gDa|4MVqSyGkKRySJ@}ok#d|wJBF%9ZLv*Wa zkgoAhpG2FGA#*4DB-)uMivQV@Xrp;xq#{|*6mcpE!wOY4$UG@|kvU0P$J~HME+20T ztVJU#s72;UwDLh6yN+0XidsZ)9eI6I_&QP_&&)c~`6pFJMBgUpv|^cs%Iy7Hcw!!8gCPNMBw*V(htQL7Gn9h22OMlA*o zHHZCFj*>Ocx*RAWk&o1w<&qGy=~PKv%!4KpI0_moG9sw1pcV6n``@Q~?XutVDSNA)5 znq#Ona+vF0dZ8uENn$A;^YE+^-)s6LTD>k5w7yj;>t-J3`AiFC;PCh92UN5rTbHQk zGk?zBCz7B8X&8lTe3elf6l`y zKIW>H^tx(1dr|FDCoh*dIioHY9!~zU9-i%0u3Aq3D^zokf{{c_p4C-X>szLR(@`(+ z-80fLpWdYw8B2Wk%C?JI)oRIfCHVL+ysGUKr4i!zxTh$sV0uRM)WfwEmosFz@|VoG z{koEM!l!tiD)IHwRz*De0Iq6W(K>3yj$YH20pJX+rYDGBY--P)sKeiw_!mv2?m>Y>v9gAZ!S zmghSvmmwDGUu4bs^Wqd>;ZpNMcLEdoc1e^ zCk~gc&|GZ{K94p{URA2$$e4sTltU@0KYAYRO_!@GYZdk{IV!YNDSI^=rD^DO26+Zo zxzfTw7WT-PSM|te^;{}#Pxwc}cHgPmBh|z)8p=p$)|^?Y#=Rr*LwgE6k9H?VX#3BjUBfTdkMtT%#SiibxQ%dtMHl@jsRpdOQY3u)AhZ;TPRMz* z=g1baG=2ZfRmJ2cVq(rpmioA~cSt1v%@g}-+XqqkFWV84|Ee$Z?}79`ne%9WC+|sx zbsp{1c{1Z&$TyPsR@#rnd_9foB_C0X)<&!n>{P1xI1_u)787o^m#zcPqrDdGU$c>& ztx7rYJlZ1!=QxkH13&3w7BTLF^H9}ar%OQ6xk&GhHnljc;XK+gL1l3s=*Z`Tj$X}Fh`|B z&ZCWyzE$^C8In3tlhj|;EjDkTcfY#5ire7Kx@Gxfo$a}G9&IGGoJ>;d9J9FQF~>TO z_UZTRz_MQG@9)}C-6AEO9DE+F zJka3e_~+4{%6qM5GDv~y^8#`)ms@1JkA(PC1?0H|`>I#;cLI@KwpoiKNa$QuGt9Nc zC8~!kuq#&^t*((OX*6FFw3lUnS`*S^sH%0zzwI6)eXp~}ux61be$J=4ujpA4I%6FE znUs}%9_@M+Xt){U*e}(N=nk1i@s6PWI42oYn!-A?+8LeE3y-X6*7;gRLI)Vlt9kUy zq}|SuM{7Bc_U>(}R;d>btTQoH54^HLtrO7~+K`qo=g~eYj|$e5nuerKF=A3asAgf!+lmbo5o}Jb@8_mNmJ(&8cp{h%|?OuJK%H24#*F46ezWr=#<&-f+ z#u0vL6H+}Zu|At!!{MGACab=yLS?bu%k(U1pemc=I|)r@gicFum$ArS{N8d^ z=k^CpOGjhNnwILhe2H(lwkl2IUti&>=JRM18AI9S*Xey#)rkBh+a<2~1;rR@m;X&& zJ+!pMSG-5WX0;4@>=8H2$h3c|UflhO%4XH*h|jMoYN`?^sZ5ZrNX`2`*OgcWrYf$C9dI*rQNbcRpogSjRLa<6k3)zYS=CSX?O65sVo>s;4Zslv<}!#+?&OFZ(;PiUwi zp6*Dh9o0SD1Jwi4a;$il`1&yevg@yvNlBSj{goO={grAsH2;Oes+jBtD%Jk;m#Amn zf`zJbl6Q5)aY2FZ9JB_AXNh*{sJX+LYFQ6dk{y!k+ZlO@npNh_C|Q|vnKjq4^(3~e znrm6z_l2@5p1Ag?nkzNboDy5l^GQ6<)9=qHr(sijhLx(N?j3n^cNn>C851hj*HdF( zlN`oCb46n^JLiGt(q8WuUaq#)>t3nul=!B1AW7z$dt7i>j&o_RQufukw9QSYy>Kcn zPhQ{d&E1k`HR#(7DU-6UN#AbMF6ET$;CtSdH(Wo&b>0RZr}&Q58IDc;vE0#Z?$GDB z45yKI-IdZdY>m9(^2nGUq>=X=-iK=BHUAnf12pnhB&(L%N$Olp?@ev~4Lka&JW1Ir z@y(av&L4%hT_bsRgzH2lx*!*E?<@W`I8!XJ+BH-D!c3^r&3wt zjZ)`Id|l3w)r#_AjA z_h&QHqOS?m$UFCZ3EW=x?VTYdz`~^rp7!J>X0?^)(g&CLZv0H=a4S`O`rasgPsBH? zx?-Q1C(lOPRWEyT8hKr)Sq^o^r>8nI@B0lp^D54=GcQT{lmLyqz90DWZ>5S~tr~eB z(K^CuMfe|?>sVu~Dma3EbEi~ayRb(FjWKmevzchAJ?2xfQWTP^??0Anhd9#X z&@5HYN_@kq=fQe-3)!nA^Jkh?wr0xX?te`WZ|-}4p&s4_7BBVp09nro)x*1iu(*%R zshU$?brO2@=X1t|6V$`|RXnq{5<U{Wk?PEi@yl}itMoZr}-br%RaW2LQQ&jH@;)FFumVY z`9Xjl-iJHccN3X9$p8DZHOM8@swHQK}*D!6H9Z6IOjty zLp4rLLJ#lhlrVaD-A|R=v%d&GpDx9rhj(K-<;QV_ENRhz@*FD~x>BhDc4Q+}9&*Rl z!<(q@S$cT=l(!q1_iU8v_t1Fd?e*H*<#@|_r6{928~d#y)pu-fqXWI&GD)rM+3FUr zNOVtB4{wjE5wiajuJIcF&?UxK_jWYiM6*?1i^^qi<4t(NEJ-UZoc^F61A_JNTIt*3 z`vaw_IZ9bNpE-}atNzj806n}l6U~KAQx9*2WV1sLZ|EybS!&S3`+mFRwq6Uq6@MIh zcp2kVX}u)P&RPOvAJ5*C%Q@59TVpa*;=4=wmOwqc`3=pzHNVbVzd%P| zYJIwDg2ZVLQQV`-BTdDrbxm>F(=H%Rhoz&``-H?%)!H8$gv9B&Ku24&Bgq!a(R#~~ zO6h=JQr5|4{na0~O}>VEA$oYRk6X1uYjd?@aF?e_^O;Ba)=1xz)cxZ<#D0YWb4?&t ztqBy=eSMA0JWG57PB+&JzuI$ z1E`qux5o7!-T!)hwvM%zvq-ISoX}U%Q4zfUFr1vsxGUakkpAO?xfj^)?M-fss>GNiC*w1(D6|#9hGmXoYlPx_4z85vw74Hvx$mb zOFfcDS)x(mdwyeJ=JqTha}!liyzET7w{zF>_f6i84bI(%cu8Hg^`J)hpKW&THkORO zZL4HsNbc66-*>AzXVA{Vbu9ViF$_LvE`u8?&01;bMxrh`NrIP40?eW19Jy_(16{9u zD^+<&>iaVxIlf}wjn7$)Zjof!8@$gNtk`#9iJgt>#Lf@@QVF-lVRi2_eNV*Ik}qM$ z;lqJ?eYzJIB5%;jvP_9@0%wCdx{})tFti~s*DNbknv2z;1u6MIvyS6jCCWEHQff|y zWhfK>S%&wB<~yfysk1e8W*2gkZb`Z)>6+M>@IQML@|z_xd-t+Pk4Phn$k*j&wvQvC zDdxL69<@qk*Q9Htl@Q$YE6ijiFJdbvo4ah~s0wZGDh2M!>6y?);;g`2uGB5j+_UsJ z_HjJSmkOzHl0Tt+pt%yH7gNH#4NT0{QX;YJv0q}V7pBbBx^S=i&U_=F^?k9`s*Gk! zwd>=2kp!tjHehDJD$YE~80)JBs!hkDM^$Lv3bS>0?lH+h9fEde@7~3*ijPCdRZ5Vj zS3N&iHc+aIlv3^Lka5ag_?LWj@dv6yek$K*wW40)%j@iTtnr!K7Pk*G%RBr_zIoI( z8ko7jtM`=shlM7K;~L)X?Jo~FB&)=?glQeolUaxTnph*530Ui_tbc8mlCgL1bOR~z z?WOm(7B;M|u9LPZ9uM1stAK?KYey|s&7P$t$;S%S7rpdzz;begNrXA4u*Q)Sm;;7r zPR{;S6{0FM-NZ_K_vw4K%H&KvgZ8UT_FO4-if8LEU)g(A=4PhKWKUf~iuqkEDQ*3T zdICCwjccpg=Ua-3Qk(3@vog-`)2~V8iM#KmPYYC;+fEOsN_X=|RVMp&P}SP%v5GHKp`}We z)u1x@8A{8~=Li+0SMw)3WqE$-n)@s)kAZa6YRuTa0zoFcg~Pi*PEN z@@4Aq*VM2Uzo;6fI&w3wnl5;PsF;d+lD|wu)PzJPBg=^fmP>rsN>(^tAG)nEAB{3Q zOEpi?c~zjBlb4TTt=~FHq7$OuI`D2O5(?Zut5h+$_f5MX z))FcIWBOm9-}>zjQlHgMbDmNoVn#kil!`3PLsOeoHNaLQRHj<`tp)u21NyC_Qtd6F zK>gO)PfNvDAq`Na9H`&gdZgs_QY!pXDW7DCOnx~1*3(l|8>O&yhuT6M)}Y@ykH}!} zaq+SKm13`@H2t?8-K{obY53tLKePX-GQt|@9}*3TuCaK%2Xbs@hZ+-Iyvd;G0(r-PRT23aZ^}`3b zcIdbM>nS_1yCwUA^jjyYatzE}ic6&hGV2J@Z%y7O*}LW2d8(h%hi5Y+7cvQM^5P@Z z#{zYJHc^XHqqQ1^x1pIPvt+py=E>sSpCn9qxm4M(A1gM%=4%-${4Bj^EE zS0?BCe6Oxn`D?YtHWCrFni5=lBi9_a_KISwRVH^`5>R^!%qMoGo$Xg_{ZzeI5?-hN!ADy7+~F~}l^e(<@CsTV1x!>IkyI99pS zC+d5&o~_3`Uq7s3>sxAT!fbme`ZD#gmqM&en%J+lip#KF+na*ti{s-~**VOyf~)M0 z47p^fRpyEGOO8iltIEEOEvw2}R-0(6Qf0eS9|Ehaxn!QCo?A{pul11!B)npKlt>$fi`r{$7q?^@n)y@~7E^;*vq+u`(DE4xV3u=QGRRs(C0Uh9WA4%KVz z_ZnUX=(X->C3Ud&lP14=4?DWsOEUZ1=Vh4lN1<%B_#3F#T3$p23OZ>r7iU(b8f$v> zpmrNyiCetkRCMcNlo9|tUTA#!24d3xY*C8 zDt@=>dy=51$ZUr`#~;;eEum&P^jhB?;LNjb4Sp2APgbwB-qUIjv!)PJRb0bOHt&D#MD$w6+$$xj zo;9O?kaaz+eakBU;(w*;fmg;$`*_J$uM5;`ZSQwq`aM}|4Jxt*B>M*?zRWzChUndE znHm-`rmf>fG2^W)Pt!PLvms!|B4Gc(8kcC7akdq<`yu^< zdaYX}mR6Gw(QExirNIn}L;BDl3~9;zdW0_Bww^xunWJug0aot}SoRO`JIQi;TB zS0AaNf3aTc=Z{G(u+?{tbW<%%bu;$zuf#v#e98MBm!eXub86AG%`*Xdt-s6OgIPt6 zr`P&CvxJ)UTA!#-bo_hEMS3sUj_ojsZHQiLCl1$9vGdP^R4iw%v$QF^(LGVU*7`bh zJzj@2-cJ6|CC2kkaWq~Tbmiu47lt<88)lj%Y4tJeDVdKDLFY>j@IM`Fd|EX}DNE;G znJ(j6v`MC(6QI|+yRW&xY3jA^kZgA7wdSG=L=n*cjof9bSmj&#Ri~>)rPqL0;*UeG zwV;;xt@S8e!bR5Dy2QNR6dg{You=p)N6hIOTBT5Bi8ijUr_uAbTm&pa_Y6t zv>d5*>Gmp4dkAEYDvtyer-3!aseYjMvD$m*`I0Rx@BMN5@Rxvu?3dnEAAUnCR+F=@ zzc3TR4c^FObI_3^i{#$aF5C;zYfX`paCGmZTn=V%cRcf`d)@Ut@#Lka5Qo*LVa>Vj zSNS>%Z~V?&FZk1Xt&;~zQwz{*9ZaE<*>b+*7LSCd(jP;OBE{ucW+_#)Y}D;tvO5u~ z*LwM2+DV{Z>ua=794fumE({I}_KIbQp9*V`UnJOoa>ojW3laKpLB?0qwWt4b#{Lu5Of}Gtu%{*0m_6Gw=qLp5C@;9lti%2>N(J}f)jz8xx~#3t zVQekYyStkO{U@|UJ1te^YR&Ca&XW{`J*jZ2**|_QE*ynAfKP!0& zHn_+>m=?as&crjiA1SgyQhEUg6{>YaN=#;htW?wVPfkm8DEUNb7OUrAQwe9=-KvCb z?VdYCi)c&^G>o*Qb@5?v_g={hpE>7!(BVu~oFmiT^rz>&L_ zzf18qICpch!sqU$Wp?iF!((z+vhifJL>o>H$ij6jC9q^}Yl(h#zoc1fi4Kww)V@Z5 zmgrH5gPHlg3RGrGhpifHYi3Qy*Ag9+XEi!Ct}W>(8L-bf2>(;5I}N4t)!E3(2j@yW zq7ojUCAvo66Y-}Kr?8_Ms|_^!H-k2e%Eh6lK)Y8<^$YHkT(vh3_N$1i6)3f;;n%>uS0q6ikIm=NQ0zUOB-M>7 zU%PJ7dpdF}%)VsLk0p^|H6G7SQSs5sCw`5`pQft1v0Nt2vhK8;%CU+XP^1PcdmYN$ zpE+@j$NyZWg40ni@!eg=G2yioAqv}@Me;{99*2wL<7zxU#r&yIS1McMvE>sg!>zWM z_K>b-=6NMnjDMD4&)kW$tR`ryQv3e)Fs=d~c>~_1K7koSh#up(iK-}6&YzT)S%&Pa zJG9JN@2fhVmf600RPk5?biH#_W||MZEK0_u1bkFsouy^=aG?aHo_k9r8`?ieF4x&@vmWwkPZ!DpH~oqGk5QL@5#q++PqXCKnJB zbIebbGO<_xCI8KR_!@gtPViCrFIrQQ|GQN0Y3r2#O{rU+pqAO1E-F(kEwgjG%2U8e zpQ2cCp1nXDsAYDV^u+qHWVg!KKrORZ3C^Kqwnrk9A5P2crL$DyW+tK68($WOHE5Zg zalRx;YneU4^@(YjopzVX2&;4Lai-L+vuwf%05E&3C6{99m{${DF1C zR?1cj8JY-^cafMat!|CV!|WZYF9hf*t3&!boBpwtAnglpUC&e%(0(d<`C(;W z4Q>8D>CM@emYJUBnJZ|)T4p=jNM8|N%k25_Aw7nwTEE?E_ZaQ&clH?89L(%BbOjD` z7Pp-HwQz@Y6{Z?dxKk9HB@Qc1oDESaZ8L+N1PeePt~27yrV0RGkaf zGHZ@4Yi>8zba|b&DxSR`;w5pq@yUt*NyRKeau49lrk}Rg=ue z5wi}L_{OD46q4yMYJVJwRdG9UEwgK+$yo8`4a0+BDsDteiE2$1_c&T+TU(q+m5pJJ z6Jx$#y@x_;!tH$Pv9M9bTlNudbW--dX(lXnX zEg_Zoe)~vknFYMV!~LqIstz1xCIHEY%<-|#S#qFQ@*(|xXRxF3L^MBH7W}Kk@9yo7 zRfo4IUrlgWJakS?7MlfH{JBPpLj&VmX~wrT4m`<~IurobPL?s^VtrUW9tw>eiY$f+(;lXY-4*^~|(0w=Iid9pgmSchqcV zj9Av&HY}hOXrDG^n`J-#4k=!F{O5bd5+`$E=%N#fUr8(c4v3%`Xt4-T2Q^ds>PE=} zJ0Ut^4=$A8mZ%7+wI&ta^JSjmVKYI!qWKADO8UAtluD`dfM~8@{Ze@*>ru+hv3&7K zmh5zf>bor$spP1PjFHKR=TVj2exDK~20Z9o!bolDR^2k{TbN?iI40GO(FB zdY#*8j&zn!kWRBgr<)GcMxfwGZRAk|>j?WA!mEN;4_m~S?> z=dM~nxIbFrJB%tJxq$;U^kiL)g7d|A<`d8QzbWI-(1I@W#7ooRb>cAmhq>w$R})Qp z!^YBnjbJT6n&)nC(;v*>tb-S~r)Okc0VHN`KB*@@}z=?8(POS@p&(F7e+*0X$1GWh*?W0;p+}`5DaYx*Zr-dDH*K@m8 z$IcP=d$C;Oi2Kv6#KRnMKfYaEGgO!O-j?g*#&4wfoo|n%ObN^}@NykPYs9Tzif?{< zdPLkNSr9Vfu9KaMz!A4tKM`2NU3ak|o=F2&9q(N#;=v>C$~=`E)eAf+V{*udyLGNa zD{#auy)9_OohU=FxfE|j!J{2YMwP0Js%gYMWshnT%p?P5ldm>Ei4k}287Da6K3k*3 zpb>XPjTUeCG9bRzi2H6!$B0X(n@XRCUNAbr{z7ONC8LBibU7$p4&frn_UT*JMy&3! z52xh+l#*|qg+k9}?y&m1@rIKEyYZi-23g(s1q92;#<^8>#FmV$W>4Nb#dA{w={WN@ z`*tAQ-#?@`e|e(n&6WE{#JvpSvgMG}U`T%H(EP85=6{=#&%A$|uQN$<^yuc4DqP}I z87k~pgiSm-CfRXV_tRuUv@cB@g`P^abENdc)~QtCcdqkUx0Wq@>a<=i)DQP$Neks^ z9onuIT+_h1MEINj#KnW88B8~-3H>gmC(AYkvUI}^laAXWelJodsqgW9_lUGi%iD(5 zC6@1gQ`MRx$E|yGNX3K%&X5XqNb8Uk;XA#Jia?YOa22;!Ndz+V@8$enZbslye*~JY zT_VX}l-kG9NFDsb{>5@%F7>Uskq!s@wx&c2LzOr4Y1>V9U*z-KZnX zmUBRT|5D%1EA-FfDAm}SNBb!Jq`P5XU!KSPw(v_Eenl{f5@d!!M{aIGd{OS&Jc4m-b*d3Z`n{^23{^e@{s z$}D|oKH9l6idB!4PnF6aM%9u>ND9zAJL!%c($6!aGJh}9zjy6V;0|*#_S-&b`quTI z;I7y{LggVyUa`f2@fWwW;)&{X=`+qO!^`Ok#X!$s|N=niSN zo{&0pC4;qDht$)YzvH#KVu|J)99xSd^A9BITBORAZiEt)-avW+^5Z2bIUXdXLzCIL z>bCx&MiBYQ*H^^Gd0SHCF^@42#Z)YonidW6mD*Ao&|5@1qcZ)3qf*IKJv1t}IHK~Q z*r+KgGp;yZR3@HqR5HUx<$6a{F0Cyp-(4OiDygaz0%sTf#mD3JH?g>+C|Cnj&rhnq zk!~Pb|5hb-E-?=)%?*`)QwxkBCLwwtggTDmqbnKyZ zhe=1cMXDC7N%AINRLc6>rrj{C?**+I+Glt&3zs!q6}1X8YMooiti+lv1&zSuA`jPA z*y?nq65rbArOt_dR;0fKRZdBA#KmH=dK*^WI7aYoNzwI)0Hd_3IdpAI z^F1Sh-+Fu{|Dp>WH8f0J_^3(Px?t7dFfLvnV&+E;t$-F^VTEbV5azDqW)Tr9VtA+0 zH(gsizc`97)=4xA>i#-P#eu0v-3ool6p^_oUB0Rrs@A*Z4Pb|6(g&Ni*u&x~JwaOp{|daDuRG)bPx23&r!bV3r< zrfY{C@r-YbN{Id_(<^(1Ne1}z-1PyLy~Hzr6#IunF>KCD<=f=DWKr^=yt#*r z+-S*exp#=NNj|*aW&PHTPbWiaU1L=Q6^P9uI7E|l6v2Y3!1T;wJC-82)=E#FY|r}B zLpC3h)JPFfZ^^L=T?V5*QDtz58$o3-R&DTxDT5?6k~2Fu%b-}&qdJY`3RMge|DmcJ z4iKhHxjZASW5ahGQSshIJjnsR1;`F5@g8FR-Yz?)<}9D8BOQ@vn0QmJ3t}ZJzv7!; zm1dpVW0hcZGjOb+I(iTpSDigd@Ndy3*AoZYv-JqTU~N~)(>D@vl^SVZTu&Y|fHhI)kQ861n%hM=tTVH$%my%RQbtxo5SI=bRmYs~rDgc#?u0hE-J17}R z%Br1=tqWI;L;0nPl6SN3yPNYN z3St)0=NSwc502y2;HXG?|AN!+;yNXww3=C_F0eP$evi3=PgZ^68~Iyx^|u#9V$Zbl zV2G6gVx@t@%8U>zUx<}&WGU42<*E=XojF4J+szIu7lv5bBUT=FSZN$$Wh^ISe|w9= z%C~&tP^y(0(^QJuR$=8@hm~z1R-P0q2@Weyg;+tqr25;_99Hr|tlT12DkRs#))%#0q;h)!%YZwCzia5G${Um49d}l)ReXsP=b2twTxT=@eArAH?eZF;;|j z*m9gH`67{DV#!yB$Y+WCOiO-OhtL_}529b1^H z{kcYrg42!Z5mG$G^4#MYhCMCkE6K`Q{{|`fS0cd&UPe{7n0&;DrvqCS;{L&#l>6;6 z|D=gV$j^KoE0!Qk2hYpf6LvxjwH9N3AXgsL^&t}_N_C8?z&h~B#WfVD%N7n!1}GHOPhZ38K%GR;It@O=YgyJGm%l zAbDRTx6NWXz)WQvLU{iAi*avGk_J@bf>0+mdx%gR_vfqoTSEv|k=(p79c z=CNK8)C(eQra`|VlHWg?yEL3bzP0oY?8(x2l$Q*&@^xxmk{qU>ng|1?^Ih%c+~iCq zSqB^HdEpw2Z$Fj{p1*~jujawO#{=|^SkcdoU&xk*y8byCco z0_8JRZ671}(EM`Vg0j9+WJz`)G1cpTnkb=U_#AJ1(I=6;dN)I=?8*lIhed0ZSuMz_ z_f2V5d>LAbF>pag4KT!4x(Yp48MT3+RMnK;msK{;u)`^80ZmPGUN94=`Uo|-IWG~t z0DHb45T}>09A5H4jgq5&N#Ht4z^{O@J5hOwa+%K@U4GV$Rlhj5 z%qO|b^0(E)nQcQJG-bIXm3AoCj_;~Ev|6~o>#b-i`o=u|^EH(PA}JmUP{s6%`m*h+ z!raw#ZBoSi@_MwUrYQw=zjsS)s0gc70TL@a1am#+u*|2;`Q%|08PAN0*9k_sJ9KGv z4Jt(!*Cou%;%KeRLTw0G`gx&`q&H;gM@>_B^-vxn%Y>-vU*OOz&hIE|luS zL*Md6g`xxhZDXf}LRHfOL+`!0>HPml(FNX?%3{S*xjK)$r`naM4oQ`DiQ0rym*$Ho zedK7Y-t58LC+a!psH&kvs)7Hm&Ll89H1%Ethmd(lmp*Y(y0sMZ{ChKKJ2y6cqjICj z&JEKSe}>fOJuAtO9A{GKvg`~g))``@N*>u{;Fso2Q;`aPkaNt<`G;h7iEr`?(gMum z%$8H_|CrMhTrMS9%sH`A`?v0y$gKw`Snr#T(n-tU?sv1X$ucWJb z$#wp5BEYX+}x))qMJHosNk4#CkSAr3;Z}>0uG$<_1GNG3`@43FhcWEQ7*Ux&rFa zG?j5?yL!l$!wd35vt~I}Y!&gqr2qT3&Kgr`bQQD1p`KVPmJi8fk+E80={Zf}p_<2G zcKpThDp8jw2X%DEK>dJcCs*4 zWuYX)8ZD?UEU&2#N`)q(2m#%)#ETu~^Hj4z4UHR2-kQF(i#TAV#CHb$yWWXxt9p7B zGx~T;)5g`3i1}05p`1V0XUuz3#U7Ut?@HRE@sfx{TectlTJlTML(Q%!J&5f3YK{8g zx6=AeKpES=3t;U{ln^Ik#q$%ZVoc71_A2~hePzj|PnCT;o>Wp)JJ*vyk9~sR)W>OS z{+BIo;OEBm&ogp$9nHGl!qMWWfX{U@WXb$;Bp>d4)x1et{a`(txp>a`B+}pM)49f~ zfK=D>+as#%v56`|hI+}s{8)?`0cGorELr_m@Ak5~SmJx-ZxXaj83}ri3;-(VJp^su zq#*r4$LpYr>|`iUZ`DDoBL6PErl6A~Xn*oIVR3(F=@|U?Uf>?F)7e+zdrW@ngA!Wb z;FqZ4H8*0CC}Dq9RZ}zG%46w9)=tfLI>$)%CRg1yw@Pw5S9EbIc>apJO0rYuo#bqR z+7`ewbxTspdoZStk@!fXigNhc5MQbOrTLLq!WDD#1#%~Om!n4U^RR~x_gO8g6VVOm znW(FDGITV!Uzmn_Q#UA|HpL`zkFUGr!Th=9#*F3|y9_mdDY#PCgr~1nagafKSBmu8 zvg;?Fsrlz@;-gOkFaubi0#I@Fs@VJ6i8Vu(Sq~EwiOxS%Baj_Dd)FyoUKu>Ap3?BB zIVqApL{dsfvP93&qs}c=)mlx@N_;PT1+Ljb6-K@k> z6}BC?#B2V626S5uws8HwzyIaH|8n4eIq<(6`2SB1L>Q6AfXuA)*o^7Zr%mq@YYffI z$<4^Je~wGb$s9i>CwF>g*2F%2#ta)XetJe)ZiW$fKP@{uBP-pAsNpZ1z@LQ?5y5g~ z1644wIn%~Z&X{h;W_U)fzLgt0Eju@Jnm?YkrJ?`$@fq2F<*= z$4`>H=rCu-d9nStos&5yBj~>6cEYsjQ`77+nUTeh@sl#rW6!<$+}O;lSW~R)ow%vd z{@fF>Pq|H)l1Z^;O~m)~j9GG#lRJA#M%chY!pqE3WgD9|ePWl)^l)wh<2NBKa|(&c zofey&Ha#c9Oiq`a?2PgFEt6y3@-nWXRAMLbpTCCRJXhbHmNjK|?9FpyRUN||H#;{Y z#~73`ep-4)4Nj(JTypo^u3>7)gtRF+83xTcBP4vQymdULO?P-`S594;0qN~y z_Je^p=`^QjWKT&OFX7bEUUDa8=5*;NZKl(C!L7#8^21yj{*JZk!P}z=$*AW*KqU z1k|4~Gcz;(-ltE_jB)e>0g^s_h;YXA+~9O&X60r~q`aj!CeNp5p!7oq=M>~)Pi0Nn;%^?Lwz&yx<`(ZIW0Z+nn zuo^bNM%W75;5~RB%HU)84)(*(Pzk@nLHHexz)?5`b*aJipb<2NPH-L!g<)_xTmi#j z6kHA0z!G>6ir{6~2*uF)0>fwvschA|h6)rPU+6U^V>h+#w@qf8(UhQkP$ z2$Nt6L{u9_8kEC-#GDpkd;=BmGZ@(s#^HZpE{ZUA-i28ZVKjt_mm-Wx_!X+)C{%+{ z6k(k6a)i+xdO#`+hmkM}(qR&0L)AYcjHrqTqb|G;rEvF85ym}mFFXRq&k;r)h=#t9 z1VbPdu7a^J0gPX`cQC@pgKe+_-i1>52tI~gup7!@KYS0Ba1_c9MHmO50)7JHH~5`+ z!d%FMd?bN5?+Rn;48q2@l$sO<|e{|Scqc(qli8>eGY!yjGwm}M$$am9F#-)ZNwGU zK+^5hG020(P%h>|+6dIm$3IvA#+`(B7vtdFq!khhaSJQ%H;lEg6-r?r#PF@3rBDX@ zz*xdP$b`U?KQUZ}SQ8KlBYD1^082IVl~RniCT*Wwo1vtS+v zd*2{$AnHx}UxB;sAT0`Bv^hIuybRD2EaMqWggM z+Xx$Cwvz@(f~{WM!#=2ldONTO36KiuFcS)4C2WOq81XKCLi_jd2NK@Lgs4*dh9p?? z5q`s7I0!Li_z4rB5LQANd;=Ab`!Q*R_B(M8F}v^!l3>MdvL7m;-WS+`R7i(xxC1J| z_!2jJa04;_rVc;?41yxa-Ah;yvmY5Gz#u4v1qYD9f}f}dFya^L2IN8>EQaN<4~$Cu zI7GT2>M(JEbjX7;G3oagL+KIjR}n`ji;OUu*NHINLmn)KwNM5XFrjXQu>h9CUWl$2 zVZ_v@KZW)UB8)f~3?m>L%Aj1#hL})4I>Knsoc^&@1c~E*Ps{||-b9}dW1)Qxen2X; zpFuwk?f;GmgHT(V0J*Ra(oy`F35y|VF8)C|tjUWozJf|HZX-U6hz~5jlek0FeGx_i zf;aWDdQLi{s~DNqT2X zSP5mY4=SPKM*M=o=yPs`!CSBoc@Xt3e#0PW{vQ5AA(TNm40@mVz)V;G%OPqvX)2Fk zjEXe2!e{Um7!i@iZIO{i1w_>2cl}5ss!5~~-89mud@s_7eIN4^?xRi^^(AI`q_HBh z4ntoZV{yYeMiEp_Xk^4qY-9|Aa@d>6V0U99BWhYBBNp1{A%}FxhBZ(O3AZ<5JZWUi zggn>^rBH7X?qIM7KksT}jD@JXxpz+^qY{il{JM{@Aa`*iqvMiBMiSItiu(t!`yhTp z62w1(KadV9VJqx|=w*cc7=FXzCmR_DA?7LE!3fBP_!am8TVW@Z%k?va0a4H62egM& z$b~}K3&v{vf>>DlB5q(G7%w$4MnO7cLjpSRBVYn7fTd6b+n@}}!ByPIXan9&jf~yk z+0w{Z2JU|~GDd@|1UY!OBL~kr$ick>Ik?_K4&L{XgNMn;GH`!{99$nG2k%bg;Ms*7 z+@B!_*KXwC{Q^07_8k7&&-8kgV%5wyTKFbGM0fm%4LiOS3Q@}2E6r= zgQp>KaJ!I$s|j-Oo`M`a(a6DlDspheAP4X1$idSBIk?Y24zAY7!P^Eoc-kQccPw&n zosAs4=O7192jt*B7dg1jLk`~ak%Ol*a&UJ=4z4)l;O&MSJUx(uyC-sR^+FEbMC9P< zgB;v_k%Oxra`0Y)96bGzgL@!ya3v!L?_lKMNkID01))Lk^xRkc0b5wa;JObvc<)CJo+Ze^{Qz=sJ%k**4M0(+WAb+aL#5JLKR!6FGR!LJsb8kb|oOa`1LU4xUcP!F@h*aCJrw-Y&?& zb0KnYcS8=Y9>~EPj~qM+$ibb699(^ngZCoj;JFw%xGzBtuKviuI{-O&1|bLcVC3LR zK@Q#_$id@A4(?&d!F2_4@TMXM&sE65JpwtnMj;39)yTnfEpl-G4LP{3M-JW_kb`F| za&V7B4z6_M;LSh|o{7l8orxS=laYgW3UcsdAqRIha&S#Y4&EH(;F*CO+@>mLk^z#$icl3Ik^6T9K4H=gXd1<;Jynvxb8*{-g}UP=U(LC zz8^WbmLLc3Qsm%y5IMLXMh>oJ$ie$4a_~Hk9NbSJ2iH@`!Mg%Ecvd0@_bTMzdJZ{w zpGOX!7m$PdCFJ0G898|Wi5xs@kb`?Ia&WCf4&K+1gXaz8;NE~7TpN*tw-`BiHX{f3 zR^;H?h8(;l$ieeAa&UW*gX>-7;C&A{cuJ9j`$Od5Dnkz5kCB7t6Xf9j6gjv)M-JZI z$ied^a&VU;2iMog!TWFI;Q0nQxc`G3T;C!G?{~<-a{xKGe?Shd3gqDZ2|0LvK@RR; zk%Q|Ha_}BT4xZnUgS!ejxQ-zQZ#8o8L^Ls$fxAuGzxHZj_Ow_X!tH+UK#2X`an z;A)H@=)Ko0IM$ia0Xa`46>2Tyn8;EqQQt_0-Z?S&jXy^(|aBIMw@ z7&&oqYW(ygW<^tD?{ApDH)Y+qsZk7NXGR<45Y;u>h=%lD(MA!(ERSaGE!r3X*{~Ii zC!&o7Pa%g&FjgRc5jhO{Fxtq2HQz-WrBL=G@(TQ`#NS_|jrND5jj>SAXlBGfM~H(3 zb($I3QO%5~`pt}Jh=)|DgpLic1NB_ohncV#ir`}?hxU!J10O>t;qe9E9jL&5RC^1dE{*_CX~WZSnJLuA$>O&5S`X z3eq7D_Cf{3v~Om_LS+}?-jy(+2%_R}2T8D|2Y$m|I0#Yk&5Y)d3NxV))tBbj56W^d9ZR9af7H&scVn` zBVYpLLLS8bNL_$zh^nAoLjokh;9saCPz3uRs*?CXdx(RGfu|W!gHAJ|As5Cb^ZTXd zMk++T(%i^~%F5r8jX}q-2lc9(8?jLKc59;oBHn3jBtcX~8>9T^ zHb&GhZH(;7HpYnNZH)<#3(H|A?1gSE+8S#hu4P+e1Qf%HR&9-PXy3lAkqS}E+p-RX zJt$p?y=U68?%&oJv^6)R ztdT=wI2Bq#JBWn=E!l5`u4k}D4Vz&rT-Ta)ZnzZ|!(*@lo`ZETxDETAuo*g&g)fq< zQaA{Q;ksD%G9e2JVJR$!m9P#boW&YAj60if;rw&h%7nYYXwN<^_~2)#guxwHe}^>4 zgRg+W!WaoF;8~Ep=eJ=8dupNGfD)_k*;lRlA@eiJbt?)LK z!pGo)pP>@Ixq#m=vNQJKS=b71Ln(X=KKL0b;ifKx4|5?8{sr4%WE}3{S@6NnPzj^D zv8@PcFa>^QU%3)S#v8^DPzhfr8pZ)QyEpqp@HNMHAAqwj;x~-zOBujU*acrgIqU-; zY`d7ef)Ak#zJtRM*^fO8Xaq6P3Sz~)1RVnSG6{cR9~^*$0fvzXGl!8jxN0N_Uj88h#iWWmLk$!w3&HLm9NXGRkNJbKn*@Wq6bk4Utzz8By@% zbx}q+yf`|_D1z_C5l+WkW3UR=!w&cX8V{~-G>15N4%R`VA@z+I zh|H_cx=u^ZOkS>JdQ{^_Z26vIF7$Ake- z)i*}NsZZB8I)n4?S$;eRFTzXEH`XvNh9PhnoJ}8m4)lgTuoxbOXW@CU^oBZ}qjiU* zkIskpp%g@qNc4sd!x7lr-Y~YnbM()vVJ*A{#jpvEfan)V-(3&t!)Xu$cR(SC{!arq z4PxMQXbvr)EwqEP;B4pwq94=)dcq(`hD#v@j;A*?9y^o3(jR()>nEWIoO(p@=g~hv zUHbe6&>Gr8DqIO8VHCvCcXxw}p&vXzpZy>_1P_Bz5rJ|^gwX_|;X;UmDKH&wg**t> zw|Rkk`yk?H+(9d74HrTjbcc(;sf%;u7s9HHF#7$<9wb*XbjPi z0;zBvjDdIw#1kH|V$6Sps`rt*VaXl#ULN0+Zoxcp1vz5VYb;Wfy~dv1~r9g!kYFIE7;{ zf(fcV2Kw=dW5#H$&ThTO3|4CCqWd}~XM9>#7RvEx%6E$!GdweE@)(q*rw(;HiQ=NIp_~E(Tx``_7nB3`UnYlUS$M7`C z6#nos(7ypQCYZTlCEY3Ssd81^`Xhz!-F0bR7(+G!Q00KCFiK;b%Dg zhpOsC_#4~`Prz0<0F8gFs_q;3{~c$In z;ZC?62Dpz_zkk`$>Js=3eu8N3HHHh|9B6X;(dsxD4m05)coX(OfNYm6Ht~HfBkO5hGV@k5GyaXWKPIL^Pblu0-VR%(Xd;{b4N8g8W_V_iw^~W0)>aCVQ+sA(gMxt6vyRYp%m_`j{ZqHxXa|-mDu}&E`2Vf6tEN*pFX!sY%Kqb+1JYN9_e#+d;`m+mWXQW0q>ynIidHc z2(5ei+&(-YaCP(CxyA)?aqiqj~+eZd-Uv)(4$w6#2&rlo^d_9_3YlWN6+}4J$okf?A0@|XYYi#gl-Al6M7`XC-h86Na&T2n9#ddT(54u zy7%hQE529HUJ1Q=^-Ap3J25V?TVnUb9*OaZJrffWdnG0&_U=s-dlP(byzY&&-rV}5 ze}M&Iy>{d;d+je--eK@u>pjpk{U&H^y1XbWHD|=!Aa9QU!cmx)o&sJ)3M@~%KK+UJ zkiykdv%l1V>DR^V7hPq{kryKM3sAYUvopkpz<62h%>O=~II(5NG^VWa=eKoS(*s|eh^_u@8UEe%f-3P9PdGHWn zi|K&}Oq}uA%{}=o_QX8G?;oK)*J5_Tv`FPT8w$bchx6JBe=u&Rn221$mw3tbbEYZR zZ*y(sk%VW3FEY8`3glYMBp3^M&~n$&>RJCq&iLSHbsGExo)3>!k0mOVs_f;r?+d?{}e~~(~vc!HEkPmth(c6|2;|u@X5J>$EqKP-h+-+ zHzVv^%$MMhi8DSslXcw0p4@+U@UiOeAn{Ud?!>gnO40sC)siMF{HqE7TNCkD!k2i- z^)NF`xxSn0OHBXT6Ydyz7DTpy`*#q&Tr1NI|4mG}C$xos@_ETq`Bdb8i&t`wRUZM* zjAPXuW*)0PO88?jAAx_HIODSU?>cT`PwwBr$3%8Q``OyujA?P*9PMufrqd7SwH5wA z!vEMrabALMF%e6Ai@K-s)Z-{K(%g3ts{1?f4 z?pXD9xaRp|)jz{KgxzKJvFb@sWa5m^Jum3^i9NYL{KaF{Pr*;7dCyD7sx8hf(*AD1 zbo$}Ew!)7l>?ch`F5yeOfGyI;8 z@Rwrmx8Lbwj{Ns{=9gpDKf=7qW7TK;daU{~!XANn4}4`h^zxjEPYw@>hEorjC?}fd$O~hXbU*aX#UCc1$I*aQ})4wRfz63r3k-fLf9=iU12ypV&aU?oCqB^u_yQY zMOIhuf{t~xxfRo5bX2wS_h(F}AI@tl{3FDnfba#8OZXBmx&Dc3%T0H}?_%cBcCPCX z_5&dD>DCNBFIf&3?4HdKqkluc7W^)zzKA4Owt6tbtG9cWC=~b#)R< zf<>?@49@j@wn-fOAFSl}p2oo)8EI3;u?--5CuzCU*gpx~K+szU>N#Tl^ZIO@t66@W z7&|p>V&-^OKho8+rC119YdWEIkpLGpp3q_*YbDQYA%E5bpkJV(s{Zpo^jK1Cx2|(h zMHkMjsEhtfR8@7~u7+`otExI3^DfNBm@^tzRkvaP_WV<-s&Ck$%x#!$F2sIQ{KHJa9E~{+^A^loFqdK8iTNhxW0<=!i!cWfPJ`&G>PeWFV=ltn zjkyZ*2h8mvZ&p?9!yJLx0DYiaFgs)3i8&PWGt6wv1DJ9)Mdwqis*5m3VU}V}!mPl2 z2s4^}=yOkFPX@Cm<~5k3FlS*-$CUl*)tKur-@)94xfk;=W;JHZ9_R(c;2v`{<~5jm zF>k?q^Yp6f6_}~bi8to0m_E$-7UU~BOP6DI#%$iQsyY>OEM_)l7G@#lI?N)>4>3zI zk6~6|-hKx0?r9k1nDLm;wjx~2b(pg-t6CFp%#Lk{H)bxT4_&CcFdLu?wF+}6X6Li2 zs&g^FJDYOAtk<4$!2VU3RhVNj+awsqWX!&p_hOF5d*$FcbGX--c<|NFHarlS14YLTd46_uoemBY+vpHrox@d8jahUxuQ!#JH z%*I@bS%`Ulcgh=c5auq-EKJd1ySE4R6rHulF%vOgz`O?Y4a`}X=fx9W%o{L^F(>q7 zKN2$!v+*U=iv;Q!W@pS1m{(!uVot$ajClv<8qDRGWti(RD>1iY#w6jc7vW+q#vF^e z12YeEALeq*O3Y%+GZQI4%&wS5f6|578S|f*shB%3voZViCS1%6%r%&KnE#Kk^MR|X zydUu8ay2q$SSE8NLm>VK*FxUKqn2<%#E!9wx(Vmk{69f^qO`mu|bfIqw3c3Va*pz$uFu4|oQwfvK<=UIn}0aySU@g^`!>`;lM*+yyh>04#vfS5bes z05-sTVFz4wHT8#OFgk;GsbCU(4Q9b+SOnW)72FS-;J2^~Iv0~3x?wc$k|tlne1w<6 zZ1@^1f!(kMW@a;PFzH&>d$=4%E@Yfx0-U{sdc$;B0P|o4Tn!swGwgt`Ev4P?2#mUd z_T9j`1E<4Gm<9{sVps_uhmG)6*a=(UAWX?6eJ1NPOoR7R1pF0@&Ej}2VqU?l)yymS z?mdhPoOv(f0`Gt=@HyB6KZYK7%o@^PO}$|%%!9cw`aX_FI1ARnOxOm02m9f~63!=! zIq$)Em;=+{eJ~%s56fZs{hXg*>RQfEF!~qtD@-b-U$5b~hly|t%!Dnl5ca}KI0_r# z)CU+Bm<0#n4j7%yJmP(-WHI{RWd^Gh6|?VGSIHufmvXIj^mw-{5C3 z2Y&cV>J5Kd&U}P(UGpa%}X z*rlwG&(LqM0p`FDVF_II9PK3lm@;%z*!e1@MeI(!*V_5q=FjVblxE7nlg6Zlqo?5$=YWuoo7> z!>|&TZlm8|6YPR};SfxIk$zjoz5^z~5|{;R>*;rR5LUs-FOeR$!!EcF4#C)$Nq-Z^ zBTRy+Fbl4SMX&`{!9B1EE_;Ra@;w}e2VqQ}gAQlD!wXlEySb?`IT1_xjtoZQU5;Z}|t7zgM6j&%y=!hE<2mcv%q02j0{@8C;t z03L>sE6C?<<{g|1Ghi+(fc3Bf?tl$&2zJ0pyGRe?VB~G|7fgUTFavIZ1<>^l^A0A# zMwkaX;So3}zLj}fKz=Y0X249iqK$bAn_)FP_YaI4d=U1)!rk=S?Og9bH{1?W;iNy( z?=T&f!Uth3`~bGX6WZxFm;zlZIbL8qY=`Oa5X^^D->2VTCai~RU^}dX{jd{8+`&5c z0qur4Fdcee0j&CvcEiLD<~!_w-EhU9m~Sv*5A`l&J%?#<;h!lN4#Nt#sgwSKvp?cE zfgNxd&fLp!awp}(6u9bR+6yOjF;Cz#`(b|`Uxh&BQO)je#$t(T387`fQ@hncEV|&ksfBks3OJ# zCc+&s6CQ+xaMtIn4{$YXf;F%Uehr6U#22hDcXRy1BzOpB!I=kGU*IZO1#4jw?1No! z$(QsSTn%GZbKJlb7}Ll40Fz+}+zxBthJ*B*_tSiMFPcQ}UfH`nrlyYI6mvUjOW5nAEkshvvZLl8p!LMP&{q%Dh?S=I)6CQzu@T!Y><_&9M zBizJaGVOwU;1KMA(QBzU@2jT3*I^F)1eQQ~f3*hAhb^#$KaSZC{|O_0!Mc#ivtT$E zro%g6K71CI!w+CRoPXtrw;h%(8u1Q7_tiWHFQr~E89Em8ZY?|jOW_c#g%hq}oM0mC zg>#|f0s0@hVGm4$ld|bAcrPr6OL9iM&2Sa$hLvy_z6N6+WS+xhIRARu3u|C0+zD%8 z7i@)tuoq5TO1Tel9eD%e1dDSi7q-DX7=9z;1h0T~@Osz=zk&TQY#IGk#(56L!;4`$ zdl$6z^(xQY1%m%&cx%wwEj+RfDaVftq|^@jJ}LVv+>SPaYfTd_5;4z|E=VK3ae zf_krGA9OqY1#g6@a2w2pov;+Pt)$-YwmTRnSOWXu1{m>6)}un|4ToSRoO&no3r<=! z;;n)yun8vKMSsJ&a2VbJW6GJgFd4=b(cf@3EP+X@>2FvC+u$zP2e;otxxeE43*+JS z#qvkF*0HYpZU4RL&0j9%mU_LzkKE@5k-p@RTQ`S-s_!b<1>q~hDyn^~aKzcamA^Hz4 zfdz04EQgz69sC_^h3&8xehnRuG7lc6A7Cm>hl^l7EP>^)8rH+@upRcme)x-W>c4?s zI}8(H4a|hCun?C1it&S6VH13~jiKgRI} zm%?ti9uC7NHnJ{OQXiNC55XKb3`^kp$C z{cs2_tYv&RF%Mxftbo~YD=db4U^P4ho1q7G!-VG;UpN=WJjp%^RJ!8W+*P1ax7 z23^lGZ($t#bO-6-?B9|eX2CL84eQ{WunkUa=D2|O?xeo8v>PVELogFgeT(+OWLOF3 z!$#N*yI^Ds^AgU0(a&*SfJt!t+l(u`AC|y>!CDx%i+027VK3YSR zVJ>WgW$*~BgNs_JH|&6YZ~(fVr`&g0ui+7x31_@Vz2PEQ2`gbEd8$ITbi6D~c#yoXg^k`8Wz z_0aWq#syA1Nd4*=e;5nb^|Q{wMpyt3!V2j4C*{Fp*Z~*70r=p*I8I;UIEN|l0L+0N zSOSv4cj`vACSko65lf5rL+r^6!45d%IO+@2U}PiX z2@~KqFcU7D#Cu5aHCPG%9zE)9frGFI&OM&`{)YVojDxSiG`Jt;!Klf+LkMTUI(R#5 z6A%00r6-JfBet{t#Eg0q;SQJydto7LJaN=p19!m|_zCQR(Njjf9=Hs~zQMS{6c~BZ zs5b{*083ydtby;sR`?0*g#*yh#QOdd>J4X4rQWa_=D|@|24ha9-tb)525VtI{2PpT zlXc9^yHfBbm=0ILd{_f3VB9p`mx7nWZkP{;VRRhz-obeqra-qW7Jy=%V0I!37cW`O!^HjfWt5k#=OP(8z#d>m<O z;eOZ*uR5FbumKLk-7sbs;|7!Aq$JYAY*-8*gw^mjuo(`)ZkT)y>0uU(d585HCc_4p z4ZnuP@JF*r57)tF*bKYjemD%L&0}3@<+=u@!uwz@9D=3rP#WV7r_LYscEVMckPeo? zn0J{UmvWrIHJ3BqaQYRL2Pa&~@c}1aHR>INi7@It_Q_eJ-Xz$0HRZrvi#e{~&^4@I zaM86K&oE~R^YZtU1LI&<4)Y2wUdnL{_uas82qW@Xw_xLP>IIkGN_-pV0hkISR&e~o z8L$Mdx|?)xD{OqfVD7gJ?(>& z9-$v$dIjr5JIB+blmi<#@Gd#*hLv#oW2}pC>Eo0Gd#fnteahX$x&pVs9JqTk<-nEC z&>rZnrQcx%92O6wKj64{j`4z98%PK5ewBFvUxT&qOV|oWU@tu3HP+D&IliGA&V#A2 z0OrEs*I7^Cghu8SockO45pLX0xv&Msbgiu~uKNSyyodTjHyr)rs5b+qe8BMnTRx;+@bI5m z=isKjquwEy{uko^%s9dnco=5GqT1?5029Y?up| z!BY6te(DML!Vc*Ag!3?503$zQKEXtI1ZKjh9{L3?hLx}bHo-ZcQZ6il!*C~z*~>Zy zli{q-s5i`m#qbGO4JUq1z2WJw8*YWea4(Gcn0EHkZny~Mz(cSEuK0rUDcn84xWM`U z=6HgKhdJK6m|y=#z2Riuq0E6>c~7zo?mNosZGbb5_Il-ShNQwF*m8{5>;4Plaje&y z0sEtP=Mr{I@_K7wceK~r0f%5e96jFajoin6;RLTY8J5RT4%~Gj?^MFkDZFzDqhh_@ zUYHC$aKlvI&HO9*y1m{km@&=kErDyNd%f~^o~EDf^>)JEpAj!Uf%jLtnLjWICe5TA zn13eifh~!&2kwC#FzsxwcNn(K_Il&~#`>I0dtlZaueTWHrce$nfvxc2^S$0axE;Fo zlMcqgYcKG6Ghq=dgb%|?xCb`E1*!BOEWOa{b$r5g>O8ME0rp?y^=88p(1DlK<@Kh)jdyvy1+eWNueS;o ztf5|T>ixvS^)TWKJdA_?2h-rRwO(%?ybPAXB3K9OVH>P1B|ZELj6A?Rg9-4o2N-9V z2@7Butbm7LBTRpg_QCrfqJ3~$8T0*1;$SM=2y@|-b)*+$@iOh{~WeK58V8u*Bg6?_EmGdz^PBM4#3^81nz@1@E~k~M_>HznP+elOoQ8C9^3)T;BHt4_rW%J;}(uPxCy!j$ZxCHn+T74o^=7PhlQ{X zR>EDd5q85)cn}W4AsF><>QP6#;j|Z6AK;a+7(NQC;m5EUMr@3+BRThw;C#HH#c!#Zh4=MIIGV8Fo~Zd>_ky#h-rfoo2=e?BiLta1vj>?|X0K zcs@*wnm;jS!Li5O6H)58V9I$j&W`hCBk9xlFN%C4;Mo5pZ4Uo!`}}+FG4kbw6QkBS zFZ$8=`BaF1iZ9{6$MBP&-(PO|8oquAf2`^kSiXhtSK;TX{$9)X@O>qImg;Y}yoc|% z;%`#DbEz*NmhWQ2m>2k|s=wAspMvkhPf`8Vme0X|7Q&a{yYUm%^p{%cYw)}AzA+l> zzbh=?g5QbP^`B%Lwk9*fHxrI}dW2=+Bx61p<11r)WzYBCH_69!O{+Bq=?{g6*N6EE zauXBhWPPKYY(D$P>5_`@hg{AK36j1_C#IU1`D%>wLSG)@^YOdzj|TX1zc0rp^nUL> zPW8Urjk!{fpNiM@bvr%=pP{CAUgB><6m3kypN4mBe#dIZGGBB4xZ{T>L#w;_UiDd@}wo_*3}opA$J&J+txq@F%H$ zvE_^Ld+|S4eUas>@dJ3>vDb`0gxAf7ZhT*e@`v%Chww4uxc0|isMfE$o=AbFWX{=Yxdh#KS|u5th~y|E9$`a-pAFvjPdxTL`i?w6H`je z8EQRRPX$SFTl-rgZLHr z>s2rPbd`~Z#6%y(K7p9`gJa&Y%1I{X(!cB5nT=1zr?Kw%kB{&Re2c2IqZpra@O$s+ zY8iP}9jfum@e5V&G*1qECwa6GGwrbbnkT*ozYwn*3lBa8uRA}-a-u#BKV7ZEjaDC| z;LpJ8*18=0$#}bCNa|ODPsRUK&EGiv`r226Ps2}E{gqbvE%-Tj-5St?Pr}noYYgUD z={@*Zyd10kF}lI>u}5>f;Lle5O3SC<&&Eqz{OPZ;d=CCh{HdzXwR{O)>KCbc#j@$JFO{5V-nzr;%KG5uAlcP{h=NSk6OaNmUV+V$E?qtI$YE4~u1+vD}(x8hGy%Lt$B zKMoyC{w-g9@4ZsZ-`LhT+52;HRnSueZ{-;V0lPQ2iRq_u*&Yb;pT|2^fdBI~TjjGlM>yiwii|A zN;-M0Bu00>&c_$vb#t-&fB1US>)OzcFXLQm*T>R^DEgoTFLTP(@}|`W<#>(!5yuO4 zwA-`D8j(dFS>#dXl73L~kp1#KE?(;V#{A~O$)cl>sB$T#PGCrH|wS0E%Y_jSg$I>Qiu2z!I#3B7Ts}b)Z zpMW)qJZ?4H*@-_kMEXJeDCu?cD2j{CVLV}09hGacMEpT~KtEExTy{!7W#T7L{*Tr4 z#**s0rmkijr2NP6u8udXGJ^Jd)#S5+e023}#^>Q@sO2cv3ElXW_@AnCB7CZU-5bW= z`ColIW1<|68$$SG{N)<&rcT-T^YAOx`WbEXU2#cF9i99zG3W5v_4#(IFU<8lp6}a< z*+k4yatyqq#9X!^{83lMxQE6&zm?e|ecwTutB!o{J(17;Ii6+AEt!J@_yYVo)nEE( zc!lesan52RPV$LnA^w0k-M%LY-xAAbl0Xrfz_kfb-s1UnzTtRN@l8{oZ?SP+oGIMfx%qpN7}9r4&CG zZ&z1IUu)+7Gd2I^)>yUT&()-t`NN;ja!kidJ6umTTJs{PEpB`gvCD{+_1|@e602Od zCURgeA;zvfl1C;!3x6k{{d3Tm_r9Z3+Ehf$R$@+5W0d<4Rrr@el+lE*!!K6T%lIkx zOS*~KN6cAjjCmhG>M)G&$J?Fj#K&;csSmH)dne=f*ig|@tm9Sy80#KC4b$#%*IRq z>GnItrnl>Vx3nMMOZr>Y_8araxAT)eY9Z#-VSO8V@IS`u_KhC=@gaOHgMWg?OC3}2 zC*rUDVI6&UaixyA#4IF6H&06O=^=bAexAll9a`}z`1^lYhdX7JkUI1c^8_)vy{U^$ z&*LF{9R4v)9VGuW{3CeXT*|}W8^V|2ZwcY+B)!vPyQh%y+wcW=mM`mAQPzS!{PiKy zyJA?k@TaKhm3w({_$%?c>-02y7QR(Y?|jR*NK5_l@I&~U0=#hnCB6)QZn!7#o{Tfw zpS})X6vDURe}mUu=l9{OLwFY(hF{<>38tvBdmUjWKQvNsNb>kBIrX#Qau?G4C%+jGMkVNKApmJgLMujhl%wFJoDp zXO8!Hm+{$uE_WIi-r`g6h4>WJ-($5m2Va42P`&d-|9F?+V~)~~R}DTMuRF)I;LpZO zUHtV^u4jAjiTEVdEBB8)_%yuk92ZN*3pM4t$up1fycRF_QeD@)Xw|`Yo}z7hpGzJa ziDA28c|M9O!Tn0(s&Sjk|0DI(W5FIaVu`ws)w zeT6RaS$(wrI32?0<8|l5XvA_nm+V#<%6-Ws{386(sy7}1`1&CWpMtkL&ZVD<@CkU` zI#Pw7il>@Z`NrwMmwyxfB)o2K*o7ajN$)1hA-oHJ0{!S8N9n@}Rv*T&aT_Mau8xvN zGX9_VoB8a|L(T`+S@R)>m>Cm1w%6z~o^>=Z317@-*Q~n0e9ZgIZiyqGGUEF9>@UmM z3wBFs5;I6%X~%ec_d#7>KX1h;&$|c6XAv>is`)sL3uGCWNHUV&3n%NZzZ`Sz6`z1V zfaj9S^1hv(Isfrpc!~9=SJtBfd?((nPbEzS{yqGKeDyF(-d=_3;zf8RRZa>``TZqWS>*`;LpBp0oMtpLJ^qu(WA<7@b$K$o*&n8#W+ttra z|0Lq0@y9s%$Jl*vnS)_Y{~XLB#&ev0fA~WGy}d5{Yd^MMcclCwd^28me=C~BX%}8seiD92(ub?%pW-_R6Zoox zKHm1P@4ZXMv#zap*6M@IUx#mSJvy#p{6j~DUpn63o-*?LV6y$3iYLDg@@wM$b|!u9 zdQ{0T!?<@Beu2^VWaAhnwwwE_chfhn$COxE-}9~YeVE`v%FH8;HAcq6Kk1_wZge-{ z%L2Ud99euaKIR1dah{EzfY;rhEyhRVU!+a`^24|K8Y1~u$dl{eo`OEp~LSMK0&Z8b;ZYJiIfO)jcKaXOWAPsK%D8S#~_bK?nQ#{_= z1H946(uN%T`9IbB68!o&`}JPZ*Wh2l&r;i&kn|^3@`VBTz{{z z%5fSu%%rc{$>V)uviR&DZ>RCHnD~DDC_dnRoboI?f&*>Rbo*ma(#PW?@h7YKEBArZ z@yFm7s@{BGLDJ{re~y1A!0+_00p<8^d~<+*!{_C=?qsYAPvdv1@Y(gv(^ea0PJdwa zbtn16#`8OF0_NmN{y94+{`84VM0Y^0A|J2qSO41d($PcbZ9 z5kK>IpI7s7Zt;&-GQI-;c7Sj8`)vG-1b*jCfHx{3{alP+j@KRA)%fBNz8NpSyH%II z8()LB+sC;ne;EHL{#Lbq(of1*#d6`jmzZ`n#`$|+8|gwv9(}#$4F2vZpIxh-vifoC z*}~_>ymaI9$?LqC{BAKm`{#wRhxgs7lRl{+<_==G-DJfm?+G;Em*dY1nA@}cW7dIx z;7pJ99m@gyVf+~Z>Er$BBRP40pXl+vu9ok7**~TU`1NOTpD-YOtUrAQ{*hVwHKYLl zFkW}Qsla!ft-n9kfImNp-?tS|{(1iLJMh<^!|y{1sQ>H!`VZj0!e1DWKEgah`%#95979&Z{Lta%vxghsWHxv{QZ=L zPnx4&JBskl_}+l@pZL>P;fv4X_n!s$=l#A3??|!l2Wev$evtHb{Um+}->dO%eDs-& zGyZ)(2OX<#OC=;GnV8koVfPPXd?z(2Cx@7r^Y!&8!AFGfHTdBW?QFsKhwwf4?hxLC zZ^u6pu*Y2I-($+}g+Kd(p!-$KC%L68?MuO@a{eo$pD)3`$aR8iMU~Z;vKQZM zU9*>w&+d7gvq|IcZ}UEid{<}sJ*qd>&i79a-LiBij}`|f4%}=gP*E; z<=#XCeltEv^~(L+4*Y9)UHt~|_4tWudga}gNKU4kLZnZ?SK^OT(<{%JGVl-J1NPhW zv1~Klq$$8Zg?~&Nh+m1<^>HRXA8*&kZptjgFUE)JgDPU$Le!xN-;LMxK^J}>etAF}Z}fGt^uZ85 z_F{b-qM2Zm@obT-K2+WAU-mZ_OeO>td`1t|pFZ8D$!aFX}&*Nxr(0@((NosoKKBxR$hCciP)jKct=bwe2 zNd6pdR{s_Fv~L|L!n^Uh{HySj@QQh30^mb)%X<}FMZIA z&&C(1^)t>1z8#m;LH=GvttJog@^>sY;B|czdoJe#Jh#iNaWo!V`}#NqUlYRT;H7+B zAD7@a<8KP+!=?WHXbt|e1^R3D7W`LuUH(1zf8p)=*e&hH@5i63md`v2Kf_lAUmM*l z=7%rSUz4Qb58_Wz`$&0rAQ#_{rzoorS6TC@R8AHd9`7pEJB^z>GDfxdMff`dym2sz zZ^hT)GXwl(z5>Me;=Ay=`pMrC*@xHd+2wDHe1e~==1(8Vqh!fn{`Sas_?uPlG&cR> zbMY5ku75^cioXtD9FX3)NhRrP@o(UP)qher{}kVf=m_C^@qgENH|gW)pHV!^fy4FL zdaDfOxupD^lw%j_*DLw^Df0InrmFKO{6zme&ci#d;P(v!|2f&X#pY{689okgH&3OF zb@)jke4ClS?l|tlPar*yPp$IJclz9X zg})9rS#v2eg*t}t3HU?!X=-}q=MXaR@^>@RRqwpWSAevy055+}LpRP9cqd->Y^(wA z#`CDts=xAFxC1{Gf1K)-{pkQc3a^_dkrX@yud81IJ_3KCn!oaVG6O#YAFvk4d0BZT zEPvCdfEeB0NB-7NNeJJFufT6q>)?FU-^ZQ!QM|4VgZP0EK8l5IKVA+g{~Wp7nj?w$ zA^cBViVu(R{qTca^A*#_UteR)bJxaoRvyY+cS{`k#AJH{e_lZPN-3*`n7fEsK)k;$ z<~~dEXu)s6|6BEv$Cp-pdx^=vR{u_hgAL9d_$g{0%JWt?eg!^P_2z)a@?9$aWjtF6 ztB&UVSn;`d`5P?(>o;|j%Qo?)`2BdhW5$iI#XFaHyqELY-v`o05TKU8gvvg_D{XFTrr>vNCVm>40rQm#?wPFg0 z$-5zReJUj%VxA4o=LsvHCSsQ4dc02r$2?-h$b6H(`PD(pGBw7$&Uf>j{4KDFH+sBV zRWEI-w#tdUh_&{A#H124VVS-t|CccSp}y1bp|bxW#&L`Ny*|k!-SqN%76S4ZZ{#5{1;h-H zN5DN(>GKwA+$xFLkRSA1MtRQJi0{VFAU}UO%DstB`~m#us(0@96(D0Vh=1-@{rNG9 z&6E7?C~lKm`I|pyFXZXH|wW4@#4=BrHnN_>XuWsH5hT;rOh zh?q^pFfFY-y6=E`~?>CZgm&gdey~ zzmJW+guOn#H6Z`D{BtM?zo9^1|1A9W5WWb%4?k1QUwIBxh3~^NRjvM^59RiYo3EPi z5w{1O%Z&Y%ZzQCR-NY;*<|ID*j}zsZXBfZuf8-I%rlg)2yK}0Pk%Di+yVWw3y>5=_ z*Qnmy;KlJ>9pf-@rN{dTkP9 z$M}!QcJfMkJm}e{^LPHS?Z@xM2i#`~Dl3Wpm|n%-`;oGa4=U@ZNPk&Lm$63I@^^-) zpT9oN5B+6j;orlDDyvrd{yC3#|1p%c`(7&_nUjCA+Eq(l?G4O@fU^GOFRK+_{i?_N zh3chUfAxj<*3&*>7Qd#SD=rr6T>K3#r9D!QMZU{AUmo$q)NI%1k&fSnKRY;&=~f;E z#O&B%e_!8C(G~dg--hnDZpN{OnEXik?G<`hoe$R;Vr3goRIBgYTzJhR=5*ryWhvJssrU^1WYrr#isEqdU9OpaNcB?2A*+lsVkZ58 z_d3*=)t0Zr&&1!MdZ%&HmE)`pe?MM#kF^h9g=e|7+F-s2DCu1bIp5+r)D(Y_uL9!Z z@CWe8s#kulCk_7{{(99bKfjfSPu^|+JVWv?!#ChhRnsebsye*CGc?IkLAA{aml6;hRa1x2hB!=v)vXuASGVyEiy1ppH zzlCQ=l=SJozIO9fCB7ejgma?W7WL;lnuyu?zJ5Hq@O$wS$-go)$-AKV(^S9AItJtMhw-|$ zq~pE#L^b_wR{DJWvHUH)8LC&VTgvfM@b{_SX)FRVX7%{h`193y;r|^7#uFQf8)ob) z_IkWe%h>L{%jz>(&o}sPCHvO%Ve)hQCFuT}`TII#>|++OcHwW}vwsemzaT)$NygXW z52$|Zy|*r_-MPdq*=K)WT*@iMXW;GDPw}<*dHCsSIm)#_D?S}>H`gV7FMc-O?!J~= z^1R9@{}%Z?b}o@)Ub(LwM@(giJks#n@VY$Y_^716|4Gaj?3G*#S6OArxO@^eGt+s+ zOh@?3{%e$K^4z>%|J<=%b@091zxx_?&qOWHueiD9)T8?u6wH6V93>ok5KPU?_`&&G3`)f!jjS$Q7*o)GEF@XzDz=CGSA>+p}^ zH>vp>dztleq)8pxi3#U#TH56yUjDZ9SL88G%|n^v5sUd<$RT_@{=fLSYI=?nS*|7j zbo`Gs<-76u_%QrELFvs$y}tQWK};4gq0Z5b#H=T#HaMS6#+u{i`z~U}f9~#!Q`P(F@pJLIy;&|k9Y3U|mo}LDUpL>E5fjtTdxF6+&scp` zPt4QAM5!^CS-u@#fuE#$<(-{={963usyE-Mk@Hz1{q!~dBR;!!7XC+-&Rv*&mQH3wXhsvXwn9P6K&p#=n8$TC+7N7ld%Y4=$ei(m+ zCcPUU!$BzNU*NMpy|L!_?)pm}Da5oAW7p?yd=7p)epH>CavTmB$DzcO5>xSS{k%wJf+#oJX<083e%eHZ`)H5EJgS$lS1E+CQTYNhHA-t}S^6^jMzfq5c@WZ|X!A<&d ze8E>7D{B6-P7YaXTmv!lzYcm<=dAGsNF6%xf5iVepo|av=Yj$J>LKods%1F$_|m)i zE|Q6P`hPv%Pu29YSL!s5R~fHFVh$X!AIl8fL5<7D9n!cm++iChZK}n6g|j;*#JA#m z@pfy2tm_f9S<02?Qm&EZ*0C+?kojy%@`>O=XYaQ``#}D97Qq!CFr=|RId_R7Q>Xm(PeTe*}orAPf@_$~g`{IMz`IL3tH%LCWe5dcv zs9cBR>JUB=pN9XbT2J$xNH^bQ;?wc1eD?Q~%;OzaUlkG4N6aZ|jQP%>oA0Xd2l4Xz z*wsA3oz}hUW@7e?=-bhaZ^2I`3x6KQQfplQ;&o+q`hfL@e!QOu@y+NGGdoe54`T!OTn)T;dAgs_>F2Em3Ng&@CWffS3PYUdpD*A?+EAb zWUAhL@x{$|E%*G4z~MEnU7J648y zKhVursrV>O{*pw>$RlRyQ6quB181RiJe1+D)Oa`P>+os#oB8aogB(-Jv$l3(9wtV& z{`BL2jXzna;IL0^Jv2IGSLLhmQDE8_>0u^ z^pTvdrF~uar|{>g-nf%Sp<6MnktZ?xuWG&k~g;?Gt6D$6I~_u_SPH4EQ{zf?`{ zO!H+R^((?3#@o#S@m2T(cwPOP@cnqZ{kog#{d2dm^tH#d=QGPQ%7Oz`xy75v!UHymg zQ}Mbv7IQ1>I$n2-B;%$03)T9Y?*jYUkDrUz&7oraV*I6QdS#AO<4f_n`ZwcO;dS-z z#^;6b!+0rQcTE_xg6k3d#R2s*9*j!+lJSq>1J)_!o@h4y?GX7Fl-kbg@ZTJW1gr0>C3 z;B|AvgI|l+^+9X_?`UYeoAUGM!!`ILe0Ken8%ksQBj;ECamXc)jAQlls1$!EzJffg z^u`Z_N*inOpW$`$q!r(Z|B0Gj`I&%T{GJfral6CuAzrr@yYa1f-MKE+^fT4+mFJ4N zcq!lRx=;2M^^Cz0u5}ji+4W?$)dw*4N>*7;qeFc2AD@rc&F@zHa=h*s?#1V6(z~V1 zLjHClo-L78zRW%IdR*!dN6hoYWU4Vv9G0MZYa>35OWiDjmx8Zg3y%1lk zDc?={O8f@=V|?}>pE4hfQ-ZIICSp7x>d=LcI!Qm?L->h!yJJr35PcWtZ#-QUSchAT zc1lb#G24i_CpgCV(N%}UmU#xpP9#!kvgBxVaSNqqLtPj&v|x8vhgf0K256ykT{&sTl1s_%l_nT(>pi z|AC*VdgXa=Cw?D3MfK)dDt!?{Uww_Q=CkYhOsfrYjBT*$5wn_~2RnJh_8zU|lS@8% z_)CrNo=avq97ydY6{biWXXr%4YjLmNR z6Vmp=g-VS1dqm5O_PB|SVX;Y^GZOf-rN;B%Ua7IzGe?^4O@yUTxAx67?@=^-}${1NX2iTy%}9ee-IWAteZb?l|w@pDH4-)rQ1 zsec^(H3@fxjPFh*pRu_x*O-fLVl#=IojT%s&gObiiB-;J8Ed%rNz82G{r#^zCoaG* z!t2Jb0-u3TR?{nc{|0;>UN^o&)NwKXTxriyN*%}AGu>*Bn|@g~&uq_O&VFOp0!n*g z?_=H)qiatJel1?to*aBJUe}%yd?ntlJu=^G@DJj3`_>kGDPFg)?!m9qq?c=*IQp{; zzfJn<@MTsXsMk7=8GR;eOcwFqrLi8#y!%v%mo?@tYp!RNFwXP!Ykm>F7;o2ZDW`>U zR^Vs3D5pHAoKs!C$u0A@kGP@*Bfj6E>$+Qs8yoLU)>;}xUkql9c(+SiZ?cJf&WM$M zkG`M#%U9Uf&yCL^uYCOJe0H6s-}j8yjYkIK z)rkMEjQiCKta=*f`hzm^(r+2$bAOipo?-!hBR(sj9>&8DNne5AjhBA)_l0siHsJq^ z*R`VqKcq=7^IgVu6u(&7@taGnGR*nnteY8i%}j@LJ?(K5ANvcAk;Nl{@9In6U*sDe z-?d08F_#nb4)OjvJ9qj5q)oZ_0le-QEyaI@pR1-<-aDwpM_r>&--GWv|-nR#-Ot;!Nc8r;O5a0NdSLG7>@o|$^0e%O5DWCm)CH}i8+Tc^2b~z=jU+W*;HbhhzZNl$4FheiJ5f0eq4s}+wngk)?bct-!SF@ z_9A$@eYVV{T>5nj{#7}?pS{G&LtQ(ojpN)+d_MV|l*@I&58D+pcKlQjbMlS$dv0k{ z1Ky3-osT;3v++}i^|wiRhhzYsh@Yo=^M10M?;;;$-NuJnYZ8fhni$<$lZiisXT`JX zVD8~$K2?{p|6OLDqkqX&<=A<5Y(AOiXlZW^d7YAH|IFEqZ^1|6*?C#{$b3q(=2I^* zvx(8oIVs2W5VygInWW~UygM3)Uxt@)_t)3F7a-}=@GJ4UammA%;dSFuhF^=nNX_5; zd1yD^)#0DRhZ>i5Vh#~wH!gBMilQHWe)EX;$}rkHhZS_J-{pLiW}UmE%4q9y`}@_> z)y0@DranO`ku9RmXKHEE%wKlZ~XD!k(cfmZNYzw|2bv( z+oRk&>A^>lf57}uepbtapNn6nrdRHD#XijPi0A0G@@IaHy@Qj2ug9OQdgZ=n4*o5? z-Fekbni6~i{!TT$%wJ`0)e`f6#OUTuEB>1hW%T0v@coRtzmH_hKe5K#wT^b&s_%z5 z{Gkv&4WFD5fed7xg3LE zTxi9Nt$p`cV^U3dc?J6OdNclZyj`D4eY)}a_=ezdf7U9)L(Jgq`aELG8F&20q7W^d^29x59RoeLil?8p%A_uA6}@>zaJlq&kpG4tNh1k z#Copp@Vd1&9=`}bKOp^u{`BeiV!Yj2C*zopUxC-1Bg^rnc)R&5>Fe=p@F{Bf=6y{! z-?ig6;X|Dx2Z;Hc7`t<%mx&-;F;@EniuGoAKTFQ&exh zvk@oX(Z2n7-}AYKbFDrIdOqja$U6Igew^HR*Ms_TO2z*eZ`Tf~M>+KqJ_nQfWfNQS)QI;1Y0DEfv4zIUg$i#06;S2FEhVYg6Mm)8&`pbO3MCM92ZE3?lBJ*$i*;b6vrzJA`B+fyf z#J^##r>`n;LF;KeaY;?)dRiS6r>v*()m+QJIb!?s_tM9OuD@~9KXw4Ph*r= zoAuQF6!&ae_3LRW-ig<(r*aJC5%UjX0_HE@OJCGemxDOpTKnuQYdpv5t*o^T|G`{q&r)K?jv-~O&DzYI+HJqq zR+CREZlTN*&sjfg@A=j|X(M)7yZNl(pEj}PvjXYIL1I^aV6MxZHnGaO97{j8eQ2)B zzg1$Dby?Q8*r)mLPxki=CBGV`bfL zCU(ciBi`Rg|17nMtu^{5hJ0J7U&=oFb-No^fwNn;hj1_Bc!Xv3zxlhLq+KbD--N&N zKHf3ZVJOjxG1i#N<=rl~#MQ7bIS~5(U@kHLCg$hF`_C=PJ^E7o_%HSAZ7u#J{1i34 z@=U80e|!kvi$6AmcRa)IbihZc`5Uh``=0N*@!wH@yY*iBDxbb|k>0l+f63L%*g08Q zk7Ff{eDeG3pD{^3jpVZg?|V;emy%D=dM)F+{O{&^{ZdezvR-#n-o}IabE2Dmslog9 zzjrJ7jLk`P|4Zz_esjHEY7?uh*Tuxn88FxDYn9lb^;*Vt*T2p6I!%ciD_>c!JBVHV zA9KAa?|$Xt(~w8>9dkDG`s{qKnP0x5f~P3%mgY^i52u~kR7zLD7FO6*vl zgd4HaCwx)|Hr!uvNlb%i9N$un`Azh65H~< zxyFuHVwE*k;_8Wu9x?a6U!7s~x5O!XUm4e_VWY;oKA$OZWA#+lP!F-2!$*yGedLc~ zjvbR@vC7`p@f>^H@uRkT-&kBB&Tb7&#%;i9umAB)c-^{JjQrO9YI)LvZxyz}vQJ#zK_nmrt>sK%N)E{M^Ppp)^)#3O}2=B)4#M|vhC4DM>4?aQi z8tZ5C`K8R$@>=dg;C=7pEhTC!W^62!=lvDr_4lLoeb#^<#dB7)@=@-Ibl{^V*pG>u zBm?-__|u5@|C?!J+X1;j~egTU!lZ~oyX00?BzV(@FMNGAn2IjdpG~Jn=aJeCYpXb zM0(%e=E!N**pAgp+1td_Gp8;b4gLN*`Nhp+tqh}HJ8kk)_BNHo&b(;U*xNj36RYfP zT8N#OHfro`ex<~Y^@*~#X{Da=7mwP$-|l*m>rmWcnFm=)K4a~@*qR54#4f#L)Y#ix zXcMdKZE}b$yp%a3?LJ+J4cgn35!b$8)Oe3MIw(%r+sL@?U1;uY!j!nNdMbOHZekZ+ zIqLnLwCO+7e>jHq*7ae}OWgOm%6@M%j7!M+;oe4$*A)760q#|4-wR3^#&PYti!E_^ z#C2Y69@n)>T+ne{L0r#b^SFK_C{8)9D_-VaOE%+9-u`tb!`REj^Hmr5e0R;Lam{j# zlFwK_Dc39x+LyM(Jg!r1VwK}Mf!ONn&Ext!B{t}|&LS@M2J^U{uEdR%uN>E<#CGMH z$Mr-dc5DtS$935&>=l>UAJ?^}(;e4xerO}+shjNgVB-7m+wi)6O`zYa@xFUdcb}^C zec;c+>!@+Zs(GM$AECe9t;QRbs~SQ|_tBxTf4; zu8D0*Y|xrmOxhB3I6sN3-t;B69GS|c!C2p*2WlbC)cFH~G_1=1$SmkrSHI8Hbq^yb2v^}EKToXUBiB;CbRAO@;GS|d?N^H=Y zm`_}9nYkvutHh0!udInx#8$5}*Tk2USerGmx{>3y+N#hF{hA|f9wM&{yzv}U$!o05%Do&neOOp&9@|gY#45*j2C=&zGmq^OB{t~T zE+TH~_eZ)l6k9rrfe)#***o)4U)kFF^qM76FC4D{O@!9xei1p{8{C?1M{6%=X z`=V}=IgTdMZEbQbEl65P3A<%l=0moy2?;B9B4*hyNpw=-=_~%gg#PPr}c_ z^Az0b3+3J5EPNVXH>O4S6(M{Tz7l_yn!j?7x(UA(f1K*g>tq?rE_@Z7I8>{Ih`e&owU`q_hD{pzUq`2fGg?_*myH{yE( z{3m{&g5UWX_lg7j^M0R$pZB_bJEi;*{HzeZ20u;X-K1~9Pr|>imT&yNp0}kE64Oge zGcmh=7~}gP?O48dz0JMOMtwcw@C!otH2jg2)gc4p1UOCe}}(U?N8;oO(uTQ zZ|%nEKgyH%SNaJ@^m#>_3mmvGuO63w(1X`W?f8%xMh-&yzMc8&)AEp_Ag@I9oG7)L945p$n>9^0oGF~0k4ZoZCdJfh?qa|*&ieQ`g^O*1;pgE*pH3$Nd(s$thh1cy-2Jqv_{}f{V`J3;|OZv!n*$3fIR=xRisIsrkqCds23gbBXNwk%R z^!v@$byybpEP8u1@NdbO8!{=U2;Yg1Qp+*lIg)Z(D5n+wG@o7VKeoz|{(Q{p&ld7Y z+BK^EJ<&b*Ie5EcLF(bb$K$7{^)TP9a`Rp6d#u0st5q*`FzYILq!M$LrVL5u^@jcI z)N$M|9rr}Iqi|eVxMN+|xIIqC_AvQ87&dOu$=?td_qo&YayVgx%YPA9oLcNCG5$Sa z?b&aHIoiW4D-nss{QIe}aSuf}{_Eu9rtopK5svb4e0*u#xVIx5edGD~;8ElDM>w92 z$noVo<+5w}rNm+5jyN5AB+aMJagT>PHiS>}S$Fcd!7#_daXn#<2c)nU!p1%7bi5Td z?*GCZe+j$LU$+UDoy~)vC(Qb&HT}^vlHEG4(DAS-e^~YCL_&(j{VmM#eAu}5Fvn0( zv&K3=WyJJxmpJBeP|)mS9uJ@K=WxeA%)W}aa$L6KcCs}4?T$=7KN@!JuOl6=ILG~d zf}_nj?)3?dj_`4O^Y`#^`zJUabxq~-|FicdU^

-2eTI8H5=7SkhRNEHi_#WZ(D3 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 q0xD|z^}D#fwe3<<{(kV5jMz`3yZT #include +#include -int main(int argc, char** argv) { - TCPService service(1025); +std::expected Run() { + ServConfig config; + + auto readRes = config.Read("helmetsrv.conf"); + if (!readRes) { + return std::unexpected("Read config error: " + readRes.error()); + } + auto validateRes = config.Validate(); + if (!validateRes) { + return std::unexpected("Validate config error: " + validateRes.error()); + } + auto listport = config.Listenport(); + auto localnets = config.Localnets(); + auto tunnelnet = config.Tunnelnet(); + TunService service(listport, tunnelnet, localnets); auto bindRes = service.Bind(); if (!bindRes) { - uxlogger.Log("Bind error: " + bindRes.error()); - return 1; + return std::unexpected("Bind error: " + bindRes.error()); } + uxlogger.Info(std::format("Listening on port {}", listport)); auto listenRes = service.Listen(); if (!listenRes) { - uxlogger.Log("Listen error: " + listenRes.error()); + return std::unexpected("Listen error: " + listenRes.error()); + } + return {}; +} + +int main(int argc, char** argv) { + auto runRes = Run(); + if (!runRes) { + uxlogger.Log(runRes.error()); return 1; } return 0; diff --git a/interface.cpp b/interface.cpp index 79a9f59..a461224 100644 --- a/interface.cpp +++ b/interface.cpp @@ -155,14 +155,12 @@ std::expected Interface::SetIP4Address(std::string ipaddr) { std::string error = std::strerror(errnocopy); return std::unexpected("Set address error: " + error); } - int sockfd = 0; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { int errnocopy = errno; std::string error = std::strerror(errnocopy); return std::unexpected("Set address error: " + error); } - if (ioctl(sockfd, SIOCSIFADDR, &ifr) < 0) { close(sockfd); int errnocopy = errno; @@ -177,8 +175,7 @@ std::expected Interface::SetIP4Netmask(int prefix) { if (prefix < 0 || prefix > 32) { return std::unexpected("Invalid prefix"); } - //uint32_t mask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); - uint32_t mask = (prefix == 0) ? 0 : htonl(~((1U << (32 - prefix)) - 1)); + uint32_t mask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); struct in_addr maskaddr; maskaddr.s_addr = htonl(mask); diff --git a/msgheader.cpp b/msgheader.cpp index c482f56..b551d32 100644 --- a/msgheader.cpp +++ b/msgheader.cpp @@ -44,6 +44,6 @@ std::expected MessageHeader::Decode(const std::string rawHead return {}; } -uint32_t MessageHeader::PacketSize() { +uint32_t MessageHeader::PayloadSize() { return pSize; } diff --git a/msgheader.hpp b/msgheader.hpp index a98a7c5..3b23610 100644 --- a/msgheader.hpp +++ b/msgheader.hpp @@ -12,6 +12,6 @@ public: MessageHeader(void); std::string Encode(void); std::expected Decode(const std::string buffer); - uint32_t PacketSize(void); + uint32_t PayloadSize(void); }; diff --git a/networkaux.cpp b/networkaux.cpp new file mode 100644 index 0000000..28d04b7 --- /dev/null +++ b/networkaux.cpp @@ -0,0 +1,81 @@ + +extern "C" { +#include +#include +} + +#include +#include +#include + +#include +#include + +std::expected netprefix(const std::string network) { + auto hostprefix = split(network, "/"); + if (hostprefix.size() < 2) { + return std::unexpected("Incorrect network definition"); + } + auto prefixRes = strtoint(hostprefix[1]); + if (!prefixRes) { + return std::unexpected("Incorrect tunnel network prefix:" + prefixRes.error()); + } + return prefixRes.value(); +} + +std::expected network(const std::string network) { + auto hostprefix = split(network, "/"); + if (hostprefix.size() < 2) { + return std::unexpected("Incorrect network definition"); + } + return hostprefix[0]; +} + + +std::expected nethost6(std::string network, int prefix, uint32_t num) { + struct in6_addr addr; + unsigned char mask[16] = {0}; + if (inet_pton(AF_INET6, network.data(), &addr) != 1) { + return std::unexpected(std::format("Invalid network address {}", network)); + } + for (int i = 0; i < prefix; i++) { + mask[i / 8] |= (1 << (7 - (i % 8))); + } + for (int i = 0; i < 16; i++) { + addr.s6_addr[i] &= mask[i]; + } + + uint64_t *host_part = (uint64_t *)&addr.s6_addr[8]; + uint64_t hostnum = be64toh(*host_part); + hostnum += num; + *host_part = htobe64(hostnum); + + char buffer[INET6_ADDRSTRLEN] = {'\0'}; + inet_ntop(AF_INET6, &addr, buffer, INET6_ADDRSTRLEN); + + return std::string(buffer); +} + + +std::expected nethost4(std::string network, int prefix, uint32_t num) { + struct in_addr inaddr; + if (inet_pton(AF_INET, network.data(), &inaddr) != 1) { + return std::unexpected(std::format("Invalid network address {}", network)); + } + uint32_t ip = ntohl(inaddr.s_addr); + uint32_t mask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); + uint32_t fip = (ip & mask) + num; + struct in_addr ip_addr; + ip_addr.s_addr = htonl(fip); + return std::string(inet_ntoa(ip_addr)); +} + +std::expected nethost(std::string network, int prefix, uint32_t num) { + struct sockaddr_in sa; + if (inet_pton(AF_INET, network.data(), &(sa.sin_addr)) == 1) { + return nethost4(network, prefix, num); + } else if (inet_pton(AF_INET6, network.data(), &(sa.sin_addr)) == 1) { + return nethost6(network, prefix, num); + } + return std::unexpected(std::format("Unknown network address {}", network)); +} diff --git a/networkaux.hpp b/networkaux.hpp new file mode 100644 index 0000000..4de6f15 --- /dev/null +++ b/networkaux.hpp @@ -0,0 +1,11 @@ + +#ifndef NETWORKAUX_HPP + +#include +#include + +std::expected nethost(std::string network, int prefix, uint32_t num); +std::expected netprefix(const std::string network); +std::expected network(const std::string network); + +#endif diff --git a/sockhand.cpp b/sockhand.cpp index 4cf79c3..ce92e3f 100644 --- a/sockhand.cpp +++ b/sockhand.cpp @@ -19,29 +19,68 @@ extern "C" { #include +const std::string internetPkgMsg = "internetPkg"; +const std::string tunAddressMsg = "tunAddress"; +const std::string Msg = "localRoute"; + + using namespace std::chrono_literals; -void SocketHandler::Handle(int newsock) { +void SocketHandler::Handle(int newsock, std::string laddr, std::string raddr, int prefix) { sock = newsock; - - auto createRes = interface.Create(std::format("uxsrv{}", sock)); + auto interfaceName = std::format("uxsrv{}", sock); + auto createRes = interface.Create(interfaceName); if (!createRes) { - uxlogger.Log(createRes.error()); + uxlogger.Error(createRes.error()); + return; + } + uxlogger.Debug(std::format("Set local ip address {}/{} for {}", laddr, prefix, interfaceName)); + auto setAddrRes = interface.SetIP4Address(laddr); + if (!setAddrRes) { + uxlogger.Error(setAddrRes.error()); + return; + } + auto setPrefixRes = interface.SetIP4Netmask(prefix); + if (!setPrefixRes) { + uxlogger.Error(setPrefixRes.error()); return; } auto upRes = interface.Up(); if (!createRes) { - uxlogger.Log(createRes.error()); + uxlogger.Error(createRes.error()); return; } - std::thread sendThr(&SocketHandler::SendMessages, this); - sendThr.detach(); - std::thread recvThr(&SocketHandler::RecvMessages, this); recvThr.detach(); +#if 1 + uxcontrol::AddressMessage addrMsg; + auto meta = addrMsg.mutable_meta(); + meta->set_kind(tunAddressMsg); + addrMsg.set_address(raddr); + addrMsg.set_prefix(prefix); + std::string rawMessage; + addrMsg.SerializeToString(&rawMessage); + + MessageHeader header(rawMessage.size()); + auto rawHeader = header.Encode(); + std::string rawPacket; + rawPacket.append(rawHeader); + rawPacket.append(rawMessage); + + int wsize; + if ((wsize = write(sock, rawPacket.data(), rawPacket.size())) < 0) { + int errnoCopy = errno; + std::string error = std::strerror(errnoCopy); + uxlogger.Log(std::format("Write message error: {}", error)); + return; + } +#endif + std::thread sendThr(&SocketHandler::SendMessages, this); + sendThr.detach(); + done.acquire(); uxlogger.Log("Handler done"); } @@ -60,7 +99,7 @@ void SocketHandler::SendMessages(void) { break; } } - std::this_thread::sleep_for(std::chrono::seconds(1)); + std::this_thread::sleep_for(std::chrono::seconds(30)); } done.release(); uxlogger.Log("Send messages done"); @@ -86,7 +125,7 @@ void SocketHandler::RecvMessages(void) { uxlogger.Log(std::format("Decode header error: {}", decodeRes.error())); break; } - auto pSize = header.PacketSize(); + auto pSize = header.PayloadSize(); if (pSize > 0) { std::string rawMessage(pSize, 0); if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) { diff --git a/sockhand.hpp b/sockhand.hpp index 63557c5..5f66bab 100644 --- a/sockhand.hpp +++ b/sockhand.hpp @@ -9,6 +9,11 @@ #include +extern const std::string internetPkgMsg; +extern const std::string tunAddressMsg; +extern const std::string localRouteMsg; + + class SocketHandler { private: int sock; @@ -16,7 +21,7 @@ private: std::binary_semaphore done{0}; Interface interface; public: - void Handle(int newsock); + void Handle(int newsock, std::string laddr, std::string raddr, int prefix); void RecvMessages(void); void SendMessages(void); }; diff --git a/srvconfig.cpp b/srvconfig.cpp new file mode 100644 index 0000000..ed809a8 --- /dev/null +++ b/srvconfig.cpp @@ -0,0 +1,97 @@ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +int ServConfig::Listenport(void) { + return listenport; +} + +std::vector ServConfig::Localnets(void) { + return localnets; +} + +std::string ServConfig::Tunnelnet(void) { + return tunnelnet; +} + +std::expected ServConfig::Read(std::string filename) { + std::ifstream file; + file.open(filename); + if (file.fail()) { + auto state = file.rdstate(); + if (state & std::ios_base::badbit) { + return std::unexpected("Read/writing error on i/o operation"); + } else if (state & std::ios_base::failbit) { + return std::unexpected("Logical error on i/o operation"); + } + } + + std::string line; + while (std::getline(file, line)) { + auto tokens = split(line, "#;"); + auto keyval = trim(tokens[0]); + if (keyval.size() == 0) continue; + tokens = split(keyval, "="); + if (tokens.size() < 2) continue; + auto key = trim(tokens[0]); + auto val = trim(tokens[1]); + kvmap[key] = val; + if (key == "localnet") { + localnets.push_back(val); + } else if (key == "tunnelnet") { + tunnelnet = val; + } else if (key == "listenport") { + auto convRes = strtoint(val); + if (!convRes) { + auto msg = std::format("listenport: {}", convRes.error()); + return std::unexpected(msg); + } + listenport = convRes.value(); + } + } + file.close(); + return {}; +} + +std::expected ServConfig::Validate(void) { + if (tunnelnet.size() == 0) { + return std::unexpected("Empty tunnel network"); + } + if (listenport == 0) { + return std::unexpected("Zero listen port"); + } + auto netprefixRes = netprefix(tunnelnet); + if (!netprefixRes) { + return std::unexpected("Incorrect tunnel network:" + netprefixRes.error()); + } + auto networkRes = network(tunnelnet); + if (!networkRes) { + return std::unexpected("Incorrect tunnel network:" + networkRes.error()); + } + for (const auto& val : localnets) { + auto netprefixRes = netprefix(val); + if (!netprefixRes) { + return std::unexpected("Incorrect local network " + val + ":" + netprefixRes.error()); + } + auto networkRes = network(val); + if (!networkRes) { + return std::unexpected("Incorrect local network " + val + ":" + networkRes.error()); + } + } + return {}; +} diff --git a/srvconfig.hpp b/srvconfig.hpp new file mode 100644 index 0000000..0771864 --- /dev/null +++ b/srvconfig.hpp @@ -0,0 +1,24 @@ + +#ifndef SRVCONFIG_HPP +#define SRVCONFIG_HPP + +#include +#include +#include +#include + +class ServConfig { +private: + std::map kvmap; + std::vector localnets; + std::string tunnelnet; + int listenport; +public: + std::expected Read(std::string filename); + int Listenport(void); + std::string Tunnelnet(void); + std::vector Localnets(void); + std::expected Validate(void); +}; + +#endif diff --git a/stringaux.cpp b/stringaux.cpp new file mode 100644 index 0000000..2683648 --- /dev/null +++ b/stringaux.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +#include +#include +#include +#include + +std::vector split(std::string s, std::string delimiters) { + std::vector tokens; + size_t last = 0, next = 0; + while ((next = s.find_first_of(delimiters, last)) != std::string::npos) { + if (next != last) tokens.push_back(s.substr(last, next - last)); + last = next + 1; + } + if (last < s.length()) tokens.push_back(s.substr(last)); + return tokens; +} + +std::string trim(std::string& source) { + auto line = source; + std::string whitespaces(" \t\n\r\f\v"); + line.erase(0, line.find_first_not_of(whitespaces)); + line.erase(line.find_last_not_of(whitespaces) + 1); + return line; +} + +std::expected strtoint (std::string source) { + std::size_t pos{}; + int res; + try { + res = std::stoi(source, &pos); + } catch (std::invalid_argument const& ex) { + return std::unexpected(std::format("invalid argument:{}", ex.what())); + } catch (std::out_of_range const& ex) { + return std::unexpected(std::format("out of range", ex.what())); + } + return res; +} diff --git a/stringaux.hpp b/stringaux.hpp new file mode 100644 index 0000000..2005016 --- /dev/null +++ b/stringaux.hpp @@ -0,0 +1,13 @@ + +#ifndef STRINGAUX_HPP +#define STRINGAUX_HPP + +#include +#include +#include + +std::vector split(std::string s, std::string delimiters); +std::string trim(std::string& source); +std::expected strtoint (std::string source); + +#endif diff --git a/tservice.cpp b/tservice.cpp index 179717b..506d005 100644 --- a/tservice.cpp +++ b/tservice.cpp @@ -11,18 +11,21 @@ extern "C" { #include #include +#include using namespace std::chrono_literals; -TCPService::TCPService(int svcport) { - port = svcport; +TunService::TunService(int svcport, std::string itunnelnet, std::vector ilocalnets) { + listenport = svcport; + tunnelnet = itunnelnet; + localnets = ilocalnets; } -TCPService::~TCPService() { - close(port); +TunService::~TunService() { + close(listenport); } -std::expected TCPService::Bind(void) { +std::expected TunService::Bind(void) { struct sockaddr_in address; int srvsock; if ((srvsock = socket(AF_INET, SOCK_STREAM, 0)) == 0) { @@ -38,7 +41,7 @@ std::expected TCPService::Bind(void) { } address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; - address.sin_port = htons(port); + address.sin_port = htons(listenport); if (bind(srvsock, (struct sockaddr *)&address, sizeof(address)) < 0) { int errnocopy = errno; std::string error = std::strerror(errnocopy); @@ -53,7 +56,7 @@ std::expected TCPService::Bind(void) { return {}; } -std::expected TCPService::Listen(void) { +std::expected TunService::Listen(void) { struct sockaddr_in address; int addrlen = sizeof(address); int newsock = 0; @@ -63,18 +66,42 @@ std::expected TCPService::Listen(void) { std::string error = std::strerror(errnocopy); return std::unexpected("Accept error: " + error); } - std::jthread t(&TCPService::Handle, this, newsock); + + std::jthread t(&TunService::Handle, this, newsock); t.detach(); } return {}; } -void TCPService::Handle(int sock) { - uxlogger.Log("Start socker handler"); +void TunService::Handle(int sock) { + auto prefixRes = netprefix(tunnelnet); + if (!prefixRes) { + uxlogger.Error(prefixRes.error()); + return; + } + auto networkRes = network(tunnelnet); + if (!networkRes) { + uxlogger.Error(networkRes.error()); + return; + } + auto localaddrRes = nethost(networkRes.value(), prefixRes.value(), sock); + if (!networkRes) { + uxlogger.Error(networkRes.error()); + return; + } + auto remoteaddrRes = nethost(networkRes.value(), prefixRes.value(), sock + 1); + if (!remoteaddrRes) { + uxlogger.Error(remoteaddrRes.error()); + return; + } + uxlogger.Debug("Start socker handler"); SocketHandler handler; - handler.Handle(sock); - uxlogger.Log("Stop socker handler"); + std::string laddr = localaddrRes.value(); + std::string raddr = remoteaddrRes.value(); + auto prefix = prefixRes.value(); + handler.Handle(sock, laddr, raddr, prefix); + uxlogger.Debug("Stop socker handler"); close(sock); } diff --git a/tservice.hpp b/tservice.hpp index 9ce83f7..db9ec26 100644 --- a/tservice.hpp +++ b/tservice.hpp @@ -4,19 +4,22 @@ #include #include +#include #include -class TCPService { +class TunService { private: - int port; + std::string tunnelnet; + std::vector localnets; + int listenport; int sock; public: - explicit TCPService(int port); + explicit TunService(int port, std::string tunnelnet, std::vector localnets); std::expected Bind(void); std::expected Listen(void); void Handle(int sock); - ~TCPService(); + ~TunService(); }; #endif diff --git a/uxclient.cpp b/uxclient.cpp index b66f326..18c8df5 100644 --- a/uxclient.cpp +++ b/uxclient.cpp @@ -86,6 +86,7 @@ void UxClient::RecvMessages(void) { std::string rawHeader(msgHeaderSize, 0); if ((rsize = recv(sock, rawHeader.data(), rawHeader.size(), MSG_WAITALL)) < 0) { int errnoCopy = errno; + uxlogger.Log(std::format("Read0 header error: {}", errno)); std::string error = std::strerror(errnoCopy); uxlogger.Log(std::format("Read header error: {}", error)); break; @@ -99,7 +100,7 @@ void UxClient::RecvMessages(void) { if (!decodeRes) { uxlogger.Log(std::format("Decode header error: {}", decodeRes.error())); } - auto pSize = header.PacketSize(); + auto pSize = header.PayloadSize(); if (pSize > 0) { std::string rawMessage(pSize, 0); if ((rsize = recv(sock, rawMessage.data(), rawMessage.size(), MSG_WAITALL)) < 0) { @@ -109,6 +110,7 @@ void UxClient::RecvMessages(void) { break; } } + uxlogger.Log(std::format("Receive message with size {}", pSize)); } done.release(); @@ -117,6 +119,9 @@ void UxClient::RecvMessages(void) { void UxClient::SendMessages(void) { while (true) { + std::this_thread::sleep_for(std::chrono::seconds(10)); + continue; + auto readRes = interface.Read(); if (!readRes) { uxlogger.Log(std::format("Read packet error: {}", readRes.error())); @@ -133,6 +138,7 @@ void UxClient::SendMessages(void) { MessageHeader header(rawMessage.size()); auto rawHeader = header.Encode(); + int wsize = 0; if ((wsize = send(sock, rawHeader.data(), rawHeader.size(), 0)) < 0) { int errnoCopy = errno; diff --git a/uxcontrol.pb.cc b/uxcontrol.pb.cc index aad662c..da1637d 100644 --- a/uxcontrol.pb.cc +++ b/uxcontrol.pb.cc @@ -65,7 +65,7 @@ PROTOBUF_CONSTEXPR AddressMessage::AddressMessage( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_.address_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.meta_)*/nullptr - , /*decltype(_impl_.prefix_)*/uint64_t{0u} + , /*decltype(_impl_.prefix_)*/0u , /*decltype(_impl_._cached_size_)*/{}} {} struct AddressMessageDefaultTypeInternal { PROTOBUF_CONSTEXPR AddressMessageDefaultTypeInternal() @@ -185,7 +185,7 @@ const char descriptor_table_protodef_uxcontrol_2eproto[] PROTOBUF_SECTION_VARIAB "Message\022#\n\004meta\030\001 \001(\0132\025.uxcontrol.MetaHe" "ader\022\017\n\007payload\030\002 \001(\014\"V\n\016AddressMessage\022" "#\n\004meta\030\001 \001(\0132\025.uxcontrol.MetaHeader\022\017\n\007" - "address\030\002 \001(\t\022\016\n\006prefix\030\003 \001(\004\"T\n\014RouteMe" + "address\030\002 \001(\t\022\016\n\006prefix\030\003 \001(\r\"T\n\014RouteMe" "ssage\022#\n\004meta\030\001 \001(\0132\025.uxcontrol.MetaHead" "er\022\017\n\007address\030\002 \001(\t\022\016\n\006prefix\030\003 \001(\004\"D\n\014H" "elloMessage\022#\n\004meta\030\001 \001(\0132\025.uxcontrol.Me" @@ -893,7 +893,7 @@ inline void AddressMessage::SharedCtor( new (&_impl_) Impl_{ decltype(_impl_.address_){} , decltype(_impl_.meta_){nullptr} - , decltype(_impl_.prefix_){uint64_t{0u}} + , decltype(_impl_.prefix_){0u} , /*decltype(_impl_._cached_size_)*/{} }; _impl_.address_.InitDefault(); @@ -932,7 +932,7 @@ void AddressMessage::Clear() { delete _impl_.meta_; } _impl_.meta_ = nullptr; - _impl_.prefix_ = uint64_t{0u}; + _impl_.prefix_ = 0u; _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } @@ -960,10 +960,10 @@ const char* AddressMessage::_InternalParse(const char* ptr, ::_pbi::ParseContext } else goto handle_unusual; continue; - // uint64 prefix = 3; + // uint32 prefix = 3; case 3: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { - _impl_.prefix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + _impl_.prefix_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; @@ -1014,10 +1014,10 @@ uint8_t* AddressMessage::_InternalSerialize( 2, this->_internal_address(), target); } - // uint64 prefix = 3; + // uint32 prefix = 3; if (this->_internal_prefix() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteUInt64ToArray(3, this->_internal_prefix(), target); + target = ::_pbi::WireFormatLite::WriteUInt32ToArray(3, this->_internal_prefix(), target); } if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { @@ -1050,9 +1050,9 @@ size_t AddressMessage::ByteSizeLong() const { *_impl_.meta_); } - // uint64 prefix = 3; + // uint32 prefix = 3; if (this->_internal_prefix() != 0) { - total_size += ::_pbi::WireFormatLite::UInt64SizePlusOne(this->_internal_prefix()); + total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(this->_internal_prefix()); } return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); diff --git a/uxcontrol.pb.h b/uxcontrol.pb.h index f047b38..2e17874 100644 --- a/uxcontrol.pb.h +++ b/uxcontrol.pb.h @@ -716,13 +716,13 @@ class AddressMessage final : ::uxcontrol::MetaHeader* meta); ::uxcontrol::MetaHeader* unsafe_arena_release_meta(); - // uint64 prefix = 3; + // uint32 prefix = 3; void clear_prefix(); - uint64_t prefix() const; - void set_prefix(uint64_t value); + uint32_t prefix() const; + void set_prefix(uint32_t value); private: - uint64_t _internal_prefix() const; - void _internal_set_prefix(uint64_t value); + uint32_t _internal_prefix() const; + void _internal_set_prefix(uint32_t value); public: // @@protoc_insertion_point(class_scope:uxcontrol.AddressMessage) @@ -735,7 +735,7 @@ class AddressMessage final : struct Impl_ { ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr address_; ::uxcontrol::MetaHeader* meta_; - uint64_t prefix_; + uint32_t prefix_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; }; union { Impl_ _impl_; }; @@ -1541,22 +1541,22 @@ inline void AddressMessage::set_allocated_address(std::string* address) { // @@protoc_insertion_point(field_set_allocated:uxcontrol.AddressMessage.address) } -// uint64 prefix = 3; +// uint32 prefix = 3; inline void AddressMessage::clear_prefix() { - _impl_.prefix_ = uint64_t{0u}; + _impl_.prefix_ = 0u; } -inline uint64_t AddressMessage::_internal_prefix() const { +inline uint32_t AddressMessage::_internal_prefix() const { return _impl_.prefix_; } -inline uint64_t AddressMessage::prefix() const { +inline uint32_t AddressMessage::prefix() const { // @@protoc_insertion_point(field_get:uxcontrol.AddressMessage.prefix) return _internal_prefix(); } -inline void AddressMessage::_internal_set_prefix(uint64_t value) { +inline void AddressMessage::_internal_set_prefix(uint32_t value) { _impl_.prefix_ = value; } -inline void AddressMessage::set_prefix(uint64_t value) { +inline void AddressMessage::set_prefix(uint32_t value) { _internal_set_prefix(value); // @@protoc_insertion_point(field_set:uxcontrol.AddressMessage.prefix) } diff --git a/uxcontrol.proto b/uxcontrol.proto index 2c48eb1..740e264 100644 --- a/uxcontrol.proto +++ b/uxcontrol.proto @@ -21,7 +21,7 @@ message PacketMessage { message AddressMessage { MetaHeader meta = 1; string address = 2; - uint64 prefix = 3; + uint32 prefix = 3; } message RouteMessage { diff --git a/uxlogger.cpp b/uxlogger.cpp index b6825c1..2e1573f 100644 --- a/uxlogger.cpp +++ b/uxlogger.cpp @@ -22,6 +22,7 @@ UxLogger::UxLogger(const std::string ilabel) { UxLogger::UxLogger(void) { label = "global"; } + void UxLogger::Log(const std::string& message) { auto now = std::chrono::system_clock::now(); std::chrono::zoned_time localnow{std::chrono::current_zone(), now}; @@ -30,3 +31,27 @@ void UxLogger::Log(const std::string& message) { std::cout << std::format("{} {} {}\n", timenow, label, message); } +void UxLogger::Debug(const std::string& message) { + LogLevel("debug", message); +} + +void UxLogger::Info(const std::string& message) { + LogLevel("info", message); +} + +void UxLogger::Warning(const std::string& message) { + LogLevel("warning", message); +} + +void UxLogger::Error(const std::string& message) { + LogLevel("error", message); +} + +void UxLogger::LogLevel(const std::string level, const std::string& message) { + auto now = std::chrono::system_clock::now(); + std::chrono::zoned_time localnow{std::chrono::current_zone(), now}; + std::string timenow = std::format("{:%Y-%m-%dT%H:%M:%OS%Z}", localnow); + std::lock_guard lock(mtx); + std::cout << std::format("{} {} {} {}\n", timenow, level, label, message); +} + diff --git a/uxlogger.hpp b/uxlogger.hpp index 41c5dd6..b6cf059 100644 --- a/uxlogger.hpp +++ b/uxlogger.hpp @@ -11,12 +11,18 @@ class UxLogger { private: std::string label; + void LogLevel(const std::string level, const std::string& message); public: UxLogger(std::string ilabel); UxLogger(); void Log(const std::string& message); + void Debug(const std::string& message); + void Info(const std::string& message); + void Warning(const std::string& message); + void Error(const std::string& message); }; + extern UxLogger uxlogger; #endif diff --git a/works/config/config.cpp b/works/config/config.cpp new file mode 100644 index 0000000..85e3abe --- /dev/null +++ b/works/config/config.cpp @@ -0,0 +1,126 @@ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +std::vector split(std::string s, std::string delimiters) { + std::vector tokens; + size_t last = 0, next = 0; + while ((next = s.find_first_of(delimiters, last)) != std::string::npos) { + if (next != last) tokens.push_back(s.substr(last, next - last)); + last = next + 1; + } + if (last < s.length()) tokens.push_back(s.substr(last)); + return tokens; +} + +std::string trim(std::string& source) { + auto line = source; + std::string whitespaces(" \t\n\r\f\v"); + line.erase(0, line.find_first_not_of(whitespaces)); + line.erase(line.find_last_not_of(whitespaces) + 1); + return line; +} + +std::expected str2int (std::string source) { + std::size_t pos{}; + int res; + try { + res = std::stoi(source, &pos); + } + catch (std::invalid_argument const& ex) { + return std::unexpected(std::format("invalid argument:{}", ex.what())); + } + catch (std::out_of_range const& ex) { + return std::unexpected(std::format("out of range", ex.what())); + } + return res; +} + +class Registry { +private: + std::map kvmap; + std::vector localnets; + std::string tunnelnet; + int listenport; +public: + std::expected Read(std::string filename); + int Listenport(void); + std::string Tunnelnet(void); + std::vector Localnets(void); + +}; + +int Registry::Listenport(void){ + return listenport; +} + +std::vector Registry::Localnets(void){ + return localnets; +} + +std::string Registry::Tunnelnet(void){ + return tunnelnet; +} + +std::expected Registry::Read(std::string filename) { + std::ifstream file; + file.open(filename); + if (file.fail()) { + auto state = file.rdstate(); + if (state & std::ios_base::badbit) { + return std::unexpected("Read/writing error on i/o operation"); + } else if (state & std::ios_base::failbit) { + return std::unexpected("Logical error on i/o operation"); + } + } + + std::string line; + while (std::getline(file, line)) { + auto tokens = split(line, "#;"); + auto keyval = trim(tokens[0]); + if (keyval.size() == 0) continue; + tokens = split(keyval, "="); + if (tokens.size() < 2) continue; + auto key = trim(tokens[0]); + auto val = trim(tokens[1]); + kvmap[key] = val; + if (key == "localnet") { + localnets.push_back(val); + } else if (key == "tunnelnet") { + tunnelnet = val; + } else if (key == "listenport") { + auto convRes = str2int(val); + if (!convRes) { + auto msg = std::format("listenport: {}", convRes.error()); + return std::unexpected(msg); + } + listenport = convRes.value(); + } + } + file.close(); + //for (auto const& [key, val] : kvmap) { + // std::cout << key << ":" << val << std::endl; + //} + return {}; +} + +int main() { + Registry config; + auto openRes = config.Read("example.conf"); + if (!openRes) { + std::cerr << openRes.error() << std::endl; + return 1; + } + return 0; +} diff --git a/works/config/example.conf b/works/config/example.conf new file mode 100644 index 0000000..fc2b773 --- /dev/null +++ b/works/config/example.conf @@ -0,0 +1,5 @@ +# foo + # foobare + localnet == 10.1.1.0/24 #qwert + localnet == 10.1.2.0/24 #qwert + ddd = diff --git a/works/iprange.cpp b/works/iprange.cpp index 12a5601..37a402f 100644 --- a/works/iprange.cpp +++ b/works/iprange.cpp @@ -10,7 +10,7 @@ extern "C" { #include #include -std::expected network6(std::string network, int prefix) { +std::expected nethost6(std::string network, int prefix, uint32_t num) { struct in6_addr addr; unsigned char mask[16] = {0}; if (inet_pton(AF_INET6, network.data(), &addr) != 1) { @@ -25,7 +25,7 @@ std::expected network6(std::string network, int prefix uint64_t *host_part = (uint64_t *)&addr.s6_addr[8]; uint64_t hostnum = be64toh(*host_part); - hostnum += 2; + hostnum += num; *host_part = htobe64(hostnum); char buffer[INET6_ADDRSTRLEN] = {'\0'}; @@ -35,29 +35,38 @@ std::expected network6(std::string network, int prefix } -std::expected network4(std::string network, int prefix) { +std::expected nethost4(std::string network, int prefix, uint32_t num) { struct in_addr inaddr; if (inet_pton(AF_INET, network.data(), &inaddr) != 1) { return std::unexpected(std::format("Invalid network address {}", network)); } uint32_t ip = ntohl(inaddr.s_addr); uint32_t mask = (prefix == 0) ? 0 : (~0U << (32 - prefix)); - uint32_t fip = (ip & mask) + 1; + uint32_t fip = (ip & mask) + num; struct in_addr ip_addr; - ip_addr.s_addr = htonl(ip); - + ip_addr.s_addr = htonl(fip); return std::string(inet_ntoa(ip_addr)); } +std::expected nethost(std::string network, int prefix, uint32_t num) { + struct sockaddr_in sa; + if (inet_pton(AF_INET, network.data(), &(sa.sin_addr)) == 1) { + return nethost4(network, prefix, num); + } else if (inet_pton(AF_INET6, network.data(), &(sa.sin_addr)) == 1) { + return nethost6(network, prefix, num); + } + return std::unexpected(std::format("Unknown network address {}", network)); +} + int main() { - auto net4Res = network4("192.168.1.154", 26); + auto net4Res = nethost4("192.168.1.151", 24, 1); if (!net4Res) { std::cerr << net4Res.error() << std::endl; return 1; } std::cout << net4Res.value() << std::endl; - auto net6Res = network6("2001:db8:abcd:1234::0", 64); + auto net6Res = nethost6("2001:db8:abcd:1234::0", 64, 1); if (!net6Res) { std::cerr << net6Res.error() << std::endl; return 1;