From 56485f543aa17693a1fe3e22a5b8d100f682e1d3 Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Fri, 9 Sep 2011 20:37:59 -0500 Subject: [PATCH] cleaned up session, added better protocol version identification --- examples/echo_server/echo_server | Bin 324336 -> 324440 bytes readme.txt | 1 - src/websocket_session.cpp | 18 +++++++++++--- src/websocket_session.hpp | 39 ++++++++++++++++++++----------- 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/examples/echo_server/echo_server b/examples/echo_server/echo_server index 3abbfec5f5c0b3b691e94409f10f360f5947bf10..0b341d709219f530984962e1f6dd859adde3b3c9 100755 GIT binary patch delta 90564 zcmZ@>2V4}#_rEN85hEXeZIz14<_%Hpb zg058so$hwsin^JXbh@g54U(C3(YVupClD`UvA&I!G&ae%SK#HbjpkR2>eAp?+jW=D z`i9J4yM1$fgy*0@Q?|@6x03Ec1zjnbH-<%2>7vYGGpqEP(blNf8PoFvjjI1)N?Mep z69J9;=yb!4mS2skPi+tW-T%V>8t=}(_<6iF`iJRyU6SKxR=sMyR&jknt41X`s?Sh# z(}fgy)ntXZ@PD$wRoj|(O;L14Yih31YDoK1(Ir?O@yMwHw3}}OE;jvXg=F99u}3q5 zoUa(w<$*kKI-r&Uqct!5X<6A(@+DtLS=1$d07e1G=T9RRhG=j!TI_rR9%BQJ-J|q8 zDe$1tx)1qBm+=6%1}O*m_ZpTT6A2-L*8}%sek8{r`1(JZO8z(=XteklEpgeXZo2)1Zi)E`mizq3zdG2vuT+5YIBp4+d;C3w ze1e)%$QEYzG+R@PjMkJ~UUxFtmnTRw%2FB|t2b#%T3FfHYq#6i+GQ zR~`{CwTS;lYN^p@dqZifp;11FVkJ>7IYgvY!$CshF&xzPxMEnV<6(Lz0}D$bJ5(5u zQp^j-E4uX5VqJ1&a4+U_SVHxIrm;zi&e@OuDD(_As$=0Bd)aqJ%Lz!XC?zM8dMk*+ za+M@45yXajFG|7FA&bAmeyMI!K4k3z8kkk`gyps~m0yQW{3@AYIbpI~Am{y!r#_ZP zMoY2dJgJ(GXY#b=J7M!cm#v^;!?hBQb6*jc%5I_5{%!$?{_t%SFVpgJgLM1Y~z(D0~R% z0-XYT0$ikhiPTq;uJw?beO9<>|Guwj+JI;;qhP=)UZWj}ba#zZjV1w+_xK9%vz*|w z#^RR5jh49E8JCiSQScl!WX@qKl+oaVAni0txHr%%H|il29BXNG!fdC$!eqN-|nn{wT*trrkr9^W`(me9eL@Q(1DLOq#cWTs-_6=6-bq^aYfX((w*oja(t zh4Y+&Ms~PPV4wLyPzmolOe;aF&%wRk#{As(p!#oE?uSNG)+-oQITaXbHzEw0zI%{|~umXoj~!Sa;< zh^NGiUlJ`hQhrQSR|J}@D?+&fAay-vcDY`#K5X!N_v$IWF#z)JBiNJr^#>?}&?k{O zu_LHULSOti!MY@r@?;KGbgS}{N0O($KpHR_x@Z$Cs!zqvEHtE+{>{!Tr(xv4p>81+jMn9$ z{4ZJ7yoHyfX+mo|Ux~XW(NB{&A0Us$^9_QvPOy&3Gr07Ztdk^bVZ2qO?ffr~5w8G5 zPAFyDLmC9|L~q6?S>uq}$_Tc-VTZ(^XV~r;?D6S!k+yS_hiwr+#I`d)0gYpXwiHl) zaD`tdHoj5Vz~+#JQqki3E9gNcNg|Y>>T|p!EU_99gH>@e8ZG_9(cjE8T6zzn82l~4 zJO5gCu2BR1vX1P}Mqv%!EQji*u?EYo9a-DP4O&kG-sL~b<71;}7+4Wh!p(LJGI<-~ zp!)pPfo*M4kF9H5uk$`>FrU-ktA@BTe+(ot!(z%@01`^7K5JQ<#`T*TRl_flutlwH zz>RMMF>i}YKx3f==n~l@xv$;w`z356i?|uu_IgYd;iyNf zag!DmufmaR&XFei&!oMu~^G@ba^2sTZKjp}1*@6xRAAac#O zz!6ge-7%}<`zfIs9PLEGcf*aya>zhZ>ON1Ew&w74T2|=Ow2kSzev*+Qpd`w!i85N^ zFsDns&8JgvlC^J90z%)47hDA_LxVZl8%@JZ6E$vcXcVf?m}j{?q(~xeBId!ZjTg6I zjoS*Qgw<27u?As-lw)jeSXkm-SwgkRK2buIV3erLqC^}Yi=1}of48lhgb(Q}G(~3= z&KJvaa9-wP*p;w)HOAn%ApI?bqC)-|oXC8eby9Az9?iNmxGuP1ENtg*$DtJN@y|(Z zJgRJcvvB{nflsh59|UpfZP%JX(3cCNysz&-x&1#wA2SiXUl`j^_lmX`(tc%n$C4E&JZd`8s%(uMzGQ#koc3 zQ^H43X6QAb5BsKh{oq$X0Y)&`53`36Ac_UDT|9f*yiVI5pMl4Fu!l0-?=A1Qa5q`T z8%_4UVpS)>(vg(-lf|}ZQ0=Lxfx-`;vzaZXbyzA3*vs+DLE@AljKR z?`mRYErwOE09b56Uq2B(1#D9I_~mi6m=sRj9~u^`_h zip0(ru#a1YDy!MoE!*nb8QG(jGddB9l>LK9T#}toQ#kp8$XLQR#DL4kB9`oY72DLR ziL!(pY}HL4)tmj@s=eN~H*40qwQ`XSZrvfS8R+a(-a0k)n?9C%mWxI;vB;>#<;Pm` z`M1EvT2AtnFOu6&@%tza6_Jw|Xh9gx@{7y(C8ZCa!U|jWRAw^YHd877+q8J~yl)mbVeSmuDuz2sSZ0x-s|z5P;r(z`cJ4&(!4*_Ad; zyWIw1Y+8$d`F12c{PqzT{Hh9m7zw!fEhl~{0sIc@)^ z7Ccs65p!5H?bgIn{%KEO)RzLuyPvVAZKK9y17eRW68SiIX!(l0^A+(ILFL@bzk`4H z8C*~lE;a`7i1w!kf$e;QcDJysc8$zm0Q+1QV+y0j;Q21*IEYCzgT}&&XVJwFusMKq z9|NHCd+KIhq10L43^zFl92q+zc6jWtp~jUrm!WcFHHWorUr%49H#4^1sJzN9wQq{r zUDkfKa)Zr|XcUmu4Jxafac#vzw$_LAVup^QM%`5eHUdO>Pb^JdcG%bVotv!eCr!oKOaJ8)DK1%}yAmx4Oki=SfaIu$6zY^WhD zbPZ*%C6H8Md+{@HQfxuIpDs~N@#AkWo1u+9z6(2L7+bxw3q`s-WbHcF)z|33;ydT- zn{{WEyR_BU@6MvSWORJFD>O{T1!a5?6WOxcu>r?dh0)M9{eeP_;SJu>AWdrD5wymx z>~@!)%D=3ARPe|hn}D$zM&RaZ9Lz{_Ut(yD?kv$=2ptEGXgeknn!`q*i4?hm2|Ylf zV+nnlZHua}EM|wILd}t#6kTLKnuUerY&iqAq~xQ~e>s@C*(lycC?8h{&~ypH7$cwe z1Gpe=Hw2`np&2fNNX#Sj23o`^LRBf&7Ff`~8uH(O)R$o$mBY7@xZC3nLLr^04tg!4 zC2t`d!~XyaCwc=r-^u28jY)VH&jlIFfTGR|6EGU%Bodd5{FIYvd4$m=S3^mQ>@N$W zQ`2}SN~k{Ox=mT%G4JnGuGZ!`&r;B_c+YS5(`E+`ieM|lx9r2Ht=q6mqFfxLi1 z;{xe+m`&(5!hC=MXEo$(glo51QWW~JR zm2W-eo8*;mXD1!Tnb;60w^aWrX((46y9JL$`q_PhO&)?KR8G(0r+M&qDOnzGjZVS@ zD#HRCk_48O}xd z^JX1z38hPIx&-0^7eB7$SyH`)G#?LIZT-_$2jZl0VNy3N-F-zwy+8yhN3k9xq{Kmr znO7pH>hrl5%N;~r&BHR$!}1~}Ewmb#Mnr!|#n-u5{&fP1?Gti4;Zz4VnxTd6& zoIpyNRsUsfmW_yNvt&8O#qu3uIa#v&C&;s;>Ofj9sSd;rgD~hNBJCnc4||dBa+7v) zk@hFjYMtbA=TeQ9mOJNYv}!a7KyBOweyELaA%dS@Qr-MI6-s;9i*TOWR`~a4mkjV? zJ464~yfcPK8xU#w$?&n-@(`QRGql~eP)L*p7FZnx2r-&{8m&HCX~IRYFFY_y2ez+g z4|8{_(ALyKOehm9zw zBOcpKmZzAX`iW6zuvBSY5IfW>EWwHFau6v8a!m<~W~(XK34!;yPRK6dfdIKD=YN4E z+EbcUSEK?`ef)!1%b0HFmT*5U4wx*};n*mXrEj=5|Mi->e+xO(Xl79cIZ?r2Jd{U( zg2oh6HOi^2Xu|BZiep`qjYeNv?{+Usq!$>uqn%O>TGK)-mgY`mv70dwSSAUHZDelj zgXVQgwJf7@yzJ)$Y&4?5p&94}5mknFtwJa*gpMV1BmqA~SnykUvJfI+hg{pui_mhv zC37$IsDHg;GTlPxKJ4 zm&8QiXeWqM&1pnhN^xp6^!1QRwNld@zLGAJ$PP)ejvlgT!7(+{K|8QmuFoQ}jgqXH zhpdhy%W@o&WZ6VEhsefR4M85dTOwy_wqv8D%OScxlAVu-tWc8WIOa&QTp|mRWKUIh zLA}F5`_wYuL*&D@-#zeGWcJ;T5SjfTWj`y)e)5nFm1GAU_s{~uwtOPXm1JLf$l6G< ze8*WyhBmB>uasmTs^}oZfawwUk#vQQTuCREhQ>&`H$3dF3P@^^W2Gb$+c_O2S*nNZ zfFvt+jFDueB(<6(TjU|jYPF|BTqDK&TR5D62I*)R?dY6=-T&afAP`2P$4^}#C^|11^#aC^K18L+OCPo6Hp7uJ();G)PDYFkUxxy`0j3+|nnU zt&0!UHw`_IdCx{ue&OgRfbY4Ks$C55N>MG%Q^@d02BX zPN|M&9UV|9?*x^c0eviY>4`Qk;vR?^YFueY`;D9_r92!of;fm0)bh$^l7_^@<6rQk z0*q>c&U~=TcjEBHJid%d*Xr+FLo`@}Hq@<*VZnJCQ!p2)G2`B{N=D1ln4}Z($VP9O z>7+Z;H9uFT@j#XDETT7s(};9K3&pm(q7q!$7mlML=}{JIs#E1#*W)%e$<(^>Ow!ew zHwsZi<+4PWX6Psc+4(58(-bnZ8-Pc`JHA8$tvHraMxs=Mcm|{22n}*R4{S{8_JcYW(XSB>2@UMm((ndlNh z-z4lb=D5%k4tA>|>GNl(_@gPN_8fxxt!#?dduC@xcu`*7v1)nE0xxyOtZ%}nC z3A7YDC-6P2Pyd1Kra&$qPnXeT2o;_rA0P-zcvxc%j6K5d+424@Yw4Q;0(D^ZudB%F zM?8Z)?O(TwSt3gLMbPUr-BgeV_=K=6`r@hReg;v%CFJ3cCiUF;udNG6bExKLww zUr^!L$9;IMm=~bV3J=_oq@_H8MD#c($Vfy>FA;ed73L zxsqiLuRsaQRg?7?O;`EThE&1>{Y)yJS&ab~e5*rGUbzXoHNa#(Du~HNIef2hc?nGmb!Vt65th5RiL(u%uU+xjdj0(_}Si2;ci#gQwpER%k7 zp^?H3@tkofU{%~v68eCQ)4;{19X-S@4eZk6k@AdVob_Ff zDFLdSV_p+Vm+*}sFyO$EcQcuy^=5S$Rt!q`0i=y;u;BNp7r%F?QVE9n&oS%8bi- z)_!C#+cGQ)gyDnz&?cV@2)e@$t? zo(vz;WDAO%+hn;LRk1E(%qUCt;U5ZE2~T1#j~Kw#PpQJ{jH!+TWj~Lo*9ik*h{2{L zX+w1&7uxIrP-s&KZJs_Pwj|SfL`2*q)^238K$l+BY7Wokec8m3-}xSe(kLx9cWl32 z18b6+KCdFX<^&uh!fyCHf{WFjNzbAxN}G8tkg$`ZLd_M0SkXW(dYKB~5nn?f%SCF; zs60m8*4nd`lC+dxhI1WjsSb{&9}+1Q!1`BDurdG#4NF< zPUnoF)TSV$I(MU_y$X_TD0QnAQcchYReAs&tcFW3!P;eYkyZ_l?~__s`-F51^lDxeG) zgZf5tqW;q1G)Bq*dt4f<((!RMh;dw|(VCP^_>lvI{M0N6?+D=#%FhW<3P8itsHC>v z6j71Izml}s&b8Cya7fgjkQ~PX9S8)`>KHAFs7R*+R$ZlX7|Dqnk!B(yviLd;I*0$ls*E4l^bO$n>n;N6wbvlkIYj2j=E>~U@rf~&suBB; zj?k)H6BI^pF}eu`O6y2UVNfYQB1Dz&udAX*XMPhxhaRS)#}o&)-diNgGFn(jbu6D8 zR_%A;&3xX4;M7fSq&&0~BuA>T_SISNCwvFzQ7gV|LPqz4^cY*P`j7;#rvAocSxx;7 zF}+Tu5Jhd8a6&#GBSNs)If#G3q9*nmIzuQy{dgfyB0s|AhAOzL{*&*Jc-m@7lvWJ| z932Eu@z0`u2V0W&s4~L$$BCiS?}Aq!bq~h5*jE)tqhWccg+x`xuL~tG9KFYH`a=jt z_P|iZK1~?wo(N>4#{%(a@YAq6<>SKzlFgO?ws3m5`PJK`rxN-2N8i?Zy_|!qws)4%S-3AakQ1n8_#?O666O;o2rSS zbsQ$8h(@oTBn8d<@NAw%f{1VedttIg>CSdet`~VkL{72uB_0Gf@#=J`OqYtdh?0`0 zejf_D5`LEbGx;ssEnlTl3-_@qR|EB<6RuK?e#X|AmoO@Rqq--T9iGz2OhMobF}A#G zRK5baz*!S-@fV4$$_Q;zJDb$L7**UiwzL}+Ec$;5dY(h2;yPmG*&vhSFm(-uVfq6- zdbEI5#o$82uZ(}tJi^j6z6N2EVBHgA28LpyAvC0+3#9{vwoz;2iZUx=$V2VOQ@)+z z%__T6fap}%Y5@YXcuJ_z-`pe;!`8WQQcqG}>!}eV-Gw!VFNgws9Tq+}9l@-1OqCZ|dOGqd1tie8+ zHon_@@ONN9N9GT4l2F5vIWYgE@Q5LvK(P0KpUYlhuDS;eL+teWwH5;ofw{{)sniB6cnkLVjDhA0!1D8ggr;pY)Z&xC%GpKc&*BFviTqBS z(x)bAw=-BKa(P!0iOJb-5|GB%3DOciRsZZn0Sy){`zBhCdX;<`uhI246g`F+@I@K# zj5tV;r;BKD_$;^qoPY^3rx2x*vI`h`SSO2}Rk!*F+T%3^Ry<}`XEy9xj=u#{lB4vt z5V7CI%dwC5u%GB+-%I1SfyK-U4s4`7jUnz!d=)lvLHz;c_$$O;Ms68zF8SwUrJdA2 zhM>~aFaBMqpU)2n*nM6Z4V&yQie|lCxf-BO6Q5CuMvuLpl%bsJKs3U!*$v#hBef2? z8uGU4U*%cUry__;cwU)~mCmdmPl`gmsAYWCb+3o@aJrYDTOignMPpC`!q1Hb>^@(_ z$I4UH+y3i4hyNL=ZMtL~mQnUzfC{{C6;Me5z|o`tFGl2HofLVatECuJz~sf352c zevufuTGuWnHU7EQHA*WPziTuGOAaG_{=QaLR*)`w^MZ6~p_(pQY)g7BH3FV-fUE)L zVxA|=rh#v5S%qP9DX%J^CHy*OiPCkV&j|H6E_sYyJGF666fp)>))Y>TJAvpUCUD&C zsnT(Mi5>ik#+v#!UhA@OT&bD&5*W-i-lklxvo>DN%l}!Yv!wq|b7ez3!P@4;#P2z4 z6VyFqZGvSFS?k;_ogfZ!eTR(yQ3mMYW((T?=;4HFt}^(~9&Rg2$Gv$Oy6e zvs*Zj+8@q85DqHgD_HdWCMMtO76s>NR>D%J4sHOgk^b3yoQU!yN|H#qls3yLId zQt>s*oo`T@v8(gLTfGlHiORnTmT4Hw(*E3i{xfR2QN`Asm{b?kEk;K@E31Ue~=MS z;1CO57*fNoJ*Cp?To9GQ`YsGJPko9fS+^ceBJxN427xT@$>RQEt!n)&NlSSTN_gHn zFjQC$HFNN6d4NNXO5oWOGrT?Y-)?SV;-KJ4Mb z#^(Kmbx)QWj*+3;S;&|DOb#dz<)Sao6x3L5u^QG16Ylb=f)wZftSMD90IRonkhxHD6IxqSvUoMA zZ5F>TrP72E+8&<>e)r0O&JpN(InZ|mDiRG zDjsAcWb<0c?);rEAoHkq@>wpjib1~2+DM>Ecst5fZpmecQyb*dlFQI5Q1|9TT~{g- z@(y2*NEZWp`8ZDmK215%{CN-U(Xn7LX77D=>w{Ppl^k!5K}!xM!aesWm&WjSO0PT_ zh-k+oF6o4{A&s9GoQoX?sP}3?{(vPks63=0P7tEH86ydNcx8kJMTr^gR7#@xy9Y#9!gpe!!QE}U&eeriAmn4CWotf`#}lmkN^v_H z2z96t$RUo_J=CGo<2%I3niqrcM%^GvK14D%TDM2RpMVM^q}32vL2CxpA4Fx(C`1mh zqGXXLS?o$$4Vh>pplalKo{lhqHni!0sVZemur`|obmV!*3a|)hoJO1yEDmGKbI^?j zTrZ2z+DEL7-S-jOLswM7zW+tr644O zJL7IjKZQwE2}Yr`uuscrxMMfYl>VeFCC#Yjk>iZk_(4WX#%`H3B6$$W$V)I`!XRk_ zZ46-_52KlKhpX^9PqGj6bJj5`SHX?)@vns?!fc}gci>b>j}hdW0zMZCXws9%!H%9_`q0<-QTVrpW8#G|1CxYOeU(pfbuFQ)TI zcy>x1h?*}T%dK0NiJT?;phPXCN4)ergcw}pQ6M^+CE|9IK*_@7`_BkF3B;QVMtQ`D zuMirF0_US{U=e2nrWW95F+w>&k>+qcuJhb%O{^mJ;l}INN!D96+3IqA=aZ#w>rqZ0cH);sZLoS7u!r z3Iiw~PetVwd)|*-kVzh`_;8sfh54tT1do6W^u`nw`J^ALuu%24<{hL*tKrEgX+&k2 zbGLwQ0@4hRNGm#iO;$u-`vH_z!*|HQ#|g*m6Vxco(e$VqiiiS_F;W6y`ALs7eo&@K z5gsVgTZ>2@l=|ncP^wUfH;f&q=*$$WDWGx%fWT>G`xmK%7Lqtkkz9!rKO)%_Q~C!f z;Wn{^gf}FL)1%eUUNgIv%v>ss`+T8OiqQs$E>ptQ~JjnSFE2#~CkCd*9!@6+h z31=kGaYUeAUs?jSy@ zVJ?B-=F7AmZQZJ)_6g$liAQY=XJ{}$DrW#+mj@q^8JY+82ScMh@W+9IEjbldEzlIRA^&pnkX%g1~-@G0;O4g zL~2MN-daj0Mm$|IjnSBzXG*SO$=Yg|HB55l5*i_7Z4yY$@|uOha)~i)OMu$vuv90^ zCLllNVaWH$GzsHXku9ORoP&@F=3PZX&F!ZD?#4 zMoWxgXMY%d6=5%oCLsUD!;$C9GzsIuNNYxKI46vzmsfdJY4iGXTJQE$)S<1*NF+-7 zf_M}|NT?SLab)yJ@NyZwP$(yRs~@Ct1mba0HZgLX5e;He7IDlF98)vF?wD4@euC6Y zv$EltE<>XV$WSZ;U-<+3L-!8T>K&EJ2SQ;X&$1>>Fa}Yv#+9Fyi7eiV60$Hym4@sNX1o)!$N=PbVmF%fRYzFY%1kVXW3?h%QPUgfZdp-Nuab$#qmVVOns) zOGVH@uEfb@*cmjnL+PsiW1mHdqJj<8iNwVb#BsSsYf5g}IkxV#zUG(FqzyVN$~$%_ z%KIzf7DFO|;LSWNgKJ8wYsd(k-ye#}az2eqGYKgU2pR4e<-EEojCT3vpv&5Ir$kZV z#E{H@ttJ=S=&~{w-{eUy`leSg>7O9BlagROhHJr?9~?xal-&+E-rG;?Dfj@yY9!Y) z2W0$)=`Ky?)EKM@my{Jbeh>f|bC2XED2+*ZEm4|zrIbETDy%$7GY_xVYvdF!hB|;= zAfRux%m*|6268%P@{CbUP&>vG>1>cnHlv8mLoDh#MiXK%5In(+ zok-YAgl$3Cj&8(ELVQVx>V&B8Ml2-6M?jETIBt)FI5%}>O;{Qstr`+X&~*G7RFaBh z5pEH2%tI0K(?Dq2%Q4IdLOmkXE}-~F?u@%BV-#U=yhX>e2&=lWqPI8K*JNVf4<`-X zNa~aMQ>-{U0x0VU$~xGMrJj$M0!yZpQBH#!=ZA9UCn;wQ%Gr=|)^%e;3HyPT6Iz+E z;tma@p%H{!OIdMp93B9IUvXoNgq^Eptw03F-8j)U4x*fRyFtfuDd&4`tZ1=1XgPg| zV2ulhW{KCMe0X0&C!EaZx^Ot`^c0nkY{VfqELjuR0dDL;UaDb*?+t{Fpi65Pi44^? zLhyZl59>wJP7%%h1=xJs`GW)wBA>nvj?SwRu#5oLux#Y~Rsu2!aE<`~lYm?T0_kWaA9M6_B04iccbMr78giU{};s2t1|b-a!Q0PjuVdbTbL|F2UBiVbt65R_?qbh2Uibe1!-ny9lvlGm8L& z-GEH~HvpurEFdhF#1ln(H$^`0On^oJuniZ3SX5?kP)kfnR-unT*;`XWsZ)BB&B|=A zpZ*(rJF|!RcVuwA)3EYp8pyDa;`&zBNLntY!%ym-Y{FPs4&BlV!r?5^83&$;0DYkB$NfCr}o9_BNs?B%!Duj8zUdwcz)9UY14zYjM)4)Kn@28Xrp^H+%*wj?2c z1o~mxwb_+$gk3+RZi&>A{R^2i6`;0IXY$vAoSyV=(3A0AJOG~x@@P*+jOb4iLP1fBdF3P zQGF>mw(LhT(|Co<#S6iIJ;>0I%@CrU*R222kKNE>u8wJfEex7K45y67W z|D}fhIaWQ81Dn&ImZe}3uGo1sQ9VFmZBkc+$F3EHW3t+Ebu)Fkd|oL`>7)egFXSt( z;sYDnHs=`;gKM`PUn9M~@C^V`myLmGZI&)=6ALO5x(y`M6`JkY;pjREF(xta? z`^te8^>u8+?D`m3QIjaY!x4<)$H1x=05a6ipP*VmpU+rBL6T_wFc2~mtn=~{EVpQ{ zyeY&W$=l+NbHap`n^ryH1A5i0z96{I_3(mY1WCf#SNJtsz)PLgY+{)>$7=b7+nt1JOHe;mlBPdJ{So9KuPhM<8mUp4gPp@avd?-R>ulBLdz<=^=rp5tM;#ly0tTgkIT zlpr}e4`@mbA&x;3xcX-hq?V$mgBcfHG9!uNE_?+uGQh(1wYry)mM;%Bb}_3&q;^T# z&x^FDo3x^f^wI*5Zjq$E8Y#V5`S_Tkt4?gyXcB-|D|@odSqXO$b_B5-Zxv)EUMQgk^NM27}iq$4wKT?$A=$6K- zG19{|Ue@TQ`!(PFJ|CnzC21os(wc5kKNsmSB26RG^pj@ydzIo98mrG$*rvUs2SEm? zDonf6w}c-C1@7QWpV+Dd5zlY1iqeCv zVNuHcJ^8F_g)sGqN2cp@UQ4}Tj?$lW?1d&lEW*~fzQG%@4ek?Ws6HV__RO*+DoQ9j zkj<4YEa$B+YUchZwBzH8b6X{lP21dBnawtAuBQyzvvYGt1>Zp^*>YUz%--30N8jf>d*>}9 zyS#05XfMb?yFq;jwq|*Rcr4*_zedZNaSju?<2{3_c{%fEmb|@vjgi1m-{0}9)V2ZJ zyS>wdp68*M1J8mddrPm{yC?jks!G-O0OQ-}@)qm)@y~jn57-Mko9LAf_QdVH z3S~|Jvx_bt?P>R^QK@v{1yrKm?A2Xelti|7*VcL;9Y^bIX_07I;Fq9W$7hZL9TzaX zK%6!BeO9`=jq*41|GZ_( zYl7W<{y*ILLtLoN%sV7<@^g50{>fj(ZMql+FaA7SIm0%89#LZvV5Hx#7|T$T6U{Dv z9vqUE2W{~^8dKS~$)}xvh`B9qKwR>90ju#vhx*MxVN{ok_lJ!Z+(~&AFELePNnf;T z`tW~1r=NHLCJ#(y-=uJ?kmQq`QbK^1f6YGrBBIg~yuH9nSm_tt+x#jxc1I+xO)SDY z6^J;TkmMUl70ao_j6ag=p!*Xtny~miO_Z^0_MZCfZXY34Px&Qw{WIm3vnK7k`B85; z9{KoYToTmQlo`NV+{C`v)4nA`7UwAbC#hnwCt7}W)^Y|od+{q0zz^&f2p+(y?5!U? z2-IQ=t?QM5RpZgEIvvoFJ3vfwQZ(XuxbqPJdYUoS=Oml7x3+%#HnwtqWV_y5U5yVl zXj(&djkv?_qn^n*K;-0GDQE1rTfB4f#UhW3!%>aHMciEz8;=gy16F-bv5EU?D-+mD z`#N;(d z$wD8`;#Wj{DdB&7!4}LDbKK)rQMgZtT7GLU9GUU+;cBAfZ&jnNObv4MA+bCoahX%7jN1_!QTYscp-Dw&T+7vQn#AoDdpBe1v z5qv$v#!4KmyE`|z)EDnPCb=G1<&0c7~kGRuE+tz|T_55lxBM6@TXj`Tr^GRY0kM&fH?6YJ2Yg~r*{DLq+ zd@1ZEtD4_TDPocNP4tyFvf=s7>6V%wS}h4gWO~rY=*Sn9)@Hkox9t1`4=^4__VS@- za(ExhomjO~7)}|r&La7kEj{AhJ|QBEQf?X3Z>8}WpD_O~TLdM4BwT1xQ=@3^bd&G+ zjKzPsAue+#sI`NdxYGno_EHT9A&!H(zr=yVa>qpB(}G4me<-vm;nrNX=sOG?Pc+wm z{3#oCBE9+y!e|GTHhjz+CmIGU(TF#H2oLQ2l+`+Es%^<7oh~FQD~vQeqyrsuKVpkd zuGW9~5qos9hyJUbEb5e{dLHOp>~`j|v!}+?7)T(Dm8x(CJ^A{btXn}peb^4Rx?rI` z^F#KaAV$As2g^VIg8r=!SdzU<_%|O2d+<$Sk3GS>A=E-2i9$?nPTge82kd|LhE+m$ z5c?8d_#WH#?Rb6l4{W7%lvvj5%z#Q4-i5r|>_XvKeg1pw_L*@k>vX8T$`1C$>FE^* zVDW?P9^Q+M{pt22TEZ!_ildNl$?-V(mr1{Jo$FgCBW9_#b{U{eK%F)8B_N!Jo^Tr8pG zU5qo0E%8D9d;A6n1NMufueA7d6_1X~2=;`Q*8}#)6{1#wmfFLM{L8KE>i5C=ceksgo&e!PY;8Al~mgce;Nlg@dyrjl7K%D4`Chi_@vdjzBI#-nBM8d-* zIovDAeLaudpR&5V-2@|)AL`XHdewYd{U}599C(X8ywJFE4rNt+nk{E96bI`qHrBm3 zzIm45vD8Q*WVvg!+~GAf2;6E^D71K`Y?fObVz~3BEUd@4n^Y{$iX+tlR3K==odR3N zzeBu|Z})A4b8mQr}%D2@_du=mt_GwbQ9b1Q*f(F zAP}EsteoDxV!$f;A`ZX%h6mO(U=?~DY}CKOuKpBa{%9$^!P--o5|7oEEqLHT;EYwN zE_e^8&&%3-IBK(VNG4i3g@NiNqWX(ewMK8mnub{Dde|It4inH$n_ZY$7`7oxf@O)H zvmPG}1?&|7hIv>Lo^lyqt;D!1_#k`b;$Z!IZ?JDKnwpFPQAYl<-<>Z~ST7?_S+0ow zdU+@XW7Hcg>Qa+dwKTH0h(FL-W4-xCps)eU;~u%Y{ma4Rp2FoU17uoB*R36RmT@VACz2_{SSr z!R0Xhs*UXC<)-=x8(EDjwe+Tqti_d9%|is=01JJU-}y5!i1T6~D(Rnivv}#1aQ)d0 z?42vk^&f6vr>_jukJ!NKUu|n@v4Qjou&gJ~(-uP|Fr==T1pf^r>N++t#2bVB7x6qi zA9mB4>N${7WrkCJ+`zJ~*6Lo-Dr^#6`(6;^^m72*C5i~W{X3K&)K}IKUjVWMLr7h- zft6gXH{uL9(kG!^8OCWDvXMa>Xqse}d>(@YZC(ZNY~T00DV(t;{(VE-;KLlOPkaya&A?es^iijM&+{oGDr@Hrtm4lj^b@UY+|ONFv>-Ry z)8oY`RchsK!y3=L2e0ri z6j{?m)^5|vW#xL2$u;X6fvm)0aXA)ZAfCFAeGUc67Bc&_$f#cyx)gBDl~#ygu=9Vx z@c*3|KViGC)z+IAviR%mrp|El5JP(zO)gDFX~rbuPR58&hSO)+UU28~#mjU?*Js(@ zq#(oeNyB0ygr`3iu%E7Xn_X`Klr1-jlHcg3*in6U5>{*`h}or)7@^oEuA#dab4Lr) zN_Zkb<)+u!^F`K~n5ajA)93SrqdP93GU^qq@x|B1!B3kPeuiQt2e$>wa;$2WXVqG= z`gA_AYJs&`ZGI^{)m|`hu}l{V+xhl&Y|*blb?3S&kJvT+VzqF~oOx{XuN|s{XtsTq zL8RuIl2mKg5IVkONi$h#7&jMKwf3iT(CSwL2fhjFczu=0 z6M7IcoEc$#D&k>X<+u6R0Yk)BF?o;#LtZznloG7xCq zOA|4uKOCK)XgjP+M2{Z_B3Sfv4(tzM&2H4FvUe@<#qr%$EapbN<{MC^+V|wWmVh_G zIH@#E^*@`#%r|Q5Bj&ORf#qaj7x#A&oQ4ZCkxQ)|PB#?H3b58%|FI+mU%dTq zwl~-$N1I;f2`M5+`&`UC8OJ5T3MH;-HM|jLun((KTS2Q$L zJeq1)q!IV;zHMUdNhbr5>0sOl3YDYwla%5D%JT#oN+ zTDEPtdmm5tun@I;$8@oh)_4Z{@TQ^Jo5B*i@Y4UYMrx25KAX@MNV>9r z0jNig>XS1~IDnd4S{pmWYTT@??}(o|lqRoX~6%1WVmGRTCRN1DAT~s%mUVl|Ab9SHVTITFeUcDJ|;L8i>l*)9Iv%{7C%+C;?K5Ks%qJ~N`~eswBlLkr^%pHYq!D;?Fe56BJTSd zJASKCjkZ%<4(d(In|-HIZbDmEl;o(h0^Hrt+#iq6H?RI~G1R=an9R;%DRnYyey4NCIzot@e~kP8 z6FSyOE+r}Vhm(-Iwmx(+``}JQmn~**9V=C*i4ndK zE_2?UKsiGw=OW~!$k@J=RIu|W#0mF*SpC2Iv{*ku+GE5|yoqLKjUbav&>aLQiD|Z! zW&GVLDB44dO)0d0otLsN|DK-kw@?a{aYei$xZ8E~hqXogS^$;>j4IwjYzH_r<4x}8yDXZh9I$cCQ_~85qX;0k@ooQ)A z52{bo@$B(GjT*K_E?Gm}A7h(HFY>8AjwEKd*S^l>mn2*9{iZ*l2xg)0C$U%VwK50O zllz0_Ie3ETH13atbFb_+(s&sa4%~4e8Ta&pipTUYleQfX1tJj_na_ty2?488#2FGh zJ}Hn%v(-b$>0uu$*=O=yva}zMt4XD*Gj@+F4p=pkrsOr2GsFFE`b{Zp(S2KdC6q~Q zdQbdh1u-)smv|);OPWS(pNe-A`TKzK&xs)>az^VuIz367fH6{75&v)*8~C8M`4uv$ zl`HF5D9$Gdl9XJEim^x^O(MJSV8p}pICZJsMc$3bI}kMXc!3|jbtHZ3&H*o`}R?zu+2~nTMs6+FGkLBImCLs0G&*1JsoR9 z_qm$P0v>nL4`0gS9*;H$lX+Hr3l9Eogmj{EE77uIkaGe~9~Kh%6IcR8@=-5d{Ek$) z%hN<2`iKgC1mH9Ikk4P0i9&us=E&u@7eJSmr?B{#pgh8nEc^xoRs##TjtsP1!S7ud zn?VFttNK~1HRmh9fb_<6->4KImr?nWG?<%g3+<}Zj-}S6G6@kQn@PfUnnFz*>26b? z66&cRh+N;;F67-v9XP4x0+#)6T<~X$Nx0ZY+9s01=WH?i=igL)&jl>`Nq_$&56$ew z?3*XKdcOtirKgepzrxX2g`lO6?-#PYPy4pt2nb#_r6ay1BvlaD6VxfA5?W6|5tQ(S z0(6R!6Be?TWuvP!oJW4ddsYkCy0S(=FXGX04-sNi&3+VKSLU+3vhZ=o27AtY(GP?1 zR!~bjp*0pSEQryV>dz@D&U~#WqN*UmQrO2h@hz6ZYAC4R=NAEpA6%#)r1!?wU&+uztOLuFa|_Lu&LVfY`jaf)eG$3v9O) z#pt_m7Il&_Y~a^Z_0~DI9eSmc-aOBCNv{lRYXwg5xH}t(^pg|aa|>d8g@EwK(3xO2 zcfM_01!b!8$acJf(y;0M`Q#jYbYli^m*E-^x{j?lE&`dA#q#5gGY7gI@G&Ky{hY3k z2fy*Z@IMT2=b!vM-Wq)cQ^F+2xw$$PSha2yLn5f@!?RCq=PD|7s`|U0ugTC0@HjBo=@kyL*l;SoABxRZ!NNxn6@z3WGTo8Nm{#&1j)95;G#TusD(0G^R= z7C$uH&cpHuB}F}-L{w)ew>A371FfEa{|{Jhk}M;iCG_ZYP<%Q~$o$GBa}p6Wkuvvzh3g>ZM@Y+qm}U1h^*R&jeaf%; zyy8VV-%a|9i?k|{eq)xjT{K!cJlR^KRijA&4r0!SXv+yc8m0LBZ(NK$j#4X{2#F~0 zun9tQ_s<6B{tX$kq=;|&c+O|$BQ4KontMtaRi%u3h#dNWGu|lh`q|(I`H(SBlW}~! zkm3H>;5d>|Ny^xu$)Iza8JY}hbOo2m^@;QnVhw2esWUjzEPjBwpPQE7(>!_WFVOBL zTH5Uv2PmmlAZIExmQ!@?TqPY&&~S&maT;ug7tGNY9KGl*)xD9errPfMEA7MfcmZ9f zGPird9K}=cMdsi}fh#elLrWmqfF#F9Q*2ABE91?+fIhQUXH??@-M@}}1lGC@(3Jep z3+C`cB_z1aA%Dn`8k}_~0fMOF9tz6%TyYL|r|&cM0{$Xj~JpKekk~1|@vp zMBA(YWlH-2h$Flgw_E4_feJYF>)sxn9Bn|M>9wb~?Qwwe0&CaAcN8W7Uenm#?i>~H zE3Zaud6uHLrygK4qL4cN9Tbf?kRkWo4nYm-2R0EDN~c0;y1z5Y_FWAnyjeZKwbLZ^ zDT$$>f#?+v{PuWTXiX*bh2Jp1Ce$|w#mwNN3M`?=>!3vct&hxSN_bEoOhPg0O1Fpe z`9K)0%R~7zN@zdkS_1j#ut09MWBU<5vs-r=aAfRkNdtyN)6dqchEk_-M*tHu;FQNHpSgN>F|f7sWuvhGHMgd6 z**AL>YS-uEZ3Bap5B2*;(dmHK14fSoaIpxaRWQ%CzLwHUe{7`fY%OJ{{?&1G?p9xG zgsq^q@}qB$;h-Hp*7jZ-Dul`U}dcS+flaR^^`ICkA~Vlucw68tq10G5~U8bFw(bhX-6w- zsEyZCLV``;hhCw5Y&yPy(h}P%Aky)(!)zh-l?M9eLv7vaD`EO|!)z1r9B>_SsKkd4 z2GRVHwzc(@>87beF*U+e1qC!b7t>MTn}IG8FP)X(GbZ!`Lvx-t2*rYrrr`TAcD^4E z&>|PR^89~D1I)J!(y@iZV_3w8mCfgoolac_d9kG#-g<~dO^tCE1o~>;l$crYm7m8r zZ`o}G6f@8z0vDiBc63e?U*!0Icy=S6Q2E+G5kuIrFSIEQm67H`avNT%!fy$q#wORK z0dGTiOCGJ5406nNw9%rSe*tO=#dTDYr$yEh9t|Q=@f|$luxtWu@)(v@HBDW-s_bpJ zk>FYdZAugLmTm&EmU#vw&{b=!nha;_o%QuGoyF?sSDk6~v(ty2T`aw}Q~HX0c777- z%ZApg6*y%OJ5~cb(+)$|HtzhcW&1Ot%_mEVJ3?eTUex`nSJu%bpHm%W9rxThsnx z%WASDg^3ikZ-SJPs!zWT(qI3*W%Yg}uxjmpA~1p)0S^3EsPjxW=vC%Vh}^RZTF1>> zZdv7Y5L;HM1QyHju7GMRYK5I|eV#ii8@8-g^>Zzb%8v6`47EvvKu+dc<(Ad!Ac94G zBi&n86{Yj|VUyUhx`Z-)eogfXjFU>!s_6X)v1OGODYmS}NrO-rE>)i_by*Sxq&`IxAz?vt{)v;9%b|LTp)$#FKkksrp=NFFm4dSp|_sF9t2C*u zD}cIgdR9?x=?tOPMk)7;Mo(WGX-&dJS^!%97KElQ1Bi+Kleky z|AWr_0997GOa6_f?`q17&{~1J^Ex&BTChh@uC`Pwup~`L|FyMf^Z& z()ru{(!ub?vewUgBUh05SX&Ek%5?%me zQv4|H<-Ac!-nfkno|bPix!K+Iifx3`CY>+x;}l76+t_fWp8gY)@Ly6hsPFP0R#HWG z9*zmwShODW+qxZLXdm%?z&K97(c2Egl2R-h#O{LFT(SsC{re*Bs=uX`i8RW(Qklitrep_zPD{hYh_Hr zPrb-L%l-H@u#cqUPI$rEavaO$v1J#WU+@bslb;s_Y3HASSaVs4C>#9ht^nazcX6kK znl}6-SqpteUz@d!(xBQ*P|1->^Io>SZIm?qYjL*DZIvnd!Lc^H7dB5{JX|IGB+rkbWPM4;*pe;yqW$%b=4qEyrZ}RS1o2gAk!j0PZo>zp^ zI8EtotAU@>tMZxPQNowLXj>GaOo;w1mfT#%dlJ0d*K`R=VyXPEVI`h~T*RIK6(b+M z?Pl|j#Aues+FC^_P4ruO*ak!@6RXVBSVqL!4n`{DO*x>al6-)>6N5(l>NatBM%aB` zEcoJgX1YrLYjNlAX~mI>2WofB_}X!V*k+MmZWkvPsjQ6Zku=PA@~YpGBh7E zGyQ(o%p4@2_mB5GaOPU)nteTI&W)8D=D%{~_E&F}O^!~|!#)zLpuAz3(sTkXPqnay}vFV{(egd7qp@IMiRDby3_NuCABgGWVqL4)>U4|4*2KJAqWq`Y)A$>|3u>Gt-3R$j$y=U ztEz8AsAQehO7yLbs(hU3Ab;QeA2M@gcgoB?$RM0vletBi*^k;$=|6LG4}LWm74#j1 zGkod3Qh2~3M+NkfN+}MC52AzOGp~!LZoF~!S3~H7_Tj#$BM-~2AEZ<)byVV<+&`+4 ztSfjjSA?Y&t$_QZcxlx&3~=z$YBgzs%qV@iD99Hj);%*o}QvWPU z3LkHr8SQ+42qEG4{cKUzok!N1ZJRjLgPsaCY*<2tiY{tKXB9>=pmQN&xn@UcAER5h zHP=g9)%>Ol5;4cQsQa2m2b;9q0V(}B{YBWKhr`jJ@o;#6Cw@}i7r#tD=MCrKu4|q< z*wGpQe``)3XettV@Fr0y6a*b*`Mk~|f%*}-v{mGiRBOoRH9#O?jtxHa6BvVB@ofuF zVmSj4f*LNY5DIIMFFtn>Kq6=_7iW6#*;7Ig#?_Y;E7@CZMGnNq@pHhPXOVq+ciG{q zE7nqv)r88e;O?aK5tOhMY~f>a@{!NJ&#*%{A4~*B9Tf!@BZ_+R=B5V=QG5+z4%D4lO2(~%SfI*e-{sW z@$S5?2$&{M}>IUhc`9O2ocbikK(x^vo8bn@!&c2fs<45P3c8Ku~(XJm49G~R%D4*#!ew<$;f;ykAdR6(nicp!)VWd<{ znTK6l{Qk7e=e_tmkaHd}KQ~o2H;55$_v2IfGT{}@(}pCF42L@5nYsj8V^{x)#m^yo z_mRw5Gf1WsXN%f6+mcs&aPxxG3z@Vgt=vbHhx67vQn>c#?VB&^B&)7$gjbxoppZrA zLj#9zqR6-2;Q{q z+*MGz)SA+R@4u3d`W<9d?N47K337IAOX1>0An`^7_u+-2Bmz%2AGR02M&NnV&w0Wl zk`G5p#z*p=F#T#I?=&eC*@HtvBNkVv-&^oR9PnH7e<2CZJLKFXr-Gbc;J`fk!hGjd zc*AqOt53=<{_~~tvQ(Cg17GD24MKO(2M-dh2J$8iqTF=_U0h@7p!C6u|3WJGEp^+s=nVRo*WJfvOYiyhjMOglgILY4gNx zPFHUsOORVo==n&&xxP6PiL_ttyrFpf#8t|%Oyc#+>#{YJ{1mb$xKVH6B>d1Gqqx~pbCbSiG z2lGJwx#&8WcN!>rHH zO?UC#U=+e1!WzOmJ^eXqmrnR9Bz!GM=Sp&xkn<8bIdJTRFGOgR@S%?-{1$Yo68^Ku z9l~3*+z8(1C{$Wx{SvYG0e<7v84dr`)fz2S&7C7o4?$P!A=#fh52Bo?s|_P_Y_Um8 zaq4RE`>=mF2a481d7o#aT+l1_Vl!#)a&F4hLFg`i(4icjhy7)(=(;2SSVzt`0B6B$ZjyDz~MsWO2lUO%`x8u9Tp%M7K z`Q@T=1kd1ECGjKq4c@9AM*^02+lrAEzrc#3X?uUj!3um>9EY*4IA3c*McnOtE7 zLS|w)fS(F(s<#|Jbwy4)%Ru6X`wlJwkiT}D#^{5x)PY8DodUlZd- z@hHD|Xbi{C#zABFV!Wi<&8X7&m-uWHZ|d4cY4j2mqxf^KhyA5~g?MT-kKk*>y3stq zbqtsY^i%Q4Xx_@Njime+FQioa!sO?F+mRfwE}Hjo{mPHj{nJEbG>_z)#L{TKna>v; zp5~3hpY}uj=-rqU`W(j(Im`M{S@_`Lb61PNRh#zqL&v3#AgJR9w6eS~rnr6X@bMF` zJk6VW-fR31_Ag@h(>&04sj)~K!-t6$WB3sMn@AnQpA^%_@EY~>)5PVDm5os1i}A^t z7A5~4!v{Kyehoy^3B03wU_E+$?(*>E9Y!<|<0kNhyhL1>z_X1Z^~H0~@iyE;y!;$* z&aaBX=Xl%No4qLQI7#G=T5v~PdX9V7cn>p!=dR8c51!)nvwicN9Jt;e*9YI?S?nd_9nmwPEu7;oZVmw zng2befvEiMvneI#ol7JaFMa>vA;p&M|5@_S{Yw6b|sG zbPq|FK2iCwR7MdascyXtYl~gDs=X8kXIut@U|1yld#i-1rzo&VXX*raRKH>SQue-37bfmD`8oL zJurbSC+s$1?+|v4u!Dq^6ZRcp-x7A4uu~>^t|?NpxPNy48sKat*%-ps6E>BwJi@XG zdzr9Rgv}?ch_DR8z9uY*useiJB&-p7x2w^F^&)I2VJ{FCPS}3JLJ7M|SbH-YXmCxS z&4`&q7=5BPX%Atwr6OS#VME-2-NQ^WX$fJKguP1`eYQ5~Gr}$qc9F0%g#AI-F~aKB z0!FjYqz;4?6E*@^_SHf{rxUY)upNZ0BkXs=mJwD5P4((R!h#8#Ls$}F^hMjG&4eWo z_8np4342Ib6k!o)6ITZkwt}$UguP8zXTrYACKSI)&XO9U6E@9sg_AkPmgk=%N(K%ejQ5XbASS(@wgpDCAh%mgK#*(@d z_5@*(gwe)X(rCi6@oa%5O(C=eVgDiwJuOShBaGIYNt+16+<+y$N7#MjO45G9ZV`5p zFehQ(6LyiXYlNL8><_|D5Jo-e)l$Mb61JPLpXLkNZ_mPL$M+&+ZRh5nnNb+KIBJO_@4_+$@{E}6QRZ>*h7pJry*8jvc1fM#zv zu3$>ZFc28c*>X}#0?`Q2kBH460sy6?Tocky1jK=mOabJHaH2rS>mw~mAxSnSI!rWN zfhq8+e11P}Hc0jy?*6!&5pe)_0B$My0myXR@)`YOeqKo<~Sfb zE>5iHf!S$DA`8cjR>ZE8;7Qz6#!~VukYTvx^)_58yBzZKF>X|6W)X25H(8dFGeD~R zV53eJ%nDNL38EcfBO(@o2uJ`TMO#4)1tG5+ASenC0XcnQnQYSsobl*DC60=V@6yCn zBB+b4N-0%M@^cH2-4b7Jz&no%V2rk(rR4x32I3|yDftix#v>L=5=z`u-12G;4ylCz z@^NqiLChy&E*xqs@}d-w+IxV~X|DL_)(I&|+sOO#?9MimkTJNaYh`TsHBQ>l7WuDW=${F=b)M$UB@J7NR15z>zL;wis=Oax>Yu`|XBy;k*1%f9&Req_9UV1lLD3!YSffm=_grBsEwG*t4nAk@PJw*88`+aK>DG)b%Kfol-FQH zkV36bp;Du#fM^Icsk%@={v;^{fzgS*PUe0E5dbJ99^jB4X`quPXuiPH;RHgmhKSD; z(Tq8XqR3P3D6PK|(bf_N-{uX)ihN$9UAjrZ1l01+_7n0o!jMqtjB5s1dl)KY$lRqh0 z4+JAH>q`ucfeLBwrMxN>AAIh0|MB%!X6)CLgI21Fx3>1P9o5g@vf^+pCk|sK+GpUFM#N1OSXdu2k|ONu7jWiNk1;g4I1;m zt3!?24;0o5Y$xe;1wnccVe|*_G@$fUq&;0D$x-d+1o^qB{Yc3j5Y)R!KeV!-c5sE% zdg!u{l4uYVh3vn`+*DAMB6q6uJ3)~CLvsEH1Ti_a=RZME7eKnh zK#;W%A`(G_05&B9>$D#!*+K-h7wPFZD6&AaM)o5J%91|h=@0EmN`f$qklHv>3kN{~ zJx|1R5aj0-KywWoste=Dz*Z0xQ>j*@32ES*3&L*(k<62tSlW>7-_doCXNwNrU_cZ@*9fCW(H-08ypI?F%fMv(VK_}IFyg0h=|cdIuS2uVg(VDWB6zJ zMC^crQc_n52r|8fBqud7o03`wttXm9jVMB0K@riNi20hxAYzXub`Wt}6IX}`MzNEh z0J5D7f@1ni9Wi1b?41kzmQ$U=-Qso62?HmL}BbGGCag6~*3mHzsD~aR+g@Pt?o+P25iKs;cO^Nz} za3O-G!7V{>BDR2__}r(&f1rs!L_rD9rHAayqzfKgaX|{ z6y+<;?d0_qT*}|wxcSbK6`%3&8fI2zX36nW{2A^ZnURr}Ar-MJ@Lsy*BcA$_w<($T zCHF7_l2cL=r^KZMOplwBJbmW$fa!^unQ>DR12U86CXyeqw2b#D`K*jTXIg{PGP6YJ zS>D|9>GUZXaS4fRcH*SWwD@U>BIGRU_?ojk7ZU+oBSiaecxy5C8=g-IW7B75CC&jX zsrZJkGqQ6K+h~l}i@=I%gQ|ygO+ex&(^eQRk`-Z0IkJ$mSac0{u}@KfRvkWvv&k3? z)&j<&ij@Jb#~9lJE%+!PeUmNFmi4cA~p;; zwHnVS0R7f*HY0kkJ46qW=HyJsxnX{s)jGY4PJ`IzSEu1Y$!F~&1 z_TA}N0t4|(Lx68`b{B9CU|~AeVOu#nG!rSnma1DW$`soH-!1{Y8xdLo14!YGS5XwN z;33L7q#SUYK!gC(^HF4gn_k0`2GDmsRx^Nkfb}Uy0F!dDKUTH@3Sg|>2*F}hrq^Kr zFmDqK0Oq^_Ip96O`b&_-n-LJ8=bPwH0i9bBv89}qq3I<67QKU_ScV90gC5}4LgXAa z19G-w{{V33`zQjyZAB=86)0=ZU8qDWI6DGZ251$da;)TRF5m?~_7N7lc`yLj9`FHR zG~gn%@%eytOOWM&7XU8<7VLpxly&UKh#24lz!X5weW)vdMf*{?QPgjLf}+fR6*2!5 z9@cR-u@sdIu>2re17O}^R6^8+BcGuR^O2IH$a=u2W2jt!IVTtk*od+`iJSn8J%s=O zJ-Icy2mr7g zuo7_MPpC9IIScq7qzLeBz!bo)mr+E3>j6sv+0Up;fCYe_??e9zA`bWoU;<#?FUToC z_p1!G8VS3K_CEp0glp)4hyl0*F#I~o9Iy!RK43rvV!Vs9e8Ay=zQ1Ce0z3;?448KV zDF*cX4Rz!L_yg<>7+i^fi3VIo@FrRT;Kf@=(1(Dxvymbo><$zFEB`>uied0i6a`?x zL(~btbdIKlS|4C=77bWzqG@7!QiRPYzt6yTMIw$vuO@o85_Du9oRtD@t%FTBB6!cx=dwblm3~GDlG( zW~Db~R)HUL^!8_t3;wL8G84d;(L|MM5$*!cT*g~yBo3?#U6^^^jhS2Oz^@nM<#k~X zVV!Eg%w-72-3N`x2ZPa|n+%~`#ewWlAm!o!($40r4k%yK@# z96ci#+Z4(8wn%1`4rJE0LCi6HFxKni2Q!v2f|>3y%w=y3*58wuIdC%LQInZrBs1P7 znbn8|+&GoF1y5rxcT=#lJDnLAN{msdj8~+xnqx7H1f(;^$QkHLaED{ovo(V`YG*RH zoJ`C=v(QD%WRCDzNcAk(na!-i+02oYJ%`nFf1X)o&$Ak(bD=OF>%95Q%y|JZ&t_&+ z4l_L$G9JBHt`i^j>Q;Nn#;_r#mp>T%8a08%qYSgyqp<3ad%z8 zj6)c=maW8GCyyEBc_`{t%qUoex!NlDU5yUWeJ$fH)*^*#nHl~na~ZRaSvdmxz4^?{ zdySbduV-%f*0IT6XFTh5W=3P28u|u9O-D9vW;}Qc>dc#nW?aVD zF%;tl#ttL=0E*%OVhdPyfElr$FrJFBBpk!Y{!(US9b|_4Awb-fxML49qYU@pBg{B< z1Rd>X&^^kGQrzL6GamanasqcOhLzak=nz+&K+QbKTvnW7R?!#CD)@>y!cQ~P?Q7-| z^>1btont)UJ4Eg~q~JW`3EwkE>_uk!{m5L7{)kBZ$Q zVcMt8%Yp>|cU3Yfo?)L%xx^VZDF5ES*3pb;>ah}(Wo0VbQ z$muTjU*@e_cS}W6^K`G_nul?&E5k^Nds{nvmj@TU3P6`@C*k%pM_(>Ne&%8Pf>>~c zckws{$^H&Xv#yx&GjHdxU?gAcYGibA^aeUvcwK>hPcei*NAecNYYQ(YeA5%u%k7o# z`qH;YG+3pYn@Zp*@u9XAt~NL^)#V?H?hRr-s8u2vDK0GcWeUW499@h5@yBIG&`Gw!z+Q?K(-;~e16 zyt9W@1Ji09#ZKa>E4-aYZ?K9q%T;AEZMx=)Ar-KbBNh-COQ4Ix&y}%Yag#W%BJNjY z@-lEL{ZuA5mcCt%fOXDKtpAmV)^pS4+|JI97nh30t&KqMu2}ay2-20n7ETk5Zt#w7 zgSDr|T%7m~`4nUsb^VLsp@oj-VcSFYQdx^0iktu8&3$e|Wt&zRY^&^BD*o~}+In|& zdz8#@Tll7E^c(MJ>}fBC{)X7D(4N=X^3mFJ1w7kT2_3k+TnCZoAV>RJ=otjBMB#hu za;#D@rHaQ^s3d7wgv@ov1+cQjF8IQ`@>co z5eN&l5GyhjA9IOl{2OoUVtHW9>mbhGM2bqa(qvod!^Kj`L61`^RXZt``l=|}tH3M3 zvK!tDw%1OJRp9Mwqg&Hwv|gT{EMte+q;-9hEV3kxCeYb2xNSF*OzGE{5ep zdwt>bBeS@s*m~0zi&{VPK$pu9p7R!af9Ih!OTCqnYQZkibx_9MBIq^}SEj>Bu>GIR zm6glq2$T$M{99Z2b*>mz8x_IwL=U2cyQ+lZ+HKyko^P-U43kB9x&8=?H+Wm0MeyVr zqJ&s5Dj_n2EczUQFhL6oY~e5^^sv0Jd7*{Bi@+{M7oP~Q=5$uZ-m~?6kb#|zAV0_| zwCu7iYhEq?n!6lEIFccK0TJ+=?Z>M0%xpP^%uIl`{0BV8phiY=p>4q-111FK|sg*Q;~d|2a2Hk+`HZd&C5}#XRd#! z%=V~&2R|M34zZa$6v6|K5(n?Yc6Sl-H*ClL%q_=8WOo43PqcaK>Hj6a+PKSR^YA@H zjV{-wdu4vrEU2vndbC>$*`n&KPCWM2IEWf6pV&=?x5Rb=+IbIAg$Zf$Y?0T1Oj z#AyRslx<&nDBF6}puzR1W~oubhX&Vmn)Qr~7@`)oM>c5>%GgpZbkpMmSgSo=4KhM8 zI#M_edN`XT`g5R^zu^j{S1Nra>Tv;RCBB5%F!=5iynW^bJ_6RD346z93& zFwH}ITKl2cmtswT+5^g3!*{QXr zid{{RIesqatTbzxWcf@0tA&oslXgx#Su9(fVPbyy#A5=4lXZ5csnlMx4DW_^{vWcf9sW=yNsf@-7vL>G7dO_s@^U>ahSoNM z{Aq0Wt)sMm_+P#IPk_p9t#amnQ&F9}$42Nyc`8#28y zjP(+8U5wCrIbONE&oT`1>2;M58yCt@j251P&{zHP}Y)9vvT`GPe?jiSc$21_oTQO>@ zi3vR$y`w!Hw>`z|QfXKVVXoGnS5-B3iFv_B5It`F(ns0C7LmMM=ZT^2M#p-4d=-DO zZSbTt801aUh=xiQYWsmq&Ir~*cvlPi*d80}+&o)Nh^;skT8$6HFb|_cy`znk$sf@F z(dAkX0?Z@)qcM+2@mInE^mI}f|AAtNn|Cn9T?>^{0gBVuHvF6N?|l}+ZGlSoq%EvP zt-E8rL(LSQ-b|8qyXYnpjoE}7ewBx=1xm(TTdQuyXDx)oweV5FE1@^Nzq?us|7EA8 zml#^d=vcF?jk0)4tmDT9h)o5bb@hMo*813g#lg2?{}(4VxSi*_zP`=PQdbJ5@O z#(r6_;>f4l2+#FJTji;`Mstq{sAP3kDsHM(%?E3sW?{EjUap^`+oY*4Z9;z1Md`m` z3%lq%xDR1~2&`}P^6!le#MRxD9`;6+k(hrJ#C)i%6`P^$u^;HIP^JBfSm1@^-3O~@ zm||fESQ)r($6Z$c-oBVc+*0{PQy02iuYV{P%O3L~v}=i+Vzd@z4U9JRw#`u9fX>A-@^W0per}}menk02^t5_al^PiY`*4AWGaXQFo=S?%EJ8hIk zxKyj-V=!iGkxdUGDLAGnxr%8zBPhw(xbJ!q(Pc#Il zv|y^8qn)Oz<=t8cBXr4E4XSmN(1qqTyXT9-CPv?SPHmxT^7VbP_^XN0q2bgQRAE&U zsA?`}WgcrWYq_gcg2m=$lw@pq_?!jb`7h;lrX4HT+}G6TfC_fCDXPZUY$cy7j$>Oz z6q-g|kF}Vvtk(Pkicj`D&VuimqxAD0Ww}p%%r~+$ADg`La_yB&&A+7x2sB)cyE!5# z5aWB%0v#K>?fsTSi@UZSG-at=sD#g`8J~qogC`Dc)Agfm_1R=Q;dgk82GH1JYuFZh ziJ)di$A)8HQa&qepKnz2+1!IRKwMu|D#ap@vg}?9B$4($a$iyW0pik4G}^VA{91$r zK&@wU!@F*9u8x-->PZSU$YVdemn~MZlVbB7TK|DHL7Z-G^lP|jsghvJR$i{}SC5nb zd`vOME>kL16QF%nD%hd&-w%}>tx{}T`Kn3yI%Q~GL!=tDD(3(FO2mK~pY$+E}r zSq5RF6-rn&N1djHwC9neg;hSEO%~f58qMhS)gs%YXc$C=)5@q_?~dlZWQT-0M*BV9 zDVRw_tW+UYwXk-gQEQ`_&sNCRYuO3gV`DTdZ0h-3hOkAR@`y(g@^Xbx&XikV*04_*hPr zB&m)n3&MiOg@={UzZk+BTDaS``W1cc3YU;GgWFJ9tK)_}l*Sk%FyqJ)$Ad6BCjgzJ zh2=6%h}9oe{`(s(8bG61*S@DQl+fjBs)ltLvUA$Ew`^EGEiiT1xmqQqYDWH|>~-3D zBtV$IMhO>-&8?_wLr3ku75pojzrfDEukF@Ba|Hj(P-*k3@_I+b0=rsMbwWwSqXlLf z7qv=}TE!=THFllywMX^AQ#+s!-U_~3E5$!&XB#?y+Mf5g3}L=d!c5ugdH7)xa#pj- zY3S+VKLM<){Kq0Rs47DCmZ--@=mou|^meO>*;%l*X;!hFT!c4TmAiMb~#XYcnT`lw92H9_f$+Re%t5%2hitk5niz`=PS+4P~XoRtc-JLRIrVR9X}$m1SxK z!V`YHhtsf&(aU8%(BREtd>5mq&wk+T-&C5+&R;uu_aVHaH@Tm%+oCP(-2}<&qI|w$ zN8`m5l`-=n4Db4waHSURhcH(Qg&pPwExZq5x!#AaGJ9PMdpAX^)Em)H**^bBQ48Ps z5cbp?(FwM&>GVgrs|$HQ^d@#!annne+h7H27T#5nmusErDlJ_DP_ug|{a@^a`Y54C z7KC#)E8!~DB^85}uJzxv^?y{6^tcV-k}XQ#SL%Co4Pal z_{{r95f?)x_id%pNSwy{*yA=>XLTynPKS5y#`t;wL~@sD=Ns zh0kc=MhGh(_c=%l&qCOJn=)JFGb~H)XL-1{z!@(sJSZ;p#3PX5V6k_V{-d#38(Re7 zNG+_I4w%ZA&wdEEYGI-s$KNy6eBeHWC$#WcTliz9+Joxd5(%)w6svmCWH8*Q;tezaU%{ZOY6h3By;ndOrG;u{;L)NLDz#?4EWG*}?K~!cm7`gzBt6!GHAb_J ziy8gwvFt4PPR*~{uDYJ_Sgm*XwMO&bp(3@*PE(Cct;TP1KW}Jk)f!cq-!4;?=^_ZN z_muY}+k0az+z(+_EljtCwUp4~HiUC*pQ1-Uq^^A%%#Lh*N=iGQ1hAZ%HQP4veTE8r zBZO^ss=%{t;mHiO&3P8WbS>O(3-@Kv@+Qc;Egpku+56RGa$*+^Vbc4`YE_UQ>L8av zSfqtjLB6Sk9!DU&tA!|?UoqbUr%ZG7e6MQ|23^gXV~5>bn@@qTQVVlzVLhFqtq^uE zQW1M-3(X8Q^Scb;T`lZj_YCIa#clbtXoo4zE@k99+ejT1g2x01^FB~Qf7NMi1S|DJ z#llN-@^U>qL-l|cAdD(jLVAirm+Q$H;?1_0J^Qr>wOa`bY~jNhs!yH(VQh&K;&nB7 zxi+qfF2*XCjZnF^N6dY~=;?m}c;$YjKEYP6Q(fKLuLIT-kxJ#1p)C#&ZUfM3O@OTI zfRd%FxzAd#Tt88)ol2XzuFO!=6v*ai*(O`IAwvvv$A(}>Omqh-f1jEDttD+jqO|l$xXmPh# zFbHNgid_UU#3cf&h1Xz!Iif#-`C`UkY++T@5QT%W?aEwLP+roA3!M)AsfKVH0+AhL z2PLu`nE%ueQ%Q7L$0k+pc?g!%1 zFeGcQyJ$2Vn`x88kl}K>Yyp7rt%tZa+z4`^L*Hj4-m#|rbP^j?S9l8tB%gSQp(C&h zbyhzm3y{`5EMkjVwjQn~LDLAkG4h-m|(bI0Y#%c|FydL!BxYFLie zshVCsGfyR6E~tDGpi-b8WW5BOF4xR?YUQ{Q#4-IWPCt%13szATix!jqlpFb)H5PHF z%k_`BIuxvCnu^>fjR3r-^X`+#{2Ygpw4~HFT^D6ot0uS#E6SLkP4A6U!^~=;AibhX zG`&?VVTI!I%?nqCqoNbhPBq}S&Gv*r8t#Gp5n z3DT?01nKQ^g7j88L3-JnAf3e^h*KsK(jgO~>5z$n%0Io`PBfiXAxI|}2-1NBg7mI7 zeO*Srn@x<~T7gb35Pii<8KU>{iKbH~1nHCsL3$sbAid8|uwu2Q|5T9P$0t6$Y)EU;6pqYX>8q(|Y zB&T<}3DV2r1nHO!L3$UQAidK~kly7cn6n1?PYAtLPLNJ25uAW253w@h!2ldYAezqY5Ts)`1nDFc!EAbQ zpOD@Gim_KiIs!#}Is!$IWhgy24e7WG@#)|XK{_rY^);k3UPRN$1cG#!gdm;qAV_CC z0JG)U31ZMu34(NHgW$#63WoluV0|5M6AjyF*jdBg8V=MjO2hFQCTN(d;T#FY&S#9D z8n?$>n8IA2sp7CzLmVm+8^#)aYTee12bo;_KGry3;*gElKF(;F9s8d0O6Qo!1RXab zNC%+^=3wxVv~H|)(t~I^R7cSBqSgyn{5;L4!*(R6^GpQk$O*ww-zj?Pc?s*WbX~=6 zYlW$v;>0+ksTr_^x=u;B=tP#sQ z(8)j&)44c;bPk3fof0Eh8LenKbU{N;ua*VRsZp)6uF{}QUedHLdaTS>JylNxBp5X< z?X7VGPkf1l)YfYCZCb5usAfE&VXB6n0{uHMSqU=3SoNCz-*I>@S zz(;v2*3iz3Q$$nVqmW#Ao~RjXWb<^I1~e7hVvPVtX`Cv?#=;qE_>K$EGnKMF%ATFq z=Sa;q3K$iq3a>~Ha4FiKts=t(Vf$xdT%6IgNBE?Fnkm(0&g*F7u#61GMYjZ5bzsI% z?20pdFf%(IXS5D%p{3n5jCxEvM`|0#CW)X)#^erkMwQ}DXI2T)8P@7)vE%3&ud8ylM_KZe*9 zZ}`-V)qQ8MI1SRDj>*b61}NyMVF6i@As}pD(LKSK6GX?UNSBVv5~QQD1RpPh@_2DR z!5HHetIKSThNDFPL}YG(oE)wxui+_jP!&ST@W6!3Y+0ww?bZ-1c|C64SA3UfJk!=w zDD}Hq{ep&%t0#$ZlZ|J*=!hnTLPsK@VAa}z*R%DchbiR|sl>}w(%I4xLu1+xqc}&p5 zUKT;SEjiLB>)KMc90&i&cS^ak@>983pJX)gh`prfa)OVn=8LOI#-MC_tzge}VL)DV z5|gaigJ-2q3Tl+()5%Pd=V^HCF*%*sB)O-aOVi0sqKh;HO4pk2Yj~}THEQC+-Y1fc zfo^nelhlq}6OE=K@^o%fdL#HK^4&%9REoS_;Ls^f(z36|MtWwKL-;fmc{<%m`gFRJ zV42;JY`Ny+XpjnBLpuFgEgXux>e1$iA=8XOLA`bNL!S+=ruSb>plpiRJI(0mkP9P9 zRsZl56|+L^^Aiof)zI#NT=bA@r_}B=qQsCCqp2g0R$64RbCEVUS9@6Tn8(N4fip?$ zO)6px6; zDsv_fqw! z?4d)dlV9tN? z7!}Ga4Q=sD{|3J#WQOro?NzbX?i}NN7xcD8FB^e8zvRrz#(+imMzVJ;bBpB+$_p32 z?ywq)b@vS~;qGpFi9c$Y)A^o~M0ayyjT)6T3-SV?^J%f=S8}DEd9EYRDf#pXbEG3E zljX6DJzjOgV`9dS9G#Yu8JR_#((0V&iE~U08Em#jkTV9G{=8hQ9Bj7quC&!MyCkM2 zM9w0`yI$hNV6&-}Q@3uo*nHUvvcSYCjv;0%pFHqnK$+bpB~D3BRX*~?j3Fjoc!D0@ zOB!M}#HQdR}m)nTZ**5+kRR)*f+Sh}o!TX_a_DNaUztqh(r-RcFcwl~r*f zLR5g~gx65BUUYetAZ~P(e`ggleRyQluy_iuvO3QW=x%kURLiM{6z~7p@>MBbJJf7u z=GCh!F4Zy{h%bklwXj3?V5sS94CpM%AgmeDS;c3Yh#O{hsWT-qDt>gA82nS9Ma1kY zVuzW*;;Uh%J1-?hC$aLX<)8qLDY8_PWn%bn^GTG?#^Gi^tDK^;>YCL}%)e$er~!4S z=Ja%cxLZ%8jX*Kxh~*>9#$9sj>te|YO-YN7OG!k2%B;(KTwv#5k@$Xu*~r?{0Ko)b zx9U@bN`==*vnf9&LI{+Jr$!?BQ6tT^V$VpkN&j-_%CgVukvJzlF+D3eE!EBdr;?4% z3JHse$x6ydn;kPLE+Hl^1<{casic7XE36RV`K0M1@+vGhk^H3DSPXm8Y$DcISU!}- zTyJRYs<4_8kxxWfh1Hjc0wQYvY7OuMu?+-bGCHeAR$|8VWktSQ2G+=BQm! zWlpcrx?zoI2%k>xdhi(&mx;=l6_b&bDr<+>`jii`Y0w_6;bf?UW%SedHNK8qL%SB^NCWzqqNm4Y zPRl@KNTp1i8fE%spCd_JJe3)7%O#nWmP~|`h)Kz*GS-zu#HXaGu&qNXHfr6(q4q{dB`f#ne|d2$SFCCYqf(@-wSsj8Tr|0T&xo{}0T(^@GyMw<=0+^w#Hq-UbAlP4#u zj-w$3i;^M3(-NPLi3gUIC}N_~ajc9s-K;!lh)%aGpKgdpesy*EIiISC6#TacO=z0< zGTQW6_q6H8i$txb&Bob#NG~HXe%AENDU_w9L}#L^Y5JI=v*?RLX{y-EB#XWp$}WuSr+>C|M3%J)i5W~I%fOsSJ`ml(4%lCvnQnb`8Q+1&lTg+^lP ztmKTeRQ8!T{j}L)(8+~{ficr$IrZQaVbNS;BwNR$**>4qSuAI2DEs&f59u-qwLP?J z3=`k*@guuUO2fC2y2fQDr?J<6;Dg4nGSPdC`Hb;;Qk@(hclcx zLfHzlD|_87ge~yyf~w5+k9+k8vpYX8x;cYaAlg8?D5Xd^gj=Z=jggHsZ^8A8-?Vy@ls1?~BXh%@+JeQS(`Iq~O31c^=0ntnas#{RvG#hdP= zw9VbLirYhejGS@^U4q$lkIv~Saq)>sX(M6-X3zw$jJ#oEVI~ebu&ZQ!gOYJj~O*7CMzQ`ameV*(d=-&&{^m+ z(=vvzKjT9>v)AW{zVBI`9E%I_?I^LT$Z9U~V$3k><_uQYY30$$F!yX%+Q`)!V(v%)vafhd2(Obv_Aa#>mkz>{t`D zy~Xb-o3#>6@1TVtSqT9~fKM7fyL!F)Y#achBnwA}1UU zCZ(tt&BVGy)5q8!F5XWx1HJe5=QQy;*;R%2X#m2zjMoIe!g!y)+HesyCYudC#T?ie zfbaK(u-ulN*;Wxe*?bzakJB@)5n|;{qs+0QfOiQNJAN`6iqch93jb1cOfn;ki{Tj84+EN}qJb{XGejpTz28$h2%|Oq>xoBB2A?%}|;F!+r@blv4OtZeYIn`|H z_4^ShJ!VZ-1 z?r{kTF-hniBQaS%x`z*7r}n^i;W&{u-E8Kz;wXsA&!Xvzg3pZZwJwK*uuZ#p=a7U% z!KYXq%}MNz2u?M7nd^^o5qH$^_7*331bdy@)0GK`Lg8dMx6;J=R5RC6nn@Mtxeiu$ z5tC+)$-a|`PJCw;G)m{eIXX|*yPaJr8~5&okusZiQ1Xs;H7zIU-X~`xJ_BQ2c!8XM z;Q>de{M=m@)v|7#+2w8_>_1^$Sx(=7B=SMuZkbte8KgC4UB3ZrV?R0P%st92mY0Lo zoe`Fa&+K6?8p8H;)A{!17bxHm4AK}PF_S=c&0-h31rs9)Lv&(>>LC{4w@xA z7`97v$}l@-f6z-003R>{d@1V_8w5d!bK4awg_fsp!sC?tTQ{d+C!UhKyd^96O3J^gYDL z=h=>4c8Kw!%?z`)?|Jy353pJ6_9_|Kb>upQ7?f%D%ih{s<)t0sjoulFG!3k34|yn{ zJNXpdgv6BOS&12TfQX*6H}WwfE%a)|oAs#L20~nQ-bh&xKo7Ie3OjL9i!vl0GJrMx?;jv}!RItYsuZ&8YJ-XZr`A*@?n*u^2@bg>aC zJZ~6nMZfk;qeUI|T@*907D-DVGIBJ#EiTP98#vykAxbPr#<1hL#Cl4^&NDwU zDxMV2aWt|YG3tA792Xpy`Fv`;T4GuL?=lK3znC&V?;|K#m~zKq-i;n)U!wSzyV=r}{XJE7D&pZQW)~6g zzEumq7k!i}BdH zxLbUYYfdzmBt_w~xR&p_C#;?#XR+z-vXdGZb|Z4l(W3SnhP!zrxk{x+1S=-->W?X+ z<$Ear8Sc-?l+d9vq15E_4v>gS^op$5c`Iq1CrR zA>y0!DT&c7AoH-mJTZ-uf`!9U)1&@i zW_ctfV^(r}qNLf`c{DA`weZs@UyFccW~g;74V+$1BgQzFy6&bC(BdL;{=y-$U4Rc_ zA)5I1GTh_jI;C57QaoH{HZU%#w%X=0VpH^$^l_Tp^0VY_{f69}e@o7JilwOBZcQ_O zo*~-QGBfI5pJ7=$E|PTTkC5WGn2%-1g%WmnH?1&Rcx*h#WoB+UNNp|8)AaV;ni-1q zQgW)?1Dlzej2TiS`|4dT4%RkXcJ3S#$<|TMZo5Qg^L`@t$p28#l=Vk4DeF%lYZp05 za?fedGN+-jCQGc!Gh18Ru$B-r!p-{G>_FD&tnRcA7$1izSOnXEp;8(-nMFoUXCYaV0)wOH9Wv)W>1%S_aw8>DsNH-q6%%;;`; zcVgeptR9a@#AF5DH>h0w$7z~y`%3hM<9CpZwi-&_K)Y%is;WH zTzH)|+lb&bW`ObKJW_2dCZt+T>-LHV@dUkcptZ&4 zHJSETNT)N}I3^8Omh+GyV$~&Mphzt=()oUox)D1hFRtOj9zR{g$&uDq=K2Euzl@^q zicTXf569}=lm;2>&i9Rd=I(VmSl0scqgroJuw_eR3ShMzH@9ziWGq-bx5fOX)^<`l zvQ)+&O3g*=o92Bpw}6*m><;FwcaePSa!Td;mE@M?k(;;HP7R(x{Jxos@}M@d^3Vujaf;UY7`R%kdLN$Tw=|r%rgEdH#di`-x z@SfQqWW&zKEkv-t?38ccDO0{{C%omHAa8jm#iu*WA?C67k(pCCI?endnb_Wy?>}yc zi6hmcvaG0jR8|*JDo;wAr({%84i!CaA%cBMCTI{kQzWB;1sJ@YB5y@skoyT-S)X!t zRnMYXqlQJtu-nwn{-aVwDnXG5+-Z9IU!wji?<-g^LxQp3#bhcoW>#0!uIbo;j^1gu za@;HCDVZW}kx^e1>@y;=?|lR>%jnm%s3v~!s3vZrOrt9J=Lei3eE$#>k9;j-2Xf_y zGXAfA2=0Zm6!RnB*s|?Pwu@w?-^#T8TLp09!$f8!!gH7D+qtBKXC}?eN=TcXigkjVwjrA; zKSLk|i^ywdxuK*Vh(S~=#_uvmcG$azhdj2UP`U@ZOvSGtR91xJ3l^(bLGHRdO9ad` zn~Igqt*2ae?nM#n<@1W>)~I&Hd*Q19zcPk(_G-9RK|X>trpaeo*pb4zF)ahl|HfYQ zkqK6VCts(eLyO}5uz}84x)svRdyNtk!OrjFVc2^~ z$5T7_xwDVsBYTE_xBL6Fm21ihJ|b>eh46!BBHeGL`|^5AqExSU=wyx;=s0x>f1Wv&x>UGq2|;L_J{UNCsm$9uFl7jL-L$#OOfkqH^D zHBPpPlU+KGQhEC0_^ghD8~F34%^VkP;rMEnWBqJDX&>822joL`Rj2jOcHLJ_@oAWz zqs?@DeH(v1wu|Fo2RTkV%<T^49Zj;{5b0oF6LYIOPwH7yQX_!8MN4 zZ*UwK5=HTxp&Vy@&hdhgQB*G<`AfFy-dwTO;-^1??DD`EHYw2Yl&|=6a6HEszUFud zy;P2_ft)Bm{o9vHe&_;ubhbqc*8>thq=#ras}nia(@g#P)7RQuix$#oA@HskbuHU^ zhF7g=@sgGg6KU;V7GVde$vIYIRj|!^stY|UKr5Ye*Pm7r`Q|ez& z$sHeyk0a|IG0TFk=a>I z@9m%py#v6Hz4Gj+U#V&$bZ`&_FjSFe8FW;ND#vlFmDOyhKj4!!B# zYW|C~psKe_jo)VV=+F252lVUPiyDwZ{p{(R)P?UF4pQ^BS=^C{ya2yw8`Ykr>)OqA zd1xu12dzBu+BMC(+br1?33OFT9A@hRZGBN&bDPXk^J}zIL%JtTN?SF42Njq(g*Rw{ zjyLEyOUIL@a)psQkK2^ztX*was~+I8>10F8<=Qev4d3pZT5aF!AHn<36qFX195O4n zTip`-B=)00*mbE3yB;UIXIdd#cHKe!4!3Q(N+=6Zj}gB^&y; zawqu-@Z0S@WSq$NQ!;j1uk}e9I3P~V$fL{Y`5M zS>4qQZf*CTYCWa&RAacVtJVkuWU!A#IzB|P@^n$f>|;2Wx}L!! zjLKfhMyGYWY8ijtM6serGx#WvZ$(vQ?6SHhGSQc{{%R!`4r|NsN^ag8YVR(Kp5zO%k@94QI<<>>eiPqcphquuTk@pFf!!887S<5Yg~h1}`D8RHpGtL29MGvp zuf}TDZma)bdXA@eW3_9)lay&!w|DQRyO8hNHD0~6k4DkZTB_VD_X3)kQX}?|pZq;m zNy50jG(7GL(`r^zdZwsrXMVOSv0GodVWl?haT;gY)gQ^;V?EKE?nd2`wPO!e5LidO z;Z4_Zm|~hA&aL%Ux5wtwl_Wh9@m!o*dW7s!*0WuZV&!R8@~j(O!^nm#%cmB6MceO* z(f7;~)IoA!(VhB=pC6!9UNekSWA@UQe!7LuO{PE@~^y!8={ z5W1+{wx8!UeM6RU0=vl6Monbz<2Iy%CGk{?tUe}IlcRYdo# zJk9z$OSjo~H`;i>YTSgE6#pl&(?98vD_!R*-f8J2#rEl9i;waH4)=M+9dtT{?CKTP zu~A?%@7eHXr|t&(A2mKdWXaK{#{W*4$(fv)=A>+}efIK1C+G^ML zj6LiWZLsTB+`!vcBn7ub={qA)aq1%VEH8|eQIm8R-pt7ho18SxNzKw_8q#onL}xtY zr=P)6Mq!q2%T|sd&Lpjkgx3y)*x4 zgab-hVf!KP zgVvwUPn+!r?aRb-TiA8|LrD|d8(dL_d}iu6L@^I@X~$)l8*?4Q+_a(e^#;S-Pb6Ed z4)N{MW@^`Q40C4-d6+91<*uG4n-OQIdNVkjIbJf#{c?iRpX{IH49c`C*^>)otm~D1 zo;wCDSXm$~SZrGG!!0eyE+FsoPU{vF@#jf}XvU$F5zPqP+JfX0B`rAZ^v$$u&;zme zZ=t7_M_zEA+hW(MS#ZK~or_;zqgvkW6@;CvEc+?@``=`Wu;b{K&wX3% zx_17}l)X;-t#%{NtkZf-DD}-y5BFxmR(f9GqNI7g8|qxyYBzi!{freke5o1y<=;#s zyU$=EnR<~@Wg;1NRwk0W)xt}(vEjA6BTRvG%G5K@iJJuup@2vI;e@m8+Rx88cZd09 zOz~}#h#JKQAI}hr&*>TBtE)2Sbc$0)&)sHDC;6Bmw5e(9_-wjuYD+DmsqJ9V9jYFu z9|oXmW*6yd&Y_xGacU10a?M**&A1`Xz8t%DgOTTNo7BECO?J*}Uki(+$>eL(`8)Y? zhB&X~+7I77ev4ZluyX_;(y z+i`K>vK6DBn5Sj9F8`z(FMPlqxkAS~e;9g2@5V2$$!@H!SHxyqp+o7%E95g@`=kpi zx@_BjMb^(e!;75{w%ZR_KR83S(@$KAogcT`^=Mg8(+%g+cDuVhijFa!l1r-}c@NOi zb>kg&Bl~1Y@xXbv;RU5{r07QmFHiNm}J#)XJMXww||!_`8Vw*#9c-c?}h6TllSidIus(O zU6pzx!Y`dB=h;PIJ6vSkh;UIH>B8SFkxJ~p&Bqn?5jH-qM);rtHzK{T6H1*K@I>64 z;k0Y)C~XHCvp(Rtd4q?u8x7~9J93jK`OF#XrOf zRCV_4w#T%o=-W}Q;R8#pX!`T{?j37A^1RPit-w3h8fz_$+Fd$7>bjljIc-lY6|&bw zjkng7PPUS*R6E();W_3ho9ZdFW?B_f%TB7dz{-va-c{Dg*kkv##ySt>+h0Dk%9>-9 zUFE5k9(8ZEdmpS-t!7N=&Sk6BEY-Dr%|<=Hu;K@ewk}vnS2ZIZpM;;ueG5(jPY0)K_A50P z2_YEJZ+^9dBJgT(G(E@64cY`YS_FkA{}stU5B7nt8hfx!PPm6-nW=tN9trU?s)6WOBgS1zr!WeK6{0uk@e!47cHL2x6mmWQDF-e9JaG%dTi6!;PeMcKmie1lqcnYq9ua4T@@wo<`h@FQsO zZ17R+k9_bK;L>z1v%m6hN%`l%FQEMUn(5f@j)VXV#)4;nmw-2cd)*}t&zXE2Fg43b zh5Wu;?)Xo^HA)Ll2X`nV+^{^^^I^>|*5v{VIKc|&7j!dk)l90TugW=A4CeP;bN+)B zq(XjgHgjumhmpdAz=K)~XM_3u+iZV{*w0%Vzg857{Jw1FZs6#bg~x%-S75Z&9w*HbW}~t8!#%=A zYpq^wVWYV=uAt4a4+Ql1YU&vHQ*88 z9L<3eHM+_qsKPyJROwoSS>{B~y*-d%^iM{BjeH#|GP8rg{c_M0gZcg0d=NcWSMrUl zT_Z%M~pnm-46>Jg~0^yY^dIB1{=k}7LRCqKcolg z;$IR<6bQe3R2&*5!vBJeBH_SBl5dm=uYiq0Va>-S-^he?02?8wVVeCk@IYE=9t@1M zVK&%E9G(Unsl)OyQh|{?{A*+35S>=sLrGwxaXAreq!BkW`>6|4ilsm?42()iqbA}| z>z9zjj$osuI1a3pPAGph*eIZ!1gG5){|%dpKcl_ao0#VRfHESC9i9{eEyhR=mo^hN znvB)xixk@%ZN`si4q%SoC>0#0Z!643tFa7yTVXbujbDR}b|XD5%=3SsM8t8|-=u&M zbLY(yO|v=BDZNzc6?Y$TNifQ{7Be8Uyxtk@4WqL4jb@{0qbDUls7by7HmZ`tz$NOEU?XPcqbniaU?XxC??-~sVjBWB8f}ZfMqI4`Y(&>;(UnuB zN;EWg6_J{5U?ZeTFTB?k7SZX)2W2ss`Igc^^`SIy95eL*M6>*=014A4N`dEENr5org2ppb0V5Z55^Q9I zV(IFZdmy&6R1jb$d!u+11REtJ^}5(cYZWir|FK9=ko6kEOb(24+d6RiIB6i=6w&!b z4+y^m4uF%vMp|b-*a(Bxd{fG62_C9nwMBwa44nfu%AwwPDPR;tJA;jq=vuH*6ukyE zT0afjNO_|H)E3Ojqk8`T3<)Gbs`pv-x1@m4OKSr*%A^@!qfq)tTd_Avr4zwMv2;J! zD3_LfTkJ`}RObJ|NH9{S^T9^AZ7VG~BE|nO_QQYrcDUjYkI3HXDZcbky_!xQh8!5jKY@|~wwUhiuT1fe}V54jNM|=49 z{~!)}bdZG5e}vTs!i6)1J0u7j?bZ1mg#&XX|HaP2Mw4|iePiMV8g14yU4@N+^4brD z{YJF)-R_cL#9KG@5H=#N?Rp9uG1q-y-#xO0uk@09Bl6m(x3Cd=P3ebZ$NTYe<@9i|CC(NB2vR^b)>g+B-i`v(de5!u@RBfMdwB)xv-J19Sb%pwmIPEebRtx!^GYwx3wVF^S{w0 z?GA&YDpKGpaG<7eA=t=D{$;p0G;)(kU?W5M6S!0bIY!Ej5PKsb*LDQvf1@q;4GfIt z+#WE$@Q6>-XGV$xqk=gKY}7G#f{kison*0(sVe2)2CqPmBq#GeumZ{m{H}q45&Au0 z9Ml#E~fun`Kr;nxWyQH({V2BWzG`Zf!G9sKy4 z(uD)SFM+=Y7r=fq_#*fM_*pE&)g2@LTcW(b4HBB7zyR=j;8gHu;8oz6;4rxT%hE&T zzmN*=Oi9ww&rHhRW=m@aUP(BYfLV9h+ioFrkTMRaG zkyXEv{7J{e|3I)PGSdDJAps)H>ai3la4}lC{0FenWUfV9!pDr!X6^(w8qI0o1~sI@ zJa9*Fx$#n7%kEPBDi#SwfA?QtBcz)SHiEjpftwwc3X;AShekj(6>Q{z4}gtqaQz8l z&pN+){_lbWqx`%JOp4F?w0nbQIo@Kek4O#f1~$5h0kGBqrTlM={VFNH2uwQB+TRH< z$wkZj|K3EY!01L#02}@26JVnwZ98Hg$Pt7{twvbOP>cDo$2^gDIa}^`kx1u zDM$#!%0B-u*a%R+`K=T%Le#UsMv&T`B>6^|xKDtKN5z z5Cf6u&%n{0q`(}o5soc2MI4ZHwQf)ku+gbp4>szob*75F5j^cDO#Kff+Lgwji#RNo zCIwVq;kUp>RQ6kN$DWeE-`Hb|J=3IoxVPj#29C!Ukwne@fQo^^R2ZZrNP%3#=#lH- zXyiAh3lr`_BL_SjY;;cd8-|2ytr=o(6r$TR`^iB(_Q^09q+plq19!wXp(Zo2MR3?3 zoP=GJ0S;l8guzCJywrcBybs@$UMBYIuTH37Bn*uBG+&HzemV;L4mJYiHD^hF5M3Sv zPU<5)_%b*iI=~&6OVKJh%YG`_^RsyV_t07|-45i06d0u97FPx{<)T|^YY502=oPq{_=0`#rD)29i@Vy;7l}N9XK8>wrNu0T^2xoYp@n6rwaRmeQ4kWu-0>@{CTFl?orzR>yV&z ztH~grnTAq@q4ZbgN&yv%qr7~&_=MxHfNsunGw&$7O!6vs?@m_%pB;o2FwX8*D_VYpoFb@DVBB z9o!MT6dZG(Zb~hfQ^Fx)2pO_R)VMe@4!YO{yI3ONGfQ*TI|!$ z2`>d3h57q_(fNL5q~?<)L8YL;Nw85oZ@oqw8lmg?U?YHCF^CEaq{6;nBl8{t8v*TR zYuTRW{~-3s6rDgvCA!?ZP8=G&_+DWBrUB}K-6r2B6~?X?d%oLcQT{@(LcVW<aLL8a>c_BOIQU0+YZ2Ivd!*Nw9e(z|)(=KK(bz4}gtgeI_%Vb{%n0 zUnkb{e>@VN+$;t~I1T$UdjhI7hSJ^4Rg?-~WIRf2ThY`MsqixL|AqV;%+%8KvXUQ_ zDI6#xTrN|t|84DoqI=1J>`OSt#jS*S-tGc+Ji=S}uOD_Jq-<8na#UHzPtcz#3c$tgWyZEq+{nuOxO|l}lu$zk~yLhLI zD{YM|-`d4pBiXOMjZ9FPF5c_n6E6O*i%VrkHlUh|8$>Ye|0g06=tW&F{>a7ucJW9T zk9YB67iZnd&T-pY)qnZcBszGbb0W9lSr@l=aSs=N;^MI`o)*b|wJ0({ZE|s*ix0c_ zl#8#pI4U=CgQ`R@?F3&$f>MvV_(c~dxcCznr@DBNi_hH3RKKdfEwY8}T%79S92a{+ zk>#ItaX%N&y@k1cWp9sk(9y-;x_F0+?H!TjaSyd*X#3Qazw{>8;QE!?8R_6zXH+R~ zU4J)M@?aN_aq(0aFLrUZi;ugwPF_Sa{ObM41l7;QU$}U+i_f{(w=1Fo)!fCOMlkK0 zU_=5vm*?W$F0QgWvVwXpe$&OtE?#phzfC)){GLdM)m;3ri(_5f$Hji9M`_x#Kf98T zy0}7qWVH{t_!$?s)Ep=|;@)y`JFz#jdlS{o`KPzn7sa}lCucF$y3=*At%6jWo9_>mV@3f<2{}fm9e_TA*#fx0L#>LxQ zywAl)BH6i8)?3+sJ~B}iyVxTOlO@|+*2U2-Zs6i)T>M5PcUGMu6VxCVk9P4C7iYM5 zi;E9BTgp*qm)@`Ub;)*Ac5y8iH*oReE`G|z&0YLTB)_cUBNNoSE~ZOk)t|zLbY6c+ z;TsAQDL52TDa@fT*ZHWtw`!e5^f80NQVJ_5tfWBSq7;2GQbA`LnMBdWo62^Um-p7I zLpxL*q;QDBVG3aizfw3x;e=CM-up!L%k=Rog+D0Vpum^DmeZnwx9-E0=_7p=RXz$2 zPv0ZM^0p*B&T%!oPgonBcG1+BP0rwG@6M=(bjb8`Uaw5T#mlH?mQ$c_v}z57brg3`7A@>1qv@wc!fes3UoV7(Sz!Wo_<&K+^710!a=I@5QW1OXhBouQrJczL}5FH zUnv};aGXK`|0las9#v6Qpbr%(RH6{=l&RuvYc+A+ui~v&|F4vCmcrjCG^cQmLJBvyj9({KVi^%l8O#s}n8hUFj rd*Wel&WdH_j(Kw{`uY#(r(ZCF7mIWq+^cIs{{aI#>lf4{_EY~0ZB17& delta 89650 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�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 diff --git a/readme.txt b/readme.txt index 919bef6659..8570367bc7 100644 --- a/readme.txt +++ b/readme.txt @@ -72,7 +72,6 @@ Build tested on Outstanding issues - Acknowledgement details -- Add license information to each file - Subprotocol negotiation interface - check draft 14 issues - session.cpp - add_header. Decide what should happen with multiple calls to diff --git a/src/websocket_session.cpp b/src/websocket_session.cpp index e16c183e9a..5ccc1e1a4b 100644 --- a/src/websocket_session.cpp +++ b/src/websocket_session.cpp @@ -83,6 +83,13 @@ void session::remove_host(std::string host) { m_hosts.erase(host); } +void session::set_max_message_size(uint64_t val) { + if (val > frame::PAYLOAD_64BIT_LIMIT) { + throw "illegal maximum message size"; + } + m_max_message_size = val; +} + std::string session::get_header(const std::string& key) const { std::map::const_iterator h = m_headers.find(key); @@ -289,10 +296,15 @@ void session::handle_read_handshake(const boost::system::error_code& e, this->set_http_error(400); } - if (get_header("Sec-WebSocket-Version") != "8" && - get_header("Sec-WebSocket-Version") != "7") { - std::cerr << "Invalid or missing Sec-Websocket-Version header." << std::endl; + if (get_header("Sec-WebSocket-Version") == "" ) { + std::cerr << "Missing Sec-Websocket-Version header." << std::endl; this->set_http_error(400); + } else { + m_version = strtoul(get_header("Sec-WebSocket-Version").c_str(),NULL,10); + + if (m_version != 7 && m_version != 8 && m_version != 13) { + this->set_http_error(400); + } } if (m_http_error_code != 0) { diff --git a/src/websocket_session.hpp b/src/websocket_session.hpp index 79b871b6c7..750e726c34 100644 --- a/src/websocket_session.hpp +++ b/src/websocket_session.hpp @@ -99,6 +99,10 @@ public: void add_host(std::string host); void remove_host(std::string host); + // Sets the maximum allowed message size. Higher values will require larger + // memory buffers. Maximum value is 2^63, default value is ?? + void set_max_message_size(uint64_t); + // By default a failed handshake validation will return an HTTP 400 Bad // Request error. If your application wants to reject the connection for // another reason it can be set here. Example: 404 if the resource request @@ -199,28 +203,37 @@ private: std::string lookup_http_error_string(int code); private: - std::set m_hosts; - std::string m_host; - tcp::socket m_socket; - status_code m_status; - int m_http_error_code; - std::string m_http_error_string; + // Connection specific constants (defaults to values from server, can be + // changed on a per connection basis if needed.) + std::set m_hosts; + uint64_t m_max_message_size; + // Immutable state about the current connection from the handshake + std::string m_request; + std::map m_headers; + unsigned int m_version; + std::string m_subprotocol; + + // Mutable connection state; + status_code m_status; + + // Connection Resources + tcp::socket m_socket; + connection_handler_ptr m_local_interface; + + // Buffers boost::asio::streambuf m_buf; + + // unorganized + int m_http_error_code; + std::string m_http_error_string; std::string m_handshake; - - std::string m_request; - std::map m_headers; - frame m_read_frame; frame m_write_frame; std::vector m_current_message; - bool m_error; bool m_fragmented; frame::opcode m_current_opcode; - - connection_handler_ptr m_local_interface; }; }