From 6589cd28fd1904977535bcd513349ec2b2482aa8 Mon Sep 17 00:00:00 2001 From: JAJames Date: Fri, 29 Jan 2016 21:14:49 -0500 Subject: [PATCH] Added HTTP::QueryString --- Jupiter/HTTP_QueryString.cpp | 80 ++++++++++++++++++++++++++++++++ Jupiter/HTTP_QueryString.h | 46 ++++++++++++++++++ Jupiter/Jupiter.vcxproj | 2 + Jupiter/Jupiter.vcxproj.filters | 6 +++ Release/Jupiter.lib | Bin 299992 -> 303860 bytes 5 files changed, 134 insertions(+) create mode 100644 Jupiter/HTTP_QueryString.cpp create mode 100644 Jupiter/HTTP_QueryString.h diff --git a/Jupiter/HTTP_QueryString.cpp b/Jupiter/HTTP_QueryString.cpp new file mode 100644 index 0000000..6770d91 --- /dev/null +++ b/Jupiter/HTTP_QueryString.cpp @@ -0,0 +1,80 @@ +/** + * Copyright (C) 2016 Jessica James. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Written by Jessica James + */ + +#include "HTTP_QueryString.h" + +Jupiter::HTTP::QueryString::QueryString(const Jupiter::ReadableString ¶meters) : QueryString(parameters.ptr(), parameters.size()) +{ +} + +Jupiter::HTTP::QueryString::QueryString(const char *ptr, size_t str_size) : Jupiter::StringS(str_size) +{ + if (str_size < 3) // not enough room for "%XX", therefore no parameters to parse + { + Jupiter::StringType::length = str_size; + switch (str_size) + { + case 2: + str[1] = ptr[1]; + case 1: + *str = *ptr; + case 0: + // nothing to copy + return; + } + } + + const char *end = ptr + str_size - 2; + char *buf = str; + int val; + + while (ptr != end) + { + if (*ptr == '%') + { + if ((val = Jupiter_getHex(*++ptr)) != -1) + { + *buf = static_cast(val) << 4; + if ((val = Jupiter_getHex(*++ptr)) != -1) + *buf |= val; + + ++buf, ++ptr; + if (ptr > end) + { + if (ptr == end + 1) // copy 1 remaining character + { + *buf = *ptr; + ++buf; + } + Jupiter::StringType::length = buf - Jupiter::StringType::str; + return; + } + } + } + else // Copy character + { + *buf = *ptr; + ++buf, ++ptr; + } + } + + // copy last 2 characters + *buf = *ptr; + *++buf = *++ptr; + Jupiter::StringType::length = buf + 1 - str; +} \ No newline at end of file diff --git a/Jupiter/HTTP_QueryString.h b/Jupiter/HTTP_QueryString.h new file mode 100644 index 0000000..30749a7 --- /dev/null +++ b/Jupiter/HTTP_QueryString.h @@ -0,0 +1,46 @@ +/** + * Copyright (C) 2016 Jessica James. + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Written by Jessica James + */ + +#if !defined _HTTP_QUERYSTRING_H_HEADER +#define _HTTP_QUERYSTRING_H_HEADER + +#include "String.h" + +/** + * @file HTTP_QueryString.h + * @brief Provides parsing for HTTP Query Strings. + */ + +namespace Jupiter +{ + namespace HTTP + { + /** + * @brief Provides parsing for HTTP Query Strings. + */ + class JUPITER_API QueryString : public Jupiter::StringS + { + public: + QueryString() = delete; + QueryString(const Jupiter::ReadableString ¶meters); + QueryString(const char *ptr, size_t str_size); + }; + } +} + +#endif // _HTTP_QUERYSTRING_H_HEADER \ No newline at end of file diff --git a/Jupiter/Jupiter.vcxproj b/Jupiter/Jupiter.vcxproj index 7b097f2..9740265 100644 --- a/Jupiter/Jupiter.vcxproj +++ b/Jupiter/Jupiter.vcxproj @@ -185,6 +185,7 @@ + @@ -217,6 +218,7 @@ + diff --git a/Jupiter/Jupiter.vcxproj.filters b/Jupiter/Jupiter.vcxproj.filters index 96d0ab6..9f8a0d5 100644 --- a/Jupiter/Jupiter.vcxproj.filters +++ b/Jupiter/Jupiter.vcxproj.filters @@ -138,6 +138,9 @@ Source Files\HTTP + + Header Files\HTTP + @@ -269,6 +272,9 @@ Header Files\HTTP + + Header Files\HTTP + diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index dbabfba335508df8e84b4d52de1736fda2543c07..89f8d456178cefbd04c7cc28bca593443c62914e 100644 GIT binary patch delta 39766 zcmeIbcYIaF*Ec$46FLc@h0p?o9w4Fjgd)9!j?~aQ1f;hU5D}3QIFO+e5D^jSKTt%P zh>A)R5m6x^A|fRqBA~+iT{C;1oSne)Jn#M7d*A!V<@5PwCui2otXXZ=l(V_;PVj?I zgAz@ulWLlcCwKx$4yNFDUc%~%q&1|E@80gIFp2T#(L-nlgm2T zxQQpQG>eU`cmiIG2(W6LHK@LyS%54#!9bufz^c*GpxP{E5vmu~ked&n;{(j9IYdJ? zNCcC>PESw#050q@_<9qQfHmlrLH7V=5n|&s{8}b3B2HPzAvgF^^eY+YAk>QXNJR_pfVM10oqg#-c5a&++`6d1U)e%-}wrK!*=B#Pu0W<3?#F2*1Z0 z+}gv0MkJoVjl%}Nf*HbZJq>QwU_#?8o>1GAN;aP02~7Q*;9=Hu7#v~RQiB;)m_^8& z#l~_xfo#VNvUg&Z1|*gp7&hNvcqp?pw%`ejcw{3MPhjL+4H;jF5yWFi=dq^_lS?9O zVDw9XBaIA>1~3U&RqxoSh9^*EgF)0yW)UXtFqj0J(7n* z$sEu>{V2IoL+%4-guQST!X8*S;Xf@6_U6Usz#h;Lc5g69F3h9`JS7=e53eAsgN18Y zcv{RFf`Jf*PB9oV0RE33@<10GDR=@K(IBBM{F>0bij4z!0xcmKLW=~0mJ9JW&?>~B zbw4Hvt$sA<(v(RJcuyCgTc|x?^;N zms1UTb!SrJ8lFHONQcmSvq3v}1tBiRpwC{E196^9_yP1QYtR>+5c;<@sC9u!4g6gT zsEtkubq?F8gC`8>S42cWR)oJ3D#dGvUs4!Bw!W!hjSXcQV_=K~&sZ1<;T04R8a=Tw z2v4AKf{mwm0&^D{gk5Kr2D~8*C_YR>E*Qr&&R=DcaJh*M4CFEpj&g!^UBe@-VfY2e z6lYLk76Q;LCZ3(pkgO#F4^TPDpwdH(>>(4kYiY=;F-)V%4kiJST3*9iR*z{cJ&1`0 zQ1=biUQSU$vH9Y#u6bJSqfLsS4(Mi?kGKvu=*Uc2&=Lf ztZ0Px02OSowhHKg)sQM-);})KTTn63&%pxp--ZT(kmH>+z z7;M1j8YS=qk}nyo$DlMY(DlH=4K`{){|jp|Icyr@`FSQgLX;XO@B}(_u>p~H0y@L> z0P$BpgGYOr&MR*M& zCA{9qAU7mJ2!<By<}oHU>fwp(>5p+5GDkJ0k$okTgqS@B z4dE4pY#s!gY(Vy4gVJyr!iZr^jzpvyk_DMe5VJa8WL7SyXUJ1#O$afV2*U#8DrWE@ znA5n0CvdQ^jiY!TWmd?2gM#yzMQDM6dgw<>h@4Q!K$bhnH1Z(25%P{R2!PKLK1eqB zcm$Jx6%uREv^%p1p@%hO$veo70Qr@{zDJl}kgokZPeW!phxs2rWI%6&@EZsYfNWq; z?;3JCp#CHc@egtUji-1%MIJcA;HBA25(*%|5JI{bRH(xwp&TM7q5NTktGk#ae7gzp z|63T$cj$od^FxCxQUqaX82IDp|i}1=4gK?$tH_&8~LH*B}MQ9MGArC{> zgi=EcGGhQ5kXB~2+oFa+F9bG%r&~{E5kgBC48F=NK;8_s0o~mMevUObAA`6KT!7&b zt}QjVir)!8gcv;j01^XE95*<=84?3NgOms~SpgpT>qh(nlNRePry(t8yD~d z61Ex4oW(4{EciVkSBgO(IwJ&~v;q4H0`kS!K-|d(|F`ldFoJw?$KY>>AFy)FHy9Pl zEDdxx3h07H30>V_3nHzwPx)UXB~#tP~% z^nZG+!S~ge1gtDyX~-LBgm9;eh9w6vf{Z|Cgd%4(tiJdhkk9UDSn>(zfXqt`vVc)S zz%_$RxtK*@2*=EWA3Rw@UPmK@_uvhLt>B!H_`qQCY9*2KB?BfBdk<+lcPXEI_^wMl>Gb z32YD=R#ZQxQMwbeG#=s!bP6}KcmgTVHQ}3n z2Gfo*Nq7~uL6|zjz%xTINtk)UU`hif36szXVN7#_SAv)%ydGiTX$0c|#&s~5h)xL! za|~v;WRmb2{w7S=U@(3OlZ3GO8XocFI@5TDut|7Y#Rd}1rw6bW0CR-M^ETk7k=2;E zGs58ZS*!!jBKOa05CzKy#NFjK7@iP$OcjHyP&FZ2FaiGGsDnY>i%bII$p8&m7b7P$ z%V7g9*=!@T7GSzfMyB*e7HlFR^QpLr$+^=EruSr$@G58t(?ShqtcH|oR3`Sf->aInk_8pnuz6ub{I9G?N>JH;0d$|GiZ&r2yI|nfc$(m0sem!9TA>j#Dp*M8?43X z2&+~aytSN3ja+yFcb8~b42DGL)5V}~DzgAt9{MKa#qWfCqikHq6KDckY2v|;k?3^z zEf~W|gJ8Id1}X&udEyNk-+`R~`Fq;9h9^*3H6#E2c4HkeY!n&shZ_dS5 zJR#J;Q|uz9M4%NuBurSYAuH^{(g`St5ommcC(snSC4_)kLZJ>e&f*D#;%|-9cmkvL zGg-KcjZ1g}MKEAO(>W|V{g4r53AWqL_OIb(yr+lc@@^TPZFk~tS$U2~f6j|9&Z7daiOk+! zwX(W~rjd1GG5SP(w&x9cZeJ+Lo^A+U8d~LlMHX+$>sDT; zd;dZDQ)Kp+iXOc>T~S!xZCi4_pybk)fE-bN%&03hL@^gFJ}9cjbr7Z0g$|}`o@v*G$w4aVZQe%pZYnzOuKWAW>3%0; z)vG%vW5pz6!9NIA?KqWyZuvLn`XH~OUVSIJ~b%)fnSRxwj zxl^)T7bM&CwPd#jSuCKt#o}TucKRd9Vg_0)TOEtdsBN*MZ%bAK@NC&A*||uIH3vc} zT5Mi~#r~-Ult4!um4IW|n{ACwJM55b{t(FqqzHEGvS2f|Nmi$l#jf8MEOLOwVqzux z9O%?uviraX9VDA^U9i$O1dIP&usydx2OP%V^M4hr=WoKpYTOj;EKq5R#hw74PqkRT z=@wf$&0|hL-kM&CEaEKjvG{R!Bz}%4*s}v809t#$+1PlO; zjzIKBCA(AAV%2~RRV;Qh%3?bvg4szHJ39#r-nEl0Hth{`4xP;_Ww9J3p+lh3KFN~z zO16Iw#Qh)1^5XYO_}hw&=JtTzdqVWU27Dgz zGCIWPsd#qpCD}EgQXk1S_lB6;K~-^*?Zw}h@GRR8b^1!yw!dT-YT*e?s4dyyI*r)b0;j(Sb`y+*j)fST1 z&r8vVvK>_ zgK(Yu%3}F(el%m1#agbh*xnUzq2=flpB=^D5Ak`#N|b{xd9B6Ht%hyjvqqo`#%ERV z*&uwj5;W&guUjJ2y2xU;fLy=;F9ru!eFQXsyUyJJuiF6qUrI)2>(ME&VWGup0n>&_ zb{^Iq(-9*8x^x2fz=6)t*dI z`8wLn4Mu`3);kaS!!vIIi*54YN27n>fK87|MVXO zlH!uhehEfY0HO|og;s#YqNBs*5zVe5nth83-$4aGBN|?T3tg0~=wo=q3CVIDhqYgl ztoe_q^ALvhC#3j5vJ!Zn$KOfK5GR_$c7Uf~@OW2?Z5(H@B{1;PIaz{nT&vRKbR@=rO^gnR1v4?Q{@@F6*=u-$(U2by^}yJ1 zFt!W7HyK~%d2&KLd!H$=x1vS4z^ieM8BX*2@& zcqXoeYpzBR8I5_N9lQi?Sh^^pVi~BWKPHlan7M#yL%}q#33MX{KmvmhuJ=RVMG+IO z3f2VJh#12;4**e*j5rJ%$+zlf}4Vum{A2UDpK54@~-5u!LP0 z9V&&-2cvIFwz@Jz`w}GgDfEjuU{5N1`<`GY0NP5t0BlRZL^Tt(G0S2pFuDnWu%RGG z6Nt%YdDyvp7E8zvqj@6P^1s1x4v2UZDgqO_SgaoOwV^*eq93MH1dc7$5E0u-)@=}c zy$x&xv)b6xl2!X2YRQ7eZ@`A`NH$2KUIZd&5&Yg4?LWiRjn9^5Mw_6!765n51P<>r z_$Wv4xDGwNhsL)`_8<|XTMQB5?@3!QI{bZN5mXZf&%gweCizrM^XCa|13tccK5~=iqL?pkgZK?t2I*!170Enq%#w~Jq2|p!Rp5#(7Xcod>vD;2bMn$btg(T zCjmA!8_(A;IZc4!j+Y)bA0oZ}1lEa(qRLaj4gjJAd^Zw01xDOKet=0MFD8r$QDE+_ z0Oz2Mfp=sDgW1plJmq3th#&1V$1_JWs1o>m0fH97dzLqlBW!|aR74n_i!5n6%E5f- zG;p^X+z*%qcLVoHlM$W3{Z?>)65L-x`7LnY38N~35ncuNdFQ~7F`B#>!NCDYM#e&V z_-rjyIOun{;w?nbPe21t+J@(>5|}lM!wc|v1jIg~G(s}s$d9nIaL;atvkcrS2Q0NA z#5YW`(n-)Suo=d3JP~n!8S=JPNK9H=Y!{5G!+nHi7}^EYtCSO+0Aq(koQ2^r?V)4X zQ9uQY&4vw~>|wF;z=NK!9jN&NY-HXVMA4Nn&^Ms}vt<#j0-={6OhQ11+>l0NNMQt$ zi60Q7Q866hcOe2$2s$`+2~ubPV~T;_11tiDiO!C~K-+ePG&&$}025hYtl7{}H`t2> z8(Y{NAsEIP^fi9}3IqKEk?||&f5?~U1b>{xs5X58alH)RjDt4-7y2Olg3DU4`n6@@ zufVuku=<+l9Fg#=ws0pPtPSWOoy~a8{u~_~MaPII`O#j`TFi{AU^j0e&;d(e^;pNV zE@(TouLtvfdCX{e5s&l15P>O8P}xsY&+J1z1ns zTYSSBvvMq!pJH9Ohp*wwL{+{*yd#$J4@6(yj6V|ncpT3yi^+RDyZDG5VBfLxEKYd( zhykKMHsil%zwqn43@^*e@d~^=-^>2P_OTDy2W+GmE<#y1{xUDbA`$5~@WG-okL0Vw zFtMJ0ETsHLWR|^nURhL*5~D>DQ)~rW&Q`KjYz^n;$)deT5S_%UqLr8;nv02|vzRTqh}XnC5i2}myx1pF#7BHT|D1ou1I3ptNNg1O zaq=L=GtR_V_6jS_!dWR+LcKSU=ke?n_4z$OXd10KzH@k6{OTf)4oHILy9d9cVWX7F)ryocQu3q_(>Bo6W~`Eb6NFX1)BEpb=; zAcpZoenEUEz7^+0RrZajC@P7{;&+}|R1gtjk7z2+h}zBTCa=P7@hoBp zU&s%Mk$e?j%}4NK;%j!2ofa>N!F&Pl&)?vK_=yrUFZV3vjl>1#2 zcu}5@MK1XT`<$I% zOT=O^lg(mzn1>~>;-ZB3SzJZ3hK&rdO?)9f7Y$hqYr_ukFL*R-z{132Hi=C{G>c#r znWrqPz{;@7>=$uOG-7pFZB|g^7a^j62o=-#bpEL*EZ!HNiQ^)t*d&gzPuQpIIGf5p z<|lYtK7qf&$MbP~7H`5|;u}Pud`sLEzlq<)4e_hEE^4sqVypOCd?ikba8Xj65MPQb z{3@TwXY+F6M^W9w&WfF4hd3;DiC6hjQByn=m&GOVllX)GC06hv>}TGN%@wuSO@4z{ zV@YBTU(6PqJhOL*`^T zSZ;=Vfj?t^vOm}ZhSmZHqQBKu|+%;)%Zd2uc*$m$WZw<-_HMUi`ZrU zhap=fPvk}IIK7cOk@_wE;#mEP`0t{1b0+@xBDN(l+mkVL|34eKH*r_&_SnI@7I%g3|JS0o=lS9L`O*6w#P6{p zV+4;E|HBwAZnGQg68o9mW4G8<_A5(Og{JZXGP@kJuiZ@kMPL@+F_hoI#*2L@XKhXJa&TU?Np5+q)osaD+Q(3Ia z;_FtQ>+CyJQ>@CQg39qg?|Z|u+UIh9M|7@JITh4S=<_@Q{qG!* z(b3nw?hVEEApavKZ%jhyzJLy5C-*;I+=uhVAv4U;QL@J>pemjff#P7HeGSfvr`&v= zI)vv}UCxQ1Oa}{X?ed{o|E(yd=A9Ea{EFv)D}t!n+HXZ^yIRV48KP3oi{PwOEtcV* zn)##1qk@Wxa^AST+10vKkt68`k>9j)`e#{QlePsV_mNgnDc^|_h9uDDz2Vc3D6@J1p}MliPk0-RuF@lI3%d{A-|bTs>jlGd07#i4z0-q)I}d zS_dvUL!-g!S}jlu7Z#Y>SwhrN2Rq2prdb*lRY|=pMwm}xZ;22U|B4k%AJ0z_Tha)1 zOEmo4c1!iu+S?*9P4hGwP1FWN!8TDt6?4a5S4quaPV=t{-9hqIk!TMvr;$Y5&!Ut0 zL`&k-&mvED8h14`nGdQxJcpN4lO|ZU&>eLSx#o~%qKW^(w}^OUG(!~rt)f|mhQib?&jm!l^sr=+;BJnq3(C#Z;sxRI~lR$zbSf~F3G+0_{hDAlaL#h7L8Qu zO~<+5<^|N{^U}zz6{t$!B1X&?^^z`&AU~gRZ12+Vj_pDBy8CIj9JLdT7C&jUlx`-P zlx~|3@uG`~m(sepF{#@qM{9b<9TBWa#(<=ZCMl~>2es*ZZnOl^MXurRm%vsF(@k<%3|Kr$Me$736(O#RU`H>Y8=XBEN9Do(blLj zrV#wR&q6DY4wYrlP-V6Az9^)&|04qZWaAh>@*j=?9Dd1|M5PC!r)f(MZd)efv-=;2 zN#BqMtkzv8G2o*1JKLHuNcfiI#pJU;fMX|SmTi0J%NXlpS2vz+ruT=BMRU7l+l59waU@7)ON{^X#IgL8%0{Lu z{}!!%JewJ%JlKs<>;FbrTz5lMFs1RmO$&+th$iL}Eo|~}t;|LOT8==?7SM7`IbPf^RKiA0d1;ilH02>=pr!l>RuG<|yb054f_WJ`Ks9`ws84iz}nJlP)f6?%pTzXwC}?ZSa-bYQl#%^-5x>D{Dw@W8Mleua&LNu_)%b>^OKCWR zs5HZD<`bl*BS8*U?Q_Y3%G6Dewx>Ju!BsD$jYn(2|Wq#GeEjW(q(P?07h6~z-- zV^g16*Se$D$B^!hR1+2abVoj+Ym!flRekfw7N#b}Qe8l?^c8g_kL+&>Xr-bHnxbGF z735J1^GbVebO~_0%ALN*`~?lb(`&|Mvz`Qwp}gZ;yClJTT(K;9<(l9vHK089R0dBOn;4$ zxHQKku6gQAQD>IVXjpH;I*%+Vn!c}$s++Hl6mwLUQEUq!HqQ!(EuHQ7I@IitB`;Ll z!yEyUziauBzb~@ob7r^*Pg=>*o^L*KxqYJAS=_cTy)MgNLYfVo@n~eRiYg%&*SICTg(zYs)KM{g5QbB0Ij-(n8ZOl|jn$>nPBHBO=_Y6g zXc@%NcNMSeYr|hFvd}cKa-rRQ!A2%wkm32Gexg;JR<#K-!;#@t3Iym%yX_K*A^8W zDSO$xm$av_MriguSpAtrHC2u%$LeY3(7n>ku@%LU#mc8QWts)G;Aj?nU;Q2>+nBap z+-y^$t2o^FHhgq7+VI(~?p2WkjWzi1YV5#3Q_EskBc1zb!$0-5%u|eJmT0uF6C!)j zS26<37dKRKB*bYso1*+(*Qfk_*MCu;zPOQI)UMfZw+gK0%!aOvZ;x73%~>3gi)ang zMEDq3{rz`p49LG5wvS0$`FBn+)4Bg zmLICRH689;%G$4v)O3_Z1Jx!#Q|(94M~@A>lwaha7Iis=-vcQ3Y(PqnZk?qF)`U9v z)0*&OBV|RwU-ems{4}ny$ff4icBm;%X{(?(bx>WYExQ_H%ILv|)aW|4bZCNbx#wXj ztDq9<%YL?<`}^n-DlMyWws-b&$hmZ{EU;Ifcm9`&gyFa07`j;nPIWP3A$_~o|w^g+eXNWVK?5*^j_ zXoo`(gs8|Lq}jdf3#!lIuseS5qAJHYG-2G%RC=KJ3$2WXYD^NZsw)4*^LSHk2KW(^ zX0_%>vnLF(_e$$9)uW-kGSL%razi^Vjs@A5>Z6A8O+S^<_K_BCEtGzx7B_}k-hIh` zIY--rnxZZ!z9xzY{r$A`K2KAorlTqIB+(7l{b(j!*}*9)tfVS8$3FVu`Y!v|X5`}O zG!d8c27Vf#TDW$feEz7_MN`WesO!u-ygUuS*#(4C>vD4Hv!*=C&pTYnz&E7s&Af?P zbJ^a>1n;IgO?~G~aYY~F=>vn0k#9{$WgV{5<_Ke>T1;f4=hc}Ou=GRiq}c~_EL0Pa zg?^_Ays5n#lcekpT_NlOQP}%CEI~RNGdPmo)c4l zQdA^#JoJAjEd`l zfjsLb?IUEpI(xsno&1+TpASK)Mzt6D(~sG;#q^h|+r!=lb8+@a)$NImttS*}e}iMAEb)tZzk}joKqUbFLEm$OdMhsa5P8tRzYV)qlSq&NkE4r$aPfFOsN& zI^rBHjmp&wu0}Hz)e+0H9~VLY(Hk87`=&D87EQ02h_r1-5uuj$^~G}ktTTYq>aZDJ zW82SHjwCn_4Th57%qWlc`wqAY?I(l%GG};b8D(6r?4UnUa z>|Mv`IjP&A&Y1txG3TnDOBEU9RHyt`4~_O%12ME5J9ruOY%oN=!*}rET15v@A7g5A z+!LAX49yk1a-)@^B@n#Oifuo%%G15jDlZu23wH1tRNp^GcWrX!QNIuIZF17ZmOI1k z46ieq$crYP?cgobpBs^)v<^s7`H0c>MR-hlVbBSz4p^kA{OYq|a*UCsi-Q7c^zavR z5CRTz?*az}Z>?60bebS#29s5`M0p|bAKh+L zo6!SQ`<=X2`cb%4T39U@<*1ZKp@mJG#YND`h~2z_iYa9I3tJl%$y5u1WLi{xJ=$r4 zJw;s_Lpo_1s*a#4OH?y^ie~Ap({*rGj;QVw=TYkS36A=S zSKS$Dt~?RUufgl9*Csjy8K;H{>heTqYS7}OyAxVmbax^`^_nDy8{^jNq&m}WjrT@r zMfGfwoM=jEovpP%34JAK;mAI)mgeEEIZ_>(;_M6P zZo{YA-S$Uml!~4z?YAc!o@!ScfPyMi&{fT-;anX^y=Ry9LTObh&8On~i0Jf@BjeDj z`H1WJwddN*td2n}{*X6S^B=l&Nqa_G5_C*ogInH{V{7}FqZV>ekL|}VgQg}L%C(=j zP2Uh@3R;_#DbyluM#u0HDocVRGnZ-BR(%s3({ycH)lrLP%3A8R+R{GFk3V8d9s1l!_e$W*l=9O;g>E9kO68II`fE zAUH2CSkSwmV0J&bV2@6d&~ax|hopYN9O{?7j*Ggq-ptSxQ>W%S+H;+SG&kiX>7tx} zJRx56Xo;5=5FI~=%_pA@DSy?)#79e0TtdYR6jnM$G!dC!D-8EY!IJ8_a4zH#AG(-M z>00Yz9JCA+nf#h?Iei=Sv*;k4{=%D%23-c+Rz=Ns4A>P7+Nm$+JJEnrJZ(0VDaNW+ z3uJxUcKt6Vv{#1~$d^oktEmpE?n0+27jqrKT<=3*?#4ogIakF_s^KE1BIU)J2g-{( zt0RjX9$cIGUDT08Y=!qrbT;!{rCq7Cv*A!1mumsljY=zf7j(|7whVPC_ViFIM8$2g zqv2#Q@Uo^=cLs}w={Id$J$5(z^cf-o)Ws$CAjuGNQocZj&;!O4ts>XSV&3?tnN)0b zSI-%@b$XKF9O0GJFJ8xZGcMzMspzH7UaV`!yEhe-P@^03EPf5R_A&dYHp`rSOxo?z z=0>|+aWJ>j5s~V2Sr>~mUhQ5q2lXY_SP!BZMIDoM&7b{Dc|~tzgr&+TX9TXbWq&nO z`9c6~6aJ{|DAE%>3;-7?VeS1w0Ok?HB<(d0)WsFOIZBjCACbuJ^f@TphCz{m$9VY{ zwV+w07KR(bN~+x|M_#@;Lw7@S#t1cijjV#UilhY`rE;!y z(h}F1-)N{!MFsFi>hxO2Q)%^}^-g=k@isxYie2Zp9_5j`V@gNIsO{^Vq}sKcGL{Mo zc;og}REv_G@wu|cS2RV^dS~6GWlY!1bk1E3jgP}pGJ4?1_;HiH_Zk&a5gTx7mo}rh z7#$B%?~GmL)VB4QuF}@0uAPGkYQY9a4!(Iz4~6EjiE8ItSdE_=DKyLeOD>umH62Zk zlZbAli8j={PR%K-Plm9f2aZyQkMR(-us+Terfl>{72c#E$ zQsE1O*)%Gx><#SrKL}>i4Q){De;vzaXl|6Vedl)phg@7UP0Ml*cAcI0p#x`=&353N zg3<&kt(0#2Qp=cDS=ydxl{J&%#J}@fsfq78HlfqS89VH@x`SwzI`gi4#h!^iu;oT4 z-mj`6@5v_W&=zOoTX*34lErKyv5$jYT6<0P-71TClXq8Co401nXk3lVAzHf;n%J}q zYJh>)6@TAve=*%Y_gs~G8;%WjzwfZ;((4;k>gd%!w9P{tNIAhfrO#OP;9Tp(%PdP=QTEIRW*ITL*?32T8j?rb;O?1#9WrWr{rRI9VX$$N%+dc zN6+Oq8O86t)0E~MSDNjA_hG$SalqM(*9xTLGR+|^aW)W#>)PY)L7iiE7p`68x74AJ zo&9asrM!)*;X!ACMxLFE(lzqzx6xwsV3nE)8!Ar^I)T}B9=%ERI^;C!b1iLCu@#z1%mLHLxJ6>Vo#r#d_dyw!lfUF=WSUXeG14}b^_YLsqZLAt zc{?fOU_n%m|IMXTq$-A2TEFi=AN#-IwN?D5j$u$Hs#~ESM5!G*i@2VP88e`L<8Bfza)kgAjY_dF`)Q|d*JZwAD(e|%+3A|rKUHs>ai;Z*OdVH&XC0ZzM&9j550T@%o~yU#)3ZNI6pdgB|1AySAIXkeoS^()Yfe!Hd0bH(}6l5gptX<|V0HS~Hg53YH^=j^1wCj+1I zPlBlEOHh9O@0^kN3}0)H=CV^tednZ2v=-38l`gWKh8&^?dy|uks~s~%LGP(|Go_Cc zH2v$|D5jl3ZzF!dnMPX7bDbre)q^To?V)v2>SK zz6A%Pf8<@#$4!?lpI86>;MlTjW%Hei`bm~jk#$X$;+IjoCX@?A*2*L)#5Ec9lg1(a9l)r@=v(JkuKP}g!BUmX?qBC_FoCz;M@X(r>n9bJ;v7oT z=8a~KT=5b*Kiv}>U}^T^I$5|(<@s^4kk+j$w@Xo%uQ<6KMSpER6#cKLkyjm!_@*B1 zOLb6sm4>rmo~WeOUB%pxb{yu~I{O)&$Hnk)6<5!-nc<3q*VOuJ*t^cz5m(pJ0=@3i zb&2yAqO+IyF2!9}6@GCPr|r(QANnhtZsv+se!JAJz1JJMxU!mk-AM>s%>AaWTz7&r zSTf?#R~VG%S360dTt^FrHky8iV7xn5mhy8J%@Z9xXd*g#xJA;#JB*t8X@$Dg1Qd#H z6TzbV*a=8e8^uUXKncDPX)1CD=*%>RHRzNTeP0y=>=yfQ)Ijcpaxx*$Zpw39_z2Wv~9 z&5vh>C`vVW;4=mPB#~j?JnA}<#Ep-gLlW2I!11o}!}t8>2G`m|pn6y!)+T9lhgJc( zs6OwftsW^<%tL9vJHX`!7G9{SqJrQDY3#e!QJHLl(rR5GmX9C( zw2c#8LK$y1p*BB}_M02RaQ#wiqX$Z|gU9w;WBt-Kogui^gE?r(SC--1CUKdp!hSa~ ze8cg1Ku(*qf;T87RPFc;*UjcWb*1tdo6lv}sj6;eb~%JE!PCay7~BS`kNHFWnZ4~ zm1<4XPI5u=t6MnCPZu0B1X6s{(X#CAH=h`FGcjnU5DX^1VRaRs$vFt{b)~IG+~NWEPnN2UdQYKu8!gGn6n?P-k*k_LW`DjO&|$5vpsTWq*UwmH$*!rvfc= zr&_rV6e>|cL%;1!-w1V=G{VX%dv43#^>a=7k>K^nJs#>!TvIr`(~=1EphyH!hOm%I z%q4QFyG0y1>Aqa=VyI#$!_>#Y4pGKsQ&kY9+(QbUwpZyBq}B@wvKr|nr4FV|T>ZA= zgezmL4#S9ztxBhtwj=2M_Z@ldxn>d?!ONgQQ_=5^zsmw^q7U!KO3C<5EpL8N{_UF-|<(_uE}tP<0@KY!5IYCucTEK?YZJysNCMFqWujiod{Cll3d(K@%GO`va8`47{zMrni*PW=;Wl+;14u;jC6pT{<) z_7dL0*68F>3=QF}EiYdmeM`V|JikcD#cXS4t_Xh7pV_B6d`5N;{#_=g3+r z4WRMu#XC? zXgP?~YU3D>^BIuI8Gq`>OVpoax%NgWFFnu56W1cmLo8p7U-bmo)klsVxnc ztOt;+E4PBIYeYJ-c5Pw|REr{=nyziqK`M8Y)xy}DFDCis*uiRXlrzWr!jPU2XqRRP zgxR(gHt^$d9mV!#|DC;|m@szyTP6K<7`lk0cMItv(lBryJyz|A=K0cZ<7k_sEnm$J ztq6vzoz<+O&zsj>tL70zh8tDSnblo4B}NjR{oMkL-55Z5^fOBLqf+Wwfqr{WE{TsO zi7$R%gsHEpI}+CsAzKYQ77ju~@sQA>r@RLpCfXA61ywD^I1r67METXTr#SXYqtrG; zOK$B_wB#O3osQWin)|IXUAFX!s$9#mPXk;>VdJQvj*7h_{oY0Ax-K!ED2glm-%|F= zqg?JbL6>?*t;(%()^P%=YrdRFysg=eZ0B+P4FH$5 z&-Br0hWt|u&6R8WauyNWDS_)E)~l*eL(A_~OnMx&wL4oaZs>Tv%T``fxf?l4VUn{p zKgyTqkO)ui!dHBIHF0c!My4&9j+S1BA}UK!lM+wADM5EhQ^H*JabwHAT&RN$xudR4 zZ%lf_)GnY>T4N_6brF-W9;_7&bTF}Do*u3k{^#x%sYM;!Gh`c@4KUHyQaVZHWY%jF< zQ%gsSV9;oha;Ifzy-^{lnkR1K|V+22>yVa#R6U*A-PH&YU^Z2v|QIs(y`rY)vKKo z5y@8d#6z~a22Do4qHYJ{{WxobdG53{#R?g%c2n)LyT-wjkF*T8W*o;;G-k zzg#mwTe!(;QG0u3ObzRAh0#v_dforPajIb_Y}BSz&S)zel?}51$;M`N zxASw8jd#_UE>6gC&0Aa4y)KTHC|}kghw|n3Nc@#P618ZD*Z&~MCkS8o*otf;xt#yi z2~FeLhgH@j5X-tUozriF77t~EPo(Q6qc*myV%@RTmuIMB->&R)2bJ0ZBV*m2 zR9fEqtSw$U*xj)fkfr(FF7PorJA5zQROS-=ZZ)%)RaPC&j$MoQ;`|-mw=mG=K?{RD zn%0}p1anef*PNvN(skqPKSbM7J#A(AB?+3$mC5cUGJEIIw=U2f#-PJ}R2u2s(b!VG zdRxxq=08tE94s`U+6Ymx^15hS=ir-)K_ zdmwvDd;PJGQ%y;n9x#;ENia@w=D)T0u_-U3V*5dG7>s{&u6ggEAEo_@G}rO!A$6+1 zRrq;%t1J8+CbA;W&0A?VN{gog7(YUE{?n+-#*gaG(kHJZUp;b??)|v|;IO)|I>+SM3KmVG1o6T~n_8nL0JdSz@?$ zPCkcF69aJxB;9t1?%(w;zAq?9j2wWy&UB=d6zCDre$5HAcRCRH>FYxr*YjDA&t1M$ zSB5wnNUo&qD>Y`QZ=YzWJ!efrvtLs|RqyRKF@CQz@EM!WElyIyk?Pqn%f13>Zq*LA zg7sU9rmDWV*FQv#b{Myl%3)yImHPm{>BuKSJ_58)gwpS)n}sooL${}Hzu>X zJ;@QFeiwFVyuIdm6@=e{uwh;?&WlrdwLRWNc*h}}1H$u$aH`*!bZf`P*n29oLG+!v zJjPmMuTSZ{+snt=ea%Jb1=9pxv3?m>0rH7hKkju~^pBgc}(sG>L z`*hT}sLo8V%6e13Xq`3^lA2a)0tkL^2%4wYjzdMF|4~z^m@jZu%BLMyJ3kS{3cq2_ znP{^y3-vFl^%JdCex)RE%>xPiGSz)0-B>cteJQHhWM}U4`H*gecGIt@Lz5jhbbU+b zs;WK3s&D#sZB+jZY4U=iDotg6;lY)NUn9?4|0TX(gGHhL0!HuhemvD)+ZP7|zo_r0 zT6Il7y0r2%yR;}uud7zmteU=3W7VZm@TpHVwSGFj z{L^f@V~nm5{zj$t2s75bsq)Qm@kLx~lOnEvNB8&o;r|R+H^XWB@Iu=@ilO|LdW`>Z z!0@gA&w(}`dsLw)y{(3Ntg60JV^)Pwa7TUPv8wwD3aIUG+SQ7n^sb6daD;Jsw%uD8 z3R2bk2~KZ8bM1n{D7dGJ%yinzDBSz%jhRk+KD*H=SXtElLu6s9&DVJAYyMe|h+U08 zP@`wPxbZ*L53`)ciCHZ=V)h|Kw<8pv=JY1SpWzto4XI)j1e(uDI!m7DGKr)BCA z&SSM~wts)x2&g~&SKzNX?degv=CHrPP4+_A&RO=Fqe$2M^^dyynlpd73jU>nB5L|c zG>~_WGZL48o~qyHI1Fp)yI#lejO4riB);H%^L6AI3obbSVFMYdKGY8f_xR5pPQPx| zGbTZ;>k`r}m#WEJ%YIL)tB#Or$6TilIyNuFE3NoKE1x<%*UGBuzu{zPKC95}lFM0A zt$f3`6^$PCL{(VbrP?9$tZ>5%^{7kmcCAGyS$Ilh#nmlGh}5k%C34ox5<^WmB|_DT zg&1nko0k2Cl#IP+k*fEbPVYV~Yv#xWvP$)puUOZ1y?;8J+CJYZq`sJI~;Mkb2b3IBrugXQEj6RL?suOcD%IEa2N$G_j zfi`J~N?PdKck_=QLF$i%4j(=tX_F=uC@KGNDWMYzIAULwh-&Luj!)*QH^c0N^ku@fDATGD-xmh!9hiyb++JfeUKT;h0y w%eO<+)aMrzRKNNP!o2niMDn4JP>8V4;DO^h4aK{K6C87PHCjl0=(URdFKPoTRsaA1 delta 37835 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 GBK|M?)>fkc