From 8b5c106d1c6b846da25853480cb0c77719b0e79d Mon Sep 17 00:00:00 2001 From: "Gerasimos (Makis) Maropoulos" Date: Sat, 4 Aug 2018 05:50:22 +0300 Subject: [PATCH] NEW TUTORIAL: Writing an API for Apache Kafka with Iris: _examples/tutorial/api-for-apache-kafka. Hope you will enjoy it as I did the whole night:) Former-commit-id: c88f5bbbe171e386c855b91be265b972caa3c1a8 --- _examples/README.md | 1 + _examples/README_ZH.md | 1 + .../api-for-apache-kafka/1_create_topic.png | Bin 0 -> 26684 bytes .../api-for-apache-kafka/2_list_topics.png | Bin 0 -> 45669 bytes .../api-for-apache-kafka/3_store_to_topic.png | Bin 0 -> 38028 bytes .../4_retrieve_from_topic_real_time.png | Bin 0 -> 48712 bytes .../tutorial/api-for-apache-kafka/README.md | 19 + .../tutorial/api-for-apache-kafka/src/main.go | 325 ++++++++++++++++++ context/context.go | 39 ++- 9 files changed, 382 insertions(+), 3 deletions(-) create mode 100644 _examples/tutorial/api-for-apache-kafka/1_create_topic.png create mode 100644 _examples/tutorial/api-for-apache-kafka/2_list_topics.png create mode 100644 _examples/tutorial/api-for-apache-kafka/3_store_to_topic.png create mode 100644 _examples/tutorial/api-for-apache-kafka/4_retrieve_from_topic_real_time.png create mode 100644 _examples/tutorial/api-for-apache-kafka/README.md create mode 100644 _examples/tutorial/api-for-apache-kafka/src/main.go diff --git a/_examples/README.md b/_examples/README.md index e7356dfc..c281b5ff 100644 --- a/_examples/README.md +++ b/_examples/README.md @@ -71,6 +71,7 @@ $ go run main.go - [Tutorial: DropzoneJS Uploader](tutorial/dropzonejs) - [Tutorial: Caddy](tutorial/caddy) - [Tutorial:Iris Go Framework + MongoDB](https://medium.com/go-language/iris-go-framework-mongodb-552e349eab9c) +- [Tutorial: API for Apache Kafka](tutorial/api-for-apache-kafka) **NEW** ### Structuring diff --git a/_examples/README_ZH.md b/_examples/README_ZH.md index e4df3ed6..59c8dc74 100644 --- a/_examples/README_ZH.md +++ b/_examples/README_ZH.md @@ -21,6 +21,7 @@ - [教程: DropzoneJS 上传](tutorial/dropzonejs) - [教程: Caddy 服务器使用](tutorial/caddy) - [教程: Iris + MongoDB](https://medium.com/go-language/iris-go-framework-mongodb-552e349eab9c) +- [教程: API for Apache Kafka](tutorial/api-for-apache-kafka) **NEW** ### 目录结构 diff --git a/_examples/tutorial/api-for-apache-kafka/1_create_topic.png b/_examples/tutorial/api-for-apache-kafka/1_create_topic.png new file mode 100644 index 0000000000000000000000000000000000000000..15f172d6bbf08418a50771ec2eda0103b74d0454 GIT binary patch literal 26684 zcmcG$1yGjz_b>VY3I?f2BS;Gfh#*KygQU`_f^l5GaTAx~vpMsnO)-94-2!dcqNs7Ki5VRi%f>L(_75=6V z?L-N_-Fz>pZi67$zpws7iD1GeMG#6vO7yvsWBl5Lp)3BtD6(Z}Z)o~-WN(u6=FJfF z6go*lQ6a@GMj|{>-RIX8LsO|#L)(=7RUb0;;y+~c_k1lxnUelo^2UP)5BSx4x#Bv? zMq&;drZ=?vUQ0eurGkG% zsr*EH#}t!Y(tC_-d9*Dhyl{oTk}5dY)|KlC{rme%@@T&ADX-r6Kp#aW84tdH#4SeX zy8rWO>d0NAe}DLq+4CmHzdsZv_;HQo-+$`C?boP*SMU57a-Gdf{NHypqecr+|M!op zn#kVY-`^(Wy= zk4Y)!Zn=?EZya-|q=u}e;SJxH*=v6P{Ch%GXtI5SgM$t-ukYNxAb6%bMBY&?B62QU zY?wL`VNUPW7)p9|J|{LQ#wS5HWx@*#-yZk9GNJh5MU3;o-Z%TN?8kr4_s0L$1^i#! zk3H|DKZLq#G1v2T>jhX@3z<0a2?z=_%Y$k*ioX4OC!O)=x;;p4eM&7Z4y$=eggG)Y zLeSxUadxa-Z67*hXJ^+I#k#q0RMqIZ-cHW%Y&%l?t}XJ>*mvVsuU_3nzA;xjY)*;= z5Ij;Zp4(gQOOKYzI-Ln%jeMk8X1mzSFARlnQG z`?lz)J4HnB@@)4>7oW|>cx7vAYpLmwN$DtjJ^A;Q$mjHu=8oIePYm%ixDJ8D#KdSA z*yH7vNx{Kgzdqd#2nZ;*n5c5zH%U>D%qcCodR3opQBhHS7EfEwchW1fK0DgZ%VQ=a zj8f^7HJ{vwox~GUEHUiLTu$VDjVJ73$QWVLlPbm@gNc}#o72lgvpH`4oy5-J3dFj@ zOhLQ6Dr`#3BJpNCB=1?G<693G` z;PT=;B_&0~2UC$TVyHm-ZonTjbj*;pc_bt;QAbIM!|lY@Kh?3OUecE*sY_m3n#X=E z`seF^f`Ss^&C=4Xl{Skk+Eun|!$mFO^c39hlQS~r7dqnLqS@Hm@;UE)6{RvZGwV0v z=*yJ7je~>XDI50`i-?Ubh+=xVrxQnIA6F zTkK4DLJ|la=ZRq_e!!nkpFXWybO(}hh3$&;ro&B}<=$waPr}5;o~(0oadWGM`x6l0 zG8ZaQ<>VlG|rot{IP%G_JW>()*`^vhq8&v+MFtojJVhZEeXoP4E#+xEFu? z??tg_uZ)#j!l^9xWqE)2K=4RIl;=j4Ttd~G2A{qxc^uNG?Ok20tgOMA%R@RYfnAGn zImIO$}oUI;hNmH zEO7MK`|Rv&cz8H3FR!_|IXapMF)}e>WMXnTSiFnvNJv}|?67@ATT9mj@YhqcgVDUq1FdfY6S+<4S=J5VK5%>GoCMGLT z;8Y5<9)?QB#>Juhn4ENnGQq;a0!0@Co6IOes2q!zo4aBn_Hc7b(6EyX2M4EALss#N z5+kQBFZ{tz6cuqhJ>YlVTap(%pIcpZnfdLvnCOCyz*ptGl;J==tZ?p<2Cf19=D@7$b{nwsOm znmR9U^{Xs7*(3peM#h|pAiu4xEz_X_*k3MAPJbF3@AKNr6b|w7@^&TgMm5crt|%8R zotWSdExfpWv^9g%vG_tGI4$5XOECWRz)*~Cfqr?0i6DR0bAF>}A(dD@-9}}e%e2e>xuy{` zo3>&&BNMy)h}nwUge>^??qw@6`ib5lARxGVx39OiSg$E4Bm_5%0`-Sw{kc6&qC`H_|wy~{k%C5#dEd-I*cMdEkOY69atU%PEHOE4ipp= z$a}c3hllj1O-I|a@H0uTFJJKc2Fe2nS<7ngL`6nEHSVP;{tfTWNKZ$EVAaC!WxRYS zrU+{qd2MR?0-gS&kI&%1z=Z7Z`rz8kjP*i0afI|ccqNkDIX~H_CST-`4Wa#l@(| z{a}e$NtUSU%1XGY;lI4mv8Ys^z^ZP!Fz)P+hL*{(9;x3gDM9*m;wk+jK7)3mA~hMs z{<)TLsaYWm(tg*1hp#fXj$OTkC_^Q+w6xgS*>iGojAF}-v~CICm){-aqPh7aR>*-d?FdIy_u5I z7h^M9LTJ9`&`q3c?;{_Dr@tHbRb`A?JV*bEAW2dG&SQc-rxcC;7RCg zYrBnb2fdJ&*R8V6c0ytQ`}0fl=*UPY=^6xYPILYaZX)U0(b6`~w2x10jJm*{q&UZj@SVvS^8Vt%>#&CLhx&%&~*b=e!ti|uQef{XK-R9Emw~+5EBSH`Y zOgtN;r0!KI(cdVohOfxazR*;1VjlJ(AN`I4TXLjA&6G>NWM%c2plUlGAvL-u@zmE_ zt7^zr$Zq4cTRd9t9f&U9_3hJ^SwFsxNI&AbXv^g7>=gs>f`^9}6B7fV5ccuy+qa+W z8-`9kM&4UlwRCkA78D$8Uv*n)mF49Q>gq8%g*e#QgC?Z_7y^QVHm2$YksH@O zH2C5$;op*%?<)8`80e=POxImmS!r3jPk`L`^h+w74vUz5&SD`-qxdU|< zC#w#au(1BT-A;q8ztw=_0W{+ZyNAmQjBH3Lii?Z8y7INu8@5Mp!wwfbT`Pe;4QMRg zFOzV2c^Meb%(i1$SsC1?i}S-N44nIBY(yFw8qI6BK2dRVt7Y}gFD!H>^2hbp+pP`) z5(%rDhV@%+-c?n_vr||<(Rj@hAP02O*i7iD{ZB9K$HrY{&CSeY9s!JMU)*g8nrK0% zofyd6r}Duj=doStPESuaA1lk(sw_^E#1&rJ0Q^-}ZUbn00h&2kQ}%#KU%do9J$;`? zSr8AMOx8KT$~`POMf~LlRc$&EI(vgfk+m^Zf2_iA=p}W@>D+Cz7|TbAR(=uoDV!G6 zW~-@Fn>r`#P8Cd@5D*|{qWH))?ycMbvX(@Yzb~)b)ZaA<wTn!8s;9{CsT3WIZLB*ApmhLy6bX_* zAN{Y$YiD<@MV_1(z8P6cTt`R85GM8o(=Q1LZqV_LHgOGiHaVG?0<S-0*8v%5iapKz-JL ziGJ63)MQnEwiA%OV9)hcN=d1owf;;PU5Ja5Q&~kN?DBbCUENVU@5kzY2|j&wK*fm zNcd9j`sEtJ;3@uy>qt<#Z|Y0JW!qN2&%rC@L9^oN3v92tK+G{C-uT%%YkT|qg6?Mk zJMDP10Z1b>^z?@M`X4`jo6`Q^7n3(cX_h>$gPe|@jOpoVpbO5c`Q>!7v2)YYJz4TepFe*-KRw)ays8JG zbuBeDe14)-xHr;YK74lX4G|p^)2bhRqLJqDXW}P-d`t9O?u1Hmy#0NHJ>FrdJEgR= zbhGv_5r|M=V8Ua)#*hahAZfhO)4NMZxVX0F%JrsP)8_5lw-y!!3JkWkwlwAFv4z@V zVq#8CPOh$JutpCzCQdtfHx=;T85%}~gdm7F1`Z1=D?K$8;6I7`k9PL@t~QD(P+2xFmlFpmP$reYxMeHeoLf2e`}@~PqD={x zW~Y171jtFH#=)7lOW9&^fg!;)VB;~JQSk{0`FVLzN0DUM4wI9Kb6)vXvZs5?;Zadh zF)>i$TBxbk*47yOLHw+uIFFkMJ5n@nDp^=ubl`|BVIpABBErYtYh^0@er^OE36O)G zgTv-fA%&PCu&jIc?omqw(Tw~676OZmkB`rhPX}r}V7cCm7w6~aEj56|Wu&D?tL$ zSWMO&59Vt=efkvYksS2N`3O~w^EPQIsbj!~l1i?U1C(X`bN%m6 zZ|h1|;90}+28aF9lVd`UcrYb8XhKa~v-&=DTJ=vbf(R1=qvphK@ zH0y1PDeSX*(0Nvg_U8_Yqua2;kTokc6SpiHZKdvE5YyDU8J}}5>Bn|plS6}pJiNRC ze`Y|<0^J0tx0ty2eF4{sni|*N|KM@R>ejhdrldTeqIwJa1NmV!9z@P7xsVVNBDAv! zx`Mu;p|7tms2;1fRq%d^`%dZMFNibWq#laoZpU{w@OP8PaGFL&MX3TS0g}n!Z*5}} z$7!mfrA2nk!N+%YcDxHWjziYP(UDoJqWcT~m3I7fOkGp6yfqO;h?#&@<9qX7B+bvO z9YB9pR8(Z{@wLsh0J>td4nX?a_1_rXm3JE63;rB`PW2#((S)teDt*4>wg$qWS{zJ2|=YsB@c_Z;LzQi~8A%Hqz~|V2UE1$SmEXSG!St@A!-F@HaIyq!kzM z0RLxh8-?yo^!URb4+s&=j~_pN_^@Sk)Oq;Zn+2T8R0c){1_r3`?CiZ?sBkC*KpL2v zpAV%#w)ghd3JfJ}0}@xg#69`DJXjI^i#;<@B}?BeB;~8UMq0u(4VI{>%h&%A!!a7z7$a7KZnj4Y zRT<74m&D;)`}(9V*DJm#t1e!bDK0NBEG$%Ij6nCEzL3~2Pg7uU=Dh|t(&M&Ak|i1N zw5YcA^>tp>GJ_h)AHJ_XHIi@+J@Gmx=I0dJ>iNjKHxTgWZGv1A8)nn_AI+DPxc~f_ zDeHS!t24FR^B-$skNy)E9@T%h75+EQ{{QET`CoqAk8|1Nt|UR-SFdbz3AY_yDJj`P zo1P4sdH&t~`~>uaJ$w9rJ%rV?&AKJn93WG{i-*;Ib?}jdganlCh;P7`fb{ud5?e>j zcMwA9C&9)2`}c2m1X88=_U%mab8j=~rem;udwY99jXAVX68)699npqyfbA~VoHihS zJ~kqV@+0#fdL+3fV>+VU+XX|Aen$OUxa|a}IbfbUcT9aZ1{q} z17bK(?EArsOH0G`9v-2R{bSE3B3fIe9UKl-?nX$@gV^;&nl`D+0dzeMqi*umhs@0S zM47NB2_AiQp{1iUDb)y?CGx?$aSg$R7YT_o*KUpyW6-RO#AD$bDfN}r9f5E{MzJhR zOx1d*vUjFf=(<6KNN^ppuj>ZM%G7kVfcbn=@72%c#WSB9PPP#$m0LSrH#ECU68v4~ z9+n2!ZB1y#CjK4ktGqbftlylU&lp;DSRXBQIowdybt`pQ6?9^(44$YS@fg}1}xnp(-?yIDGOCDRO)GoXs zgL}NH+Zexhsl_K{r>kX?Ur0;C{q+wBP-eU*B@eLoqwpIA1zd!Ki%Yl0(W*WAv1*|X z^eq`VIf7fCsKq~fUfQcX#sstP?%li8__t6f!Q=V<{mVObdit!3^V2>Ku)lPblxQNP zfy*^CG{AeUt*ymB6DcYvD5$8QBk0~BQ3sJdE3T^(U}AbvIP?mC0B+`$zi=DW0jyiM z;P*jYP*+z6F9=`k_~_^w21dBp6U;P~+R)vc=6!3S3+SS?o%} z!NhFu?0iZR2vSBhAT;nC)FU&Dotr}*-0}PEx-5&nemt6b*l-^OA=Rj1wyjCzbk~eE zU}PK6`w_+@xaW#03-l6{rHzpi-)% zMa^;}!=ykJuVhc3zg0Q za`7@7ACZ3XVs~eUJ7{-n3#68Sz`zXS6L>$6(53Z#*%vmjdA7DZ4-P1H$ql-bp92?% zx_UU};b3ij3kQcw3^uXws4gWgHxEyk->pwG(2AUEbr>VA?%}{FpnhvI!aH}uqN1{f zR^#I0h<#ER7}?ohG81H_r+=?bPV6~g%gfJ)BV;EDM7lv`@p%J;1;lPpUiIF-1ysfJ zEDy*fYp^mtX|UTL0-fp4nDa{yT&-`;zk8l#sM$WU`MfZriElz1kHm(B=ajjVq&eSj7vcERB`3wiRb&WW0IvhCBij2M4rz3P29ax9mWbhLbjq z?QCwYaN0GHl$88;f$fXn@Qe1@s;H>Q$#r_7pdmsj3P-1>^06F#sb5b{oY`GoU%e=i zctMZJu`yDF=8lw%%x4+8R}A<75`dwb6G{W(2oOyL`SLL)xNy(F7+hYyiGVl>u^r}EY*JdaK6EzUSgb&*$}ZgCParnpto@aVowZwHL95U*doU;dPi=QvVc&9CSQz*h z$X@`GVB^eJZ`Q4@tT=m}H#wGIs#Pf%{L*q5}g1<+4nx?H6FFNd%J6;@$vC3@QO& zLLLnT9HT?F_SRN^KR>{459n7=y^?cs{No+Rx4&IAf~RFw?OREzM|z2P9gcT@zbvDP zvff*In{c-E<_AeNEg$llH9_C~B;I|;?#+A5_sp8{ed{An#^0glD=?6eksZ0#`T90( z)?ZGRTk86!ZdjwZySsD9Ug_rn!YPO+&~;Bwg#9rM%^bMHG+qn4$K-($%&e?{M$_vv zEtw4s4FkpdT2h%98UHm7Ib<==(IX=wLPz=Y6}O*eF#q_*8? z0Y4r@b)c*$l;Bc5eHyvv4D$NX4=*&>ftU@TG8FG#yLK&v2@@nn;goN{J18mtf_!4$ z71T>AJ;w4_UfHc)bp@CakX7N7ZfF-Ad@Vgaq4C(yn@IaVz8k4?I}Q6;Eh{U_cR!fp z#&WNLdRb0RE1V=5C4g^eP3ts?WdR_euDbd@_Vf1#3@j-vU0hmEvF{N(u#sO`^=J;FI+hF5fXvOU{U9M*GiwEjQYK(mzP(&U`wXP9#2fNfmw;zLgOi z7$t|QmrPHCcy5ngUx+e)-Mx!SeJ!~D*7xq{v$V&@5|TZJu)dS^7c!&&&mHzrxU4?ux`mb?B&}e~VNdz3|MVY*cUB z8XIQ|r%;MKREx|nD6lwmDbmigr1Vd1rfiOkBzSd)8UI$GICTRX(%n-Ys#92RzaIPW zF4d5H%Yd@=K%F*b!+SD`x-1kSXovkl+Vl6$9AW3bwZn8dQ)R9Uhnp4DX`FUHo8!Ci@v@YhqP5CibOz{*>(R(>xMmQ z%VazI*+Jm@pXj(}n`8c_6@SRoShbEGzFRaqvd6Mnpyc0ET$t18DdwldwYF1s06R@h z>~YpmZ1EzmXmjyN!se|+tzWB8LYUh6@;&?rw{a07Y|D%}xzzcoZ~ku^B57009lRt* zbAIvCck?6^WM><I!-aQzAaqe+V|5RWavzlhy7V|x}VzL*ME{$lFHlG zut5=<*%VAsuh)cKs_`hQ4G_N!1=uvtxVhOd_1rPyr0q@*n!p%l1!D^cEf@jo>*@mZaBZp}@yw(aX@-$045 zIat^aeqxZ2F`I-S1=Eq+bLAfv1=I89JigMeGJ6P-z1u`Z&W3$s^mH3Uo_NZW_66@^ z$R(4FZ;&NvNVRDC4!!v(j{cinC&>#Da@wChp1fdT)8TojQ$&b37Sw%7!_ah2AjBVl zyDW%Nm6z9kw&BRdRSxpL_fN|37MW*Q%kgx85f^8v`1tv6-?}B)v;w+XVVU%5v0?ftE-=C(F8#OKYeTeo<06}kWr!bYVxPU!8WUa$V z+B{%jA1WG(>gdZ&+U0~e=4U~tU|W!rlY`v$R!{HM%a_oYQT_tqBWnVu@bu*5DJN&B zK!0i~RdGJbkH*Hvp`pVj3J&#jCQ+BD8t;Wk)xx`Hg6I% zw9Ky$rJ86?CAeG>HBfnFES>lg0|H)v6&4&EESz#xqJ${l+t}ph*G@1%uEyBd7?4aF z#+Ce=J+Siox2S(A898|i(O}Tr;-V=>EW{X4Jk^-501{MB0GkR7d;9ye6TRe*zI$9= z0Qv{F>`65z^Gu)Q}?p;XkPh=jKg-1h;PAejzIh=n@+nTmSb{WN&lo z5=a(oXhJ{H#Kc6J(w(iXZX*s5c@2of8Sup=B+5w&TZ+xZ#eL+mX15(7OJtseNAPa3 zlzowqyv=qmebH69v{Yz~CA9o>`COz?$cAijW1|kFaOAz6T>^-DpfTI>Bm@Msh0(qM zaUi(K1+sm0M>DtcRaV#6WfMXK*j#q5wmrt5#9vejokYdP8X~#Ni+vUde{26w- z)D_a|;`@+h<1n7Qz~Ju>B?APC)>bMkfRZ4mgT>OEdCv;3Ah>fw}-x8w= zU1l(<=8lmWH1SPgXob%7_;C-!Uf6dIc76V}TU4@@@Wr5%Vv%u&=>Gt%AI!?f{GZZx zIcr^y*(=dld3Z>`q<%B@?}}>p@ZkeUCIU&8uv0AbfTq5Xl6nZ9j=z6vXXnP;f8b}G zhsSKhlkZ~`6eecohSEVOp05VC%o2Vyvw1|TnXU+DQaE|#vgjSSF*{x)d3gNG1iYsUmwggD zo$D%>30(qbl(h^*#v*2yC_&v1P$i!?5G*d0*FA_nqY|{n|0lnqN?Lm3_e0aYq*^-1 z<-3U`QQNJ=3qyrsmKGSuxkT3veeI7;!I=Z1B~^j6HEjz)jM4h~i$2vOZ;I(Afp!{q z5eurh70YEo7cuTl>ec}qOy`2^$l@|X(p;y`$sa{N3Av7;X-8-?yul&Q_7k?pgFnzu z{k^`2aX%^l;bP^{`_g;sqDCAm0ahIBSNf%9HK9@Bnlgct9)i)AdMe0w{6b4Wpr8fz- zZ3_O{>hSFzNBClg=zXR(JA?0MN_3=)-dSjpHA_IfMy2!q3)>szQ@mcjpKA`77y>8> zK8p)o!Nf02aAguLkBmz;k}i=(p=VCFbk7KdRz+Km31AT%SF-XX{~17`V2MTb1N^zC4MI za`joY=q~@yWVdHdLBYm4(Z32W?nz%VchKtp^`{>X$o@~~mxZQw;{imZD1iQj<|#vG z19FR<-Fn@Ri{Ibgg-C(y33U~|+SruH(1o|?L$za%$t#~-!QH5ZW9ueYBx_RV!D(Ro zk7{PdIWai+l#eeybCdt!Wl2Ni^97LF;58<92rX!Te|_0#>kBc*?_%8@eLUldP?Lc%ow8LAkT8v!QW^S_pp8y=nBnYe&UJHSE>Dxd4_tg}D z{=mLIj9in1b9yLNmfwzbzAo5<5#@VvKrz;;#a>iV5sew{C^Wu1dHVaV{CIgX97GDn zmp?acK~t%{$89|)2{aHy0wCG%mW8Vo0dxY1IRAQ_sF~>iDhMR1EGMe=Goo}>*3~X} zTHD%MZjZH&d+xfVw=yCjjJc?tn~&$aGud%IY)rTWlReu3oZ#>%wVqn9XCM-b_3&R! zdZT^j+DXua0Z1AX%b?-`S4Doz?k}VXLfUfk6{=g;qrPfD6fKV9lM^f+j~OHUYu>j# z8(E?5`+|{!agunbdG?2bngd<>iGv%i^`vM9 zZ95!sQ{R%$@?Vza{8KZSB#$&C}`Am3vRYP+9k807YdiEkpgD*3VO?^-((csWTrAX21~ zuK})NL`)2z_0`2i@LLbzg01d50~Ul>YQAz=mJ%bE`KXeP&c@Ob5ebPjU5-)?SJiTE46_3ihqT}2Vf`h5^Fr)=GFG$;fV<34BDGXRm|7hgb*{_d6 zqldq&13NxGp6q@w@UaR==b-!mWs)^Q8jLPr{X_Yh4xj=pEG*>YFtY1Beehr!)CZD4 zbVLW%Kjfo#OUFQMg{66Cd-`RMK401=L>9RUfFSI1z~!wACi z{t2Wz33VKwQ{uW_o*x2kPEq)(#F($b3)}0*4 zwU0ON-gjAhjBvXgMEZxU`o( zDfBou-TM2}%F0Sx_x3`sl%7u2z!>jCCepH;=rA=D&!VNAg|_(_dflv3EDY*2`DcU0 zZ@dP23m;ZeBMMKkM@5oae))bF&N-J>PdjM3RI43LpiXvV5%_hpYtqfB;ZuWaQXL(=1`L65S@Xh4t$Y&5gH>Udg!nHlxcRkAWe8Y-4hWb2IuiL#^B#;1L_U=y)NC9Xaa!rmhJ~zK@qQX=93ivX>x&9+SRrsx z5l;|6OiXeL3+ekH?|lJdDCp?u3-j~)5T>T4ZunQl&;t(zVgWEQK)-wyLWM{c@Ji4j zuRIYQ9hRszSxDGo60@g6wyU6k<-r3KMBsGoNu^fZyEX!d@0$!Tf*RNxTmkU>(`~}K z^Mf({0+^`wo=U16xm?i)w08us@Sy?RgZm3gWtU?A#OGoDdCIs9MMhxL! zUXQFX1eu-2cTmb)?2$*slR~i#1IE6MngxmHLP9@cIZgH1N8lE_Lj)dnUrKo3WQ6CY z`Q~-R`)9IBZn@bA7!kz~()#h^2Na<=LZj+q6w{fvpwJAhyxn| zgAe_yCcvJ{RV}>A&uXjl-YwJldAKRjVus?mxFJus;xX}%?2?(B->2qYkn4y1nruNg zA&z-kB-t!s$rEL?VeGd&vq`xe9oMJDIkAyy#IuN7!sRvpP+qzt-}c>rBR32*q1|fv z8|Z;t1dH!G0zWh>{<11TggoAIWtqG-ZRO4II5XWjSHmY=%qaO+^!6_jU4mQq8i@B& zrMl3XmgU!;YVrLdCa#kI?s#HK8AcLNuoAqPx)whYYh947!|j|&X+N_r8)Glb_MQwO z>h+-JB(l^Ry!htV_Z4WdtVbX=DXK>4!4LSwy9|l%kMO6Xvn&e(GGhQP_shl?h_UZt zB|6-oEtx$%cvsvROL7o&l>`KnSmiDTCXrC*4?N)|ueaOEF0brex~_wc4SEA4N|B1{ zY8()MLEW9Z8Z?UO5-=NPgLxaiL>M#zr{Ks{00CpAyf*3Kqep>f;Sp`~>ACk1;Bw1> zWe~UD+XIuxoO6i$w%S~xrU7Jc|1b0<^3Wer zpfHN?%;kVNW)d8!-6xTdWWSnqxVV6|bx2R_R6UkKEu69i<^~OE{~Vka)CN0i>r@64 z;5|?+^iQDEfP#!d$-wZ>=ijxC+cPkWRa;Yoc*gHS{0x$}>dXYM@HzDwG4D8OXp92r zkjy#)wO>~C5tuEKCL8c63k#7+NmGg~F5;-@p3YNCDija-Ps$kk{Erp?uCBgdAA+L^ z|6cc>z2LMt&u!70E`?A=NCVc2h>ac15gO~jK!EqV3M6$c`hNNpBd01;O`OyPu9xG> zmv@l#j0~7j^3;-F;;Fj4AtFv?GmrT`&zS0!<0ov26W_PfB7xUq%BP6-QY9AHM_SC( z-K*_Lc3FF#ht6?!b&7>;C7KPO^z03N7rgM5nft=|B|__D$2s?pCM-|l-6s~RuJfPg zMjSE<-B`#TE0>&l+cPb$;1}K4s&*&7``{WV=;}_H$aM*hoe4%u|$*t}SkT!=D5 zq&m_#f5619nzs5^Utf5j0sQv4#ELL}(U_waSy3|Oa- z#O;Igf|;73z;g0kE!T8bkJQuo+Y>2WpY$#s5Iw!ljs4vuv9#9daqDQ1>G7tX+Gosv z(r21<2R1b6-P}yact%#(pRYBP8-C#pn~23G{+eC?j#0$f{yF6xOy}qp=@|?OG=y9L zlZG8hrj{^1DDWmw9&5!??Yu!nL8bSEA%+}5{>)-vB1r3K;^s;lr_xm7Bzm~j%cE{g zTxmq;Xe)lfAuGU;83jqqWu4;soJZFMN0OI9#{YS!?`ZM?<#~e?dDn<$lB*<#74~uo z2GWobKA7u)_@fpnai2UCX)UzvXF!rqv9j{a5YNrAsQgN|@S9VA;#&A7EX>Fu{{pnl zTP_O?36&Hr_zV;iZAqt5=x}uiCLpWV9rCqU=>4=8!Qqn?!9$V@3Oe^D#u>9s4liiJ z0SI-T<-^>;L~7<~`NjFB2Nb1eSL2G2%<8>mo%XkF|J0U#)+wBVSq3OfP#mRxvFUR5 z&N@O~1rX!d$jJI|QA1CU732aC@Tp<2B|b6n{@uGGeYUS(|Api*Xt|QYvoID0h``0g zC0mJvoZRhrXC7QiAOn-5qgBd%cyEiMn`T2P+R+eelmu7XuCY%rIk#i5i_uW3>0MiU z4mR)@Hmb4aFf9Bp<8hhM_7K>BiA6Q$$hP@R^Pk0LFJ9bMmxVAg1hj{1UiFYgpm<`~8MtYh#M?r+5|Fa|g%oj|D|M z7AUiZP(7XKx%Q`8od(N%Qgid^P{p?OtyT8xFa0lbwbWnuyuGxPHvhD7Bv+P#&cMbf zojlv;uA;6N8&zD4(ug>NOUqv3Wx^+5sQ-0rmaDNm=lRawOSc)F{n2N(M+)2hmuT2O znmy+Z62(V&iW=&E@cfS~KZr%)So1f#!(_#Uk*YES^nz$sU+c$1>ukORpC!(OPel=zSg=k8I zXaOCY%<*XJ&DEs!Tq`TW5CI`92c*J&9gK|iu@&fy;1TdV?7nw6$PUq`KtI12UIz;i z5j0~08%Rlm1qa3h?yXPIaG}w|@D2T8Z4bx#{Jb5serU!B4CV^hE`>ZCx`~4$2>-L3 z2JloWqgSq%*+10>hr<2u50s!;4w4S2q5344HeImfz`tYV5V+_bn<=M)w{I$>1{Tjt2s-ObHyjC@ib2B5Bl83>=BAK{6%{*>jgcp4ssjo1o#04Us* zk1-`Y_QK0Iz!NM|J6!E7BYr>|7UmaUl|A1!pDLjnR#&6LbBH6t&ON_A{l+ZegP~1z zd7SCVX7pp~2F6v5{SQ+GjKC_L%8Z@JTZe+8;|Zi#~phaW_?66M~KsQ6R;uR1vgx8~$BCCAVa4Nls~ zvM05#pf>_&ieZ0u>%xZ*v|jtoDH-^?!vmb4rdgo2Yb9L*z((R^=vN{o zAh)u%c7`+HG8=|o2oqNzk@lDfrTbM^pN?1B2p;`K121iD?F_gylYl^7Rh9G457%7< z1o`+}VY(LiyS~n^*Z3JUlkMX(U}Pt!Q+38`FeGpeb3MAQ+hRU%#wRAGoE8&;r0qi? z?30$J2ZoMx1~^vfNyB}8C24hwDn3}Gk@4|oz$wA)7T9T~hGz&o=;Iw((l%VSf_*|8 z)u!t-e=k9f3kI1~9B|7_fv8>$U4y3sHPN`q!W0%T3`08Zw9sz~MDxCVQTWQf^GhlJ zl16lUpX(+rf*a(aQnLRjv6hKk0ADTb!9I6*g4zDyfy(a71D0RDiT#&V;hTg80tt(A zKPMTlBi&D5@ds?g%{D^`(_(rF|8XM`Pi7eSRrL(9Lu6 z-nhxpwdaQvJ;hdDlpBu|OSp#AL`Hb5a?lgQ2@#^(1>cmpELnfFHtsFeUUrc3t9Y#N z^3b4vymMZ({vjGWF1AH3Qv|)#O$%Mq-FuPv+V_w}yyn3#Xks^0C05-h9>kU*wj}2* zwZB3W&OZljt32$=KDUxi2>8dy?Et(89Fm*>G!I}a?q3TFJ$5^|%FV|H_g#3f7CoL4 z%>R?*KK6bgd83>k>a}0`o+tPA_fIsY91Dg^?#I8>bP&G#;7tK&g;9bT|(P=m*@6$;SuSAHVRemsgWi3BN+XWR3E$PE89a)QS9tOkHF{w zD+yQI`)!7-p<5C%PxwE1=jXmPZ3VKHSevUqXx-Y=pk^Dv=i0D`ibS{7uVP!yYAAj2 z&K)4tWnZp0_L!9M%R9Q5{z3F{yU%Iz!CL;yjbmYoqD%hJ?URoJzO-D@vOEy!tdrMu&$MS21WKOr42=6r;P$ z=+rdtT9T!m>($Ko;4khl1Zqsc#cCpTF=(3AhyY_C$CJh4O@l12%+R|6FOi zt5H9&i2bT4E*o%y?qDVkKe|^I5JVy?QR?2^nuMpSnmxJ4NLzMCeTVm-^(x)-^BWKL zUjN_Bh5uvEp7}3A;(M3t6HZ!6`xi&shw&%|L`3M<)bVeN-QaA)DzPxgj)~03R&9t= zee{I0dQdjsrT$!_JwLC`=q1a#3X8hB!GfJsq1(Mj9f5bQabCX{LhfT{;O>Dr?X!eI z^wX7}g5Nn_An`c9E9Jt`ipK^UAGaGGDddTYN&?>$goM!G+pQZ$@Kwl5vosB?Ovo!j z>r{0FaU2oSd(B1!A>p(0bJjEJgobHuO9p^q6%|){Z0sO1lm!p%NFW908QgSe0~|3j zop`we@WcQ`3W_8U+L-Fu;A6CS$*?8t?aThr8txvTv4&P#+iwFt0gQsZeEHJka2saL zl?HY}z#InL4^Ks?si}dfu|cahSI5u+PYMdBlZ9w7%UPO<#WcgCNBMgEykr1dKEo(5 z_yGgXcX9_-@)kiQ0!EgZk#QXz-M<-H!AkK{_=LaKOSV-emd5rivLuk1g}$=cpB?_h zY4vMGg<9dzP}|j0mW0TaFKK`AfT{tnJE65Mhl6fUeH&8xmRAID;O7bsf#;9yv3>PG z+=jVG^QBMlmk1S06{?$*Jm2>3kxLjZcPQcq6i^3qE5N{pSg#)IRPo)X5|x~k)bvCI zG;J)GD~$_UDKS*%dz$bhCq%*9=cW+^apA~eFr_R0S;@-Ju7O?-a}XP}ywKsusHej; zx#2=V^P;DMdjm8vHWNIeRUc9dZWju8FNk#gT3yO6qh?Q4^X^`K=zN$bHV#e_+nZms z4%P9_1bFvQ2A*+n z*n&aPIdu2xNmN*=+vv9N3=j|)XUvvh7SKRnpN5uJojEcjB*aJOYAqFLW9^bHwe{3E z+4weuhJ^ezGs1fuBLn&bq=K-j|6K-cT6WiYXlducg@8<}W}T}Os5t9%H?gn+VU~B> zcWG(qBxi9Tm{o)LE)!KDkq^B`eU`~t8=hr?K(tC!3{Ju5v-17$sB!blUJ6|tVkW8= z8!>ekmGY)m$u5>5_in%IvNz5O?+w$Cq13IRZzJqq@K)Zj$w-is%g}jS-X7j7M=x>b z-8Qq+SIvZ=8wk?LkY*Kfo1`o2i~*uzT|@8k3-JgjA0BrrmkY z%s&4pw&rm=t;3VVQY0>ujTnmd=h?7s~Xk$(?C%pXeVr{`3 z@0saOxH77oQRBZLkbN~W3K{c&E6WVTPA#i1RcsnEJhF@9Usr~%CuC-B!bsQ#>(ZWv zXnhcxU^FFF#_=HM-6{Er#PmK>a`A(ui$V-B8utx{rgGX94sCanvV}}6^@A@CA(qB< zb~n-< z5ULbIks>_=h=5WhK?2g7^b(LxNFaA|&iT&M{qFO9*iU&`Sy^+g`L{9te`HDKI<2VS zxxiQ{a&-FY56W?su9QvdUnX~36Min+T2nBb&ftLa%Q;Vg?oCIP<{^$vBv# zyp|8+MXM0sUdv06&kEa?1GtOo5u03x0Z z&+ZNS{%n17D+X1f7B#$&&Ce%aHpl76R}PqxVPy+J+&`U_lBIV(2}t?VCPL!2=o%Un z$9s+*z_flw7g1g-{_T`Tiw`~Tqivuo2E|VXm2*9gOJ>s4KLx6!?`ki;o@e(pI)Q1P zbe7|NQupMDF2EgmI&-BcuOJzy*vBQjaCGuP! z8A<1y(6)_@+&LD^tRZbRzr%|sTF1H*OMdZHZ{0F0E}<>U6b8du9T2pH$kA8LuNDM~ zVomWI-WR5cxG%$VsfIdX(JFy96qhi%mX(jTe$?Z)bhfZYPu&&Zq%CqS=vSLSXZJp1 zgA4{GQ45b8-fs+yk=_Z^)2^Z=)K7W~6&=tTql6dT6tchedfcs6cl2i`(uE-GRG!JR zixM!%z5-%*rzgT!X-3sM#T~)zM%jY7ZiFgkv1%xeb5bgt=1V2gA<%swRlB(=g`aDeJTyNoMd#pV!2lMRP$QX}ZfEkm$y!4)_BNjRx}@$FzP(+ZokL)24!Li7f4;ypgJ1 zV}vLDt{+KLH65ex!?Auao^96EQNSyD`O$*A8+1aAgFFNbLZzZ_ zTi4eGiW+{mh)Z4-SY8?tCtY_%n3QuUr+8W~Pg(uhU?_+lpz^W3l}|PFK0exGP}VbJ zQudK<0X_eSl78@~U6#C}!O_7fEPtjXe@Nrmu1Q}!wMs-4cEOC}U?Z!YL1T)_*_g%=ao zFjPKvj`-Q9b}jYaT;~Hq?|RtI1pe|m^$w{TpLO)pu+7Y~1^G-@a{cg(NqA`6(2UIJ zkuyEFVTic+2u+Q*LhbK#?N;iGjR19~i!;Z&+6d^L0ulN?s$IDo6zyQlCk5G%&rhR| zGgqj--#aTJTdhARmF}%+7D6$Kzgm`BUZse`(Dh22!)p<9nhbRmrB8`OgesB3s^1r?64 z3nTnF>*JwYVm%MWdtdey^aXOMm=J|I!TR+T=Fkfy5KRH=Kln!>1OkG3u)^ldusoCA zD-gmehTr5g;AeM?-gFdm@`&pr0W-l7`1!}ZxacgY#(3EFR?E-(DgldxEwTf6|X6=5Il=Z-$3oUelf>!eXy+A7{aMA zyuQ8OGm8mbw%(gsy7XN0MY}SkUvmu8wLrgEwdXS!z7~a&HqqAFiWR$_Z$doS$v3FBFtknq%XQ{X{H>zPb_pawfO!f9 z+|ue;{V?~Pe9r8zITSZiWWk42Dtz%RlP|8!&$=-zb)J1kBWm?BOf#8gt)e8MNQ;|y ztGE3!BDX9H`D8p`YpSKvu+&$g)dDh@AGY0MAg-4(%LR!7!~r9tNuS?0+ae`?t8%;q z6WmHqaGCIYq&21*RX=ssjHbW*zvcvBb7>BbE%22Uqus--b&4cBu6c4mVXCwK!NHQV zoY@FJ#(LyD7xFn{WVL5!-|CTBI!dnD>S=_j%-4~RVWEsYO$L`lvGafcYx&$hXDciE z_p^3zI+mnpip$H(1DFNS5g`O;^!4VO$Hcg*(54&2EiHasQv@%+F!I6Cp=X~=M0p_B z#l^?)D7#~RSJ$4s;fejwKRqJStx%tkh*f?zx)HR1M{4RiNaYox->oJX8|_tc@PAsN zRiw2GZef3T+=c6u*dx498$#BR;e?%{J6N<6)khIcpR7)tHII6AuvOBTu0S`r46pkG zR_=2rO<4}HB*%I!>yl7E zffTfp7%UO2*z!v8m^)>>_JWT#tY_hS`cekHqW{f#2>#%$Y{Jq}jVm?kCPSnbb0pS? zg+wk{w9j;Lsp4?Zs3|S-`v)iW5Z|>op_|x)ce?&0eL%Y}*B-_M#&!J7OhDEA&`ndI zjuOzIVgb{e-4>?F1)I=#;gv}zCGQamaozGVt04JjDhwizr?-9JP2jcTU6f9%Z<;MN z9{c?x#jO!;?SDMMEGeCLNURC(#Br0?X4<%@8~=VmhAz0Ht;!fB$`b1&i$_&cDo(91 zNzc0!s?R{uK43igG{1DsyBy~M?8&dW*_b?l!|Q2lpMwN8b_0S6bivluDH&hP8;hSl zCl3!V=TJ)VjA-kaL}jyTM2*TjZYCs>2|nI7UcHKK`rKW>w#FJ8WR{l&2VecdF_W+~ ztHe+BL?6#FZWAaA%je1#L*pROBsA~iWvQl`D^It--B)^AQX0>5E^(Tt&qp+HP-^P4OUP(?MuKHC z;?c3J9pBo@ip+th)vIQ8w;a?GBdDgHH+H57*4HJ(DVt`_tqC%Mqxk^lma_d;ld4?E z4TT;OUuOOnfopY`29+CF?n=$nTQK+%9~ZZ~yF22~+y@h(+-wEt1fB!rxHSGs^?W+~ zj+e|9Bs!fE?6>yI9IQ93b<;tyX1M1sRLd%c`m8_w@(Q&^3Nb3$c{eaBAGw@&A!M{_ zXG)BjycZT4H*3!8=4FIiSh1Fqbx^AaW!Q8aD-^V@Sd6YdhO9$;t6G4qZ|lTHNUnDj z zO!Woafezm)zvtCZvc}k zmgZFnI_8f!Z0J#!05Kr*$mwo7CGWlcV5`G|lwT1s2|ifP)yQUo4)rmgjjoCc=|pHQ zkCAG_OB?Nvp>@yBr!)4`_psYV7li5;nQe*!A5!5~G3J{wh?jm2M$`{oy7F5f_vd{p zXiPsE{8ran)BEYq8ezo ze(mh+bPvgs3HJ4OM-Ji=#$VJEB1O`?7K5gsw&YvGIPc?T4!3ZjFNAW86#aao zs+x^d3<&a(Jh2iK^%U0R(IHF2*sUoRb+X-47Qnt;pOZgslpUr{|#25zukm(w7F< z8Py%a)bJU1thlO-If@c2>fNC@pC$1-BX6eyB!}Q69AK6OG9LQRJt0kQ_D%6*9EkOG zQKpI$L#m?imKx!b8^FY@Jl3y&U-0S*#k&kR!OH#{x^5jNQ+)WfpwAv+_cw|*V8VkU zuYhyA*N!w45OLWeUtrpqYTio*9+r(qbwv;YgO%@VjqWct6a7FnC3o4&C&QdMXst1# z!`h`IwTBgFa6bbQOMo2+i;60lWUG1hwGlqHi&>wZKhC*G-BSh!%COP!NLoflMof$( z5UA3+(2cc<1+^gk&fkn*Kf{4zRPmM8MdtZj+?q{Psg5^P!rZKq!@Yd8NxV(alwLYh zyil1VL%zjStyxla*9q|pqC_-qM}kI@&bPDh(IWRsv4d{Wg@m(lJR293f-;qkzT zSD5F3bW*J3RRP5O{(=Ho#A zKBGRC$1f_EyfG6>i#iw=`HO1C*xar)%>D`8CoaH%RVA}gv_5*PtPU(xBa+T3zmM9` zya|c|gjN(MSQCu~K&&5(V{gLjftaI~#vw-MT;yV?cBmQ*w5PB??hy;c@LSr4WJVYD`N8^dK?c^Hoj1B00U>p^|GOB} z&&{60+2B@Hf7okFK-fba4zw4K21emRH+@k#MI%D6E<#mRyy3arIc$myo?*|092i$p zP%5?Lge>g7Bm;0lq^p`A#4gv3=26Wru9g8I)t@F_6kB(yL6Ucenc;Vr8U)O?9sIYI z0D7da066sk$M6S7_kbR!Q0#S}XuuuY&sl$GCd}LOLLsX=c9s`9J!zxlP0o75APa`~ zjYva2#T!=exkaExrjZ_q^FB%sTsh+3T6s#gQplYcb_@%=ek!Hjb;ec?@_l3zJKVRHCfv<{iD!aXAYr23Mos*=PjpFd(Y1k%|{0_F;>=39tEYsy`vkCxa> zD3?T?js|Oo4!V7|LV)w3kdd_3J4quJzhRPl^)zy%$7?ewIC8e8;OrNCj-yE^QB$@-BOfd!)O2N z)>fo|`&8+$QIxrxbD!Qehxt9k%qO8`|7OKDbazZx1{ZxiyvLQ8@Yk_1L2H5mm}%|o zsQq#o#2;NgWv`;p>6!S0^#{QOf~>#aY6w)Hu6Y=e9C8T1{%U0hlz4RX$ufS33tE*a z6t4Ahjn$8XZ$BQwA|(=i)(Vv_Nh z!@HUp_^JUkezQY->O{sw;T8rM14|80%``{FD8jnZAwJ~J44nazg{r6l1qm-7XbDC`noIV_Xho8{Vq^2lG52Y1)9RE(e~v?^2({S+TQUU zfp``cwvNO92<+r+c+Q`HC8qCf`7d;wqqz2{Q}r;=0ylg3 z@QEy_ziGAry|2~IqZn?~Ie@QEbfDU~U)Ea*oi)Hfx&TuFXuF80sGHnHpd%)o(j^p| zFMjr*?)k9wb1l#XwP$v?FAo*PX=k3Qsi^^3I)Iad7Y$?pLA_|y%6|AX1n>Hfz|vUq zIF0K&6oC?#l2VTnA(jf!8R>3~Sc&4qHF;6VHv+ZQJswUj8Zni=)~Jn;hp zm)>**mj<*5bd!uR|IShZqzbs^0bndbcq273itpzG7eqEKEV7oo_Ra(+B%mcQ008(b z{|D)E7R}G=S2Kt8vh|?|JjKDe;e`I;potln*-Es5#l-E zxii6~;1k{KYIx7@v>5Yp^2`4Ui`fB*+N9!vd) zu|ZmaHL#IP2LH&wY*H;y`Bxlx93cTYtaAUe>_#Tr)bD@KZGM_M1eOT-UnRI@fug>lg4uN%|TtIW86!)-_ofNfj)ti|trg z|D0oAfJfFBhArS996K3JM=Y%CKQaIR6Ulm=0t@RdmaODMRo8@-38c;~ze>J+dI^vD z`9J@d_f_RvO(hL0x zh1>W*`k&|)GrqXa`Pael(T)gS7HC`%z5<^P>y_mPNm?|Tp;Tf9^DWjv!y~_Im@j_I z{ds*I^99y#a+3m$wzf7WVJaHQ95n(e;al7J|6qQ?5ywSP_36{6ni^e=wY9ZiO2;RtF3QoY3bonHDEy% zYKD32NQpMAysFB>&26_VREFN6BEi6YIY{q>qrt}7`gUOB2Fy;ZQT-1MDLBzi|?7v=QZ(wfPpL#9%{iNGM;^)tw+wY|m7w_bhO@0nJX2&f2 zt1N1s70U-+US8JL>|RzSTFQyS&QIg1#oTw|ZEI6Pw6(PKJU1VcG$Y+8wHM6RCu=yX zH|p`=ue0NIq>~dNLNNGvt!iB@Pw#Z6Uzu9i>0Pb~fBgA&@;T;t-D3OWKIg~!!86!2 z!ij4&`;*6GQ)hd9@|=+$KME2b!z&e+lv}M2)ULp zgGlN2urObDP4YQAT(IUJYqWudQqQ@+Y2!CkT|E)=`ue5ZTbr+bX{o3b`kbHj^{Le8 z<*8)8dHdG368+`(?-z)cnGgvZK62mtsh>ZabSItuxJvEBK6|*3On`^CT=(g!l7)qZ znc3o}hi|cIe0_a0loH9s+?}Qbl$DkBi_O9|1o`>*-b=b=Qff0Xv$Ko2ZOu-dpCK!B zY8@B4bgNt@U}2?$DKm3&ytX?96dC(r*~o}6e;j^)|0ho0{p9r$ za!Apf{38b^?#ET;OShQ zo8sc)9{X$0nQtw0Ckv1V$wzZg-M6?!Gkdx}MJ?j8@_~#On}&*t>e{tybW$Ha&1Ga{ zNNlyx1>YwRYFe*7&MhyGF&;tpXK-rdzap&P_Eb?(v9S0yVwJ>a-q#k%+TPYy3qje{ zr4(hXo~wiY_y>8dDkD7b{rggz2@5`QGC$1$W_x zg2C>rc@S20E8dxw?=+@R2{2r&E zpdc5Q9Rw2TjoQzv$ZxFOj_YaU&sFCA2n*!qDTYinz}MYk1{9|gcy@V%oB50ofG3&aO64-cb4441=fOW-#? zA)&*LSY9POI$GNKu0)Tgb2}GxI%jF+=#|+dj#zmwBqAY-nUoS@!otGh@S!16AB1H7M5sZ!Pe%Pm|)3&j2Y z+Qf0)`6(woz0vvEDP~n^(o#|$Voy#@Nk~W}6Y{)l`T&nAr>l?!HC0wt&b3FEm6cUh zRJ0oL7<9q|1uvT&D5Db-z4{deZXm|T$BEgs_&g6b_V)Io^}XHTdUizg+}sZJ&yUoj zjBnn&84(_Swv!xm=%Ab z5;F5D71o1&#G^-V-@c_FCx?vC-`5AZ%Ctmlz+(3;f%xL`G87K?gAD^^+@vu&G((fLKQE(SI=it>Jk9z|w7aHS`TXT{ zp60yQP2=uP71w*ivqgh#{8f&|9J?btbBWwM8NLA{^H=MJ^eg0+mzD&BSkQpLs>f|i08b;KHC^a>8H`fOp4r*~v*GG>YtuJG8OIPmZ?k?mKX0ccE-N_Q3 z2X>VR$PgPBr(oZz&W4eHeg;t3R)-Ce!V4uODPgy^w8TjG)W*kCG;mpz#1a0Po_^>f z{O-dCD|2(S{P08+WUA!w@X!6|k8S$~GjEAoNnB?-L%uC6`b#1%?gU4b}s7s?l zY5r78m~rD`@5I1e!p39IfhK1m6e6gJAuN9K@{-O zZ``?4>vQg1sRU`dy%2J0*ABWL-O^a;ysYPrPEYne3eb~ygnf^d)#Fb9lb+jLWL#Wa zGJuH8j3oGZG+8fP6ip#08`-~|r^VZhWfwV~M3;RPyNyp{l%TfrL$S@}=J}TQqpa5+Tx#Br z>3lXky!1}j!w;(6k8dmH;n46Aho^Bu8pnmd!ks)~xXo2h-OI|9S5&=ahzbFUm7xg)T} z0)>TzlRVahDm@3YHJx;#2vsyR4mxEu*2liq1@J- z@Z=F9k;tP5^h82kSZl;oo9VwSN;ZO}?(_3QfAHzkT?BUbHj{GFE#ZXEjw~pJq5l2| zz00m=CvF)ZRv}$qy-xXwYB)OIgXIwL-(;Q7dE9-=rVnIAo`(*?1Zi0iCuwPEkcegI z!`Zb<=@}VwwMyhTqA7x;gomy8$kEKZU5O$9n3nVECVP7~TbYvWC`ri3(1MXuW_*3a zlnb8(`1#i+s-pd%JP(yfc&sZx;w;h9)zjl33b=*q+uwcRjm>d_g{>_~ZCI8nOMItP zox)z>BlGA!TkKzeA?S(VMLqwZ(QaebWzLBgu4CEZ2#bg$dv3{w$?&;u{FbKn`dF*k ziKD* z`Ll)JBo3{%{)Mbg)SMA@kflh?`8;@sgeo(CLgb+mwq}8>`e^+PMDg0nxIy?GRu|vH zWMqQdXoGGSA!1bV>lUdMxM1p%Bd4P)xR)0dJ)79XRjf~+o+M&ky&5&}t;?}~=49$hi1sx~8cDjB*fa){ zpQXf<`z;YNYC)@Vro(($;%6jCL<>a7sNyO2z6YQKK+Y{)UE=OLW=cw3;SBQC)zyH~ z;By%pr|acq&<#3yyO^1Mm81m#Ma5$zV{V=)NlPZ|Waj9|+iVYLNYMTd>dDGnH)`b^ zYMW`m0niQz=$5c)AX_ssG71Zino|Wy@$LzDdwX+ayLTlBInH;aaO*r$Ww}jtjC5DP zHn*_&96<)00SgPuqUvw25|A=|)ZHNMh-dmqi-fpy?XOB@N7F8<1VcJJQ3*)sFNol^l$&XBIf zI6iX~2ZzE&L-gXJjG`iyfDNT?#AI#gO!>16CG!$3KZB+qiZa_N@!%QE<*;I~yrYAI zR1o>&b!G%MbW(f|IXO7KNYgn3Y>8+!DjV}TLNjI1^%wBs(A;EH5OiKrg}ls3R{AVi zq?C`J-vwYDV?@Bh;Y1Y@j{#Zr=rUB%u^JD7MASrY?^A7U`KdH$uIxl4u*w}A932U$ z#ZP)35#;FAXpvr^tD_b?fQA_$FSO1z?zQBGY zJ8+6U68c+N78e)cW37)@@UpRGpVxhpl9JkU4C3I14ZcRfPYFF*ivJz*`xd`A>rS>H z_A#JaD~DfHRFs$3ad|L@tsT>zI5`!4{VJ34M24P7KtMovv&E!nZf>quyHHTG!0@r5 z;h%nG3HFHAFN*O}8Mm4n8}ADU)EzBlL3xDbg%keli-H>zYd-Q$sP4xHB^hJk5fKr1 zczEe5nIRzrHQv1i&iC)%9~cnrr71^NTqnq4*MK3rW7>V5Hi=WgG=jWAWYbLS3ukl##s65|8ps$+AM zQj%yzMaAJLM9GBYtX8}UHfbQ2*eCPwB5XQ`aX&CX~3^@o{` z(LaCwB$<4yd;}k8j1R(2R$18xpj^UaVPAj0&%yLnVF!bv5nyzvh=~3i)E>cFOFe$vo4itL zI|Ur1xb0*$#AcuU@Laep*+ZsFdxdX~B{+=ZepFtzd3iN}H_O^u%0@1Kwh6n{QPyui zB<4z0k&w^!*CBhT&mx_kAM47$O`K^~xmXg!5P}TGc3s zidOvK)4Wm1YF5NNwnXpg%{g2g9QT@>M!S0v03IC`u_cU3Y&5oM#gzSb=kSON&MDv8f?HA*jQQy1_uWR2GYT%)!ENT#l=lI zc8l>nRF;($a$bTKD)q`WawGnDRu&dwPQCH=5Sn_0U#vgO+rHj3_NbG-N9}9Pb#75j(7X4(KG}q&_ww zHnt9X$-DggrOQ5ij^j(1K6k?vx;R}DJ>Otetqec8wPgB;_c2@i$Gjf+6v46BGy|*S zLHf?w0Z0$WlyIh5tH9IsV-CBSg&oIICL~2tY>KN#0Z(Sj*1@^3gnsT)wA2oDj+(Z% zw#U(qdGHLJ@nZA-#q!;20^^|x2?=p=-_){f%crk2Yddq}^FrSX55~lh()cF{JAZ?s z1r>#vIkbK5?Nx#`uiV}NbF8NPJY~{`+9LyCNY6-fe=>DFU&9SD&@ajD;$C_EhTF=H zJ7e==xkB(u_KO!pZUNmIl2W(MfZ_PDHk$qZJG|B1@U;)7LNKp5bSb{m<;Nu{ zy5(ezTsLwu-X0pA$E5Rp9y3U?(yFRscs_KWK6lwpNhc=Qv27z zM1gs!N!1BWXEySjoOy$TgL``}Sp)7PPhS@u9UZ;C4y=1F-cUDFuq3TL61l&%wd7Ue zylqT$<1qc#WZJ?pQ@&-d^-Bg@w({?0bvhgZ@tyqfK?~=<#qNd4%sL!0*mh~K5tB&$ zrQq$v2){5CWi z9Hk73MP|&Rdo!%H%XNz%uZ%<1?2I2ewg8w6Nt-8j#o+=J{W0hd;Uo<;?^3bq)_I?P zejG?kOUuE8MIxu91ngnBRBDPcs1V(WA_7o2UI)GZ#+~Ft>oJCmSdT0;teMz4$vnS- zm<*})B~-CC^Pn|7#{8tfOITDV{qyH~lOk^D7Ct~DySsZk@c90#!0`BZZB5O4L;)I6 zyPKPUT|12L9G-qDEp_Sn^iTdd0YTl@_d2XX zLL){zo1(TwBlJW#H1uq2Y&<-LoMTH)!buCh{Wn2;@Z}Ko(|!J&A)@s z%9Eb~Hy`<5SCo;70kqze^5|Ga^~H-%YFRbI?{zGp;}0a^OacZ$Dpj-EbrV>};~2f0 z2-uFz{;OCIdaq&=9{RJunYjiu{cEA!fH8lY9GDOy^d6}8bfTPT-JzAQq@i5oQ8(Ic33z}0s z6_u?4b$zsxaFp?S#X=G!p$xe)tC6h?iBrfzZ7;YycL&r#I$&$>isfDS5^qC`S{W{A zc)`WT$G7Mt9MS4@e!36%p`ujaI2SZ035hA2vg3mTNonaKHp>DH9$sE&VX9{Pl#~=F zvmPscQ)6RzGhf8?>MFaHo~o+q^XHA*C$OyMtigB0gsq120n(1F?j0N)K!;aY$P+yC z({S_Sy=Tx9zg(qK>+hZ4@{wX^M4A2EBB5Q-7CfGJWJ29OOQSk=S|iv;;dj`HU}z$( zmV6Nrk@)y{x1?wpdH{_onI8!ad1A@Q$z7A8TaEA=2ob=VXhhw1&&x=+U>J}qEG*$N^g%&E5F&uRRI>(j_dlirogPLfJwG>hcyIs=Z%R=SuZYN)8DC{Z z1rTaoot;614iFNbKhq{HlxSJY%gb9?Woxia7MT)={ewdTeFrI@8KIa!mD++Uy+Rz{ zJtijUjD9Ln*PfvvB$Pe`{gt;gckjL;qz#kt^z>Y;hlB{)gf<(ofIwL+uc>fJZfR-M z!r{Aj@8CTG8~a8^WPRSe3kZPfhDM_&)P6}+Ch2!}cDlK_xl|<*@<4+W->C*N1=J!P z9Z`dN)R!+`^two}us)R^;d=Cu=$LcZmT`+~p>vdZABvrYkC2o$Ox+BW72UtC{@AQr z!bDkVcBvhQ)$nb7dX^poZe$j29WzOb1Ta^v5lrgY8U`g=&s0=w>Q48P2CISZ52h5_ z0*)E4t};o`-f(ra1kw{k>KQsCIf_$1DJm)oNN6~>ZAOK#WYB3%f;jQF_XUZ^6EGER z*jJE1Y--JVA%PL!Kn&(+3wRwlA>Ngh?ZXS*AtjATOgvpJn`-*`(<$fU5xmy;#Dv7b z?~4(w#UM!O>ra)J3nFB+v_|XBb~#J5ytZarfBuv_Qv7sIhVKWJ7AQBMq7y~kwpK=p zppyg{75)b9nLk#cwY3%a0G?Pj0fC{339q(~_e_d}7#JF-rjjwJvVVA3&~lJ1X#oV{ zSy*uZnb@t}-626i&ofnl3oS2qg<}o7mp6n|Bq{7xe{6AKk)AMJgTISzQA56B26vjJ zPAxE{H*Gs2OSW#ttu{6FQKl*p0=id_vw#113+P`dBP%E88V=61TWxM`S9iB^rfQtR z7m(yYs)2$yI;s_CK!JZHK(bFFLP3G?8Kl(YWNI%hRaHKlaY12{uNh(tT;xH}IRLZ_ zlc5I+Si;*A!t0-Z{sCGAs)oJ2y>KFjgoF?9Z@9jnfy)B;7A;e$mZ6qK6>cJ*xmo zSgDBESRt>Yog|i}s}o835RcGi!V`%DeGN$A3F_+7b+I}do>1%&*h3n|ryDrE<08ha zXVhU;_L06Hltb!__QK45T|*UB(TgImqn*F+)rI^l6K9~}e!W4d9wzYweZS&`Ut(nB zV^bk$uYfvr1c}IKq*jko$aYe+LPrUkOvJ@XO^ujlcCj}#keK~5UNoov*}+UmKfX3g zB!_-&La?N;ti1e7(s}q4cTw0Qt?)$186KHO!v!y?y>@OSc2z-A|Mg2X&LD(ZLN7<{ zCJ50KY7k@1emcP)Ki*2wrEKmM%`PnkrKImh+wb4M>+9=p&`ALUQuL@oCs!>iNGer< zF)J@mzub<7Mv^fC6aq~)VuTFvRvH>HGW4`4{5zuMDJie_6o9diOQ%J>Ycz~9hAK@$ zNvW`{%5>XrkT6|+XfF88L^TV3&S`>y`t#>E5GyWKDw#XGy9_8N7ng4X7Q!|_27xls zVZz(J&DP%crFG6BjtJB*KLZ8E2px_gw9_e9T`4#jplxM|gcNBYTnLTkDXpaY6`@}XKdBU}`(@z_5g;ikIfULK5!DB2 zp3v|Z&H8jD=ud1}Uxw9UUY+vjcF4${r&Pz4CT-S=-FtB^j@K5f#-^sVEdx3f3ukZe z|3OCY+iA9z7N5&fyNx9|zZ%Z|b9tW-v2wZDs!D=R4Nrtkt8gVxlC30TH9uqZx3wDW zGdXJ4#LbOmcJZXLwIhw{KV-cv`u?wnZ_IcEgi0Wr3g@OibSe}#kR=_L5ElKYJf+J0 z{7S|sJU;n_|6_dzr0(4Y=q_5@+T;`!8BoKkd%!a-E>1mf+V)f)tE{T(zslA=YQ>L` z0ogIs;Ol?|oDUvo7ogrud>Il>v;jf9US=B-4u)?LP8gK0kxC8wVz!eBav0YZlaVe$ zMtv06+=N^wdQ^LX zTrOR-8{Qit=NQ^lDxq2G@ z$a&%!lojcaI}9j%G9FZtT>X($Y5~+gA)#3DNEvz%x(o|?Y|~JLQO0P2pd_c9wKvjl zUKzwpH~14!@Phz#vN7EN7$kM-xx0BH-83@;s>O(>Xk>hqY(fG;1lnpjIl1fLyCEbb zynTDl^<<|e8ae?}PuZx&Fdq?4tIQH>eNL|x-6m>v z??={@2V~{tdv6u59NNC?SnaFKD#NczO`QQ;jv+v(qnaUCI4wSLaw>)wC(>z__e~Ig zR^|QE-PN_Yv=o=(eWT&gjmduh%^`gsubCi$K2_O_{v7=}Z{TXRat4if#DHHC8=#GD z*Nj?SSxFmtATJ-tC4j_|*rkH@8j=jq8O^>R{=!b<;o{PwC`DaEPoe}N7LOi~lBhD@ zg1*2hzlh0+Hm}u4*kvU~F5N*(^IrHsOxOM$qm0h%Tl-Pnx595d|!c zYqnXG^x@nN)(=J9hMpC0C5UATjE)`c#}PB!gR4nI^U5MmnQxH?nLyzP#xPY}kKQi0 z9j(@*k!h0z_!)F58MidCy%&2@fC~eY15a#+8Q)%?u=GwA4-INYFrt+{qVwPAg2?_xZ|eoYtigpaz?B>V#UL$m~q1Dtyh*|}`I;nHd8(@%$y+|?g>s^NEd#GFCohjiG<$sbs`?FB4?Wxj zVdo{#br>K_&7b$9a7}R7Y$$=6`%)mN%1KX3d5F|B& z`7Qd0tY$Fld;>u+`exNc?$9z04OC1M2{?POnogasUcD+Z?e0^zw6IvLhg2ROP89b; zgDom|-xgdF#dfg@UsPGBcvUU(XUhkuiO*mtjdZ03Kllnuza>Gl}wNb zt+RWWV-=e0DLc-g1bedRNTh9pw6ZVacTJXm|XL%0tsiNYw ziE7Jlt7*Bp!FQSfX8?hvl36_V{z$rPLEXbcga&1-32NP_if~c#&h)?bKa4dXx6{qQ zgSYo&Dv^{FslVoV6It8JJz_lWC3Bn?;bDDTH`gg8)oU!L=TRiaJ5so2(_UGXqkYyn z#)i5rORd}eoH$Ouu0N`9^-V7~?(JUZ=rJdXl-yn94U1}QnxBUBO-k(^A-!A&^W>9u z=(2<*Yy4wqLqHgc*-)ho`}y-HC0L~(%mF-uBkYYzCTIqq?UZwk+oPb#@{mj4nmTtm zyYV`X-&zZx8)!3+X?sCEUx%OSS)7CKV5qMTLmv|%fH~F!8WtMllT}+Epg{r4-DZ62 zqKyWLNBsO`+n?H7gE0bRP!9l{Udut=f9B_jZ{BqL^AiV73{e2|@gL=kp<99jBSXKn zw+H6yGxaC=7wUwkK9`_bW{ za}Cp`VE3o!ZDhQVwlcDsWAOerhOLLV`!@PD4vV5zhAsYiJ)mKR#8oPUVTy)%dz9v+6eSY0iev~cwr`7J7{oL;l~ zh6W%`-IAz9UGuqam_g47aw}vLo>+x)W4)mz(BS&RzHWZ>-+p=;7dMn-mcet<>bCL&G6eCTiV41sF{Ac!Pwm`Wxkh$1xf z(3Ogb)qMMAFm1_>sX~{*yDVq+*Xc7wta4Cw{ye)y4e}jcBu@ zsbd0@^8T%qhO*0gQxCCeR4zaLnx^a}m&Q>(n@Bcn8UEsvXykDNe%-YE1!?5*Qv72H z5BbP_|E66>)oA66erFe#D_8cW7t$9gOkxCe@N_3~<=jgayP&S~cDXYPLQME}#D zSDMCOxOlJq9kR{;G5ZuY*9J{{Pb3#@MJa3u&Iukzz!qmevWC@E#P9r1PzDbH*y6IW!? zI9Cgm@jTuhBsgCZ9PV&El(+F}+FI56Y)NC7>3YV}8)H7Gm>1E-U;ln&1Lt#ZjUxM( zpGE3CJigY=$2#(2VJ!d^)AmnNkFguGXV>bq%W{}Z=qLnL`KE__v^iv5TaM~NI`bx! ztkjy2`8(4-H~O^wCh$HOG*C-I3#63c2#M`vNYsZ*eU+5|bcpvN6<9nU)GZm~Q~b*W z`~C4UL&Mr~UC3Xr@vGVg|6iZ$eZyl=}}j zW-0m1diJM$l4D|I$_zF4j@Rpu27is*Sh;sd!VL1X%erhpT&=AEckzg6GT_#^Eg*tU zkM}vXip{2Ky@&(nfEfFholTDd{_6Ei`T5C$1hwbJ4{u0eR3BXhe=8m;u1JqX!>%5TU(23JyxgY&?L*Q_s_5CqCCVClK2SZ8ZX)C&te# z6@BT-mA-K;+AtlH^nblyPJ3rQ4h>i`QK5kDML2Y-Tvh?Kpk(P#gh0VBEFcdD{)V$o zr%tE=vc0*vnH&6Ic9cWCy$`VsNUuCA!2I}k$P)10x&yy{WownZ|83)idG!tdrVUYv z9&Rk1RiNiQy}YgpV*<3C97E!pI%BUC;Bw?TTU7t2DS6Qae99Fkhyqyod#2h9OYEvjh0xd1Lerc`s>#( ztI=Zgm~EXk*xbs#VqW&Q)?`iIYdK%P=4<5`76^)q>v2T)M}r|5^eIxmfS{mj1O!Z|1PPxr zAg&S<6D>;If&FBO{Pvd!)=yV~CIC88HxCcEEH)Y%1F+bGJ5syUsux7L45i!OSV4p5dk$Oi zdw6(2Y_%KlRMvKyh}ivp)oL_a@KXB8lP5Yl;~>0$QHXT_!$Xdm2neR2NWN?i2I>VU zG|eKDimIxch}yHG<=#~3p%gRDPL9{7TS5pJBt)-=9anUT}j0|{sXXpFu2C$|? z&?UgjO#>ScJOjp@nVA{Qs0r9F1%(b^g|pR`b&(Us1sbqEz%m1C4VquE7JCj7zz>i; zQmNc9ka4twh7}2B2S(I=m1yNmfolU$v$@b4KR-V( zPWl-D2kF6km{j&pbUP0z9`p86!7ld z3$RZASy&jFoKzx#_8jHs2XI|X>^AOWQ&Uqg3$+)5FViUkTo#xy55odij1hD!V*|s^ zZ#X`A5~`H3>=F9(=~KSVYq+?=U;*c}99`WT9@eOIFgG{X&>*EMyN-uPhr%|W0s;hw zMlQXtv(p;vYAC`0$@HKOJOmGXwbnkLT89mWAr9GE3S#P*PQTX#1nE9;Egq!ADJI(EGt z(cB?dSZBpE&;9Yj&gvap@ba!xQz;jjp8=`x=G&9ntCtX8zCK~bzjBcVm?N0VC@d%l zGl&82_R~};p#jShtxl6|uvt?k+E9LP=&0+>Y!c-t|&bQfum zRFG6dVYXgg-q){-E?H16VGsMCE`j8oqN`hxmad-B(jp_wikXA@y~OwZT=nIp zJoh*rTzyY6Y4gafnua=lr$`tb3Zj-snzST1>YO`S_ynF(&!Kl zfZe0{H@Y-`wP2v19L1)|(?f&#$@fU`G+@5?|EZ;DTAme&r8*qc@<0DohWF=^oiFMn z+U-F3dQeyK4qrQ61*Q!?T&^zx#Q}H`mCP&uuH!!^j!69;#{C6jJtF_7i~)9H-*R&& zff#=vy(t|U6Ql9;DR<9P{A$YrYCVtD`_XxBz96$eW;J{9@|FDE>VCa4+lq_cYxs9z z{LRM>s8EpBV4*9y!2AbOBXiEWG?0JQvUYj!GPAPAs@=BJpR?>tm*kEmIf-)R zJ|(e2czd4#^H2`&i1C&|8OZ&nE@)b{I&Are&2f4RaZW8WQLC%(&+(`3%f;^{i@nm+ z45(j2LtvfT2A|UxJaDd8=?eV~gKQXW-0HNg>E{p4dy9d2JuG zRD%P67*j_|EF!^itCRtgR{yUHm7taptAPuJ!AqSCQooTZq^-R@cLP@u%%Aa^fQh~T ziy~*u4pFnc$KFaN;F+;i(82&)IE~w3$Z~LC$;pAeNwd<)9Husakr=Rm`7B+Sk&~hS z4(_U-f;RTg=*WK&MlOFKg;n0BGc<)|j zVPUxO2*7uYZxD>)V`bfDd}`|I@NE$J{kF`gr1!L#jbLJ6h*e;ekf?)R2UvTA%#aP} zS-=Lt&VyHgKy>5#kGEHW2!U)Fo0zBzf>Tr!#`jlWj{w^YeD306KFF((-1x}ZiQ9t& zCI!uU?jmGdT=oDT=BQah7b};pRbbc%2+#Kk;0z$?1%vx7N|Rop;`AN+nhkfq*V3~`v6k^*Y#LuPs=rUfYSka99rL3bO6`~lXF&Q5j?j=yB# z5wK|Yv7p##@-2)n39B?yb^kxOjRwI#fpv1>@|ZagZa+* zg@uLagal9M>3}L)n4c#?fZ7FKN0@BVhl~IC(TIzb)K9bAZaUwfA%P{`iggG8D+g+5C*j*|CH|U0%Kaf4s)wSj#1rY>{X{wc?VDA$U zh@L42<8)(F6A^;w=FOQuf56;pTcDBT`UfWkg~$Is*9B@<^ToG!il@AftsNbU;99_- z40A+PVjZaWK@B_K`+9FL{Xxu*WlZh~8}bsbnU;2MCnL%h=hA#eainA%$o zz-fNoq-sLk{?AX~qJd%tQTz0-*l9<(562EOc?e`|^n@fhbVZ^F9l%>X*y^(4x^XQ5Z8^RCOTz|)j*1YQwsqvJvzJ1g4+8qFE#)jzB z`1lFrN@xg@7KXAl8@4^4KJ5kD06Nav+FI#xj&_+1|W1RxT27)D_fq~|M43j^H?y%BhFz}A0udhC`2?lgVR&C5abU>$~{D>l&g>?s7s zs=B_HF+Z47z`SD$d#XGU9v64C?sHz1mWGPj19wAIbhL=eW!(ihcRN3hc9*YRxoG_x zY~F53>nkgs`x8iZV!ZBc_-O3R%yziD&^x$PP1uy-1s%b~fm5l&p0axzs9_POMM8L9 zsTIWVt%=!o&bl-M?4{-9ASt@;ZHe;}-qldd=n$OFo#)M7oAArayY4AMy2mt}oa2$A7~lT zH^7v3n0$WXzi@Em?=XNvE_dq zrB;d)6r#ESR{3eqz+zw)T+G ziV3=ku4N_JFl(HKEP=S0a2hI%MH8KB5PC*_jp+ZVC1Vdsl@ zhz$*YaV~JXwzjsydz7T4GRqFPZr%D>$ktv66$1DNr)jWUkonoOnL@i<+zJErCx_cg z7iC}y*y+Fx1VsdmS8oZmQnEOVsT+}RKnINSj*_8=w)Mq`jrc32MBzp*{L^a>bJQ^R zRA2~Caxohcclx<~0_HI@QE>g;Fmw^Vn^^j}Ztq>=A51HG`*v>(s1j_%f$1t}H~{i; za*J``?9SK}S@K9tfQsJ3Jr82~u6GO$Fi~i1docdVrGFL?=Hd!3kRu@nVaV6B89R`!44Ew9HhRQr|0LT+{H%|ovMbw;tnOp zOt-k$W>?i0#@N-e7*NcSav1{K;!!<#@a{wbFpjb6BI5Pd+RW^QW>jrt5S2(N#9*{6 zTeM5mDff#g?C;Ld+2Dj|Mmbl zn7hy7&eE0{gb;8UWB-{l#gW4So?n2e&}uwkh8a0&pF$FioIx-N3=IzQ;6o{3@hn4Y zbwT$7^VcuANEiLZI_oZj%mn~Uv>OKO(p5(GUsbJMotAmRd<#r&CQtdYmfOtufFs?2 zNx>9lD3{=(M>C3c@2lE!iWHBX4#;;*+zC~R?^%y3wsTKRSIU5`K7!jM;Lw0|*d!~> ze`2CpN|#HuZ`**8Fp3MG4%Nwp-|0`efBi6L3TCR^r}CpYDqq+l;r0!sFMhlM{%92_ zTBs^zQ{Eont%F?Ac>|;sK8nQ0iNn77#iEInF$>a@_ zBS}d~us3k)i?1_T7+q0=4LNRqwY~6oe|ZtGW z8}U11VB8ZIKZEkgh_V7^9##^D2pLhHP)MA7f$2L3_ZQsn0sc5~?sNOK3uRV`kzCUC ze}C*+yuXu#-Vv)CYvJ5OEorH)GYBT3QH0Z@&j8&p$VY+8%4V{91a6{`qXuIRy_pL& z>O(n!!l+#H81UJ5!Jw*{iNXT?4o@F38JQcPKzCMV7~Aw|rQ$XO6vwpUBGPPM-%QkA z2pzjqCva%VBFJD4>VFLyA+8Pp$O9Aa(CBSkU!{y94Yp{qoVzS6OBf=6FtE{KWtjWO zKKBW8Wmi=>--L_2@-5uQ;IF2Zhr1o@cqQJg^FV^PSrEsj*Pab}KjY2)) zL<*yi&dx|3gyb{)lwLIKZx2mOuB~*e;Up!-$1Y3*sgjR&+8h4B`uYJd1|y5U4*}sr z0oTgt-;Etj??;2YtIBdez7r0uRVr{+j~-q0us$!^3car^Bh%8^X)Le?z-C35U>1N2 zWd8^zWfNO~IL-EKQDWXF<*Rkp{!GrUkMb1GInz!vD4XHn5rrvbh`4RhQ}jERV7 zs6~Op`E7Op_h+eVZf?>$_Z?kb;T9m)KVi5R=8qeM>^9{2p4g(skR^Uk*?s!UT$i2)} zw|aeDOGih?#s*li{K)zIdAg&wg$0}z8$`o-MlewR4nlwUIV8vISV-&>6BAbaV1th7 zoCk=SpL%psBy=D#RBD00&AJo8KPrwHZ|1)?P8La44~D|w;>|2O4%5TB^J9rp+#idl zU=z?Tu^6~ZSDYKOTEACU52nr1dmVN&i%UzRaC?UV3kVW$22;;!Hy`oy+fHT=Sb+Ti ziXxDO&?yW9B<>Pfhe8K|H+luhp;K-Lx&iQ8nX042%b0O8V1*{3LxDMYG`hmD5!c^T zSy2(#VkGo!tLinR=GNBGUco&YP61ozlQ%Ut-+T&##L$#Zxi9CytSY>+-bgydY$1N} zHe@UT>ro(ziUC0X2%K}9Y;2r^ZW1_7IFiuoo!Roz(aivA6L((vsFedf7gaSgap5p$ zZ2iy1M&JpmPxr=HB3ankgBtsReFC@xEkR_f5#W!~j8w2rc%JSK!T4Ayt`Rj@Nnstd zYTWNrklSc`HKu^6H#avIBjSO5Vc`93R>-7hn;|}ciom-$_MPZ|38o8FV9!lgfl4 zp3H$IFx5N8h}FK;r}fxVG=l?eVNrN)Vo@>*bpZ&_lqaO5q~$O|OdAJ7pm0lzdy#T) z-@I9=O9p}x_7e1sJ5QPewv%0voqF1*V*kNIc*Ajg1X3 z^9Rp(1D6DiCQvpJ3y0v;@Wmq;#RUh?+Y`r5{BsD#rfWWw!*K71j9xR>B!O53E8%t! zU>X`4n)&KsQLkUWZX&^;V~_Ge_c4?*&)-hifgVCZS(yMAmmDn{OYMlVwj`%rp#c)~ zBuzcN#t&|tQg`qNuar^XLmxOB<{aF>wesL@584Tu{5p(1=5-Svf%)#z0Nj+r^!)y> z7lfF>1bNOHryR?Fuq1?6hS)vm78~w7oy0YLDD}30x8sYDy&VhI2Pvquz|&Cl+CWed zx4$!?9c5)_ceb~G=qjc{7Z;C>CBVbf;p7xkX838KCHBnxMriN%>9#!}K-yYcZ{YfZ z@0qrDE`H#AbkCgg`1P1!K{Y5qz#SxLu;u3DoI-U-hMNt*h%;DsU@k%o+`^?_u6g@F zaDaaNYh)x-EsKOxuS2-wiY(kP?d2@E&ta%d9Ga|Vd)hE&xTnsikHl}GVbH1bu2E$< z9qIPwCyu;?h2x7GUEg7{Kv#Z;`1u7wa>LhI#g7D{%i>P(Oy96yB3QQ_!Q!BV=Tr9bMP&a zaOhxPzdl)o%nJ-`hf#N^W|crJ!aWL9Xu}Q;55-P48hBzcMHvV*UEn$_EtmhYj;WZ2 z1x6|g8U@{wkgnFNW9>@pw{TDYPQEwP*TX0cxaU||Sz*k;!qQTjukQ<(NyDV?*gHCc zd^isJ6x@~NYp^-g~jgncDzTD3C7?DA^>KJ84pIve3mjZ z5>%2YLW`tM|M~9Rjbj|-AQ5mv=b4~7N} zJm4lKBME6xP|W+k6kHaRCO3d-*|EVUTN|6f<=sbLgfN74d6-ZNL6y(s`yc9b)XePl z@4B2%jrkVq3TwPZuctg|=~~Ai6d7bAv z*IH*Q)vwMUKYpNszAnOuSV2ph;kIxyp+OfAU*3{WWs!iI8*eqD74K0jeKQGy;U;@My*3aB zkb0s;i%bep+wU3xZQw9i2Iyh&(i1vak7$18I5&qEbykxr{gY3m7c2vcWXPJ1lVH1N z`v3{JKEF|#$%7WF^~q9dkXj*OShkqv;DCe`)^kYa->aXzFp!8Ql02&mCp-ITu$2u9 zVVvyaRVp6u2d`WU z*RfZxTn<>)_t8kuoRc_OIYRJwUX<4ViuvlaPy`M` zcVUXA?NyNkOafH`N%8H|et{7Oe$nnW0HJV>K@x6}vNGym&QP&Tp~!o?dHn;sTWb2cy`{cA&xN(dSq;@wdI$HPCuh z1Zp3!ISR(I+M3&puZm>IPy}+u>TKMy*ijVmI9(Cb!!1%qOPK>g%nmA|(M=>HQB&O1h!Y zPc-vs`rLhftX7r;8uvdtJQeUX=j!lN2KSKVY(79phP8Zq#k1r>|EAk!U>lqcFBlEv zcF^3|cLfZM?Cdb&X@KwVu`oF){1V$JNwYdVbhjCap$2z$0POvdk?PKq1yodO!-IqH ztpxH}&3_I>yp`1`I~Sw=M!?ninE7I(v#heDQ?*D>+T!)L-#OTE+M_vZ+nJQdp=Z=0 z#p~MJzr}S>R?O86ugkfzkbUw)OBcHQ*{Tg%c;{u#y4;0`$?(DZNZB6U$IL17A7g5Jo?46j+3c)Qg2V`dM#I{&=1x zs(K)_N&5WIv=L!xd;Xt$!!dQ=JkOl=S+JZu>-*It4VkWTxKNo6Pw8^-RIoxEozvkhCwo*Uz#FM@JTW z1IPY&(aO!NQle*Q-(M9O$-Kh6Y5P56u*ARw+U(7K;zTIlN=!&dJruYw1+5>t9gTu> z94+PMKOfPmN%L#)*h^0MnjlgEf<;=2+Fo8qhe2;J#uvx#!dP2{+;1stN2(c?*(p%v zzD0-$h>O4Q)z#G%wQl{Qsb$V@SdjDg=xY7(gFRRQt?AI`&&$6&rZ4pQXVvhDAEH9uJgCZB; zaEjO3h`&J5*ZKAW7YAkKfVGm3guVlsiWaNqm1YFfDj{J+Q1}9+=U+Zva&GXsW(a_Y z3{Ck6P@*p24&=+%i`0Vd{4bKLbGmr+=tMqK;3WD22!=!}>4B^rAWx99fHPk%{;~;G z0|L6o<`W!%;@XiUB8wgw8>@NlZvSH9pU0phf;dcX3>&xE@RD?R`2nzir41{*E;BPv z@bRJ54_LLA0Dz##PB&LFH0*>m8Ht3pKJmk=39k=CzCyG+$Q6k<16xHTIS>f}h(ex5 zxUzZZYT?Bj7_2p$K86z}GT7}~w}Krw-kJ$A(E^;Z#)pP<@|}`A@{vA((~Z1MTU#5J zJSizQxJy*XXvo0&arYCo&&IF4$H#91)Z;Yq zFtxB9S#@jK!^(8ohZ*0!00g+WNJNMjAeZJU86O=ryIg`VY(BMsLYhbkc5*{FibrTw z3))!Lg=c(+KAo=IHyX0fmbv1t8{p-!v5w-Wc-UBjC_kYuC@a&@)ZB~wTw-P0=~owK zV;Wc)8LO^NA{oaG2C|s=r;=C2{}vQGgNi5NO>uFt$IC6=r=L7|0&?58W5OT=rD=b= zT9n~(%4(N8l&Po1{L!q2Iv;lj&B)<^0~fbH`kX@8AbiR^kuE)o?S(GF)TyqvHpy=i zWpc4~CTXcTk)Aovi>$X@4(heC{O!P8A)C<6MfE2`UuL&Wlvl1k-&$izd@+6%~v*O0L1Gdd5RD%1{z zZVP*ZTdaZt0|5Y@s%=YtbLqX=h(-%?8IWicV(WH1C_%X@TJ;u+*ZIq5W88P$<77O* zS#!qTej3Cf^m?JRfu?=M$jiwe=B~_!PI_r5_&3nshWSt=aLVXt=~c>oXAOzG^p2(F zRvIUB^L`|>JPoF-Gt}h;zy81pQkxTmeydjlV)LT6CbzX16 z(&V^-;~zRxlrp}6CR&JlTU? z!|*-)pV79z{p2IBAr8{>iuVY*v$(j3QiCSA?%Fr#hz4qxsc6Y()uc|7kT|2uU|h=j zQFqLCnne&z@GyP@@X&zL{h7Il7igW`k!4c$2v&+2WDtsFp*@*2XDk{)t|%i{suYJV zL9_UCiv9c|Vqyz61|}vP5tND~z;dH?htUW{5oV3f!qDZo3*58w^9a1KZ8S@gbe-j9 z;t+arkaoBDv&hH-1Rk)UvaaGWSmF3#QZDiAnVg!U*|BxkgS!UFXwi$hmzA3drB#E< z251fRGGC$ph_^{Jv&JAs{0|t??sz9>=NOoLp^2+;EEJ6rzNk<<3744xunCGmtpSw} zA+1#3q}I6S4)AuH){h{D_|8QOA@~C-BU-t$u2OnRW?$XODVY|LI~}GEYJ7!^2Q9yi_2l-S;7`}8PmHCF(VfMbVaDr>Q`$Ptw!Z1zwlBPV}# z0VEiBapGF6VY7;^CNeodTB&LutBL&}=@hWr5-sv}9PwC5+jGC3J;G?qef+o`(kPer)GC6Bs3%&FhkO{}B$wLgtFPx-UHlED-z)ARuvZ z10cWv%c}hTJvk+1zdu2;rQW&o;A>DOaiAwntagTpXHwG)6}#8#zf_{n5EM~e|HQ+&k6|Hk&`i;x<+y{n_w)m= zk)EH!Fo*wlMnJLaQIyw=zSoOBk877X~@Ze9Y4CJ7JyvRxMoB z!^S%A6O*f1bu^8fDkq0!{kFBZrX=hA65*G!`pz3$G1AN>uD_jqoZCyH#&dU_m9j?c5WYMYr$uG1e1niwn;`$f_O-<8ymRH?pYj<))ssDsje^k|sRp zX2vfq#W-_@qIL4F*t#fz&`$fXYd<5qy^M)hdQ~yFzzF5Tz zKIE!`=Y-O9#rij@6ET%qr`AvIy#KIfLy%=zQE21f%H5i`@}b2`q~B~erRO|q-D;0U zyJ#H~#B;x*5UZ>_H}eA8M|08M-u~RVZ8R>fuJrr% z!Dt>^tubEuQlozZ=blGB@q2^Ct&85izQcQ!V{ecer}vYsvc_hQGGqP5cmq`F%HOsH z(W!;YZ$3z~^Q=iy&76lK{o=!&tEGMl2lkca-rjNOvM>HrlWoY!F;aGH?|ITrF`D2j z`l;M5aqlO|Brn+4o8bAdJFZL|-OQoTElYa+;=KDxzv8a)Z97fl_XK|uP(HwDlPoUr zHTUm>cqaG5rz1x3t%<)thus2mA_ z9p}b03p`SZyvujc1$qqHI^+kQvw!Lc{OH)R8wfgHK2tE96qMkyT^UJl;<>j7OD7k<&6Ny;~#o&E0DBct;B& zBf_jLyz|AnTBc(%wo+<}HEmFN9A{~{dhFEcFEb|tKb7^$3_50veae03qLQz{&iqGz zqm262gTFT^c*s9B_tn6++?W<#*z!oes`##hxmEi1UvAy5 z?tlG}CClTs3e({5@!z>yWjk*a7FcADy}PLL3`jj$P93UlUwwWXYikxWA8ba{*7OX3 zHRoq%DbpQfWlK;H!4KT;U2JTrNgC>`;ahpAUWhaf_RbJALR2pzlG=o~G4Mqg$ zaec88b#`(}kM&jH-naa>Gbrtt3~39PIR$}t@7M}4)WjEYarC$#EOPW@vTRn9*}G#Y zS@UvT_h+RXp}W7Y2{C+&r=|(cT)LY(c}M*EfbH;A0KZ$4SvfC1t-MlIvpzB3=s)oE z5XsD1+~U2&p+_&pf8=iM^lrpk_f_6bD@j2Ue`~~ngLpv)zIcrKt6UY>8JFJU2ED`a_L2 zRnqIlTfMJR^1ZUvPfl#ID<3oc>4YbFXJm&3lgHGdS@erg;00b`*mEZhG`OCzF%P1j z1vp18H`l{qCh!IyP)hvzvxVkg0i$r>jm)Anf{$xyKu8kE?gXD<`)~hru;ky_C`Sm8 z7QepV-|_Esneb$}`yCm}Vb7~Vw7UOIg__#6&ow_!cNZF#*YV9vE?9^W&~G{K)>LFB zp(Rp9=;z4D0)91qp5*yLX5oOx^^{=mN{+}ZEzC8PHn zJt{?7Jd@N~rzUqD)%X3XZ~rTGET+JaYjW4Kt~JZ=Ja>F=c@-$RuJkSobnQ8(vQN$E zM)R^-Sw=!&mzVL$EPvlc)}&8m22-nyhD~pc7UY#o`E@|*02?HZrE8rJjY_N&^pZss!5CGI`v zU?6V^{eL;VB1=2oD8&fTjb1)ACmL^Wp@;2tG{!52(|+xt3%{Z5gbs3K|4p3iwP=Z=Rg&c}7Lafd%YcWIklBsYIetG+xbuHNTM zrLazMCb!EG8XW;mTAFZ`pKYv%!_&PE4$!)ZtFkLbsgS*btb6JqId$mJ_~Rr2FDN00um&HGPuwFs^L?LLuFn%$2j1z8Exv9kBL zM9KZ`Ilj6@qG@B4ch5AvFwImHUt~m+m$U6m7J}~PLw*XsS(=Nt;uUrk$t{iMhjnEc zij1y*X|0oG)?u{t8zeuOnK@F-)$=UbOf)zx%vU_L&C7Z34j2D$CQmowmdUmY-rdoL z!=53xDS(P6~O*mv4Hfvc;*b&2=nZa)%da7Lkzl@Rgs zJ}CsExJVh>ljHhC`TUW4N5xjAr#d$wqp39GJD|uaDm|*8fSC7gvJSq0|{JHlI0bSM{XQ`(O>;`>$ z&O7*YnGrwlPB7ycwyfJdyq7;0jfaKp)R#J(@jN1E>ZyL%7o@f)Be-Qtr246T&7#7zmB$NDPP0FXT+fS@f0{ z+(L#~7l>O@v!1w0+uq8Wnz4-j8)hnhTYWip?El-CwCCT6SK_q)+nQ|We~)?p`@r`9 zf5?9g_9VdFO?gygGMg5ah_l44v$J!H2dBNWbMZ?J;xEW@ij4mj#$o=Iigh2 zA^^B?fg2LyFvYhaM^qSV=u)%azWURUZZM%%VEOu_udgm;NAb~4MUo{~M{nZgfM004 zz>M{QEXElH`1|J%#YKQf1$l9*S>@BZeU|CEo$pr1>nXTYYnOJnr6;{woXOjqs~}5C z`SP7w{hbkS%kwV7gguY^uDy2qG10rfm8z@d_CV;*Q9GgiLE;>F0wUHrr>CzC3;U)$ zN+pD_s9hk_2)ejr`lg^Da&QSeH%o)yc?*%$D0-wo`p6fBss_ZO06Njx`0?X{4~-KDamB?O*Ep>1HLPB$oL7rKwdc)+Vm%LA zm72Q!rUUCXQ(4YW!_K`c=t^9@d3G$VqFimoZE0Pn_w{pf)l==dYlG8;mX{~8LTwWZ z=O^e^x>T2RKHi9Yke!??J^R%!Fd|NxbKriK$GTx!SC!s|*wycJO(DLJM`O5x9S7mg z2rC$jnh<>Xlex9=f_~if0Ef8@>!p|;KH)+R>TFGkHT_a`prhdI1L8+102@bi9?%DX z&lP@Me7+hsUAXh+`sN^0o86i-mKF=6)$W&$KK0bpnyht@NIAm$QzrobRb1HNs4e@j zX;Ca>oc%S0)R_Nc&nNvdXTAhh-U&L$F>16ntOX_6W^arILAPH99$SF=OfOPf91kY| zFf0|Ib4NnTzI+LoMz`JxX!+U!Rys7Hk}kc+U9{-o(tuUA-OL|rZG3cmrjf2f+U3N$ z=q9d3`G(K5Ec?G~?%wA(Sv^Hzwt0%jqA2P&eX0oi(1(UWbl5-};^g@2<|7_-IiZ25 z{cVF9ZeTzUfkxSg9H1n+j@rCOV8cX@{ldsNoY*RQ;skcf&Icv0oVSrJ1|Nq=C8Om= zW_mUd%0sX3-n|Q+K0rSJ4LOO4iErMJU=~DrjX#1=07W>E_w$@jiTWuo@#s+-5oQtH*4q1Hg`8&W@F%TJjfvv-uBi|#nCw- zLA%`b{r=^{tH~lOX;bx7*%}+7H(6;^7It~1ndv<)d$&hXd*{YU=f#$hR6k$)EGGYapBMMqd}MM`g^9B5oSTH_ z=WC3ZpXU;tt($~(0k#B)aHLysB7h7)z^G^yy-6q+NRU>)E%V=B@z)e;7QzHlAIO1V zJbR!1Jy}FsCveE(=((R=F-y-2>FhT@P6YEZ|mU}(G0O40-_skNMXtvTD(`U#>u|AvS9NJy@uDZ zvGPXW=d6{^Ui^4NKc{MiRPo^Lrt@A(x+dL8#r&=5Me~cX#teAg+Rs-e9(Yb&`mDhi z`V54zr%z=`m}iiK?x&8~DP=Tig@x6HT zX{8w^YY}8Uh|$l=%HqeP4GvFFbY!2SJrGg}ZxM)R955&lvM5k|j$V$#-Jtpb-xqGS zscP5JBE^uw$B!Q26@ndg1Z$EP_F@)do9uWC#?ubS6x#M=r_H?Ft;_bFV&#|K>l>oi zR0_&U^sEnN`e@gg{Gqz2KYloI^yc|nGuZ;dWm2j7ZQnRX$HE@Tz zDNvnIJFcLA3)&$JoSjjwf)`7^Z5v2%miQm&M}WMqEzc!rCcT7Iy;SxY$IuhK0|$2= z%ZunzSqgtbYvzu*3WxbTxUGh!1LDYJ6m=WF5eASNwc=`6m^p*m^u ztv#lHy-jW4>c^K&YPm7KAFr0aoRQa~?67~e7do*@M-1Qw+k`1MQ?vtwU-qvYS1)18KnyL3@0bLMSDOH zMf(PXhF)=gm^Q!(x`;baE(G%1;9z6H1L(!YtHr32K#zgk2i}j>)$sDxVc!FLLp&9j zY;Y(lE1NZS4-5b0fR8pkeDj8LzFrUgU$leEOu*wnJ5uvlDCpSx_Z#KiIuDN?=P@W4 zW8i=ff67-Elq1E_DuFKt)Ov=mE?`a)7bhod_C7}}X>?R>1cob-LVkt$)7h3(4nL_H zr{|b{!cB{E-!l2d1e3EP|JT#Y+4$~kxa0vkzmW-ZiGNM{@PN>@fQYlDNOoQya?_3u zsNxL_3|5Smq_@FU_}TO4iky4r+0k{23JbH45s!yKF03wL){LfcjPx3qRzQ%!_23A; z2En9#?&`1s3ruOiQg|L2sgDPH`7$Ap25QB1@Zjfp=&wQl%DTX91=3^J;TCz&V9>+I zQh~8sv#*Ni;+I!WvExG}DdW4MpY^c5Xmg6@inh+)E5IJ)dwacDa)x>5=t=V$XyevR zIe4Z@HUgw_e$)rkJ(-Qq$lrMS;zWU^?E|#FAwKt2;1A2#fOAkTFn^B5s9L99@nk%J zqZ@}v?+OlYrlH9_-;&`4J|??%Iiv}@bz+uNZxYqo&gacOA@jW}>Ku;8KhO7sD-RU6YU zqa>TGMA;%IUzLO)gQzyzjCpV9%>$)En;*3CN>E8K&m?lj zOMx*Coz`4^Y521Q$~gdv1!)7QcBU?L%9u%j%>rsJLNUe*!BrE48}T4X&sA|r7SdPqWlWOW%ZYV3+@GD|gRMqt9 z%Wl$d+tFrBd_1Tk$WS2s{d@&;BhbX1URc01!~^dl0b3>~!)Zk&DA_$`vrnQ193Vj;3J8E0 z7{exR`%i6J*2V>^d&=NO;1h9gkV(U_M&hd(v6j1OnPMno?EKY4XaYk%yqpd5%DMT| z(&G)ki7GeUqg(W`m$=jRcHR8pQoYXf@mzj@WQ)%JHy7HnBF78Fg{SR}+GxAOjTLL< zRjpQYj!by}n7ybUeNa4rd2!?ZdUcpUn8HKWF+mR5eBoUiw9eBc6K~tKXDi>YF;Zu# z^VP0Q_Es)zuj)uy*9&dBg_F%MsdM!54W)V*pngX z(Kx+;pU~-XRg!Swq2hOv=SdXqy)E$}4F{R+k{;eP3cuGCS@`yYNbL{Pu}sr_#?)&w z6+9^g(|=+gcLEZIj%8G98ciO=#5A9z+1XnhdA8lMV13HI!dm5c4J~BjVcvbaAQ{BN zk|lw&2dM+q%4$>@TvDkO(FPO`LZ*L+13}TtYXerm9C^2=IGENkl?tH(CrisZEFPiq zMk~J7cLt&C&Klq+GV7ls zTwZ0D8m)H)E4PFx#(OR-l*!9{ouo7kdFjWk-hDCFk}01@n3+oN!=?8)7(ePJon}99 z>NS`i1fvOVr=UyS95ER8>i03a;syE(`yQ~sKHtcM%*TR@gz586PiyBn0e2>}E^}@T7pV=$iZ?j2t-0LX)-;=JyACn7IO-p-%g1KJd@k zUxQHuN8ycv4ZQ+ujoU{kQvA5}`#UU;r?IJKi$q5E(w-#=7jR^W?W3(*kDKOPI351G zc*9F-pXglFhkF(xfh4o;qzMf+db_)nwSsL_II^>MDv2732e&zOR)$&KM#7DH&<}i- z)bCap#*F6fpIiMMHEjZ+U-FlecEzv`4(l~^2)+DC^a;W6bPD66SF*I^SK&e-cM$a8Q-^8G5! zXnqZJyU% zGwY3+buApb)XeJW>gI;im7o%K!uHrH$K$@(ZQ=Zy?V%kx?~tidto2ALOHF97xW1ij z)1sxP30CAB6Q%BWB^k$@CBnT^vyb&5}|%`I0hv@AFov1E6; z@-RKK5(;m=(15Z;GID4!`_Y<@-Ur561A*sOA-hOk=k-@ddXly$r*kMF~JA}9j3bIqR&@ZUH5cIAwhe0e>C|uyI zv=tD{(X~RK3(_<&`4SR%^uGM)_TYL=9+Wa6IR7H?d6|4CwT5d^RKciLu$XhDzukZ5 z0?6o2hAVP+i;p{}%}DgHQpC*5l<7TS=IYz(6_NU;)>^97$#W`r!OxdV_s{;Ap%a=L z4OC(r`}|0_%MoH!RQ(X90c#5!E#2-7_B&3lHn}$5QcPv#IEi`-s}LS4BLy!de-90{ z{P=Oj{|rO8@>Tz6KTKRePMcM9AFJ=xQ;&Tht{vF32Rls=^BPvxiLMmpmb0p_#TmAnZ523B~?-+@&{w}$q*SzS@vZ$(ZoM;nYW zv5t=B8&6sQ)XYkhvDc{YVj8TNZri<9#(SQTG?JLdSv?YB3>cb(s#Jz1{l`Sd~*^vST9UkevS zFsWT`-zLVd&mT?|&o3T~z3C!7Om4i;7{Th0Ge~m$u`-xKOFQ@)6qt+{(HD3x z$$HuRAPgnu-$p?SaRn^(b(pUU9-!QQ58D}J#*|8N($1GzrEhE@fgMXHA8p;}`P3Tr* zx0jh1%Y39E<`;oKlcdR0J2QImsV~X~_-{abG0GY^y1VlmS#DcdC%>@G;nzLM+oQ@9 zNJkR-tNr8mcJQnHP8zyST{O%><{?fD+B7C;#iIm=&zBArkSsQ3`h@VBx)q=SGaZlfUfeU-~ovD zqrKK$yiY^x740$Kf@KG{z2CpDtZ*eo+|0XrP;uJZ^|N{;EpKC4BiBcP2L}iQmF2KQ^!}Jh zNffV8+HF)V2nY%arlzG$ee&J{+k)EK6zo?uZ;&FfX+gjO2!ad^#)a&A0+_^tq;`Qn z_DPM(f{9Pi38X6{%v#2|O0m^6KbcdXCt`S);)$^J0~6wFD)|?)MV!ZyhZ06D!U>Fi z^-aq|T9^~fFa5c3zW`%j@jygNMn;-hyesKi2ZlGru@-B2ELKh`-*3W~+ul3SCOwKv z#xaEyPkQE?u$J+0N#c|4B$z&t9!)r|NDvjsexGy*l>gVcw_W`IqJ82wTO8?ci)%@!W@g6d# z@9n_O$M7Y?gb$z8XliFL_;Ju>|NgN5_*(o0)5Wq1#H>ZNaRZ%f-S~qAb6l<2B?n__C``)W2{wd;^dQmpZ%v31HHX7K-Blq(>pmj&Mm!z zToc2ie6b@j-QMSND^AfRA28=~b&F7~D6Wu_AyO z^`E3Hfis7+J7O(uu=+6!HOjq9E{^69VH*2kjn{q~*!_@5ctRGu_aZ=ePtPLNco>+0 z536wg{6R3YiGn&W?_@#)W+p-jVgeBuX3K(ok7~cHlacZv=<*$28*5GPj^dHq9ySxw zQBkRZ{S$fD7{CM8^mi~jqc=>^&;6NI2OhOIIcxLB>z9#xLjwUfJ$aq(&w*LgD^11g zj^Js_%U1y48yp&vAjU{jgRc)l=2aTezg|lofZb9&0iSkucA|14fnlnSv0Ct7NHFp_ z1GW9PZ^|4$uZaLKKp5Zkpl4SVVq&TL@BD$h{Cv!eg0U$Eb-k}2LR#zx*B7hK0tt{g zfm0&l7ZrITGXvR%&|J$KSt$7`wD2!)8(D2-^W zW&(t<%~!&RdFT)i8hOk?isvK_oU#6(0^p^Og*3Oe!{ zylui|5Ij;&PE_@8fafEGr^Js7!{uj*=lQbwlFtwNM?8qp5&O#OO z49`Q$2j2AFIwS``QDF63G7ptZI0QskLwqIC7{q~s1vAIK+i3}L*@7>N2HIH0aS)+V zDQI;*eMM=(M`IY*cb1lShPAul_H8Vm1N@>N+Kd-oD<8parv=usN~&s8M+`0@3S*-} zp^#;c&I=SX?s&j>R5BY&L|(8lq~`Tf$h-=jIm~587Bx6Fwzjd}wV_w!4v*bx&_q4w z5{wEbODHh3Wi#V`RCAW&>wb8GAHz(8F65K;h| z%Nx+0{o1A8NMBO5*{y}527Kg zQ=F_I2=J&)HcXL$9TbEM(Bn7UNP>6cK+;HQb#*o7hVR?=0%E0d;b zcT-V0+1X(jUS4_#93$G`45fCWT%>^Yh-wOLWX=Ay5uIeyPeToObU(T@UQ~PKm5Z=;?~X5ehiw{K?N2Dr-$+-8T46Dao0_G|u+mMJJHL6HZ}M@WOwFHllq zGVgc@n<-bAHfOYqqMA=Auol5UQ9?R)njP#wm9JzpT|0wPX}=$d^sA$TZ_f_xTYm-zwG0h!VjP^iJErHInDD|LLat-kaMA~WDj4xlBBo(<_q%uRpc258qu9EyCo`;3FPvt_ zkhRg1n7#rt42vqMzuuXmctiO~wn2_V z($aWXd7dJkSra)-V{s+3PWLxIGr z&@eKGmM4B;UttfLq`jDPdCZcgJ!*R`2M_x5l|Kk~aA&c>#Lh}Hh*k9+9g$dD-?)K4 zN3MBey``n4Wo9;H$r$7}?ncZ|i;!pFsBu`u3&Nzf7S-+(pD3Y>2f8mewG#9n%j z1qZat-n{e!M9R=}LGSFqp_^`2c_N(d2b;j<@Ijel$w#|y_(VhylsAlDL{q5{eX(^O zHfC|#J7a>4jt4>-maR&S0oB77z?w!Bpzf%x1(C|RLFNZ@3{(a9$=bh?VAR1Etbo{u z69Q4mB260~C=ry9m}n-6BMF-a$t*xK*g+?0w$;_yscgSEdoWZHK?NozD^|`94kOTT zUB3Xcl@|T87Zj6a7JM1$H03J&HR>>1!$vT zi35n5WX9Bd$|+Ki%54wiBYf3h@!uq(?d(+yIMUG!mz7XvH=x)jS+UG-$wsD_g`XQZC99^hi>+HeS>gB$0L&{QP z7Q=u-M`~E8-<4Kiz9@t_mnPCgFWaQjF~l|R zZ-V6hsds9$BR~6f^H^h28~SY0(0M+3KLTnnYLj(an&2{%p{A5ByzY_tqC-C*Oa$oJ zI72gBxsY_OQ7y}GHD`)W>3eqcJJ!G#PknvAW*&wWI|2o!m!qXXh-u(Fj1~D5o*C*z z6NC$7mFzF20=J%kzgmqdSjxbltAFaY>)bE``5IWe+&H&!kch!Sb_?|>!CQZRz)b@Y zsU}>QJO^5CbV^TRZe_|5r*K5&PoF*kBg2)ALmse*WDQTN5ywSU{Ei(vCKnb`xI1vK zAk0RT476bD!XyJy)Ha}8KQIRKQI{Fq=5Vw(P&Xaewsq^RvDSt$C#XGPorbRxvusQ} zFGbYE+171@|0otDaIiD?wr>)Ru*P6582RgFS?QE{HlqfFzD5*K)k2b4KfZru4^T|M(tP-{FE%AdXvHCC6t;Br+` zvT7N)pUsAk+6%qigP_leCjxwl!=Fij~P8m`1Mg$MSzd51D-l? zu3(a+xz5h|xT1GTy}+=gIalNzTZht{Rio|E&z5R%bap7gVvt1Y ziskKCa|Oo9~XR4L1_y^Mf|tpasyBcZ@Cz(Z{s^ zVADt4zjaDNqx{Um!a{kD;VvG0#hljLlB~8dc95Ke%~lu$$xgckPt(`$!>EsSn)VI8{iNaF@v9B+c%$;cY`;A;G{FyJ#aM7pxT`n2 z^oZZTD1S)(fBhGIZY_hz)sRV{8zxtYjF3cnW7lGpg##CMC@1CLT{0f*?~jsjh=bxu z)AGZ=b()XRTzxh==i`hKn@HaXbg+)rlkc}COC%baRsJj`Qg(~?r+gJ zHiVx+&!_vVxPYIJ4{P%}5Z;cPKrSYDszwl&$jQkue2(bPLjR98!kn`5-;04y!dvL_ z5QQCsE|^onjrC1*e`ZB5#tr;INr5Og!u%#DC&zx?6?-2Nltil(wVQbA92{CDCTYJc z8a`GgoS7f*Siz54z;1xfen5_(^U&lT(O-`7(@tVF_}jU>EmZ>?Nqp2s(j*>yKFC9~D9xe&o*? z_~E&Dt&C+uwe7Wpg3EKs{2vV9<>5(y!$)8gfpPgN@Zp0x;#8Qh3!UK$17)oBD0U&jX)7pQbe z79Rf!#m_3oeLf%GcT?AcSi0vM6E|M|%CvHcXkh59Q6%1GK}DZqGjPNfw8b%>22El{ zI=VR`_A(W(kMc7oAKPz8*LTJIk%2I`3zz&46m$8` z6QW|CYZCg}N#*Cx@kM;RPn{j?ap${CMOXR!TtUuuJ+fXKiwz zY(b`87u43Mc)ZFn)a9sWRL9DW-WW3Ntf=Svhc{lZE-srm*QGJN>fRSkc3^JLNEaD5 z&ml*?((+AKZeg!X(WUqf5TneTKAacGsE4- zkEiMwtax=c-DM^#D%vU{+9r4|c3pP&2>qy6&f!_=uM6GG~83XR+)?x76WBFq& zlBhYr`)b41P`j+XvS6CmQ#9J>e8jt#dz-VY^r=}SOy)KKk@{Bki-t%5HWZ0T2Wmts*n5mO8zh0Grj^nJr%XeAhqqD{s-~kNHgUuw;b@{t+Dlv@BIy#{JPf#rlnKPW6u1=$ zq?8x_VJwZ550}{fPki7s$;|l z4hXq~eg!HHhs8)#{|MH>!D%=kpz!T#KR8@DE)-<{G2b>vnIgZ-TK375+67HbH!+`T zh0aVN<+?j-JjJpzf458YCU;!ty!AnJU^(;~V?|@OpFcZ)k4a|Xn1NjTX<5o%o56gW zfO6@B1V5zuPUPeX>}wuZjNYp0mXYagX0jmZSwc?GL&#%0D`= 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 R=^$i57#jkef71T;zW^IM;U)k8 literal 0 HcmV?d00001 diff --git a/_examples/tutorial/api-for-apache-kafka/3_store_to_topic.png b/_examples/tutorial/api-for-apache-kafka/3_store_to_topic.png new file mode 100644 index 0000000000000000000000000000000000000000..c0fc81142e25088d685ec7d1ddcd032b5f606708 GIT binary patch literal 38028 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 literal 0 HcmV?d00001 diff --git a/_examples/tutorial/api-for-apache-kafka/4_retrieve_from_topic_real_time.png b/_examples/tutorial/api-for-apache-kafka/4_retrieve_from_topic_real_time.png new file mode 100644 index 0000000000000000000000000000000000000000..b336205baf92f7a912aea49fa907e547c5324696 GIT binary patch literal 48712 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 +- + +Read [the fully functional example](src/main.go). + +## Screens + +![](1_create_topic.png) + +![](2_list_topics.png) + +![](3_store_to_topic.png) + +![](4_retrieve_from_topic_real_time.png) + diff --git a/_examples/tutorial/api-for-apache-kafka/src/main.go b/_examples/tutorial/api-for-apache-kafka/src/main.go new file mode 100644 index 00000000..4448a349 --- /dev/null +++ b/_examples/tutorial/api-for-apache-kafka/src/main.go @@ -0,0 +1,325 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "time" + + "github.com/Shopify/sarama" + "github.com/kataras/iris" +) + +/* +First of all, read about Apache Kafka, install and run it, if you didn't already: https://kafka.apache.org/quickstart + +Secondly, install your favourite Go library for Apache Kafka communication. +I have chosen the shopify's one although I really loved the `segmentio/kafka-go` as well but it needs more to be done there +and you will be bored to read all the necessary code required to get started with it, so: + $ go get -u github.com/Shopify/sarama + +The minimum Apache Kafka broker(s) version required is 0.10.0.0 but 0.11.x+ is recommended (tested with 2.0). + +Resources: + - https://github.com/apache/kafka + - https://github.com/Shopify/sarama/blob/master/examples/http_server/http_server.go + - DIY +*/ + +// package-level variables for the shake of the example +// but you can define them inside your main func +// and pass around this config whenever you need to create a client or a producer or a consumer or use a cluster. +var ( + // The Kafka brokers to connect to, as a comma separated list. + brokers = []string{"localhost:9092"} + // The config which makes our live easier when passing around, it pre-mades a lot of things for us. + config *sarama.Config +) + +func init() { + config = sarama.NewConfig() + config.ClientID = "iris-example-client" + config.Version = sarama.V0_11_0_2 + // config.Producer.RequiredAcks = sarama.WaitForAll // Wait for all in-sync replicas to ack the message. + config.Producer.Compression = sarama.CompressionSnappy + config.Producer.Flush.Frequency = 500 * time.Millisecond + config.Producer.Retry.Max = 10 // Retry up to 10 times to produce the message. + config.Producer.Return.Successes = true + + config.Consumer.Return.Errors = true +} + +func main() { + app := iris.New() + app.OnAnyErrorCode(handleErrors) + + v1 := app.Party("/api/v1") + { + topicsAPI := v1.Party("/topics") + { + topicsAPI.Post("/", postTopicsHandler) // create a topic. + topicsAPI.Get("/", getTopicsHandler) // list all topics. + + topicsAPI.Post("/{topic:string}/produce", postTopicProduceHandler) // store to a topic. + topicsAPI.Get("/{topic:string}/consume", getTopicConsumeSSEHandler) // retrieve all messages from a topic. + } + } + + // POST, GET: http://localhost:8080/api/v1/topics + // POST : http://localhost:8080/apiv1/topics/{topic}/produce?key=my-key + // GET : http://localhost:8080/apiv1/topics/{topic}/consume?partition=0&offset=0 (these url query parameters are optional) + app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) +} + +type httpError struct { + Code int `json:"code"` + Reason string `json:"reason"` +} + +func (h httpError) Error() string { + return fmt.Sprintf("Status Code: %d\nReason: %s", h.Code, h.Reason) +} + +const reasonKey = "reason" + +func fail(ctx iris.Context, statusCode int, format string, a ...interface{}) { + ctx.StatusCode(statusCode) + if format != "" { + ctx.Values().Set(reasonKey, fmt.Sprintf(format, a...)) + } + + // no next handlers will run, you can comment the below if you want, + // error code will still be written. + ctx.StopExecution() +} + +func handleErrors(ctx iris.Context) { + err := httpError{ + Code: ctx.GetStatusCode(), + Reason: ctx.Values().GetStringDefault(reasonKey, "unknown"), + } + + ctx.JSON(err) +} + +// Topic the payload for a kafka topic creation. +type Topic struct { + Topic string `json:"topic"` + Partitions int32 `json:"partitions"` + ReplicationFactor int16 `json:"replication"` + Configs []kv `json:"configs,omitempty"` +} + +type kv struct { + Key string `json:"key"` + Value string `json:"value"` +} + +func createKafkaTopic(t Topic) error { + cluster, err := sarama.NewClusterAdmin(brokers, config) + if err != nil { + return err + } + defer cluster.Close() + + topicName := t.Topic + topicDetail := sarama.TopicDetail{ + NumPartitions: t.Partitions, + ReplicationFactor: t.ReplicationFactor, + } + + if len(t.Configs) > 0 { + topicDetail.ConfigEntries = make(map[string]*string, len(t.Configs)) + for _, c := range t.Configs { + topicDetail.ConfigEntries[c.Key] = &c.Value // generate a ptr, or fill a new(string) with it and use that. + } + } + + return cluster.CreateTopic(topicName, &topicDetail, false) +} + +func postTopicsHandler(ctx iris.Context) { + var t Topic + err := ctx.ReadJSON(&t) + if err != nil { + fail(ctx, iris.StatusBadRequest, + "received invalid topic payload: %v", err) + return + } + + // try to create the topic inside kafka. + err = createKafkaTopic(t) + if err != nil { + fail(ctx, iris.StatusInternalServerError, + "unable to create topic: %v", err) + return + } + + // unnecessary statement but it's here to show you that topic is created, + // depending on your API expectations and how you used to work + // you may want to change the status code to something like `iris.StatusCreated`. + ctx.StatusCode(iris.StatusOK) +} + +func getKafkaTopics() ([]string, error) { + client, err := sarama.NewClient(brokers, config) + if err != nil { + return nil, err + } + defer client.Close() + + return client.Topics() +} + +func getTopicsHandler(ctx iris.Context) { + topics, err := getKafkaTopics() + if err != nil { + fail(ctx, iris.StatusInternalServerError, + "unable to retrieve topics: %v", err) + return + } + + ctx.JSON(topics) +} + +func produceKafkaMessage(toTopic string, key string, value []byte) (partition int32, offset int64, err error) { + // On the broker side, you may want to change the following settings to get + // stronger consistency guarantees: + // - For your broker, set `unclean.leader.election.enable` to false + // - For the topic, you could increase `min.insync.replicas`. + + producer, err := sarama.NewSyncProducer(brokers, config) + if err != nil { + return -1, -1, err + } + defer producer.Close() + + // We are not setting a message key, which means that all messages will + // be distributed randomly over the different partitions. + return producer.SendMessage(&sarama.ProducerMessage{ + Topic: toTopic, + Key: sarama.StringEncoder(key), + Value: sarama.ByteEncoder(value), + }) +} + +func postTopicProduceHandler(ctx iris.Context) { + topicName := ctx.Params().Get("topic") + key := ctx.URLParamDefault("key", "default") + + // read the request data and store them as they are (not recommended in production ofcourse, do your own checks here). + body, err := ioutil.ReadAll(ctx.Request().Body) + if err != nil { + fail(ctx, iris.StatusUnprocessableEntity, "unable to read your data: %v", err) + return + } + + partition, offset, err := produceKafkaMessage(topicName, key, body) + if err != nil { + fail(ctx, iris.StatusInternalServerError, "failed to store your data: %v", err) + return + } + + // The tuple (topic, partition, offset) can be used as a unique identifier + // for a message in a Kafka cluster. + ctx.Writef("Your data is stored with unique identifier: %s/%d/%d", topicName, partition, offset) +} + +type message struct { + Time time.Time `json:"time"` + Key string `json:"key"` + // Value []byte/json.RawMessage(if you are sure that you are sending only JSON) `json:"value"` + // or: + Value string `json:"value"` // for simple key-value storage. +} + +func getTopicConsumeSSEHandler(ctx iris.Context) { + flusher, ok := ctx.ResponseWriter().Flusher() + if !ok { + ctx.StatusCode(iris.StatusHTTPVersionNotSupported) + ctx.WriteString("streaming unsupported") + return + } + + ctx.ContentType("application/json, text/event-stream") + ctx.Header("Cache-Control", "no-cache") + ctx.Header("Connection", "keep-alive") + + master, err := sarama.NewConsumer(brokers, config) + if err != nil { + fail(ctx, iris.StatusInternalServerError, "unable to start master consumer: %v", err) + return + } + + fromTopic := ctx.Params().Get("topic") + // take the partition, defaults to the first found if not url query parameter "partition" passed. + var partition int32 + partitions, err := master.Partitions(fromTopic) + if err != nil { + master.Close() + fail(ctx, iris.StatusInternalServerError, "unable to get partitions for topic: '%s': %v", fromTopic, err) + return + } + + if len(partitions) > 0 { + partition = partitions[0] + } + + partition = ctx.URLParamInt32Default("partition", partition) + offset := ctx.URLParamInt64Default("offset", sarama.OffsetOldest) + + consumer, err := master.ConsumePartition(fromTopic, partition, offset) + if err != nil { + ctx.Application().Logger().Error(err) + master.Close() // close the master here to avoid any leaks, we will exit. + fail(ctx, iris.StatusInternalServerError, "unable to start partition consumer: %v", err) + return + } + + // `OnClose` fires when the request is finally done (all data read and handler exits) or interrupted by the user. + ctx.OnClose(func() { + ctx.Application().Logger().Warnf("a client left") + + // Close shuts down the consumer. It must be called after all child + // PartitionConsumers have already been closed. <-- That is what + // godocs says but it doesn't work like this. + // if err = consumer.Close(); err != nil { + // ctx.Application().Logger().Errorf("[%s] unable to close partition consumer: %v", ctx.RemoteAddr(), err) + // } + // so close the master only and omit the first ^ consumer.Close: + if err = master.Close(); err != nil { + ctx.Application().Logger().Errorf("[%s] unable to close master consumer: %v", ctx.RemoteAddr(), err) + } + }) + + for { + select { + case consumerErr, ok := <-consumer.Errors(): + if !ok { + return + } + ctx.Writef("data: error: {\"reason\": \"%s\"}\n\n", consumerErr.Error()) + flusher.Flush() + case incoming, ok := <-consumer.Messages(): + if !ok { + return + } + + msg := message{ + Time: incoming.Timestamp, + Key: string(incoming.Key), + Value: string(incoming.Value), + } + + b, err := json.Marshal(msg) + if err != nil { + ctx.Application().Logger().Error(err) + continue + } + + ctx.Writef("data: %s\n\n", b) + flusher.Flush() + } + } + +} diff --git a/context/context.go b/context/context.go index c842bbc7..c6923c37 100644 --- a/context/context.go +++ b/context/context.go @@ -446,7 +446,7 @@ type Context interface { // Keep note that this checks the "User-Agent" request header. IsMobile() bool // +------------------------------------------------------------+ - // | Response Headers helpers | + // | Headers helpers | // +------------------------------------------------------------+ // Header adds a header to the response writer. @@ -457,16 +457,18 @@ type Context interface { // GetContentType returns the response writer's header value of "Content-Type" // which may, setted before with the 'ContentType'. GetContentType() string + // GetContentType returns the request's header value of "Content-Type". + GetContentTypeRequested() string // GetContentLength returns the request's header value of "Content-Length". // Returns 0 if header was unable to be found or its value was not a valid number. GetContentLength() int64 // StatusCode sets the status code header to the response. - // Look .GetStatusCode too. + // Look .`GetStatusCode` too. StatusCode(statusCode int) // GetStatusCode returns the current status code of the response. - // Look StatusCode too. + // Look `StatusCode` too. GetStatusCode() int // Redirect sends a redirect response to the client @@ -501,6 +503,9 @@ type Context interface { // URLParamIntDefault returns the url query parameter as int value from a request, // if not found or parse failed then "def" is returned. URLParamIntDefault(name string, def int) int + // URLParamInt32Default returns the url query parameter as int32 value from a request, + // if not found or parse failed then "def" is returned. + URLParamInt32Default(name string, def int32) int32 // URLParamInt64 returns the url query parameter as int64 value from a request, // returns -1 and an error if parse failed. URLParamInt64(name string) (int64, error) @@ -648,6 +653,10 @@ type Context interface { // Examples of usage: context.ReadJSON, context.ReadXML. // // Example: https://github.com/kataras/iris/blob/master/_examples/http_request/read-custom-via-unmarshaler/main.go + // + // UnmarshalBody does not check about gzipped data. + // Do not rely on compressed data incoming to your server. The main reason is: https://en.wikipedia.org/wiki/Zip_bomb + // However you are still free to read the `ctx.Request().Body io.Reader` manually. UnmarshalBody(outPtr interface{}, unmarshaler Unmarshaler) error // ReadJSON reads JSON from request's body and binds it to a pointer of a value of any json-valid type. // @@ -1720,6 +1729,11 @@ func (ctx *context) GetContentType() string { return ctx.writer.Header().Get(ContentTypeHeaderKey) } +// GetContentType returns the request's header value of "Content-Type". +func (ctx *context) GetContentTypeRequested() string { + return ctx.GetHeader(ContentTypeHeaderKey) +} + // GetContentLength returns the request's header value of "Content-Length". // Returns 0 if header was unable to be found or its value was not a valid number. func (ctx *context) GetContentLength() int64 { @@ -1819,6 +1833,21 @@ func (ctx *context) URLParamIntDefault(name string, def int) int { return v } +// URLParamInt32Default returns the url query parameter as int32 value from a request, +// if not found or parse failed then "def" is returned. +func (ctx *context) URLParamInt32Default(name string, def int32) int32 { + if v := ctx.URLParam(name); v != "" { + n, err := strconv.ParseInt(v, 10, 32) + if err != nil { + return def + } + + return int32(n) + } + + return def +} + // URLParamInt64 returns the url query parameter as int64 value from a request, // returns -1 and an error if parse failed or not found. func (ctx *context) URLParamInt64(name string) (int64, error) { @@ -2224,6 +2253,10 @@ func (ctx *context) SetMaxRequestBodySize(limitOverBytes int64) { // Examples of usage: context.ReadJSON, context.ReadXML. // // Example: https://github.com/kataras/iris/blob/master/_examples/http_request/read-custom-via-unmarshaler/main.go +// +// UnmarshalBody does not check about gzipped data. +// Do not rely on compressed data incoming to your server. The main reason is: https://en.wikipedia.org/wiki/Zip_bomb +// However you are still free to read the `ctx.Request().Body io.Reader` manually. func (ctx *context) UnmarshalBody(outPtr interface{}, unmarshaler Unmarshaler) error { if ctx.request.Body == nil { return errors.New("unmarshal: empty body")