From 38e81c23c9bef1d5ad63064b41d79c2c8336e54e Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Wed, 26 Aug 2015 14:00:52 +0100 Subject: [PATCH] Updated tests and added file sending --- lib/Client.js | 15 ++++++++++++++- src/Client.js | 27 +++++++++++++++++++++++---- test/bot.js | 11 +++++++++-- test/image.png | Bin 0 -> 14150 bytes 4 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 test/image.png diff --git a/lib/Client.js b/lib/Client.js index 6d6e62870..7d2c96445 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -551,7 +551,20 @@ var Client = (function () { self.resolveDestination(destination).then(send)["catch"](error); function send(destination) { - request.post(Endpoints.CHANNELS + "/" + destination + "/messages"); + request.post(Endpoints.CHANNELS + "/" + destination + "/messages").set("authorization", self.token).attach("file", fstream, fileName).end(function (err, res) { + + if (err) { + error(err); + } else { + + var chann = self.getChannel("id", destination); + if (chann) { + var msg = chann.addMessage(new Message(res.body, chann, [], self.user)); + callback(null, msg); + resolve(msg); + } + } + }); } function error(err) { diff --git a/src/Client.js b/src/Client.js index ad7084d90..e2e99d0b9 100644 --- a/src/Client.js +++ b/src/Client.js @@ -558,15 +558,34 @@ class Client { } else { fstream = file; } - + self.resolveDestination(destination).then(send).catch(error); function send(destination) { request .post(`${Endpoints.CHANNELS}/${destination}/messages`) + .set("authorization", self.token) + .attach("file", fstream, fileName) + .end(function (err, res) { + + if (err) { + error(err); + } else { + + var chann = self.getChannel("id", destination); + if (chann) { + var msg = chann.addMessage(new Message(res.body, chann, [], self.user)); + callback(null, msg); + resolve(msg); + } + + + } + + }); } - - function error(err){ + + function error(err) { callback(err); reject(err); } @@ -585,7 +604,7 @@ class Client { var mentions = resolveMentions(); self.resolveDestination(destination).then(send).catch(error); - function error(err){ + function error(err) { callback(err); reject(err); } diff --git a/test/bot.js b/test/bot.js index e0c2eb940..b04c7ac29 100644 --- a/test/bot.js +++ b/test/bot.js @@ -79,11 +79,18 @@ function success12(_server){ function success13(){ console.log("test 12 successful"); - mybot.leaveServer(server).then(success14).catch(error); + mybot.sendFile(server, "./test/image.png").then(function(msg){ + mybot.deleteMessage(msg).then(success14).catch(error); + }).catch(error); } -function success14(){ +function success14(msg){ console.log("test 13 successful"); + mybot.leaveServer(server).then(success15).catch(error); +} + +function success15(){ + console.log("test 14 successful"); mybot.logout().then(done).catch(error); } diff --git a/test/image.png b/test/image.png new file mode 100644 index 0000000000000000000000000000000000000000..253ecefb0f2dd7ba51fed4be16ac338c2348ffe8 GIT binary patch literal 14150 zcmZ9zWmH?w7d0Flf);m3arfdDN(t`nr4)B}cXy{iahKxm?k!T>i@V#C-~YoaPu9v! z?p>3UxpQas+2@=+5lRYD=s;p1002OjhJ0250AQH^dm|%4uXy;xxqXJbu5LWuC6|vXjN?i^W6Z^mJo&BkmW`0Gdd;{IU*${ zqzQM_Q|ZD90H6d&e->AB&pusq%TE5&DS9#OF?LhmS)J1XDGq5QcvO^bc$!w0PR^_9DvwX$iasmE6iI7f6-;{%WH zxf$nKixG%!2mI4qPF+qB<3GTsKL0Y+ zjsv!)hOy05X0HV73PA3RBS$5j?1(#s7qtcPW9j#sSG&ps%1*wre~NCw_s=b;S= zP9{|u(=$tm?-(Y8Ghs~c>uF^Gna06uh>ZtWS& zsS=k#VfaidrX2rq_o2=ipo+^r)PwF67W}eux`hvi0-Qu7LK7u5^x^~^hv7++p#uR?F>?6ItaB|MapfhP z@?u{5`4JaaWYCWSOMw=P6D+WS>j8_&`n0KmBXO;5m&xtt;t?qxb&@`Q1SarRO8F6c zYpXi&)AN+>m+rI*Z~E3Yb^v{(7Nj>a{$;ooM*dGI^elbcdzaa0&GDdIzPx--TlL@M3ZdOXY4>Zgiv8oZW7Ji-z3r>uco-!f0yL`Ihn(i<42%0l8%(X{ z)yLUInAM~=KW<`3_%$gq3Gb?d(|9L;Ydx85*NzRFNq|o@gLo#EOt=$Av6##(ld0it zPP1I>ii`eaHEPi#xw<+FFDsd}yc|h>{+`}{df7#P#Zqe{v)vOnNsA>Iz=MFo z0FM?~AjTQp^-A({amhh)1k`Bx2xkebEr(>2 z#Q!FxF5E0cnq3NU)f>N}-Qu--zmUbQk90MnEM%8v0D&sHJf6c0>z{N|k(h^)88VA2 zelIIP@)Kvc^-bk6zTT!-|8q{mG50b719jV?$5Av4ho6X33!-swYmphu!N}~AL}s@x z%sG6X*EJfk%AJ2@h{>o6FUm4eg=}Lxuf0q(wO!Dyth9(lGoGrE8Spt(_p3|}e<8AJ zCw*l2_CW=$P%h1bsm9m_J!;ews1b~dgaVLT(Dgu>u{;mm!%iKjEw(kETLUOO9C3;pf~yeChec2 z%@^}z6mCRDVerO2ZAy`uoRtnKR1C9QRItmOt#n^m%0|2|Ye zc0fCRt}RuEKpblGvvu23XT}KVf_KR(#ybY*iK%fR0xV(iA1Ohg>@{d((6R(f6xKE& zbVNY0#x^|#{f@{CtoUgjQ6)UcVvL8AxhS9zd7bXe_{`v7tl>O=NvM6|QL`h=RgE9xM8ofd#G~ergQPds1h;J=nA_ z=@gY}rz=^*JQN*=!}oD_lm%?+1)`$N<8Fe%g>)n0%KmwZ=bB361ko@N$znpIm@hfy z?BuMklUR_X!=93KZ9R((l{6oN@~m}px@arqE}e1B9>H>&Mo zemj#Ccj!e@m?+pnshQ_}n92efzJs{S$p%&LDgV5L*Rr65E#wS>y>fSBJosd5y^bSk zMU9dIv*nM`Tn&4YWCp1p2n~}adEi$P8vP(^|BtwT(~@H9hhEVB5PK#uIE-cFM^iIZ zEQ=tOR%;ikaW_z^LrQMDeKAI4TNv?`IM5e8sNBcgf^{%Nl>`8=(MPfV`=K|C!fo^C z6r+*fBB6c!ml>F9Y@F@KRqgT+$ z6tH(JQ2SM%V8JG?XBWGzxaU~IrX?s~UL8Ty&z%Nw@xlJ@lFTpelmhOP(7$ma6=N!x zjIzS%+)cm;>f!1I`gPqup(!M7wH3lB>M%mKc$s6R%jv`PMtfz>KaxK~Z&BW!8x#2T zFM~QEZvmRR>AG*Xf}$aCeBsy5T8hnsyB7st+C>ZAgV3_q@v`XaxbevQb(~2zhV1)U zXpWCoYZ;PlS|kn$Y`RbvkS?y$e`BTF>#9Yanj;A#h-AcLI39M?}9Dmgj*3~TmpQ%KQs4UUhcCBJrA)~t`i5~ zVsH7Qif>$Yu03x^G0cl|3(wJms4-sJlQ~~EOuyU32CaJ!&5^AGO_T`pO3{F_Zoy14 zp2>>FCt}@m3G73g4rLcDY7hX4n^c|inn24<4B>`epp!y{T zZTP6@K~5~9wp(cg>#X$&J}TqD{0Oa&N0s^Rd;&R_5C9YfB^b-tvvSS`i7yha>UjRD zV*Uqa&+9#(-5jTGmJO-qFfWIdSI_$f8$UoNKEaJ3#~ROxfQ=IC-uIb1fqX0KGy2V- zd?8vuA&4>+8atOX1O<`u z-#pfp1@fbdT8f8~_VyR(a!e^QfPWRxYXi!wZqDJFXHaq~Vf$ME36YAvCI0+L7tl$D za$*ygU&R%1mkTf8nHWw3PiQj3?MfNWkU=>_xVeDq4hG7xUd{=6U2d;<%Ol9bW zr53B0>%0@VaxWm*pVH86I+^ioj}ETXe)C{z0l*r>6iboDCTrZcs#0iFvjf1e&jL85 z4A+}O%T(;9-Y(sKqM7WM3rJpd_LmsH+)A*3=ExMQ-lMqC>4eP?u$~UX5a6#UCEtqF zkAyI@iuKu4`}>hZPe`6(*w>w}ETPWm((h`NWi@vuCndg34RjGuxcb|^t<}vE=%P!t zG>b1~H{svspQjnNl2W~9!6-5E!x!JGS@Pm6Q{i`tm;LN-@$^smO&g6G0D9DRhc)O8 zY+D3fz9f>lZ{O-8Kl4C=3ZaU$)>-J@s@wfpS@O?!6k8n+qTvL9rzd)_H{-q@H>v87 z=IyiFN*lKO{_Ux|>7j@{NSWA~44G2}mNqS%PM)whSXNWnaBFBJ|BwMQ#zp+M=3`}R z8R_yL;{FBwPOa`LB&$zuCWdA}L<0Ncu>fUJ%C&E2M?BESl+9a)c%VQOJfbbJl_wh4}J|NU6e7j0WPdA3BIvhn0TX zXFf4f994Mpy%t(htC0FA!!hwXe|=pbuUx?w*H!fFN|Du6`rsN6H^e zvFn+fb|Y$!@G9_TvjCC%p%o^TyAd4Me4o!Jl;`vMs^9H9y^B5F*@Yh0RZj*`B6bEPaDIr$gaTBw z9frx=lI1V%G&1C`yCbfRL$%vGuFTq9m|6Fq^DEHAf5bv(C~E-!0p=io5+a#XPuvaB z!!_6O#nqg~?_{q${6q6?IvA@+uB_k;d6>wia%P&Dzd1e0sg8R0k00n!+G3vs!4PKM zl~7TkMigOXI4JA|_s)`V&2TbDqx@uKcaWobF#xIzGp>1)Mo;I?`gf9XbX@j|{09Ob zIdIyBF1p#Qd!y{mhyD<78-ry{ySpbPV8{%+I}mWbG;cRYeWFa=mDFCT_cg{K0~-^u zQhS=vb~#GpOy$hY)NELsM(@Na+Vspd=3M+^Y+?9-Z1r%mE0FD=!c#u(6T74i+F$@m z=oe8mOp%15mS7B}=6vXQSYWMOT8in+k$$i!eQUTO^bDGL-tvuYF_)+7Ydx2>T$>_xki$LSWZ_p1Y3LOS8&~w7}p-4=|R&Th;te*-=7@vpeG_0b%8oq{11QxtPGMvcb0m}frDEE=}4d8QC#E`^H0 zUnq^QmLiEK<&4*x1r{+a<~mfV)wcbzcBg$liq-?DcBe!4-9q>h$3d^YRmUQtuu*A^ zeY^FBQ4P}XNL}Gt`?%^)i?6*IrHI6tc2?|8=8dnkF7E8yCGHdDE|hRn7*R?#bk;igll_7 zo5&V<2p2@U`GWp((`))K#$na>8a|p(=c@^;v|kycgp&!OXxkgL^*T}Sk6gXDn%5Wk zmu-@gy9z`h8!%a}em$IC_{Zg@jJtkET-G_JXf_eA5o5poQ@rPkdpFlD*|gZ62nku6 zaT20*sDFK^sZs2S?Npxd+NGM{t9mPyErS(7Ps`>Z?Dn&yVw73^otA>Y-OnEN^p%!1 zL&t9^q_J=m%Nc^Dls9F&HaJMXDrw|?di+hdHYA}1)QJXEyT{4*=>RzWlx_>4?VeuMl}?Sw+gO4O*t%oY=TGX?T7Skn?S`qfKE z1@Mt7`)n(@YJaji((W3Or$tU@>jb$c9tbeu*ELP3mOMMi5W$*+hA8VEPP=G?_siud zg_-w_xO^gwfL(AfLi=|j|MhQ~i)20U$G7>5UgO`IPw|{lMrw@X^hRVztkiwJ1hlb- z@4Y3#q$k^D=;1WLMs0JlD6go~!|(>(kAn_(qkpvdt8;KmE~ywdo$Nw`ne%cDj>p>? zOZFjRbrvo2tkEz~$B;C=(ZP~Fa_Qp{t*!6Z^M#k{|GL@ggAWR!?p35J`vw81dPgdB+3 ze^pYBt>a-gZ_W8k^zgn)>tL-JLPsSCGvD43vxEgCn)7LbarnB5d^D z+jUOPw^KFra^qVZ6EW)Vo7|aWV)dmS_Jrz16;xGhoylX;*pS zGGdgV{cpEnw=hhLJinP~rf4#c;poxHeWzW)vBQUSe?F#QA3kb%Txe4$)u%VYR48eX zv*$s%22sf$iK5X0>hVls870j#mS~^)><$WzUguU>N(*2#k@%!|qEFip6wD%_Pv+Ik z$A9!l0C*bqC+=H1X^@q7DZPW)E6N90K+>?f8Acg>@Hes}=ku^&ko{Dd3v^~N7zJ5L z&|@Cq6Sy7x^moBU^WTKsQ7GJ}tW%h&+1XXb3!g6&kopXBOpnH@thz4_Cy!5qPvQlJ zvc@2VKm4%Ayj0Cy+Ezq}l;pe|4&M+~1qNNeRyj~H=9MwRhj9g^qVKJS&f{d0)KLS1 zP~}Kvt&k#ay~)w3h+&sjh{CG*FHz^79Bs$%I29B`;vzw}`6r@;U<~7{2g?D~L+$g{ zx08d#2ct}!{uUcF)x1_vxRQS{7nT(I)ZDB;=Try3G}RP;4zX%r=iDe?+pn)+PoiT#I41U zkfAgMX7l}GUexAi%@Jl`)}IggljSx0HwA3>8-7|&VnHpBy3|A|1!*Tsf>2l}Iu8yb zXswAZ^nTIVPEKV~T#Dc6$-B~8hQJlqRU>}5r`5=XDGr1Z0DpwhSC|Vg{bR3_4I5yFwLkT{y0eLkYSkpAZ@Iv3;X_1ixZ=6 ztLOe5U4iJZqpDJoSUJFy!mTImIC>Xk1(%BJueLcrb|;^-6C9fNbBau_tqsSCVg;?a zni6+rGr@Addt^fQV)QwW-hXj&)1@Ll{$a;S@S;!f*}lJ$7OiYDuHU!_p4`VmFxT6J zLIzHt&-XSjE;0D!_koN$pj#8hM9hmiWaGt@iZ%|oW5`B^*uBWVG5IrdERU0~W)+gb zdW}EUT{AC~071$Aw7{QrD}43xY4vghQ7xDU-iMJoExy1H1zhm4k}6~O;cQji-ArAo z+75|9Vl(W%dO-HPsi62bLh}&ilZRrUY$;kPlaujns=>?Vy82SRVCJ#zQS)3aUFV{p z&E1YAGyoX1nbLDnVg!%GeC$(v@~)lP)YS{sAKrk zW{&zPfBO%uz@5eS2E;1;QRk{7_cJLVGHCOj9zq1${N})N=Q`lzsyO^{bKaqE276e+ zt`_@GEk*z;G{}fKINp>OZ0NR`*EKGiQw9^a{EL@o5rjIsX{S1>+pNR*ZmmpIh_W~l;$hB|WS{29Y z?LSYolr~DP-tT$RGBAiJ-BP`Z6b2SvFn(__Ia>AgWJTiW;BV)-dc+dcnSDXmi_4y( z!&bj9IK_-(kB91sPs3colR5b^kq+FP;!z`@oDfEx=E>hmJxnGu(-xo2(=^NG9yfyc zf6M{ZQoD@BS0LntIJMGz_$WrdX>Ijwa{kz567HqtNY; z0=$rA+m~;%!mawi1?$t^P#fXYjd?M8V1EnFSOSEf-UvzwPx*sCLgCf~k}a#2;)yk} za~ssY^7X-8mq3V>X3Y)3Dlr+>xI45t^<0wE^pr!5qS8i+*%lC=x{;)7;{NJ$9CRUu zUWQ3U&YSI&iDC3ueD=6jkqsvuWTNFm^y1OM{PlP$_og>XrRPY*Ap~Yc_vgP8>AZzL zor9y8(+e+7RYK-=napaK^D2ws?zgBx0^+>3BQXJdzN(b3pmEuvi5CahA%7@tKd(uq z`K@B;4~kCSG({RaTCd^NF&hnH(=OPYhU%I%ttOQNo&`+8Kcfe~JhmIPRnNs4iG?u) zQ{jVGl&7wni4#yc*S6NR(l(Bf+)j_-Ot8UAPCB)?uvu<*Mpq9yvIe3F+_TF`!3CUN zXAv+F!4Yd!KFH{k=Z&E;e|)Vs2ttlj;@+Mi1Js7$tCB&` zeADNyd%HI7!UMx)B{E|`%Vuisb^$$FbkTX(@`bT68rIxjud&p;4fL8R$`EK-E0iU7 zQLJSD8#_R{|8o!=zEIdJtM$eTlD^hEOe!-OX~lSFs=macT8j&UwCd88DF~(%D51S% z@;Zn}PimiE@H;3rmztYrgP>T;aO(OMWho5il3GgLgL09dzxY!JsV3&-h@*X!VE=qlkSgE(O@68YT~_&6$DxgH_SLB!$P)Ye|56Tu zUq63QC!ESy4X=j4J}<6oCs7M{Vn0kI8>eoly0lW@NNG@JaMt-@R#?+PVET8FpShzc zEGDV7n0{+K&QtYEl2-yM;56_*88$FwAWHd2zAaYYJ)ivEDrI%)<(_vctk0pOdHO2t z?W!W2iMTTF{d6^vR9n({E@r5@fJ1%f@|ojcdp1@8T+ziCFCxK-IVRnm7*ZOV(p&V) z*}<;qv6EF#^qSgwgG8Dw5Pw-d+v(nbaA`9qikq% z&K>91zO9!0z(buxduNA~lmZ_>R@M2ikOs}ux+XK*wlqwwjUpzia0Ln%8==YbYjSYM!!oZ~UKJD2_WPYP z#fY$JW>A)^>&_yte19$CK{Uo$i4~Ahrt{Y`y*0Ad97x(&tmj8})*V@_tS0-tC~MzL z8$d_!=V3%H+(Uz@BJcMcCs^B#{pjqq`HLaPmou{;5>{pu1rfN^Ny9E|*su)q1M7DN zFAq-)=^Uo+Q)d>G&hn!ZgV_9RbW*Y!KZ!L$%ljPULte-F3|@{_ehmIfI<9jvgfH%$ z=ZW$?bHQNvph#$b{ICBuEp~9yPyi=0bLDdGg9OvXg`XeBo;bl@fuBfM%iYh??_6_f zpM`S!YV2}jr*pUjO76Lo_Grin)%xoNj8Jw(_9>w2Vrv1fg^aisKuLPD*=;L801ZQ( z2a*t*PR_nCa*>Fv={`^2GY5ZW&h2|T&7sF^<+u+c*c@+A96yaA{Wef5BlOTP&VJB0 zyHwkN^epgXboDAIMf#R2(6+PG(txz1P};L`mL0=T!e=)1XDb-imJkuiq?L_LN?idO2gd=nFB=bvwC{C`+Q>xpj)!)!^+?iSJCD{A9Y~B00KgCWPYZCQ zy;tWE96ui(x3es4dEjD^;o;I`aJQtD%?pJl^4c|3;zWj6GkiPnM~lCn`iW##pPF{o z)V-`bi*+^4lV|>>P2X0oywNq=+MV2aaQ{|&uz&UI3XfT7x9V+=3yV2v7@+#) z&yuHpT9@DWtheFAT-%C}iN3yaR{os{h$=xJ z3^C)$=T3f?Qo@UB%=&woX11`s_NS_p@pAKwA~z{%aLY1((pm%~6{*sjf_l|(RKtmn z;XJS*6HA`hee?2<`^lcX``e^V%Toc4!`Y!k{{C}WHG=iZ88UvyFATQsX4K3vCH$++ z*z??&JW*a*KeZHNKT$uCR0hGTZ;u>?k3RpN=`i^h9gO!q=)k~;4UtxS8gYU%&u<8C zHxt7xPk|rOIXsYs_|5C_D_8`*F4D|2Oh&_=|EuhIa0kB#*mjy)Dk!S|ecwxo>$Ma; zptw$%R^*i!y9r2X{dD}2P)dKjbtmfMKW6W#d=(Vu7c45=h?q8I-lvU2qO7{rp|70N z!;P?DYdQRqwy^WsScUwgSITlK0y2Jiuqrw5t~ThJvKQ?Mt+#dP89NC}IUozM z&DnaS$#O6;IcuiM@YSKR9P@dI^I8urW`u@w#_6zrKE80d-Y#6UF;%?>#hAmJZR|V* z4SBqoeO^p%J0ZMHMr%#vE&7a%vYr0$f7^HXe5}#Cu2ZD>{T6I;9GDFkV-x+E;>MHa z@B1CY^Av}#?aq4A_hqtObWExnf|UE2F5BNlFhz5l;VJCS#eG63ia-Rx@CJrWsMDQ| zWIw}_H#@jOjs6aNv1BC=n}m+rJ@2Qjl%n<-5-uoU{A4~s?1|^(cWoZNIIS4oDQL)Y z%29`)yzIN3_Z%5 z+xTgPii$KMLOJk-CpWy0fLe$+!2Db~uWcZxbt5ZQRp)A__RsVC6U@3^Bj%RanP{3+ zA1;DQ|`-6p@$BYQN3u^Jy_@c2SJNht(S#XaXX{>+K5W(@8WX zslB)=5qC;{`2-v*b!xRme-_hSLGeV8w8^pk)99^vDSGcg{%t~nIj~}}d24b{@N)e~ zgBl&?hwfmW<@@`gQv@xv_HDmsmc{WLsO-^@GTsoyyV=UyoL@hX)XgGJg7^9>G{~Yn z5HiujM&U^!+Il(BVPT1GMc-TX?)xd%%ZJLh-5wo~N1guGWE$OjFuQqg8BU9U&$1qk zP-FW=KZL+6S1n9c$CATQi$D3}(YXw@e5KxEWD&*bU?Qd~6*kv@#lvT3cg_t7mE!I~ zXrj)_jI<=SvQLwZB5bJ5-j>TR{twAt`{N&?pG{l<3R<3)Qur*dxYLhs4RMU+pJeS1 zD$`7&^V@kNwr<5=o>u0ad_5;hXjDk!gqw-44VU3T)MH#fBc8i`h{m0LfDv7#0gwqX zzRjVft)g^?zed~`jFJ-a^at~N^%1BMHtk-u##Tu9Y-(gd>W=er2)~ff(ba#h6w0u(wRSVrO zOW{pwLmdoK6@)utU)=a*m&9y;&)|Hm6Gf=mohnza1EH=k!e4WmdF^4>?CyTrkrnDt zut#son0WR?qKS1vQ*jt)R<%OyM}q7rMKgO|KOD;Dm+%JM>Iz(JwSB5w`5Pikrc5sv zFkIDF#1OWoz(>p*&kg?touT&xRbk)($0~1sIc=^!&UL4o!W&b(8)HyB=LA}3O5Zo} zd*eZ1Uf~#;!IRD_Dnr}o_H{IH9-xphQzT{UZbe}0Zif@Ry9NDQ+?rD_m0EgV;YQe& z#wm_h!b8{t5o98z89{sqgDfQo*Oemcu`#*TM=exUkWrFQou#msIvS8xTwP3{D7j#F z4E9n4>LEi_4U1J|_0tx9lk?mN1t>WF0|T>vTAaUdDG+Mp^1iAe>9#rY`d;-2A|tKw z|B!L0gjUhh`v}{f6HAf3?2ntL!PZ!iU4JdoTu4}L<42BKNHU~o zPMkSmdxjeU^aC}8#ui${oYf)#yGR0PK$v|nm|z%!KwnLbFVrFMp3jNlpH=@I$`;Ti zidjifG@YIe?&}MipUO~T^B575LUThkxq%#J5||ovV!L6A36m(YZaG&P9>p zh|vePGPZBq-*mdzz*Px14;mUGQM@CMFPsdzb#o&03W?M@J?A2KIW1-ps^Ew<<-Ye) zB^>%5!M!KOXikrrrx$acSVnF4cC++jzMn=1bmxVv>vZ8XzfG$^Sy^IU1t2h`pZ8+? zwku3q5xbP}erv}@_+eE(>f*lnli7WMskE0STJ!1?BeCU6JTqo)R*W^3q}5!7#QV0*^WxhJga%?xIXtV+-RCB^ zskZRm)qRX;!w^_PwZmaHa$ihcSJwjpL9HfFwl1%gik9O9JZO3JK}birTXZ-Ib^!p% zFyPi#-yg)OvF=mf@WS^q_yrX9Da+nH2%*Wkc&Nxy#=pW9^Mkks!?L~%uhRUB+20p_ zyx8%1I6IAU7`Lf0u``2JFIq3qp-r*5I|);V*z`%ns}wMw1Y%)BG1-6EaNYk}!EV58 znlRKDy{Ku|c(2W;Tw zEK4Wks`8p?1nG@TGm;Pa9|M!WoSu_7Y}YzYqzf@y)vPVx4M#S5)jo8dy8G!P;TF=7XwJB@r{)Q- zvFy88U9`;y>=wDXZr8Bce3tHsahTjoceRAeL`=&sU)`vo;SRf^aAWzR>xR802AbHZ zi%rIsu#$KW|F+ZwXxTW$hTtlp^(t-r6*%I?is8;Jr}i{ZoCqz7&?yp;A#+b4 zRNIJ}<>qW6`~A{|`a4*iNUtsO3HUC~1hDSP7osZKQJiGxiO_;eHaJFn5MuPspkad& z6j{yl{=~g@n4!E1AlR1-&zRSe=>^Jc^O;XVrjG-sfA$`@7(eIQz8q%6DXX3pW&Yuq z!9`4h5$$}JU*$ef8^A`~M!}hN2X^{MJKqh|)lh{B+xYy8ApR$tjs*s*&b5R8wK*DH z5Bxfrm|;U(NOOsT!$;q^3oB-v=>Woty!M0{$`~1%kqYXXu($Xd1Ji|apu#KM1t`Rw?3(xaOI#`kKnc6-Xk3H-*pre>oL%&OCPK zv(C%PVbu|YMsSJm4u6zhcY-a4Bd1sSJkPq0~tik zhTBud4^Xdz>P#2XoQ|C7{{J2NU*DFTkP&WMaa10%eUTC52R;_2YZ)$7iSi)fLglH5 zuE{R{pZi$Csx1|Via_n3lyAWR#?vrK$Sl@EHEp2Sy(|Cu=XW8r`vrQIov0V)jF>ewj_4^XDV2MzXaN&N{jZZ4`(gpkMkm(g2RHz?ym z3loWT@)}(tpw=N=y!aEz-ba%1awrHQOdt8*g5aLJqks&`jHT4Q{=RV2x(jV(}J-@s>4wp6L-3{LmGTb@Molp(~J< z{*4XaEGri`%9#(_%=_v5V1xfy6YZ)(CD2kw+ep!_Wx%jC13R93FhIqamVr9`+s;(? zrJuw@@}t|NCj{Ang&Hm>@w!7Nlljc0nZ{`Hhu|>+q@$ev`F^P2b6IU-GHK?xK91VW zC|@vwli7QM?2a|a!_7Di&WbA4<{BM0lw!$+1?(t}jDu}`xApcM*j}T>3_o=cc%EM* zG(6nof4j8SkmhLHF@Vc*umO`yubmK#6(65u53e|p^@<@&WR}&p+KbC`;L-F^dvt*) zrxRsIXDSBXMI;fNoME+e5km6rdY0g8`}V3?BU|{u2YTRCcUn$rg*CS7@x09E_v%Te zSn-etTT{`fsbfM?a$J8=_}sl!w59h>ZHHcBBUHUL_)Ja&wwt|vk-7Aqt#1B^ATI+$ zyT||fxcqoOdF17NR(ai$;VG|NDQeK`slkivb~QR}4^5DNtjVM#eyv z<7>KN_Y&Y$RkX-tI(Ve8uje!0vsS+f^ho1H?p-ne6^x6^0E2km?Y&d;?#kTVWVDW# zmR`22A6X6)d%DvoveCN!WeW&;U|1?Qw8Fz3`Fwy=Zim2rSK~5TtYjXwd(#E z3>z&zNAa|?DXN!lB;?V5nHom7Z*XhI@Ia$?MUQKij3l@#-vjFpz371FUn4VmPcMgH zF6u6WA+LfgHU^jVL>5PP)_Nq#z@ckDJD8q%?ImFO-{OK8ATR^8*zY5e@FzO!6_Bs* z;}e<66;>Rv4iaFa8RWU_+^r|X48Cu5Fy)%|pfR}XuHRqlkXHH&p=mv{q`U2QbRyiHe)#=xRC@jbLIPKtWcIl74TCC2cm6p8+737nX_uVmSg-p)aO^toVZdZ z)5zE*l|k@+*1a7}nC*j8V*IQ|WQfmcS#JW$nH>r;`$?I<)0OC56S5N%Ife>@hu*s` zs`{<{kJ_w`fBA3YyYxN5bP{#vhDjCG4=Feh=BCW$?gMC3F>T;#{R?aVQ@fjJ-A|?{=-(miM|i!vWEuTMvn8fj@~9*?@|h{{mxRFRaGzhv zqn>v@;Z8lu9>N&{P5#0`Jq2*7z^g_`u`sdQY$TX@95bIj{^t=2sI~6mjo&a8`~t!4 zF}VD%2e7E;?N0}QuHBo??VKzp@Cb*t^Z6gYV72d%QNe6aUs$NI$dSJ18gG4*E4AK9 z)AId}`9%h!4=UgGH?9X+Hn(Btx!<;aW#a$WaHbEbYpLzudPPabs(U~gBQ;#TgJbNV zEXsdBn8@vLn|fS@yb^=I+chJhD))RW91-?-=h-kZT9jp&^rjG>IA8q$wywMAs-VD^ zn@Ug_y1I`?{qMO%mz=$BZ=^F!C$Fx)Nt?aYHNjbU5rMXhww^d*H; zGgF0i<5Zv?{3S{9-p2v^U>{XZ`MRi^3;^xlh_R5z2Ep_};Jf&|keJ^WEE_TCo&-lN z#kKpv;|aABT8PI@(n8fnWdL-@cSmx)H~+T6p1h+l2s#M|LjG&2rnn(`0HU3+Dq`2g zlkDAE3He2V52D5tdfaqT6ouZ4i=O?;ebh$We+INJO3u2!hqF)m6=sFq*&_eX!UWW6 zrbS?upFA(->3>@<9QATNH~%upPx%#D+5)2YpxPivvj7WCGA1RB_DS%8=TSDG)W*2{js$wKjef@v$0{d@MSR&jzg-Osg W;m literal 0 HcmV?d00001