From 9b8cda8d95a52eae948f45b559ee2838851edeb6 Mon Sep 17 00:00:00 2001 From: Jordan Date: Thu, 21 Aug 2014 08:53:00 -0400 Subject: [PATCH] Initial version of websocket client. SSL tested working. websocket_client example included. --- examples/websocket_client/Makefile | 36 ++++ examples/websocket_client/ssl/server.crt | 13 ++ examples/websocket_client/ssl/server.csr | 11 + examples/websocket_client/ssl/server.key | 15 ++ examples/websocket_client/ssl/server.key.orig | 18 ++ examples/websocket_client/ssl/server.pem | 28 +++ examples/websocket_client/websocket_client | Bin 0 -> 373918 bytes examples/websocket_client/websocket_client.c | 72 +++++++ include/civetweb.h | 6 + src/civetweb.c | 198 ++++++++++++++++++ 10 files changed, 397 insertions(+) create mode 100644 examples/websocket_client/Makefile create mode 100644 examples/websocket_client/ssl/server.crt create mode 100644 examples/websocket_client/ssl/server.csr create mode 100644 examples/websocket_client/ssl/server.key create mode 100644 examples/websocket_client/ssl/server.key.orig create mode 100644 examples/websocket_client/ssl/server.pem create mode 100755 examples/websocket_client/websocket_client create mode 100644 examples/websocket_client/websocket_client.c diff --git a/examples/websocket_client/Makefile b/examples/websocket_client/Makefile new file mode 100644 index 00000000..12769bc7 --- /dev/null +++ b/examples/websocket_client/Makefile @@ -0,0 +1,36 @@ +# +# Copyright (c) 2013 No Face Press, LLC +# License http://opensource.org/licenses/mit-license.php MIT License +# + +#This makefile is used to test the other Makefiles + + +PROG = websocket_client +SRC = websocket_client.c + +TOP = ../.. +CIVETWEB_LIB = libcivetweb.a + +CFLAGS = -I$(TOP)/include $(COPT) +LIBS = -lpthread + +include $(TOP)/resources/Makefile.in-os + +ifeq ($(TARGET_OS),LINUX) + LIBS += -ldl +endif + +all: $(PROG) + +$(PROG): $(CIVETWEB_LIB) $(SRC) + $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(SRC) $(CIVETWEB_LIB) $(LIBS) + +$(CIVETWEB_LIB): + $(MAKE) -C $(TOP) clean lib + cp $(TOP)/$(CIVETWEB_LIB) . + +clean: + rm -f $(CIVETWEB_LIB) $(PROG) + +.PHONY: all clean diff --git a/examples/websocket_client/ssl/server.crt b/examples/websocket_client/ssl/server.crt new file mode 100644 index 00000000..a26359ab --- /dev/null +++ b/examples/websocket_client/ssl/server.crt @@ -0,0 +1,13 @@ +-----BEGIN CERTIFICATE----- +MIICATCCAWoCCQC2BCIqIvgSUTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB +VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0 +cyBQdHkgTHRkMB4XDTE0MDgyMTEyMzAwMVoXDTI0MDgxODEyMzAwMVowRTELMAkG +A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0 +IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9k9s +gH22BCo9neTeB/YnilK7n0sMe0+pjS9KSWhU59Q4w8hqPrW0tuYikIDd0wVggkJF +BZNg4WPoulTdwXsgNBeG88q2wnNtUosXTS+KQTQBSiQof9Ay9GHQtgxnogI1zIXb +HOppyyG5zre8a/X6fzDOnFc4iJMBwxTAnjCqObkCAwEAATANBgkqhkiG9w0BAQUF +AAOBgQBX9V46VUVsB9P9fb8sFuMx2ezFE42ynEeJPrKRrof+dFYbjvR1OUZFSLCy +aZKwVH7iCnVBJiU12JxO7PR3L6ob3FYPyNHQWYq1/IFUvqBRagehldj5H8iFeEDz +Wtz2+p1rUyVxcSUqTjobaji0aC8lzPZio0nd1KKM6A92/adHyQ== +-----END CERTIFICATE----- diff --git a/examples/websocket_client/ssl/server.csr b/examples/websocket_client/ssl/server.csr new file mode 100644 index 00000000..4d4723b2 --- /dev/null +++ b/examples/websocket_client/ssl/server.csr @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBhDCB7gIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEh +MB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEB +AQUAA4GNADCBiQKBgQD2T2yAfbYEKj2d5N4H9ieKUrufSwx7T6mNL0pJaFTn1DjD +yGo+tbS25iKQgN3TBWCCQkUFk2DhY+i6VN3BeyA0F4bzyrbCc21SixdNL4pBNAFK +JCh/0DL0YdC2DGeiAjXMhdsc6mnLIbnOt7xr9fp/MM6cVziIkwHDFMCeMKo5uQID +AQABoAAwDQYJKoZIhvcNAQEFBQADgYEA1EOFwyFJ2NAnRNktZCy5yVcLx9C78HoC +oHPPCOElu0VDIqe6ZecYdaqWbYlhGE0+isbOQn2CwHOeBGN8mIDsNUYzVEpsEfgg +9OK873LpE5pf4mdjSiRBXkk/h8BxuqkcKi+Qx+qEE7+dH2nK5aKeIHVvbLyfGOch +9I85q+msBNE= +-----END CERTIFICATE REQUEST----- diff --git a/examples/websocket_client/ssl/server.key b/examples/websocket_client/ssl/server.key new file mode 100644 index 00000000..f09cc38c --- /dev/null +++ b/examples/websocket_client/ssl/server.key @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD2T2yAfbYEKj2d5N4H9ieKUrufSwx7T6mNL0pJaFTn1DjDyGo+ +tbS25iKQgN3TBWCCQkUFk2DhY+i6VN3BeyA0F4bzyrbCc21SixdNL4pBNAFKJCh/ +0DL0YdC2DGeiAjXMhdsc6mnLIbnOt7xr9fp/MM6cVziIkwHDFMCeMKo5uQIDAQAB +AoGAYwospr3lomcZv5N3c9wWqhf6OWMD8dFma87IIBxDh7Rd3tuHXQ/TSnffDhvD +FkbjN31OI5/PJNH3knTtdg78MywPloE4jYsbt4+fEaW7Fzww2nU61N1p+mYk5d/b +SCTAHhGzF9g9ZMw25CCUFGjDU2z+Ty6my22Euxhk2Qq8tMECQQD9ZYIxWkPhywDW +pX3v70dqIv7411hEYpuL/ZJl26UCmQsj4HPtXQCraQksVPs74WY5aTtd6MAV9V3M +UnErHO5/AkEA+NdG2MmfBOBPusDB/WwQaUPiCWGITS9llGTR2JXbvDqmKgL1+UTG +o27sLNIFCrF1wejpyRGqwjcObFYR0yKrxwJBAOB2uPuK4DL1psp9Uq/mIDbOxVod +OF1rlCpP9w0vol5Iv+uJ+mc7SUqOAsg4h0yl/+2/YA1yDiXlcq96IDF2sXUCQGAv +Nh9Nr72+xpK1N0axopZNuu1NWdYb3/PAFKzXIBxdvyS2CEXVo8JAeeHJPFGpzo6p +bNRfk9WGWnjdu/4UhLkCQQCekR9zpIpzdJiPYCd6XMya+TPCDYlOQL1jlnJIRa2V +BEOz0rSpzXAGh0PyCB/kMneyVk87LWn8joE6179RoUfv +-----END RSA PRIVATE KEY----- diff --git a/examples/websocket_client/ssl/server.key.orig b/examples/websocket_client/ssl/server.key.orig new file mode 100644 index 00000000..58e5653c --- /dev/null +++ b/examples/websocket_client/ssl/server.key.orig @@ -0,0 +1,18 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: DES-EDE3-CBC,89778A6427F05D4A + +4aXqO/8oCHVfMLB+a1DfjbXyEddjbd7nB+YVFLPKy68Tam9PRTvC1zRHBet59ll0 +1w7R8tXR6/xH7HRhBeqDHCcuvBhtw3xGxtXWv54WBFhzuq7TvKOAaCFl++cw/JHq +PCS0rAaYnqF2MAgMi7QBjZKmHFHL43Gy60VfOrB0mmOdxqqXA0NBFC2uEd7Z/MAx +S2A85bNJJKQaWEeDThP1u0OOlNCq99lkLJ31jiOH7ntdL0/vqcbZ+PUtdPLwAG4L +1GUHuiC2v5FvDlPiejMk2dvrxCNpcu2e3tQKHpg2KcsTVrpB7EVzRSazln4HywUZ +EJfBvxqqrS7plImZgj4LXSnln0JPuBb+aHnhKIFvisjYSwqDGJnnp/OaD7YdRhYh +UCcL011Ge+yUbRipeAmHdtJlSUSdB14KWq+WdIX/KgCRGx06QZm9s1PBLH+fww+I +EL3A/LFX0a5KUHkCp29akYYv9bUYaQ79Nt7BlaEON+/SW3pJMbGr+nx8aqogr0Yo +SJ/Zz5TSDBhecRjbCDGkT6DizVZ8cbm2xl8QLBd0H+ZA6uYMgfpAOJGrJx3Nm4Lv +prEApgFtjSrsQDGYHAcmDMW1UWOVHuNp7BSvwUze9Ftnzr/jlpdzES2rhgMyGhg1 +0Szbsfs3vgw4iM83LFJXza07GQJzF8gRF79dY5JiQX/sOKUprA6Lofk631jE0G8r +3z59cxblaq9y7EgFsE944Gk7/HIEimBRiqIZzGVJVukD0itynQ+XmYTdbyH1lpvi +c0ZheZPUoGwUW9RYy+nle5gEDFyZWXcCAuJasQvDBXt//r/bso3ZpA== +-----END RSA PRIVATE KEY----- diff --git a/examples/websocket_client/ssl/server.pem b/examples/websocket_client/ssl/server.pem new file mode 100644 index 00000000..300834e3 --- /dev/null +++ b/examples/websocket_client/ssl/server.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIICATCCAWoCCQC2BCIqIvgSUTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJB +VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0 +cyBQdHkgTHRkMB4XDTE0MDgyMTEyMzAwMVoXDTI0MDgxODEyMzAwMVowRTELMAkG +A1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0 +IFdpZGdpdHMgUHR5IEx0ZDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9k9s +gH22BCo9neTeB/YnilK7n0sMe0+pjS9KSWhU59Q4w8hqPrW0tuYikIDd0wVggkJF +BZNg4WPoulTdwXsgNBeG88q2wnNtUosXTS+KQTQBSiQof9Ay9GHQtgxnogI1zIXb +HOppyyG5zre8a/X6fzDOnFc4iJMBwxTAnjCqObkCAwEAATANBgkqhkiG9w0BAQUF +AAOBgQBX9V46VUVsB9P9fb8sFuMx2ezFE42ynEeJPrKRrof+dFYbjvR1OUZFSLCy +aZKwVH7iCnVBJiU12JxO7PR3L6ob3FYPyNHQWYq1/IFUvqBRagehldj5H8iFeEDz +Wtz2+p1rUyVxcSUqTjobaji0aC8lzPZio0nd1KKM6A92/adHyQ== +-----END CERTIFICATE----- +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQD2T2yAfbYEKj2d5N4H9ieKUrufSwx7T6mNL0pJaFTn1DjDyGo+ +tbS25iKQgN3TBWCCQkUFk2DhY+i6VN3BeyA0F4bzyrbCc21SixdNL4pBNAFKJCh/ +0DL0YdC2DGeiAjXMhdsc6mnLIbnOt7xr9fp/MM6cVziIkwHDFMCeMKo5uQIDAQAB +AoGAYwospr3lomcZv5N3c9wWqhf6OWMD8dFma87IIBxDh7Rd3tuHXQ/TSnffDhvD +FkbjN31OI5/PJNH3knTtdg78MywPloE4jYsbt4+fEaW7Fzww2nU61N1p+mYk5d/b +SCTAHhGzF9g9ZMw25CCUFGjDU2z+Ty6my22Euxhk2Qq8tMECQQD9ZYIxWkPhywDW +pX3v70dqIv7411hEYpuL/ZJl26UCmQsj4HPtXQCraQksVPs74WY5aTtd6MAV9V3M +UnErHO5/AkEA+NdG2MmfBOBPusDB/WwQaUPiCWGITS9llGTR2JXbvDqmKgL1+UTG +o27sLNIFCrF1wejpyRGqwjcObFYR0yKrxwJBAOB2uPuK4DL1psp9Uq/mIDbOxVod +OF1rlCpP9w0vol5Iv+uJ+mc7SUqOAsg4h0yl/+2/YA1yDiXlcq96IDF2sXUCQGAv +Nh9Nr72+xpK1N0axopZNuu1NWdYb3/PAFKzXIBxdvyS2CEXVo8JAeeHJPFGpzo6p +bNRfk9WGWnjdu/4UhLkCQQCekR9zpIpzdJiPYCd6XMya+TPCDYlOQL1jlnJIRa2V +BEOz0rSpzXAGh0PyCB/kMneyVk87LWn8joE6179RoUfv +-----END RSA PRIVATE KEY----- diff --git a/examples/websocket_client/websocket_client b/examples/websocket_client/websocket_client new file mode 100755 index 0000000000000000000000000000000000000000..30bbec4bb2a00bbdcf6e56507e40fac93ffa2ca2 GIT binary patch literal 373918 zcmcG%eP9&T)jz(I1V|9wprG*$5?wV>l#HSh1trUrBA8SN-IT(7GKm;Mb&*#qWW`gYVJb!$D+mgBG z+_!VjIrrRi?>#flb9?Sgk|am$m*lv^L8vJ^U!bhN4#!e&7XkB6zGI*x4S%n4T;b>n zm^u0Q$6tOl6??Wtn~ptGtzwR3JX7#*V3LIxn3OLPvFBwL+7WxkDCDz)5*EtmAN=yg z-=7PtlCh`5kty)RlGfHjE5EgHyuinvmE8sCSlQcp#_Ewg)=RzDs+W4NRWJ5zwa|{( zGd4bsjsHeQ$2T%59}wYuJ{+p}+wo*s{))c$PGEXqf2-kv{S|?aJr|L2_{E;FdiS9o z>HNR`Vs!p0+Fv5Rq(|wGJ)^^Q^q(^M(OU-epEBY4DU+v`&Axv2z+0}rWxx$HrrmI( z7rb6Gd`56S=Y z?{zeO{#i;d00C#iw}FVW;m=LbP6m|kY~?>gpJ&6nF^IF_Cnmxt=yzv=_L~#X-xK9C z@$byvpA+=^_XPa;ZG!ew6YybC0{Yh{XlF zCE%Ms!FY=k^gAp8{=o$8??^yTO@i{zC%^|2$ahDA@?8`3yFNiX4GGGROu(P((M~4* zo%y>n0X+v3v_CLG`?C_X^Iih}uTId;J`i}edGSyJdR|M=&Zz|Dha{kLQUW>^(35#4 z(*WO_%J@fcyCBR|EUD+{4+tn`x3M>FhTiy6O7A&eM6~t z()5z?6S!H(b&M?-SvYn=$@G%PCeQGeOdnY|Y|6B$B_qc_I;F%h_U@Tue-+IbHf8*b z86`8U@@Fj_ZFX$&w5b!uPM$j1>xf~VEc2GkMkh18)2BVhBu+aJHB|*3@<4rFH0v+pfXIDVr?47j(zOOX;a4{f4X<T~oNsHj=C9LEiLrBrsv9l>+bTW2qvG=Lc zlCh6+N^qPdQ)luqY1$0$qfcSTWWI)5=Oq zOQs8|V`G5qr_GAuqHJ=MS&gwRv;oFEMujZ#K3XhO?+DjaFc?yOO8++poH{Nh_Jbe=mRATsB<0*MSJlT=D=>}UG_B{zFEXg=+Nydp8 z|HmiHIL@<(xBl0q6GU7$k;9T!y;#ZEGuDnBwpzBgn<7qmSSD4p#8g-GpC)KXc61lm z6u``}db4mAWYLAqrY*l?3>=k}!}>9NQgp<~a!B~!d02yZ4wZ?2WtU7&bD+1&*(81v z%3{eB`MG#bznJ-59XZHn9jkm7Tlubz!O`}R?YL<2_dA zZ?@sr*zmX5@F5%iRvUhU4L{I^Z?fU@Z1^2E{B1UTiw%Ff4R6@+gKYR#8-B12-)6(# zVZ%Fq)uI1GZ1_|gKHr8&$r?4 zvf(uwUbEqgZ1@5jezXmLw+%nehQG&#pJc;(Z1_?ezR-rBZNuMd!ngJN*ms~A+s{q*zot;%7<+D2W_dAXW8&;Z1~wWe8`4>%7))y!#{1qH`(yd*zh}S_&GMb=KCR43v~JZhAf9x z5%P91E`V38`RY<@ZH16*zj+Iav|sfZ{yO{SBSlzfgxS)L-&LCkODJkK3AlzZU2-!d z;3~p&#m$uh{x@NC<}jBE_$|V8z0FDize$)bw^=UW*9p_rHcJKkGT~Ih;{^OXVY=34 zk$|5gOqbfs7x2@B=}Mcq0-jE|2jNTsKTen~wV5v9M+wuFHXQ7tq|1^jQqF2YL% z{1#!lq-Ldn-y}>|)GQb9>xAionxz7MnQ%7YaRPpxa1P-j0Y68WuBMqU;HL@G#WZsT zJe@FIOEXizj}xX#X{HPKQNna3O^1LVBup35Z2eitpDfUh7-SI{gM@Fj%l0-B`)KA$jMKXaUbyA!6% zXBG)Ki7;I~Ghe_b`T?ekXXXm{Fk!lOW~PAm5vEILrVDsCVY+grL%^RCrVD4bo)q#Y zoKLt#z?%pwgqs9hLzu3b84_?6VY+DMN&)|yuu6ETfZrlam&~jb@SB9`ikamCew{E~ zFtb#^FB8@Xj}!3ogbN543HUj}cN5MR@Y96pVwt%Do=%vqm6<8v#|hJ=GSdb8C}Fx% zrbECF5~d4fww@63CrsDLY!UF?gy}MwO#&WDn68o;67X$==^~jc1$-l6x<=+w0bfg) zE|FO&;428z6*9{Odj2ZmF>?ic zm@r)%GgH9(2-Br8(*?YnFkKnbA>hvm(}gixe-iR1JdSXSfHx7Q%VIVOxP~xY6*DB@ zD#FEtR|@#wgeMSQD&V&W(^WAm1^gyqx+rG3fL|v}*TgIp@XLg`0GZg+{VJB#Dz;_>mk&ueoLmNKij64{ix}q3{5X=(E@Hf8`e+2 zz(pg*T@c(F2^4Lt6?NwSPy|T-;3F((n*N^<9uu@c%2ixNG~L}MhqT6u7GP%z-c=Y# z`mJOulE1Z*ZAkv!O42j0Ey6*!% z9A%kW5DkGTdr-n+%8k$#!4#7nYk>-uTuaBRsuhK**{TLY-&%`?i8i<%b}DzwUhcVg zIRooNr*c2r%RLw`7do?C5{`P~{oWWax45Gm33@67f>Ke`7=8>x0A-+lRNDmYrd~pV za9+C}Z*Siy^htR@xnCKjj2txrnvz~V_y{EuxGOdAKzd+!FI{zo0(bS$N4hF?k87RN zA529c?XiYrXT_&T=`{h5t1>Xf6*|7<%8{;hfj(;B-V`-}WL8)WJd&y+uTp==wMY%j zOi$aSqLIbJf-iKx|Gh>-4f=b}UiSEQ75Pilz{Jbcz+9KAdtFNvX@?RHbyK8}s@J&n zuxPweL6d2l?h3we`4^>`E;TSUTWSu6d#F-a)u*^t=$jOM)A23tteUJEHEoL;xF1=Y z!ZkgmO?L*Dq#xM)L0Hk7^-q=K%~>D1v%*T+PPer4uHcf~cbs#Mg1&xAIDDZZHM{i< zs{SDfS*aXv%KB8v+MuNE2t3luZIR`cHmJcR7hl`3;4W21-}T3v)vS-Rn$yg{)C^VH z8Ko(>2vg&CB1s*DM1~n+DfWE7F3y_3arbF zQbX=6NBN8$i_0eq(mp0tTLo1HNW$Rq-Z`!Y$T5=EnIzDI0@wa)OnbXU*V$;1tG7R- zccKN9WPPlpMQO>6(lRW#BIAmll}~^Sw@xw?L5DldP$VNTbwHE^40%;>Mb0a~S$qoA zxXB~+1MLM<2H74%DwUe)JVxZy$xbyZiL zqPK!=AXiNWMBQBG4!&@1{=4}h0&75j7e#6X(Mr})K`+rO6=@?Fkmi=cO7Ml=_dWQ? z)rx*pg}#yK`mDoh+CHfnI=?6!K2Mc4s=*aEzSX$eRP_cZ{=FXr$`Qh~bNN!F$ ztV;X9yl_n~RF^g>Ss&}ft7!+&Gsd#QBBJTe;EMA`^iq=)eIpv8dTdrm(q@cRl@0*m zMv3`*-q;atNK>T-{ZJOTj2W^~l}wVo6x2wEFuvX!PJX%Un-(BFN*xm$k( zJseU)8izz->4#K^Bh6H#4Uoig4Cy?K4ns=Y-|Im)M*tRMNRZkgQj9{YKsG2)r7*_T zvy1ud-xd83N#>|X&L+^paV-HA(k6`S=C;2a{F&q0hHfEyuo7IvxKef|O?wQ)E7Bor zTxm*H69%d3n+4g5-Xu8Kgr3fM-g9j*+;E;4*Jd(NO$);^T`)B7M7s`QnX0^r-L3?2 z(jj@1A~iwO98wBKcPDJw{A0gapl^~7E5TJaUorlVPYUL%a*gP*25db?-UKb{G4T6S zP$4u&ZQK-YNJkk}+AJTIHc?%}H5W;Tp(&EOuX-66C~t(CpZoVuzP^VIu8^D29n>8C z%7@U^fN}S{e+?AW9~RwV%&me}a=m*+?!nI>zHrSs@*!2KAzd3m|1$KS zjv)tE$z3jAm;w>YVa&j8c}<_~#8{-ws=g6@%23|TtOzmtFZlkyzSyH54u?~$?$2wR z^Jd>DlOg(W=p2iyCHJqW!|2I}MRvxf%bTJcCG*c!ugLjPP32El>f7?A*Uyx#;b1xa;w4$XYBlr)`$EVG2Pn!VTS_GSX%xtyPgX2uuIM1$j$f z`B{+TJiaCH5N0UYkyax^ImnQ6YJWYZL_ZX+>5X*&*~`Eb_7(=Sk$vOKAN6<%Ggx%T zm2r8jKT?wX?2iZAKJAY1z~7bVrw1P~%-f z#>u^gNq>oVY3mNe_I{&h>b>#qf-ju++}shzW8FfyREThIEV9sJOh~y#sP4*eO;_*& zlE3-zZ681aw0G}s*?#Tu<|y04;qJi!J)r@>9HI)qIe=#o4m+W#Qq%D*T(|B@k

pBr=$Q|9pQY69y95Otd1A%S0Oz14V;ygzbLtQ}u%hOb`I0?!yI;LY&pdyMph?d=tzvhT*| z1{el+591R}#1Z+95n7;|8n`Q63yjWKb1s}lt>O#KsqS#&kn^U%z3CMjo&Ivr;aq(| z`H89C0dlDP#0;-eeqw@mq+WCU^YUk;2~M?U3|eO~2e>7i=87$45vxwwM_OPe&Q9m0 z8uJdcw?{Tc`3xrJJ&@_GTEjujeOJ_qtN;fyfY0#0Id8wniTsx+FVbUbD}|@3pEO)Q zfD^$0j{2RTuYQ9s_O!@BM07$AP;_Tq3mUq|-;nzwFyKBB0 zNfa;Jhp1TUR4of1>BN8RhmMZW^iQ?k9O+7J zZ$g?oK7ClG_eKqB4mBEoF%MgE(He(liU!dL^zFcUZZC|} z`-BAVW;^*>U<5{kwg5~*A{Ecet08+w z`5<^ira2WHkIKtD2b?=o-$u#%N2r097J>%(3oWpIHWKcNjdQP^SQ!}97iwnIN7~y9 z0_$ANX-w%$5rV1NO5O?=Yt7qX3^T0~AFnQQ(Oi5Q4Aeb zQmfOU&5%>SOmtzW``g=nZC$*>&sLE&`njsJsQ&scBSVx;@m>i$Z1O-2%S65>Fu|pH zkSfA79Sxyb^Ai^RviT>tX`0oHWiWI8Pa<6pSI#y6v`DWF%yDJU7hBy~|DfUPhsibj zFN&`%bKW0ekHX)ihxfqvAtxj4MA~6RALWp@Z~{8llJ+WcSIr53x?7=DnGDFL&)^qW zH3ddUKSF+yRT-YZ)tY{)u;M%KJlL_o%pQ4%pM6#fJe#T&<1C`3Yk^c}{2RN*z=+fW zc*dBWh3Uw`gkY|gjAIK8dR7R7r)A)oiDxFB*?4B-32Ue2;yDmcu%{4gOVvl9naf;c zRw|j54nAenqHi&OrDGm_uRf!PR(wng@9Ao!aQbtYFzz<2 zo}a}m^}vE?IiKTXB$do^7sTeZCs3AJJy_J<<Z{9+&Ufh9IE>R1><4DMQ_VRTy|b^w4Vzw# zX93PK(7hw_ug>cM?9nN1)l4TtT`R^S?(WUu~*3|6~g&Df>@g2H$iI9>Am<7qe_*mp(x7 zrv*MJ7rl^%Q{Q3QUVk34BrkaWL5Q6gKys~w;UDv``8lAD`4AYq=jtqnaTJC#@(ByU zz}nYS>Q8LGoQlntNd@|kT5t{x@23+w4!TsACWnmY1s}c0L<#h{&!c~1RFDML(Cdw- z&=+|E^%vGYS%Xo~;>RtzQPzuQq=++PG-t**&^4)6@E7_%!PP<)Hn7f9i!qNMay1p` z$Ef5xJo+4=*8>AiMc*16u$3IrH-wF3U(1k+EprRQCoWHZAVoTqw^?`U52VcOiaCrY zRdr~vU$&}8e5dl~_IN)Z^*-RAoLX(Mrx>R7SV3@33jBl<#%zqxcWTJID@i6sF~yZm zGNH0lT$$9{Y!6IWE~p+@TL5rE>^(cRn6zvZdvntm9L zpajQI((*o?d0jfvs3_GSOQoi>Slr7rBZQZ^7wY(#!HLF`xw}3pi z?EUhmlDe1uN7FZGIfgHk9C^#Oo>{o0$SaoL1C_LVnTKmZ(ptMdcGz!B3=M}u`bXX& z#w8ePK{0IC0i5l9OuY-dB76`?M_628Yy;<4Y!M5E(_I77GGhLi7N{OghXpgOm%a&& zwD-=sD9aJ4iur5Ryj#|an~^1NH2(Mv=FOk%{=fqTI%wIh++T=eh*1Tg3Lfc?qx6r3 z6;c8j`q#!RoQxI(7P&|k2`QVB7kPFPbnxcN$at_q#Tp;zBh}`8rRaU;JVX^aXbe5G zQg+@~b6xOPGa)m5k4JCM*{KzOQ4kz?xx?6s!Vu0{!8(ie@ht%G`y+dz<5|0+c zBkrH8`(rs@e+T{;+jqzP9r$u5jrXANa89*=V@x2WvXgy?o`vd1s7sOaDwXnQ+Z`a+ zqkrqY+!LH8d4k1~u^Pr2W)72o1yVWny5Zf{K@}S8@Zaw*&`(>9s)5Hecg1&eRrn}c za9WZ4MdaK{c%quGK3&cG*4s}Dl(8#gHrk}$j?rTRb|R0Z|e{8g0K|*SZpLG=@3L45gCe7Zdi6 zeh+cMI>WW-VLXp?9uj5uD!w|YfSVNjbLai&y;O0ob~^?QDXS@e7VAq(1iO6v{|D=y zqb@_$TVg}TPS4V#g5o-*d{8%s_iJSxsBe#Kv+!>Cg;GIrefgl|YrWor;vWlwJ#KZb zmi!^7e;&p$sK56a%(pJ(C;EGP(EK=8_mccu$`0!F?!2R3T`R74=Nu?3-mggw9w|~F z9k<#AvsBvRUB;Ujhp(;OS@8h6_3g(<4oX3{1nv7mL|ULv5|LC89CWLu4{#atcX6%` zaOw4tC0NxLTk{_i5sEiYtcKmqb5Ta%k3`3(>1_?&9M1P{)AU1HaC!=y6m!E@Eab;1 zFpqFvFJ@x&$UdX6B7{|=hx5gMBey_5#l4FDv0H8z{FxWI!WzfjLGNG)e^-0&8!yOm zRD|XZ*A^E@jfHuq=ej*Q&O8r$a@y3K6WU;mZl2;C{u!3EvW!to4~}l0x7P@@1U<(Kzaxo)^e|6{O9ZFEfolj z)YzV1C_@P3froP@S_}&)!@JWN%YD@Yz=)sfVyrP)@gVT zBVF*A8#TJrMv@ReeL|^5%foZVEG#3BVs<^)?jHCvrfHd0ew(B0B69=!kIPs1t*e14 z2+os0l~Dy&d4i?zFY7(}X^0T&3751`I&SobwN?jS>D{CSM@XK$6HZ@HGzEK$9WD2_ zK$iW8Uc3*WTbvGH@#fJ4_4!7$s|An_s!3S=YNn?~dcyysLCULTb^Y_QLv&>@t|W_{ z@Ltc9FEdaeJ@QqQpP-~6*+F8SqaDNiiMqB?{e?Y*X@a6cfg#Kh?>jQVecV!7^~2vL zd5XWKD5jHt6`=y%?eP8@7g!GN+)@kmR$SJiVYIwQ@R}SBjDllEN&}-TDTq5iV;-8o zlr8I95O`KBfo~WqK8MYCy~AF{7L?4`z=S#N$nSJN2CeEE7>>I!Ov^bqBZ8a_EpTTl zx^BT;1lDL3{#)Qq(4fL?3)~52r@(E!GgGJp64^|E%sX?Lz}D){fq_{)n9dAz3(QN$ zRQ?jc4!u?0fG)m+${JZsa%=hE)q5yf{}1U{VsRS9edG_$k5#C1E6>k=HGooivpC^xv&!=7B2DCD z03Ax^u<#5rdl*bF@+A7}4T(iN%Q zErDj$)l1de!;KW0g4;;ZN(a@_5$PmsC%mk1Ll@^K!4*zXfMjR=qzKMSA7cQQNk{bq zP8_j!QE`95GOA8mKM&V}?~1e)N|32YxVJjs+@uCqS=8=OL9T&6iqwFr;rc#`bPOc9 z;0%7PX5o)>1GsRj)!s1$1yD=@*QMjIB`Z~Vk9yMtT;IxH%bS}UpuH>6fr>rNQu%-? zdt6J^EYyPNRbra)H@M^`wwC-5i=IYn(h;<@=q9ggu_|wqw~1C32Upw>?NdcVS*JNt zq@)A-SK<0D(gCRKQg?9K^;V%%s(du-EBsNV?-l(=3|R@+fy^IJY{gCD)}S5=y$Ik+ z8Bfr`^dejUiEeb%J(YD7bmFN>``!BY7%Cdrk5bFfz!Lcs>MsGb81o<*z_w7ga{pIma?915=HSji{)Eq^N^|4T;ELN>N!7oVkEn7) zim3Wg4l2UV$YNFg$}N8=Z$+2OfLnwvm!V6hmjzedAbKPl!0r`fH-sP`!(ln@4jcLi z-Yi$;tulwaoMfW@a@1#fIhfYZ>iwuH@0Y&z{^eA(oxEpO3sSy>f6s^K0LDQS%LmadGsftc<%Y$%&HgQ7+nd5RYET4dmD)JZL8){x+)f@?} zwrn1Z-%ZxVVHX{ytwx50cjJDmxdx?sTBSXZr)BhDCj?!%n8ut@Z&F<=-7MdtG$SYi z5KM7bR?;`ir{!(daO0-1fwdN~)?&A8xaA$uT8nAwmY`}k(cev&pZa$B6B*G@f(KxL zY?1+P+Ve)GnO8Y!q8kJ{ptNNyR|-y89I%)x?sFEoVfUcq5aA9G%f1#zJ6?o#l0-X) zBM;pOZZ1Pr!ICq%AsQA&dN~-Wa9%bs+GJIfvX#*WmZJg5;!{*le!(4>07znk zqW=Uo;odu1a|LQ9eYx(^mvo%`LV*~(f=CwVAFqzPkRz~*D(}Z}lj#9_U{zOPHm@SI z3bj*3Z8W?w4ekC!Q`kz@$lt1Iz&5*K$)Qxy#+ItQNcF%h$@Q3c$ZxJ^>_pIigJ@?P zMz!tVA(6MPpc;!)em7QKgRj<`6MAS273#wd>H#GCD|0(M)&I%n6jn0Xw)aN3v?bZWLJ+ zXE;X{9n2=TTuV=-xmL+)!$oa|s1Dx(XLD)7OIe(STVUa!u;)-0y$QFXZp%8r=0C*i z%|2WlSMtvaiURR68wk{8wV^7E6PriXp}|#s*gmX})QWHrMh9R%vIL239U5GB4fC^b zCyq85nGupsU~O51*|ylyeld5Nu4 ztvL+Nis9-%Wrb-o8FT?TGAcmGFzC0~-3mcc?v_>I zszSQ~1^5Z+CSgOeaAgmUQ2V*;z@4--T@o01E9?lQ-CPe1xJ{6TaELx>hqF!yq2rF; znq@(Mf05gWSw@}x1XF@KdtB%&LLA^XhPxmhz%75p6%3OZM_J7Z=S~>niOwAi8c{Lw zo~+Go`83upOd5o*;iMFmQA%bXxF1Id1kh=SeqlUE9}%^KaY~=C9K?Vn;}bENRLEnM zB5$NsZbm;ZSaTh_b>M~e9dctfGzkX$WN{BVj5#hQK#29%h(#-`x4C6A4GUaY&B8ffbo!rP)iyc@Sn2? z!of5a!nDi{MnR(+HF})aUAKiF-Ne<4BV7{>z!0vywV1J)I+$usrNuCrQH#4S+C&|i z=q8%L0_K(@_BG5>TtNp{OksD0L5S8xaFt&Yb>T*zeJz7cs>SR?!AnHJ!<_kxUEG_738Xq7PEmMHR8*impk$=fksghj)1iCg;6 zt?$HyAVtANd2AZm7;|h8)@8~&A?=VGq8FZ)9EP+J^AlwOTp0Ot;g&I&YM&~ffStgB z9RhrIH`ieElFou|eTTxO8_RMHXu+QHL*cX`aYT+lnpi>W<&*T<*7dPy*oOUsDsQ$n z6{|pBAK_8Lm>s}mTcqlz0CR%@hy5n2j}KvLDI<*6Eqz4>uYtP`2bKD=#H}BIFWd#r z8iWW3R0z?HU{XX3$tT2SLfR_gRB7t44jomnNy6ahjjifwb%BK%1|2bwSbRitZt@rI zITY5KT5kCpxT}~FcLkTFT9vTIw?X4j%q_LJ^&jb0yCno0a*cu@*C}$Fevo=CAEY{R zPuS200iHsc-TGc`A|OFn_a+DpvN(yYgOH_cHaDv15!(xQaM57FI)?mG-@2f6+O<@}{M^MISOQVFih z<^~YM$71y3u;8k5toAyI;4^3!=BzmLNOaVpB8-{6a<>gCI-hi)Lxu`MI%0ipqw9`cqu(KFh_eFl z?~LODBj$ZwDCV5Y^WV)8qlY+A8Y*2hZ_0;D1a+^s9|O^=*2pZhlp^?ic47BB8vN0apkHo zSOBI<+|1&1Qd0x-dhz5kn6f?aK!%dnsNdCVW-?A#mGHr2TvW&#!^Y)`Z|@MPX;`q= zAl;oIhkPf7%o@Uz^UE+B3xWgA<1sYO{BWz9Q^SL3+^bG;R6=P%>txi=h3`{ zZX+vN83Bb@0^9w#U&Q(_c;?jFT=uH(J)*tc*bPa?#KyZ)1je|#5d`8qcPLI?5$OQh zta`X0PZ94Ulz}Bn5Qj;!S0GpsPsB#yQENQX0A6&u-?HBii1;87ca%3=1^P$0rfl!+ zJCTW_UeJ{6?TPy|91*wo9t)hWP4ZsCfSzB3s91UsxLs-g427&Ps>t@(eHpHo16_XG zHOt}KD`~-AtF_>urm{4%ZUcFg?=Z)FND|}sed6Y}%{#PwNKx6P<@2ObWxdPiC5Kz^}}&7xt6TLjogv{_U>7KKM`Hyh^=yn5yUC2|9w_Pw z{H+O(^$+ouQ^MVFMd$v<>4#LEETBuZrcRk}OOR{na7wYW5cSBaDf)UTOMq4V&at<6Wq3^!kF=E~(CnGE6HGei`{|M}5!+ zDTw=S+^2~vfnN}_0TBRty*UN-D|vs7K8!lfD%`vE1;hD{(*kI~nCg6t-%LZ6jh@ff zOr~b>4a!Jbr8amuAcjDO;vtZ!{*7gOapTi4Y=~pbnfD*KsyQlxP#F}c1s^HGWJ`@? z#KtSGb8FKPWTNO#YTldWja9d$;w_~&&TD}mQm^3k|p4IcbyxEX6)usjAe zE?68*HZJ%KDR8d6alwu_?xT1r6ivzPM$cVBjeN|UeT5o$mt?4Ut`y^nM5}Z)A(pmyC4<;%9MeN^BeO0`@Pp1KU2*D=>@?% zrATjKFQ`M}etS|oi*!4tJ}zaJ?G<8S$WjI+vCX&%Q~nGb1Y}%BH02d9N_E_3qyX=s zuGT|v>F6H}xyxDc50Isl&z9WIiZ`uf(nx2;YgRJZ;jCa>0qtZJ0=FF1DH0;22!+stf7^weJX;^jpMtggX{4QCze$0;!spn z;*$$&-@P8q&A&JnqBE&C7Ow$llJu`}Ag;aEW*_m6>^bI4G-UZ}SQR_@1F`k#M_eYK z8eyDU&5Pl^1$u*#grt(wFnh44*wFMyoLRxFi)ly=m_xc!~bB(9cWe-~GYnErrTn>mJ#2cqF^^vfY(QSJVL_Z-cNBIkO1 z=6D#W#r#sJ``Po4d4Ht_USpKC8@#!5geUMC1F7YZC$NCw*pXi3qo-JeZx{GN*#&vw znU`b6j&`}7@AVk!`&QB~o3H9Uo}-!2@>1@isveq zBa7wNVQX`SLpccr;G_lpu6$&P8-E(2ac~xd7O!=n0M|*F3%{!rfLMSTwo3zwXAjF0 zg%vc)p;LIzwg^^13sj~{cz|OU^97A@P|x-)G(l@oEnaALDfsX7{}s6EK2U9AFqDWw z)oY#pmsk=L&_v)7Y|eCM1z(-R)uL6kHwCcExCCK-w2Tb*qc2UCb@ewLX~OKjQmom& zTEs8hM91n|uG^Y!SThFNiur;y0>iF)=LQV=K@4sE($V9gG}kZtG1FoE8I~Ol%KMF@ z?5b1kc&)o)wV=`Z^;1~yG1QB^EZQHz?Zy$I3)NUU9md;hh2`nb2wcRU8J7YM3^XQC z_Lgh36cK@As+Ysc$RYDGG{yOWSt;66?q74AkQ;;a=;M7{5snJ#ak%%7Z_U8wp!dAI{)M|pVjxFg`jn4bmbGDYA@+*ZZ?4cd=u zWASBK^x2J_Py)d)y-~0XS~e54VeYz*;YS6^F+_*)?R(@~rEwkA+G1S3opIlu6ziLP zKXL@|J7P;xs3QWNTd)lXVzw_jh+pEckAnid@^DX{@oZnMxTzuK0`Souy$V&}?gaWX zn88q0{G;hRo%c3XJ1(T$pr^)oP!M#tM?RqZAW@T7@p z!IRb{(|X3O3+xX!BJ|jykuWRWIptH0FHeJg^Xo_h29%Fcoc(>4`9HLw2<_`gL{@{$ zf&VWEF80w3R-H!pE8KQ{YYz5A_}T#s>4aoNLHk_}8o}bNAoy%1Gdd`S^J83P!w~RS zH4jQqoh^i5?7}ka!3HX@#Ki$}yWYaq1It{7c*4RHKfjKH6XO?LK`bNIStEqGhseY8 zvFzm4&pjvbO8WWmt4|D`+Z}HZMCZ3wya|UYk{E|aU-n@-#-odZk&3mmLCeIdymTwH zcRu8A{ESdsI0W(amHvR(vCtpDMu{ugIJD8}*kUvgm<22U6Pt}r{{%1wT%t%3{_d8K z#rLbbj2$p3!Y+oL{zVvA`BN9%;Ph|eNPXc8IK7LMwfza|JzRylvGxT}R>jW*)7XWK zNf=&72RL+a8NaFd@T!o*`#ewdGTjwlIQ=3nmp!m(UwA2; zPj__?R51-W>OIh<;02>^+g3%tT%jQ*n`4c?i{PyAv6uOEWJ%n3P)`xy-ixuaJi999CRj zWwRhFjyxu-cpS8Ibx|+>7N`F*v{HTo0=t2U*%VkBQf6QLp+qOIyw6flN>F+!~MPQM=r&=*LC zjGobo-(}&7V{@~$K!9E^+z@#S^YdUnCN}1$NSvJ6`an3jsdb=k&q=(@f4NEFJepVJ~EJsN2~$Ke?m{7)2@j~Vx%SYt9>D@-of z4@xSokIoAIcZ{Hu6tqnzHH-kmy(c*GADBz0A@>X@Ef>zqfQB-pG|^AW2n^)Pl4@Lt zF(5D(>0Fpp*bz(>4Xku-HlBboa;~$`sKy@GVwm_QE;4R+s@UhYb14S z0LwU6-{Lu}mh zj#bJ)|61UEu54i+tdzm|lmddEZz=@=#d zK#Ap0JmVx%#vZ)JgGH=AmJ!i91YAA4QwQJeMF+cDQEM+&bK^gv0_=@(l1f2}Sm&Qu z^E!xH$vSVdP7rl0I}nd2=WzurrUvZ^yv8HPPWEvi&~hjsPC`A!`#j0-@C*_C<<&S} z!hh1hq1WboD&7w|DLH@p7&ICi{85s!UfllB?qal#f~@UWBNnzY>1%)1x!@ft2(bK_FTq5$vY{q}s+aO*!uE)ae`^jxYH z_!Fq3>faOud-aj|$`@XF*o(^*zE@M7dQr@Wm~fCY-|r%0;=5gE#WiRY=7?OhnIrH? z^PNoQiz4Y@o5Q)_6hsXc%oT%o`u~JJ!Gi9B1vvoRfl*0Hz};2wfC2Cu3c|ZH^-y7O zP*RjV&fo4qBX}*%*nxS2WeJB&&WbI-RqueRSgy_o2O#Z{VkzZ``CA@*}uy5&%8J@)7!UrRE~UrOe%+?1|3 z-;oOQ+RAWM5k2Q9&&6;+oj1d|+Ux4;(SL$>0^-`6XjRvOT-wgQz82@8RHy&%fVq>& zEy!!|KEYWS_&cUT1xX0JO0_hfr|!o6>p)N(z!x`Z$*)o+WvqY)a>B*{%kg<}G#X46 z)phYVvewdjh$55xFssoV*J&&F4}l7HVwE+!3C5MP9Hf&1=}dnKdhJf4awmsdQl%zO zahvHu6Kg{}MEpBUrnMPZ2@x0v--=~4#WOzSE@2xojGp*|_giq#F$<;vX2XZC_paHE zeA{^)-oN4jV|={k?a)OV%>CRBdX_Epf8f_y@1IxiK{N4}&CbH4ZqDir47R`}?Qu7&z(ydNsw65LmibI`Z|!}Lh+@`|nifm#*qi0X2__*Zse zi8lalIxD!pM*orQs2}Ui$7|w?73nig^098k{<+uLDwOppEdE(;*G;&de82H)<8538 z;jT`vc^2P$t3xg<=F*01HZ}xsw_@PIA5OK3eXLf< zFZ{eR8mYj$lkgYEE(JLunDs*Ey>QfVWo>kUVtevhU^~3MIgZ$&tM~>I_X!13JvhXs z3-TK0JsJ5twhxGPaXQ*XLC%4WUh*0|&f%@>qSbh_o?WzJzLot^e0|0veP1YjZ`=lj zl(Fvpg^e3?pkD=fxWu%E_Tn_~#wHK%OXkDCbm$*6ObqNj4y=%IEGD>f3;M!XkVIL_ z9|#EIO%sNov;Hc4V^EI2GYAd-5Pnle<{2InPv~INE4Iu&rvM+D#CLu)=e>tPch_+_ulcY`EFwo*0?;wS@9S+1dpmv`s-pa5W|`G4-u&ov#-W=ZwlAd3w^5^ zj`K0Pp_(veOW$xifHOpXtlSe^<|={R=hXpx!i@NS1F;l>*XLk&3J>z7hp762XZX6a(|-_- ztMN1l!QM}S_vHT?2*r2$4rj$slv9p1N>2Ykr0^oQf~{*|@lj>|DYB};pE3^J-7&Pm zKY$6e+_fv~p6cR!QDYy$buMOD7m!bZ0Y(@d(WKD7tLlb2)$;^j_8Nb)a>O393T$;$ z?}_FFqjk7|aG#Xn39fKWM!Pui5w3M`k!#!)s1QK~4c{;#z#sgZTt0CQM9l&?kRTKJ zv4j>&6fuFE(R>2G{BUXzjd>(`j&1^K*0M>*4LDq;AvEZBY z&_T@ZVWXL;1z!-Qs;_|qV{w%64JN(bXgSJv3L4U4f?WXS$AlRdV^pO1piqc3fh2cX zBXRm0s6NpaaZ~XJpP9ZtNskhz+R;^}RlpggPHF*#adr)J&r4GbT(+Pn(VuM~FR z3QW+Qy%bmt*VwC(WlRL~FnXFQ&FOzbNJpFyAJlMeEq?RlEyhbfk+3-~%_#X3M)Dj_ z5UhPwjH!b0*5PpUlpjQc>EMtrrW$ zO~%wE!g#+&@*r|5BF<+ap6YS&o$uo)-C;y zSS$2>4Cy;=9C=?@zZZWGny}r(htqIiV^NAP-WWe}sBFu4`~$TATD*PzaP>g+Z5-JJ z^!=7;P-7Yw9ozq)baOzKc@8)l8&CB|7`M>Ps4;n+4R00QQv^2tlQlh{8)h-;8^8L4 z;LRW2u-dYC8m{gUQvu^XHuN=Y!P;F|_p0v4WsIH*+vxDmyF;znAszGphGnA%r0|IG|Mf*61l59ODfCoWvs9dq(5jv7`qH4w z1p-M%Z6%`tPGVE<`(cueDOjqY%jM879Eox-CXR8nz&kvv*XB2h4~X5jv?DvPU=4HN zl;VIw(=8}kPG>VXYr=&j_Ct-n*j}&E7k9vKdYhdXPH>+G>W)`QmdhVff}8 zHyqC*iEj+4!MUdqri*vFzlgXy^j$0d)a_i|??R>g)K%W0{HS1eB(HP&FF-Z-!hSBq zL-CH|Yv+sKKml;5PF$Ma7X9O8Ai0eNwvj6`bLWyf8_zAY7xc0vdu%8j1667aH-P5gZ60 zE(U1PVywAgfs|K7lS-i1E1u#e(Ppam>2OPmr}%S4uL%xq^6h&7=wC~zSgw4vNf;D{ zrlvLJeXT4^aXDYgf>FVJTX8*G9@vnQgfq6fc=SqiBjr#UQe2tlUPvxF-s1hy^4D75 zPK|!Q)Mq>pnJk z$5*zT{y&H`WPBtRZM3~m|EMrHpsz9DHSD_(d>Ke_4G;F}UzoS8!Qq(sYma_1(o@_M zVX*fGdtHZ&nZrDJC%s+EpJ~6k%uvd28(g+qXy?~7UMqHprKbt!CIvY6Yxm-UtQOyv zsf$*g6^)C*bs?nctIM!0#q1otimb@DcLyK34l&?|tGU98k0|ak`Yc8zoQyiv1}$&L z^lZov=8)f;X~6fU6yBP_bnG&&J|*@5Wq(=&Mz=>^TU&k=EO4jH7x4u$!O*L148268Ehh5zNig?kr(eW>VPV|&Dp$$9I7l>hA=%*O z^kEcyRKLGAmecIe*Jd2+-N8Wv%ZCgu+k^2Al&UjLrju5H|Tx4?xEiW%D(Bg@;Etzx4_!8Zg11 znv;;Ov>3i(4Fu30`74{Z#QA!Zj@YMp5bXW_atKA7cfGd=o@ALYbajynEk5~b5oTPE zPYTUwgIU5CcLNs`ZSw?{F9!P~ z{p0hKi}MuSydh8Mm+WSovdmsYqejO*O?xo&IT{lY1!3uU#ZcV93=!ff(?< z71Ia9d6ED1IuD3p1F(3`g}1UE7%l2m;0B8KND3V5Y@7mAJPp9tmSpi}GwL|~L7)nA z>e&~$gsF+ zJFQrKYof%&`X`pfKqr}fxh7+OXQ@c%d@#{$2MsY9i->HpmjlS74psgT`4;~_MPZ_083I%o{R-5_=wV=!5% zV(I6AzntW#VVmUlpize48Du{~@TkBH!D|!G6(YvZ1KXA=Xjmt77)F64)mEb4B6juN zi?)6nabbgb`;rsWPz}6NhYk>1?yPtZRjRYaoZ4j^#?G$#HVfdL)^5Nseqs)A*IkM3 z&s2Y*`&4@|Il$=4gYE6SqC#AhRRixe8Vhlwf$sfT=nnTWPX7=lpy89vZAw9nII5X#C9Jt0OLLm=XI%d~IwD=2 z{_g;ZK1560vHzl@>hV_dMjIxusPxYNq0*RWrCO_!ckchzi#J-~*v0dw;qKJ!DUD()$8h8)$Rx7wi7{}EUfa+UXs_U;Z0*q@0j zRPMn_jXlr?O5lF9MTIZ$o$68cW#svZm2x|nnU8Uv<=l&W9v#aX#{>|Q_%udAt)td> z7pLz)5@}oBfN;QqKvW}J*OEndloX?LgjA9Z*gl>9gamR?SJX%`Qu~jr8 z8_+HWky&x`fA7ZjyH$4iU9T#w26dUPcIdy+~uElr_*v{3)i><=d^>Q}*N z519Yczi|xhd@&bhNZ(M^w<2;Mj$#=Rq;Ez{(0r5G;nPX{j?>yfXi?uDKG7|wW|;Fm z|Mjgn;|RBRnY{5y$VkDrI;Do-q6@D?Q&JdHB{!%_?fB4SF~59B zd0>H5gCg0A^PMo`E<`C8uI|j`v}-?MgmM2U=6{KE02s2xSv;KJV!|C8mKDSh1LeW% zAgOp-uYd404!-`8DV~d5x#GD*yu-mD>mmWKaE%ksRjyL;T<0pslK}*Xe(r1{Glf-7 zhp`B}O>2Y&5&c6Ep?p)8ca-A1X!WFJ^nxJ769C6)v;RiUXJ?Q3b?nA)_Tg zh~LhJbAdi~iMK-hJc&~Sf3Pg!7tRXaad*_ArG@8E&PRn6+(qg#oc@tL=&zBkeh9Pag@gYqQH#kW+yNkI9qg{e^C~o4n`-5mYi{7;uM|b+|Et!Jj8XmZE!&~x*{ilNjpQ_3M zWP`tlpawxV5R4}m#heu;{^GC-jbDo6R(fT*)VY`qQSdIXp5m$=2h)KgpCahNAr9nPr*Y6% z!heaXfBJEwmDXN&Lsr5G_z zH8x6|CLwQ5^+7bkH>h4)W~tNy}wKGU?m^YHZ7-B zlMX>A7yer`4Ns*K2}DVums_=B12dIzE9o)8*Z%mZ(++l$s(e_ zql*XPh*`&z7k0k*JtU%h;J~ON1+o2kG2)9ggsJI9tXZQJ?VxRE#otgK8PNtiT8cL9 ze34NNh@ZrN!~_53QBO{Yo4&!+X?$q;W88-y!yz{U-d@LuNraXs29DU?kbSuqdq9P} zg~&$W;2UZkSQNXn?j;TvofYNm%YJ8Fi&t+}uK|M`k)}#dz&_f7ybWc4h^ zbCP#f**2V7$suG7U>2VF(We@Hj^mR{O6O(fe_Ld*-n8;S3_m0dmz6ZGg2ufj1TA+xB%iHh~i8Hew7ul7|(E>`WI!lSCI+b{tC8BMwWmH?$^T@A$1%FWAYs;U^&WZFXac0IqGLBW*`6 z(5;);6)ZGr#PfP~6?vZ_FEAoEj?T2uAFvAk`!F#)4*vTi$M~zjKaq;St^Ur6&r*es zQS=9mP0zvg><_NtP?Hy7Re)pF#X^Z?WOpG?D0NfI*;jps)zb(;oJH{e$KJmOR$W|s z|M({fVg$*KJy>bA?Up7sC<#GO0|v~N1a>fi2m!HPLP&N3^T+p}@3WQ6 zea)IRYu2n;bNR@sd9{r$91&e>qq7y=_3$!U;_X<#R%4=uUDt?GYseK2l!z98{Tb+V zD$G#&fwe61TDl_*&%5{cS&&bYk*0D|;_2x4M0)>MZQ@S^C2=Rd{!~!@!)Dw_#@#RB z_rGxm@DPZ@>U!Jesxx)nyF(o@th(JceJ<&}MqT2x%pfvP+0-1>@to?IeX2TMwYgH2 z>o3YR;Z(U&PB;Djg4B0?*a|dqldV3}Chj)6z3r1-=MtA-+6PD|?)@B}Q-}xdzKcF6 z>-*d?mNs>pN_($4QQ8|wK!RT;Q_hd6Kwx_?%=5LKf14Ezmvp}po#WqlJ62Gh$0@=> z%SVj%zQjZ4nZ0L@*+2kIi4qY{IX`9!@%YK#a%0b8G_BfsD?;zc(>f2K)zbdV;>%Zs zZ~c5?4ENUO9GPh3rRLcRR0$6MxxsLmZQK9sr{QQx6`EF#`dME#y#;=;r;zEAA?|}r z`@5ewmPHf!p(IG6a3$NOA7FEhM~2X7d<2SzZm#6OJ-3h6ZIZy<|A9LzjyMh6(~Vb# zEsZ@^Lv9B*Q$t4T%#-_s4H%Ma29MumJ1x+Cxh5QRt$lK|Vf-6Xu$jWzqVn88OY(pyv=|ExkR;a8o z{3>vbW}#OgWT<(T2#&`Fx^K|r16?G~huBDdfI){z&`t+@B`EQ+kbwtp73b7u73*#0 zeE&8oG>4J6VRRX7*8=sA7*Um|1!dpk2CwPz-)a3t^2e;dSpEj<&-b^%O=^Vy9qXCi zKbogdm_mx<{BZN-`X9T~bTzh6$$A^^s6QPf z^fdk(1NwLiSQmA%R_!)dB78^Ob>AfE6vVw6LOJ3NQuc9ROgAtVQ_BAqFwDs!lz%Z* z9_~xHVEN~PhyE_T>^(m~XYBTh%=|lDw1GxBI3v zYBouE_J@@RCr`x&tbLJH57|{etcq&em=!j!rkLfKKV_$AU`+`9FGw!jz{aqd6!t}D z4S8K;DIM5jHm3c5S8w%Z9vNfTQ>A<=h@H&Qf$hhR7q_LP$KEOoMqfX2Q4;L`2<&JJ zHqbp0yzCBl9==e&F=r+)&}nf0ceFxc`YdyZS=#Yh)2`^4K_iD1#brHjBhKCczNV7L zUlb!hWQ>D+j^*}gWwhLfb{wnRmE%+Ch%W!@K{@M97jX#A1`j|?*@;917M~FB5*C?rx|7|evf7>B2{-?!(eH%>% z0a=eS+uvfzi5Pq45m=Wl_56Q>SNw0ALa?iUgy7EFQ`h|Uw*bv2==PHbAuMB3!O5-i zJIFS02>pKNa%s>vBc<)ZmaQy5{V}&l9Pq-YzZ|p~!-4LrK*XFLFJ@TGPsENPR@pvA z0VSMe3hria$n)?29IdnGuFHCt7Z};PnS`=F^w%sT4+b&4jlwvivCrQ|6CYb+=rR`E ztszV=HW;crlB7!i!(jf$4-%L^nZ*2{Fs}eJ+ob);giPA+Uq*u81_^EIzGP}4ko}L5 zs-7@-FcP8`yY8UxW{GHXwkn=o=^F@asrru83CYQaAEyiWyHt`SHtuc&f zI|$3Dw#T>|&ECqewY7T1EL4i|3|**%Q$Ag?5`kIP^Zj2O#jW_@gBz;VJw069!BW-rSUM@}&7*GqE_$hk|I;+uOzAz3X;!Pj;ECRn-t~Td z+t0(u1!q~t=Djba^%i#*{o3D9JU*z;&v2(8 zJ@x{Hi+*&Of!*)H(R{sb(qmmOUqJ@{Z&W&} z=|x*XX6$$2zS}6z{0h^$^?G1?x{e<8{8!gYfjvh?1-AE`!CV~J{%&CVcKJ5UPbu1P zF(6XId?M#pT1Si0s1SA?y{{w)@qDgD*ppE@MRYKRL}UHA^y<={_Yw~e{cTCOuQ{x% zeA;gb_f`dmb>9hqn(nK`W4fcBFK3xuj+Nx!1o^EJQ=Z1Ialc-Ap)<;R-YT8MB=?U0 zlzN5ff#)UaQ*3nUoge7h+b(nWjc=(1=Dov+AahyDyZ(c4IjYl~eZ`lBv9XOKqp6JJ zE&x92zY&$FWB(>__iw1ne*~ex$>8`A9pQ$>x?WES?JEw1d6xmfqVEv#B15=0zckQ) zYam?r-l*GCgR$R+I`0V2EbaMWD^LU765RbW4dzGvBUE5!)Vn%N;-_dOs$(f%ktJ-i zX*TLHVgHe2_D+*sF5b4eCZl8gLLn>egZ z0KlH1O?WN`y%|{dZ;a?tI9Us;K=NO}m-b#^wuW};bg5r)znwOoRnyToTDkh{{|8v3t z-B6?tTBKk238?8&Flh)F?kjXbAnf1YMhqXcO;l!pKuUfKutUv!4VW>pn>ei^@5thx@KN zy+rSA93&>(*EKpQhiO8=oTn1S)0Rj z-BJS#K`i}WmrlNC8W+t$>rjGB&hhAMX8vIoCS%V0gxX zwx)2}7tCSS83)>{1r|XPk6z=qvDnealY^x!KUEB-WlB>HFfT=nN@ z>N5QqJ571RgL%7+_)9YKz!Jj#mzz;k-*1jR2KGMT134$+~Ii`HEj_ zXdTw*KVd$O%cHU8kcGA-KPmzZc@1V65zr1PvWy|b8!|hu07vfr>3Lu*u@%JXr*~SE zN!_eyT>bv@3KF8}A-=v>7AQU;5qh44={b_4A90i0i+% zCt3$HT5)wSqrt z#lPN_$49lM2G+sM+-t`Kb?4vXln-?O8xnj$pnv*BCEdqkPXk5ftzstnUrRzK%N33+ zx5t)?=3?(Ujy?p9D(L0%o|i&9mZ-~hgxntEIUOI<*P>OJB=txhYXlbe*U$>jAJ<|D zgkae3=Qol=Go@DR?^@DH^DtMH5;gQ+4|M<8MCv{S`+1^7p!qu{!gAKr_wG&Oj3YJ0Eq>Zxr+yn(975C+P`+AN{iy6l0eA2QBzB6%9~1 zW}Bn_GCTwCvw%j=(s=>%MMvhzkH+mo!RB0UVEd=K-TPH#Gu{exb%{<3AOr>=CZ8jp zvhr@j4d%?btgT4!^Rl{s7p*Ow@#gBP(%y3d+yCqMsQKx!-=VhezC+!5x7tsaagcUN zYUzw;SI@y1n@zz{S$lkx{5^r~okqJa5wuZRymF9?N#(fpk$b7#j0c^3H4nu`KVgob z(zN&x*_s@0N=#g~EuM7Dp1>Wt-rM;uh;dTYy!Yh}t7?O^j1NVY@omUqQp#?Wa?4Z7 z$<_a<&g3ynjVxJdbszLW!xMbP(j_Qk_`k`>B%{)Zn^E@FbgfKOkya*`HYDbcVdpnE zTXE+bITw!*l@o|yNn+QW^okLL(&6=!P?YwhpZpqW`pJLT`0U1(^ZJc2Sh#mpdcVZ2 z1bV#`>sRYdKk;7VglGVDUODVdkU5-3JnGjeoy^>R7}ltxt5kvczrazkWC;Ryqtz^_)cF5+$NVnd1=lSTz?ojQHqz z5rL3NI$gFZ-9NWqwU;8kw-OcT{wq>QGrZA|Wh8oCVyWlJa)bbz>MF>fH(cO45i7UG zX4?-%8PmLQ?^e-QdRZ80wFSTWcavPGk#mQm)|1hzu;^`8bZ_E#-0S`%Lyy~^!=A2C8xM-Wi=#7lpcLLY)`s5>qY#c|obTiOeV`p?;abZHouFR@6mP`MCSwh_X zI9;dJPqBHbb9rE0rhz8Z-YE`DJ~rSH)+WQcOa^6Wrw(?N_55PsG(t)Fptth$zF+6s z6nrc2!Dgugx8X5zMjwucD+h{AL=nx*9JlRe4vUol9Qm0HUt+_7?Ohw`hT@(dAHw0O zmqHE&{eL$(g(PTvG)eLk3f;q-gTZj0F`7MlES?4vhKSi82N%dON)*O9iFuH zZ94!gv$vw7uV!4rfzQ=~x4Qhu<%#jL{@rxXyR!4vTyIKw@9aSLDrM)RKT>kz{{1Mw z99X!pymvLLY_Rzb$($`sFPqVrRS?@t5oS~6?5$JI*b`jJXXw8eiZ9I+7p@_{84u{( z5=cYTsOQh6raPaI+!`X0c_PyP`qylWPE*GqkhEOYPyS5j$9v4inrN+c^-~s+NMspv=+{lFb{RB>wr3Nr{bHvKyyroQfDrvu;=1GfcEGK;<^rD)ibxMD?vi;>t= z6X@Q?(^JN5`J&(Vwg`QcuW|VAKtgWE2D+mh^L4#Da1p#^_{QAWF$8>{zEL;cLDInX zM7rhB8)d~tVJH|OHvB)cYeAvA^$3<3OOB;;3F~o5Scp??r<()D7wtZba$^h~V5v9J zH!vAFj7qy6-71=Kc^})9q}9j2YVnywnC3CmWx>jE{*UcZNTfBWEd!TB_X>;(4_p>!;gNxPNUj+{Ws>_#L}_`bxE74WsUU z`y*1M{qjkNLw91X=Pkj{me-t+;LDuI?uh1pUO6-RTn(jQG$F1TLg@?|UOgz3*YlgO zSTUM-Zp{|%f0La4HOozxbfcuj{f`r1|DuL*$IBtwW8li)N!u^upM#t9$eJ7P{r_&% zm>2!AKQ)L)8~eX+V)pwDK$3*{tS}QAW>Jtl+wYF`Yst?#kX5%?CHT{-D21@%cBZ>a zgC_F>)+<2Dgt$J<5q$?*StfHLqn8J09vjtnr@4^+tMd;eE~N9i+)b(F7-3TO4%qAH zZt@Bg@8yWa>)xJl*YDHHX1uv(+>vVT2Xwv3N6+7kF4f79*xOR`%6o4QN)o*dMpUGu z_HqB2+l9&P6BF3ENphS)FtF}^y3ExBh$#+g?0bnBbKqwupfc7gTDT1UV_;z3Lc#E_ z+NXA}N*@TlM|F0d<#1K+-5Y2v=Yk!*b<8XuYgK9QmpVu|UVLE|2SK%sYo3yl{Js-Y z8*~qJ9|jrh+1=b6eB4PQ%NWmDqTjjCV~ia+!^qPa@0|Q`kJnAV@P!Yvx|F(eftaaC zT|{?`K|^zxmiDd}I%OyX{W<5M*dkoQAQSj$an9&EbHGP8TjxFw_k=)yQy15JyPnJ$ zm<;Rn>-j2SzW*T$_>9hishGo9bcJ>thMUZ(gZ}TS0^C9#mOhru72bY3b!J29FLJnBES*$jnsXOV)Iw1;f8aD2E%M=*M?O7Fb& ztT@WzZ01C5Fd_$k7CW0g^}(+(NC4hUvMB#8LyJc{fdc2iwHlcE4V5S#CQm*@ntUju zC-_^8-8Wy)E&NK%{oAy%NiWCF8n`BdcNO68*Wr_^@OM5kUiUSoMBgayn>_wez4=_; z7afoJUJT2tNyv{apsKfN;{FpbHhs;?E6{zBnQ)v6Im2J`tR_BXE$u7fM(5js?H3ny zACFGPpqsM#g3^?OM>3N7PT7pdc#i`UU(trCR-sm2-k)<)YhMbKGRvFCSnG*~RLp>| zq?3%^Lq!TpAS-;pg(Z>|KIp;{%L;1+qWncJeAtC0os}*@GGY{8^At?=4aT2XMev!1 zo<#u*?O1(=L*y20VT(t@{&>~(qq4L%aP6_0VjuD1RRF-NJC}=h3yRX z(iiC`+m7rLka^Y~{_sAua+-}wX}Bx_HxcbWMCPe`*bm*;vv==Xsqg)&_o0W(^X4z5 zu`BxPw?Z4Hk8)^?kNwub*vT;T@{Kxj5D@y6_f=+{Z64`2dkZhwZ>b%*Fx2(Z6&%;+ zfdtGNJ2%jMMH?O&uTqS`w61;3f4>TJZ$=!jKM-P-dlvVm$$Em|%X{Oax;_{mJq>?p zYH07@QlV5?&7ty|SN6U));!(Uks8?kuZjxS#OH4K)_JO` zxNjLRGX3t#4foj~pDBKSG+!eII7M9k4fho)Z(l`PVBK6se$PSkmXBCU16seKa`AP2i~?RcdB`M)_s@S7c1BN9M)d8^vmMd(_mmiF z{zU_G{!AKq#y!eF>%jJv7*Sn2wyKuEx-T&&?Hnp3_~;&ET=|jv zEWF>FMZeCgZZrvuz5b$4nz2aXz#|kMV+z~x=my_o1J|KW^gn<|5>gxf16~5XC;bdW zMS>|4bxG!lN&UC)HFXXi6SBu>{#$8Fgoh*;$mvC}ElC`DSrww&>!?n@_o)PCF=DyO zovzb8R$bGBa=Q3xa{5n#xvUO*0B)`@`{Mv?!R&faqV#h~;WbIHhTMP{nD9JsSs9||%{a~ESgHdRze|Ltp#)iaI;);~ur#q4?% z90_bPgfy{|K4>fjrG1sT=GN37CJp$H-YmYq<2UZ5T+L)N(SQcNeGHm){XH$TeN^DC zX^cZXe#>^3@b6nX#xy3IKnRFDd|R9~TCb0U13wEK;1nzm-wWMosdHCvr+N)EVbZj$4T=yPT#+uaarIZxJ%zaE;}xfhSNK zdV3Fuwcy^gd&OiLn}6WV+ajys++6^SG*hU@{5|rx1##qIZLwDDr$*K}#{|iIT+Zei zI7i*mw{#Sp(e@SCu$Z0*Y%j}7(?hoh^w8}WDZ=fL^raBTO-%_YFnDBcaQr7F!}Ir0 z070_w`zkmn1qwcq81L(TN+)%`Ws{dfwd5BK(A}QbCK<)Ol~#khKb_X2N!61NrTZ^N zcjkdIg1RQ$tz*Vc>AUSK(z0YJvnPz#Ni^uX7x3VXudz!$a0b=Vs*9Hl)}FxJY%IEa zUI{F2Vfo3D_X0n3H3Tg1zW@hu^h{dQHPV{wcP0eA=zbt3@m$9axsw1F8M32{-hC}` z{)q|$ClQ$dN43bU*d0mfF{!0X3akk?3`8przg|RIr~* zsm>+S)Hl%%Yl{N+KiSvVRL%ONKb(-~gFNB?yH=6hpm6UMg?a|K%+@nGtAA@EGv-M@ z=5p!s6jDFsk2-$A8w;so7&8Tgb}A6s@j6u6`B#x@Pmmp%LR0V&d(Lf$&^KG}%fvV} z4;gaoJbX!!x2s5$IJ6M@KVo8ae*cro3=yD6(0{;LJ-4`K3Ld z*KDXYhWciH@2&ZqHriL@cP?PkyWAog=v%|mTf4c+!wWDWbo@*#pX)ZVywzp(U@68O z{DHe~;I9Ihdfq7wTnO8}4U?Fd_!WVBo+g0N`m~>22P0&T;f!i;VV0o`3gr%sG5^vp zOEhrQz%K*`)8jf06*fvL4>F%ess1A6JZ~{MiAJlz)?$|+^{;3dGd@egJ+rjev~C>- zI%zN#1f;biUOJ0}0X-X8-t)(Shu@Yt5=-v0hTsFcK1LtAQN7X%y6$h$Fb%MDAsOht zUqSnP$vTE!|0gIRxpClI24{_lPBQAJ^Ew^!L}yDi>ckgD*X>}NIPsduHyGYnWIm~e zbjXgcTBbg21>G+x;BO&^Y_m#GJte5Y9A$)*^ndXMijcMB0a(slXc?lJ zkfuXufXV>#ERc9<3d;C#aV5Q`>Te_%-n);!maLayp9= zVV5h=-E6dl!3E-JNE1;uQ#r(mYGYvCz62(Z;u(0JKV^MQEYUgb_x&BT+5bd2<@#<* zjKv;t=lchUl+Ed}lnrK+FR*o%e&n7l^qy&D*l;yvbT*)MKzrRsfnfC*|8u5%SNyCfS6{{j zx>qYtoK2o$Jbb_I`%F#_upa&ym;+#ct|{c-Gni&(tQpkYe}9sgMMC!b>S;LnUN&a2 z7x-gM(IelMWEJ~H`JPP zh^7tvl79R!dyaqUZgTwZKMr9l>Ql9e?>ZfJuXkpOH>?4~R`|#lIkeU1KO0sri+<-a zSqdVC2I{iAUBz$9#=iut`_#wg|-Vs?g6Sa!|U< zx$HLICYVVFg-6IOE77#=;E!Fe{(RBz`roG-q$iRZ-H%x`4*USg?>8`I4ApCzgz^7M zV*GJoyiOU5Mr5o}#=)`q_M>FHo{UZey7%|deV(r~{Jrk4Z_onlca+Abi?%0M8f!F!U;OeKbHi}2AX#Lx8^Ef z^pRZ`NsIyN`hLjg&m;{m?(_iA>%_E8s4-I{>8V4J`(yzynWN&xC|0C=V$)a{cdKC+fv= zq0A{6n95gEIVVpFINRaI6LlfPM9kl6s!F7>QM&&aqH^GwG7Wc#?!sAcmBRMUJ|AZc z_uf?@ncCZ_`ALhU)c8TcV|5Kp%~jSxwNXbLKN&xJ^sPZkn6&uWJ8vPdziSy#^y__C zPr7$;eQ#}OhZ@iA_+6~9?ZGDqLp5sjD7pThN=&1d+fw}|u1Fp6eL7hbs1-~e7fnSSw-?d2(++h7^ zHM*dB^%G2a=3Ht*o`DbSMZuoG?iOyGn^}fC?C?&Q2y>Lbf(+cR1rx|< zEb37$HD)!ghd`Kxup@qd6Pe3UUtd(#_rR&N@2&~b0{eEWzj)7n|6N*DdPT(bd|h2r z+H==797bC!g-d(p75Kk2vLX3lr!ey^6!MAfy*C|byRAV<i}!S;8Z7=H(v zKU49}=?Z3q)1$eiiIFt!r)z?AsQI)3{i=aM<0tsbZZqPs zJClfH=FSbY1`{kxk+;?sb7;OWb`il=o?>|`V#DVuoJzRehQ|iB7o{;f6~foBkHLNa zT?c`xpXRNif$!qeI7cZfRCBL_b!3m)Foyw!&4%l6e#gHFpHSfbC%CWNdzYTp2=#th za42#2XQjp0oVc>@%=~Z-cSzm~^*k4z@m_JD>}{&1cL(nI2!Rs436iF2nC1?Hu-S&tu2e>+rPKpNmUCbZ zf~Rnnt9vTCP$4IGbY5QSstSd6T*!+BJ8M;*Mtc47F{FQ9B(2zupUPD9smhXEUYOzSD$XwO_k_C}c6em8Po&Syx#11>AuGI>OD1Ar4-#PYOn(S~JKp zUkC8XEc4~r02{_K+eNa!Ku53x)#I251`Ys|@nQxF-OsQXID*n?^?22r7yA+n8%izA zkB%yw8tWl04FzZuE;RV@xoK;Io}c&m1iliA+a&(Y zcPYbt4~uEg(R)nTe-d6we6ljI;XdH20H?L$y|eDWBglN^Uu=3H?%y;^J6+l`4g(^2 zZYy>JXSOtF4mq>6)04h?-p3RA?orz6&j*f82qqIwfWJRAneeG(f=8SD2_*Q7>9d`O znb3EAE}1%Bsqd38cpk?+Mn3QaeB<;XJx)F_o~D>EcV-UDF64K;8Ze)t()*1k^tg7{ zzD^Xo;m+*C^vl?#aFVUBC%gnJu# ze2sStFj+NnX`<_iFxpNr8j`8}_Ryn@Rx_j3sqQ0RNbuW+GB!6JMT~j_?QzI>CcQWG zzUq+k!n{O3UH#6>UGBjWj=K-jfDVw(=(njZ@b;ZhIIofOoG0q zTp|0;A~MLP`?9~Aj#Rk-$(`(?GFU!|mp#}YgCL8+KZbgj=mEk}BR@>>TF+ysl7-4O zKT3K0 z&cAv=`tlyet{I4X03!h#4A;E7OG$hzNS_G$5sMhMTKGONUk4`-cVzFl#!Rf7skr+_ zNDOP`&=ysLah6N*^j!EzhUq6Aa4(th-tASLk4#qSaXj9Z5*rBj6@S9(EEp4eF#(p@ zl~LXwo+zU2>o%Er^y>LU1N>XyciQa$Qr~WM{T<)2a*2t~)GwytW+vk?#K#x!G4Izw zBUN2I>93_V@9{AFPSd)Sed@g|_`;w7EEcEC9iPA4^>PtS(|c@1CY{P8*+Vo* zyG|wSC9>>+HwtGsIOH?WU-<7cW5F%z5HPxw%sPxyz_6k#@>3q~`Ta#48RffPi?R4} z-q=#NyyiXoWuEnL4@!yuF6gjo$`1A2!3RifOBhmGVb;XMDf|7WO@=`C7_}L5Z)nER z*niHro)J^??rn2r7|zkgpM%f%vx|_i@MIZQhkPj~rte)2M;#RBcl^<`0gA#!E>AD~ zVVI+gFG-~w_wQ#&z}ffYGRDFr=J?Yfgk!Ds-)2VG*(ure0!KmZ+CNAK`?F^z z>2@hNspJ;?14wh;QVxPf@#!^1@cv91-Twm$YJZxSBM>YJ1f+y8rfzs zCL)=5h!j6KaQp)b3BK6mdR6}!F$pXYC`P^xY)Mk*#Uyo>r$U_|+5GFM($elP$<%hp z#0GFYDb@1JRv&2w6`S4bqdx{Hw5i!H}Ry+<7(HgPS|Ns0|@t=Htpshw)!WSz6RN1 z;FGtgit$dD?5rd-iKJZl3t( z+TW6%XLS`f2M#mukWRKwj&6a1dUAA|ajk3*OyW&x6aH4#VdL5(*?~!1vY~unk~Odo znbWwhf*@jUSS}9kuq((1h=!kBNvk3|t7s!I(A~p)f$b|J+%@Y5Hw6`Q zFEP?p55RA9ta;$)BI2-a0NvY-9QFKF3?^*CnkDmzV16_oxZZ!-?JYrX&kfbQckwxj zQ*8y=Jq}*#+dUW+>R7I7a$m&f>?Z8WBu$x?DO1mjb;{2dEqYnIkf+ig4|7R^)KG`9 za2T_O|E36UP-8#@x-&?X;rCU5l=iK+28!)^UQfF-(?k2$Cv6n_*K4c`!JZdOd)99w z5bF7w7W`B_UFi4~hRFl#)K@6R>$P<5dA+o+UwzKUxu+iIBi&~l3~ewe{@cn<`fSy$8vm5mTR(iF~X$uufkZ z)&&Ae4>GR%u0^=_?3?R@rZ*?V&ps|M0FW2^<4+sHtQYI@NGw8Y*HO(q`i|vMzjiuj znO^jNfg@ZZ7o);|O;qdcSAnTdPdy$#dq3bf&}*2#cieYZ66)J75$itLA@@4;9rWpGdM__&^I$1*n`E}GD79WH_wV3(FXW27$<1CQXLIFcN?=4?v z>;D#DC~8%W2M3FrVoB70nNPWMD7UkhEW?}iBX!YVY1YpBNjvhg)sOtKL=TZSnk|B1 zrb3=JJ~Jz{a~pEh7;(>mPGJ_c>1qg4)L-#eGjz~zqsY%rjRvs}R^UJEKG;!2=1uu< zoImCZV%`{X;fY|FkFr`l9cjmBck{q^c>Lo1r&EZ+f9*Y;3#*)5vHK^xGd}~YJP|WZ z7g>*DhHXVovk?2PB(Q|%F-+t79_f4i2T4ghNMgR5VMe>;<{^L&k$2tZI4rGs1v1#l z$38#Yd)oJI4w^I1^EG<_wB*BdHz1XjdW6Ek3ymU!dy7e+Uc4b;GW4LRA^+NZqp!Me9l^~#4K3??@UOKI-znw`(s3u z_fF43TZr8@FqRPdf!--eFXegzD#IJ*rIv5NSRDQ-@0&Mjeplh+UNp}v>ZQBQfhVOX zLVmt^e|1BU_f*@Yz7jFNxA1ZQm*}68R?lJYfqe6OivJo6bZ?>hGCuoY)D(ReQWET& zEQrnCBq{;y^ocZ}sg8W=a8?BW=*>zJ5BSqpssXDy zn5>plu^Hp_2~TUn(_uZ`S)KCmgNW?gZ?FL`dcLM8xZo{AA*l8XWW0X}1ZZ1#Jtsui zo!Vy01-c&~ylcH-O*d zthheN+VfWY>{kuAB4GCwb~2+*eRJ$J2b;cyOE+jJ z(hYp>16M!!H(PH~r!bn2eIYXy>y<%?2L$RgMo@~%^nnOAjj<)@@_MnJ2`thJJ%vV> z&{*N&k1`em{k}7TxT@6?yLs@qsI!%=%o#Bj3&V1blHpp zfxBKLpwV0r*nVHu6J!eo*az!6(O!gX?RxodT_@V`?LXt4;=VJlC_dxoJf9x^087*c zn|sY9_51l?#hr}6I!VK>6O-+S$BMc+hcKELJ1#;yk3o=Kdvt>CP*!rt!_x29!qR_6 zQDNl!Z(d3kjzW<_31NParEkZ;WAOeHPpl_~|32d(Bs9?IL+EV?dg^Kt%h4&5Pm zPYvzt=7nj_rhf}$g{{_|uMAxqXf&!w2M%Uwj?wi^?+ovK zHO-#}9EKiNWNhzfr~GoWhj zwdLJ5LyxI4+&BJTOZlZ**-7hdBx+%uoEZ+0PwpI7Saqk8z+^WK=X$L0z4_6lC$ zr}t(3D=}p~KNenfdw-rDu6Y|XdtIn!{OTT)XW%ZwWZh)bX#D0L9K8i|sn&Kc(Afzo z^d;nJZ^wB5&_#AC?LJcxw`Kaz(@4#&-BXAVGu@%F^hH?N#C{*Ej$yIg+AjCcpqC-3 zgwE9C_K~9JsAZN1d0?c#J>LKdC*wZd)75brQ8g#}k@S2YFM&!|C((iKV`M}AFQ+~* zbO+?6+UB6nNq3Z{n%P=}YxEWW7)E~5qT@HvI=79Wu-U!cNTvQZA=G=Xuu)ZqU!ba#*Zm$EBLEWG@$XL~XK%qK|8o!@W1hD8tC0eO;^Sf!%B7IiU>=`M z@fkG2$u9&$4vppQrQ>AjdRW4ebzd2@7+ClhIw)rt3a=oy{1@v<{Nwuq`H5c>(Z3wg z=W6sHBhgkB&LZ0{0qft5kHysU^sqa!{Ep<@kA@-IBhcLf{jY%bKWoc;b3~aZhm~2P zG8HOwqeZ7!=oCm2H$oyk&1q`-%CJ(OQmK!tRE}y|&g!Cn2W5CucaU!H-$4Xf+NO8kMeE~7ve&m!BdKeHM;46I$9=P)qL z8K@J0^e?3|{hQTrD-Qe!5!juE2tWUwi9o2QB9~|2_n_CmA<;|VQ=}>{7e1wAOUzSz zs>{4174FOZ%tB_YzU&D&=A9|?>8>H)?cz*N*`z;)daxEA5AXeZT4~R-Ogt%6tW!=O zm;Pf+&U$?{6d(VBzSkI@aU{n5+Us=!SEr5Hqv6%uMtu#H56YA=Lh@Ph6|f5I6uZ6q zxbASi!9mF<(jOKbaQqY*D}3Nce`k-XMOlh@eL9*s0NG_R~`ZE1_PdjWJP;R z&8kQ=ucd9JS09bG&YUu3cw|XiTZ^gNtF4Y!Pc?rpHh-s?ztg=d*GA6wnybC++PuX7 zQ?hHbn}_bIT&lE2H&Z#S#is zR#r^$uB0JtwyK%I>$3AMY`?*)zR0^SJAZ0^W9)|DbrBH}x5n0<-F`#R%WkJbXUd%! ztf_8pZixmPTL6^ZZlZ=n*EKYo=+*7bt!)j>(Ym04=e4(1*F=J|X9e>qkzL~oHm$5` zk5)%>vfC#G>#7?XBemij19N30s_t&CZi?g#OI*=XySAz^(kx*0bW5a7A#ZBlWnQ?Y zJ?brKUD-ygD3GAn;z&*IHIWsI4g2I?6C zvnFO=GIi>8H%`1^q8F@Q0db=B!{X|o#juDW1=NF!7ncSBP1bUZf*Z;{_*X zPtCu0ngyQBt0b3kj_p7LVlX;M_*nC*=9V?hriz-Drl#s<_dlRR0{T+>p^AfFjrc}qhp za$@0CUPU!xp}H~X_|^;6)I{3ba}{iBY0M2ZHnyzEUD(#JvZ2}VVcyDHyt1M|u@ON*BMiJ1Yon3&S=o)Xx%~4Mz__JNt&I^$rAV!30eTa&8$0qypXim= z<(7k6T|=ZccQN#hC}u%Rb0oLCI$BeYn3$41tsRlUFrI1t_p&dX)^11jG)BqL1nQjD zo;x&3^(Wv%PBS#J^QXn~1_M)L9UaMFo@ZL2%7ToGl8#nr?A5gf&xhA?R<|_N1}~hH zKgqMBJSY*;&_=ta=I7_uK)QzJ7+-!crK%-4f^*Fvv!Y;X-qau&4at>p+!(q7rmc$r zA~C}9J>WFw&gO4Bvb?rRU?r7iX(+eU)p?6c7A-AVRJ9;fUNQ?DU2xIDg_Q~xFPyWa zyktRTRU%@J6RU}gixdT2xZL zu(G5oR9w7hNU&l={w0e_mAZJ&qSA^=*F+@dVAR~wvXVs0D?*jws>(&71&hmQgsDY1 zE*6A2P8?URZACIIq;Zg>^4bbRGH_dTE!ZzAT`d~A(#kP1Y)Y0aDkG0qVO>SJrZ1tV6bvm9+CrtcVI>ogVUDV71`UFk#(FCn zSLMz&0+$|l!lQ->F&YWdH^J71)`;QGx|X(8Id&|X38B8Wp)EN&6;m5)y*MYkmicio zS2AwuV4Q?fV`Ny-WE8`|W;BD})Vr7&B-ZYgwV+c-iYFMu3`VITs@v!zYgTyqQ!k!2 z{gO*BE0|HeqNX-dmk`afyihD!-_q7_iv?n75%eZwHe#G=8uDtITO<+MBJHh=h6r%; zqD`&dnv1;bi!Zt4x*KQSFmuoY;i%XAKgP?e%FUX5`RzHAs6Q9gAa_tTFp{n{nwt=c zo@Anz-B_1hV-R=KtwbG-Fbz(s8>WBEWa=ipU{V4w$%;*rgI8nLjA=7&C5Ps=#F}fp zH7hPkGUuY|X0(o`Rmk!r@yjDnr8cMnMg}8XmLLgQrJtdcAQ2j>gHdty+?KW#4YjpQ z#V~taV*`R}F0)v$nWA;3t_3Yd)_@5#Y-(9O*v0hSDj*j}TG3Ssr_|1DiZw>j1=X>$ ztqhzQ6bXj1lw(Ch8RC(QEp2Nxkw`oZM&#vr*I5CvaM86lK(eWItIXeW^LL(?jhtSQ zn^4H8K3ct^F*3VwiZl(J`e;+*Y_B*`Lr_X8vsaL&GEEFgD02zLHlZ~Zts07N{?sXS z{S^(FZRHtOGn38?%%%tv^eT%m!B8lDRErCyS zLn}qz+J^R;>b8@FxU}LSf<4-iJG(j7R28k4dTS=_e6O^5H40B{5YaaT3#XiVE7XzI zZEI%@`X*-2m|>NTWFj%`o{<;{6|LRqXyeA@=6Va3l$8bRrKv4mTqZq24ARitpy?mQ zsn$dDQ}T+nM)ymMcdPq5`69Nazu{6QVJi=6s!o+r>e2 zol}6lj%oAfhs#$KmrX6XrEFFGjCohqFDqU%YgUp9Ev*tMX4I{zZqv#{ek01@aEU;h zBOw=u4%5bl6)bP^+FMxGtf*;Q+Zt_AAUl?q_(sYqnJkfJ^wgGSDM_B;;z(m88mX#ALRLvLHJMO#BW^YgH6XT97GC?cOvaHEJX1(GiH=IJk1LOKnHEL~}GW)>JXMp*?#SI%>66 zGuvwnR@JpdBF3X)t!7+G&C>`o(UK0vV~{mI#%Prxx(UIjRdqHCBhEy*(I@}vi>Fo5 zU_@J0lbKCS2F64if}~0#KUo68R8_P!tY%=bO0%7w7|Ti-P&qI z0n9$7shx3H>*YmS+lR%sBG1}u+8Q8k9;(c+w3eD^B$^94k?JNd@224eZ>nBhohW!y zJIc+_+Dt@VYi-@IScUVbKd&u1JVD{S4vn>8`Ay749mM8!w2w$~kzn1_I*pNC+t4zl zsWr0F%WGL#?ZPc9O^`n;8&Id3V5=$eXTO>L-YZ?_9kc?hjegjRbfQ%yEx zD5D?++E=Jo8e<-#2^7~1@AHn__Ih-yHPx#l zxpj@z?e(BfzM)*yk*k=zC=2S7qH~GNL#>iZH6nFILo|_)*9u<`FWZEQyoTwag;@e( zH4f+Mj@+j9NJmWsVhZ))MTr^O*u3iM8pmn!hy1c&HaQM3-n{DeIu{m2auv+0UfnPx&hQJ(nV#ShGU7*%^yWrZ zc;)n5sI?7utv5f`%)ds~G03b)tG5sw7QmOq*o5XRy0)TnVU=bhl%!RxM{R^;nj(;d zRZ^fUWs~xXqL{OIVOiDUg>$YdsSGY&SanrNNkyovbZN=S zEwjY=r{o%(_k(B#!InA}WKFDsE;mMFwN`+@hsnucgcZ~((!thPW23XVerRrwnQqX| z7;KEJjx;7Lf3@gOL8+z&?$EW^&@y%jL7z%7PAal&tjQKF1JrbEnrm{kaCZtP1>M5^=9bo369snSWVHS2#wM((?fA_S z9)DwOqOo_me!_y8Sk}+R&w{9Kc6Pf~qQ*-UDsHP5q)L`wE=5{mZ8Z_8hc5fDD6%kO z=mMe5V89YT8#AN8o)mBMBBG;AT*d(DAd+)ftV$;ka4X~_H8Fh!7ha_tE+vuKVorRr zm7I6t*QOCVvs|i z80>7_C*fr&b~0j#dTiZhrk7@La$OeU$aW@*C(- zX3A$A`K?Wkm3mt{0@m(2TlQz9X>7j+q#)YlPjcYb2 z*by++zP1(_=8YUwFFAx{ABr@$#8%cj31oz&lb|`-G1~`|JO_du8f_I~r)jEgM66;) z3L;#!qp+f3WiV%UvV^sN*nJ+lG9juZSBF~05(31mISubxF>QuoGT{)+?WbV9h>HMq8$`>rGxO&mz$|Xy$S$6GbtvPaK zeZx(w8k?G1T5oP^kH%K7=~#Qqpvm$g-DonuB%V`|pNrQtus0!TU%|q;1@j%KIg8-T zU~*GyIPbdjabt#Wh1sFQ7R!iw660iW=$W=%91Ctjf`ZHVDDNRj6D znYFV%qb~W(Y>D(CcxtBkFzn1`=_wJE5IrS^mfs4MKD$ukeRg5Afk|_Ascbh=Z8RU- zsKWN>T2i9*!OuxDYln6vM!LpGUG(zX3a8jq47Ub~wc^%K9S(?aA?qnBkx41YTBNbH zx>m-)SrhXo65YnX`q_omK`8*UCSK8;T{Cg^0=5APr&MDUR@$)iTBRrU_C6#J8{ZRW zFGkH7OrK&ZQf1oVZ$!{G&zd+51nP;K5`_xN;aPkLCGgQiI?-qd1{+bUcJ>9$Y$acA z=rlB9c(mZT*_qb~O!Xt+TF3(Pe+>H{>b+&`bCoO_ru4db#%(LfY+I95{(`J9Vl`1@ z#=>&TCDOlxxiEy8hO{{?zu`@AH~T(p_Ub1nLzW$E(c2hirYcQ&33ytm=x{>tf(u}y z582BnGa|-Fo#F--xb4`ijdA!w>gS(SCfTe}FB3cP3HT?s&#jSy_3W=VvdkFXNTg`8 zNvO%=#^`8+9rgc*f*pIBEk9h|yQ2?C+-c*+*zIte%}#9&??LmtvoLe~gM}eTx3ppJ zfiCt;!O8jB*EZK+&TV%4YQdHjH?bT^s15X^_H{(YAlnWx2BHPTI!^lptUm?~`8n2z zILXfB!qTq8ToEn8j77dFhERwAm<&1e$n079lhm&{IkDz;1VyBF60wD|27{|PAEF&j z^b=b>k|0RcLAzF(tTj*W2-9u?Z3OKV!|+(46ELgJLd%Qf_CFydVwt0h)_ck!;;1zZjFJH ztzUw7(Cd6`5ICQ)(K~-@eX9Y&pG5zRG|n;wH8fijt;xzkAK4C2OD|3o9p=W;LMF^v zQS-Yl(}tU!n}~0B;V+DczsH5QIycS1dC-L)cP?i-&F^O}{9ETH;J@g?N1dC1lc@LI z5&2KJaQaymUk<*TU%-X4otuDvp$pG+ZUUb~e9?&fB`#bsB7TVrSA9r)?TGjW7j7RB z-{HcacWwfo4K94|i2RB8%_HK!>cZa{5&xhIZyyo=unRvqBL3$td}u`c?_Jn;ZUWCl z{97aPzw5#ujEGPBi0!8{otx;Fvt0P&BjP{h!jqhvs5cQmWkmkzE`u?ycYBL4~( zzHLPO=UsU7i1@F%@U9W@yIuHaBjSJQ!oM96|Dp>Y9TER07f#`e8~P>acA5)++_?$9 zO~ij{M0}PD=Z}cL#D%XI5nt@WSC5Ea>cT6Wo8X^%7j7Sszr%&QN96y43*SE?|G&BL zcSpqkz=iuq#6RxBhB&AAlX8kUMRk5i{Qs}fb!J6V#eTLsRQlb@G zS(P@}hwh%END%a#W6UU381H048CJCn@x!Yamh538;ru~ul{x%s>SQrn%l@%BGi>qE zuDaQsH$^|?UG9C>>+rtp{lt65d)GTFB|l}shmptoZ%5Z(JNJ3#{?55CI`@B^`TnYj;bP_i5o<~oRty) zd!A|VWP-=}8_qr?4l0=Q1+CGM)w^128tK4jl@v^On#Al=*ETj9-1JB3=16=ZM>55F zU_Q3TmBVdpn-ZK9Ic5G$MYhy2G*|udL)NWu;cc^RICFN&xoMZ*hY(UfoOt_#_+k8; z|MEe68*caeAH>rUL_2VEaJT;LgLoJ>eRMpo$JfHRx@NW&S5GG_J3SuP(+mf2!?;`1 zD0MJCpplo5%4m9d1qr-{HWm55(h#6y_y@ zOzw3az%9Vtd=_wVci?WtP5($dei*j{H=hY%!g%1|7T|8iU52|&;j?)Si+jC?aC2}c zoD+|C;2yx;fxDF}I_a#O4{-G-A9ooy$|@Ab?Z7>Oy9qbUjk&Fg$32KUfeUz((4eh4>=dknW8H~mcTz+HwrfjjFRxCOYIaF^k3#od8>0CzKQ z9C%#8S~dfGaJS;N;&#j=9rqCKF@-OO{u$7N>xu=q9o%JEj$3dA@Nf@t!RZ9<1YSf8 z2Y_1&eQ>wpZo}PydjR(U?qS?RxF-}ppMJ^&?p5)45$++}dWFlNGwuf5ZHg}k&$DRf zLh!`hTtUCfy$1YnbCv<;Bf!Hg!rgo=?Z6Fx7CdlIaOuxi_y+L*7ut(kfxF{I`Ukh5 z3cB$y)S(*ahP#6sLK|=oG(un8Wi7Oy$9GPA4!m#=-3DH`TkixfKKos;4tTi!2GZsB z&`#WrFVKHn^f~l>=!IMVAo$>R;BLd+fO`OU>wiEG#s38QO&}h3IqqiM4&1HVX)kX5 z!?YLo#3QutW7PX7{ffJFFZJQ(JVt#y4p)zxkGtW&!3TH3LHY?-Kbm8HDYq>0QaUnI z&OP(=^i3(JXDa?Y{vH1F2k{GS7W4Pi`8_Yo<O` z`GwQ6CJKOH7V|I4D@fB75z5G1pE_sU=oTs_sPtO?Z6N&(3Ccuz+G{DwQASiZ|CXKj zAikWjnWlY9|IR@U`u{79v$tHSC2LEl8`=QFwj;_?yc?NXqjRv-&C-bk8d1V42t6;L*Ta3NW`$=^Z#-zdMKPjSYCuC)0Xds0%bw%J1&>2t@XRwn}`rmHmX!s7+vGl^fLSc3;}*Qd=fc-&~vSdc(m?bG$n<>bGBa^C!|)7Fo= zI%E09w7%5TjWn~=RH=N^$yYy$F^8Xgqt>UDWdt{-ruLA__JXCC?&Ig5#zWyY-{|$H zEzQW^II1u0?$p$8kasQ+)gRsD)7&s!^$xbbI3t*rmO_*1LfXG@?9~Qkykrv|k5Dd? zIpZGu2|QZCqkRY-qQfiX>mc9drd=CP>l;;mcUsr!S7#KhAAL`1>Rl##>iQ&qjAstp zz}&M(a1B25)F1FiYGbkoLSv)&=Ni;#wD2jTT;>_^`28w3gf3T7LD+Se_&qB4|rsbE#zd{CF{+Y;b zMY#UXhyNDS-wsVf$6E4jC11htc8`#6#kRkfr@nE@{&w|BUOWUm={(<1y|lyi3+-_I z0@b=km(qkg4Ed6MLC1;?f1-Rky3%i%8;8(g1U^pQ)~DTg)+rI1ZwMhe6iWv?A9|bd zwSM%*({9YDxI68h)UMO}Mx{1DjfG=14>Xc*)5LiE^Z321Gq$CzPwh%eU1f%!;A|w_ z`*b|spmameg_0}qzY!IRHU0Y#`NHJOHZk^(_~9wymlIz;Bwlb|A$~LQZHiwcd9^Wh zUPe%2qSy^fPjo$#dF~kbN|n#h75;GiUYz9j)kBzDBgOtyPnqUPF8N*|I$W2rToTlX z&+k#wRkkM4AxgdpTmW8y-;USo$*_3r%|MepypQyH(p!}d9(@{j8`F@7>qpJecnxRd zr!F2oV2jE66y>&1?r)5Di+`!`H+(UOKSL{RTI!gSIK#?!(Q!PDS~e*jS9c_Siq``y z6~v2e5uw8=%jkv2&o0@OX&y z%_Hzo{8Pkl84)jduMoeL_|M|^7MXdw_;J^Bs$&#-hfn&`ZhUS`HS;y}?iw{OW6zao zyO@O}8;8u>YIh;!HeD2tKP)f$u7{g))^_Gpm^CrjR^97H( zx>DEB?h3?dx>rfmgQVw^zF+Bv&hwM~J1@zf5?wc)+`XZ(4H@|-6I^^dinYjA;F=S0 z3svuO$WtoMwFx>Y-(>O~Cf`?8zZsv4G(K+!Nhh7G{#8jnt${Ww-@J^&DXHC#+E#8x zN!Qw_*2oKulFE$ER5Mb34=khGh@ZbgzD(9gKXLtXx8^O!&u0E%-s&1XFJsgBY5zhG zX{Hz|>I@w9(<{K)z}iY*k`dkR(RgzDrI~MyemPI_cV5P}^HbkHrM$BeUGSzeln=2+ zn~5B?@XS1ND*3sL)~5}C+=nTwg4Yea1FYHZaO3vW`mdQE=4EuApEmc@@Qf_eICutl zCs^yTv@-hdRc_q8LHse|M~>@JXTtx)k5Yd36P)viKTN!unfQqhrW1dN_+Kk>eiwS( zbxFNW!um?;(YU*we4AKfhLz9o^R=Wd9V?|%aBd}i59yC9-RPU>hkYMco@5+2_o zUp;Ho^OX-}@LI}G#`_5Ioy12KZ}c>yH_yvxO}!D_4BefP;}p^|vb;h5gXAy&hkRh> zy?Gf$sVC^Qll2cbV+dX$Yv+TknGGL*C|@PvwE}O>N&1Y_>%)wXphX&XnK5~6h1$$*%Q4PZ+NkDcHj zMsIMrd5B`HWYhoT_plil{oKfbyOMH1@NOl&mGs}LfayQPr1b30l+^tr;E7)zB!6&T zJpMi9ck7eR6eBm1OAodC8S-r666eXpvBqX5v=?(G+v3(s#&NBwD!FkK{Q;D4i_oSvhj+Xe3=B+|(Zd+C{zLW4+ zCl76>f#>Aku@d_3l<A> zA^&pT7W@X&ZTjh_?03^n;nmHboUfjY?^lQqj)>19|3k!2Abyni z{<@5crgNd2APjK`-bf_~~sZA#9kWkfwi`WDh7 z$@Y%WbIo`(b|q%xRI>^^1%^h^HT;i_d(U^`@y{je13)S|TqZ`Hxu|h+mBvr=eHr;P zw_>ALgu(BYWV-NcBt4(>kE54ZzL}rY!;SsL;8$wp&!*J0`cumb(;wo4M}X&HL+`=y z=F9F-mr*2}gPA6lnYzUSuaK{vd=lsX_xFD(@P8@r|6K}fnp9*O-|E~1B_z`I8|mr` z0z>0xx$v1b+Dkvb$oM4E^sBVe&ttpJ{En4Z8~0onPRPrI&H98(m;BT(kTf?o#L0Id`>l*E{!1&V9hS+nu}5 zxz9QGRp%ae?&xe+zjH5e?xoJ1>)fTzt#j^b=dO3|mz?{6bGJKppL3sc?yJr{?%dHA zxcZ%Yfpaf)?p)_Cb#9$=S37sTbHC)=2b{azx%-^^oO54w?s4ai{*0^NxfeM1Qs>Tf z?o#L0Id`>l*E{!1&V9hS+nu}5xz9QGRp%ae?&us>zjH5e?xoJ1>)fUP4`=TIA63=F z4d1(W1G~v4*^m&j8%jt*QGq0s5Wupu7-~8~=u3^LM3AB)!~%kf5DTKHV1>sDK99X& zL-aw#jvW;NJJ`j-_y5nCo2=32d%y3^@0YzZ=giERGiT16a?ib2uQT-7P>?$E3CfB0*eI8Z2BC|#=J$LiIMi>{ddn(nv>dM*7Q>68D5oH@Y7&z1ipeT$~M_IHbaOw(QYuPFYe zUR^u5cHXP$&Gr9Q(_MWMl8qe`_1c`?E&qRAL(1poXE(#UH^cii!v{6PM>fN2n&C5= z;iosl&u)fa-VEQ^41cs4zNZ=fQ#0Jr=PKO#j#Ynj@o=;Jyk_`-X87o4xGTrK9@TTI zE*@-c+RMeeHNyut!^@lDE}wfndGO%=SzW863(h!eLEgyPGp5d)o7KBV-yXfX7c7v( zf@2IWJATG%%v@{laS;*n?rW~Bzh3XfHnP&&=K!!j&BZN?ENrnU<0F4Y8aX_+Z+<*J z{@`i35Hm%Ow`FoRF20uWyx1)kNM77=U2*VyNeA31?-~WG*Bi&TxOjYVnVpbvH|Ds3 z<%5vn@Xlyp#Q=imcLaE`fc-iHTqy(@IRIA)I1^Lpz$HR(88&hQmrCjqbnw7swUjUx z%lE))0lQ#Y9k@J-)HwcpgZ~!%K}~%v)1kTZA||eZtAzMA%&`Mki{Pg*JrAs7YD=H< zFz5m|3(2dfS75V%t+1IGxL?3t==_0)1f0#XAE8D*Up4wZY_SA9&coPB4eSuv$3UmV z=<6VH(jX)8^d6vdc0rG%5kE5Z36z)orqrq!bxnLuBy*D{csx`6yct#$JZTsB;+Nyz zMR1^i5M~7jk=Tl3**wlAwe4#;WC;%a7g7@5fzg7&5kU_$N`hL!Q3O3XRv-&H1V-0vzp11qDUd))T zd4WJaY80Gl@`8cmm^a&CX@S~oV72KUO3APiy9R6cU5WTt{79bPk)YJ}EJ>BxE@-Ol zi^!MScCnnNVDjKX>Y3;bF8-mB^Be(%^V}$uHFomCb%fKgoCj!vC2xWwDL;7ON;;L) zbUDdc(?{WxLGe`9l%FsPUQ9AijxWHo%)ylg3kJF(#0OUyEF*9nZE{IE=sh`EfiKY| zgO?hcbPe=?M#0Mr){UMSmkrJHgXcdCfu{Pa`H5Il{mUg)DzWATq?$?)l1k*Uf2Fg3 zJwdT+x!DdYTydmPz*S9FxLT~>3}-dgy$1?sTNi-WQI}-qi6eD_>xt|RR>FsHq_rtM zdZ2QF{p~F)CBIHBvkrch(x*W%U*H_nH|2!;1PcakVBU$F1Fj-1jj$o0% zqo{vMl)cH5Qxf8G;do}9&2TtA3A5r`PZgWkgK=In*dTUD1L9sM7_L3=8GQ^d@zY@d%pjg!`xysW_2oq%1 z-x^RF14--Sv(fuM^K?dn&({sV={7|S1eDVFgRGO0(8l=!{WY~~CE&Pe_~E}82{LX2 zoRNlu{HXftsB9XZEn#t1;I0_V8#w4;p6M;Vz;Gz-VnNF}O!+f;kUzs4%1=fh3Qa*A ztM`O@W#QrtbwP}&_l2y^xCBGTqTTAVLW>d7>$h8>51CnShhBko>%ns>Vuc;bhX7Bg z3dMRuKZ3$%Ih`Q5b$%GX2}d(=fFb>-kI`!bKf;;Pe`fWm_L3Z6zn8*D3;^$fF8vRK z1q0`x9n$|aSVo`*EtW2~gb@J3ouN&-Wt+^d;i;%hx~*t_cp~L^6fFvGp&&=mNO&D8 zlpd#ONq8DnXrX9X_&0Q}^p=W_4ex;4r2Fj-u$d=kO1L#@o1S2I5_ER>d{iSnQ5w^e zQy1#Hwy}GI$H}R;!xb3a(=+U0f?r^V+rWD1A^SMU zc5*JX!((8&^mg_D!B^Vh$0)9|y;JDd+Tkp!mS?k-ot*V{co~93dcNYD>~I(67bw2P z4)-A5Q}L~KxDWAOHa}zI-fJ|A5}Qu#eM zNlmq!N8wa$I!=IoZ8xEjygf2*MsDai^hi7O0F?2BZUdha8UffF%D}`RE);P`J|PaCG{ow9FkOl&*5l6;`VJK&vFETpcUr5n>I@n^+Nk_;gi&U8`!PTvFO8g=ynHnu$%{Btjyd& zG|qOY=*#S4fw?_iCz^Ro6sfdL0@TbrwoEW@AfDK925VtC+dXKg0&(w3=-ajzW0Nx! z(V%T#igo-bsNEDwb$lqf-DL>?6N2ch-gc`i00%BbKW?|C8$enqp(`W?+wHxEStp~g zcAvP7Gz2Zu?$eG!=m{i4M7w=`1@i`ufUDgBG9ji|aoth$W+2jlEvB&JFuuT&;bU0#tyJ^bU4wV7kL7wqaGcG8uU5!FHTcMy$Cu8V_L%TFkn{J^o=aK z22GkZ(}X%Ja4%HOnneyq%t_h6bOIO*91FFwYNM#ICnqg%HTh08lo=3wHxx`1A*{R)KF&+3b!K;mJugJ(8o5SnQ~kg?EZuo$4<{O2=AgW@mVFI^GB@v;&1( zAwD@|Vo$;LpOH_1y9$kQZnT`{a&21O@5YgArVF$G3tKbg$VS zV3WHG77VOlfzcAdG6E~Ifz6sESXLm9m6%f}Sl56Dy(M?S)q>>*lHho`OH5u-U=-p^ z?n=gXPfjGTpH*7(nqVb?8_*27SAQ;8S>QhAZSZ1B=*bxy_yx_Cd(#ehjVEVHAh#2+ z+YL5b=Tkh-l_H0_e7-9HXFrHaWyCqX9M&$p0Y-3oJ8WarG-ujbi!G;*lMeAt&Td~0 zp8B+$LMIjB!O7X<3on7`oxaX{a49EeuP^)-BsxXT44BKwIp_=bLT7XOIp@JBPR?3? zI0FI2>F-=A_BVv78eeb`>XQt3RAX{u32{$RGX! z(b74|VT)oo_J*@e#drF{A5qakitqA=OUO7_@!kIL3|Pz=qWByB za2Z0dGgR?C{%|hZ#VOYM?DdDcvb>X3--G^ecQ~(8;&7elc5aDibo;Gj(}a@%-%BON_W zQe~x(LYt;=UIVs;Lc~JvCy^*hEQKiYN#^ry01~w6hDMCWiKir){%Dd__dQ53y3;wE z3WlI>g@aC&!XKox#U=YoG|uigr-eh04fjSTb6Pq<1bKL3cr?-+pJRHmFMJ)6F;*Hh z7`~8x7%zT^*b%O#8znd&Lm(%@fh?c_hn*XfN>7*}!bucnw2~+MIg3hm4vQE6;t3z7 zmj#`l1+RC)&yq1ky z+BkoRyn{}-6U^ykDF4d%a1Ogm$dwl#zKUKJR{pi|VGnyrrsCVReG5+DAQy{^5JD7~~kA$%X}ljRJ8shyma3E}pve@9o}gz!}~SGMLqlo0+1 zvB=5QUba0U>|;S)oHs@Poe5~Kcw+&Cm-pUA!}xq3;McVFcYtF2qul{0pOG7|yCZCc zW!Olx=^|{@OBhy@bmrv?`;nZRthqre*PGkQo(i^5Au3>n`k;~R&;iV2JfRS)7}|}B zdqYz(@WzEM$B5K|Jag?eQ8?}T()CT|J(Xx*`PVLY5Da55}w z_a(@2;zTHE7lj4$wP!4|`yDG-h84FHWiU&I8{6Q_6x^}m9!GwE7e5J65yja3xuETY z_ZV4DPfs~=J0`%~c5BucN2jJSWqTG=7O=5;dloR|dg{^cdIY7QQ|Q@@BxwkzuSXjq zr|ztIh})iNnBH(&*LlJGsi0ls;pwd|fSt7-&WyUu$1C}r1`p?g`_X0_~hTJp#??)40SW?s94CnxuqRLqZ@t(wvvDR438e$Nt^H*^U7#tO{> zg&pFv-=5GW@`skf-MpbGFiTwMFk(TAPz?xMhAxA0zR+m6ov|k!aWm0&wxG< zac7~9w5BJ>a>Q>SIY`hAOoqmaVAnZ7x4MG3W+1g zpd@*zNM!```G$h8T^GpoI^|9w^1~%GV}%4XIEdAC`V1@LjC1OkcO8T{H4djRbe>aD zTW7q)DmoAS%$eZOC84-=Y=-ko{ARKZXN`W1cOy@fA@E4NTiC8 zzDj5d(}$lz+c{q+sHKeIT+|nSfU(j=gW<=ior`AV;Kj~OXjaY{)0(iZ;Rj<`^D)my zqp$Qh(ZD(uEA^Zf(0b-TBWHSmRbe%60;w}2V04O@Y0^yL!(L?gQTUKEOL8$jc*7e> zJzMc#yy2Ayl}@eV^>Jpkuo;CO_l<>4?y=hSLc<5~Q0*twWEaT?3rvgiEe?3@&-7kj z_*;~ZK68Lgb0;80lB)Fn6Q)QTUW6 zpRQ`<{fFUbu_HsKeIa=A#ZMMXf5_iS@r!YGAL;MX6VG-?Qy?MrTa7iO&Pn+BE-W|4->3l@e9Uwu9lrszw88Fkq#%=uW_Nyq{cY+q4>zFN#w}?l=GoilgMJU zd@V_|%-h1=o||f{aT?hAV$|uJO31d-=umn019l2hZ8ord9gzH~G+{w1;X=f~f>hE$ zbvjUYdo4rWNV5TGzX=-CC?lm&reM0@8A*E6C?idy^rxu@XBai&5wuOC49=j#7tUuM zS4jC6aS|~&Bg|pLOqK|ya5aVU$=K&R*xIScuopmT^Nht>IUyz281qk^I z_H`CmY-IKOxsk6|44;9OuU8CTuXMxL-;~umhR49l(>sQzxAMRuJ)uBacW9aS24l|m zwrQ3sBo|`X{$93atv+GuezRlS%b779-|7NJ$0@{@aS5}^h474S!yyL}7C**|38-LdC^ z&h#s}8({j?A5^ACYqYlS56-pV(L)eE80svt%B!8z!gfT^H3ZOdJzwR_sd^0FkGJTY zkIYRGdpN|Is(zHnh+)F`M~SRf!96}uer(`vgg+73>T@oKo>5-gUO{anT#oWKh09T1 z8nqC8VU(8?MYtj8lzJ}%h@Qo{HYRM)qPxA7DZ|C;j{O?)jZ+P83f99Z$^`4-RH{dJ z__}X6X(5I8-g?^efH?Q+coNP=(en$KAboFs&qh!N`+LO<1r6-D+r&IppK1y?fXLSe z%*GrCB!EK2_hEhCWL0qr@{Na2riUB7CbOL0*6}mZ;g@@Dn$f<5TF4I8axeE83jPbV zor}HPcCqrZImeulAuehs!S@a6j0}?I*U=YeNQ5n%zsPcCW{~6rpEEn-Lx}ByXB4{F22kZfkj>IzyK^zX$}Jrx$|M1A z6G#Kxr#-6dB>HT7BCtZ-U;q*YkFiXmk2Mr=r&AoMjUb{TD8))6YhEAZU@O4%s_!XG zOp<8o$$eGia&#>CiSCswBS}F&D5h``zE@*8K|{m)%?cNB{pX})aE(|n2bFeOiM>QC z2d1`Jw9$&FXyv!ks6(HYoj|__gZ&A}F@yS^q^9}Io}|Y5jiMxy8%ab(Qj(QM-n_e6 zzXR%ccTk$lhz`h%$n=W?G8*I`;2?59T(5BE>8R5|;C4VmOHud-w1A;%7g~2agL`qNFMnrWQy!J?N$&aa8gO|nu6{i6w*=KbI)n#5$ z%kDGL18h$l+ujH!L%*jD18DvvHt(J`(jn=R@3dj}DR_qL?@6*1vArPjg>4gK?R}K- zut}n`=ksg~vL&?0JkG%RGT>y|GUD|4kbURwRNFpE_CDMUyE~OIROV#3&*DrZ9Sa?c zP`1(W*fy+_iG0V3GWjyeIkpX*!pd_v)Qo$1XW79cr**OsfLxt z`<{LFaAG;6H9Q#2X(} zHuim#A)%meI^iPBh5O0etEhH5cKr3Ua=0v=}+Y$mkO{Q)Ie3^p6MN*f2$rM>|8twd<99}AL=*$Y2pcXE?jS7|P?~`Xo@Iy`D*H7>;)4b*C}4WANk>zkETt6u>PKpc)S_TLyvG?9&*^u; z1UBz*p@yH+fBO9BAnE)B+kPKK7oIhj2sJH)wDS{aHDmJg6X?iAvuB{ET$n&hS$W^! z$2pu}8u0yYZnY05G*$bs2+Nn-Qs0S)LT>DQmq79Y?v6V@2uT5NsVdBMo2LH2B7RH| z=alWEpArTkso$F8zR&UzW?axsfkBhR?vt zmmR~Gt$Z4ub7Oc6tUS3fJh{pP5901z-X_MXl7KAI?3260VZ`A}WVN&<|NMKk8&mgjJxHbHQN(PAz#osp7m<;649PEE8Kz3h)zh(z+Ki86V8)FZj{ z60^>nn#lIfPvIaMHSlGedq)$c7k)uNTm1ziIy`HSziC5 z$&(ja&Vt0=kO>$)z`z`aMuI(W0(T)cYYdL|a67_giNR)!-<&KZmtjP6wj{G;V~#D! zG>4f^-eH2U%meOB=3Z1mnA+WyEYSer?rz~MsAFC3k#KAc9EWk)e#3STlt=nRpr-k= z2j<}!Zy7h=;IL^|4}KM)!G44370_YGRLg#wH)eRwa!6E>1BeMjrdjqL<~$h(WV#|B zVXPQ(mSw-goCcU|=puv{`=gPN=QPwW8#30i_f7z^4;Cq=5+^UR>@T=K<#!GqH&E0n z+1fiIz#+X3TU>`3uP7Tvz(EMM&8Pq>oPUJ4G~OJNJ4h5R)8S-fMVUoahCjzi*N6<6 z6S@|drinwgJ*OI?Bs%4 zJapnbFKcQi8~7S8@SV~}W& zhdEnmA5*~I&f9G}%<998;Ib+yLKN63YZYr$7kHENs$p8IqQBScyHLzd>xqiuJ3OSK z=`TS@sQdwiUawSTP{VoMIf??STH)t&5LC4Q&@&g#xCyz{?SYNyi-x>KdG6G!^P=+- z`Gz5HDacFRj52AQYR^KjpTdo}t;%tTrTy2bItOVlfTQXR07nT#0ZioVA7WhHPE|4U zkvQr-P&t3J6fd*-Mo4JAqu1LxcnWgI@qq&QsaXif zY1p}Rd{5;bX;)+Gv6?Qr5RO{TOz1M<-yp10nhW%bQmS4<`apz*svQ7s2T)TDZp1Q% zq=eq^78xT(wBZ=B7&8`j)KP7sAbA$p819}HDbERdbt>AtjH0TpMBZ;8s&F$NW093) zaZ}dPs8wzLaLLojLwzX(;f27=lCybqf7wxCe4 znQuX2nQTT})S7u7OhQJ>hJ?YV0w0D^VTCN1wgVfBo^LRx;jv}x`35^eO3YXd*0UQh zEc^_1DzGW{qp1}4G>jZ3ebi*%jO;PoH_lR3bM@+6()ueHdFoc=u{1-~O>^^`s8XQ1 zPY$6(Bh=yopNfXidCZZB6x=U^N6|B1%Iq*}@d`42g6SM}3S;bo) zTQ<_JK-nYhv7Uw@BkggXhLVw*Tof0D!4;PY`yDQ`CyO2d-O zCR^u1H}nlllHCNE3=Na}It6Rd^_&rsZcXmVwRJ_3y-Dl3vVTPMw=fm4d-R1H;Epf| zczbdR(nfO_2TrN40UtJfKH9S?iKN6UzlA-9tB~#VyRk`G$g4_(N(GppRM`O50w}gT zh>Ia$mE5Lxc_K)Kc3&X9swdKgrz-&Rlul5|!I2!fs%7Mwz`jwZ8H@Gmj7plyu4GRr zb(7dLTpo0o54FY|CSXL~lpVD`9)*8qHh9*mqzeWZi@byK?T=BF(Q~qeiXEjN2KO?2 zp^RM2`xW@;`3Q2(e!-Vwl!(5ilJcPR77#Tyv&YxXiYBQ1a^&v%Ywii~BF|D(dy3M; z26LZ}bF*pr?6qZ?_F5%*_IRVNgKF6)^><@YSteuAw@BnVvm%qRsQi{x@K$E>l)_nv z&=Qx9s2sQ?UFx2@?M%LC<3C8@r`D%jDp6D z1gqjv)$<-?Sfifwp(@?YY1 zAMPkPkD@#ae9F!2I(c#$#c5c-Y|1$-CEq-3)v#$<`F_Tx0@)zQK_H2?&=Pk-rw>(G z&{@$;&G-Zv@z8|TgFwV!2l?zboH0}|Kt#JJZR=6CmE+PvNQGOUJY-mtx1k%@SK9Uz zCEswOsqHc-V&8E*dXlVXu9SViACV}r5FA|7EJM5+{Q~BFz}dHc06q+hi>oDf4f=KY zmMrA1liV+fb2H7pM(}m;|ME5Iz}MScRXhxQ=59FCU=&;KMWC^76T<#z;xP%Ccz#Kh zJg8TDv)vW6RlSi{2coKD0Nf5>TzdeeE?Ga+lvALk_$~J=gQBH5T1~DV>4!^%Ut6$_aOV7hBG+muut2WQ9ApH}IK|5(g?XfR67G_Ntze+fdMeK++$cTTTLfIsbSc8 zR%VxsG8Gp_EI`=gdW;6#+a0zYNk(A*|lgd2dGN%A(?Cj5ih zqTV*yDx7cABjFGB5Tmv3yy%zASW}O5S$ftMVdfGiSSR4D_4z9@4F<-S|C=0-po$ z5`jkmID;Vhdu6)$A0?wNah)1np;Rw}YA)om-!Yzze_JyeC)hGJkGg}y)0Jj}!iu0y z_R}V$=W2S1b8-dN{7V&X%xgr-o%kD) z!PlgwZfH|^*@+0?1_|I%C(yU0 zpyNx>E^-(8aVg?K;L))1e~C&w3U;yjGOIK}4}IizvY@dd(OH1&Yv? zWjt&7vX|hJ;qVOEFnL8bOb!F*I_y>1FgalaTz;{#(>$idITJh)%xT;T8`Tvfg5xvC zB(^H;h`}Jn-&qh~Ck;j!a#p|>$LZjXk-$$zTnASaL`Q*}odc6!GzwN&-wOHhLZ3X^ z=#(JTV~Jt!-(W8ilPF?vyA=4m8E8d=PXa!(&Vj%|_^)8=b&wm}n~_m|N)!Gu@PY|V z_$dRjEbF>K5$K0a1qc9NRZSN5Y|0Q1Mgyn>P<#kEwKIXO0*1fn#{(k*42FFcqfFB> z=jUuoFz|4|yI7ssUU(sa&?lGNxd`p{owHV$N^ zCn=52krUjQxXjA7tW(p`>75OZUFK5hl}r55gVAcTsj)#0@f|>gCrwiVyBq!g)brbc z|9G!mr^zd0_;-Nc#Hi!tSV&emaA~>YW$*1Y;ymZ=oZuzxL%^rI0_>rXPa}SBm*;q4 zAhY99flC#=aTgfUc#wS5%c)RdwGR^vEQYlB8AFV*TU5Xs(-GZdm|88v)YwW?OLmi2 z`?#C@BJeV~|F+u4`){ow->AJ>?!8`2T-09eV;R2!FVDu>(pe+;oN72ALg`u=#2z3v z$HmgdV8Zv7DzyeNIMzAX0@09adOE86mLY)OAPaTpwoG}urNG)QvE&lK3*we_>uTeH zWizsIE=LdPq+-@V%r{yN(o4r{`c|=KbsV+@u7Wk`n^Hyv&V0jEqYALgOISe^0& zhZ-ZsodP3f6~k(>19pj=YnXvVvjcXC#I@&%%W1(&1@AW&xH!+H;yiZ(mo2arDm~xJ zW^>+0)+6H9G4+nK6+GEV3lRI=NYt)!z@LlJXyC<#%N{Wpo+Kq!HQW2t!e_ZF~{gSyg zsOdRfgp0v$GjTeKvq1uEi}Ao;2?}0~_=%rOI)LW-am$fWlQfkbW|?WY2`4ZuJErB5jz zA6#ZTNpE7@sqpxZa(|8k$v9R3`^(%=dPN!bx+?be%iipCNUL~56J-a$ntTaI^kJ#C zb#erHTGqQY=6W$`?aiDM$l3N`soYC_2bLKvr`d<4@;-6OG#CkE!-!Pw;|(W<-BW`- zG7}hfPYw3jB4F5U)4cP6VVPsFIV;f=a^8AmDof-&vC1>iy)IUrvfu$uRcbfPf@ZBj zx;6De{CYvQ(GtQ{V~x^fB&<$71%y>3ylyoB(!K`38bg^^D(QN?I%85-xa3KfD|s;h zBYCru)l>2*soPxA3tZAi8c82g(yb&Nm-@a-`jboAV~s2I8719I(wfwkBUIm0K_U9y zOj6PJbtT=SS7%~sp-cXuOP;>gmE3(?1Rx&EXbH*VQ>VJ56`&BwmylE>4^z@gy*gu4 z*Sh38T=G8~$(JeFMK1ZI)F)l?{tYU99snc#RwetFOFkj>8<+eZmwbOC`3dTFgY@c5 zPHhKQkXFpTLZ#OLFw!S0*)*4YO6o|Le4R`FawGXtCA+{SpPG8EOCEovN*@Hknm`}f zq-3|cpPI!p3&$#a?I^P zIp$V%6>!;+eo*?-4&Y`A^N{qWqN~wIFz0_nuxp56er>SOI=ClyI0kA75jOV=sk26* zF5E_01p?Vdd658jIO49s#BiaK%MOQ;uw0YsDBtV|KY0C2xg@U8|Lr9z=%caLN`7#RJ%3CsK6B@FMa-FDG=ZVZk z;63dH6&PxfW2gSjnzOpj`txspJ*Oh$6Y!2BOEKRBJ&vT~$T*JjCb^~9kHWUV+iI!yo5bhJb1a&4UW`Ip z%TVbvA)v(({%)*255Kda!JHzc8m8Adpsc9CsKi7+$!H!n*H)f;r*vE68H6L#Ifl_kS zc%q?XgO`30BY`e#X5Zkj>h_>8Yf=P12q${|7FyUlspyx;eeXs9KLO~w5rB=pcqM?^ zL;!~YMDvx4%in)%p-Zvv(LW}gg-UTe{aL0NYbKjwD>k9H!IcpH4RZejtg1y@}3A-&=mksqPoI5L+s&#b0^ zaTGU>5+?A}hfDL7E1=pd2R`ai&bV_xAg4Ya0EWNl^-A?EB0>_BM73liVfurbVW*aH z0^GQ&^hMBye&=HCI=GSSXYhaCtPAaFkYP^MJuhp(d|CfJFY7&P^2A(_RwUcjl!z2x zr`NBbjXeY#1ZFK!k<0;R&+WjuJy(&;Q}(%=&CpyW+q8ASDrwarD&i1bW^8g0LaN3f zeKQEEh6DH(KY3I0sqK8ze36Y)aQde>_o|~HXTm4RdpDRFk@-i}^ z#c6uH?h5E)Y;l@wMVsTPr-}ZBtk`K%v4R`hg6RxNE_f-W5w`N4MYWyDD($vYa1ie` zlOlJL4?=ta+{tpLnzMFt;z*=53ro5V>O#`-|7Y&?*X_{HMbY}p~TWq zWGuQ^SEN4#CTq-R@cqoGMwN(OofV6#K+ z5oW$hXzX8p=l;f+Q^{CSs*GjS=HgJn1V}vt>8mI{3g9&YV*vaJptv4n)n@~%U5=mb zcX3n$uu-LKrIh;Qh8pnPiu5uN%*1Pgtg><7yPted;b#Ssi?iZ^y{tsF?*iD5Z?g}6MlAqrldJZ?IXxJgq+%Y0GxUcMbF7s{uA`tm2zI9 zoOkfEnnZJkYF>q2N0NqHp|vUa*(NkKnm0?Yb)-3gG{f-oCTU9MYTgpPR-eiI^YHVl zC^LrP{ROq@2YPkRN&X(PB*eG77XU;24FF1A3O8Ki)H6aqNWdL#c%Fw9J zxyj|@Rr*a^ReHy5kp6>~|NmFI%U4h7OOo$(r5}V)(S7!PkRFIeU=bW#)8R>VZyJ%H zdlO=AtWHpkcn9)%h~==h5F>g`G(u6<8R$=k8`H%WUVETqaTeCciY|&q1m&2WjNU^D zQZna}rR%g=DCZxzwZm^!s=a!3R)w~(BeKJ{{5Jr0_+A9q;l}_deM?Cj{@&qZ=7xSJ zzERt8T;TE;9O`G{j8{Wmd%Zdrh0-Q!v1hx*-sTp&lf{OV^#2@ZZfT4&(Qh^4@rHg8 z3V?}ZCJPH;573#v+iyiLQZw#`H76Px$%gYCb|poxSE6T7>9d7MXT$xi=pCB3A9-ut zLagW^wNokN-mh|HCGU4$Zj^hR)`~>${*?%0fhB*@fl9=Mkr#2@xXM2?YNypl6rgKq#H{kN9GW#a;fH%)*8TrugZHGK)Z^-E2sMMx{BMRiem9txdj zj}D-OOmllXsM-(F>k}x_4o$(}CFhDWy?lzW=R>H4Y}jPVbbK>#)}o!<-`)$Xw5{^< z5d>qsDtyt>K0XOWb@AFf5m=@q)ATC$Ls8OMGUw?@r5x= z7lLVlsMk#%0SD7OdoD-e0kw5&};g`sMNQOTm@1oyZS7-e^4MdW$dc6eoGJu zJlbKGFOa*J1zy1_#-g&l3|*PE(7qjtIpe+dA(j91tcbl zH#WwL@ooU#d#s${nds$%hu(%wPb{1Aa|&cm^pe}#u=nw0V|njml6MQ7#@n#-@nyq! zC}^^m&kcSK3FQd@oGD&D^WWi7&PdSQ=go{z4GV|zEN7bc=c({?u5_zGAgkdu08Zm- z*vgW%@J`^R+m%b#+oBFSE$(7wG2HXUg@MPK&M;2&K{(|z{e89Sm3npNdu!m@Rh7sa z^B8~<02cr#bt#T&@D{(Mbc|3P8v{0v(IGyH3ABg_D*7z9h(+Fe-6C#ti+GhqxD@|X z#7S;UGkUwE=et7B^&WAB{@@DDdK^Msikxy;&AR5{NN3IXKy8y>ZoYm z5bY!Ri0kcLHKJ`adnn|NQg+CUw%2sV^ywxY$DyLGp?QMfQj;u3LU|rvPll+4zx%A{ z<;p!CQnx5~f6`F&I?X%>ncGdKq~ECNJb$pKDZRq=YuPZB10O#jSAukbRd)$mcDHg~ zIy(Y$V1f>d*)3+G-LFUPqfY?X0$}iy0R98uzW{3au7zW_12_m^I)NVm{0gAvC;-26 zZ;yeHh320Ebf}6RsaI!N#-`~IcP8@kp2BRfIYG^NB4iVu6EJ^csA;XTyP7&PGA^2d zO+Kn;Pnb$|?TIDLsj8`BHPstO^&3_HCq>WG5-xHTt;;x>B~Vd_Zl3)&HA`11BO?`@ z$?v#TK>PWflN%-v?GT2tezn(bl5@ptNoS zrIjklevh&R8Hy8q|0N^oZvcI91c~D)rWt3&{mS(j)Tnq&ksp9ee?t)o{yHp)F}E~M zPGC$|1?W+Fn{p)K$w9-wXM${YFc{LRn}_oED$VBFh^YQKw6o8i4P7rn?xoKHSPQ^< z4i0lYfCU7$0JsxC&3^!Jue65m8s{@5HM;=d(T&|WX-@EW z*S%U<|Jil-#9G^}77P^4S2jM#G!8|=)HDsF86UPOtR-msKwl^*WmLI|7$JGH66Kiz^dv1yh30JfF3&mtOT%{z*PX=0Z_XUK&KaU-0q~Z z@=><)t#cQpar1ft2xOezLVzQA%NGG`1yBi~beQt#$gNX7Ij0-59>STML%7$@+K`gGG38B{P_lx~h8jUhYJ9l~%?=OyFj+{4&c3IDikMEA*W%>(y=%g)>2?gGFDnL~h0bSnWi+6MqinhU9B3&9AkP`Xr8 zKrk~QSr%}5Bo-b^<*-Ot;ek;Kf^ym^qAJ~bnlVcHOEAj1(@<$SKv57Rycmh5(gi^- z65a;ho3-o}j6wywto+hQb?XWeAdmboF9#(PUOtP6lS67+*a4A%zwFkR=NS)%usY;YQhr7)q0v&zi;1^tu`|vv?Q$P#Vy~I&I%|r&sp$Pz(Jt~P znUo~9%YfIQ<4)MoNllVBy)|r~JZw6qg*>!hoJ7ru^`;UjJ7Nqk}$ z$7Ci;E8K}Zw9FJYyz|cYSE|qM00_G!%{v_y=3VdGAft-+y+0!GZvbuHfC4kK;1ExM z$m~{U$0Te%EXG z3|DSP^Aw-RHE>CDV)I(Tjw0X4?kKY7iR|cJtygypr#&H;VT8@@)3S<@K3vlga-t=g z&Vaf~(`Dzvfvq_##9MeC5AA$eqX&!?PZ{U&RRiN-ovD`5>`bg&5-FzH$^yIiIynx z?G(#8Uq$J@4IcfGMuH8RT!*1YM7nM)6Lp`D-?;Gk_@xM$wA0~a(jK(ZHUJ*g&;~wm zz&w6mr)9>~MWlcS(Qx)%^W2_rKwe(wf7|T|2jrpp*}%m2SHVQ2t=l%{FKO!lJ&0J zQGSwl2Gj#bN4a%wgjefsy$(LpmHTtdn*$77(wx|Il%GYu=_o&o>`z2?^bV~TJIZ*- zbvw#VO=m}$uj%Y4-)K5dTwE#XJZQL>hZSTmH(hmPM|wy3v?Fc(KXxS9F=bcjrBc|R z{`?0i*j=?|j8dXZG#5w6hC`DO_q`1VC$+Gm)tX8Ddl>>*a?aLt_NEa{=@rjux^#|R zib&@;sK~cdaO++<{;6}g?joIIEBc%3+0r?JHXSsD<NOU7)keTj%-=ZV9K_hZm)_ zgNgHf0m10sMY7wpKg?~cqO(rJgAoV9{LoTS-Ao*kJQ(iW2{87EJ`Z!iE?9*bxATR- zR-a@Hl+L3NT2G-LBnw8^yxrw7BXmAqO7ujS@6s-iouDVf+zB%8irF46_XD1b8NpK` zR9;=S0U~S)M^|3~IE~EG-87$u#p5q14uuR$e3)V%LW({9pu3g?k zjdz`k&?8MVER#)h_WPI&??e;!RO+lGNEng%1n8>XLi#r#DCWy#YCln|<{JP`!`7uW zM*!GkYFnTxWgmbd2;gY|m2`lib*9+u6qug5=xhk=i}WKPs5%Zn{)dp9j|Qz742&e*mRivTn$4|dVR4=X=kWK!{kA~FsgRz$|36g4r6>5P~FuV_}x;(sc} zs>oDE5!p!*iYy%(Bl7R!?uniHxmv>wEBX4;MH-~)gXnxMGw*{!v-Tt1SM@%Ae}M;; zp06Yqp%K{4ir~SAk@|2qbuu&iQX=1u@!?*ab8s`v>kK$t%vI8@)W2uuoh0v#^t6vr_8}zJ zMu05@Hsf9;JqI-GiVGp|WliH724?J4mz zl=LP_Drrto9YRj2Oa7wTk@BKZHQqN!Ov8`^19N1tqP3dAZT#aTgBnD;YMFf3&tQ`* z^PzlAPprcHPty^9qD7j{cs5_t8Luieo$;(e(`7a!(Qbz3GHU&+iL3NSO{cbW1y-Tr zGxctnA5H$RgNC>y%`Q`)d}VP2M4U2VsLZQ(*9DiP@rcm0PjMqqZe^`aW8TxmF->WZ z*Yy7atb9rbjtYWj?lZRyuSw(ap;^S_i5-LA2)uk3sSRHC8SoO6toTOa^V>G!N&A8C z<^;pgzXW`Wyf|n>S|8|wmorQrd-@E#AbV4qy9g^=vJLk9os$y$x$8>*HnM#F=}2$a@I@ z*rSqDi37^Q@7X%{r`<&5IF*R|9C{1ImrAjg6c405<5Co9d`6{hyDLDCD!-e29uZJK&)BH+VF6sX;4MkTTfG12; zk%y?zw`tc?Y%mL-z4-z_9Ds2I_;A}g0HvoZxp}xvHX2M^`dTxB>dQ``^;?w1xb!eN ze^df}Z3>q)mOPPAq8w9P&i|$*K|R@JfEB$=4b1_f7l=))k^#uq z#`qLgR$3y7#{QLPj}9N!jQ=XpMX?0FhK-Z2vhmJkdJ!MrsF2aGn`%g(xyjI*^Ck$B z(QTT^4YZFu^}tz8xI;7*2@O|8+<#m%Hr`%b`W$ zrSB*Q*9x#cwr8ucP^iEt=E~Zy6g-14w;M7JX~GXN8T(My)RT}YrxJdPhidPdQxn$N z5sQCudZn0>^WE6^u9t6Seg&GCLlf`HR<`de-0XB2;a)DdM8S?h$n~+%ks0Uni@&;<_Yv3^*GdmO3{Di#*5$CuT5@6hsO|QK&u#{FB^$!Vu()oE7A9jM5o3O zMgL0lXCu*)7^0Pih^;D}D(D%A8sjheyi$EW37a%3O1B6)yF{h$#Sl?zb|E-$qt;g4 zRQiKb6`d0i*)_0?oq7>E`ds9`46N#004=`-a4~=gfZ8hnya%9?CnNq;30bXR{=IFc zUkFN`ipV_#paeh}fa&Qf-_|n=s8u=iky)@GAHmeBS(Q{OONq-Ua!;F|D3XO=4@t%K zNUWv?BBZtsY86@@z{-`3I$Aet7><_90Zo}JNarfS0Ua8<;{+A znxynst>C`;#$E&;QXzpp=XAx1gopU4L!+kfDX7^a`x^hqX6iCToxaL0e8>hFt zuVOQCdAofd!9M^#=QEXbM6Wy1AZBN;e;nr&=g3yIft`}()Kg?Hynh_G`0R;h6Ry9! z4#WD6dPV1`*nRbu^)*DtICYc1Uav%@5z7jo65>6*8r|!@m~8Uv^8$Tc0&7%fA1XOC zP7aX;)g%RaJs*nL=QNsTsF>y@B$kGhf<6ej^nRY@+Qu!bbhG~wQIh}YwZ-=kcJ2z; z`6AjiUEZDb5E9M1v(n|=S>7Koz~2m?a59>`D=XCOU0Gq-$C(ED=u9nv@5+it0aQrd zm9;=KD&az1n=-_Ktmq}0%QtCNxw(INlNRGlg=}E1Q(C@B>vWfP6P9Ui?PM&OXAk5y z)qBPO+m$ErJhTn|o`kOUHy68(_MW^#Ddi`0J(;t(6k*l8z|D;3J63OMnc%leoN5{zG}QMZaITW>!i711LU%lnDTq0w}#-Md^&Q>7**(DP-PiA?2dzd3L7^l;<_i z_6OC}XDu}~dl%B|9;;lFd;MG{bo<>kx!2Fv`Cdv~OzxFW2PFPMlh4H$Sz7pcpzR95 zv7Yr`32Y~@aun?1e-f9^nwb3hKjD$bs~%i#UAIy^lFO}2HTl)SxKrvT)5YZOqO6s^ zi6Pnhcao(L-a;!k4_^JVlHgQLnkKW%Bvcu_0A-feXfn%`q^9zgp%#+|IH<}^Np`)` zy|m1j?tRq5{`nHubT`R8$b8GzcYfR?UsAc5IJfSco0Di9d^bW(Y4G8|&EdjZlg#15 ztxqm9zIdD5n0p%p<#9m>F!&$DuVyDQc(KQpCpIl=f@M&td$V{W29(jN>UMhEV@bn7 zGVX1pkNYowp5)KJ@l!fo=`J%P2@YT*0+{_Ij%*dJ@!dFii`X(OVd9T=Ft1;MrN300 zu+v5%9rly^h50J*5ePh6(s=+Rx*e3w?X{am9aU0SjGnbNzo;;Of3+UdAsaZD@H7}>|RqHJ^L;H^e^ zjx~8j2gn=R%HFMJdU{0!bcihQ5c{huT|XTvW$bp~mr{eFtytq~uj{wP@;#3SiA&9k z<(nR}<6J*2X{CO8bm`b>_-w*3$+ssJh?g78>=PLHMR1nC(;2!Md~QoPEMK%nmEf=+ zxeiO?B-b0AE#y0sTYaz^(Qgyd$M`S;T?OC)0L4>~TXPpMZv%Qu%|im!|F$$b>wLq` zx9_$9uW?5i@xN^H5aF_-7br2^sX&Q!_W4T_vAFY#7a6&qz@5h$QV}AO-$@&2$zSxa zk};lM8Y>a+()f+LsEpGU@j*V)&p(WgzbOkskyWu&TTEPkxgxUTxKR=6%1Wu80ml># z(WX)uxA@JMd^O{Cnz6i9=H)OWKj(Us)(gUYs;YpM_)+E0QO9>9CXopHyPrtUXtW&1RmA_&D_7K|9Aj(>6A);n0z#xWBqfS^L1;*T$A3=OGHz8z^{3 zjNre@QezBRZY)RQmTP1DLIz77y)ard9lhY83*IYM0pnCa`cQ0`{at|H`Lwa-72?5G zMO0bDLu(b0;JiW+dg#Tm!u-yZHUr^JR1jYJ*im!@bC&1^W#QSr&4xugio7f-x>fV} zB*l{|lEeGsnm!m}KWI#cbm^<_Yc6ABGF-Q@yBM=*2^GGE-;XT4%9{fh+^-x-gDvYA z!(pl$?XBI8CZ6_pS&b%cdUz2h;SrLo=$M!eyEc~7@9b){sxb%7!7DN2Mx(l_=-*=o zEbyduT0XJ$wX5+~S{5tgvzz4Gc=qd^7}_>hm;!W>vn+=_9N<+IEZV7JPzzBpp>?{$P>`^Z)9{9u+W0WJ<;o+?kl%#zo8 z?I+GhTxQAZy*eafAe7DeTECeN?0#~Yna9@3=d19{$&<^>G~iTu!Pi)D$W5otT5K=9 zI(7cLP`GUFUJjy)Jk5}sPEkiOzCq&+(4iGYHe8)s7w|RN;E1+SI=0(ahK?(s3b&TJ z{H)4`Ar=}#Oi`9^^|}qE+Y7FC4Y5!R@h1|EAr^`u`X)cX5mXD2RC*#cteZAoLG{8Kk zVePW=PPqW~1-RlmANl3-?WxZKgV2T#1CIt(BG)(Hpc*h0CfyZzn#@~L6{je|J5AB^ z6&YMI7+4TZ+prQrY?bD7?uEtnog&g*O)HBXKj-|8&Tt=72L{7E67xM zE%;XWsE1LZ8fg5YwBG$M(Z zzrm*h=i4N26X}VWz;KG!U=74@{>xzR0xN%vcD!9A1=}K5Ha0d({Z0ceYm?;bWNlL4 z$+Uj-GOZV9PnB{tPV%24(UU|RdX>gcUyk6}5F>Ga8@p`dkxSiXICchH6X~i3)6)$7H z`1B1z{~Yk?ZUNFm7=Fx6f|$q-<$+c3Y&jl?z;h7@X&BJPI?(oYqwQMN^7GZk>HdUd zJ8(VJozYgPxWGN!0mXaZ)8Hb0bC#>#8=_uiN96ZTM*bV3URt(soVSGfO=55{gRRA^ zaoCJAurN3HJHU-wy)ABZb*}4H27d^6CEwUntQtnB$07f}HelT2i+UoRu#V!lnx+wm z0=NeNKH;D>quV_NV!GXYq<qi|cb2$L5*%>|=`?+yjR*6L^Hve64P#lvXGoJf4-n zPpTB`rq9+U@M|XpUvm3H;W?Cas?ZmSrUot$z2=CXR$heJST2H`&7W~4uuWQMD)6UUy0QxGnCXyTOmB#^uK)=5(~(fM8c(4=9f&&O`n z=OTXaacGR$)A2zvgZsOoIb`DSMbdfDdj@cM3Cx$W9eD%Md3ZCsL4Oq#Z)P{>o!!AK zcKs@eHa-HJ&$)apJCkx$^ z9TRKb6kyZD+K&O;g8bUA0dy(=@GF2a0MY-%_+&d2qJ6948%<|Ok0z~&NQr!)txSoy z#>WI{?L^K!8#YbEBfv_-fgcnaf(4ySaK1~~$yC_Rdve}+9Q-HthqR0mK0%edrlqHJD9?AwqKDi4ImBos3 z;(x#^q_MUAX`@!y5_+={87rg0>&njklpmE{R{Ank`9*X0)mv8hX5;U=jo8UQPz-5B zZ&H8chR3K_BCNS4U>1VIgJ?dKT^4d#9#Iy`ofpgEciOmZ91Uv24z9%AB0~h%fX|{M z{W8Idx?aZott!OKk(OY7K3TcB4%yjQgcWt&hV%B55O>+fv`ULrKPZbQ8>l*VW_I(6 z*CFh|Rkp$Q3J_#Vc@|~GHEf@N8J1^JR~|C(EXwDM-&wRB`(>=WvuLL!M|Xa8)meoB zJGNLfFUsS{7PZyUxTnN77*e$*NdH39*~I^e<#pnJG)>%6jV5N!Xf*S8F#>lr39N7j zA6bg@c^Z!HEXO^CVdy>P?#6OiHJKrFg{+v&eT0>AAE7`NnX6=_R3PKTC9OD46iDd4 z)X+=VR#-x|fvvpdT~OSc`r5knjYYnh%mX#%Te5E@Z-Gt)GKB3(<_K3*i*Keo@5py$ zi)zonQ1`CDR^H=&h!+HJ>lC??6f+YQ9yf!-pvDlW%V8>*4Mf z#C(j^z<4}4t~1uFI=wh>O$24&t-HN3&7l8Or6P9~u&NFK4iY#Hz{!0ul9KVTG9Kbc zdTg7LJHSGMq(WsGLV!Zf0Z>Vov9B^^M7X*d(&poTfn^rbw~}%^fL{R=uSIUnd|-HX zXld;-0E7BsXuTA`r2u3A>Zp<`_3FHr+-ftVaR7P>L?z7$ng*a5MX>`=b2@hb`VXii zuv40Zdh(UJ;$$0>l6Bqy>eE@)y0h|q><^iz!okMyX zY)mcE_grn7!CGgo&g=324{84aURANZkK=o16FeaaB%~2)Xo4t&&$pAnj=*RhQ!S*A_SS|3Tb^K5-pUh(7H` z|KG*sUg;C(6IK3y7X{1JSIZr&#C?RSoAh&0PJ0!I;iQj(6MUO4Q!P@`$dZ~a;H4?C__B96_PJakenYK_gPnH9WGIXDpM zZ8+4l_=X_xk1L*ItYR0xUQAzx^4+3nj#OrN30lGZ8qbl+CNCZZhR?z_HumP=${jzT zzOaI@x*SHLhn1VJv_A23o5G;xsA#mxai!$2YZt>APEZAK_;b0&_eb6;y?AC3e8Eb^-tZ*eg!q#c>^`5&r#)UP_^nUo z`(C`t%yWB383&Eo$c3D|Nc*s6?zh$1)YrNL9%Vni$(^F-MRLEzPkk{Z|1(KAI9Ryw z9E4|bStMV!GG2qQc?Dp?+Yr_p!A3-yw;z=+mRhdCDs!3i=Ha_C~h!E@2y^EQcB@5rWEtWq-H8d>xRYA>(hcmV`* zo5bn;0nA5CkN|I!c$)xkljwOK=iOi|=G7baFc$18BaU^o6tdt?@X85CHTnhiTKOTsVd(`LPMz$Er3bs%xipelkkrn(>f-7dY60lXsHw02Bz}KldjGJ$QtCWJ7 zSaotj4mM3mCN|e(LJfdg9$8f_+4)t4u=UvF39*7rR~rkl_4v(;m)4`CruFdTVX2t% z*obg8gb5G)#|n1$Nok2H;8k}2Mg?ivgBL3)N0I0INo$#Hqf#-?Q%|O1!C}IqM7%KM zUO!RvEPYce2W+78H%8|=Rj52xo?Bz3K9}+`Wb002g=^ND=XCg={rVH|*fLUImJq()?>bIjkI5n zvsb7g+dPy_2eu{+Lj8XFHMg&RUGjA?1{y;pZ?8)(zCzfXXxuG2Z$lHl;NLNj_-5P^ zWXj4OeyAZrZ;1*yC}VR*(S%<>nEkQ|ojw%Z=xS>7R@{EDqG^AuqU5~J)+%QgbU?{qCIgu@e9ds^|5qgF-j6fG zfc1|c{bCO=H!AIIJBJQ~x(h<_i11qT7l8ilF& zUI00zP&f1!psYePlyy;XyNb}PHUxlP^zn*Nb3p$vs=Y)ZW1((b@2UZc9)N7X5e>QayD5g%1S7}Z>lYPXN-mN2TD zl}Z}RWnKU?uLE{J$)y$i%E$j&7=KM;h{pC`UXp+NSdRZUmX|%2l=a4Zv`fclYulw( zD*HT^o<5fRFqXp})i58`+%T$tJgTWaDqc#A(({TXzOFF^j3gy$1sD6M-wdNpQ)(-? z+DCOXj4IuudRnQt?=pU~q%4CYtPJ5Es#ks3bj8X!Gr|7oOJTghdRq6b(K>RzHOs@cw9kdnjt`?9;G;bdMmyWfZk|#dti;~XEhf9Vgiz@b zP4kKBXo$RgUGGs{=cCFGqgvxpt@0%}r*?uhSEE1a6SX!>)J9L#3rbahqI%v?MLA!1 z=udn?z6=v`#G^Xyql(&E+taprRE_SgDWvo;s@)z{E2W}BLk(4w^Pz|C>l0EQCgf|6 zYM@WZ&90C?JoI>!#E z$~&M`(_o0;#rI@e{9{uxC5+{4mnAq=srUkQg`qO_PC5yW;g5S>G92aX`H%cN!udl!{$VbEToYsUlZSw>h4JTJ>*Gh0 z7UlHO{GZJGY8Wr(ll-LUz4w|Nq%}cDTpIrZl#mUP5uJY2EZ`_^8ie`2*5M|9}*Y|U3))&UDXW=;GWI(UxjgaJq6nfYf#wPHcn9J5!@2sqPw(q=svN(~YLvL_L$# zsaLkfdk(u^8J|Z=J(ZCc>+tf8;L|?jNJYxz3d#guQzY-BndWigQXOCXH6D`{{8Z!j zA*H)byxmU|ic*jI8@P8p9w5yGT&fTj{A68y(-l@;eWe#eBxyhl(M1Ead57&jLqs{x z{Rf*%8fG@R)~82-a?2Z5(ZK9Y$BSHOaF1Vu2mKnn;?v;%+8X@pKWQ)vn}go+OZ>nu z@sLmAvDy-E{ZA6-L*gHPiIFdQed zvsJ;s7oZYZQ{KEUo7C3V`g{r;g=HAE7s{EkI#oYBR*}0;kjA^=bdB%)5?Fa+>p`*} zR|0dTn4YnxdkwdHVSMuaJ%*19J(q&fvycwGdDg_VYc<^q7qGGCT{$`IT4p$v#|*qu zv`OiQY~SnRG3&zD+p56x{gk>Z&5ay zeVr2VD?LAIyjk61l6<>>K7*c*mJ$0t=t%Dd87KX@%vp4j_6AF1`KuL?vtCp@hVDG|>~bf`^K^X;kOb{8ucuiZB(hx#c4 zv#hGUk5$xdWd(aGO{b;!a)_S>HJwJ(TW|cw9)lMv4{Pd6ex6g;)DmwjRw&I{@ID`Z z)N8(Mo|=D2ZGL$H%`WCq6(dc_Rt-o~@{uori~e^4@4B|lE7D$Fq|DI(v$^4aOUbNJ zlZBZ#P5UdewuFhqb=FShfSq_=?i8<1KruodY<#()$1J zFN2%*?HBDK5QhCK_DgajDYn5rpNMUO9gu1yq0vCgir#71PW){%bWJ$yiKQ&7v-YZS z8{yaZt43dAw|*U4Ddj$g>!V3@QwiRtl^o|l_Qq%;dE+G4#8$}u-JgJ#`_ikT&3);s zaO}7oON=)~_ksf4T`)2WMz~hfdPbklEz!S0uYw`KwHb?aMsg`J?O~(Iv-))Ij9#}3 zRC|E?6jTMT0O%0JUW#za;xizPSH*?81GpO`#rr^uTljT&92~DQGkW9I0ffrphHSH_ zA+mDk_^4_qD44x%CajddzJq1C3YM~`UlYBbN^VAcr*Tm75db#=$l+Dw1urA?BSItI z27os5C$#|I$^K^aKx=`%SmUW*((8Wxh|Y5hNt{i}wJV6ETpL*F4<IFIet8skl#kzB|EOC#w>=LjhldJ zeEpWfMciJ5>2K3w=#C>MV#)S}7QjxA3BsI@AzU~S=+YRjsj{F3;TxKl3$o!Py?o(0 z$iZ3mZk_tE2(0`AXTjmr>-Vq-XU1H;8{@Y|9l4P?;SHfe*~K6{4MGZj0mGL7axB!J zP%A{wo{XtjCjc7(Otk>Cj|la`V-Lb|JIOjtpfju7sF-*pAeWLH1%X^jk{klSd)+7^ z_emvpZzo}2DF-#Jky*&^`;TOcR)_WJTof~&5+?%JlY&MAxQM_o0E+1uK>%{9A+z{igq*7CD~mS?u%aS(raB?(;gxT?eH0c>G@i}o291}i zTcezsFAf)Sy7{<|vKus(_Cn6*$#yHulxr9;Q(ndEaq-fvCX$Em*xC8waFmDhyNKCw zwIUm#!$D+Pt;qJg0tEYDp-b*ds!J~H=#?jr_`zv{?`vT*t0AK(QnvCAYP<}Yx@*bt zE&DAV5$Ci4d>V1Q5BsoSO?;Xb9Jla%V&e58U}WFDdVzyJxy7@)QnP{h!=z!FR^DcU zJq(KG_Lzomt3i4D=NLsCD#2X_g1`XmnAaU6DYt67>$`J(9JBs^;z(2rGK~!`$DaR^ zMxNV@Ns}B1G{pcwE-|?5*iE4abQ9t04ysPIdNL}&Gh*jAT0-t zt>HjRwZ%-XI>i_s^a|mh><#|oW85Fk*i#cb72{1>hD@>1d!l1aimykUI>m?pP9c1t zoS&dSJ6kw0MHF4R4wBbg3+apuW-~Zg738;8OHDfNtSqBOJsTG*oTH3vm2OZ<^Ll9k z%;lP0YWWO%RvlEFX#LoSTddD!GfAu8Ow{crAER!UqmKnugSt51gvg^t@4ixyF{ZTT3236(?;(;$}D8lmaTFP!NMjVi>uWDhsG zP{w@?VmU~|5v2UW^2;z#Y7k2e!8=C2ff*Oech%1!5d<-&GvO=dV4pb87ybTJHdM8& z=1-fa(=qnX_fd;^i08t&sJuMH^B4gh;&J9-*x{0TTfF&&41E9cG^|0nr+5N@(G`yH z3Ze*piZK~SIu)8!m78SW*byJ-NM{cckdaR66#zKWnF1i!CDoA*4I@eNiWRwb#F{uP z4Q(&PnDNX2-xo#uCxFfYPU(+d3 z?ip@67sOugrgN>E&J#@MGNsUOa;o__$2A)Np!hiTb0<+^SUEIRBSNMbC_K#(2etjrjC5j*v!M zLDxAr`aFNH4uLAkBc)t>OesYkHlmavp~d0pA}uv$Ym5;kXP=h&;%93-iaL0c#`6nH zH)=d8W$Pl3f{TSL}GrK$s za^;q`)8eq8Q4v71v(U81Y08qgIUB?{Q3{u|e+0R?++m@#w@!t7vV37IXOuG#HV5Aq zN}~{4iCw0H8$;^i*n?-FN=}}D<&3KY9#lFV8?>$#zUiPdr_8Srxpfx8`SMf)dSdQP z8lX!f2l!f>SLg+ixU%mbBr>KU^?$daou)cJsLu@$XMgtzbmuqE-fhTF>|C@6s>)3b z?>0<^>RS;msfdJt_Zyo1O1S2wWFR9xkO(Zlj4{_ae<;Vy8ZSl}jnNeNx}XXP(70wr zSZ?|AUKSkn9JyRMX!&Q9L$2qbe6+CGKHIS989kS0aSE(Xq#aVf7_M|uM-W4N1 z=RiH%j{OvCW-#r6dMpy|aXTmwzKDbV#ks{?;%u)3S?BxWB!+!!=T~7BV56hKE-M?i z$i>YW!^pKVDF`RXloRQ4&K|7@Ja-{mUBlE zQ?()jb?%3@-51saHapq26ZawgJCY?NTl(g6*(5ueX=cbJ(&r|VCIfon=tVO1&3K^^ z;Pa9>neO=q#Ab>^4N7LNtzKrMUSV=K1k6S~1FPe=g*0(|tB#d^J|(?q<{0+AMgd!6z zZlH`WITBJ>G}#f&g&nKAlLEw73ATNim(*7YOe$kp0x-|bHL zr!7QtQ({7I@MpAV;%_J12DVHrp}n2Z5wTYHc65eg5L30^HOw*5Hd8eGTSR7Jui!rk z;xJ~0Brt_X$~PU%4V4DYkZ(CCJP=7JO@@5KLF4874GN1(N6EJvGUY0$`tscdSu}PU z$Tu4@<$Dcr^1TMxH%et~s@{vL<;W)#bW)rCBa3=%vRPvM$II2)WGREywD0=l3uqjv zh<6!>f3qRt?-qy8xQC{?C;0;uq#ml=U=VW6w1Hu|ujtwT!Xeo%pSz~}m$Y8yFziFV z!>|v_VOT3Y5=H5p(8@5=V>=<0!JMc4$2jz^(?DrSgPl2p4S+3!Y^(d^_CV~y#iKuZ z?7QURQB#+8$;G2a)EjbrXog(#uv_9Yc}K&W@i(){n1MmG3&J7ZlDEi4^|#}BUc{W^ z-4l<_31?6@;@6oIZ_Ij8wVUHPzO?6}_vqthGjl`!AZ8ITL zyBL((6=@|h)$V_@%lixkJmm{FyPx?^L4PKvn$7X#{c>ki#ws@R)#kLboQVFy=L84D z3Dl#GHLO{vG;lBTsla0mc~5zUe6RDE+=&YPx~H^+;EDBZd$*^`M7bBFhin6$BzI%5 zLWbl{jf^wd-YYB}@ul@2fNsVdQ{;vaQ@m5UE~~cOH;fvnN4w>s_Hu{%$+E^lBqw3zUC5>*OTeg=Us!zW79M!y~XG_Tc6H5 z$%$X$h-`R#Q6~`Rx>UJfk}Y+2adYEva#qV(Dl=qr z=hocofk}byh72>e<|kkt`oJXigg%`m_5Q^~BhxUNWLo_C%YFiJh&l5HBc>YBS|aRcdJQ-Bg{X%c(QTsCBsEbc%mG4glT54R&cWNbvxU# zT7G5Z$t+LG0h~A?bSL%PvTq@|%%u?Q{q0zD};a%arIXW#l=u zRVOow$6LW)Uo_b|Sc%)u{ZvuTYHzH3+DnG03AX0%6C%v^9`ew6ie^fY@JDa(?G`5T zi0XxHX-dd7`({d5f!WwTjc49_d+}W6m=EkxpZKwU@y7B-cJ4h|`jkxt7FhVpzXa{U zw`z#>E#Z(KB|ifZ1*M1|2TvHq4o7=UCQVMyz5! zQcN@k>Mt8XxDJ-QD7~w|o4a*ewwQsXgxJWcy{M^($zQo2_3L?qtfY~CNPg=Z7-<9I zKS5@4HX(AvlL&>jYYApIkRuSD^Ts zNEe`j-)Y(``f_j?TVap8N}|H6G~TdrJCK|Uo=~7P4=cV5NnN8E0HU0R-DJ8D-0DL){52z<8I zh-@I84`Y7+4hp`5_@tFka0h@(2y6!M0DzoIkQIN1khJed0USnj=mda-+n`F+XUxQQ zX!k9mEJaPn&$rE)4|P9!O7{@Tyb3}?T~xX zwJ&)sFxN`kSq>k^qm_KT#;3WrSGlTTUoQIey}pplE0ji=_E_$jZz-j>U4<)Wbf-d z4IC<|aT>H+PkUvGH9^~_4zkm2_4GREA2FiM%TvmBM5))u9FEcwJ? z)HZ%@Hs=mhvc&-I29Q$b50BR=#5fNrY+ya3=D0L8li*q0Q)kB3yq zY5;qI$md+HOcUGA#NLm;>?b4^U5yddok;8-5F7!J)A@8HmV#&z&>FynYmh`o0M`O2 zJ{y3k(ftAC;B(BOTmZKNkS`h*>)2q1KAo%MyzXwsdg#pS?p`Lq>+TZog7PjY`%>r=<@m0a`+)et@Vp!@NQ_vGQ0PAV z+>9u2t@#w5s$3SLo$BPWpJ9+^5MS^Re%>T&HZa96BSdqA-Ug6-H!AX{0LB2ASP48o zj28L2zBoTXRty!4_2blfcjpS>i<+=<5#kgV`K9RY7@0@+D}k2;^f@W z%3Z1@G!#~cI8Pa;o{h_jaUA!D09f*0hf&W`!D;Q0&u^0l9!Ea+BECCx%c(?U(P4y& z*rbR4!q2^kpID9feb8b=6!H~H!p|opk2?dQRtOEf4>{}v;3@z}i0i~pzm_d(W`oF? zkhK0+B-94+-+&~i6p_V!5Mmh>4+MaYd~HQ>fk1}=m6*6~6(c$W8hNm-W&NrW&)sPx zJ3l5A9EH@MfjjShBs`K!ylWJD%`T-nlrZTRP~8UHhoCCB4nW@r(65D4hVB98-@p`a z1b~C*Yb!#V0S(#!A6efN@>S$|W~n;iOD4`;IIn>~K5BaAzX0%~rq=;5A43f)&ooz^ zFA|zi9r7I|Irs16Kd5|90I-7pXcnHi0N*`pfn#t=sko&TLJt|UfZ~k+ zJ_hg|fP(7*q&(L>$rfgj0C#?|Ln+w;Ug~ za8MNGl&II^)Q8VH7aIZYI88^TR_?XCv!ReyA02~3izEKw)E=)Mu{)5}ls1w5gbhFW zd^504#gxD_PAKV_KVZ0b5nqW+=d7o__9L_lq0n~#8a@i(7XaM}SeT?OBv22)vjma> z^x6cV6@bMAIsy2ZKraB-JqFjy0bpiEd4Qw|y97Y&;~=^ez>5HiX92)9Z#oH*p~?6+ zvqkmk`gHmyuK5k>a%j@$2^1EGCSwS2XmSUDT$j|{i|Wk*aj5D{%laJbp{tS79unW9 zayw*6k?~xTzO2T_?q>0pp1df|e{ZRS^VcvRmk~Z!p3acwv`(~thd%tia@{B40}IPoZ@MW$hS=P3w@1JIuU7uFU6$ep6(?t0pM z$dNB^e6NT)Z)YP4vgRdrJO)|(tn$6&JgNllXO$O#NIt9FS2>2doIMjKkW*S9CeD`R zdjf2M8a&OG#uZLJ#Yi-KqDW zxgn?8OEdiHKNn+7ctl&u9-ahiwA&&Xi58}FAx&$RKIehjOaTAzP3H{UolY_3N~OF` zpAUN+fBHBK{El#ZrIbJGbHB&YB!zEc%p}vm1D;{!{;DHhUhFWYI?O85Jmrl);jB$M zVLJjS3LF4uJ`3P?P{wXXd)oOdv^VV#eIr7}T>;3{ruZBKVO?klptHB2Ashi1#TUMU1QFE&`j^tkJE7YJnJ_5%S9>dt|5YwizvW0X_AB!#5 zeP1=1;QYlaMl+)@GcVLmzQR2Jbwl@-KAm5a7yShV&I7I($qfuAC>{okhzMN-XaQ(K zlL4#;5PV3ba4s_#V%(Im3gGTfLR~Wo1h*+M7d#d&RXe}B8qV;B zQF}dY)-+}D-%z>k7wF%iMZs|p@iadY6MW9k6l1w@A$0%-jLmMl-# zx^uzRbjxTjTCPf?^~2et)4h)z$iRjwBEG2f}0FipN=A;RMC0 zz)1181<-68ymg84vLFtae6S!kYcvbOflOq-c0s(T1T2Uqh5&7;mHVm2(=M*fkk3qS zrfUj;hrc`GG?vZ#obb-|uVlWo#<+cr*);EFX&8u{6UjFr1?emoL1*bKzb3%WGG{xy zE@q+4af6X;*pM7W);U2xNDr7zsbaWC;;dA~Uh36%y5Ls+#ssUMS*|OIpOYwXC;+=Z8 zm|m;Fe^h>!>!NvosuYnQseQeyakkL_<$J~I)O*0lUgwv+!V7RM8U4vc)%bL?+P0GA zc|5s)9hBZI#P8b<;8FmYFQSRs4s2))bE&)=l}b#uQUg*Xn>28!#Ii2-^G7*1+pZ(Qt6beV0E4~q_WC7$?w9zt23QDB z`z1Q{)|rC1z_UF(^h_@x1rhA24#Q=}50sr*!Org=u`_an-??V`oGWjcA5-PS1UG4b z8Vz)OHgf9SYBcKUDRByou2!#ND-$y8wOg6%m4L0xLQlRG+^F$vWj1>8(%c{OS{iQH z9b@G^qqI^eA8LRK|KVqJ>fLS>zU;p!oLB9WmHUrRmak6SY~+mlFLF>RrhI|jukU1A z{L7}Jrlrgez%8#veBc!Ta{)XCAZIi@y>^uGkzAi0|}H0FoLObpV?QK{}G( zT}sndElZ!yQ?V^0(Q|W%Cd0FRpp@ZR!`Ez7sgE>mmQOJVrDPhl>?hfUqw9JB&eG}h zAIIrrU3cDlMrp1v%rT5+MI<7SZ3VAV?A7q#6@ta-nMU}sh{h+N2ESn9y=4V3O5@$M zo=F`SE+{oO%T}8-y!8uN&<}3ZY*LG8*p2-Nml?dTcU)dah2`$?k)A~6yUhd3DC!Wf zfy^d772?x{kdJo3eN5IA8=W!$a0e+ge5ps{fiCT z3z7|K*rsVTM;b>=G`emouMHcVO2!-Od#VQoZ%`Ii)cDg(J(s3Khh;ky&+_i0coB(} z4jod_dT8E)-}^|*Ym;v9NcF4)jm{k)Tmo<7bE&s#^KDP_94pHC)2nybV)LCBz%o=u zgp$dDPB(-vma62n@T#LC*(>Mj?ydzks%4qOwy3CHg|Bt_FB)Cf&GJ4{4(S>8Yd|{F z6B-EXO!X5r?|V9<#eCiin9dY-*kV*-q26p1VQ2TxA7FqO$EC= ztTo}$=Z&z>G_DMW-llN_7h>7g7hm;)p*@m|6^ba^nsa$G%oE9xtnZ14Ne70undQTG zf7x*I%Y2hPJRGhrceU}Ge0uRnz=T_)1(ox=PwJd?(=eR-@-xDd=A^dN_(8 z+4jreGY1|HHIhBw7eoW|Yoj^!@YZBCOicot%Z zU~UB_I7?aTV;1%@c<2+-8roga*r2`4b%m0m2HOoe3SOYh?*bJGjZur`NS~d>A-Y`s zjeACdB}(=(x{anTnU!~o%RL1B@lzU*KHxbGNFVT?1`d_@{4L5U^~Ok;8MxMfQWN&8 z-LI9DxQzhcUDr5Pt#vi=x%aDVIwkW4S}T1w3$TA!Gn&#Wyxq$lpckd(3mDOM_~*M-@3Rp)*3_uK|$ z%yQ|G)Fp^8w_g}oH2R23DTGeLR0F zkJ(^PmFxb5OeR~2G)MO}=&GE9DYkv9XPkp6{N|S!=j)WregJuC%D+>1_}A=S|0YEa zC;SdF=bIF{RGj&^1|;)S!GsAQ@?UR*cQ-06E(6krHeMW$OA5Y5e4_!A_TgdY zHvcSJsISTwM`kTVhuUZW_}ici`zX4E{H2Y%G=er=5dRdl*@VbYUk!x@0r(ryp%DNk zyaiw^fTaM6F9U!Ba90-31%R7|I;n>JU_v(q3;mB1XpHw@RzWV}w}COI1d*Z92>nWV z69F`O8}cp(z)v?7FA!kQg3wX`V}X**3a-fQ6!~k)<|>tYtXBr-dJuV!*QQ`NuxEjsL0)ks+K;7Q7|}d? z`!(dky7;c7ZSs%BSVeQTWhF=n;O*uDd^Y4I#c;lLmcf{hRbdN7HX7I{eC^GZ^19Lv z!0wUr46V!qsx_Yb9xiodP&>$wd&nzz5BV6)*I2X`w<@=+^G7-RGzoWNG2KVHy*BB= zFw*%-IvP5CW=MIn4ktjEWGeCivi+;dVf=E9p9iK`I09Q%#OL0k@$NBL#9?hd`}1r* zttI-L0*(>O8^BRk;U^DeHZYtdbRRHlfeAeZ;1d9tDe_D}YIQb6SQ;F!%X9#UYDD*9WBLFlvPaVhx zh_fFDviZQsEj1c#ndD~V`_+&2n7JLso8V_n=;C~YT17td(|!EExctYwrZJp9EsQ^RiH{$JgpR^9Z8&d>FkW~h`}q~xT|K|wSi-ra@eX!b zPXIR_E>Z9Rfb{@^tCW)ShB+XiQ*aIB9gY7d&$d=-ytMR!eM03n&$q2j23x1_4y-MLXq&?51~RR9zg7ea8cQz^0m?&(Wf)9aobdA%pDkAKqZ?q zE+xPnD)$Q?cai+6^uN1&lN%2qA9s>e3sp%gtYvH6d0wB+u*Nr$>T=*xK0+-DCn#P3 zOq8>}a4bCvf3iAOUrQ)ipU$GjyD5f^N-v1XbrEb-w4PbPL2A>VV70G6E>&#%0^H7^ zh(AZ6KW{7?PQ~FU;JMziTXV!^n8pUn=uEB7PYp$yF4Nusg;son{;W{5$jMfo!Ao_2 zN#hTdU@wu0ugM>{{gn^h>w5KDE4W7)=_>cAK)TBJ8c%0 z5uU~AP1B?$HkRcPF1aLtaPuU}!Xi(_a0+r-2>uZ8!(YLu*J&x2A}sv`OYf{g-BgPn z`gFP^-OyC4P^(WNS*Us`wy#UoHR(y0YA~rLZbE0dA5nwkTSFa_IB&ZQ7=&?qh6%4A zWpJ>{;I#5LaImVBA-+)Kd6#WtWWmJ4Ib}|44){&<(e$lFBWugjPL(PRr>7%58Y|DW zw>V2AUIkj^z{ScWeiE@Y2mLyK&&fSk-5cgYbl_K8EAWrd{Q1j0b!pzu& zu4m{{H`JyYn#yOG40a*I`{_(3{29W7CQP5`hOI9Umd__XCn;Tk@bGUVL2trs58&EO zPUmSdT)SD>v7eYRpQFt;{+%s>YB-E@JZVr1I2%WrOTi=~%@YJT(j5LJ8r2_^yltU) zgzSHWPc*2|uhUgot?CU+!)INF2XLcGTAM)H>FAm9o&_T1nC)rbnDn~o(}_yn&NMmf z{OKS7j?a301%SiO831x!QXQxv&2@NVfl&)j)|!E*fid#DC(`6iJ`=cUB@g*YHow#4 z(ohkc7RhbWkN~sU>1zOy0EQD_HkSd&t@o|bGAx@>RopB_Z_>KRX_v@96$0cK0NybseSGr}4#ILEzzunCWKH_7@G7JqW z>V%b)yOC!Bn$fS6;W8*P#W1)zmI*uBNO)0X)hfx?nd(Bc?ixewS=X=F@Vc<;mDs); z%u)`{N1t^$jIf}h*qI+QDC{cojET(E8bj|(k}Jk?MuYQnjSy3UPOXO>Ej4@D}P<^Hfs;*~q@B&<{d=J^Lh z5apCaxDFJa=g-6PoOiYIvscP>`x|dGROV$nT+kn3f~>@&t#J<2M*D?L$jSD4mD}nE zQ(+IG1+cfA?v8;jPUaYB@plNzZ7mneZ7touN0)XSgI`G4oq$hbF#JxEgp(oowjW?^ zxy5CS+~V>!!}qe|G~wYtA}lw)l*o3`)d)}dQ#FbD-e{8C)?HQ|FGOZp)xfzfk$ZC4 zyko@hz?zb*{4Mo)i6>{0PmY0eT_RVGd11$iiF~MIgvwaKmUCJ1Ef6JJ$LsxsQW&F1 zck6hdJ-9fLxJMD&$+bNB4RUc3aUQsG4kPl^6NlfG?H_$Q<;jsK2$?vnV1h2foj5SN z^4TFr3oorZ5}cXb-Q{`$T$dy%(tLI(xKqu{cd!?Nki#dA)Q4!QY;mS&yl0Kzbj9+{ z%*8ca&hy>K;oP-z7k7c z$g%LbsW!*N_Lm^?gte^D$_5)9u^?=?+Rgau#IXig-zPDF8`#0RTz&asZO<1OSq5B^ZnELI~e( zUl7^|U_TTHJqw`Z4=kh?0jTGxux=zP{-htXMS~gobY{f9e+Cj}<&Qaz6@+ktlNtg! zBsN>w_fYq;*gyw};2zUbh>$IW-xJ`@!L$E_$4#`(wyZP|jo1O5Lhs;bG2`>U!a()T zLq?^}pm9oLuc0gsY2O8f3~B!+z#(nRztF_IpyWEF#nlWPxNxak7gG6|Vhm?r(hf%l z&)wDc#_7|U6KkERDV+zol0Yc|j-qd7N-pXDO6hH{Yjf`;h^*SZ;Fda?@_bG40XOAo zv88UxPrC^oa8-yrft2r7(*Kq6!?jY@^xSkFcGC;RZgA6U59yM@0s^$@Yyf6@;nKhE z@=b|7jXue;xWnap)#dvZK<*1lnu8XZjh3%0YSv-Uz-6kt49C=`1!R(TKH^7c{H2J` zHt{xIY3N&ItP;6?#*Z9LP)6M@<*jK2pHnHQspw)OD#KF!#nL08SYfjT3&-4(mlr#S?teIh}`1@Fh8>3WQ zh+A%`ocZoT+=L7@!M%dPniWk08|P^}SK?lAxy(x3e5}OfP4Js;ss`lM{9+Ag&x#_2 zMp4cqc0XxjARixB)Fw}z>@QU@Mp>P_)Tzj+I9bbo0MI8dB*1D|3Lw`dJ*AT!s;TAd zeG^n{nk&8_^?r)y%I3`!)ar5S5pSm2F<9b?K56?Co^*O8lXXjpZYQpWnt0?ZiUczfY^H!2z5!9=59 zH}#wCvN>*90a14;4M*;+mF7yUe7b`IS_G5S_+`xHRjPEaJbgM}rnZIF;)R2q z2;8l!2zhB2tgoSCsO{H-4%XwqkhS}$T|grrwTE-P7wsw}+R=%MM%yIKdrd*&FsvY^Uffm!zUNM!W3CU%LEuGeQJ zw6=p?+&R~6O*rS;jmVLIf^n%*-KI}xU6U@LEr>10@wYk=*1&Lr5vjoBy5z5;QG*I- zi{K`URK`{`=0hNa#;6z9&KmEkV*eX8R854@Fq%_b@72iWfY-hq3}!ROM~!5Mj@nn@DaH0Wu^en@vIH zTN&xWc96L&#i+8jtEF{0=yCX4zQFxi#ehNHAmal_?yPi*8Kbrb4>?Xm<)Gb-Mk? zz|ea2bXelvdXQM6T3^x)TFWiNB`E?^jS@*Z6Nv>=dQ(c!gK)W~#^KsW17*kClMLnKSvN`ZJ{@Go%2{lF}B-y#fN8k|6)S7`JTSZwAo^Tz~OI z9}v-;??kd3Uuj~qtX)^#@^?1G;NEN00lRt-+O3#0p(1>DB-))n8z8)+30EX;s*7+} z2jN$nd=LDh(;_VM{jr@=+wA<|a^diS#8Uz)b`CbYhwgf()5-#7Coj2q!pc(jm?2y~_T$ zD<-z-9Ed4m=bq6GSkemL0{+$TwbrNeX`{a6CJS)*^_kqoOCrMu)sLnv4ua?$dw_Mqbvy zp^{TAql|TX8`+_5VNk`kxU;5wn6_)#v_)^^{~^TpkA>~Bdtxg13_^YCM_8d30bEPq zO#qJqDE=4#^z38?BO`fF!fz_?PuHef8eN$QnY=3@x&b;?7r_NDQw(#C8T(b}(|NSf z4zjQqdV*zOIKfHwlVUh@!if1zpU!=aVtT5WWfT)maB4BB+9IUs)7jc6-xafwV!{bd z5);hRye~rrt_Ckk6P-8u&nTz7rVz07Fmf!40e`{CK8|NMd0_P=F|XihYKGV$oWCuC`KR4;Wh>taJ^O&F-CHZH3AY!}s6OD0QDdVUBu zzf34l#KBdSrG~WXp{hs znE>D%Zmr@m&@oyzv-Rn$O8J;Im3MAz1&^%bj7kK+C7z=Ito(Z*<_@JVg_6#lDNkpC z=S9T7ngr6P0GyYMEbL(xb|dr>LZJ@3>f zXv8P4tEqTS)dqZ#6FW{H#-kA19q_=%Z=SqTPIO^m3&VPTz$W;pdO8KoaRuF0BS;p( zDWVJFk3vL2djO|5L+jsB zsqk(aE=s<0G^Uh%+ftr%`G$a8_!f|_z|SXYPt}+*eL6c+{&dy88!Q9E2~JXb;wB`S zat>VLD){vd@Pt+X_y&M6aO4S-r5JrWccokcaxrjhb0iT?a8eTTzTpZj>1yWim6Tg3 zf&-$?5RrR>BHh)F3Y2c}2CX@~5#(8rvjdTrQ*21kL~%{%Pc2-wXMY=-T0@2?XKx$R z5K5coHYYMIJ**yyqx|Zyqq}0WZMNH0;p#7q=dxcHiPsgs9#*j3AI2;^Q&Q~5VOQ`{L20nm}9~nJleT%D! z!LJl~49G)@3{+ady6P@mrfYzP997+^s>F^9jIQp*HqtqY=W=EzgRfBy-@sN^pytJb zu02qTa@worR-Rk#TuoAsYNTdup-<a>EJgcF?P zCL$(T&Dczz&fzBg2dJ2K6cbKxk{D^^J1P5iTH;8P85F@relSGjWh$~}=6j#UJnW`= zpvh)8)k>xsPH2z;u<*4%aP)s<%sm1(D**Cdj`ZgT^F=J^;JAYs} z`XnL2n4gUvoNbH;C%gssDDxAV+rOro$N+AOu0(K)!s&*CH_Hb<)A&a)mFTPSS0dil zr3a>Pad-;2c}dY+5WT{n1GEc{G+=kr1&X~MW?APl-#Koq#XpmUya$wq3I%s-AOi1! zb{GbyY3n%oIyd;R_CPU%PYbsW@58R6W(LdCq3G|e3EQ=HW|(*`K?kcf z?i^I*i%oo#6IYt;YAwwK?s`33&kCk!-Q!v@wJ_%^hVq|w<-14w zpqD5y!Y6o7E%s?X!Qc5Yd1Z=W6Cb=m11z}KSVlX!1%0+nKgp66d{b#@-F}AFXFs>* zOaBlq$qJsUb&BZa;b>$B<23a_IE2zNp$Eeg%A2lO*}e6YPwdIMFL8Cp3hCDnl=x76 zE|zjxGBFXYdB&&~Xr|gn@cl^S6-hY%KUlYiBv~a56M!2V5rL?hH4351bg3e(lFzu5 zz96E#P`T?8kxbzdmnzySN#o?E@@M%WN9o&-;9_mq*j5c z1tpe^*r85j9UhW!>qf~%2s*h=5Cs(FtkN12S=tC|0mA#iPUa4&_$9~$F*iZ*>DSpd!}e7!qqW4gUrk1*wbp(o z#TEN7u}r|o{v4dvQrljMa%_!{S*@jnWwyNwMvOjS+cpQ8@yVJ_DpYSb);0=qE-I3k z&PCu)+HU9LVX&Nt)u`W%S{5~i%+FPS-oYVqO(tM~T)0c3RfJy~b=Ts1FO@)bEo85# zEwXu$$v-zn#rH!&n9R7AD8O5V*55`L9c~~Ei-M{1R_E5QI0mzU82-R{_c(&T6$!V_ zuVe5#iKlOn^I#e<%{A8ti0O;vZ7NiXXX|eaOT7z$h(+`Q^Q1A$UJ z0)bihP3#6dY`Gc57nynD z+K-D1@!YO&-H3uiR@>*;cFa&jvZ9)w-oOe(g;!GHJi7@T?Z?)7;ZS8A_sq18L;yaMw$&jZhb_n5xY{a8kN$2|5D5$4+D`i zV7~f??Bz(o4q#VMJbxgvJ|2k+0D|TNAnU(r3aK|~n5rosQIBz8=|`3jY5^=T4%H&j zdWUunLU)^6Kz;cmTQ`cn3f1`ZeujoyGfeq=PC!xnL7QlOLst?}FV_~uIAb(V=-;Nv z-38e;PqCRY%t5TF7f6?DQT4am%%IJa^nLj3s9^t z-hrNeJK6-AgZGAbc3Oi>p0(6S=;$H@E5+9j1>E*p`_}2;%OP4)hKaJ^`)%)cQW1Y6 zk>iLY8P&QI#&5gQ2%YaCpvNm1AG9mdTF!eWjXbbChpsT`al^tHq=zU+64B4tAxO5l z1ZB#hR$2Eu9WBI{hL`6{jn&0(CZIMdQ2Dg4+Rp1dr>2SP?^be{_>z#_ubkWSz zizxEOznD};6CtwK(digO{a_LxJcvr)xY7`E78_0oI~+hIihfV~+pu+1HzeUOA)XMFp`Re7rtqKEMcRMH7J!KT zr_@5CSF{9rw`R8;(bD}whx5^LCt7U3OoIyf%#YRt{ z&xF$Lp0jOsJ@#^<2{HN7R#3H`j*$2@6XV{VF?@XlTKMbWJxQ@n5&KWE%K>t*cE#_6 zJTJYQNQX-qr5C`BnCdg)x=1t@21uH&d2T|qR8U|l>4XVde|ap!!yE_C>8QC{e!5}qFfEY8uaW#M5ChT)y31s`F^l5KZAYP(@8!w)VKraMC)Gsn)aBtks61s zT`wrA2ik%<=c_hlD zAZlD!h4ZoxpBF&*ho~S)KbuT)iN^Edjj(d-gIf5Fu~aV2UOXYR7-@JU)`5c}t259_ zCR+3HYqH9H!l%qCl8b}c(^lA@cLXtCAV^M`N#4=Xc!tq~TY+n|G`<9qtI&-!US>!( zc_ac!gB=Jwjo8GEuqN`|fep!S%{Siz#B;vLq`rZsjprLVdL-a}b)Bc3-N^xONg~yxq2bLbOxAN&R@c zp&bVwh-hO)NB2b(X0^#UNZu>Dcl01wppM1|FwKDG2{z*DwzLK%q@(7Y)&NY9$_I&~ zQf#MwbToNMS1;BlC_14QE~W;Ti6V$iv1|BnioGV#pgR(?thgk*T?~cBM@qP1lGP54 zMgpV;YKRk07i5y=Ad;NPoDLf_s^gQM+8!!4g=reAK476fO?&88z97j*g9viKcQL)UHBtrW7LT*;!tpNqomn_Bk=8{Asqd=x$>6PLaN{ zOz#AfAdiuTf_CVvcu_Q?n<17!7f+y%yer5(!*oOQXLYZUnI_)TLrFx)*^o$j1e(I* zGHZg^;S+6BgI>|73cXcIbd6?x5GAZNQCaG3lHtBoc2GjMn5OW3e4;^fugY4ukJvSc zMj3_OQgvf~{onQ5HSMkmX<$S(&g$R}m0o@VM2qa4gYL1Sv@Y862VwWp-yO?gG)%8k6br?g= z8){NePOboY=0cpIvz|=H;K4c=fsva1XZ=_%Y;pjFf4gkPI4gZ-*^Kniv~g2sj-QY| zC$q5O`FuU(`4k$8W);1p?vm)V5e~gHMSh_7;Md) z7Ah+rZ)nP%TRe`g7~pzWfNw2 znoJ;sVeI&+6UR|45KNdcV;b|0q!3rGwwgUQqy=m;I7V{}DhzQWs?W?OfRFQHbuQ&Y zXG(e2gqcp_qG`^VYXdEB?0mz}ob=bOy7+@!@hGgVqEndT@!Yt$?qac0eLs{p+h{Say3O{bVFhHrr)L`+T zN$VDV^&%L@IP>}pbLI_xX$bf(E6U1p-nuf-$BL*E;q-Z!kHACx9m1c@1&G~n3vjlsj#Gpm`yc*n<Y&(;yG61HtFavn~2 zxK)2-Vd(S3*Db8O>FSQ7FUB!8$ShmIM;3oZU9dRNcirA~XF7AYIQ0viU#IjLoaM|e zbfN}3>*x1zK5`a0#f47ColbtBQ_-5)PRBmZutMikOro6=vksP31wL`EjaqT_I_Jo& zgLUdSyXP;0npqJnI2xcfE zaF(-S#9HUG4m+KDMr?7aI}~=@>O4AsOW>~6=L9Z4=h>@3WUu2-M7#KrPE03fdf?|g zXU-z1%UEajB6*xDw3wJtMUx*IB2e9Ogq?$RogJ44It51eJcnqQ$%$GUNbg-Vt5-zV zgqiTYz*=YRq)s@0(jb%l{oM{nl?ZwWlpPl$c&WC3O%5S-OYnOS>yiP@1w?4n$x$eTX&M#e7I8iGC zeVv6D4tDutZ>$K-Qs+4!C*Z5 z;MvK!t?R)(&h16WM`6GGK-ZGMkWuMHMOVWf@6Cuf%Z_NDbY^zh)k7zxckI|VJwy+) z>uzE8>pq9$L3ldL7ZldPcpT6#5q(aI`!!+_ePdQcYr8T_+~y+CM%0}szccwefj?4^ zqnvRooR)ztMR3}`;SIL4*nvpr#Qca>HWK(cac!H-p#?*)`!`tZIqSZ-={o{-3+4Bb zC44yZ$|p?<^!&pqA53FU>*L%ue=rIu)U{5e^YgSt5OZ7n+L<40b>?i@TBojaXj-5T z;%qQ;2(r<^{h`JxvmE6luN2WwCwAb8*U#I9x!ml_t zOb#4O%i7o?%W1HaF~9R?A%7(6!WNhma+XH~3LkwcH;{1j*FcMOC*$Y9w}Aw-InR(Z za9`lU3!DZMovDEpfdt0XT~XI*xaeMIN}xP2tLTcrfwxvO>wpzdcbMATW2{Q@U_kH{O-tYI7*4+Pn?m5rd zp7U(y&dkrHOqU6yYvhDC#PNFiduBTncN&9ZW{Xp%wkS*RaZkBAG3 z#>#HF^CmIEBg$o$NazrOUU7m)1hT~qE-*a*yxY>e&$X21%$u7kcka%@dS2a1)BKUF z1pbb~A7c?*;@b*;2)4s%NG>^!{-)iqOg>8>mgdwIt3)Mj`DPK69b#?2vPbFSb16II z$dWt7qpK^$&ra-swjU{!AicaoPDo{MRx=TEMq8#B9SB;cCX#bDi zy?EYpW_lVXLEV$$+;V1D4sQP7C05}xU1yU{{k@llaLbvVnQ0g2Wp#>6vPDv#Yhiq# z+jU0#hHe>hO^)tkUWQ6LOAk;9nNcdoZ7iuOmGjoiapAP;64#mWa?hbsTsF>~ zSCT=%H8*}s2D+EFbZ*Ugq0$WWaYIVhwIvy^hP+wmd}&5bnzuA33(UM(-B~Rq8Q$Dt z2*>h^x=Uf-OAk!XcxK*~&QiDnIq3184I$W+oRS%f#ahqy&h@Q}s+Rzz=3WGuN|WQK zp*#v~$?$r!O6O&j-cuaTNUNGI_iV|KyV2ipT8e-7whY;wm4Ug)%0S;{VxM4KTS9W5 zGoHC}+-o!%S8}|ZSMt%^t(er#ta)jn4YF#wnib4aASWvW9mH*ESON{f#46$;T7>}!*(Y}WyMl3};lRUyJcZtc_!UK~s8LUfXub7gJp@_Yf3_?j? zd_hiH=e(?W(=xJB7txMxOTJ|HmK2gLxGxqO!R{Ym|D1Pb?NN!kh@oFgkc9~K+hT=QaN$Gq;ej90y>GT;{{%A`}a zWNesmwb=WO{!!H2Dzv_Vy0%f_&+C&F zPOcC6SK!&fdNr^Sm;<^|`~OC0st|0e`2OmC@y>~T8Cg5TS~())8d)X&7V1m7pws)~ zQ{{B=^1A*`crEwDr00r%jOxE<>ghSZZJeK(BKj|t>Eh~9L4b5|&8Xg-&0@>Q-dT-u z#ys)6WI`}SNh zRqkt9COSs$6<^lM5!Z;9FYOmU9tFE8et~B09VJJI7cb2g4~*&%dqDWfsC41ac1;*9 z68Fm+Hj0fS`{YtFTzXy$i>GR3w#<2^Q|8F&`)mN~K$G}r8H_p_{>4mJYK%M|lpTxv zahyRW`rF2E& z8nL!__UqcF^v0$Pgd;u5>vF~JSL0TrSDLq!?v?qx_(nK1Vse*j<_K3&0=n}-tCCQt zV=4Zs%)t!`f6z+vbpxc3$|zHIi&S{Z3P zaPxhMsovAMNxU=3H8bW;IDX$1C&=uLE5zz-F>;q^mC53p9+@rvHYw=Mn0|?<-YdTA z!9u?`DJXh;yT(DKri5h8X&;NfpWbmcyz)ClTjiy#k0_T=4NFeXCx?byNwBW$7Qw!a z;!hqd+;!k_9K4`x`g>o!Oi~l(xh7BEdvmFrb*i}X(*5Y^J8RUyZvI-jx*>bRn8f%8 zUz3%K+ZKy9xB;(yTgHo%gEHH7?r7n6O^TT=#_h+)J9oLx8R0q?Mts+TTbFf;-l}x* zNQ~IxF*KD2piZTXN!^O zf1?NT@K6ONRTbHDYL7hsc98C=aGgcs^!lm2xcgxRt=;RVrhn48Ph8puk*nOeiDpKK zOI%Z_NkRJMm6a>~ot>wqf4aphuoV(y@6#LKEFT&sOguK(=31mEUYo~a3SjP+G%4N|&x3}*) zuT#8gbpU0HSF9keo?*v{53`jvyW#9?+SEZ21=&BQIUWHN5|=aQg5182V2v$(>4{sZ3Woiep#V@ZpskRvu#y(+iAy7cF@ zGS%gaf3H)F?UUoglSOc_9tB^qdat-41~VeM+C3#=dl9V5E7O9arKeOpSS0&IA8vLB z`sMsGd4(9$*D2$-UqjxP=-euf@47DF6~|ZZ#)7)N4xvbt;D#W+7Np$&c2ln&rSs`Tb5o;$_;OZ&w0XLN}BmZsyH zUUNW9=>xxKREdYD^aDSuTDyM=88I6_G{v)%1g29(0({;!#0yUt><3|>p+p$#ZNfo#IXeAdFBo?|O>SBMvjgCjqV znJ1pH5RhIsu3y#^U+3MB!T+Cs*793!lW!?yp#D6wbVEw1cx#x9rhv%&cy_!+g-HDMu-awZ1XNY<*3(B%S zb+V^L6r_vU=^{7XHQ|(5(^AsJnxKrA@YSY^*_GFcOJsI<%cF4dzbP->Co@9N-uCC) z#3|Squs0c@*TR8}t6Sv6%kUO98l^@{6Cdp&2`LH-iTn#73sy@;%K?4i&FapH*dDmgEd(cIas zOcUl_z9Fv@IS6Xb@rdk>)~9!GIDf8d+Q@z4B#il#Y}62?>2TUc!GiR7ZQCdY`|+7ZL_si?~}A>r4E1Gh{6 z^>SOMSB}e-+qYpQ;mnJ_ShC+MQ$;nI?VL1`*$?YJLw1VA`vaYDwjL6rgK}f3cnV78 z;r0&s`m=Jn%teRJf~MUKXH~vRnx_XkuR}bJD|)!2Jzbp8BTkkoR265Cikc2lKTt1| zcQ13xlx5wv!_pHgu2}66|2(nJHGP!a3yT8>f8TQPhuE&A)3QJE2D~l1p&B0le)yI( zOTQ`Fg5p>xk0+1Ey33w{#j2b*P&5W7lIeMh&Gift5bNb z!n19hEl%pa4tqUa&Zcee5}{qtR*=NxU!Qx!JD|kG%3$oHRau)BuRdSY?-%jewE0|i z!a+$?tdf;ib8g8Mwdr{NBa!40%lAVyo{+purnD}TJH;yHr-)O6VukFA7w7cL(UQ7~ zOiJvdh~m6ib_S^pUG(Sr-cTBN0dyO)dm1N+5u!;xORFAx;>4DS)Y4D9l5YZWgK z&lW4OR^x5ftM@}T8u~;+5XsvtulU5(btQDjZA(jD+oLiM%HvY1tu*%qndTLnz7~9U zYOkCjI@>(hE$O&+Y?hn0Z>V}2tG6G$690_tftTa14PSAitS%K#T39x*0K0SN1{v~- z1zjRT?xkU<)k4fW>cuotQ+9Gks5o7?W}ouNp6f#oc0YM&!yfF|>sOK5|I=x-ldoGv zX5%lXQ6l)n4$ns)Ma_-`5h6Ky@>hU38c#Gq@^NYU4V zw(o4}kk^R4C+(f)nmuw^`?A+V6;*5H70-mddtB4T!0HD2OI=e>6i-m{q^4ht4T{Qi zF{VpYAy}-WkdY`|Vr;sotP}~A*ioGuyrtr=$ftaJ`CiwI5v~hPnIhX(`ZJfx>(7$! zD!H?TZ|OCgWOb-R6Vy#Os%N#1BQXw^+P!S%>(MNEff+ zdY7o2*e|T zV1+ub4c!V|H~Qmu<;SA62f0(&it3Dc=bb-yYbgIy`8VjtGh#AfbM}ihaxdZpxmU~z zij^KjkpYPQ+cBi*yW5kY9D}%eaP`2G>F*T%R!2Lu<65z~-8DBxE?p}3K}X{M@;TXw z|7~)OA1SNQdX;S5x2H5?W zJ<$#`6`)FCD!zb6ZgvT@*#Pt>F8eCy{!9+?#<$gvM%vCQjTI{Sr8x{*Bi@811* z_w`qOY_H3RSb0(X9 zTCk)zOc{g7sE5u`8fj)uPG2sTc}i2s7nzp z>6a>3bbj;U?bpj|OT|lZ7^>VTwjn(sezndc&ct<7W5)sTMzyJN;+|Mndd#kGi8cLj z0KTY&jycrX*@=-}F|xzXH^QNkYDm&AUq_+dx@`GOjeJM$kguZLlkrd}*`mns}6@nQ_DZep^i$d)jN+0e~nJ479_IO#IQE4|*^up@s{wF}H{ zParS$H&x`)+?hbm*c(;k|Nk(-Gq+ltT6t|JjDN5a4o7-}GD`Hv$o}Wix7(}8-TDoVG5S#X!5Ggc zbl7xz6+#gq?l`4VJQ9;GeuhWeXtu?#<2>Sy#%%GO5nY#w59?*NciVO1^|*AgGsc4j zKxn-#UDS8oDmVT{E_)PyR9#nCjNFUGUM+h{bKdrP_uVMQ?0+3QuQQOb{PD2(ht;#O z;#%>$b$btpTd>5l#9QlJ$p{qp$On+@xE(PuGA_xViv8f?J7WoNg?__bTnk_31Hmm11|LiuDeTkx5r} zZtDC<&E0Z*H@W<6&>JUq z=Eac$C#44XtWkzUF$nx(#PL7!9zQDb6ot(J?bCn_f_%%47i1L$za;EE| zkxQ>$D&yY~hnDw=YbL-*-B`WrnVgKYPPsI+dl4O}{&F1-euHB3m~?TlvO^q~P0szX z9rC;4%LE)fRdqnMk3-UO>vUIg0z6fC{ofu#;oWP6B;G%o9u$vVo-LlhDG|{qK>X8L z*{+Er;q5{xPd^|>wb$f)S+xUdI9}|8k-RZR?uY4Y!~Eo*GJW@}t z_lqOC#J%+$;*}AV+hHj;kMxK<`1&7RF8ALq4~l18w#|grCcPFTb4mY-*dF{nhW;Qx z5Wf!fte+z8Z70R`qE(5oY3bD)#ochSk(jLnNLCqI29*@?Bl7o%$J#L{gajk9MMJjq zR$Y&cv||Nr{e9!%t)F$hc!}&pskm-6ToTOdIEcr~wdADi7^zZuFW1rx-ZOH)?EK7C z6knD5kQ@V_3A0|4EsDFaPPSi9Br;DwA1T_g$~I0Ys6nJm%T6SQyjMo&0FRorK8lo z_|JI$8~=JtP;{+LPRsf0hD+tB^$@n1aF`C@ z>G$#Uz%l7`eR~6j@TrGleK;4yrX2?jJ5Jocj+EpLZ8H1W zY4esI+_-#hI4s|kD>7$YKL6adWrzu{Z@>`6PsYHaR90?TEPflGEN-jo!nH$uOlNB; z;-x>H26=_MM_{S)bT7u}}PbSvs!i_aLV10Q1)stGg#tO6JW{ z63ib=CS&$yDV;a`aI$BocaNNYlblJ(mmiXU_XRR!-#SBf*twTql&YZq3#9)R%MsV& z99ed(IT-%_=B45}30(_T`wEHe-P39Q_ZHHe-#xwZ;{%8_#rHyxo0j!>@W2Wx^!#`# zbf4Nm&yTNsxKw`f{%!=s{m0QH-?JL(3&+qeG)T`hIDbp!w2d#ymK<60On9XjPJs;_ z7pth9{=&Bj${!#Kd%Rm#!y+PgA>NE}rI2;Z7Qc;w-|{=C!0?#8`@}cb^}Zm-x0KZE zc}^}5cgtF+)&nERlHMQcxXE?aDche-!)P&08##AJwRp6#U%U*hv;$gc{fRO?CoP0Q{kWEv<(DHna>TPBg4dg^V85(b^w)NE zY5q;v`bqKqE*+4ttr_==mLh-J%#*~UXL$dPOD-Jwz-A)|QW|xXl$zmKd z;*L`BF-~cZgEDmG$6xA7A1Q7b4Gs9K8qy;7k9M64{c}e>3@n`QByrOT`19#n+40w~ z7nP>RxTc&W9&(YxmDTAzB<_*08h>f?$ae9EWpKOh9D~k6k1T`IMn-X8jO)CZhtqJ( zd7XUi&%6T)qOlk;3P@$bo$1An+Tyit5Tx${lT@{2jji}~s7UP%8lIkZh4nw?zr+O*tM z@i(zoeDkusVq-h}yY-j37R88-!{DobqgVW382lAE19_edyskr=?v`A|=)f#bczUR6 zk0|MqkBHCL(do;x*lXbX@GQu#{Ok_#VP2Q`ZmQ>-p+L$N$PJ8uM&2u0U|M@qIm^)6{S!Ny+5CJ+pQ^Bt3!wOZ0r<&hF(B+n^KHF z%O#cdIJG8DrBz%dM;yu$pWverG2+X${ma_Ly`{bMX3j4rr;9g+q2hyX^rCNSP)zRa ztO|5{_iYrPF6k3tgbi1;V^hk_h`v6dglMHlT(cS?Mr(N0uzqZo^f&Pzd{hrkr zZX7?+4Q=RA@IPujw0)XADYgl`yOw{Qz?OcGw~z~ zDE>Hg7Y^9rlaLQVDIf}isE)TK?*}&i}JUsy1!F(Z*^0~l zpG!RAyHk3^dnM_(rqA58^xTY`oZOk6i^Yf7v>PX8i_dYreqvBGWsA6E(S$JFgEQ%_ zjI0!~sWe;MIi*9qQ9@V9PYE>qWRH027}=9FZ+A_nc(7oXcs4m*++UC+dQ)VQYvKr3 z{%G-J73@hu`f}MVo~ZIvBkZ0h@4?F%LA<9y$4Gzhlj*s2Y}e9~ZhGwc@yr*86wtnA*~G#q-ENPv5;%JZ*Kz>s||Gq^%UUv_ogh zZCJ;Hbj&HPo7pdJFTlZVavxmGe;l({Y(loSg^r1?t%hnr!I%6Lm+c%&xu%!=BnSs* z!rn>IwOD!XSItEJ313*gn2KFBlTPXmEv8~u&qVHbTXk0{D1Cm4op+6;O&6p@^~;Lu z$1`2-7;#ena+n-Aq(~7DPe13e%iF#yuFBsl{+yC7uFX#thf+M^9X zLYS2duN<@8b#qL7&Ne!MY)cQ_D{IB0@I{}rI&Rn}KF`PA- zbdSuxCgY*owu`>Yd&T&m@R7UmOaYnsr;}xHBi<*ZW59O`5WIu--DE`cTVI2Id8|Ov zsyvaL96|(uK-as$8~(Vx6}ogZY|{r`xa2pS85CzDb09l1rh7$Sey{j48R_2)47J z8rI76Z+*ED3i7xPvD;lKo}L;^6A!z4#8Xo}xTfQpUN3%%C(qH7`vIQCll$@H*{RT+ zmEv*lF7Y_Hz8!)`@MpH}>F|xNiTvgibm0Q(C+(pa256k|= zn*E};6vpRQ82H<u?_uKJ#qrsDn6Aya=*j0eb=-(o2tSAX zJ-Nmse&wMksCQCut9V(#9XR!V+0!H5K#iA>FWO7T>34&82nP^vm*Qp%nj76CUMPh@ z`3dmfk#c?|f0x*vLTB(^v8Tl&_8*IfzXiC@y-U1+dHRXFSNwcxkLWlS>LtHN+@BJ} z2T)>Sf{nqlI;*-d5cE~!4RU|8<@1%*;gxZ#zOf-#?ZZpeR=^+hRW;!?YF}ehum)df zUtaAmul1Fc*IB+0PHX%XGp&lUV4078U9)J>{29IlZja?&RG8;>=VpRov;R_md2oh< zW;$q=<*TegwMJ0%Yu>*4P|&}|7XYO))KKp80R(0!-t|?!mOw)j-pLPETFw6Y#-QJa z=Bdw3Wx;AI)Kt}sF<8NRU%+3EKD7mWtNfLX&3>O6jn!1v9Ps?CZVjMqR!t;t*fa4qt#YmwJNTwtB(%^e1Y=jnx-Je7HAALm;3oGbzga7112Nb z>eNmDe=}{CGjWCg=+U>MValg|D@` z2A>INDg#e?2fYd9F!1u`HmfNV^x=(n3r#fmXvVFIMpUcu@uwM@nj6dgSf>VmEA^uR zvrg-U>a>OtW3=qCVu{OwHRWm@xQOKoR5vyU>33i8U!Z2K^Y%ZQvI1qk%Ch>Jx;6~4 zC~rZIZ{dOk`4|J5Xb3hoS-z~ICahf0s%xy`c_vtou9a2!tx9_J-@157angb$d{85K zmW9t1_#0aAd*mU^U2_|CsX1t2LX-$lgKD%ij$m_nSpX~5tc2DIK^A75gO2!o>hlaW z4QQsmzOe<98lcI-6f|P$KxnS4Yi#x5^AGsXUxv>`H2Bu~n;Wf4Olvv1?`y)4!3nKI z&J;*h7+ni?Mupx40c;B_7D=z&xn@6lSJndYBJR3Id1GU3jo&KGypSd;)9uU4Uy!#j z)0dyM42vKGvDXIhZkTC2IN0W(&#sMzf*Tv%F& zI;~~3{!o*WOTFxns1|=6M7XTNS6)|x&rSI7F%|n$3$zz%0u=$Y5`uW!;S5a4|_ob!wz7JyFg!vEpR@K!)IQ^FDx6dB24?3XSUm2>aYf}=W)QLY} zRX}KJ8X)S8*gM!nn1JT;YIO}ZhM>xP^ow#>W>SW$+LVksl1}s9SnF?4(~ixnx{ZCQ zR8>Q$-ooTm`uq*$jTL^7%L27lwNJ57(_URu;kO6KO0FEMMN^1sR-Lc00g_!JQIM44qf$YCy>1L ztQNP8tqoA(0X1qU9DFQ^wlO~Gq&{;)y0`_#1+(D`mQ_IuqG>d5(flfH3RM>*si#lq zu)-l>Kt<+;PHV&AE3dA#Y+=>|@~>%vmarPIc52DU-dGFrmRyu|vCr+z&-7iC1v6Gn zO;y3ltg2~-{h-e>S!Jur)oPpl;cE^xpjpf~_AayIPH-2LMJ4T~?I|{lzq!epzhFUT zQIRhP1Jf&uI|<^g)Vrp~G)&4J#wU=9O%i&d1h&@REE1))6yp{gpfj>e|&G*{F$Ho@wX zGPP}jHj+wjaUl}y!Xh_Xu4t?;t7%ZPOg56l*N7Ng4(NoMa(j=e(S}q}Wn>EHms)D) z1uw+a@ zZ+$*|)Uup+5_D9sT#2-mxn%x@xtYG4%*=e>{M@V(cx>3vu=8r#m*g$EFc-GV3I*!? zei-)wTgq|9)Sj|eY2ji=-P_uc^lo!w8+iq*>dLU+Lk;wiM1MsRsSV7mZKUCD`Kp7# zrhu9pd?s*Bkhh0DOl6(*FjZ3vFD{%P*_iSJ>T2;RK3bRRGTJ|+6iFM{dmHMAHYXlK zc4#fw5v;9g!i19eG*mV!b*Vm^35^dEr{t`;BGhCxH#PjPfi@@g(UvwS;jALt#m5d++Y`%PSySaW zmtezAsFFtr!74n)ib)%f^x^nmi<&Dj-hzm27>snlxs|d4rsAw7i8(gQgHBC)e5g#1R z#`5#dLu683)=-H}RRybT$5lS~9JZdt)Q8H0K0jG>v`$`}pM)6}09CX&2K;rEyr0b4 zL*VUTt)85<3N^1rtZgq4{vPa=t@bg+Eogy02F*5>^lM>WF7#b)Ua2pyFze#1CFq7@ zs1aoZni}8|K+Uq-lU1~)qNWPdN}N@P$!^+)pd7=(1I%zawHbgi@vROaKCMtILNo+8 za93&4l>Xsa!#yBHYL+b?qr|FQg=Wws|AFTI7xBIQ83(0`y*o zN>cG8{~8*`fK>i|q^Q}}$_N^0R%qYCxIm|?G9)Cva`JRh!M=gAFgLTPdtb(ANSf{Gn2ArtBL<#dR8*Q*xUk6fcF9D!;Wh>+@UR-2X%@BY zG?3x-!IqPMk6?`^ly;FLp(KImaHyGbN$6EsFa%{tN(p1Asbb~BTP&aygL1zRF~d|S zS)_Zo+Un9uvPT&jit#BngL_z3r*}ErV$y8(bkQDM2yH^@nCeCbtONE4LU(8nqh%0K z*{KR;MC;3{u)jco&{<207b8_b-d_N{1wV7zCO|>^D1%aOW1OT|vU9 zVj!}Xc&fc9BoEcME!cs@qAa93D0nKOBB2IWe4LkJHLsSBbd<`0EY5T<%3G*vsCdnQph&cM(ErnqVXt(K+Q+ z(JZtfYY2~it)GNVYfy{SFpRz(-$OJSn|zgZFkIM5&}a}5)=Oq_Ng*J+Fu&NnC=1W-c(n@)^C!u38RzmE;1y-ie-QfU-o4;pmzDt{G18Xgm}pFs)} z1C$=ah;>pCvQ9>uRFBdq{vahFFoUf$gDSVBd_n}nWYL_YK}aVJNc@xtD;tOHOY_~J zz6u7WvPs2aPTElkD+HPxAeaz}*OA6R8lkDNL0QN(G#a&#oFAr{Y_jr^hR&S7(6<18 zp>q~yy5}!gl(|q3k-{n4sv4C{$^zb9t=~e@#W%mmS6q}?sKX^#hsv5Yq=Tzq+z>14 z-K|6rf>{A~ro5WE0;`Sj*@+Kr#4$@G$1p1@(}xr}%AdB6{C zMe@^59V5&`Fo{gGlBxXpl(eLpc7(wRTE*KwAh6ZCJ`org`l2TT-6@C_%}9M2B_o`P zvqMA@e6{!d@R~^sk%SshUFk{qp>~vMr$S**;kHt$j)sPHLC^wCS5*TEX{l*$Y(Shr zegsXqy~1`-5>QHT0cq_8xp|qM%mvD^z}jHOC?5(%Ujrp-Z>h`zJp-6973v!?A<>1R zs16}uXl<}o)9&CeEH@i`;qnnM;t4gKSv~^A;2@hWhXo=H3WL$nqg!)ePIEd~Nj@I|`W+iZC6&AIU+g2dz#%0!=O@=T+t+QhlSEoe@_~3l;?K zJj55xKwxx74hxkp%*)HooWF!R8GxwT@~c$}CFvoafe=jyoJUGB6!lBIv zMdKrnuc49L0F`N>HfbtY=A87Q+Bq~1+kkQ2%r+Nfy&CkQAVyQE9Ll}w)Qa+)_}Bs} ztf{6UVAc7NGo`a7WaV1@>NsM6uvXeTB}j5d0#8ayD*!qwL-MJK472T$*nvGgHYNlW zskb^A$bkw85?ZP7w?N+qU=d;G?XxeaN+Fj~qk%vv(P&}*MT-~<9&#dd!j#|fGTDG%Ca5a{aW#vt~j+Doic>{Af-5o}jM ziB>+22(eRq#f4ds0tt>yKlAl2~wC{rN6V5EX?$1Hv{fA(*I4> zJii0?tBM(wS+Ok`*?j0}Q$!g~Qlqv3Lu5jUY+T5}#|7RzU1r;tv#EDJn zkYmL1Fx9JYI@v<^6&<@A|4x~1&_^=2)&_^|MY4Hy_zaEMF}u*%9QM(7NV zS+F6=bx_e5Z`;NY5-`ZO}_cQ73{)A5z!Ju!eGWPz0C>qqx^OEY_1D2ETV^l04i_u+i2;;uWrW+05(pSb zSnV_rc8^tyyn}_QEu8OLjC`Cry(w~>4dtb&TBZm3ywvvNl!;JUKr2-eICXx^Vx!cW z(i?a|f!qZfs{|t~DbzUWZuq5;UkXxLtf=XlRnP<~JBf*G;Cu+u^2)QIHG`{l*oJh1 zZRH!}zzTu?JLU9F3JX*2C}eRZJZQn@hnS!o>}C>`pMc{gVLaN$%lge(M-vBjCTk4Fc1g^Lwl zoL7i=muxYe^V_ZwD*)woAts}iXWDG?3Q-sdC>6ips{}DuHJEoKMaVN&4i@KzQLv1x z1d`YIGt*f=3f=S>ukr%0t#D|s90A&o$_JwdY814Fws&H$s;&Af$svK$p`0N*JhFQZ z29PzI2l?@p9UPp{shpC2TN-H}*atUC7joX4Yuk>$t<})`RrDR0zF9M|3eAC;(LM-8?VeD)N&f)DWpV<%; zn%gN$o%4jys&pG(TtWr_edWB=Dmx=ZCrC7QSSE`9@w6HnP$i_4P9>$GbPy$Q=(Q-e zKsYg&Nfwu~PRtWw0=bxqGaA-2uMTOHd#uzqSpnM**Y2uHit|KY+6XB^N(lB9Y~kI& z|Dc2xvOQ2oq|EK4w!M{M&-I}%9i%vnkysnBCMp)32b&U2fADcTz=Ezg|YoS4u6Q$03*_rXLroJM=tE;KEkE1cq4UH<- zjT}2-ElRo47}1_;$_`rXmq560q+nFWQ%M^HOMU!awyPrFif zrq+4KKpQ&N3g`)`I6Jhb#iAewP5_QAb<&D9#6Tqjzx+bvM^MpDR9n85Af3$d=7gRB zbM@+)@{B4-v07_L6>H^B8mIw?l9l&(Ji1L!{eO>+Aaw5O{pfL97FDi%`mbH z<2B(7rziOgdo;;qg(Txq`08f*7h`!Co~=pgR+E*~{n5JXhmGy-!`~)r?6{zH{jl*Z z*7)I9F1ulJ;<+P7P8|Lv{*66lw0#|Y`h=u2#x+^v!^~x;Y2YOd&(*SqHj6a;gCWJ^ zYmVt(oxY+J!$wUSW(BRJ@OSl{&|->$XKNUCNCgjQ`1NCKwlP+L`iVl^-RO`!k8600 z7H{yHq+x|2U8mv84ykY$zFC?6Ez(!~taVVs#|`OS4aYmHUdV8=CJnPzV@%olZnIOc zfZ^4L6=XSLVW2g&dt(0by3;Qq(7zZfpW!Bll_U?I3zDap79y9B+V9teo~t?z8zBEIIV4DV&)K1-wdhes=QdKVDYbUh+J4K zn!S4F?-UJL!$71N?$?hX4snbtowY8&PX?%e{f2a+UfA`{S{K}=VVYT3hJ~8+HLLp| zR6elkRdC6T0zF~ju9weIAGu7$HWf*hu?rw|5zxXlNdgwAA$Qw#uqrkP{?qBCcXRL zF#-P#>ye}k&e;D32QpU5cHwioFj>RzUNq;F#PlI{?)Wed7{6Mj{v8}@;N71>?2m5# zhUocMtbOF+e?=z$;tcS}Uop~fP{T4uH59gKINEIY=^Ebdki2~wp6hIPccF$)8PW$D zUgT_dZb_B1VnU}%e|t@Cz5u@u$oa1%7$Fz@!znSb^XMG8$o{X?RW9|3!x(-K#zd~mSaRk`3`Weja9(1Vi+rYwjz(9hXuvwW z96$eDmm7g)jV$9l(`sfYUhK1Sd~zyyC81|+XnX9qH4wcxQpp7eJC92Yb0K^uiTdY0 ztnd(O`KSTScuc~;R+#%4x|IUmiW=g7EoO>rf>}@2O)Q3#{SUHdw)omy_3z&>0%pyT z;J;@nm^-^JN{2x()?i7-j)PAQD#aFuKZWKN-}1qgQsDU7J=B9uP_~7(fK&?jC@5V|09#~RoXgyUU)vT^}Gl@FD<0w z2Ho6WrH!MC$ya3Ze`!*9GII5#dB2ARLL3T4nN&)J70BJe#PC5~loLv)ke54fV3%9t zkIVZ(VwlrRoMns});jRKaPsXfiDAw@a+-M1VcmAy<8Q`>OLaK9QeUHbO18KD>MBeY z7vW%51u%~Bho2CfO4jloPFQnHOmPGl2kknr z>u*wIfEI>7p8MGOiD3?y=jbSz#uudWNS zF&G)j*x?HKg(Pt8V^&T|40FPg6WOKrE&qBV434dsbd zxPI2Bed&o|PIwd#vmI<|A0tBOLOn(M6jZhKpLKj%F^&g*oZI#c3Qb3l9`A6dnGL(TOFAVJ^Z)CNy|cwEIIIyj}VM&5+YL ziRgj7S`;dF|B6>jE{_w5Vb1Y#?wbSs`rN{$^FrOxTS0|b%Jrr>$5w@kw{N;@A(^{3`0CAa4Bb!8&+myG_ zr@Dn$C*vGdglkvmB6N7nc#WaOFkv0v#V@M3U z9a6DjVWX}3(QW!looBq=(Bc^1Z)gdO4;We!7RUIYp-IM{7+MnJ&kQYr z@jnbLj`8P)7By)+)?QsE#wupW-HEZ5GyFi8qEqGKFyC=ID9DhTvBk2?@XgnyLh}37GrrgvL_RmXT9c?4V;%~2 zJVWjb6^oq9otnkH4y#tl_$P)I$M`-&OJIB)e&?M2LEw@YA8%+0j88DMIL0R$nq(Yr zXi19kfIr;d-MSwT4~FkJq#}mQ(Uw8JWBypL0h|^5ndb4V!z-U5_ZT}nn$hy17;#U~ z7DKN6FL#RPF~%xk$ej|_Wier9Y{pj-*{zrKxVSH1^)J-=%$b!UhF@xuumbI2zByJe zAO;=HJ!;OQ`;^b!GmHwN8AToQC+TL#8TpZn&oHz&#wmuDz<9l;;iaX=WB6vnfP#!W z3@wiFm4+r6|8XEgzIopiOkn(hp~W#iXlRo0X9F2Vt}jnPfi8sY!LU=4Y_a3JE>n;p zH((b$dJArDfu{jN#gLmJUhXj8aZ6C#40*(;%kaYi9d?KLj(dlKLv=0R8B+m6UNuN0 zL+%W9tzeL@6>!&hfl!wrcgC*EccyDmGS0kiaK;4xJIr^tnhrDk)nNrATNq|h^~mva zBU~3#6j^bQS&JKP^BJM9ttD|0tp2N6VceQU1tk{U|hakuLpco4(Q{Gd}kO zdjX(w-m>`S0!^fXjPD;B%*7$VIgNq8Q`@!~aYa-WE#K?}F z7E#k>bzhJhQITk0q25AIbiIXNq28j3=z5DH>%FTdjz>zq9%CLgTtbG|XqHrrG0y{v zMRI>!7vJktYn6H7 z`eDvvCV#`}M^rGv>`jqkhTn2(Ex$%X)6b}lu~Qd$Nnc6bFm67{UMA2|8Lu%k$@n%y zOO0Gu=KrzNt73+qIHV$mF3kxN$gsvCtzg*hkn-1SxKUqYapI42gfQP<DxXuTVz}xjR@)hEHowD8=ySnq+Gz zzWa?+u!JG^0(B#|&IP*kDyLSImKm!becdS%#bt?pR5)~zBK_zH4Rz=un}_DoqaWQi zbdg^D=mC8dR?Fks%{7C6P(S3^{Z}U1aIw)r%`5g~`<`T$ahs;W>pE!h&DsG48MhBC zI8+NK>OxpYh8H@d5{Asm7K@>Ho#9k;GYmPT9w-Iu7T=_5A{AtO z|G#yWJFIxJ#3S6{-&N4fkVk$>5&c=ggX$ z;R#LyD;aXzwq)>KnkmR|V59D+Xp$TKnbT+i!*?Ch3Wgs#q#}mgADC5!+!xl zwG|8pcC8?)Yd7o0coJYn8FEW8)=Fld=dfSNaHB(tl4Iu0V}*5O$YaHT81h&VF)=hf zSP|WW72E@_(}NO*t2AjC)S?yUJJZ#uZSk<4hOari@*`!Ki~Pe`9ydeo=P@{xo;5Md zx7_DgN{fKb_q;N?IN$O@aq-9w9MTOldrTB_T;Oy&Y7st-s^yEW<%?`9x|SmYEbNI96Yw4H=HmBw+>H!(XANFKDj3s@Sazd74h5 zl#aa<@UGB|#4tbL8H+Ooa40FEoqm1d6f9)O zoq>nW@I<#<%$SQpcMesAxuVCBMR+j0RL5G)+&w0Za3-#RA&>V6-HT-W)x?2oaYH!p zd@m|-kfb{_USDamGd|1E;uxnGS_0$QhL*&5j-gFvoMvdLjL$c;IgB6FG!-E6%|inU zGTvoqsf-^sw8@MgHMAtgj~iM7<0lO*j`7b7O)~zYrl}4_N&(O4WL*gAjUn@lv3v}f zrLD;LjvGM1q1Z2U*t;3>aIsMtGDBOp@tt8GwO6_KiyZa^40+}dOfY1Iwr=A)!#*lI z8O^?s+4BNo?=fVCwu<6A!#--0Mzi-Y`^TLDtz^gyiM=PxcZU7S$hptbJXSfp^4Dp2 zw;?g3J%$v?i2KQm$P6>S+*I49;XQ^F$((9(L+_blkqsWykN&E!w9Oe?qwLb4#W5ac zXi+MId41|MSIm&BlhM>1m=jHMag@XVndb4OzT#lPx;{pJId8d@CVQHGYlc(kDnXXfCVtl{Nz7DnpB7Tw`bnj4w5` zB*wLdHkt8uLrZ16!_X!(-f3t_jPEtH1jhFnS{&mC4NWqB$k0+5?=rN>j2||%B*u># zS_0!I4K0rG&kQX}_;`-nbr}dBL+&=R8VrA`OW6v7@3dGp$YZdaM)MgaIHZyp8uC~M(Vw#- ziqO`m)3hdiRj+pP&E=X1WzX}`?T}WyprPq{l*>3+i-Rza6di8tdZ)1xp=XWf3l_t# zNmb4q=htY+U7`_2GLO|v&D`a4duDL?$(qxA!#tAFUd@QRCM=l}=FV^r6!B;^shg1% z2kZK8{>v>!*2I^bL^e3c_nvUAgSuVn6XTCH4RZEbM7KbSWIotvn)KARIa6HB@LQTR zxPs`?Prqj>GW?-K%4hhauf%JsQ_;Ut(yI@g_}E9gN&|JfnZmBZEa^n5FB%&0x4p zlWZB}yY;3ZLv9o7j^3i1Tjbh!5Afl3zA>!aM`u;QthmRB+!%6qZ6m{X+zbjbG%ZFQ zD@9LNVRVZngSA)~j&89ey2ZkykI};|vLL{xWXNsM7(IiuxH7s$&(T^WJ@us)k73SI z`yx3Frp`Wzs+NC&=D>4=9b$2>{rVZvzM(NUGl=cxdHC3o-2#T(-vn!&)ovwTW?$$F zKij9-AN(1s`Onc;F7Ln>j&ZBUB^gS1!>-D1hn$5_Z?{J?3kh~dB%3kPYjFuKL4 zK#hk#)2yvze6FFzF+R`G5*Vi$S`y=QLz~R_0z*q>ywK3*Fist7&kL;1TNdBU&_oF2 z9L6&ZEtTle?vSF4uvhcsA;2^+>Xe5Ro#FrI8^NsOl$+GNIO8CojiWJ8<7_&d{_z4)HR zH&fuXehN`#8spn?M^=!8yvf@p;!uOnt`3&bJ+JzySZ>@{vyQ?%662owtCY`PdUO#Nf z5Z_WA=7R4T9)HuY;5552u&vOr$B=%Y;g^OK|8=`UmA+yhY}D}d)0x*whO?5Gv?52t z9*4B-ehnv&<5J7AHQeHm3b$%FMW4OGZMs;)M-AyY4GShPuR_0uuN%@w8vbaaQ)-`v z@15b0#+_-yPJM+mFx>2ryjwLqX%bf~PSLQ_A$h*5;RTbql&4(77aUUl8ydDw;Zph6 zYWRvn^88uD;yyXVb&Ai_p zboN^T!(nN&5%|GHHfat-lq zl-zT@fI}8N+S-io?loc%=G`^Ju~`KSFV>{G|7^Um_75%%u0M{v64(U)*?9P|Di&X@ zqV1i`8}a|TIvjEh|6LnzC~NGtsyZibzIHmD>VGn zkm8bTXT_(l@NG6|_^~0Ks{P75$JH!u)9@P(DW9RsaW#t*HC%5W84Zk#`1nr3SIu2>^9u1c{-eVGEAw8p^NtLXyBK~oz z_%AKR(ONR8mhN(_y<>p-flZLcc!?{jq<>p-ftA_MP4Lwe1<>p-f z$xa;Q&e8BuL*iWjcbw45eT#noE=`{_roH(kGbNyc$ zQoIhDu5{w4LeBNOoS>=j6b*e2X({LW|7=K72TeeeZ`F^7l1Qjym#C~VY5hIf$dW>I5>Ho)HkNW*|`i-A~{(6`f<6W~(43E*C z!1w>NPH-cK)U(ln_|Qe89P%NHMy%72s+$+7+wtHEf1u$3hg1@M{uTAk8as7oIG&oD z;kk!9b;J3-&J<AT89^f3u9dL7s_9jE( zqyPO5sfbgwYa9=uh>!mF84{;xFLykIqVH%Z9Cx6IQ?z#*62A>_jN=Y?IYm3wAr&(0 za!6i&LEu=&L&)b8?E{9yF9@9CI1TxnqTORi{DMG@<22-RiZQSk+Q3OCtN@dX?z{>6~^6z)bx#TPLA zokrvJE5YFkKF#^kd|?%xYp6#%Z{YtpK^*7GyJ0_@$TgNnT|dzX2?;b`zvjb ze=*(*Gxsf~VTODLQTOj?c*tGJt^V0`i2eJE9o<;WN!yzpl8;?}leG0&5&u{R^80!& zYetw4JGq*o9i<-L?^}=ep>+?rrlv;JvYySIMTBb(-X^C53S!YMJ8ClQf&LKJ19K21|;HJ%U zoRc%I>9Wp=YBRE)&7CEWYYyI~69woU?6S^tP8GN&(IVF~vYySIJprycc$*xIm~oyP zX19WCx~y}f+KjAcbC0Y!c$*yjnKoxTUYluic2t{@^=$6!?{Uq++pN+y*0eb{oT+y> z*K}EPquPwDXLFCNIe43sqS~AjW`$$goDo)n;Tp zn|ox0RavRiQL749h`{j}Bx%W3Xyz+Nwc)%eQG5o+GbBLP>}I$0}Bq-LY^)J9mDVjhg8Cl zS=u^=@3?_M6v{%)gZmd_l``bo(5^3C7Uny{t2DB!J2kI8`bv}G;2Cyl(2`slOGA^4 z#~51DQ2c-8jJtp#SF`ob(JK~m#eX`ymNOK(3&g81%y-0mXE+rL7!Ir${pnY($j#sbX$;c`bhR+dcMF{s3K`iAG`z)-A{Wi0AKk34gM~(1hFieQGaRHb<^;PiRAVc2W5-(|`)gNa zeqxx3<>q0G`c_q0oET!hIYpK>DU`!jy>)+_vg6 z59urILB<~%S`y=fh9()0m}yTB?bXPMV*ZcndiX#-!xtS=0mI)qq#}lY(j?kl?l9kR zlla_qWQ$Mh3hz0*mPgl$@+*?`7{;5iNX8QlEspV-hL*tiEJI6TJk`)9GcGf<)c?cX znFq*KRqMVo5Gnz*7=#8QHUYIohGr0gihztNV)c+Ff$k0aks3<6Jo!Z}Tuj;)|CE>!o@4m+$tZ#p3?KSP;>~pHR z0zS~WF7QFlb%HTQuJToD$9V0WnyZ?`hC-^L=T()|ZVp zMq2|wdfPZ&rK@fzyB!ecqlz>9NCd6*qWONz?jb5D(i(I{;8CI`R*o5?e~joDQN$B$ zq`BRtP#BIel^MXLG0NfxA!vD&Gl1@)?3W|fRvc)LsZ0k_*pg+I_sX6+a+U07A##-% zG`{T^TJm!jFRj#RQ5P!ZYbA@73I48gHSlB3Rl%!o6RcX_8h8!ovfUb=|0!FxsDZe# zyCCpk*8=`XR9NS)hDsRQxYk|KzwqOEL6{YjUebCt2G z67EX&*t}Oy-m51~ty6}lvZxlWaiO(!5GZPfy?R6ZqgTm9G~6uXT8TW#gDB(+uiy5ru8u^wa1 zzU+lRR3=r%yDDY*9E@Xxo+^I+lK6#?;vSBCeniG2LIBzF7Ol1b%KBGTnG3`=W5`k&Q-ympV|^k zT6HQl=`G=kO-3Lw+WrK5O6J34q=kc$M*+;=ry|+I2awckP=OdM%=b5Fx%upLg84?WUaE9&k+kjZ`RziTUag{*?10xO80z>6m-KBKseL4EP5piq zt+#Y^Q{9pyWv-G{`4jT=y;z1mO1W_?L*F|Dk8~;x2ScBXldZp<3Wmp4=IxnUF1WPc zr)2W3Xga%}ZK3dwi)l<@{dH%%yja%M!!wgr0oK4t!fuwV40q+*V1X)dM%xs_xU!~WQ;)`)B5j8RZqTYn|exDJRVo} zh>I;$%YHn6vCP~lSvL*(@B{-?Z+uKwdWupZVFrd4O$ez6oIWy^9TB0D8r}Y=;!|o(2sTP z=dl`f;4dSUeNLZRE_n*-R^hg684B>;&eg#CJ68q2-?0AxGj&mL04V>!)Kk~K^$N0)87T;N+^<%LXaVPjE&UJu)=3EW@ zbLXny$HfINX`RUJ3dLu00f-}8y+CY+A*O`~Q*3Aco6&qf@X<(32Vy8J=+xGml*qP{ zwwi#qMXE3D)vHSbQKb&_UfG@YrwWe9>_Z74L9SGp_pMv=pQ+A!u3&n3$7#5HPSKdl z`L~TUXuc3D*bn@ovXmyx`7!xvz?L)$n`znhQ4eZlhno%C9j8*=k{4W`lDV@b&D@Ud z%%!>|<}lL|UE8Bqs#{`isiOLeWU*O*|L$B3JnrqGT&C9n9`9TycopZmz&ktF4c^VU zF7WQob%OVFt^@pT=W5`(b5-z&bKT(2I@bmMoO7Mv6P@b-pX^)>e2Q~b@K>DcPA3_4 zA1fW(e1N242W8-Uq!l(FTKG0aAg+TVEdnVydK1Ts8f$y~3fwb>HVDLX*rjMu7dv(U z@f;Lsc^rf7>hbF6vAspR}1QZRbr|gN5pN ztz@xDfS+=%27b=DD)=AH)xiIBE<1VP^KR+b0s+!3O!9WYE{+}hfy8IE0X`G8rU9Q7 z73MB2Vz$1();RLR+XFI#rs&YZ zByr78t7x3uq6j|4xi0W&&UJ!Mcdi3`rgJs$T<5Cbo5VGPp>ew_c7qo?*9E@QxlZui z&UJvl>0AwbuXEXSWrQ}9j!jn}x!5dr+qK=PB7JDZ6MdxbZ>N~W=O%J@Gb2ad0&SjIZTi5n# z(E*?8Tqk(0b5-zno$E}Cf&GJ|W0M?sVx$Ivr-=%4mlpO*<_P8wh_?EHpN>=?5QAYl z({l6KP-1>K+Ufz$iqrrQgN6B?1}!(A-IFmtBiiZ(9ulePKnxY;^DkUu>wVr4hyi;n z1Gd_lo;}VSE*qp^N0WO+(Xs4B<4)2c2m4kz5Wn_WC=g5K>Fgj|jHVqjfsCdtJs^Ru z@W2u(C9=4H#J9rL!WJ{b{v9?TGsE^NU~8x=G)b1I5Ie2mY6ytIuwBslNL1_x zULC0+;LVZh2YOsXmE^x4tDuibPN*DSvA^z-JtdHXnr~nTS2js{D(P8ZksiblG|AkNPI7)`ia9z?y(1tl+?aj zUC~#o@klndLjy^yMZ29ZN^SK7V)&(1ok(pBV1RIpO5HEnDKOucES4PjA?Iq~A3N6p z{)uy);9ok|1%Ar8Zt(NrW8sS3W9Dv1;{}lxOgH#n&UJxbbgmOT=AD)1f7Z7HJkGfq zxawRLe1f=UFu{!fpGrNpQ{b$aK;p3*F>t(0g*}EA4oaRZF#lpS-yflD*(@g`42D@w z%gtw7#pWv2J0xvR0pA&^Uf>K-<0?mdtU=?0A}83tdp=>8$&K69elYg06UeGD;yUon zk?QrD1~fqi)^$TbM&CANY=0~o>H{7TsXEY0ksZ4ak(+xY$5pD`4Z_1@lS~6mdltvk zv}4)PHSK3>JndGpjc${~S^PXrT7jXEP>jGcyTsQcu&P@ehu}etR_M(Lw z(pVtU0-OrI(z$N%SDfntf7Q88@HNhLfUk9~2ENg`D){xgwgi|C3l+Ugnb~FuBu3i< zf!E1=*eq$`pk%Ye{I{d|ejusYW(mY#*eq$e`E0Yy&G%rQUiQ7Gr-s{Qjk2vLAeFR# zZW>4+MOeKJS~w{A$F-kQwyUXJwub|c7G;08_^}3!lUxt$KXVGWS{z5~nr5^_E+319 zt^=8Wwl!lNQ$_*Tkadd{=ow~P^R^0ac1*{%<~&d%(?HXn#WtLFEZdsXe)c*o?PgT! z?awL)aTeQfT7u&r|__vbw zxb;uLiMxdmi-rC=;mss%13FFcf)=$jCv?v8Za}(?s~q{2@@8p263a<*h~i<+G(U8su}>=~|DoWBsnWhU%7@gZ3=)tp@9nQEHO;yfDq>nX~g$YRstA zRLQA}c-|J*#sF}~NM(uNqD%k9U4ndxuVjE8l!xz07Rw*}cnoX+_(xIWD#wg8XjJ10 z97yZOy1!QaR<0a5XO#)|TUHQXk3O>G57V4ELbABifsb;o20q5Q4)C$gb%Kv`t_wWN zxo+_1oSO>1@7*CoyVK3tkj8gJ7I!-E{mylRA8@VW11il*yjsk2w0g2@kZDBp5X7CO5HJ+$f6h~@ZoU`1}XT;Dp{chri^yh zC#<8R!$B%|v8bXa*h3uz5^|vi_VBZBNZhV!F-KbFhKJSn2Kn}|;=tn9I_B=OJ2A7e zrpnkYec{XoEg!OBhWZ_G)(tZeeH4c&7d5h{xIBpL!LC=%4~oN62NHqJtj5gLVUwf; zxNMT?q@bEdMh{sfP}x^16DqUp=NqRqXcLir5CUX6q1w(XNmw<~ji%%=ml#isvDUvR zc!g7`FXk@0#n{TMv8m2F8oPDl7}kL;-6o{nxJLO)UXpO>yl6SwRZuxtDin=2dzjT1 zh&5Exz%YqkNimO>x05BSl_TwQv6&MlH()*=L(cvZi_Ry+&a;}Gr!-)^bAK8fojthh z2DX}3amxZqt+1e&exD;KQptmQ~^C3x3*7I!7n;j16SS~;w=tX zY2?^?PW|l20Hj+uAEX^SWpran>j-?ks1@zlU)C}IK0~+6PLnLs0YBheH+YG2Rq(jI zV=1z4d1HTu`dLQ6b0gIUJU>#?fEX{&`(SnWQ0!O--V>>z2L-WZXRNgHM@!|n*sBiw z&qxjAhO)!^3DQ0#_NoK#i_~y#D7!OUAnmWjUUho?#;G)q|Ij7MX9q*z;@E2tLtc>V zW?a*tuI__d1#jY94ZM?cRq)=<)xgu8%hnA(JEUWi1xUB@X^?m9FYB03|GZ-l9ZAd% z6Tr84T)=Hb6>-_Gxv536))%->?Ar@$%_;xF(7NidW$ai7;@n>M;}M%B4+0y=0IJ2G z-;4{Nx@Ef{x@7!Pl24~1{;0sqDaQWFVUA?6O@aUETsOG#zPKe-!5cZ3ZBy7kRkm#A z0iTRiAMklmVKUOfzU7&g;&bZow`gl9@0IOIr%C(L*ehG5D=DW{C0DVNTll6Oxpwm04|mAf;Q~w~;Ic2K-*mlR7YG``!S2!6o18u&rys^EuO4W<)ZL_LJT#t=w+9 zG#FKefiojD6ZnZp4UpPK(fu&6OVq0?M=qIo_W1Dqz2Xa#sq?jD?kLIPjS0BL74Yfk zeRwUoz*W%`?8VMbm+zE?JtZgDrvr!CBR}nrMh|i5uxg{3hQE=tH;KJ^h>PmHs!}Wd zEr{a3k+KSu6gKsON=t0*R47!*Nq?4NY?(k;in=3)KR~j}m{SuT23j~Mxiw&Zzi7T6 zNNTnkF|?r~HEJ8d0jGc;i&Q_*BgmFk9zhQgP&9jg2PBdr!JY;!Jewl$gE5F6pa+rN zX$F=4tXPKnXJp{aXhZ^m!a~A1opasbMb1qHzezi@{hrE_#T8nch%HWs;5R$h4c^STF7Ou4b%M8at^>Tab2ac( z=c?d8hzk+=3=4>wzM$M}4*=raRwQtnXsh@eDq8OmYkh$@ExFy|@yh72A4qEU?iz@X z@N`1U&9|K-k4E!7zzH$Vehj_Osdkn5M>Nz69H(BdsvKTfs!3cOr`-{0zvi!&M(K;v^8aPGp{7BV-*eZF%%MH~pkOA+N z?O98u@)yZseS-h)Tn+pW=Q_aucCHirqH|r~aXNCEk8bcJ=caktsp|GY)o`1XA=u4SZHC;>_~}DN^yBZZIV&x`Mqt zGbzulu{<*=1yi)>NiE2-;L^FczGfE_(0)+trWa>7X!?8{!b4{)_E28g?4XW)H#CqN z8psW)I36zJ;brKf4CHLvLz;5Q!%J$Ys7h*SMXOiQ#Ab}b#z2LLE3kw{u7ULgg=CR+ zV&k#M#)IZ9zLJ3WmL|@(@nHha6D3WWmqpDUAdyRx&^L=KXb3n%lr(7`?wY`(Bh>?> z6zbfr7G!7@vpW$95@TQq5tD&ko<+MOrsj-FZI#?Nf3Irz zmZ~IwmMo4{;J-Ro1Ha&02l!+A1$*HkfYza6&0+`mgx~-aIyj#;ZjZif$$#j7^YEQFcMPg&HrvV}Du4yr4CiU%e$N z@EXq5!0S8L0e)PZr8#E|jVD?Z!M}2@2L82kRq*dx4W_9Q@j6nn8UgWR_X8j%L)mEI zpybA}oy_hX&DVkSvTx;`Jd%dBi}cCMW_|80yWcHUuT^wQEhYu{Y;n!9()f=SMevte z71Oxz&>H}gjl#3P)O3H=#HKMJ4;M_9-af{H;uM>fG0+3 z0EofDd{2Xxo6pKWUp6k0EXohQ)VUh?a_2h03!Li&U+G*I_$ueR!C!N3D!8IIkj-I_ z4Urb$)N#V&o$CfqaIOnnb*>XU$+-^js?OEGHRr0}J;a3oeXN>@iaxB&Y`OuT(Yqcy zzXMm3sW9DWZ6wwdfm@GKq_u-90twFiCXrPLZTA>QKk&n%##KhfHfWsYdcfOS^=P)Rr{L&AZ02XOfMh{LO7iDKA`c;LOdG^VmI)BJ65(CR>(*gqHaqe{a| z7tr;x@!e>v2lz)(<12?-M?7H8=4WcFF6X_H#TE(fcdiB=aIOP9-MLQi4ClJQ`#RSR z9(Hajc*Ffel(qvcsnD1rve+WQ8#&hve!X*D;5Rzg34W7v9pE=RR|9YATov39*9@?d z{6|ISD>K`wfUi|Qd%pn0WY{8Uy)`OM1CB&$Ch$a2p)W0hGbfegKSKLT46Pq{XQcXo z1XGyrZ_pwh`&I!Ek3liSlf&Gz(#BQ%J|UK|4PSoBT*%Uw>#B^H~v3>w(9of(Mvrrz@H&%l0V|Das_ zEP&t|k*Wh32-C`Am_ZCZ-Vw+sH2-DnwD?UjxcC3xsyTOeoO?5Y6Qcb-;6zdOcf=zN z8bob(0zxAWqtYmha_<3MBj29(aBgTgH#D3Y>Q#8hN!p%IuZx^Yd*S~2Sb{pxBO1yh z8p1Y{q2%Q!wlOrWGV#R*4aU~O1Rk$2n|d_7nlT+*Huchk=F7+xlD7K+7l0CGXE6#O+zv^5k_!{Rrz}Grg z1K;Re6}(7XGe8=5y5dyuUCwob?{TgRe6Mqz;BPzE0sfA2HSiMWs^EzSwp1`c|35?i z=lug`>jAi(Y}rl=yiQbDBD4tH6oG#lrAX`V(c(1Vzeg$3BIJ_CC<6X#47eY-MKs?B zB*Y@%{st{Z#P(YtAqGWSL}`Z!ARz`tS{`t=gXaPF5b&pCzym-+EX?=BfSE3KMgZR5 zQn;Q5Edn=1Ac5QA8c5Wp1@r`Zd~yVoC(ug*tRLImfvpMHk3uO*=CLUP3AxC$woqZi>YPvSp>y zfi}BS?2yJAFAy~&7%!x;zo7A}v`>#YN}Zbbej10ye!Zka7IwSs$x;c;{;1InGtVpL4Doe5!L@;M1Jz1fT9)2l!0q zYT&ufWgnYR<1Xpg{sJUy+xLK5A?k0}Ci85Glj-AiWnk(_9Msdac|a`9*O zQ2Xjq@i*T`8&7*U?~+>IQYu?Z7O$;#5`LGY-93n&Y8tgXOSY0Q$~fD(0YeOdQK=!y zaaIh;e&bU3Z0Bm=bDZk{pXXdB_yXs;z?V4J4ZhmBso)>KKSXI~zxf-}_=(8ka0>pZ zbKT&dJJ$t%)VWUZFP-ZEKjB;r{FHN5@D?9z39wy7FIHwYZ-K;U0}A|=%!lbn3kM}5 z&w$+(&G!RukuBTPFtpLZAv~kr@PPp5NE!wFT%=|IPY_ka)!(4Ci4rf_HS@T7h>Kyc z=?5gf!hBDImZzP~)7zCUIohAcUNmm!W=6659S4OBTd%==*RNenKR7C5uU4KKr15|X z&}t0s&$`y^K!e(}b_ntK|2q`L+azt-0(Xqmw4Vt6E>iW>vvqW<0o|(#{UA<^I*__r zyw7EoovvBK!mz!P@t_t)y;~`75NE&;31i)~(wG=63|atlhSpSC2S_%_gVeY*=G;>< zJadLlRUA~k*_p<_bnKiwGzv((&8{mD@ySCgD=6w=Jx`92w3s_NE5NQQ?w*n> z75|>w7pgS(j`VOr(_}xYR*asvc<>8V7z(*^MHe6l&AaTRV(cclQeo^1RhkUwgo3u9 zXp@c`N=x*hCfIQb-X?t4N?M9=?4I^II*rgMf@NE2wE)LJ+qDx|uyDj!^0NC04b>{z z_^kW2bce&e4daq*Ig}_pvLZ^4WlCwCY}2GXL=bjYT5QM5-kC{0^ldjdEPeYmyCv0M zXvCiMts(9A>r7<`?bS5Sw&wu1iPR8qhe*|d>@2o1kRr3JWUqKm5#VE@{Sb~l8rkV9 zdu#Y3sgjpP24un6$ISR-AsCfry`g5ynBmN5_8w$+NbRM%#b0;SvIxIdE%sR1Ac!$wBS&1VliM2}5d9KiX}{2&m6h54Qs z{V5*~HLO%i1w~qeVoecvz$ispV^wfd1d>Crm=40~hXiH=52eJ`@_P;By|R+! zzWVZB+552#72yv*6r!-yo)&y*LFb10aziT;(e{dH2T9wqfM1S54q^Klr_wU+ECai{ zA>e{YW%mhs?JX5s$TK)>$NoGdsUB@HiUoGGW@5c9pgSXJ2jo|0>zPi_Enk}#NQ;J zk{K3llT6J$D5Zzo=jT_%=iD-%b7$X^`<%NX=FXl?sajGvdp0$1N#X3w+_CaGPjcfynqUlk@xl#!ZQLa46q99Fs8Q2@DY}A-IBxmbQ#hvBf{JcyYoo_}$>En; zP<;Dd36MJ5r)5A&Zc{ZMXS|R=$vdQ6CA$Tbte^8{zh8-bG~T)DK)hK<=glU*mic&I zHXrB82shl4_%H|O-LnUqK5zY4l>18*_M;48=iwkW# zJ_1`hKDHtqdrLY#m3KT}A+nDmFx&h6wOa!q+2$g5negQkS(A0N@X9Z6yDx1&nLwQwv59{bcJ3z zJbTFowrmjZ&P#fgN{W`157;t@OY@G`sNpi_9uVO zEgFflYOH3JXqpq_WSb6T{z)^{1p8W_U4E-vD*k^kf@9T zuBw<T~b*>Zq zOXoVkPdHZt|H`>4`0^uKJ*SnU2JchMb`t^;kW~(d&2STtaP`Mw6%M>;AKvwWw=2GZkC*26ZI(j(3&LlK;Abkvi=-QI|H9EN)BS9b>mT@SsQyoGN%xr0NXoQ%?O!@ZXWjUeNrf z2HE^g!aQV4KDmn3hTH2ZehzfOfKG?qx459zqXxnF=~?=%mN11rWs?% zuo#sV@;x$6If_EwuB54pbpukO;&&6M(SQcM=nCFfoOLBG7ERd+VxiQpi>B<0w!*hK zR|DVUTnG4G=Q_dPa;^*fZRfhdKX7g;`0-;yt&08efeNkPh%FBD;3u8y2LIN%F7VUN zb%OukTnG41&eg!rI#&hnczkPww006(Lf25aq_nny1Iaq<^t8y(6oEJoinIu&eU+BJhPzF^8KQzkTAtZ(TH*SUfteL& zk3CZeKc^6T$uO|zD7F@hrc0(|8FW)Ww|+7(Ka?zL@Qm=k zBukFx6Lo3bs8R=R5~<-m1!qL64m>ha!&L4+VvVxN@MmS%sb2O@CVmkI4rey$fH-MY zhr1^afWc~2PwRDpx}6idXZNL&p*#7yvY|8faV6F=myD$%1Y|>JY{`Hcn+Et=t&vUQ z@~;Drj?@6t>IZS{$5nH<&vYQG-Ac3hB%67OWM3cNw4Z>@Z zX)&8*T1^5xUNglO#{B&nv`!IgH)G%zM=8?!iYo$d8Kp?;yRHa)c$6Zor(F^F>?p<9 zI*LUyZM@)Wk|7yduXRPBeIC;MFDTO5))j#}j#8vG-4%fcjZ&obaaRP+8Kp?;G*<+k zJ4%t(C9Vj(W|ShWn_Ut3$5D#3Ry{h_5%?NWp**xUaz)^#qZDbq)fIvDQHrzp+&9{h9a?nq{ZN*;WTK;q67|jk@}v zYXOd|06CCs@7|>t1l?rtXTSQMs}W?1szi91HecHxDejDv&uz~W&YWf53fT`|q+Ktc(M zM03rk?zC==-FtxyOz7TjTv{HvIH&)2JWQp9vX@7U3so|T5|O!4q)j#@Z=ELUQDBNc ztNOnC!L`(q1@CL=I0&IDilEzfmqkoTN@qrt7nsYVqpmQDI zu1^Q6_PyPuV`#idq#5i0Z{l1H{ATB>;OTAptm*kaBU6KfUB5qNM)i`Z?nfCL^CX%V|A0$coA z1>5<3htenx8~X|mOOC4?KBhtA!%kKj=c(}}$)fiy!neEPmGJ#{`Oh0U-LF08kXDi8nI3Nm}!@z$>>pegWHq)ok5v^xOsnq(|%8psN8H}xD zrr0pRZ*#5&-od#J@Q%)Pf_HJQ3%sXu-Qf2*Hx<0b=R%om16n+m#+o9FkAc8zIoAzd z+qo`qhjX3a^_=SfPj;>beywv=@N?pt0VYFQp`s(o%w|6DYo86ub~6EDvUvWR)}Xb$ z9GD^ypFwf?PWy5CyXbT#5I5Dzyalr-RC^{z#~+D~X998T%Bk}YDANaH#(lsaM5_NG z!OLSjeZ)bIC8r8(AF1BOf(8%El6}+j(%Cc)jOOb=GHB|h!T&>s$9;yesRJiPY6!Sy zqeBo%LG0Vsq9$xOr9GmId{HCa%xEG>N>|aNa8`VBRb4IPNPu`sTgj4DnuB4bxs@ zDGr0!?0YtYGW)4mw``H7QQ5Nwh6uo@<-6~v7vbC2?g; z;tmYH&be;z4bF9ezu{ab_(tbCz&ATr121;23O@7X)(F$Vp{8$FZnp0N3CQlOz*}TL z+*xViq2$32^Q%Ym{Xp`tH@rX$hBv&l+yIA3t{ z$o^`b?26Y3KI_y08uC*m%^bDtk9pQVBuJj7mF9Sd>PIgN;=G$j(gFoG?c1xqABtm8 z2QoZXY~W4OTB&l_KWzYU$ncmZ5bySj+s9?MpTDXIJ9y@4T+ho>#p?y6*7gpLLVF2k z<|Uk&mvCn4?vrwNWh_H4aG@y6WTZjk9@nD?WL)yaN~}}HWd5HQjr9TDen0l9Z2KkA zE-8$LFM?u^cmtdEeY5ILvBy@XHmEk!y5Q1DTyW_S6kIw61(*8F?QdIRf7=rK+m_hh zHnaaq#+v82bx90cXED(44{^Ug{IrqA-_%-Ji+z>K$e6RoR9{@Ldc@=g&7@jB8$u(VVC&_6Es3r8OrWW`!-Pbf`++b>E|SiF<5i#j>a01D^evBMn+V z6zkc4d~yTwXMR!HA2zuGNgT_}-aMt*6A%4YEPHBA&Bj*Vl3AvRhkEtT8fnlv+J{o( z{Qk)eNOpQlCS;l!pR4Y-NEYu)z$cv&k}Q7kU^5zXMHY(S9X{Wpm=*>P56gocUVw+l zmfcB#CyNS)7g{(dIlN$glW40SxPPPufEWyi7g}yUJL6-1%V?_yI6YE*KnxbBruCKNWHMwF68Y>Lhfq`89Y;*9b1kRJk=>6x!5TaNGfG%ncA|FBL0#m zCMsSQ{=Am(!BpPD2NIy2u7S&rb$D5^QggEg+)iU+K7pQ5c2HkOQ4@=OMRZzq=jO0w z)1mbmGXT@A*U~{xeb|v<4fyF%inN$Nwmku< zL$Jum+^qQ?SXy_8weCR1Dk$d36k(>xWOk;8ilf=svN{`^nhUz^ zLc6r3e0>dC3%$<32S+K=`iUz7TkG5xV?3dy&V3D9pZ7WgDNIr4zLI1LHcjT;GJ|WI zvPU!3m#1s%D^+2P&XQR(_xn|}a+arCVs2F}TgG=;(WSa2=5~^~cS;twZt$+o)xhs^ zt^-_mt`pqvTo-tnbKT$>&P@fce0r!$@sUG?#%dyqH!|Q?IoA!YIoAbV!?{lITF!NV z*LJQ3?sTpS-dJ2SKpJm!#i`&f=eoh0IM)T<)VWUZmdoVRj!{kgm0++9EJ7zmrFK-`8?87&H8ia_cR6qjF# zo;0*@Fw3LsA-Yx%`9E>7jO34xg&hVy9jO5zp6!cbKs?*)RUq@+-lbCvW>(4T^}XeW zS#Ng(AO)UizxQV+Qu`&B1{8)T6@NLaYj8|Yvjk)WS}Z|PvQ|sk&}d@q+%l2D?{lsO zp5a^v_)c;57I)#|3az_ZG{JW}R|DVUToruZD2wf4K3-b3uz(n~(Ewtzm|@czwD3?e zY&*&9C!+a&AbHqJFdzoQ%%|n%vnPwA{(H?Yk@@dS7WWkJL(bK}4?EWZe#E&>@Q@$cdi?JiE~}xOP%WkU+!E7c!6^@@RiP0 z!BehjjWC^X)bvs1W)lub;5H+G*bEbn79LD7HUAHp#lXw4^|~{I^_AuZSv*>SJLd(? z&SSqie}vX{VhhcW3XeIbRg>1+&vl!_!V9l#)ui@&T!{xE#0PxO8^#Z>asUF~3s-nH;r91$CsqFPxyO|;-58nHYm5-3YQ2^g3?EN0dn)rDyI`b2 z^AE8cJwT$dH`RqEfqYmKM>NgDMcdsKSk(lQCe1ZOn6d?{ohn&u;-%>Z!S z`J*&xZX((=fz(PiLpT3FW!lxtw6HPKpvj7|!x^xpOob+8`joaH(*&|lnCn85=2QO> z+?yuw`AAI%QXJe;ut!^Icz!Hi0LKl1-Y2el2PO{~}77G#PL!T%jgE#06t8wN>0V2Y{5Xspka`=w1cvbsFHV!d;`}%yxyMc{oOueS-QL8Gb{o zNT$M&6JYVar4|=05d}6KyuhZ}Y$|6bO4EZF-n+-T=z9XhN0NgK9b)ZKuKm@192nK-XMyd|< zI0y1L2l6-vmS2NmB5>Qoz}pmo{pr^u6S?Cq)V;Y$=1~k2#lf*!!@!F~HM{P3UI=b4 z$tJnHcx`0oTu?SQjKwh%H0YMh4bxo#Kc6f0V{C~ZV@v!Py8?a|l=?BY#E-EhevEDB z=bM^*R*Sh8jQl)VX=5q}F#0Xa%oIyp8(ZSq*wppEHEB4w**@_FttDoQQLCRH`mHNz zRBC9fCYl=>$PEqThO$ZjY8hHRo+|4=Y=<2qH6Pg2LtxWrae_sA`InkADz#-)YUn0K zNpCxPQKUvJ)?kNj226I-`t4VOsavlO(x^uT*Y=~~^4<02?)q|feYv~7++8-P<1`gk zlC-l5urpG1;2x100QN+xPMkZ(vSdU5qKbK(dKEt}2A<`XfG0(22*@xLJ#ol56kJ-F zf=f$NaA|D{E**;vvq2q5O+|Yk)PYd>M0g=*7l2wz6I06y1uhmn=A*0-x8zVZrgd zw~?Or3T`z$=rJD(jt!GXyn^FtjnoQ`70bvL97~o*xq{>QZDT#G6jCF3HQj zlyzz7={am&lEc;|Ic!~$!`3A^Y+aJW)+IUQUl1dQL&>EwkPb~T>5~kMqPSXRFgy?#;ObDB1}0XgUw^^LCn$qh)- zuU3xH_t_Hvl@F*puRd(cPv@ag=`=KoYA_3pTE6YR+;)5fV2ay)Jh$DK+Mce(a*CwA zxdfgbscC61Zmpa|?M8gw1tW(g3oo#|*Emv3C9o@CasCA(AIvQpTVm1J6|iW>v->no z4@+9U5uOuFSb(OORyeTf00x#x&I}K1TK&M51YdG$+(vKC{yU~qZu^y+PT1a7@!LzR z>+Bt2ubTTw+5>kwTy1({2n+TQc%Y2Ti^l3eFV_&`*A-`R9mtKrY%!iM#yedd=<8@G z9m$eM=QPgZAE5n|{le>^S+LX7U{PIOMT&C@ZoU_D9|n?p^9RAm-cubWRnKcU&nr6v zR$qBkR{=b?wID9y0Kjl+ZZU>7}H+1!t4uCbo`8h z3oI?-vMC6>WRxPU>tc!ffwzxRr1h<+I1Nb5!F8JK5t@?6OWGo_{i{LK_uXFL!qJ-T z434;(ZO09oSg|)#z!rmrW;=u23Rdi{z*`yKBiJ%IMy5}bH0or%Gyi&gou0kJ!O&Up zEycta8~IxbBh$d?fwJ8M^AP&-5VHGXL$2?S?@sC%;t%w#C>WX>bE&5hVTg$A?dzEF z4Qx@Dz+#Tl1U9u;(V6(wk`_m*vOrPaA{pi(trufXJ;XsyL6H{GEyDx#Syo!@qWf`- zqYivjls!v~G-&+B_0o7tBI{OJ-s0r}ZXc=MG$x9P%4+sY+|>yiJvVm3F_kGBO-R+5 z;v9x;p7AKkV~SDfhg3#=Owa$EX^rAwbXoi?D4UHl6!=I?ppLs+<0E%A3x=irLCLX| ztr~PA%7RP7EVwkzf=dG}xU?{-Pa7ayzJy3uu^+Dr$9Ma>5&f@Jrgl-s_pK*4ATeI8 z9MBJ+zz8Z|N8;4Ge11rvNz&lqUN+Nmh)(Mvx?MqTRbh%R zeC(y@_LgjZu|)VVN!y9WG-!Or$^55LN*;>rWdHYkAdD>;aAVU9ZD@_grIG8Q%CYe^TNiNSvQLi+Uf=lx#xYR+xEzf?K+Np=Yral6jdI@am z=hCEB#h?GBUJ5StQE;h;vOgWn?Z2{hO6}VV5yF3Ben{3RAcJoUW2r68G%3;K^?CpL zL7`2P$yf63g=kpdc2EcUWc(jp>uE$~bFEB=uor56*nt_iBvSP^>;2;vlFc20##=>> zsq6>bH&WAp)WsYya9@Z6R|kGcRMSBiR{uY--mSo@_K(MeKedD*WVnFzE`qXVc?%eZp+4@GBF}qwi3_3B-pw{ve3C* z_-;x2xFIO{|JRh8tt9QQW#h_+ZAn4WWuc*10EuFif4WE=!U2j+ea{$&YoEs zpEKgn)q#X&9qoJ6X&iwi6lxe)DoKEWO#X7L1+k~_m*C@ZO+f;>1 z2gx!;qU~E%whhwN7f4o-TqO(OC^`PDeQHZ76ZLcjJ=Nuy(c%I zymwEUJiR@G!Bk}xt(=w>l&Ua&nIUCAGn?z=&mgIeO?-PmPrdQp$3LI8A6-a31ucGv zA^jM%;P{k?x9`1+&TZThl}*O$79$R{CNf){`urig7~h@y*d+o9E;4)%+#*WA^Hrk2838 zYL7Do%_~#}Ks2A>v)PJfgXQa!qLU;mX=HYGA}YRRZWNGjn47WUd-61i-!zGxZj(Mr#yF#*fa4J6V zqrEW3-vhisl>J!kNQ1^tTrZC;+bd6zHhCAPC=zFY3N9U?f=h>};L zUjN(o&(lZ(o5m8@G@8Js@dP%FD6nZvYiWAC(Wgl}mF=TS4{#?@&B38jcfEF|hN4RL znF3FYd|}BJKx*Z)dd$5qz9YzPuBiN0D#dVs{}8*?fq#osb`)bnUUz;7L%ST!O+?#E z2_RdyG}GN%bea@?=xzH<+OuTq$$RzXy|Mz9zjVD$6ZSSqdx8ZLl-<|u-6|edPPDBpAlXVY4MudDvFJ2s(P`HBU}Lsr zN3wip$*A-|YE*j8ELpF)?Y`W0Uv9fEx1Fu(89I_46~8K2r`M%l4M~=~lzLP}ep+(X z@UJO1|Iy{i4cNcOp{Nt@ba#_huzUgVT^qi#8fN>6viu+J0muLZMf~yvpzg|yedMJq zp)=$XKg~6O8-}_`rUTL>DK4%{mk>TKi|O?MajR*VIu@O}7M(h8Gna9XuVMwKjtVaI zQgEq@f=fqwH=P?fzT1=saxk;VisLm08V-)4(-V#8^hhI`GYyAw(KP+!nVr!Il&Eam zP9riZjmD@n5~GO1-DPX>SRJ0Pl`Lx4c}1w+=8`3^G`_8Jt`X1P+1;>wZGBoDPxo^? zkc`91NRtk1ns;E+)R(ok(wYR_bh=OuFTvpUss>@&3`%1(Dh<%6G&-YFcbCfcU9sYI zY;V{8%SZ3frFTV@o<2b)uicSSUwN;3-YfgI$s|R#zT_l(1$4oP{X0TaHmbtCPS;k6 z*Q!$|r|zl$wL0Bc{moFS)qPE1wv;S>Jp}v~=W5`$JJ$ieNSysZ(~=5}MvEeNzH>G3 z0_UpWn_CUixWyGaz>A!#fp2xL+AiB;q+{P+1QMgIX5hur3cu??3*V*)#AQ%izSDl3 zQUp7k0&x?5UWOLQnIf>&X@9m2FIMdLdZxhd#I%l{drX7Y{gEwxH7CtsiLU<0%>jQJ zI~L|>{VcL&<{s14UrH9U4*a-tHSlkp>j2-kFa&9RyTRXat^<6(b2ac1=c?f6oa;{0 zC*FT44x2YX+}Lygepi;lbfATOQ%ue8rVh7Bn#v0FIx*{&-5So3$`_;Idg{A!t;&eB zp%^PX(YYFU73Vs@t2x&RewA}w;8#1>4c@@Hso>rlLrk`z%pFIgPh|1yLEwJpy1@g^ zb%Ccl*9qR&xeoB4b2adgb5-y+#We$LSJ8EpnN1cTaoYd`F&QQcEgY0gmMvu#124zc z{?~`#5Bbj^?Eo@M@HVFiYJsvYIi_5e7_vLl)w9kX-~FcIO9!dRQ5RF=qb{bUecjgs z(=Azc0DbKZLFZ$V_7|zCkCH!9JxdmE`o^*S7Vl89UV~|gN{%kK ztJg2x5WP;1W0fuMvvujhsM33dppS6&$}R6z&wFLQDykhdwBNp1vf<9nf@C+8RJSDI zbaEEIM^47XUU2E?7F;?ChiZOaENP9(?=S#SW7lbfviva_iC=5mDZq1rbTFyX(pR#N$eo`YD;;^4QVjA#)QHr#F zBi8;|Yak&8i)kYNREK}Zj#(wYquRVK)?@2NUZZ?*q_wpXNV}DMp^IKWl-E@%$N87d z>A$N&v5We$`R0=wkc`_z`K)3pioCzOdOkm5h}Q# zI7Y2?C2eGYcrPCr{GwGlZT6Jay(G!mzL*b1IjWW8+Wd9wLf!h={p{aLd#al4e}PRa znfA3~L%L^_95!COF4$QuZeDfZKB8>Zb*IjrQ8#qPRYv}uEzJosKsLo!4bqUxzJ8GQ zvwY`F%z6ek4J_?zfpukFn`GK^bw&FcuLO`RtrA^nH?IB?qWij&q? z+n>0W=+cj($~53lMUAf zhhh*tz-uEl2qcoiR!@W0pQ2(95T_;QBtpfF{e~s*v}kAmh>yZ!Z;8j=)MHRg)7)5= z50orEf&+gedL6>s!!2syMKTinQ|| z@ajkn0EybPfH-biqw!4aS_gVy18K?LEp5s)!M=l-rj z>$_r$XMgYm&UJ&AIM)UKzH^=6hn(vGKkQr${Frl9@NKuXMwphJnr^4uY+C|)$9Z$l z8EMyX{n)V|*wS%f-f^lryf=2t=0d+NeaKaSKa5o0XO!$Ek|n$128%-2?~}B72kaAN zLsa>oN_4EGsU0Wy8K=?;tSSqKMoZld@F(3NkZ|o#cHTK7KT^=R4lJ#c$f=j7@X_Q0gSp zXkW_dviW|=B5&~F(ckb*g7~#3&d($v6g__;?$H?5%(Sq@vuaX^l9wzi7FG{oy$~bq z!T2>X=bp60yGxrqt;9gjuO#r9*k%MvUT;03;rmsbBSWcsd<TkpWDS^_4C^d0kuk;$UQ)YuSFX-C&_Kg zrFK5CQmc%}=e)|4N%hXjjnr7K(at6j+I$9{r}&ExyKf(9&|DDHng+aev?k5(M$J0# zxzU<5$H!ST4Y-CVd8augYW4%)6sc*zZAW*exqH;?2QmZXhH3bR(FSP#BN~_nTv_8L z12i`hZEvf9Z;aG5;7Ox9r-SoGRf{0)y~LMS(t8Oa{h&;=UR$1>@RiKeLirapiD8?T zk+ZK=(By_}ClKJ^Xib_2i!L6alDvxAnN0%PucazR(>x&7uOCSAGLYsyNyEh+RC2RO zRo1a}T-EFSQ|cRN=Df7`hZ z@B_|uf**9Q3;YA;y1_qkZYuc3+e6CD7Yj6Q5?MStfNyrL8@$N5F7R#6b%GZ=*8#rM zxf=K`=c?deifaZ)<5#XY75r=Gy1`F6*9HEqbDiL)o$CPq!MPgvFV0oL8!c|BAdNSQ zEGh`@a;_V^iE~}xO`YomZ|+@Lnu;{2PN4`U%BCU>LM{~3|A_d>7;!(4d1>GH01{((@kERHVTwRv z42rZECsPCxV^E|;#HP6XfO`m-#b8@GkPr*=Jq=n+N>c<9Vo;>Te`J124zcT-iEHvPc_zu5&f;7oF<> zU*udT_!8&3z?V7K4ZhmBso+QNtTg|#yTM~)X*?#<0-Or|rE}fjC!Fg7|Ju1u@RQDU zfPd>;4ZPI3D)_H=w*(lV|DTHX-4Qq&eBcX_8U!x5D`b{A#I{YI;>xJ6_B*;t)A z5RYao^*2?Mlw|)G4^bZK|JsR9s4ViAv)-}A2-zRF-am^*%iQ#h?R%O5O-&k1$mW(s zgE`aGq`_=yYPOp%+%Wz>xpz=xZhFOnI!Q}$k)*92Agk0K5ZpBeoP1J90B9mqVgj%fsx=6Jbleh^LL zoESqL=(Xu%$09sC1_E!0=Z89wP0h3@)~PYlJ|M+vhLOfPN8u2Iy#ZZ3bU;%p-cX33 z^&0-DQ0ukS$GP%xm85+buyj^~)=$OSVF5@mK{2gKVAB8s+s-u>$5wXA(ki&rTEQ*f zmfb=$(4Ox;TT9ip*1kU_SC z5%B%41^if~`hbT=YT6Nk1W|SyUolJR_A*D7KP_2IY49!1)xe9L%cdK)=1Iq<8<6f+ z1mNwi1;lvyq`Xocz9DJFa5md1NUT7Xl*dpp++t~=KS?scvc-0xfmc)+a0?FI{P3~&rbY1^_)EfZ)Rh0cp&ef8#3~qIQ80ftuZD!;( z8O*aE%=66NiV^FZJ4hD)>W6(3B>e5|43VcwPAL9@ z&;BNt_Eq9vMW@-7^@{817^c@5(06K8rq{hh0sUQ*vR|br5&<*3c9uSGcDnKkMT$jG zO+^|kw?Yw2bWKGXEVn`t%p`0o(s)=o6^h_f@!bH~`9l1b}I*9KlMszn>>DNQcBrvoW&i*{OD z(@v{s6!rR`N@Nu9a8WHbp{TBDr?oXIE!$GnWS?(`E4JlauM~*esI=D>(yqr|ee@!0 z^996EOR%ZId*qWYExmsqD>@Ch0tShU0XBocS8S|F*=+ys8PHAd3$=Z_q>UbMPf>RJ z8EMcs#P!lasp`^tk`s!3t!snqoX^~;xhWP8%fh0dMC&3-j5<7q>gJSsC^C;QTS2dv%DZC{nF=-DD8|r-@0K}4Vc27BS}kK!pmwH( zXEq0;fNTmaDMG!ped6O9+Z%k0fsaP24qQJbIzXZ`z8j{O&4gCB%!qCD6ink3;fPE9h6qe-S?)g;-%8LcMCc(vT} z=Fd(SAJI_C;#C`%c~sm~3Giwawa^1o=t2)nB847#Y#DFTTQMj(KpSk;7E+A zRd9^P*EAXh2fjXXmWMD!DfH5slnmRYvm5!aT{@epkge7I(%Ga-YE80a*e;!&CfC#? zJ0fh7X^0G)57AC>hzO?m>>`b&;L=bEE{&w%2*k_0Q!F#V6?)5$&8LsY)?E@?e#mP* z&oQ|RE|0CdB)0rR!L)AnY0;dKSh)=!2)P87*6YRE2U9@O2#RTu1DlpPuxX(Ko2C<3 z<}}3)Y+CM{H8GhArZv}7V#fVmSBx?pxXZnpjwl&#bSvl%tUr>VIDAzob;;?-p#UR@UA)ny@G zT^8ciWg%Xj-2+OhxUek5g=HZwEDLdAS%?eELR?rD;=&aP@rJSxZzv1#hO!WEC=2n1 zvJh`53-N{(3Gv3V5N|9C@y4nkv+7nS9@s4Uk-Ww|aY%XLv%u8YcYU6kdTZi~%tFLS?UUuu%%>-TH>@^iW? zH8s;ssq`DsspH~ymHI8X)NR3~UJEXDT5#!j?5u&ECAmSdXPrHM&yD9@ZDOa5H=MW7 zxuF{iQ`BP%W#^5vA7^Ks&#MPBLJAYNuK8*l!thP7b zsdt`pcvdelOza%1OeMVw8mW)*zQHe^LoT(5q^Ta41#e8W~<|K{b z7bR^W-#8|nSJ&y{gObI+{*+g0YPL(z?>6;o{svj|Z%Z3cn4DNShCiB5Ew@}s13O1E zkKr#V;)*;^`oKA^yTB9;C49b?NtmKa{fXnn+YAz;Y>run`~#A_rsliWe_ zo@xNS6NB7Ga(_vwMX_j7fQu#XlKiD4pOQ~pCFs3Ma!tu-NZ^&Wx8!BUvxVaPpybJt zbKAuKQuT*c4T&EtdAQ^;l4*TDtO5L(IQEjd^6Jjws5{-0{&Z`WFgU=PW?CHo}P z_!f!3UGfgeC2jP7x_Yp%+8RN2OYS0>+CN478ItoP&zAg#pF z{>^I#=39~vOO9J7@E?@?h~)D6|NMWr|K%MaqOVF`FZmnE%DUltRdNH#H%X@Xywdj8 zl%EdC$&zUt-EHD|x&3=&w_kFG;l@+Qeel6Od^_5R9w zfmtm1BgtP%rutW`AD9~?Z`?Gr7fGi2SBn3dzTl3$m+ zQSuhadn8kPom&QG6Uoga-y*q_`PkN!~A+#{Z=F7bVx;I%upfnd%?3O<+DEd8p)ZlBxb8@%KvJCs}<i%KP2&YX&Zm-`p;1RG|HE%|1ZV0s_ea5a;-M@;X8GGW64b= zw~*XQGL7%Tw+7}4$*Ux9ki0|ko0313d`vR6_rTi&^Q7cclFv!LT>bNOu>QK_O_H~9 z;7%O8RQ>8Zf`LxS4J9{|Ow3nas{U@Wv!~=hEtm2Ie1<>+clWuayif z|Nl$XUv=lucXi3NB|9Y#kvvlJlajL~-E%xmE3lhU~wnO zJtf~Gnfm*)`aLgsqx2TNLi)YC29F<>oF%#b?t$N3vhuFbUP_=VCQ-5C+f05)hlGnG<|G)vk!iOY}ko>Y_YX9y719PwBgOYo{Kk(fj2(m8uO7~y= zkYI7ahl0FHa;fBVlARw8*AMwfkYhg@WcvRN+t|DIe~G<|6yKea_a^ba)O=rQd&jE2 zBa)wyJWX<*>9rstd|8EWr7N3&*r{upRSNeFkzKUe( z|K;|-?ucOVCdu0*?~?q1 z&jgFL&!(0``=#pNF1vS1epB*($p2MxBpz| z@r>jv-GA%}!Q#r28%n-Ga(l@gB~$;aieEj^d#BoaNS-D+Uvig|f~7+w&yrj$dC z`iCUXl>Fc3{|M#t3CT}Nrui-s|82?pCHs{Z`KI|jD7{A{-+W@w*j6&tr+)XSjuqK| zRh#;~RQ<_ZS{NrDOHC0PNvK=15K&+cUB#Z1p` zHu8wM8bl24gs*m$ze)62 zejh=3%jK+hJE+~>?#jQ4c7n@T^G38I?b_|_D*t`Zdja&$x|TKG2zm&{RmS;++qwSh zUu61o(1Y%&}Tqj0^JTe^-8v6 z8t81$qd{Y!anL6~ZTsKs_I%{wJm_lB%Rp`Wc9mcBEZNAK25)3~3Fs#=uJ?l4?d`7o zt?0*oj`r>Lg#Xu&dlB@1KyCYNd1>b$wD&I1W>A}7{BkksC2#iKz?}V~Oh5NuOmoPS z>p{z3V*F-ME>+KOwElBocb{ed7m)v}mhjcC@;?PVwm)tewKa2jSNR98XSsEt8$quH zy#e&|pmwW*+xD#+WzI`LF9&6`dfr|6Z$R(A8XqFR@^fs{IiP>s#O1$({;T>&q3>qU zFM)mswCV}I+6jCQv^yQN5!B`vzI`md{T=*A18)QE1U=rte;)7)LDz#`;^0608n*C} z&oX`Y%}kF4-4pAZtaEmMc2|BT+Fb;?0(2#)-JaxO$uqN&NAiw*va9^+CT?*E^v}ri zOa93|a53_mZLjFt5Bl~8Jp|O|mv)bU|D|2oM@Sx(e!t%G7r?IdpqGMP3Az#V22i{G zg;w0iK4_J-Zi-*UZ?aCvx^VcNwq`EB(fYT1p4<5i=!>BH-okh%sLYF9?VsJNH@m%s zo7sW~LAQeL0JZJgRsP9$v4*`t_Xj-~v<0+n3-j5(jxIkB{s`)AdtR&luDe-sIp`bJ zUMKo<0%#ZL0#Mujvw){SdthJjtIW9;^kGojKX10aTVdawp!b753VPYSY|+?P>f8U% z?0uv4Z-gK30=4aVFYIms?Eo!++WeQ^!^kF3>G$^?{DMCz`eDZ+hdsN>FF!2*(0y#z zi-`F8l`9tONZ7sLe0GxAYy%@P=7`OON&}PtipvpSd06!n}0?_{e zRn{@%n+(hZm3QRJPX@@(@W>m?8^6u`^1fzEoqDbMyl=5&4s>_*%d4z6Tl(ak$-8Rr zzp78(sXq#TJ^=bKsO>M|yBYQJ_Wdt8_#Z(39s;#r32*C{er$)nzktfmL)iTLKE#NO zzr4ZQ9xw5;Eq^HD;~k*#I_ncqw)r1^m=Src=#NpB*Q&}(4_^Vk6Lj(;wk9rL`6$zC zK<@$lDyX~+P+kE90YbIapw;nSdYf9?L+ z{duGH&;0?ncpT^=(50X&Kv#m=_Ibe5paswXbO>|}s4Xw=F8C|zUj?0v_^|n}MI77! zD(@_i7Zlk15@+&Far>+9^4(;a7q7Rxe0%(}=+BLyn;iXjlJcviX{uVoS&!4l;2zFBjH58 z&nKLVnS8n+*NNWVl0PV=Y$or^HTg>}vju95Wud9Y;kyX@8}Uz~zsZp6m>f4(9RLmm zE=2Q&k0YqCH~oox_vAR0l4vCP(l8f|4qO^?4xM*~?0@EfxWS(}z!3F!CQ8&uJ3a9#B&bqDeaWNIb^39NMK8(3Wb#R4_MqCTMg34j}tw+TT z$JV2m@#9Z1m9xl6S$~cimhavfH&xv`nPVR&6KC80QL54M;{P7V_dx#XV<$w-MN_n> zZl!WqzT?;~!_jf9MwPlk4|?dZ+y4sHh2^)lvi#OomVfWTAz`|d@e_26E_A3%GviAW zrfPgC%iH{RS?@#k3(4<*{EpWs|1`M+%u%@!{5@3wH($}+lY3IT$JS#Lx8 zwqBd}V2AuOkiYvQQHf|tsUsZn8@|jla)~$^#@X^M4*8$l&+_uca_O5b|9;5Z{ru10 zvHbUr5=o{aFLV*)qg+b;`vE+nFCQ+MB`PocI!r{DV45y(F0eok7(SJ7LZf z%PgO;lv_p9cGN=Fvh949k2i67HWB^IiwuXXKRUnGYrp9RmcQU2mY1{LzTov}16kKG zIbKuMK-s#xF5aMmy7(SyV_ket+GoU-eKb(Ek$ptCu7P$+vOkF8QvV9o|Pn@olk{5LSg03ggj^?-T(LLe4v8FH3pXQIxi|e9lHD{%^6P-ly(}Z=m2lzjT zYW}t0KMVMD>bT}t-3f!peahPiH}-)4PVnpXN#i4Jaf2j*9|v5uGyW6c^Fv<=Y^)U>5v@>qXzcpv2E&)FBKF0q9{A$6EV|*_3+(cCOckHx; z;p_o^yTNCvktE}?E_@aEM&Ppj83TTug+EHT?$_4ix!upeo^8N;-p{!9mp)zuK6*mj zl*i0jss9!J6B)k}I4L*!Rh;qf0-r{>j*}m~x62?jL(K6`@NWe_%_ws;10M&z5cmne z<6Uus$oMV>z8Uznu>UmRE9Nu5WTGD6Mc@=+<|qRn0sbWL)xy6ZZje#n9|PXFkns+* zy8-x$lNsLx{_B9N4=^tGy|)pr{j(s}WjJLV?*jj}GnxMo=zl=;oW=M$Bc;@1z(;^* zfIlPrXEXni!2bxm8TeA*`!(=5t_5BKek5>p4(nMA{CMCifS(9EPX|8YF@G=k1JTpN zcoFzTz>C0Np|UY zH^|w*j{<)j`t?1dKH9+FxGHYS*PF9a9~3>nKMnkJ;PC@tYn$LQl_;G@77q20ZSYQGgPjT^oj$-nwI9QgRvaZ}z4 zcq{P6%NhSM@Fl=UZeaWhH0%+s{m_K*>M`1s8UQ|y{z`sc2R-UK*0Y}Smp(oR{xR^& ze7qm{ddqK*0`IZ(KL=a^j~neu{f=<$hsHY?c@**XH}KE3;(2eHP$my-X8zBBe+KZT z`xyTe^dAX)Gw@RpKywK<{(*j3A5Q{)I&d<>94mk?vh2w~|JYCChELX!HQ*nC|HaRr z1pl_5G5;e}*2h)gSI~bj!|G1p+n`7M|0wXaz$NcJXYg4{e)WDU#h*U@2>x5aKb2wi z58z{HSMtnM+6Za?j9UGj1^iDI{x0C#fQy|vJ=NO}#|{4swPP{Q7nq}#8N7D?uj}jS zIg|Jm?ZfT+wE?52_P#6tzkT0#k>Mw=TlZzx6TUyi=Zc+i-4MkdA9olWg%Eknf&bEh z{}uY1e;+qm=0Mj}T0q5zA@%BA4!qNWf6#&VIqK{&qdv`3V@c$-zGceuX@b zFjPNq@c)AFrf^4b{i?xh?~C`LfUoDDV;p$g;L}vomblUUGW0J4UWEUB^}a9Wq|Vf*jE`tm&RZR3o8)byHiBz3T!o|z83*?})`;HNq8eg}S@ z10QkVcNu(|8hwfT^;X72$9(iywia%b>N-@ zzrcZC=D_cA;NN!O&l`N2>OmaxC@b{`2md6x!O?ll{=9TL;q~I}aDz`%W4Moy`-OKq z_)m1;A9mnH=pV;;{RsJU$iaV^1OFoQY_?s_b{^j8R9&r2r zHBT5kqQVq@$r;Lken?GAhj1vXXH9Pe=8oeq4d!RdYnd5ntY zILpC*F8DWF`_J_b{#zaR*Btnhgg3#4FnPhj{|^T~V`w`^R6!O)Gm~ z9<6uqU*o{NOK(~Pd~xR&!c+ujA?0D@e{16N-j4{BB7F}AAF6l z4*9+1LUOxY5$#RvUi7*h(opuglNQr=J|==bR1W9^AVvFPVhrne>k+=^cg zysV#B#Y#3yBTCFb$>%FhUD)0I5%1&=FPq=Jc=n zDMdajB)!2Ru?6W?wQ^BcOE*0yTuv8CIhBvK&uM8k;D?L!h_Y{5FAtN8a~?g%>}v;Q z*7&hZxs-^_G43LD1KRx)W0NU+#R_@3=h5pJ z4Pp=@QzGWlqtf|uKtWfG&1q46IU0!!J&w(N4p%lK2>OGd=&|$4x+^pY^#`D{WlqTL z`f2KHfd(x_qeqjZl27VU>S%6L>BN8un!KOXF&&%N**;g5%@olQNl{L*qo+B9+FDvW zRI=Ys4tR-VSXukLcE#gYN2sIIm@`<;^EkmB^Nfwa6b-qbAFMXj-qJj`e(zeE=TH#l z3WH{vk>v$S1XU9|=Cmm@O=!NX_?5lzu&8_n|xH&&~6A7cf8FO1&)dUN2 z3g(icps7~LT*(&tFnX%oU#MhL-hl5HY1&g3Qsqh?Jtj}NsgTEDOz_f7G_mEGr|d%= zZJ$SDMU~}p#xT^kvvn@{L$f6+L4To?S(7m7ORO?OqElb7TvxtrPII%;-%JQHc`v5} zG#D;YKIu>7Q&}CYq%O(!iAvL&306*@VAb=(>!mzUO&_R9_GM&RsT`%Selt7EDwP;6 zd%ZqQX5TY-tZlB2+Cph4QA&Beh19TdN@%iBeAdrN9j#O`5yta6>$A1Abkbx?(E`xX z!NH)tCf*hCw$?dHyy+|UU@9>jASnc^DMir4oiLqB+G&zL+UW;Vs-=!d zslCn7t#(RGo_F%8T}u~w3zsdRO#|;BBSS)Zn4kkFH!MqtAF0wtH;60I<_+yzxtb7HM3H$Yjq3TZb``;`*y ztn$f1%IpqOg(2!{B1Ox5P>%AZO#+Ex=avhlP%BW$D~n#c^!|aiXi*__8uO8&iN1ye ztVrt2CQZ9Llz(YG%Lm!08qYU5m?UYJ6m`H*A`@!U^qn1@EEEPZrlUNf6Pq+%FRcc= z)jFfL&5go(-&5nra(^YzzKgP!ay5)R6=)kkd$=gG?noh(Ne_F)M7c~EB~|8JM-}!e zD6XOPzqSP(654zH1713j33<(ICweRCXuGr-ZjB;(&9IQ5l1ip zHu7_Rjye=om8N-X^{tM%G;|Wl=3bzfDOx6_b$xAOA$OGNVV#Nes7*BbYlfSe&?$s( zgpBo;S)?jiql>y!GoborBHAJ{xEV1om&jNKX(c%;T}uQcf}ms;il|2IHY=})1m$wt zK4tpyiBQO5?v`m;Q2I6?ykuyf(5-1T3F@BO_KmpaKXz6f)k;jAC!2yIieL3B$}8)oTrmTr4(xeP6Dot?Dhrw;-`Nwr<^ zCkIh>a)e%LQ@&YhY00I#`-u^z{V=D+blLX@3ieQY-o*V{ZCs_Y^%IYLGr4;6W2TBk zn;sZ_C!z;U@2=}~I#ugV&!aCE!&aRTCj2|#Q^?oZIu&asT`zrD6Lk%3UG*G|cCB4c z*>r7?Vdh0OXmQGnw%=s%%YHUAJ~}KYjQTQ`85j=ALnc@2O+>K{Pj%;jo5Kkom<(34 zl^m(@r$e zX$P34QQtg=?o>=%(z+j58!g0T&3*qw+;Jm%BM~*Cdc$Qt0km(pq`KFxsMP6@4j6k6 F^nWW+z7zle literal 0 HcmV?d00001 diff --git a/examples/websocket_client/websocket_client.c b/examples/websocket_client/websocket_client.c new file mode 100644 index 00000000..4bc205a2 --- /dev/null +++ b/examples/websocket_client/websocket_client.c @@ -0,0 +1,72 @@ +/* +* Copyright (c) 2013 No Face Press, LLC +* License http://opensource.org/licenses/mit-license.php MIT License +*/ + +// Simple example program on how to use Embedded C interface. +#ifdef _WIN32 +#include +#else +#include +#endif + +#include +#include "civetweb.h" + +#define DOCUMENT_ROOT "." +#define PORT "8888" +#define SSL_CERT "./ssl/server.pem" + +int websocket_data_handler(struct mg_connection *conn, int flags, char *data, size_t data_len) +{ + printf("From server: %s\r\n", data); + + return 1; +} + +int main(int argc, char *argv[]) +{ + + const char * options[] = { "document_root", DOCUMENT_ROOT, + "ssl_certificate", SSL_CERT, + "listening_ports", PORT, 0 + }; + struct mg_callbacks callbacks; + struct mg_context *ctx; + + memset(&callbacks, 0, sizeof(callbacks)); + ctx = mg_start(&callbacks, 0, options); + + char ebuf[100]; + struct mg_connection* newconn = mg_client_websocket_connect("echo.websocket.org", 443, 1, + ebuf, sizeof(ebuf), + "/", "http://websocket.org",websocket_data_handler); + + if(newconn == NULL) + { + printf("Error: %s", ebuf); + return 1; + } + + mg_websocket_write(newconn, WEBSOCKET_OPCODE_TEXT, "data1", 5); + + sleep(5); + + mg_websocket_write(newconn, WEBSOCKET_OPCODE_TEXT, "data2", 5); + + sleep(5); + + mg_websocket_write(newconn, WEBSOCKET_OPCODE_TEXT, "data3", 5); + + sleep(5); + + mg_websocket_write(newconn, WEBSOCKET_OPCODE_TEXT, "data4", 5); + + sleep(5); + + mg_close_connection(newconn); + + printf("Bye!\n"); + + return 0; +} diff --git a/include/civetweb.h b/include/civetweb.h index 443a8dbb..b4d24f98 100644 --- a/include/civetweb.h +++ b/include/civetweb.h @@ -571,6 +571,12 @@ CIVETWEB_API void mg_cry(struct mg_connection *conn, /* utility method to compare two buffers, case incensitive. */ CIVETWEB_API int mg_strncasecmp(const char *s1, const char *s2, size_t len); +/* Connect to a websocket as a client */ +typedef int (*websocket_data_func)(struct mg_connection *, int bits, + char *data, size_t data_len); +CIVETWEB_API struct mg_connection *mg_client_websocket_connect(const char *host, int port, int use_ssl, + char *error_buffer, size_t error_buffer_size, + const char *path, const char *origin, websocket_data_func data_func); #ifdef __cplusplus } diff --git a/src/civetweb.c b/src/civetweb.c index a5e45864..1d280b91 100644 --- a/src/civetweb.c +++ b/src/civetweb.c @@ -5255,6 +5255,152 @@ static void read_websocket(struct mg_connection *conn) } } +static void read_client_websocket(struct mg_connection *conn) +{ + /* Pointer to the beginning of the portion of the incoming websocket + message queue. + The original websocket upgrade request is never removed, so the queue + begins after it. */ + unsigned char *buf = (unsigned char *) conn->buf + conn->request_len; + int n, error; + + /* body_len is the length of the entire queue in bytes + len is the length of the current message + data_len is the length of the current message's data payload + header_len is the length of the current message's header */ + size_t i, len, mask_len, data_len, header_len, body_len; + + /* "The masking key is a 32-bit value chosen at random by the client." + http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#section-5 */ + unsigned char mask[4]; + + /* data points to the place where the message is stored when passed to the + websocket_data callback. This is either mem on the stack, or a + dynamically allocated buffer if it is too large. */ + char mem[4096]; + char *data = mem; + unsigned char mop; /* mask flag and opcode */ + + /* Loop continuously, reading messages from the socket, invoking the + callback, and waiting repeatedly until an error occurs. */ + //assert(conn->content_len == 0); + for (;;) { + header_len = 0; + assert(conn->data_len >= conn->request_len); + if ((body_len = conn->data_len - conn->request_len) >= 2) { + len = buf[1] & 127; + mask_len = buf[1] & 128 ? 4 : 0; + if (len < 126 && body_len >= mask_len) { + data_len = len; + header_len = 2 + mask_len; + } else if (len == 126 && body_len >= 4 + mask_len) { + header_len = 4 + mask_len; + data_len = ((((int) buf[2]) << 8) + buf[3]); + } else if (body_len >= 10 + mask_len) { + header_len = 10 + mask_len; + data_len = (((uint64_t) ntohl(* (uint32_t *) &buf[2])) << 32) + + ntohl(* (uint32_t *) &buf[6]); + } + } + + if (header_len > 0 && body_len >= header_len) { + /* Allocate space to hold websocket payload */ + data = mem; + if (data_len > sizeof(mem)) { + data = (char *)mg_malloc(data_len); + if (data == NULL) { + /* Allocation failed, exit the loop and then close the + connection */ + mg_cry(conn, "websocket out of memory; closing connection"); + break; + } + } + + /* Copy the mask before we shift the queue and destroy it */ + if (mask_len > 0) { + memcpy(mask, buf + header_len - mask_len, sizeof(mask)); + } else { + memset(mask, 0, sizeof(mask)); + } + + /* Read frame payload from the first message in the queue into + data and advance the queue by moving the memory in place. */ + assert(body_len >= header_len); + if (data_len + header_len > body_len) { + mop = buf[0]; /* current mask and opcode */ + /* Overflow case */ + len = body_len - header_len; + memcpy(data, buf + header_len, len); + error = 0; + while (len < data_len) { + int n = pull(NULL, conn, data + len, (int)(data_len - len)); + if (n <= 0) { + error = 1; + break; + } + len += n; + } + if (error) { + mg_cry(conn, "Websocket pull failed; closing connection"); + break; + } + conn->data_len = conn->request_len; + } else { + mop = buf[0]; /* current mask and opcode, overwritten by memmove() */ + /* Length of the message being read at the front of the + queue */ + len = data_len + header_len; + + /* Copy the data payload into the data pointer for the + callback */ + memcpy(data, buf + header_len, data_len); + + /* Move the queue forward len bytes */ + memmove(buf, buf + len, body_len - len); + + /* Mark the queue as advanced */ + conn->data_len -= (int)len; + } + + /* Apply mask if necessary */ + if (mask_len > 0) { + for (i = 0; i < data_len; ++i) { + data[i] ^= mask[i & 3]; + } + } + + /* Exit the loop if callback signalled to exit, + or "connection close" opcode received. */ + if ((conn->ctx->callbacks.websocket_data != NULL && +#ifdef USE_LUA + (conn->lua_websocket_state == NULL) && +#endif + !conn->ctx->callbacks.websocket_data(conn, mop, data, data_len)) || +#ifdef USE_LUA + (conn->lua_websocket_state && + !lua_websocket_data(conn, conn->lua_websocket_state, mop, data, data_len)) || +#endif + (mop & 0xf) == WEBSOCKET_OPCODE_CONNECTION_CLOSE) { /* Opcode == 8, connection close */ + break; + } + + if (data != mem) { + mg_free(data); + } + /* Not breaking the loop, process next websocket frame. */ + } else { + /* Read from the socket into the next available location in the + message queue. */ + if ((n = pull(NULL, conn, conn->buf + conn->data_len, + conn->buf_size - conn->data_len)) <= 0) { + /* Error, no bytes read */ + break; + } + conn->data_len += n; + } + } +} + int mg_websocket_write(struct mg_connection* conn, int opcode, const char* data, size_t dataLen) { unsigned char header[10]; @@ -6434,6 +6580,58 @@ struct mg_connection *mg_download(const char *host, int port, int use_ssl, return conn; } +static void* websocket_client_thread(void *data) +{ + struct mg_connection* conn = (struct mg_connection*)data; + read_client_websocket(conn); + + DEBUG_TRACE("Websocket client thread exited\n"); + + return NULL; +} + +struct mg_connection *mg_client_websocket_connect(const char *host, int port, int use_ssl, + char *error_buffer, size_t error_buffer_size, + const char *path, const char *origin, websocket_data_func data_func) +{ + static const char *magic = "x3JJHMbDL1EzLkh9GBhXDw=="; + + //Establish the client connection and request upgrade + struct mg_connection* conn = mg_download(host, port, use_ssl, + error_buffer, error_buffer_size, + "GET %s HTTP/1.1\r\n" + "Host: %s\r\n" + "Upgrade: websocket\r\n" + "Connection: Upgrade\r\n" + "Sec-WebSocket-Key: %s\r\n" + "Sec-WebSocket-Version: 13\r\n" + "Origin: %s\r\n" + "\r\n", path, host, magic, origin); + + //Connection object will be null if something goes wrong + if(conn == NULL) + { + DEBUG_TRACE("Websocket client connect error: %s\r\n", error_buffer); + return conn; + } + + //For client connections, mg_context is fake. Set the callback for websocket + //data manually here so that read_client_websocket will automatically call it + conn->ctx->callbacks.websocket_data = data_func; + + //Start a thread to read the websocket client connection + //This thread will automatically stop when mg_disconnect is + //called on the client connection + if(mg_start_thread(websocket_client_thread, (void*)conn) != 0) + { + mg_free((void*)conn); + conn = NULL; + DEBUG_TRACE("Websocket client connect thread could not be started\r\n"); + } + + return conn; +} + static void process_new_connection(struct mg_connection *conn) { struct mg_request_info *ri = &conn->request_info;