From 881311b42a14879ed0da7dd1fa1ee1b58f41b4e0 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 12 Aug 2021 11:54:49 +0800 Subject: [PATCH 01/75] change README.md --- Cargo.toml | 2 +- README.md | 43 +++++++++++++------- src/rust_ctp_client/librustctpclient.so | Bin 74312 -> 0 bytes src/rust_ctp_client/librustmdclient.so | Bin 0 -> 78888 bytes src/rust_ctp_client/librusttdclient.so | Bin 0 -> 136688 bytes src/rust_ctp_client/libthosttraderapi_se.so | Bin 0 -> 5267746 bytes 6 files changed, 29 insertions(+), 16 deletions(-) delete mode 100755 src/rust_ctp_client/librustctpclient.so create mode 100755 src/rust_ctp_client/librustmdclient.so create mode 100755 src/rust_ctp_client/librusttdclient.so create mode 100755 src/rust_ctp_client/libthosttraderapi_se.so diff --git a/Cargo.toml b/Cargo.toml index f8257c0..61d6428 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,4 +13,4 @@ tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" http = "*" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.1" } +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.2" } diff --git a/README.md b/README.md index 25a031b..a36ddf8 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# CTP-MD-Access +# CTP-Access #### 介绍 用于CTP行情与交易的客户端向外提供服务(http/dapr)。实现一个高性能HTTP异步IO的服务器和集成相应的api @@ -10,8 +10,11 @@ 3. 可以使用dapr的rust-sdk来写程序与dapr sidecar和整个dapr系统交互 #### 开发环境 -需要手动同步ctp-client项目对应分支的代码,因为目前没解决cargo本地仓库搭建问题, -不能通过依赖仓库的形式使用ctp-client的代码 +##代码 + +把rust-ctp仓库的cpp_ctp文件夹编译好的so文件copy到工程目录的rust_ctp_client目录下!!! + +## 镜像 Goland启动一个Docker开发环境 镜像地址: - octopusquant/ctp-md-access:vim-valgrind-cargoconfig-1.53.0-nightly @@ -22,11 +25,13 @@ Goland启动一个Docker开发环境 镜像地址: - valgrind - vim - 动态链接库已经软连接到/usr/lib - - ln -s /ctp-md-access/src/cpp-ctp-mdclient/libthostmduserapi_se.so /usr/lib - - ln -s /ctp-md-access/src/cpp-ctp-mdclient/librustmdclient.so /usr/lib + - ln -s /ctp_access/src/rust_ctp_client/libthostmduserapi_se.so /usr/lib + - ln -s /ctp_access/src/rust_ctp_client/librustmdclient.so /usr/lib + - ln -s /ctp_access/src/rust_ctp_client/libthosttraderapi_se.so /usr/lib + - ln -s /ctp_access/src/rust_ctp_client/librusttdclient.so /usr/lib ## 挂载准备 -- 挂载: 当前项目文件夹 —> Docker中的/ctp-md-access +- 挂载: 当前项目文件夹 —> Docker中的/ctp_access ## Docker中cargo配置git依赖 @@ -47,18 +52,26 @@ helper = store ## 可配置环境变量 ## 配置环境变量 -#### N视界 -- CTP_MARKET_DATA_FRONT_ADDR=tcp://210.14.72.12:4602 -- CTP_USER_ID=00283563 -- CTP_USER_PASSWORD=10657982 -- CTP_BROKER_ID=10010 -- CTP_SUB_INSTRUMENT_LIST=au2112,ag2112,rb2110,zn2107,sn2107 -#### Simnow -- CTP_MARKET_DATA_FRONT_ADDR=tcp://180.168.146.187:10111 +#### Simnow工作日 +- CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 +- CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 +- CTP_USER_ID=142909 +- CTP_USER_PASSWORD=qq632386504 +- CTP_BROKER_ID=9999 +- CTP_APP_ID=simnow_client_test +- CTP_AUTH_CODE=0000000000000000 +- CTP_USER_PRODUCT_INFO=rust_ctp +- CTP_SUB_INSTRUMENT_LIST=au2112 +#### Simnow周末 +- CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 +- CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 - CTP_USER_PASSWORD=qq632386504 - CTP_BROKER_ID=9999 -- CTP_SUB_INSTRUMENT_LIST=au2112,ag2112,rb2110,zn2107,sn2107 +- CTP_APP_ID=simnow_client_test +- CTP_AUTH_CODE=0000000000000000 +- CTP_USER_PRODUCT_INFO=rust_ctp +- CTP_SUB_INSTRUMENT_LIST=au2112,ag2112 #### Dapr环境变量 diff --git a/src/rust_ctp_client/librustctpclient.so b/src/rust_ctp_client/librustctpclient.so deleted file mode 100755 index ec52e300f954013e191d1ba3713e644853633152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74312 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 Tqu~)L|MRCw$plLV3v2v8q;%9^ diff --git a/src/rust_ctp_client/librustmdclient.so b/src/rust_ctp_client/librustmdclient.so new file mode 100755 index 0000000000000000000000000000000000000000..f43bbca4ffe1bbffe7721e72788fc3cde777144a GIT binary patch literal 78888 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 literal 0 HcmV?d00001 diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so new file mode 100755 index 0000000000000000000000000000000000000000..bbd358faa6dd5d324a824b2a7d0d326de4c230e8 GIT binary patch literal 136688 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 YqSWPU+A|~Gzy57pt2x#S)=%gE0psI*3jhEB literal 0 HcmV?d00001 diff --git a/src/rust_ctp_client/libthosttraderapi_se.so b/src/rust_ctp_client/libthosttraderapi_se.so new file mode 100755 index 0000000000000000000000000000000000000000..e534853df81fb5cdd4b6f0fbf643b4be579c23fc GIT binary patch literal 5267746 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

EZ5<|6L?6Z49>!O1V{8E)=2 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
6a7`g_`#0gU5j|H0YFJe__&=8-LOCx)9} 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ⅅ#Yykn(}FN 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

yZE9$Jb# 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%0DJ4jJn_qedlMH+-n?q-ZFJ%x!<7 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¥nG_K&L4nj=ZvLasA#||%3fVmT*K|rVD_VL zCo$@0as0TxP8guBu#FuW@*ocqUc**j32oV1qQdyK0`%>+1d;{0a<>~ydR1C zgrGlwoe-0?pY@LS%=c7d2?vPck3&0~y7Mtv#webW+S%$x8^fGmsx!B#3okr1@>=lA zN6y}*f~=wy_v84A@dF}3rhCa?5WxuqRj

QLjb?Eb3N9f%5aOjl%kr^q!SEwEBl% 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

fMBz*@!xtOOt(y=JN^NWEQIQeN=WX)xMr)`aV^@ z5mmPt)p8Hr`!L;cF4^|cn&@)X_vden9!YIhE*NV@xG)c#z$ zl8HLXLd_pQRZ6qpL^B+V`iMr|45N!YhT5v4NpC`Z&O#j@N5!m1O&zDZPC=D6qNWd` zDmv4>e`Oe`rK{J|g)T)Uj6{vcFk~30uu__S73z0C!$CbN_jOe5qjZTcLrt!S zQFp)5T~koaF){=(JUm5{chSXum6sRkGRJB1v2?FF40-p^H47NlQW*M{qb@t6YF05c zY()L;K+S!EI+#LtX+%X`&v5q}Ltigc&SF%j$#AunF4djxIEU_C&yZO_SKYy|*^41_ z0K{lB3)6BypEM;(-+{>C%(JW3b; zgkkbA)cmCk1JMjmxv00XsNMk#j|r&GK|yCWIiK4BOffI8cbDm}pPlFQH# z!BDWAA@FU~ZWcq|Vusq<8*_)G=mblpNUFHp^2K(1S$HXbp4NM7Q5-no#>8RNOl=j z>7*I?xU5}tflhRr*XS}IQ|+}B=VH3`2)h4fE-#5D`zqb}2dcZ4rg)U%xt1>Gq$}mq z40BOC`Bd*CRI7u_Hc=@tbXy5fvQb=xg>xeV3pTi%}^dsGRTVn%ALrmePFeI6`o2nOhMf&K}~){6JAW$+CW!Nq{;51S?;CzC!o?6FjRD4sM$xCT!Kni zfO`0mF7q1d^f;<@J!)+RU2!SH#BS8*kEoMWxhcJ~*A7&hlc8cM zYCa8>)t{m0T85grsLUgDm(8f~1crj|>Fy~EHG5@fV|YnqIP8l$NkNtFWLQaJ$l8I5 z-hL`KX4YsIub> zA$u4$7c)$DMC~S_VsaVA4l@)NGX(c#Sa32Vk6>s&imK{_Ds-UE7BCE~XJ{!#74~B& zxQ;4{K;!_I+m@!ilA?QsCUb};u#DncMKixfx(Ju*rb?ctt7lL|IW!;XhSO;J`$#g4 zq?}yZ3X+cGau=fl_EPOvqEhxz5fb2BJJtolTi;*G{=3Y+=HmEb*PqW==Lj7+tX0HS*W6=boV8w{dBsL z6LmBlHGcqAc{R;`EzK|r^%0G_X-5~i3bmC@lfDM^ITdxh7ZtMv zstBcfzr-+*LRWXwg>p~{p{Q}5%Q~H?une01^e}F~7!EQ}xzD0%m(wL)LF3stk4 zpPm*YgA9G`P&rFcoeqYpwREXAbjKXJ_hg3547%!4hRwDN znV}3D^7EDk-F*_>{$;x66o!Q~hL@L6tJ$cs7a4k9K=r?j>NFVMR-g{tsK022o|Sa* z{c@v>n$KbwXvgrBf_jTY^@cG#hM+o^GYn)hBrHSihBLf9&oJmhoh?U|zQpj7&d?CW zP;ezf;0vhTEQY>i48zx;W)GpV+Mu4MGPGT(7YulfBpwPYOIa?MJYSZX-06ip?Xg#y zn#svhZ(t3=S63Sk`nk;5#BoW+=){pDjgblCMjIm%#v~a@2_wfEiK9l0HWCw(M%pVH zcDRLQvRrQ`QD0OtFWx7|fMb0H@0*wU3TrJ(kVj*EVQF!Ey)pvMjXZ6MFJ8p*b{&ob zeFIAdCXB6W9F9#^&G;?Snj)T)@My$ms^z3IR^EJOWwlvk`d?+Yb7V&*GQ_5WiXCyD zy_6J{RCo>gsQQ9LJ#=llG$>yD*{`I_!(vk&#r0Np!5C(WJFm|Ndkv2g$2_mR^Uy@v5^dsP$);9S7WtCRfjk{ThSgUyla)p(poFAZ zhCKAGWI>c?p2beUBP*l99v)EO+GZ> z!MB;2VY%A%7wkOC`r3&{uik3w(YQYwI(pU!&EOhumKifB7wV~{_0*2vwSZ~Q7BJp3o|nF0w$WnVsfDOFLm5SI9Zg=!k=&6+aw>3qJDF?`;tGL=02HYiQ?0)m|c zk8x2*^1QdIh7Z$%#7z4ohRSM{Gc!H)l(EPq)LZ(bSrnGqFzm9m-T^V^SNi4`)t6Kl z4b>Gqx8s?yS;CigXoV^+ST}T|x<;E@d1zLv)yJv7LQ}()yuk4pW$`~SA!{?U#jmSZ_zxXX%#i~<6SVVJcBEl z&z!8LAdl~@3q;QU`eu`)T9cLj)U=1_Dh^6SWaKX(SL#)xQgG~pe1V=~iMJw8t^A&x zd}gV$P^%vBNhw$nqQxm!>ndd!4$302(uOTXZFMN=tVY!^k)r3TBX8m0YIcuBL47dx8BsrJu< zDPG<%c@cnDF-VB=Yb@cN5L6QF#NY9P0-CiAb+t7) z@bq^O-UDeOuPf1d!@#UoLwm3^`w0+JgRiLEYnIk9u@WW3Hv-b5gRet1E4otfbxZk3 z4{yD#o+e%iBnn-}*Ft%Tzh4Jgt&aD)wR)(osg7&bLt{mI<2JvjZXR*^)EoEKaP)hn zf7_X>6JgFa03lhv}|?d{D%3aG{5;pjmj>q#NTYKa9k*Zi>2e6=s0PrDfLha#w3|>e{W*p?MJBqU!phMgj%L+g#o+gq(l82`+Fltlrw!g)MpT%h?qW zP=tZcWm}W;x0WVif%w$erYb|X8531TTVY<3m6IPNS5&QvnT}%S#_>&%^`1hm{?LQ= z9!SZ0O(&3GU@$W>b-!tLxqbX8^&^Pnb3%GOR@jrt>`a3_IoCf)DK9s;b@WCap4A#H~xD~d+ z{jdw3gnjT59D(=X7<>&s!oR`!?hhy1Kqu%4{b4AKfU_YTra?ZO4<#@Ud~gXYgEg=L zZiQ`dKkR}hVIRB%N8mj;24BOE@NaOwNBYnSdP08~3M1fbNQY^V59dP(%mW`JlmAP^ z&3f%XZVKYnox#Eptxd|UJ8^2P<$HfWFbg$>nuYAIegoFd#r zvr>XpniI_gu`tU*KB3igT8W!C2PJO#J7vCF22=969OXv?7Q=2Z97f9p zeWA4e780T!kWhCj@@k%X^R1~=A+PP)BKi$)OP*oJdNojm=FAAZvdrx@FQ8PGtJm=Y zlMySRdlv5x=4a+)H#_BpT>mt@NwpRRXH#ydc;T=hZ?+X&ooDh&VqP|{F{-@yMKXDd zFE1lIzu6U`niy{Fi{dR_dHYv|7b_ZlW{+e<7$)t?4Tk z09ciYCF8?n;xmlbwq+KtUcXLgrCf{n25+MO^3>&s@>C_=TKv|kfvyXsZ08lK){P2{ zRi1-I4WBZ9C{p_(%u6qo*`IwXL0XoB$m{%wywbzgy-Q(9u|H_baFQq84GJrL^em>} zvd9oCrK-Pf4PFl#o?KL1!i$ut)_dTAg`(loPX@A1DyF}cDz_#JWpq?Y&!^V7m3N$x z+E8CpT{FL?!KZ()N3T=*j6BwB)J=X3iv!gxliGJhJ|k7MWhREzw)h^W)NZa~w*__c zq3LluHoQ)?Z|c#PSsK*xd@``rl~(HNXr+8(i{d8A3|0y`C@GferE>9<1nhDiELCu- z5Go7)K-O7MJ5f<7*SLwaPCLq`0q`pFw~to84~Q*3U4HRwncq`{@aIlZAP7wbdbW>dK3%D=$`eaDJ(5wPHY@ZSn}j>YyducFJ3?MC`U# z7z@xs{=oLwG=rb+QtK45K0m~lt5zYg^V2r`&V-de@nFf$FUoU|%A!#)V2a~tTb zMguvwGH%!_o06=--4YjL<=AHgeVvq>!&gl*byAku)@LK)HhYFAHA|g(_-Z6Or+|<0 zSm+ibk1trPlu-%`>M8SG>jvAa&U5+dfya=nv7O6z`=xb7e8(uy zc9dJdDYeP9qy}G$x?w1z`G`fW(G0KCtw*_(vWiqIznmv^m%&M0C3oR0N9&){lS)$G z4EdXt|7W(EHKA1}e?0knY(nOA+=%}L#)*^5H5XxC2x5xcwQxJ+6!3AIdZ5HtwtVzZ zFk79-Aj+tzE;H39_jxoxmKo};k4j62s}GQ}r6fv+*OirwO-j-yrP=w~);KaDLC+2m z@;@oozTVQx+@Saxsw-tVIZv;Y1?ig7;g$BhSJLv9%W55q9Ng6K=>@H#N@C;_ufScq zr5xoOFM3jHdb*nrI`|F2^t{a60=Y+QA!>bCk(rxp3@jaP|7Y&*w=Vg40oB<6PT7!s|7}~K~uG!-=M9u>|{3|OQ&WP=6li#^4xBjpUcvo%+ZzU50Y;^ z@$vbC`W=k%ZBLvmg>TxOI4Sm9wb>2xbIw~_YHdlS%mPc@$1h&CNyY>ihK!HFwq-&^PW)+$i+%k_VKf^^kC))Wdi>5o_IUd8DTtxI=Dv zwRJ%+pfsv`37Ou@^9`~iFR+yGX)~IOC*IoT|Ls!oW%S`L#i;h-ukHEq(=(^L{m&58 zdXQQU(jNL_Mbw|QR;15GH~IrH)Ttn;)r)vwZ#`?Vp8tERX#0kIz+GWk_#G5bkYgHUF5u6P2{jUekh1qa9^kYG#KU@p4H});?HGBgt%F1UgaUSOp0qJ`9gEHjgdros98t6o+L2PTXxWx=Ke z=NVIrs*OqBVm=V8Gg52oFc%q98>*p-d(CnqpYO|ZSXs)hS!iTAMZKm%4=J*j5!{PTuh3H;~b-Z zb9q+T8VSIc=!QALG|o2lm7EOvGnAdL0ZuATx=!*&r3?Na{F7%y4kK2l##alj7?-j9 z4E7q2Nr^G#D~4A7*u6Z`h*7Y6{Qt!tX}WZh|Ciyd&>=0~w`p40%=oI+ddc+E{AtOI z1M`bqX>>|_W?X-#dQh%p1+iQP2zQy{yd3-T{ zP_9EWxs+4H*YOX^+3RY}^JnMBzOKY(@!8F^YqN5(e~8YG?^JSQP7z=8auIzYe|CK8 z!3gKg<#?>7{(eu+ez5v`a`pn3EtjI>x68veH)(hKI&D+^I1_%h+=E)qj_*|0@z5#a zv*WQ%**9MP?D*_-o7dYGEnxfGX7l{Xe)hrf*%3F7?;B@RInmkjXXnGt-?z==n)fSP z?z?7kZLH{8#MiW&%ZP{eR7*?+%z;`TmaHMEX~>595`9Y`xH$Ul= zCsScUVAF;;c(OBR8kwo1RHXSTMI&u`t}!z+KQoQ@CksX=8U^kwetTz@jzZrPYFQGJ z2uYi1db(|D(R_ZW$~`MrkkzRIBa@iHIw4=@=B4HuNNLkLCy(lUQcm7 z{B&|u{ZA*i!p@5<;v0TC`6}n)XCwY%FKy;-`-{7cEoTsqV4pYlf98sxPJRKE@Ys@{ zPP$+oT)3F@Ay&UIH&}ki$K(fCJbCh{)XZ?_7EFmU)V%|btW4(UHS(=L4+lo^qY6gp zgn@C)w<@Y8$a~BjM`E;a<*v{)Wi4es6JFLqWua15R?PG11Lg(FtzMrP@`{RWA1_@9 znTdveH;dOV%2~paSCQ*kERwgUql{$9b57b+H%&#^r8T)zvyEgP@tsdIGc!EXb1z7? zJoTEdbs|lU8*KSeqvZ1qcTT!AEK^s$YIgn;6+Z=Htr6tp(I)iM-#j;ufUT@1CQh_% zBmB0Je%q*tG|LQkPEcE<{Y=SB*C|?&B#q-XEiQ4a|2EB1uG@MAnbz##w{(=&N}!^d zJNpJ!HSi+3&wfumxWCsI`hOot-h*%AMKYuys(@P`BFdRWT;?U}(b8p6lvG+i-JCT} zdHfcow18>3NwOp;4^O3KS&NMFvnD>?g-^DN-jtu5B1&3lUS3XKGPj}fi}ySlIDcU2 z1vFUoI#Lu%m8?t3svwVK)x#fo<|=;&ZvW}zEq8D)0Oi;(+x*i>2X=A0Z|hGdeL}=ko?&1vj>|-dK$l9g=!2g+D7%Ho`P-a zsH;LfpyXGt0yUeTJ1rIEW>++)nFdcUtE6A?&P44zewCEF1bK6U7k^cFe!V3S`=aWS zc-e#@zKGYfN(y=Du~Kdj`y?QY1{bx+*Fp-;;GjBzzTM8b$oHPJg5(3 z+j1(dVyU{hBTqhYYWBAved_S1cJ}!&;_m7HhrM@?i)sHKf8VQ_YNqKj-S0Iu-S7AN z{UU@UAxTmRNs?+OskGB}4ecaJ2q7U!k|c@U4hhvJNs^ExBuVRiUTcc&v-kI$-#L$S z9*^_K@3ZPT@AvESzO47U%*>j#Uhk;l@$E0e6&6`_S=V~jT=+vI_^j{YYqtZ3eH4nm z+IWTaer?0E*2eBvJFs)=zBM&Bb|rTmrpm(ORZaT2gqGOIyn9(+lp; zWPjn$s~U7W8Xh5GF<#%=)N<61J7royQ)O84tjk-qyH2EKo{}5>d5C;ovW3a68$wE# zVrJR&7Bt7G7UAciA2(LT?ToC89qZ8*I^o^ySkV}o+b1K+8sg>~(IsE3Rcoj^uhV$o z<&vwfGJC5IZ@!ay)b-}R?zkY+%ycu4+jgUOqNWNx*`K^mdflN`Rf!RH?2|#$r?+A^ zX`5sRxk~l%$#i6FxndHclVwUjLo2UpU)g5Bx_t9(+Uth)vDPPQ$_O56tv|rvECUQizAt0yt>yoy6C%L;-HnK~<>Z{5> z*mddG^6)i!DU2&=iNxE_-EueNXW-@-C9#D`HAh$GlWWO=6@2BtlUKUab`z_1To_w9 z?~Y`FOV4fFinNc$!6_<7Rt|3APk0gf{849UUdupwH@kl)OWHb3sPgoeKXe}UDDVfC zDF{cONT?n(DU#{YG+8~*;!B(7{yFk3`*w<3^rsG8-4HYT{LRl5cb2SsJhvd5`B3GJ zI$hf9`PN3oIro+pU)p9-w@_RA-lyq&dGhQP@pbJh+fER>7GIsSS!n5ovgC$2h1XF+ zL2Sv_>B7Z?>YmQ`$E(=0rf)jlgI_c=R&HK*c6;8Iq^nO?%|1PzwTShxpl83K&!Cyh z>He6|^1S^vwO8)icrElxRb?l{k*(pUlDbuL(9Qf@8#2 zYu}d%kvO}r&cwaqD9x2R$be_)MEuZIKx~8>cc1)u4 zpXHx7UwE0`^rw<$7{64nM|Z>{O}V2L5r;qToH=K2g2i8UB}Z$0_eVJliEf>088K&$ z;jYT#e|G{|8PuHc8_-vU=9)yBCEmOWFy zw!kZJ?aR^K0};)UCIwp;)~xr<4HG`d*|1+UJxceJ{i$fCh4`a-8Ix1zLp-}izCN5U z-!}9`~=tXOl@ z-^h8aE~2rkJ1i#t!$NvR_HN_oEDI^+^ea2vHYL6cvl(dHbU(g+>(UdKPU*c&PVkm` z`?@#uQ|E{I>u;Hk?j^#7kgH_R!eesP+pmAok=V5~di%!OSnDfgUXj9ztL(1&SFlb` zAMnA>Q?4e=uIpfH9%d=nC4Lf|%NbP5Dl48bwPs++ve^knteKLr`3B|A55|VW$a9P$ zR$RGC^3k%qBLxyJ@p)bsat|?!-K@TBpL{o&I4#43PX9b9!_TPygUalmx`@z!ozCGC z2>i(U?=$+(XRnF;_wOFmcR@&zRI#uYX@Sqdq#ojXFGs;3(== zFSrvL!u(PCiFT=1K6px&9|Qm7@w&i|SAVx`iH~F4Tj1(Q7n_hR_&1 zMJq^%5MnTEpFE*RXcFdxHDOCQ65fO_5l93PAw&cbO~esNL<*5X>>zd%c|;L$j5te_ z5tT$WQAacqcZg=<0ntVD5>RVuTncn0zcgWj-#SA)h&)EuTG~E1x%?FW-E=0KQ

*VX<>*E{b8|EA3BWV0I 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�$HRcN8w!fPnOYA*RUi3q zAIhIYp5=MeaDaZ(tAIGIbo zt)!mZ9<*bLU--<)%YEU~(6Z{czbT*Yi+ZxcCJCoPIPDGbHKOx-uCwc;L zt9G^$Zp$t6yrVm)X8?KHdp>a$_2QR4 zO|{le|53DaD0%3e*E&hKEjQaOK91Z*`NH|g+w&O@4^uwD`==Vu?@~VE^W)=L?$5$q zTzT(l8q|gJftTP1)pLn(8|P`h*Y6$bnM0oU&W*W^yf75;pyTFx@@P_geR4Z_k>}nV zK>anlqTC|SZ?8<=ggk#B@~w`)?a7n9!4IT=dI`7fn;VRJp|=`y2IbS;&`)bn|K;R~ z0}yWvPcxT1w?F!0Tk3yLxNEP~@qSUJd~^xwtNyIt4gL@JKu-nBy_LM|?T4)B4nKrE z_eS%~e&mIk=r8J@R>EET-hs?Bh5APcw|1ri#FggNYgFD_2l#^eGd1C{gIV8=x4)%J59rTwzRhAyKk^*kpQ7zPj6Cnn8#BVK{i)GtFCEt&5pLtkT#2~qNk6>nU6d;mY|ykY~n8IN&oE9L(tFMk66|3ZGyk+8q; zFX}b6GX5}{yxb1`TI2I-;dVZs@XlkLuX=dBtoD2--1@WR&8z$Lrr)y2OY>>ZAo76w z2Hz&n2zToYwL(WU&Sz3Sb1VFyQ(C~v`fjG@3j$b`ZobT;L@00hWktevW zj@CEk9^p3L4EGglzI}!AWsYCk@0OEi`M#K@^#5k^RDHD9pKRcYW6-`yuYJ!aPkGM+ zt`%|Oyck$-!zkQB+ zqKU|OnomBbo)pJNWEEp}ke4fisGT+XpxpF1ar+wzw|-9SgBH>JbFAZXy?N$DXTO$v z5%okXghwCSO9-kradQzcnPU#yLMsP@$D3qNF91WtqA_h~5H#zUzF;z9dePs*3Q_lQj;Pftb1(m2nmd~?j( zGqm$D@&e!g2yYnk7P)DL>yaBM{~38Ef}I=5w+XlHYwp54P5sm8c+|`Ae){2*?@k_h z=bxNT9vl*npF4$HKa{J)`^AftFXu56(E7fudbr<7{r@3({!xryu-2IGoPOzFHK#ZW zwcTr;0Q*ZkPf7IzI_IOO$uY9@KXJ0BxU zp7Z+YGvt}d(0?-RSwo&$inx7_{Co0f8)gFX7^(Z&Bi#Bq`yV1f^FzIU@I&fP=>Ld% zdJ4Dgp7HiwJSyDHyTTbxQvLZp^(4J>{y!rRcS3(p>R(Tu`3-UV6!}i_+?jzRmC5V( zhdl-Fx_G8=H}2O6ouulYFWlyTIcUc5lc;AgdGt}>2v+BeSx%l9ivHf0^4|z|^Jm_# zK@=JDH|2|K5N}z^cRms27P$U)GW~rV&4rDL+~DJc4#dFEHjt z@=QatOS&4q@CbP{3FGV@>e(#ZwoCH2cz>)v0Cr}%FO=!TbRZAgVjigD^)2M7hvENI zsQ-TQz#BJT7H-?6bm>edsqOMT;Zpbl$3LoD4+GtXLy$KWp5p_(WzGd|9*z^*TWr`=z9rvUPV5WJiG>R zrR{hfd4|`mnrEITj}DBt*Ix4MCX7eC>@y8cLwz&e{>F~viRFlgq3ow8kw@zfa~7UX zK2mwTc)8D!hYJz6x{kD*Jl7kZ)N>5J7jD}(>M_yj*Y-Uy4Lg(Gc?F%xBX6JcF~V*8 zrh3QQ_gu;+x}Y7=`;3`LUOo)@p)UP@z0)J(dnq30&rv>PzSTVWf$F&l?R6scd_|sb z)5(!`^xMxWKN9{#uNRTi8HXd{aoC?c@8#8@muO=+_0>}9u`Oy4!wQw8HId2_o zBlYCQW4zPxa))jB3 z{ycfwn@?^P?#6`!Mmb3x7iyisIJqCaOnDRX(y@V)|D5AXEAsN~Xs=x?x1(?yhv9AU zI2`P_%zHmUJgEK|P7l8-dghDk9hn3LS7z$ z{Eyj)jPJ_t#CWaoTze4wQ(A;byPI)1fjqkuej7r2W(v1{9>jezbenmM@`bYyxAQ2! znA{v#-w{NwF-7GkL4GjhzacOEf(Ut=d=Gi9F7n0;mGOr|2BTdHU9NCI^TSEPZQd^Y z+{JN}V&pk+@`>mX!>Ipe4Ogf69@JhY!gMljGxNogt7<%|?GgD;v{V`Q?aDwWqIe8$V&wQLaSoFB2#q?2gCt zG|DF)kK2DA<4?)E4OFL&$Pnr9c(fY{@;bW`1JPsU34z$RjL&@`Od7@4B^)PbbHtjuNred zO1@?a72C!*At zGle_9eH|Y!u5est9}VO7Tt_{nEzt8c%Uwb}0*x^h9KP$xFjAUWfCb zKTkb}3Ag<{=mL5C)tEly$yLa=+F#Pjz4<_>dRoBFs?8GG?yx_> zMDRG})8|2t=GA57<{iXyAL{>{ypV~vZ{zczzxaGSZ}b;#>l<=kvG&IaK4@Wg~;49kShdehC^Ut;w_`?vVU*^f@ArcalAFcA1EcKMh*<2?tlMY!#cVKbDg{c)%2=kq%nSBH&2eN$~PW2gCMgm4>I z**5WhF^BRQ@4a}BkSEi~=aL!S&r7N&8Q1e8c{vg1wMN38?A!2jW$I}v+|C<^%(%so z8swcQUq}Xye8~1XM!7dX97LW>ba(PP?u;TYCE*8n&zM`u(>cuR^!j?eaO)q#`*Aw{ z?lTJZ8}E7fX2RX|^;1(_xjMf(hw?e^zUS-Y#TCeS+K-Clg&~Ny9!{I=%Oy{9o}lxw zzsb$tXqQ2h-+wgi^v)$4LS7!+)JbZd8AqP+?n_Q5PktQFZ?_1y*EP9|;mLsIK1lgA z$0;4Zo*^&&g>u_cez|aW-TLQ^j;PlXEtNp=}g|5 zywERjhaq=MLQjtpguKp8g*8Yrp6!+~t2ye_FU5_w(L+KR>0O1fR2Bhw7Rw zoqoBW&ifhxa`P^(cThW7Cl~(z+AsPI ztYe2PR`{JZu4_KLj0)wMNVGg z|HZCOLtpBdM{Z`LUFwrRD%|Gh;J+!3XntNx`RI+N(8G4$BHa2d;rVUkMetkU0?c!C zJ^V59koyv=vfQtPTl=MLoMzmOm9p?p8#Hvi{Z zLw`^5p_GrNVLf3d`9kuvcm4Ymd5QCFwSTqKFYBLg#M|o^%BQY}JttECKjhgan90{5 zuYL*Y63R^F04#pg6N20D|c-$o?pJZ*q*+b%ip`M&v-FL}?8KSo~o6YblE?fW`; zemXM4)wJ_l^3+qXzYh5p@@xk46ZOv?@}#%VfBy{XTh6y|8oE$VQ}QgY7m$tRJ`Q=v z^&+kBAmKJ{!$CJW4H~yIoII7v$2a_SKJ{e0_fXtNp52B#gX|>tp~zEQN8)g2)+(=n z{d(Q8nLNSwBB2+^evFB*GqpIrF4tYS%kxc<&oLV@=4A3@4fNC6w0|_Y;duo*PEA(% z*|1#W=SJm+LGzi^^Nw=PL)6ao(ST>Rif4Hz2~*&Wp&)-Qgb{N2ZgPmLNjlRhj3jJolq&96ql4+o8W} zUfL?$_LtCG=kIqZ>Q(g4d0Q;puB&8ty{Y5oGRh~1VSHRxfeLSR@^U|v&oyg(t6WC? zf5hjF=L@&?q`dwApHV*i1@gL2?2yZmKXU`)`Lly?t0zAn?S;P@Ge@|Mx7<(gv-;;@ z^5iXO_qJ@WH^?LIPaa3UR=B%vs)BYzt&Q13`EuoEPEzBi@??}-o`7*y<8z>JXXokg z_6wWoYoyxduokDh=ZzNh_fk((xgBd>A1_?$e^ zrn%$uEAWL9d7*?B)cEglCG1am^Uv$Zi>onizCry9$dgAPo}VXw(Q%Yz|JCtvCFK); z2JVj|DZf$mZ-jr&rJXy;(+A>uyrKJ+G4-Ze|H!`Fhvzt=<4YgMC69H9`)z`7+rNS# zC|BeBTJrLZ=wI(q|041X&-*=td$iGqfn((u($8IK1*MWZ;R>l|VTm^ed zZ^g%jgURzNF^+2^iMzXT(+g-{i%PFaCcolf2QN=pM{jqa6hWfx8HKy ziMoI8;;)~mJkKxH@xA2q?_&zPdqJ`aKDJZ7)CDa*m3nGVW51{f9661=6?yVzT$jya zJlwAQdT`CFo5=Ir7n-1+TGJV~%s*$5HxO>~Smf=KoKE?`dmb=Ho?eDH*Xy`v$P?#c zT+{J%g>c(X3x|wyC2GF?f%3_(5m(RAp5IiDx9_6r42)kcH_Ozx!Hbl4ARQFlJ^|tklBp?FXR51A>77i@+^1q2t{`@}l?txM#`Bcf-QX z%u62%w|3^c;R;>z!zS{C=b!Y|@K5T8xPK-IclL8W3~$SRHsMx(;62y8f%4HS@%HL; z4dcOkZ|sr6?e(?UZ-nzePx|2`$K^RMZ{1_8aJNt9OvuA~@_q{HPmgWtG!&@kM#`tS ze^T>s&gpMpid@fBKd+#ka6)sZ;S1{dl)QW*#=Bk|M}8rXy2Y;xdR~kAhE?D(UDq8- zp1%k^eGBzZ6z=k~cmBiOlutB|UoSsKo~)1dy_0&rR{gD@U*~ndJN>f1s9W66dnsS) z2|Lr&bHH`5-#m|gaXk5v2JpU%_yo~eYapZ+sm>13CxIbICt?vNtd#OY{ zw^2UF_thRt{u+7o0^;f_@|xGf&eWN(^GYf@Q@GV{K90xpM9P;IA+u?oyg_+S^rQaN ze~;=P3V-UnZjs7+slXrFkVnlCZ^uyn zRPw?Th=29}^TJ(z7=@noY8`yxXO;K%rR*Wko`Z4u1nS>c0>-uDLGgJ@JK@%!`H>i3 zYEZt9a9eJ{JLmQR%BSlhKU~9lEmb}OGY!2?{EWPGE!v&k-E1LGdFO6by3yJx>x75J z``7-$ZN3V*KCk_&op5V^hR+M*s@#~P$P33I&i`S(u2#e3IM2~M{~G19 z-oBSl$P=fdeN|71Jm>8Pu5=UZ%pL*%=)AfsdD?sLc0b|Po>Fzh$?3FzJmtfuunw~i z`DF6o>^6?*I5>}bir)K}YTS%?NOPZz=IxfkZMo$n%2hucE8O{cGkWg-%@4_o@5Sx8 zki4)JEwYLEJ68YP zOdh<9{-x(C{6d~y4?XAwQb?BVHLjT}@j{l{Sh(#+iG$IP)Nj2gUpfVL-bneO!mU3O z-g9uTtA3tii71tM5qX;DVIDv|>x8>xd-J8%L`d(^$A|uc#UF-nrD% ziM%ud^}2%Xaw>W89mG!$%8wRq?N1Jbesf_ zF)rU*8Gjf~UU~!hX9eY_2)A*PTZ}l-acaKfa$o6WjC4A$Uaoq&!A|X`HSU0(!ejAx zJCr=PB(A@QaF-uA4kl>N0P-B) zdASVD*OG50&wl|uh<15z^_{RY%jbr)zlY?dvoUi(uQBE_^5VOQE4BYdFYdBt7A zo&UGT{j-ET-!YyyKBb<>TbFBf7wk;dM7!v@{nNu~YOq{9>wXrJN3GGb z{vqE)p7q9&-6}s8k)!#){sPz&ZH-^IHYLvH$3-D=U2az=Z2wOYOz1oyBl^UxGtpfP06Fmas4A4XJPVDtpdMaPWeo8^!MTH zcQ=ve-$Q>N$gjRYUi_)8BfZGqBoFU|o`8HUdE%IEj#MSzF5JdX@)^XB=J|c^0XHwl zB#Q%tbq*)nwQwPv3$(GnC~%LY`R(duEZZQ$2UU&wa^v zkf*%sn!^`zK5#fP$wVfOi-bGBRgLGvS;DO!%y7)-pQ8Tx)|R!{2Pc`-dBD4%=*x!Kojmn7`t>mC>3u)!Oz?eh+P?;pN1r1vX`Wdq z+{TsJhPYz2%->F)M$5;^{5A0a^k-Y(dVDQ;2lB#P=)a157J1@g^a#yMcafL5j})~q zW)Zn*f*IZ2)U(lX{zpEv|Nck$koN}>T`~{MvArr|T+sM$M;`5o`(ZM9dG%qgkZb7A zIpo=s5a(TJ!foW?Z0Ohd=VIm8p&w~`y{nw>0jWkkJID*CA|LAgyJ`>8{&{Hk|Em{y zX;!@49^~2H(4*JC1BBc7EY+FhO4K-?M)~L~_(8|VHz=R`4l@ds|Aq3oDVRCvIJ?`) z%Y7(s9j4|(u)i>@sVjFf>l=_4Ij*&$pL>!AoDVdk{L{kieA}Eq!Vzu9cPO9y3303T z*L)b|rf8?e+d;x@J~VtzQ1$ete1`j2v|gu>2h0N+pTo)X-t%tDoPNnCJFj$hs^9(; zZu47`&q1i3gC2pMi2}yQ8mw<8;kG|!y!#;cQ$F(cvAjb06web-`^)5}E+SL=%kW3( zpPk6(nzv_>Cwabv=8c8qd7ks8cD_fReHVIW(EfkP)5jw|HSg7U%=%yUAv8uiYJO`d z+~)bfdp@)yd2$KjU&}p7xQ&O>4bU@$<&GC_{g(3Hzw-h0819GBdEIv9T(>-$da6GT zJw@+*0U6=e&d_@f_geDIROET}|6Sy{DezBQ#`y~B54>~Fx;+8?rUCk+-tWGgJiRaS z?eR>|S@OJhU-drW)(<)Foa&X7FCG}Unl4~{zf-;i{aWYqe+qYg=Dt3BOU@yD68$Lj z_NyNw-1;ZY^E%WIqsR;Q#`DZGUd{%j2YyGJ5k>+ss9G@ z==Zq)zZ7oE&2yglfBk~;;j5VEsNbqRjdBZ((OwTSo(~`|dG9mrNS@e?@pM`>7}Q(% zep0TNH$OJ)6i=d>^0s;UDrOpHt9ryuo7VPkHAr9VXn`SsnsA6V!hcGpQ$8AjcGSGLlDv2Y;!62UkD3jV$@T&!Aq0 z&wU_k8Pke9>%CX{IP%08*ooP!oX0HO)+_0qqxdFy$$QU8w`UnwTqoCY=VbEC$$_&_ z=L2VwmnNXU@234D$c?w(;9}v{o{VSDSClW_fN=`h)tFz%6TGh1{IHw6?A^Djm1n$t zi+PB~;icq-f$@I#7I~J>J!xEhD%{3TGz0PT1nad$xEnW51@B4z7xkFi+c?sfyv}p5 zC*(OBmB|~Er~gGBJE{`?a143k@1_oDTn!^H=P_f^_3Fjs<`v|Jvp60t7jFGr^w#%| zdfwJco&)7NtI=8!7S_kxYZiIX4)yw)@>%lCIz;$%`t1+$(pS)<@j3oQ=+E+fk=oy<3%CA> zy!Sqoh1+>)p~EOwqUQOAFF{XYcRk0^i{&{`@^t0E@jmWfIagoho4^wBtoyl4xVx|9 ztyf&Hdagm9JeTtKk>@W&y}FQp=Jbf2-QsrcqI|+T|G(DD*8czfXnttoxcGthO*&H~ zNuKyIp5Klq&wURLtK_)@^7I?XW4cf5a^+3Yqjer~gK+Er(0ecZuaqy>Y3?jh`Ms1+ zb6pgzAp09%LA#`Q4#qIr-&(j^zxo+1rFr0Z%17S0RYS>>pTy&5x$0k!dY!;=^E2}7 zzwkq4mb*oHUyLuB|7$EkJ_)Zw{A-?XDcr_?`N6}S2E7k*v~unv)i@li{3F=2KjZ%b z>JO$uzvioHl+S+H!RgoW^d|DeC`3h;dJ4+dK>jFJ?0xdgG+fUaMih+AZJdEQ*O%ZCjnI!Vok zm0zblwJ}~`^pyRj8QQT=VmOAF90&#~N|!kzw(m&Ejsq`YYW|J*?N%gOV(z>)VW z@P`FXkL>$p-qZfFlJa3o)b|wX`HsBsKK!ZU!Y<)xXK8jWwb(cqusQ=$q z{r|$B(|?EoV@g13#Z`$>e)b^TY>TG zPWJbm&F{PpAA7!ri)A9^;yh z3#-YK-g9R^3AgpidFva4mcssgYxG~u!{f>WQv_{|A#Fv>fFoJD^3zk`Exy^ZX5MuXD+x4U8YkKd#(6zpg-@s6f3|QT|8e zRWYy7dhH=kEr*?&&ugwg9Ol169BO^L2)BMSKcQWUY?u4U3vDnj()_cSJgkDua18BP zLj9R9;`+aFT;>CZ!p}Nh{7OB=ig-K>ei!yc%-dS-`NC}+X1)FSMarjnuFE#szn(n7 z_w%ZrKgkQrV88mU?tAn@H{`22OjFo!@vZjSPmTJh}wTQ<&C$V{FrdtU&5Esj(<|mGRo(<|BC6~d`q6X82Rv2w##nv z+*`=2*HcfeRn~sd-yiWaj{E@OHa^1%$ed;JKIG9vj3e)npGR(nqF=m3o*@q|#JpXv zgRWG0?oZSHaxHnGEA)@1o(IYEH{m*W4EbBaUEbaf%@yR0--rEq?mI>4@;oeg?nbnW zmV1J5t0(Z{e5r67Z^1_R2i`Ddv+92t_MFCYE3c;CIBqiBOhUNxb2qf3_Qyt)FLNDC z`%8D>u3iTtgB7U%O3EkrUJo5N=aOeev~iMXeR-~dJm7tNt?x_Z#o=-Jm8z!~W?Vlo zem0WlyytEI67KT(1k@`wr@NuOBHDQ!dEq+5oA$3~g}XfSE!tiC=@*nQdGA5kqk6`7 zg=Pj~tu^pN@)YRT`CC)rHXfq-@SDcN;liyS%6G$ljq?-9^KU}`o3#IY@~{Ttxig^C@+#{&I+8ou6KQ+`g`O0LifdW`v`Vs&O^KCex5VPjknKv zv~Zgz!?!Pr*>k<)vOd!S`B3}UYt)mdj(pY2eM_E0CC?P#&tJ)R3%C8Ha3Ac^@#5ej z>@+99Kc7>+4SAv?#v|>g#|pRY9yW>FGe)?*Udy$_^_tFaBkC!Z5Cng+W$VmS)y_H8TDkIhb6kdx6LPPual9N zx-*{pDfiB+97-P4fxONiE+8+i#r&ZL{ct&XvVA8-m zqCI)xHt(f)e;?m6W+~-M<1pXo;{x49UymQQxCkZbY8?0RC)Bem8k?JLJzNe^Izwzgm5TBU;}dC|_EL41jORds-=< zT60-UzR4G`vor+$M3fqHIC+xq9X^re4iIkRCmMr%h-fh;Bu~ABxYE2mQ}yf*dp@C_ z`^XbN!*6rxx4%{Ye(`*J(3h|?;`+Jv-`0*(seJU{uPMq0H=tj+Y&XebpU!$DQbE$vsQr@w?lSC^U^BQ@M&rSED|5pijaW!zZlh?Q^3%CAB zdd~&4`wBeA=O%QVJzlu&U)h6Di;Jm$B;_;S``uPkK6g(%Zoi>?)_eca@#|=hcb{&V za9eKZy>EIed2tN-S3TPEA9;rFQ&XQe`I`3k$91uuqcvT)jsMb%@i@PW^7(ra4d{-0FD zZ)Z`yxDw;eEz~oLJO~jvnkQ$IXSu%Al=2S=xAUSl`(j?C@$f9=Q+46bE9w7#g8VG^eTma^W^^OS$+w;TG~} zB>c9Cek+p~UPph?amsuTJ<$#DKo{z-NnV(WdD&Zz)55KP3X5U?_q6{W z%7-1|D%|=lzr2;x zQFpJEPIX-Esrw7dorE5t@z9Apc`5jT)PK5gJ5Hsm#_gX@dBf-9E}{JG z2|R|HP-G|Dd!ZsRA*b1k$T-xO}`FMQt6Nxn@* z8=d?yc0Ne#%wCt)9@^x3JmC(+K(4&R_o(ZtW>P5ziZqwm^Tx z_mXS-b|=qGM*Ehj=Ops5KjKQ~lTVNrIgSse{0qWuxxqA)n;`#yymT{oK>iE$L{nhN zNtN)2W?Nxrwh+%7hm!}Rk$-kj&oSh=deFR`dipy~A^Dg_elF$HrnUPcvZef8xNEQJ zh_@O{+|N)x+W~P>l`2;XxA7nG`3vo*UkSJ4)c$PWx|H8aJ;l3GU(JWLwxPZ`_AhOh zw&aCd;(0Gap5XbkYR|R8ZGX>I4_%4c-|wJ&bT#U`jDC1rxUFy2d;X}&cGzS1o-(zw zD|y%zaq<}Jb%x{ok9@q&UoW71k>?(u7V^GY@{IR9#goFVKSR!Yb$<0B8@rGSs&+`7p|- z{)^8mmI}A_r+6Pz?JrS2_fCA?`v>JS-g_Aum8r+O?|+PNJ3omk(2hsYp3^CxZ6D9W zvxGbQxvr(-{*&a%Z%{9NKBf8&Tdv#(Ja3HCta-J&aNDmVj*sJ5?kSW{T^b)Brwg}s zCitEUjn5mYCp&h8)1Z0s38zQa&ws=GQ~g#HZtX95`x*ND2K`}wj3c^VWuR~?pYhJ~ zTuh!n6>&0y_ODVsd=97=`IqFGIZYjz$8qO(;nokSTVQ`c`6fG2uJQI2JRscqA@tr8 zUGY1(xd?eo{d16Tt6yH+;54iLHk8kPi+uPv%RPoXKdzf28s~$A+c?a7=WJX`UhWc) zlSR~%;Qn6Kvzom0X%nX(vne@$dY9ENe&~bt(s<~g{217;`KPyV+b%h8o$7J&;5g`? z!g{TBdK#E;H#BP;R@-g;_P?JaD&hBrj!VDr*8kg*XYN41!>B6jZREiul)Hf{$C8(_ zkkspx7gSI6z)8Nta^Dc{;?ryQ4u7zHpGU^Kiu$h>Zu?j8+)PKbUQbazUj^grYt&!! zPv|LgT~6;Cwi0g34ZL!%p?tb8=0E*d?mgtWGU8wJK*4be$wy26`WfZ(Phlj|@#r_< zZhSd1-tHB9U}xA8e%_aQ4i@g>@X&a?9ZC88nOMg-hXdqb^5pM`^NXnG0@c3*{iP21 zbn-$5@jrq57V^X-L~K zKd6N<>m6rh<8Z%!QLpskz{!uNd|UF=(TIdu?ytriC*0OI zxht+`B;`v>;UDe46Up;WATu0Y9g1d?n_N8yR#E>F$N3-m7|LJQQa+dj{f9GfeQ(BMc)3yXUGfQzK#}q84vA7Im8Ip*?>VUwdGu#oPdih^m7AN4_^CmE_99Qr zK)%&{ewNBt3!G$6%8wOps zU*z=5I!SlToON9Ln(}$?`P{AKg{A1}d#R^&CD@ts-a~hkaO?jP*O5lC-A^G;j6#3c zdEIcQNBVU+-mhm+KJA_RbO(9i(8r zg}d?S;~Si$w%5Uxp+Du_pPDP&&126DoP2`%A0$sch3h7b&&9%R{ETUg^$pD@Z&N;# zM&8&(JsXr)r=8?~3wQbXlXyF}r~-TP!=dMH%J&m)^DT$)6v^^WG%t2~+SJ z!{0>Y<@b?K7E=Fw>d!SF;fVIHN2x#CVU**V&(~0o=>-2^6-b_QBu~DNe5mVbdxhKf z&HaivWEh%hGJ&yv$Tft1%}Wmmx9yVJ2tQ!p8?dE zdBUw9GT!rg|4~n(O;;xg?-_G&b=aRt!v0UGrx|&^a%)F0Ta$C%$g@*m53-iLf0;bD z3Ys;q4ktIG;b;77%oO3)&Xo6D+fK@t?!$WH1oq!5HDG7SJCCRVd5X_tYX3?ruM#-> zSF&DXRnH!bFBg#CLY_C6dCsGsA0s#3b?7GHF5dWjuGTkQ6LuEo!#_HHjUdleMnBbY z_A>J5NqA-s?RlEKR4MNNH-+2$@D1<3Xu0oGK2zxGH0(qBza~$4@AclM`uW~rSS81m zlSfTJs?eU=wGeL+*G2o2w-avt5LTe)4(2>(sBm|^(=^`S#|pRouJAO*-{aZ7lc^`~ z?c-gm@)u%!|A*z)uMIuPj)>cq)YFVS^6sY`FWlyVLO$MqM^Qc(z;8L~pQ`%#e9Bnz zd&$G?=)ZT7KTV$Rfw4JrS*aBEMo?kGnz@9m_XR4wQq!~tM0d9IB9 z^%C_Y_F=uMLyzXGF2b#!(;4)mC+gq}$B?J?MO$j1n`?VI%S>ITZ^ zc|NMv_ux8=|0L!WOmC*0a9iIb&n4FSo*>-nFC796m$4mhCeQap<~*Adh;OJrIWuq; z)}o!il81|7|4{N~`?8;U=Xu^C+{S0n8}TrX@(YDqzvWs7j#QyNFOa9}VqCk1@=M8! zJP(%5Wj=KJWxX_y$kBO1nLKx3=e_mGe*3{r<6U=;7jEr|_?}s&B{Q4yiTBX%8i&uQ zJjY*^e~Y~AJ&*G_d44+T`wIQ`jq2Y&-mfd|PkV-8B-K3Dhdj5pi}Q?*3ulrSmZHTE zpx-Vg&(=bIK9+o%>KWP8k*~;aRy~sfM{u`Vo(mu^d(RhtN*;}l+qqvo*q>N~`N=`7 z@1f-B8i>QoS#Eps;3?#RDV6bue&k7>qg$2o=ct~814q>U^U0$;;#tSL`^fWC!F9dy zKl0Q%!iSFZZ=1oF~Q*mI)$t1%;m+kTPe^B@{O^Bk9b z2;TnZ2dO8!6Xojl#oMaC3;d(=*e}V`JHRhsxqHcTpTo`xh_>%d5GP~k3bd+$^G zl=5kBf7AxYsZ>7DD~+k%5PFi{KBWo5U4G{K1+*Qflbb!559s}=#pL08=tuagF{{Wk z-u;WOgxl+MvpPP`);SpMlIL}t_TSdRtv!b4NNBqpM_&9I{&|R1JVW`hxL%kh}P-hllL$!{SquRy#dEAWSh$RnP^to6++e>iZ0Pt(w%aNAzdW6;mAHUCh) zG^44L|B!a>dkEu%`-e3Tv=r{HE6*L_Y>gWH2+xRSX zj>l)4#;`N@I@)mnzj`8h{*jiB=r}k@xV5wFt<$cde45YCVl!@Z2dcgTxdQSNyx_Z#Xjc;ofiE!gfg;_W^~ zxEp_a$LIM4@?>YsG-Mlz`&mO?{1*8$MSH$-oJPpUXZ&@Wa5w&ryV((qheje;KIF^Eb9117H~Ht}#Yf?vy5v6#x9yeip6eOb2E61w5B{BSTd(k9=+|*} z6M3OeJbxbE7V-t}Ik=O_OCP|W=rzVXMxGpr`9?F^`38Bh3d+^|`M&C(inzLv!@n}LG9EthHT>A4;a#Mso>bD1lyZP0+kxswnpSQ?!mElRvdnM}0aQ$E7 z=MVB+JLD7P4Lj1$-hG6&uDT5LtgHP9&`)+yn;OKT}OXLo*#~WU5)ZT3b*zYx$ji{R=pGI8@?BB_cO=~XT;|} z4-2>BS9me}KaToerhN1pYQ(f*z9laYgZ+Ie|2ui^JB+`Ye`+RSPcRmFfKg-)C(m(z zug1d(%75tMG+##jXOS2AeCze(7m=6we4^&ggJfo`JyBHtsd?Yo=u z1@3p!yiuJ-L4mbCT~; z{zJ+~XG325*E&!CF3N8gZv9j8?iZZboqqH9`@&uS_4dzvCESh6gW~;kvy+#2<9oX_ z-l`r>dGCD$P036DA6I7{ICJ&=|7(|Zq%1|f-gZJ`sos{DB2lWLg^0$!BuyJi^wMH2 zjg+)cTC}MVZM2NEDQdJz(zKGcX_Zob=icY@d_TX}^+#_Wo%i!~?z!ildtcjqdHcLx}@W`H+lBdz_m!P+YBU6R!4o%aWRIxz;U7L(z)ct!`nI?RAXb7kSC^Le7(ZB ztr2e5tKpan9ntmbPpZEU%KE(AvB#mkK@N2rza{(qk|+7RfzBgmk(ah%yf5W(#|XFi zne(n=&sKXr&!+9Yo%X>-)LYHZr)i&C(ZwlesQ)&3-rHYmn{azS{U|=KrRTYOXrEmL zKlS=UyK>}DZWQvr7su~N;jS)mA3tsHY;wcrC{Ch3ON84v=l_}Mh{ieZxQx@s(Jsxa z780U%edE63t;##z~AN8wtV?4d*Z(EUv-hJ=^!ma=L&oS=SQhx+_wk|SfF7+=U z&%JQ8BRTS`)Sl1NB6`N$NS^KrQl0h>kcXdQKHX3LwQxIrGhUrJzB}W*3-$av+Mh1m z+6UhEou3wN`!_u7SZ9fm^OCp}LsdF0b)0e={I+~x# zIbZ1d;d0@&?j;T#&@wiij+c<<}sAJ>U-uG#r^u7bTo7}vKcGaMM zrC!i4J%qgKL!CP0Mc((nn)XeFyLy$6j?-1ND`DdeRj#;=Zx zE6IZ!VXx;S^T{*okw53spXKD)cfijke@gZDqHcV^xV=hlCIrq>`)dbz`ZnaV?yJ_Y zH}k&|@@g^T(?PhK$2X61Ix!yiWZLI>eOTwU8Opziu5TBS7ZyhA!wT|{@0Ycr{nJY)vfmP&!mCc`U8|utH>I@QY>qBA!>VxXfq{{h#lCo@5tp1}O98#vGJr2n0S z+dNEfi00wBw2$$*P#t$uX&*Z}8lQ#At48@6>J$z{=ly-cZNGSia zygHmbI2zYOpk_=L^1^wDOp5I~S^33?XFu{Jd7AspYF?#;yZT=_G6qS-1e8LjX1~IuKOI9 zI@}lIs6hS%?MrK-{rficOYfsyBYE7GebKI1ThuZ2vpadRfPNWH{WHi*UOtZ{&(=d` zo=*MC$P?aoE*7gj_hZp@+6v)zoEBTnbw|{3`a10m?`v!S?jVozK5S+B`4@T0d#X$X0*Q!&^~O3{?hu>w;$_IW7Hq559bQEaWfxX=ae;W*E=rvDRx8u|MEw;t#5|k z>(O=WTJrR3m=`Lt5WKGTGcoVzdT$4LjQ5)`3mCJDJh27#hcO@iAWtnsd^R!;^-o3| zV(p^!q`PqIXUThh;B@k^3F4#cz=djmZs3%Erv8KEIp#C6+L+bCZ5@a=L}kWr$$C$9 z`ZaM1`aXWU{_rO=6Dz}y*sjybV|@M}qh8+2Ay2=CBfd<3COXc4$d7;c*O|0WRE2`p z!^NuqSacp-L0+l>f3$ADOrG-UYJt4K@8_!iPT{sbr+FPi*CBt?K79|4t8uF}fN^*i z{rdp@Z$ch^9Gy2O3b%P4RXS@dDsr@*V_K6Eo z;j2?;DtU_6b(^yvZzhlRfhT(0RpgnM5a(~H^Nw&g?>rWb=l8TPZb961eo35xc_-Hn z^Ny~6MhLg@4EA((%5PKuGVG2{fmm^H&Z{!_n35@_L#G$k^DH7e|?oY z0k0b)t7ZCAeZC*9@%+{4%X(?vD5s#jdJ_JZ-bBCS>Vz?k$%`8iH*Ifg;dcF><9ALq zK0Rq4=l*P34+oNGx&O0{>kG(}pVW8${Kj@&t2+N6-=>i-5$^Kb+mEQuAo!n|0?%vG zzJ+jWpYZOxJxKc;_50I)19`~rm?JCXyWZ5vd(T~T8w`Ep?O&G@Zs(Ca_pd9b{)@t0 zo-9GTz9xT1xXr^7@9${8lpL4qU0+7)M$m}d z`NpS&YYtl%SJ9tMj>~cXY3DrGI=oYP6U;9cvt7TE8}I)031=g2xz&ij&W~r1$45Z_ z8xF{E!fn3<-g|J@I4{Y~5+q>0q$%j}pK3@vA`H=645wwQwt#S@{ z@GRC{Y4X#Rd-ZKHx%mXq>qh&9+s^2~7Lb1%4WepDSkPpjG zzsQ46k8%2X9j5Lu=2b`J|JC%r33+}t?4c&luL`%v%^ZcwKaCUiMA|3#9TRQW4D#H? zxDKPwpTDO12Qa>BJFn#XWz^XIQ6tK)k9dy#PKXPocL zXn#FO`^0|e>-ohSpYNwXRnNn5Gymdw37vPEkjH*Q{>YUG_ooYa;ZTe(WU0Jo zM4mqp<8dMF)52Xnc^B)P6#1335BnqX>d&j>agO)#wEuuS6QUo7k$)xJ#v#=k`S~XM zH#Gw7G8-_z-$?t5$Wz|FSWC%^Loj|nq0V3AIq&;2^+wuuNqsv!<&?KkzlGy+zSA7- zZA5;C;>@Xii8`I;G7i*)g>bQHEJU61uSyrX}PT?+Z zy>UGt1%Kk#N5|1U!gZ}>C5BSxec@K8v<2hz6)vz2s7`z2tzq4(GYa}ezJG^amVNTc zW0#{{CF=Je&w2a63=wYoJ?t^cS(elOa>pB)u>B>DX#YM;ozl;9BSZAP@h-dIs4p{WIG7Bj=${Oo|-0n{eB|sdJzZtAqm#7H;DfOo2b^c-(hr zpWyecv>tvzUf^@rdcCOn80hDl!joBCFeS*t30<7B_T5>+Z5=2yi00u$+9zVjA8qe6 z)%W&co3FfXd#A7ON!?AJOCz6=b;hhwek}OKZ0}a#HV#>yCu*MWB~N+l?aRi(KIVOA z`8DA-&dEyA`n;X?3D##lzt~S6{D-*dxVvy1bt=PB@B7RZZv9Mn{_LfF=?3Va8W_`T zJnYSGjEh^@-ZO+-KXYkB_!II;w9k3#+mC3U_4d>FmORdVc&?*Pl?l){?62d=n~>+c z>mEIXyZY&kqoK4<@q36&D|0z{x*F=_Db&B(asESopcjm}o%Y#hP)~-?Lu*0J7m6#Z$R8;v;Yb?+>>`5|zg>v(*IJUj^VGFoTMX7cz8;7i%w?ZVyq;c&!L z>%-r|UH$jQ(ZI>f!wl9@+K=ax$F_nGqW;C?iGPt-{mJJGclzFW?)S7$a{uIsw6Al4 z^;6D|zPsKLjb}IEPRDybVTEv;4~F}N&Z5p!kee~h*~?t{YZb&o8sduV<>Py6C+ZJed9hu=~CO{hy+ z|65)NKQrGWue9HLk|&1*P6t&>)|2Fg-l+4cKZ!h?+0NO|;lg^FaGNJ3Z{2mX>W_i` z!PcQ~i+KduXv{$J#8Tw#aO#Xu{qE8EWjuN2E%1G`zf$c#i{4LpgFNLu z|5<(s{LeH9oC40yj2SH4_G8?;F8#7_S69935+741mqvYfll`)rJo|cdT=%`y>PX!i zhzh24Z#sGE!wZ~0%9jhb{upolU*$6RA9(GWKyFq?>%er!87%qnBL8}aaOcnHnUUkZ zL7n_9(evNKFUN6>cb~B>d14%n`w#WY)qXJYQ|szr;kI3gov3&-Xg`zodDinq zN5CI=Ys{PE;gP8SEN^Bfc`zQlKXtwn?v8sZD#kBl2x?X!HIMD178KI=WtzlHX}K8#1T-$VQS?lRY+K5SRj z>F_`M>EVuC!MZV&ymSoK8|wd)!rgh$8__)cn)b=J&|ZzhKJpm9b2^vDtu}-4$`m=3MeLualff{YAoUoa3)V>(Uz9=LbdGRpScG zNBJqEoI;X1M+$fI(XZ%VJ+B!@p7|qimOs$`D)Mk5;;GkLULsF&pU-BrFRFbv*lS&C zb0v(i} znea1l3+$Uz$1gM>FPw{UN^Iif!GD-Xkd4M9h1>p0`tL>3K3tCxv9luduXdcy$&VJ~ zOKG1Ui}j~$zwG|3Bu^X#ek1ezb@HV5-KZVpr8V&X4j!r`+|By|@>52#`&08O8;Ae> zS;Z5fGRGxu2jG7r`gs(2wif)kmHzY~54dheR><`j@~}PTab&467m*joAV2Y6sT<^R z?>hV)g4$<1x(-^Ju_lZW-9w>8*FxDss~v_S4DN3%CAcz4O_wbHJ0|AanHo%eBI-KfzbX z6Rbkzxa4tumu+nY9N+=+SRM4sARc!cd1eH3bbkDaJaIDG`!IF(k*6AAeYl%Chg<`H zvfg>+QRJx#fwS!4{%cG>^87{7Jef~!cz>-K?U$&|VjTBN@`uUe-hQ)r)jtLLI)7EV zmT~(LJ#{m6>X644pjw_zexz_)SHp`@S9P40t3AID8_@nF@@xaF8#PY`ktdEqJ%O4r z6P>=i-?VU)Q;1P#Dea5zMAzFtkf(1$9Mm6k9okh|g8tI{uS*_y?-R8k&rHC$tIz)J zAl%lm;yC!Db#;Jno1aC4^LI`cWiV_;dBJ<1 zu^oBn?LS$r_Pk!#iiP-8@?bxD(H**)cJ`#H4Am%6!N~a71rzQW|Ot|$k-{cBM z)X$;LUheN78y$Cd3b%PxU|wmSyg~bLbJV`pe6%St^L+M9e3cY?Hkn+kX1?giBUn&=+WSGd(r&AQZiqWaUR z6R;j?-rhu=ObPWw$8U)``T1j=j`qu;3*k@kN*qxAX-A&)zFX9TJopt6Mz6{GS#?fA zUDCW7N*=F-e%JjorwF(0HJ+c_gxfkipVyak{C-cJ64&#U*)LTV+4%hLkNV$OxXr_G zIO3UNB~v zaGSS@Uy!#te%A=Mex@eEPaH+|XP{2Zs{fr+F-%6fm{`4hZDcr^(ZiQn-yn@rTPI zarlTjscq=NX4LPynDM+3c@A&o{D?fy=OH!6CMZ7$nKPU^mkGE2$y=>SsTLCt4rI2)FT1d(YwDNS!?Q;Y9R|d5}C^ z1O1CCWX#j#VSB85_4-Vs4D@sSPO;X#uEOoS7XJWoSjho=BJB&_`%06^Q*qQ!9WV2! zlbnfB-=Fb$kUZGb#u0r!WG#8D57sm1(0+q(8=s7~&gr-Weio-7|EtjcMDo1%-LW&t zlO51s^%(zAE!8BwEl<6hqrh3I_?&ehl|mVT5lf`ZtG-_#=1h|{ED-u z)AFMS|N13$;!~lZ?W%M$+8ch1_V%udUudYjAu>VN)n}1s_#8-*`s0OLf70Ib!`G_L zh0xLQ_=a#B|I*#?NAvSb+UHi|d{)=bzfnKrIttk+-+^7qyz<^BJ&ruT3dg;J@n1k* zybJBc*_qr&CO5xAS^asOJbg=a9ln7)QyctZ#$l^)TTin4FLXrf>VLG)y^Knt@jv7i z*oT#Fh}fSb+?|Imf}aDZKZrcv9pmmUwre$c{ArAfiL`%Lb-eR}B6)Hd#>HZpitV4h zpv;-y!YMnYsnK$asA;uw(EWJ z68BHge%VbP?}l-ar9btS;kd$GRx-9O9tuIzzZ?S9kQ| zZ`2v9+u1PkQzzkF-~NR5rKix3TWPK!<4vJ=)t zw{e}&m^|GnI$uvDPfS84ht$88yx0)!x{G{`a64Y|MT{5C&mFW+<#1d?RrXI1ZsS() zzOysrPWV}B(ZMMvIIt&?hi@WoI$t~>++EM?ihL-iKTp#>HU)X8*Gb+WPuE00-bedS z)qWr1_AdDW@;K`rr$JNaF8G<72z!Rv97>*lwxv_Jk~-zWZF@6a5jQr=jG%pdE#{-| zI9~1}Px5&-&7W7vvtOg%KcW67 zv(!4ULb%P_-1C?jt5fGm;ZDbUzNN-J%(vM%?nkr_gj@U2JMOi#PmDqxm`MA_gj;{i zxET?DKA?TdTNiypo*#>T8BCo&$xC0NUy#-E{N%mRFU-ElSyrZf1L3y4`8LS6edME+ z-xbZnRpgof&@W?X|AKJa-ki6eVe>5Xv$vpLHKu(}^6(IN_$B!e^7Ii{{~(LxbL!-| zZ!upVPy5;Ac|K2mGWp%)u|F}NKF@sHE!_GU@V+O@gQ;~N{oIf7cn)>ik*6jHj`Sx_ z2)8 zAN9%e7r;-Ae;e}ncZlZ*>USd#z4NkDmGeG}_RCP=HqJ$FAM6}?j`tb0KL1Re{Gh-c zQP+F_k!RbrcDx4tsr#Va$M}~6=9$|_@Z%8Su7ADvRTl_%>y|Gue*e(=PhRK|&BJHN z6W+d*Z>ml$jF%47*(Ti0%g>K?j%fUUclQ5t5mnKcnh(LBL_@^?Yw9#0kIzFMB3ooX zQsMSGRc^>AC#LzuD)jeo{FPdrh$op-|PCP(Zi(Z28_#)a0yCCaxT z{xd7Ww-w~cO9KaVepyEz^Ui~|lIOhd^nI=NqmU1i*)PA72cJZ*M@@a0{a73G)F!xN z?h)>;e?E%-ijlwT?D-G*q0a$+C)~y}RUb2&=1-+Zpl|pcpTYdqgUNH>BM#c{W#ol1 z=y9Bd8PkzG{Vej~RO<92FV$${$Vud93%B`@egW;(>p5F#pB;&LP1jMKABCTV?X8?b zJ$67}^3oHi+qyseAmO&(iwkBsd(D%pXkYZMGvDIu<-Wtq$T!XZb+k`-?`ymz-1;AS z_j$WL20w!n;Qu7{?^WbEes{7D{lA4g9l-xujL*Zu-FWfV)xqP?Pci;|Xy2B+ST}G) zb$SW6IwfzNwu<(#A+Xo}-AEoZY3g+Jd96CDc-)1kFnS#+5N`7-@Sfi&r+v5ud2$oS zQD5@Rbc{Q_UvM#bb}#gi74ld$c`y(4d6@Icm|NApGV=3s^83kC+%J6s`3u5r9CF_E z;g(Ne92JH}>s}Axwp}sr{raTrJm)mcLx z{(?IBJ@aP^c|KF-j(8{M_nqXaCovMW-+vHp{V#aWQCEAC`RVOIweS8me-eWwkQT>6KA1|Z*GV(m{`%K_**OHgE;kddEJbX3$%<}%G z_G5qYxVJCU`Q!<{$DwhaK_25i{MwI8h1k3L2^ z>+Lkhv`N_^6c%XGjrV0jk%XR z@b=+ZLvDUU-O%}KvvBKA>@39jL^iDUS{yh366PIkZ&T&m2Uz>7EqUxKL|E&<3FN^d zoJY52K*x}Wbx;qFWqYquUKjm~Ri!bvsXo6uQT+_o##RD90r%lChO0}p9mU%2g;6yL`=l>A8AXUbu(@$5+Z48L!JRi)hDCl9Z{h!{(q zv~Zh0SucO)tNqmIdFxx`Id31%B6-Q1H~$cBdmpoeaOnq5l6Y+~#3819d?2v+6qb<4qVx@6(?~!fn4Ny?$&(`_TJN@fFTq*0J6? zWQlM)KNg=xJ_OWXE!_H(^S-Nc@Ot!np7$ShJ=RsY&9_{h>o@8QRQsu@Gsp^gKAiTM z3!$KSzKT5mDb~GqE;}n%2I!}E>``7^-H%pTWFTkIocYfN6Jez>RgS78Op8o(k zmB=p;?$&$lQ9reR?^2yksFR&5;1||A`$p!6xfm&$SD(^8d>!_ksQ&|b-s`WEUxfde zwaAA7v>z_q_Isii`b+D;RN5C_EOVA8)xj?;aQ0IFz2_?)QTuC<&r_-Y67_?VpkE;0 z?6}mi%CjBO@%SHgiZw9LE~kCnm*9VVUvz$KCfvp|TPr#rB^;MLJR;hz!H&!MT6$9C zxbvxB{0jZ0&%r)K9sygLIW%y;)R({dr*JzilHU6x zOW?H3t6;u3x&jU`gS<2y^+&HqEfenQVd*MosPTV=_A&1| z+lSVb;%DE(|jUL4fcSzgKka}s&h z+o$Lu)mh%f*>9l!I^|D;!&_rM6>jq+cpY_B>*pWNp1&+VxLh&^ZGfMNyP%`Ix$^et zm(Kjv9^^^y{9>SRSBJg#0uyzYped+moj+ zMLh2!pGaQ19{sNC$ywyN_JOmkP#M3lfIRFIoo7E5Zv79q@1?HC>TQHSS#Lkp&g97> zv7XoCovTSQ#5}%3AgQy^SvrvkDVgi)gNyi zzR~H(yl{Lp4%?`c_S*Fqd4~HW{K|M%eFMi${*L@So_vUKd)%D2PsQuBFTIRB=ddt4 zh1+qF`!U+C1GEpvl{w{CsekaBIBvjoAk*A*BsT|RT(qG5>B6mk!bInhX~M0aDepb{ zPpFgN_ajvQciI=5qP^qUFV}Cf`f@&U=r!($T5q2aZu=$Sz5n>CvzPT1_jA@d@FVSu zyD-mcUHXSSw+t;>#daO^7WDHM29A6}M~@(n@jdQaXx~G)ZEyBptfMsk57Rzg6Ybhd z`!~o-{0`T2@@>kWM?bzv{yTZN75a_IC%nzP-5l-TIl^6hcpp>i$&KV8_iJrNoqx$Q z7oZN@KwfV%^MT(>(*EjB9)5`tv7h$WlbhS1Q-SkQR=AB%;N72XxCK1Tc^pwPrmb*S zXNIG0?4$lT^4KY`Tu*)jbyCcq8RU7|=e>S^M>)UCtmo-F$%6s#U-RK7^6XG>jenhY z;HSw%*H?!Lck6_YCpu3wZxfEoe7Y0;rSs_|+9#fy7O}sB`g!iBq}Ksfk!QX0te4b2 zhCIh=P4=-DZr2sTNYteSF~Ym*oGT>xFzbrA0AlJ|VV zUBcb?eQ`mgU7Kj1{3$wKdKMT@?k`u1ex6L8ybJYeChNlp@>oMue%*Kd5%R#>pL`v8 zVk_$ZbS88`?Y;X%-;tO2y|bP?Zq=>uGkI>{JiLQ`wj?ifLZ0Y+-A%ZSPog?zWc-%w z+o1OMBL3RmslsjC620d*WzC=a9GCCb{l}Fp{eRNw&}X?4f;l0QUQ6-}wU^x5PMW{TwXZ#%Czwqx>4$2e-n{pKC(s zHsvk5IH30p9~17b8_XExcq1P7b>VJ2de?7ze@K7Up+2Ar88bw=z{_4(n8$crOd zI7`jXD;?)A%a4$My@B@WM-ex@4u79;d)+MW?W6LXr=#_Di|RZGo$IK-Q@HKN>=r~) z>-j#~r@Z|n>wJuMB@6KXZt9c?xBXS}>ftT4&%B3tYJJ;I9&U=}+mYL#pP!8Lg)N+a z+mILeeu2iV8+ocB{DGP=Cy^)l-B0C1h1>k!J%6n8Ty?IXecJmj-VNj?fqX;n8?#*P zE8w`QvqJ5ED0BL#e#WdN&;J5@ou}R+k2OQTU=}v!GvRJs+BCW@Js{j&Z|8IDs5bIC zk1X))dL!Qj^;zpuZ}J59eZ{Dh@gm%gyKpqdi`Jjy)3_X@Y|%JzakdGhidIBsezj(7|CNZ~FH-n{U!aNCcu%g~P+|DUK+ zIu|;6{iptC(2orboU-O^N8v6XhDLRI(>{M)w7oOQv)=bNZxL?&O#T>M7yV27*fiw1 z9=GaF#=(2uH7?x7KYl25;>?GTJTn#fvyl0-h`h-6h%w6KyUgS<@BNGC$xGgN-|RSp zEdOd(m2l*ZtH3| z6jy+C96cr6VrN9((enaBkR2;DQ8)r{kg)ePTae0uuizmli)4n ziN>wMm*8eENHyk91M*x8#Q$vSw-;{fSgi&A`Yt+Nx_-s}@}5`eOCAhq<`iaA=N#eAf4(=T^Y}%y z&ou~~C3?Y_>s6;Y;{OTb^Cr1z3_mAV!~wQbKV1p)k=B|0j>~oR=4ofBacK56{Lk&Q{!`;>c17O+ndN^4js;R70L<9v(;g)X|7Tb@p#>$9XXMfukF9 zrf@qh3f^}R-lTruJ-1nOT=H<^Vkf3~SaTQr%=Si}mocBOBR7vB4&t%C63XrH(rk#9_1BoB8)ti zcTK+|{~hNS`h5OG^6Wz7v*z1u^6*`>=n%$#v2fd8vFA|tRR1B`C)&4hEy8Fu<_YrP zL*$#TS2sA$#>XhC?UNs}{`vdfYz0Dn&#(o?^p60%|jVj?6CX>hbUUop8Y2=}I z|LzO&{3`UUK7Vz}k2r4XOXSsc)VYv6*9OXGkj?iKMrx(K&%Fy6jZb7`MA4fRmZ%XW~* z+F*Ruq<)nW^poA7ulZ9>p7O>^KjAh$!54^+*8huWAIl)lI`7P*eWBSHcSLRP6{=BCr|Kve>ipGXyQ7{S2z4oPyS+l#?+#Hc@rI?3gTyynje^5A*ov)0w; z$D=o6Ys>@WnX56s zXn*B|+xCWaF^;soFRRW?@T52M?ML#$*=?M1U+P!*gZ}hJ|9(&2h&+BPbTt3llN;_I zs5*Vf3*LJi=aFZ4-E|=KFL9jzkRLZxz~687ct7$7sbfOKLF>|L@}O4W1kQwv*-DikI_-UOWm3}~G{Z9L_??XZ%jzu0Wq0UzF@Xo-Ii^%^ZH(Oypn7rO!@Taf@m9QHJ z(uu-tJd4XwKmVzUUpSlgp|=moE3_}9kbxtpzk@tTwR7YO=J{T=_wL74+K1!DdA`gt zW?GYn+$XIq^?Q;R>$i7A<3E5re>Ebe_ZJolxAimUy+^Q`_Sw~_^IA_{QT;y=H&g?; zKS*Bait)II^XXUQrIXO_Y_9o>JZOV?LG`QrjrL}mVZ2|X)fK^Xh2Y zcXOQokRSK)uY+lyz8~?woqU{dJC2HnV}{akbOY^+>ye)eXrCnyE`k3#URIOGyz|Np zVmSdJ4Dwm1sD|S!#Vd*Xi(=bt?69 zUOvom`cj84#&}QC{toH~-g}_WQpfCz_WK*c?fA`|h;_>f>U7}CS{?&YVkvw(+;;;Mj>=15`TkxI_8S*dmi`!5i9_4YzljkZUudXJaA>6GW z_#C6gc^U14m6&HAseoVjggg~TdvTS+m_z=9oJ_I zxAS8niMVNAjTP?dr1!nZT~3Fh^5X&ibszPOmxr|vz|T}m`12a=o0FF|AU`!9jw4UM z(9Bulzs8)Q_FIq-sM7MDyKw7g%)4*+ChfzTI3L{4TDBk`!UY|BhCwX+;-%#uE-ON0%Lj! zxB9tKRDY;&TgPHYAw%$6#!RJ7zAlK)BlE~J^TD+aJV>77ck6T z;{e)cV$pUjCePPL{`aMycai7vXs`DBlfs>!2RC+>f7Zb-d@kG`H-9;ft99>B;WnQW zk3`$sup0c&^162?9=9WT@uR?zbIDI8&s`hMhpcd`U*vhK#&d(}^Sctdt}f8N@M?5? z{Z9M*&uG_iJZ{bE@H6d=>oVas4mq#hE*I|nc{keL9Cb>(&Q_KA^BQ?R8SR%!2jRGJ z-UrnDY)+o5)XaH^tdsZ3h1=s6o{qL_u-e~*JiLbOx{y3S7Ycuo-zwa;E9vb=TB3d7 z+cIZapnb&}@H4dw=TnD}*B5T{A$cb9Ax0k1KF<3inpZu^^P5qBu3&twB`@+i{}Add zr+$1K^fk|)pnWcj_M$h9d5JvB=c{K?XFGZ5y-#;+O|&aF7dl$6&LGbm-`**_Po44P zrZ4L4$>cN0!`g`3CbsKN^8E2wUuhkFM7WKA`VX||85WLDXWgfRu zE#}W;_=B@rV;YhNTTst=`eoXZr=CZ&qnL+-YaO;op_HC$L8*xa~#QDWi z+IJu?wT_-Ql?%7W&3Mmg+%4Rm*CY;~>J)VS^D1=;gW&n=9H<{sr?426=MV;>N*${s z*U6_KZWHOxp~BsI-uu2-EAm8DuGP+qTl;4A>J2mJa#_LFEl>~sXni3olKp}$&21|w)4po-urPG@2ue z#eTxL(|kKab^e3?cIwO%9+SLkzYg;$vAKu#<|24Va&YSDRom-2fteqUoCS{#aa zmKLJD=c%8L^B?kKSvCB9812JWXzxCnEEn$1_v@t`DQCf2N&Cdrf#Z}h>z%#4&vGzY zq~m=L?b8iVZ}q-F27?*@ZKma>lK@@=K8qJ>1caIhnlVeb3@t>gT=v zX9~0rrZsa4dflc-9`b!{&9^_)ek1DeqJwbYx((rHFauocNfY5VZb6Gt&Tu0AY(e|{ zI@I~28Mw~QUhWI8isth`$L0FKRdbwz#&bS(vWH>auIsw@X`i?ND>1d-OZ&`Gh`;t% zgGSc>|NXgvac(2r&dU$;e30eA3~=^x|7$spJBjx9k!OxXyXH}HD|zg5XSII=3m=`2%9`M~F+QiQaqces|L@wGYND%`E#c;2f0^*rsv;ej*Mc5Nn)@%J1D&LLk- zp5wf*mi!I!kt^EF-o|ny~efA&t{}|)Ef;{cLhxH6~Zm$!)Ke&nZ z@%bIx5q16i6?uO7VUF*oKi$jF-pmxl{}bkIf8nl9eu_ABReyxr>zP@8XQ}~pUZ754 z5aPUt_HUBQhQiKL$5B!3x&Jv@A*X@O5a+_tW1PLl^H||FPtwOBp8a{;lgX2nz>nu~ zN0O(m2LFxiN|R^rM0*4BdBSabgITBy0moNfxb64Ux6yI2lR8D#ZA8hK|5U#r#;LAD zPHqnW&1qen=hf-|S;DP;;SK0(duPx-^$zAWWQ8$rEBBtG*g>BEx6CQ8VH^&Sr(^K2 zaU~qMSqu16Y=V54NqIMMiR=H@($Bgrp;NjSI<+}b^$>2?KiMNkIfZiS^cQaPq~yI9FoHaP zUNrw#sXf>Kx^8)iyx6#{Q@)e>?~$jsAf8W=?@|3Z(AV{Cr&jPM@eT5@0{dlv@~=BP z1&!PJ-uR=8(rbV!ThFKewq4&x3Rxd5Jvp4g5cY_B+XAlcE1D z$Hkw*U4C|oj>itI(XMc1G=FB3=e_%_%Y?i2>Om=YL~YkYv`?lm9-Gmhb>y+j;AeO8 z&&dlvVto~m|03MxTfw^yKeY|~H1nD}%jvYANuKuZzu&0#F~t8%+TTqc=e|1UlCLAr zABni#M!to-^fI{S)lSuatDUn{{-^SvTRVOM^Z%f>@IR=9_-MUtBHXT@gHdT`uk-9F zw2zHNy~Wv5QH@!oit%c+6VE+6> zp7E~3S7?WJ#j4}DTL0^kC%yBmCcf5;C# z?$g3;drPlG{oG2O!U^za0R8FL0sg1EM(5vK$qnBdI+2HZfjr0aYweeJgxh{GUOnm3 z(dz&2kG@yi&vCgv^8~Jk+(&-~lP4=6)2`yLUP@l@zDG7sxNEO>AOB(6hn;cs_SAVv zxb-vi_L*sWG~$qZDVlHH$VXqRWR;!9^XX!44<1q zRE_ys^~;($o$q*nf2b39_aB>ghJN;-sD3};cAUol!ZW_HdL4F~5;5`p> z9eI8}#=B&^`*SmS@elN`t~VYePw~C}nzY}dIyYh5>2;fqUEpW;WWfyKK)rsZmMBCYCmo!FY>S zk5uPk@>rF?d4kbx%v|9%o*AB}Xgz;`_URW8&-XZx^5psX$mb1gK%HaYf9CgSzaODI zhU4mb_*miA|D^Yv!~MeTd>x)N*ZHaQ&Rf)pRfp%=uASuBI^f&fZyEC=d2ti^SKC$P zSom3JkM&Y3`hS>kR|i(Yay$$AskF}}P&YKr=LvV`@8^$lM^ya_XrEY*b#-<6GoQS~ z>qx3|uW%dx!fxcV>a3@Ic3(7}Z zey4D^o=;rr^mV+vE!?)N^fK~r2K_9OC-@y19Nm}$pzw2q=pgVNJ3N0L|NZy`2 zH#NFmnlIdrqqO(DWrZHlNtPj=r%@+HUi9|gJ5spKpCZ?Rh@QM>N&D1!$b^a1Ihj1* z{b-$cMv{j+%ADob%!ld9*JFm&^X?Z_e>>V+h58>V7oY5(J>>hzi~nK1c#OPBPqeqt z3i*6Bc_-nvzlu*^;fVIvnY0h@gMBaBj~8yQn-#f#EJm4pKAZOO)?J*XUJtyDJXSSu zTh@~uXM_q=f?_n_14=Lt`B*9vR6-(UlHZI$&=o9 zVaA^b{m^?ZA|y`?Lw^mVpO2CkUV{GLjKgQ-ac{qiUsZoM@@F{h>-XVtTSfgGNuInO zm3#;7FBb0Vz`Zjg@wrpD&4=vWIPd7hiS`ZE`3e29hC1Im&VR@ci~{+70qrxq?$nAV z4f`Swi~FK=;5gxKzPJqWK`Z2aaq{pt)QA1lxm~#Rv*3Nlx%o-d=XD01zfKWu^^@Lt z)8oQz-sYzvZ#Azr3b*n9{kNzm57K@rdA>Z_ zu4k3cj`F|BQ&ll9+)tg_C&QoMQAF%{=GAb=X(T`NeY7;~livFd*Ln7f_^Wr&-tawr zWSucN)j2LFW1Rhms$yT`L+T2<(1IjW66uG^C9`^)G^^GXZSG8&1l-2 z2bw$bACG&PaNDkwmp@;VXS{XPnWwMt&HBb5ow{Zx)_1K%# z4@aWC0rfwjPN8EnNA4v5P5JK_N43do4TL|beW*Ou$;*V><0hBG6P-7Yr+sM|`s-lE zX8?KH+wXS_dCa@seu;3~FG=pFp><;k?Zb|TJ5RJ;eNJ8)kN7X3pTCf2z3XX}PD8tj zuVGwhp7$pYp9epZ{$D8Eolng`p6I%C7VYES`^C4AXE!4b@6n&E(~L_9eCfCzO`i3>i+w41`XbnC|K3cV@Xos*BoDa$Nz(uI zs}TI<+W+GlrRTJr|ek!@iN9$^eI_5vjo#2->ddD5T9$ww+OfS6JHa}pYI*7ZxV;0y#?Cub2|Ko{J_--c~0gW z_#dvtI&daU&Lhuz@Aq9mo?3-|Y*i7zFi-6(HgiDh*izv(4uSW);;(AIHgNV?UO=xo z1pZ`4AbU<7fllt?>OIhSI-7$BO=f_6Z z|3&5N(2s9YXTRz^f;y(xb!!hryK>*cKA?Rw;Wj=wFFp^_K7USheZGf0J{2Q<1a&H( z3;m?`zQ*C?`9GUGOI???CNFMBoxGnq-BhO<_*?AXv&pmGzAhICw|SWJz6W#Q0+jY8kU*$SYkB94g$d6EaotB!>FgiT2?$(R{v2xUILb z1!LX8|F0g>KF{@%j-%V0eM6HCqVaiN^$)>F*Ynw`Bk1QT@Dtf0?*|FD>muW=&zsXe z|3u*Y`H1;{B6(OB<67sbp-!ivF|nvW(}df3C&BmA`#UvbmN;I^jGut`Xq~xJxXr5s z-<#9(qnvP;pF`k}#`#t9SS7Rw*>23cUIf+>*y(e$oD2AzXd1(#xp-ns65fo=2}H|A$6;Wlo?KXLxW?lRX3x9!S!&p+HxodmyIs{Oc@yf_l|`GERQo^6D6R|oQK z%4Z`VbUyuwJn!vuUOfeW48NPKVc4_PH%+7qU^F=ORz`j;=pzj6(dgZ{xh+BV%`pI&xvv+hki4%g+_uYj_d$*u2mkY% za6Rn``ZHU&wU2w(wQ7%ted%WS^BnzYOm4jA?m7#%^HI3zN@uC-{Nc1ubN#0CNSZvq z2IFNE^{;R`QvZ)dizbrK5pL(lB=_;q@sg#zIT#A%v|mmAq_-Y^)7i_s^AGg3o_tID zSQqr8=6}TrjKhiWycYHAk*DuKo@o4!QT{7};PkHs>61DG&JW>5?gxh{Ecy;~( z)p-x~Gf(|>j`JV#L-XeY)#r5yZPzzWUuF-kA7cE~S`(S)`{22*9~zUV$`J>hcRD!! zzvHUTX|&Hh+1&llCphlTCC_{J@h1wmc^LA(NhL}yq(aM{+xgmDf;@bf_S=Qqel)F6 z_cY&rqkic|^y7Hi*O?6e6C;ri7=6YZA>761x9EI5kM?FWX2b5(SxH_>V_v(R<9)r_ zuf(|1e0y8C9lxo5Gn|5s-@UX?^8H`UpPCoI&-m?S&i)8?SX0O8g#5UN{oafArTeq91#wI4Sl|>iZso%5`ZGHW{tu!4Y2@*9 z0!Mh-VJ4C1yyvv9CJ(*+%03{^KL`Jj74p0mdGG@I{UP>yr3>Ltcmncd9{o9-Jm7b_ z(F?{LOe%0-9nrXbN&CzQC z)cJf}tgPyg*B5T%8D9tgA17}^p5XH;nx7|-=U;B=ER_!<&yIzT-sf6Qp1L0V8|vqU zTmRz~Fn-nl&s66+iw$Ib1J z#_bH+7jDP;R^z{lyi^tO*Y>{VbYy>qvoYfIxWCdq&F@oRPCsj>;ZMF5#;Ml5K)4;J zW)w2*5!&~rePTE==VJ09!tHno#$vn#GXS)KL`$y4uRd`)28Ya`so zCpQ>zm`(eWXrG89o|;!@krx}`y#90A-zwbJ;p{I{9nt<;NBx*r|Bt(b`BOl@=z8M? z@)YlvC8_@|d0}HqNB%Dk!fk(LuSI{QXkX`2=;ti+}e@mnyy^7Q9P@}&2^%r^3T9^-c)?e~$FzCyp~y0PA6XjhT% zr?4AMNAlFNz$rB0KpH@vDMj<)EVXZreq74qE)#C^Au zJU9~Lr7ihj@&ccm)jBXv?Y;f1t|3qSbfiCepr#a68}SmtW_I&UaJQ zK9Bl8j5;&Ov;3ZTUFzJfyb{*=Eg85~Zk zurce*MOU$ZIUWz9&h_MJZ$FlM$nz7BC;Mstm2kKIDIr6&A1lp*esL2r6W$s#T6jHK z&*b-XgFofDUH)qbxS!v8eCzte*KQiD9%3CCSS{ibR^661yGVA_#~uY>nz-gY7{ zc+V&F74GVTw?F42v@cF?<&LQJ^CjBn`P`$%xyl^)pZ@~(a^~RvG*NzGGxu-hy~#^2 zBM%>8dsmQW%2A*DQ|C$YLLZFi;~_;r4v9Fc*2H z_5Ta?$%@8^Q-3wch^ath|Z@MkSA&({^!x3Ipj&6*J%A;P9Fad?Lu}L(`YW^ z-yd}V|23w)a2L;gu;;KaPtra;4dWNHwlS{?xAiCCeJA%b+UJL1MZKRwCGtW5uK81K z9{ec`Ioh?Tob75rp1&|UFPuxBT+zl^9!L9W!tMRUpyjBD&K%koyJ5cTM}KZ05BNO} zjYF0^d>6;vNBtd6U-l{Wo{##Iyx@HYu;F~h=abP+LF;oD;kJKMTM%cRzcS>R*Q5RN zFnO^(`n?(bSx=t#p6}XBp8E^q;x^iUt@_)d`7n3^{D~a`{d;IXS-71Sia#%OMCXO& z!fl=uy?y?7Is5u1!@|O#zN@Cz5CQhlII8F3YhK}ce-#Jw_*TX&9}NpX4d-!=`a-w+K2R_do2x_MSx^=RUgq$S0B)>ywozP2`E~U7W%s>U^mD)W8w#uP?|87sCI!v~Rc={wMhSUT^YF^BRS!96z=lpmC;UF>&!W{4{t@C)Ob#zecpR6Xc6sG zoept2I-fqSI@}+o0sY@Vp1&rVhZQo+t7*t9o!@&4xAX6TSoAvfAhq|N$G(U>>0JlD zM!3!Atarcr7ux4rNB!x%gn8oKN9aSIF_?EyRg4)f-0GVt=s}IcOxkBhqrVc2!+pYS zyGm`)F8p74K1#TqkMiB3^U(*6%kwIH4nh0iA%P(DZ7MV|DYdtXhSk0D}LaJ(F}lzx7M{OnQ@LWh!P zE5jdM*R>@NuSTBy#^X*UFEtAsQTvcQ=Ix)bT)55u%oE6ejptLe&&|U5sXq5o+4Q1b3?ekI)20kiW$=cm@mgKq^d_KorZ!rlD!ChC~Z`;Rz# zc^|n0@?@e@Gv+z+eD`SnyydvejfangCFB1t^^=t`()Ih`d&r9?Vm%<4?fz6=27l6* z2JYW_eXoqXSU}x46XvE1d1*BA1ZOd_kCSj4pSbtj)XTJweT?>M{TXl@jvIExaZjfH z`NFME+FO6Vr1rzHKGA$AkZ1bBPaUT}lIJ!SoSvapmmKxK7Ja-;+`qF-Y z+VlKT$Kx>aVh4=VwzR*TJoppy#r@nRx3BC+&n#shP>dt_qvZf?bU~xcfkLAPt;+p z|AWYLBM`BND&YVr@`Cq0-@C|DFQH#F-<}h0$9v4%|Lq;xXT9sI-;jrGqjjL&o$%A} zyB@XK-k!p3Jug&2J=b~RJmGe{r)o`bmO9?Ap-z4w)(<+qGPKX1voK=6p7ud+RDjQT z+@Hw9N0ATsuQ9dmqMvIJ&zZCzLS7hw{;EknUU{dMj>uIt{@ah^|U-A>Rx_a1uu zed?b@Zq^{q|5n8RNR#JR!%xlsYp9?0*3b6~w{<4)_NS_F5ByAf?O&LG7rV&QU!h;_;IHl_&m4?=`<(pvdl8=u_lK!WowJ48ek^+5x1CP= z+~v?8L7fbFetfh(d_|r;8|^)X_EobuZv1fcZ#N#diE!JG+1oHuZl(RHw2!@tx-pdY zqsT+P*H(r0bI42Hdy7kjyYryUlbofF_w}^TJ%jvDQRi*ihkK?+?Dx|?<-Lzq>prxr z)CKvRWIi7$++G(l{Qi-Siw?BUY(YGA{m_>@zcd=pJE)UbG|Ks-I?vNS{Rh?qdVcY~ zaNFL*DPhF_|AgB(=YGb>rJH8N3iNxv#u#U>=N;Dw$IR%k8HOL`4#(v@w9@~h>`UMy zD~kUgH^>zgL{wxrQP{5b=lc!UL250wNyyA&7{||65hxo_X)3C-7hRWZwIBb#--hb#-;We*LVz z7G(v&SBRG%v>I_(2>zG&^eu+Favvo=^SI${#uR5}{1hnvHKdSx& z{n0of@i{AZBDOEFm3ZQ5)4zKTbu#hs{~n{9^Q>2ec>BH9?w=)oKJnV#Rxh{ya2xT7 zd(6(A|9sfdb3d@t^WTAsA0FSSN6U5f+UZ)8zjnIucX3D;aJBQlou%}yUyqQ!C3c?h z#lUrbcYwtME>6CNd}_hw2%n!55B~h_2)_O2O`aCU8_phH1zh}R@I))H3A0b9hYNtKpX9!a0`>otJR+3ga_z|p^l_*Cp%=#LRkyxZa**RQW3J`p>w;H$*P?y>gT zXkrF;5U)LB{q!8R@BPGsgN^>(q<;*!j5{-Zc}3iK@n6zUE{TpW9bcq9r%i8PBcGFr zCoVG2yp;GR;$v5u{=0~uOFa3E^;73p?*uOWqUB+;Hz&^@flGgE*<}6E;X7VWyM5Be zHP=rMAYMBx>Sx|geC9^$NB8Vv0u2(+wwm7PK7)&ikA2$u*G<&tGQjf5fr7_9(uP<^C49*u!*h)E=H7|HM_+-*+PY3&eY3^U6KH zWO}Im!$#!uNPhxwsn;0e2iJ~+z_ncNlgyI--Q*Lz)%1S__4aGx*;v2$tMWl_d!^Zl z8!vYLvXz^Ry=S@zxUA0vvG;D)5Fb0rJdca3H;~Wdccbm{9?~bSwDEK`<@^Hi@w1Q8 z8oBw@4Zx+olV_Noo&Iko{bVxQ@17?st96P5znv63YK3>TT5FvG*)4C7wOg z=$${j#^HTthpr!e4Y>OM-FlR>lk*PJPsW}r9W!C_lwQ$vB;(1eNdGqC zJ+bfUG=aJ_YmS!e4bt=UIVV{C(~yt;^MBWNIzb*NapRNp8zg)l8t>Q>nEh2xXk9) zZhhua;>k_cPe*A#&k!&F%>1p5R(Kuk>n4Ae>soGH-iLVNb{nT2p*#l@pL&zk*SuK} ztRY^D?eFa;KFR$~u3g^i__UfNCzAgs9iQz?!!BNZfOz&A!`=6Q4*Q15pImA7@BGp# z;w_&yd@u4pi}>U*QG5F)@t%Jrl+ulB_YiO2Zl2+qo`|iZzT%tK zj^ig=&mH8r(*<1oZTS(4b4;s2u%39&EjBJYzf>Zh?185Ft68rnNk4I?aUlC(_iq{h z>DAV+UHc}0OTS3Wi}s7GqmP{j-Va>tuw~rz`7i3>F48A1xBh-5<@p)$mOGD9#L4q0 zaGiI&v!J-M|GmC#a*pq4_Ixt=974Pn8`l;QPaJ7_=py|oz=eO}?Dt0apHKR!6-NJ6 z(qBV7m~Z9&b9+npDsUZ-&d)30#^s+7Z|C_Z&i_x7&kX0S*30mI)=gHgEceg6h2_2x zxW+TjNBz&qz@^;w5i8g6A0nT`koELWQUBj3K6$E@*h&7sB>(AuMEU=X^tB1I|8qz` z?>m%p+U&sZd}+#yv+UNJCe^BaIuqdzPGiK_;pIp8~nVDm$v|y@pSU7 z(fa<{@xQ>@#qs~M(&K&7{V!4u&VKg2+2l{ezE|=F;2K}W-Y-6x_&EK)Yu^pPMgCfB zKh=HYAMl(d*WaH}KCccI@;SJZ^S`7YyYx_%bBy)f^SdTzP&!DFGZ;7~iPyewntzV; z+klJwQ?c(ye1h~nhg-Y2_~cuTPmkI8x5(#r#1sEEKjY%(zc_sVXdE^Fds1%W-zmHt z1TOw+ir?j-_`&;ti{7SU^S)ibZ}ctO4pR;Z@;Q=t@a zttNdxaOp2Imze#ycHHXt+-vkZ?qC@{O}yo)gB7@*_>IKd@3H>1js5E%4(E6GHnQAT z-eUDCzuWk`^L38`u6}X{li!U;A0mCwe~5B$@z|${x7=a$t61($#K&X%n(iT9ey!>4 zF3R%|@u}Y%pEt8!Pdh$;w{mOrZ!ZvU`JuJTJIH7MNs~VjJICpK;L`4i*ms1-iBJ5- z_*icZf-eD=cq#dMiDODocoXY;A8^rI57%dQrab>5eeHure>w48Z#8*l z{$N(>{LEp*lk9hHyn7>X;h*@EN#fciPx`Ugyr4`x`wQd$BbNJq;w>kbKHc|WFC$*7 zM&p*B0+(_pV*8*vZ!`JFp0f6Gc6$nNp$}sF%6>rlmNDzUu3!9&c*Te&@NkB%dsAU@t{>rOAwer_Z_R_dF|omMYb?$N|s_A~!HL_V8=OM7Kw-%otd@rk{6`A^cf_eJe+ z|2vIO@*s;3&wvTYzjeUXzio{Aw?W|2A8Rww@!}@pll<<6)5BfF+hhAr?guXN_q;YL z&%Sq&|B+F9?gcLNGqL>%KUaE_S^m1`Voy3gJSTq{NuCF;aoSHdDB{}jz#m$GyIkRorPKUt=&KQf-7I)jCdK5hQc zJuh3S^msp)^9a{}-vwO!|2|xI+LQdp$R}8yQN;P-FB6}6rP=d?q<@ZhnctIj@2PEn zkI0GdSS_@AxpG^8OTUNyd5#Q&> zCTETBDO)K)a5QkUC?j_l$&K^dAi{B`hqy6gxN{{nDvxYl=G7enykc~ah`kvBbeLHqe!b9X= zdzbNPq5MyiPx5JtHxAy}684-jd1@C%>w$|rGrbl!?nM6mq;LPC(I<#s zLi*$-W>;=q{UPGhH$?r?f}gV8-xqDi_Yj}@g7LX-J1gK$;_Yvq#Zi_E^(CHo>>!oUwacT#r_ReLUemt_ zgNcuQ%Jk#x?PWg~`SD)HN6uABXSZ)s9P3(th}LTZaJ5g4Ul)-7`-zW#+5Dc<&!>s^ z)Q(ijFYj#`t|vZutkvk>FOPPydp3^75#hBgEUcH$8uw{4W8n`uu#qB2J%QC;d3j@p}{L z?;t+$(PI_)6!BjI7r*y^dzjy27#lo7`ryrGpFO01ns`rafBT;Inf$eyjW2vnF<3@? z{F5gCQt~;2_}F1)C)S!lu$lNYzhmY6>P5h%zQNCjm4mDAjf!LaZ9kLn*W`Z-`Lul8 z_`CI%-vgI+$^JRIFKF?vjQ=m*`9bBt;WWqr7y8NAdz8N?KEA6(8ZIt6_1C6{$wk(G zO)7+Q#LMqVDF3ql4T8@CmwL5d7;VQNlYVN8$?xKsKRWzIv!7kb=heTV{K>(Zc6$No%j>OuPb8m@5ub>SM^_VX?>ty3KScVQiI0t&oUXm@b$o`8QA&qD z0$lxM>^z*8{nq54ekjW4^~95RnIE=Z76fl1UXGowwUYSwN#@7CLOJuq+Yd-6av||S z;)!Xq+Zz4h9l+Jz&M^<;?CsB_pT5Gzch~N_-*57le;eJ8G(^0;)8ZmWe=hN9`hTlk z5WJsw;u%9+yML4T%*>%GxwFr^fr~zSrlbDzDbm+&iTaba2h5Kp-kVoG?bO5Dfb00O zcQoD@04{!b`n%RcA7H_o9sM3r`p=L)@jKI}TbFxI>EZu>bBUJd^m+L2jDO;aLlm!2 zo@0r(zuh9SPU1_6PoEsc*At)E-|X3aS9jF$-)w$w8~I$|=s#h6T)SND_{aR)H;E@t zv3~tw+R2ZIPw_h)3G)8~aP`l}y;l)e-&g(K>N`Ga^}U+(hZCQOop*G+qvv06FFR5={EgE4xX_*Cq> z|-;^X?<9Wp{-dI9>{4>_C9i9U&@{jFk z@?(V1f9EMZZ}8*h3tu3gDSnUM@%c9K+N;fOpJUc%iMI?{d%5v(k7<*C=DCBE@*&c{ zf%w$8`Qdx1=XVniV&6Hs(&6tg`cIMmN#NQpuZynfHj2#zH_5&NF(Qs83$ ziQk>0{GI)e0+;c0I`&@YcgSbvUH06T(}>_6;ytl*HSbscn4j_-3D@rbCVlONgS6Zu zsLul)v2x3?b)+kRi{5IlIa29I^luP+k@ytfOWl?DB=N~@QNQ{h;^RCY)vcer?ho|0 zMbnsTucLrVxk;X9@*(nHLVW5V>qkzW(}_>!Z6=r?{dvR#p3gw{9DEYE*iX+h(Q)BB zioX*5y+=7LB%dkrnc{muPZNKL_~f%`MV7O}yg+>X9vkn>s|3NBkFs9R9j5e7Z|4vn z|De(Ti0v}r=>Kc>@8XvI9y7gV-(h-l^UZeP>NlP-zcfTS*Aee&HT&r!|ANE$-6hxG zKTmw>ZtL%EJ!FT+jepBI(YWQc4nNx3Wp9@ICgQcfn1^xvPa>ZEwQ1%u()SQg9%|#x zXNV6HZ$CVtNQwA+iBH}c)$?zGOZx_~{dLbe`a`Ur9z;Gb`=ilM{vv7*2Lo4qo|I8a z*Ir47Utw~(_^pe4PK=$SvJSZP>zUa1@9rd@+NVvQAD}$HAwJP!e#u%h2%aRL>CagF zW1|={Jz;Xz&NY4BPd=|Bp5?i4A0vJ|@$uL`@HN0i&T_`|xeMvfA${-#lk*wkA94KG znk0|YuD(Y;iP-${<$p3c+xrhz4uj-#4Dp_;EDroN`5Z@l>Po9umG}^FY2Wsk|NkKA zv$1nBzeK#;W^%4zxxZ09*eAJDk0P$WKS}y_uIsvSZMP?-T&yo$Wh035+pWOGPNu(Z za-Kl`ClJpbZ*iCPdhFjPKDj=jl+Lc+MSNmk^Pe_41i`Ju1D?0w`q6!gvoQSZLj64J z_{YYnQ~zv!WBio7W-{vyf)a3T_t<*iw~6<}&dodQFH+yezqPzvq&S`zthQ7uB?wLj zE_$21^-QI7dV4qNC$BKQ+3W`22Oyq^`I#>{{>zR3=UDE|#9LzD&$^d*GWLG-1Hh%e zEwOp)oBwKdmH1244|D_9@#r5`uJixrlYTsQ9>`}&KNI`@-Mz%8`>aQQp7Q^ec2Clo{VTCoG`_l*^uc-?kA6cwnHl3>s~R6`P3)s1KK(hv-MG*PT=YNQYJTP$EcXfE zG9PbmG0SoN@j3G8;d3SH#X+#=|5>@^m>=Gcc+cC7@^bP&o_Oswrsp?M{%+z^r<-3I zAzmUr&hIC#C!d<5|Cfy;x3gg`CmvKxKW^RiFT{I(VtTlge0F5m~k$$c`;Z!B~8O*US;b5yKInF8)7*c<_3Y6CUAY>^$+ik`qg_$ z-_Gw2^pO7}#CvYB@#r1IpCLXLo1gCdwAoc~eAKR92V9>g#^R`>fs6hVkD7ftf4ffk zz>js0Xo=2`T}=9(qRpe7-~JTw@>k6c|Bn;t?-HNtF?%?L@;^#^d>`wldk}vPxX3xZ z&g6G~d*5f+Ua@taV}VP%2eI=sK1;mZvX64Uf&70;KGVBdzi{<^ocIjCulHrr&k&#b zsrB^Ri0}IklPCDC+2JSHkKO}Z*V&f!D5b0KrKBH=?a#l8_%zQWwJ0bEzDm43_TK$2 z&sw=NvF`=1Bwo8VIv@EE@gTOp_p`(&jyC`7^l%IDq-0%KVOoX(I^kBA?(x z*1x`Vlojx6;#0Br8eVXC$=cnGU$6KV?Jf3x#O1)HU8epTZI^EWm;RWIy>ENy^G4tD z$0&U}aPdDAcbI_tQV%C7{VRjS&OM5_@i9+6J+b-AHphqO4!L!MPXJec@^;gkal<}0 z($`||-QP@n@>26Wz3kUNCtmJvRe7w}2f<^+lV7lQyhl@mV84G`z1j~ozh|Q)zS{^~ z{D1A?4=APct2xq7zt_s0;y7DTdYnt}#i-ssLi#ECjqO?P7l@a6F6cqTZzCSW=663M zJ{CK_;;sK-zxdX{%HdJ+If-~r%rA`-uf^6azf3%No{gJszt;DOk3VSoSwcPknRxaf z)5Fy)_n(UM20z<)x%+=j&g8ka-sRQ}28q}H6ZH>YA>RHME7xj=?}a%&9FLs+PdoZc zOrC34?sLQ^jy8K(N_?*uOrGha*@H!uL2wB1c8)vFe%=aP{mCoMKAoMPK>8`#8;8>% zN4({4CcpC=W#xl7wk;aRj*-6BZY8>S<^kekOU-Y)^@kba!Cp2JIe+y6`3Kw&;QaZ4 z!Oq%$doDNni>Ze<0GD{Lh5JZt6b^#pm7YZSarzk~pUK#FF>VGf{$%DUi%*=LC%3b5 zr+#Xd= zC7->Cm%ncuoWEM*@Yufbe&Q{cS_IF#InICg@ z`yJwAF+2Y`@u?@Rzc~5-Nj#e|f9}fNZD-p5`>nlPzuTX9_WkB3ucaQ2CO-X^H!8A* z_;TRlHy-491ujlIo%HQv#^-9%mx#9zcmC>p;@PXsZk_#%6Ysgs?EL#|_v?u#e`xLE z=9NzqpWt%`r?=g9vHG^}X?FWv%JT-`GQI~dJ5v!izON#E;=ZWA`VMeyuWylLwezVzI$Zb^g(Qk=Tv> z>%eHeI)O{v7_^%_ZzKOxiT500e&#yjqvSLGu=P_netm>^@Vh8}v*K7UJu0f_dq_VW zTaSGTxcJra?^yf(kajinGV1?nlhgUP3yIfGj*iQB0~bDtjmF1)4{L_>W8cVVjZAx3 z7uwzU_uOdx?tfU{Lx|UQjq=|_eBui8pNlBxImE~RY;rok_i;ymytRvaK5{>Bwc9PG zpD~vEw4;B}{HlBY{@OiE&Xz?s4{~vSD{$%Wx zd4ea?in#upAU;;Hc6WZPmH5n7^E1wWE(I>_JIUwu&M%$f=y}etSxXQM5w9I&^?H!< ze3^JlES~&6aMkC2ruhll;r}}Rv30G7NZ}6-yP&XMtrI@q4){**YUvB-^S|JFI1FrpI*yJ~>#`6Wz*SL=D#@{mWF@9&n`PKIkpXjymZXe3| zao{pul&>@UbmPU>Nk7f?cIU5dC*FR&>DhV>mfalwkEs1WPkfB~nw-Dd;}xcd@+qeO zXDQFI#1s2iP0ypAM-?X#elFwXg`^MOZ=QSw@lOI5yGrmpQfDV$CjEGe^@wA(w+wd@ z&vGA#S#J>hO8H>l!hV-3p&Q3{d8Nre_OWPO_iEz7=gjYwDgQ9>sf203`G=1HmpCDD zZ7st8X2*y72TV&r@H3^yy6BO4rFZpuko2{$n&jtbY7iW?kIC8dDl73>)^{^-Y4_S; zHlEhULDIMU)y50w=l@82JZ4w_AwKzeizjd0#R}eQU+U+4iw}QJc@8F?SbvZrYl*iL z&pu-I^D5%2h|ipE_U8Ogk@(ay!!63fdI0g@0~XH=lh0+2p6h;t#BTsD{j2>*>tELU z@chxyb3N)f(*Fv$=&k48UPYYVULc-4HX5HC{VMaH?dMs0Ir&cpuH(h+R$mw2ZXrJY z1C!(sC#UkkJeuE0cm4E-q)+g<>fWUP1M#WX8wV=|pT{LWd79bhH0^U>Ka;2YM06gp zjd<-%W)J@+|675Je;bR0+F2lJH^re#3VPb zh3B@8{$`6Gb|U@x#HY@;d70}kpCLZoX8Qaj>Ay*Qf^p6g;=d%`&i9uc|A&e96wI!i zoc{u@asKMFm4ovSN9=EUm|=f+`ad4H*iZYdQTr*9zJ=dEb>*H*Jb1$T(FHr0pcfOL z{ELkg&VOD>eBv9{?st&UR~`MS=2zXmvh7}D_L=yi*{8FsS2_GT!^_l9o8o%}uiMf3 ziyL>A02h01iLHm6M!e@^Q9pSm@#I32=M386Ex^UDvfs0j_hJ?>16=exdE#h9&o6(i zm7D#sY1r9+2DtEPxzG6Q%8otg=zn45y7A>!;_d%2IhV4&Q{*##oB7Y{i68$uD>vYH z;o`LQ#3%PoD5Z;|&IE1<8SrNt>BsZtKdl!8!KaAVt~P(}`rTv1Ct}~jeV%yB?KZBR zLH>IkV0!3@eFx`%fNT77oay00>i<6AGH%xPwRU&o%M*%2|9qZe(&Aj-*BhS%*GbG9 zt;-okS#T)()Qc+a_J|2wn3Um>2@ zWRf_${Q+?C^I5J#IyvtLE_OA3oE82kSFn-xdg@^!118-Lf4&sgkS)&b%ZpRw`6^~b8i z`To9(W6vkve!S_yjU!{k%WDr(&A9J&eIB^j)nmJuKXl{xw}FdY_5Af+O7HCIe#K!w zyYwmU+T}mwKY2>jPC5=Yy-ki=`}SxqoC8KY;Q3lE&aXK9TQ|VbNIylqmW_`4dmX}lafaFFJ4k;Z@rm<{|2ODQ77`!JnEX!v%YmyuUv3ue z^m7()(Px?GmOJ~r$nkHpa$S2}3tak9Pwd?O{SGxbv$6eb8R9K3_io;!hSf8qJ1 zu3ZL|o|VMUfxNt!d?sFNc2XohPJH@7vvb!jHxZva-Tc)Hq`#Z^%w<+Dw+{0>aFHkR zg{YnHbC}hu7K_7=1TK1L|EKv|HgE88(zow!agp<%UnAZUJ4f^m;ypt)U^@B-i6=Q9 zapUYifJ-|jPQ5^Dg~ZPxuh=o{WtwPm=yB;G&=D*nYpi0vGw)ce0Vf$-nO#ME=IV+o{ka6vuwi zlPnIrge1oiZ+V}240oPPH*hI8*v%}*#Y;DmevIG!boi~n#r_w**8GXn^Dl_6;P=ya zXSt7%&(yOPA$Jpho_K=qUAnsLeuTA4&l4u+DCygQi=1Pz{km1skF^^IC+7vkCtqRh zvXc7w2yl`AUdrkG;pfP|{B+blcRkYN$;Q6#^BUq)vG??kba?E09G@aSeW%&EjY@dF zPdqrw`ssh^mu@0H!S^_7)Wbc%MGxiJy3PEfq+XbJ=krSG;))ZAkAJ}Mh2(QOaGl@r zJ2)Fy?xn!h4qt8hcYg9Gqz_Jyj#Ez%AOET8*`kync*@ZaSbw>O{DY&d+{Co$;VjDY zYT(*W`_EUz+4%{;MV_gDMcZY9e9G*40r1!W5C5f1Ye5!z3YLCoQc?c^WbBR&p6MKTgGx%0T(_!d=JR^ znG)&SPcZ**2_5vgz@=UXy~g^TtJeoeKN0($-L=GPvG0a_k9ab6-rY}#&m3;;_!i1} zKX6??=lL*M;!gorJ;css-D95BH``?q*C*NTn~2x$jLsLn0$kgD)%%sRYxh3_7k$=Z z`{f4TDD-;-laDPjNvNN*fr~v)bswzwV$MS^04{ubPB;6xf%1Qm^ez0(@Arv+gLwOA z%s#8cZv`&(9Xlu*7yXg+iEC~C`!@QS|B^nqCu%2eNSd5u{66wp@_!R>;a`itS5EpC z#)m_s-{Nqdd%O$riyRmmG;`Dhl>9c!f6kou0xtI9(GtqJI_rwF9Q{?>Wzll#j zZ+dp+?v=87O`d1-qkSmP5x~_ios(C@`JZ;+((aRk(RSZLJ^|lbapTC9#HabaW9PTO zLOl6*^D|b9Ah?Bi`>$+VxQX)ok$5>_?Yk54{}9iXZQL9tzGvF%6D5s9DbGA z^Esp+Al~wM^XFHS{(p!k4zd2_-V3v8+v4?W(9Kzgu(`Vvm=SJu+RUG>;WBUWI1ulNO96Mk1 z`^4K1N+=&Uj{MBgKWujE=0Q&?f5gd$n}>Am`1%FLzvlN(w>V)b`Rq%)NRz#$>Z!TL%f~m2fBIC3gTmzn;+Ph@|;FIaizrxTZnHUUgrGT$^TK} zE!=n4P5SQ=PkzSi@NVKyIehzr6j@Baw8xv-F8nT`)h-C$K)m+2$>aRwLgI<1%nq+1 z|15Cn7qz`ER>bv-bAgLKYwtIGy7=%D{;0M1ZKS`L_+;7eZxX-O z;g>|?*lF@Ff1_6^ot^CX7LzmJy0P=ydlR4dk&O#E@;?-~`qkKa_@%%_&jI78DbjyV zaXcR^%~!|YtKnljPtxi0K;WXc>DW2mZz6rb_uAG_ zo-Fb9_gTI6AwHyh5SJbswVzLue*6lH6FyA(8;DQD&QG|5e5M~7RZ3@ve~<`8JC{ZYBMF z#3!FM`AyqF@E78VZ<>A%ru@NTDYx;@y`R31;;`a%He$MdeIW7ax0`3)kNzi3yoKlI zJNlD}k1b1RAzz@J8|(CkD(?KrDDj#7js8?k4TASL`WviV>y<(93F19(Gz2D^U z<+`Gi=U(7q=e5}Tm5-9X%=xvI9t8g(J`szNs{M}AM%N(q8D0vG*^9}pd1Rw_L+<7beUJ&sRo|K0@gmIJLt z-1^%T@tN4UC4UAkeju2?K{-1=@S3Go-`d-;R)v3y*pRD$s~!Hw^uI(?aqcMbiP(2W zE^zd*eGB8{KNedze%%Sif12N;zl#0(XyWDA^RIT`(k|1n@$M$z((dDf(RROw^y3R` zTz2}upZLT|!(ANp3~;G$vc>wvdsyF{PNY4*JlbBzD2{lh%lhL+(k}rnd?t%lqU+c1 zAfKLFjNbL%_mIBjDeI@-p&l-GeD1RG#o6a|#HT+P?RVcIUR!K-{v74mVVUVI85=J) z0v9=3MiNTt-Uh7Lb15w^{p6a6dULSpTJfi~QrUeX5Izx5VC0%n}b`ar;%oCu+8S z>(+JuNj%GQXc_(lJ1w_z%XgW7eu(nyPdpntui#+fQ_ov_tss4?<3ss>1hACKW50WSJ%KjRRU#MSpI;x(Q( z?(F$N;L`3>^kc4F{!RL^?afZgtk-TU$^TL7cM0PA0oVBCh%*&&e(5;U2P>lS$!CB| zy;`? zWBUxtz;)ai$SZw|{tbfj$S3+k`^;Uv zen33S^#_OliFkR`G=Dq!?|l;Wb4*4N7k3>7T-vvV=dQSVEh2qOY~6bu@yXcvTALi+ zZvM@*5d`lfJ|6q-!{x-w$D2GW(RA|ftHj%5-!HxexQ>r8KmXP>R8c2W6^Qya?&RbNhqZokG?>B`~a)bedO~^;A!$K-VM-v%!2)w9j`Y-PE3lg|YAL%MP8 z0pgRf^8}tI|DM=$nFH3E{IyLMe}0Jkk0f5^cOOjKL2w%J$wk($ogO|(e0o2t*N>=& zFB8wE%syYfqZRM~aB1K1SbTosI+JJmYSX`4e_l_#W%q-XfzA4ZU<2{-KUur)K>06n zIQNrWMEn!PXI7g$72@9jE_RareN_Ly2d;9)&ZFyCFLE~i(VT-*702^C?(1;vTPB`; z$ov)65S#~G#*4`VKd8*ycyR;igNLn@3s}^h#AjmfoBW3O)Gg-60_y*jC$k^jY4Pwp zI)b+X7e6*tw)x8+$bX3V>Oh?lRo`S@Mre;M&4_t&i={WZYlx$W3d)>3YM zdK>Adk2O1aE9rjUNPmdj= zNYD0`upja9X)D+9Ig@zu!Gsdt&2_DFh?j?L2I0n$G2-pp+j#L7V;_8uc&#Ps=O1!- zCW@zeqxy9AlT{q+IbAkx-bnsEz-3&U9qm%>#lD0558x8V2HcPLah4nOC70`1 zyLwG-#j@_Txg72~BX@7>s3-N0lq$Jm|JHf)Q>_bvzS2;6urN~Sm)kbv>o4U721~v9 z!JH6QbNSJ&!G=nHsF3R)9U9u^%IR9wsl_Z^vv_4!&fQ5d?z+LKug<8ttvXT|n%7q@ z2Serj$VR>DSdy<6R`;G+=o``d+zBgIFIl`Ims^%AR4S#)>d}$%=tz(|tu>XCdXE(Q za>e1|NHITHJR5h=Mt-;@RCOXS50mRCuIsLoOL~WGkiKLMRWKp@^C-8}2V`jSHSTZB;7Mu`)!F z$_(X(io>f4TSwN47{TU3r3%?i1p=)^Gnh1^BgMhu$Tnko+G(luKw+eNW2vG!H+Q9y zQjsNS_d*3~IW3h!`ij!S(X;J zu4IFCEMC82ZKYrtbEl<}eH#mXn^sr)3zh6bNnBOxFJzY%v&%Pkr*mCFc}2cDA{azW zrHWO#T#qK}Z%_vvYb*KTYF-=7YTIags4$%h6LjY{7qX?|@JK3MDO5|NmA=A?Vs)e| z=zxf&3e^>1uz*P&>8@hXu~e+4AT7(<=TQY=p+zq(76$uaG<}s~uca%}U9jXvGiURC zoALuB87ytl+-nN?{?)^S+m<>&E(Bzgs-B9&11Fi@rR085ex1I*y|=HCh<%D=d?o8}hEfO;s+@gwZb1H9Sxprd~RohG1N)+B)Pm zl~e;O$#vJ6U9J827289ySe;9jYb4LFo-J3w;=#dEUml%A3kr3z{w)-wc($n z716fEk)XT;c{X)Om9?Hh*+}iC{mL`w$QkxIQqp^-I(zEY)M zOYhoT7#=who??(HQsAV~!l>0+Z##=s_$4$BeMSMcN$I-_L-{f~p;52hSV7||B9P8zDHID%F*Mu-H)xH-smukKjhwKlhG)v~pL=&EvJAz!xk*q9$4E)3fBU=dR5 zrBtgh+%ZzIlvRb1Ev3q)rCO@b_ET*gQJPe0C|6!K3=ayk=nBLSu$puUtKj9WMreQn zv|qH6*Y=e=LNdv1LoD2dIN>f@sPYTxV{Jz^x2kLH$*b2a&#l7H5p-7v!_4Kj!5nvU zv+M3&5oHG_JyPl`QF|t}7YlXb?n1Thi3f81TX?^$QwApJNmIj$UYuR#L0477o?%rr z%ob^3!Rm=&uBWWbh8f^C%t2DaEIKf7!wp8ttYbdHbr@8vHPCBQX-6w?s`a!&1@2jb z0pZz|UA}QByK&7>S87o%mtE7fcI~OTrR!F8tX;Nxl??l{Ii!WdOU=J@ZD&Wgs(K%m zS%7fmm0+~DYq(zr0Ii17#ISA{ZZ&K_a{nS0gnrl^wISs~Ri!e$;*O-V=Ma1qvwg*E zaWKfPU7cOmAL$kjYFICkQ1>7*w?s zv!o?Uo39komqte-Wn_?{HR;Q+w1jA=Nv_tWxlozKqazzJ!W1z|7b0b0F3_Z`HPv#{ zT=OMY#wTGY3!>g-!y8JG;uavIzjaVtU47|Do`sTUk*_cfD-j*TW)XlzGA$Aby=LGt zEy)jWT3cE=Ix<=*Ktqw-spS7(_G&qrU94p8(yiRJC6QuQ>0&YeAKBxjtNnOe$JPC$ z$~JGoYC|t6XS__cBd?K%%IqwR%xycyHzQnbsYrS&uOeXytT4q^OL#3vau) zqOzqbmNH7w!6c)8!fW{rds&&UU=Ugpcib6u5?)Cgc@g~$VYEcKv-39}WjYJxk&P%8 zlLHxuqg7QG;TuW{8{d(RqUp%iQPDV(P;n0{b!C=qY7y_#v;;K}Z!MNqO2Z?z5E;qRre4L{ zw$e?U(XT7ZB26@>jw((33Km&)l`5J;M;33)=^@sp_co(zdQT>G9A1AF$pkM_sEp`Z zRa8QaFq-rgSEt3Zhk-V=1+U^&NM9E99Nxx_i0aEKcG3FcwY03BTB@1MsahTBBdVFN zVTZTzJj7}nUVVsFaUvGwudc$Y53H+Iwyn%>RaLGp4I;vcX4O%~TUw*XOYhRv=*mzu zbMt_td)sgyhAA0Tqgk3;iDZGh?_Y@p_5m#HM)RqaczcWu7MeReyv$c4@hV+t5h=K# zKU$C)h__QSTeDbezL-Xv%{JN>Pr00V8XIgUv#rT#~80o#tQZZISa&k+WY~W zQ`GFSE~2yrVnuCpiQkAl<_LKfh&{D=?YLeMCkgd2JA_%F!;!ZEF{_&G_ZFySHKU*1 zKNmE2KH%?c%CBj)Ew84Lb*>g}J~)NSj5NtY^*LTg*C=b&d|{!QlGllc3Yu-d3)KU8 zO;Gc>R%;ULEL8hxrkIyxI}6ozyxlz_K~uX~sCMHuJ}@vR6V-6@AO;!KaH28jLbV*P zgFuG4Crb-8o@v&c%?5^r%||Pg*klH{Xim#%77Q(#({duiazu-ZG_Yw_v1Sp#A|1B8 z!7VBlDa{iEEYfkSS?)$dgol$wY93w}7b-DYwdP}%Xy3Cwu}Cb$zx;+AjeZa zt*MlbT3&}7%BwcnQHo9MQzt+X?l~W|`G?n#G*;Ox|j$*?7%vmc-ut>Y18FcrT5G+L2e&m@wC+k7-)1$lI)< zujcuhk8a^i-l{ftOtB(;xoyqZtLRYYY#L6cbnV!`c8Jnn8Veotydr4N!_&r-MoY1^ zrBp_Y%l}xRNd^svybc_aHpwGq)ao@OXG2Xg>Zs;*2+}C-A&#;gJu^wQHV=E872|1T)SKENVtxA5Ter1?h^ie}ji>m}UjeZ*EGVKGrn1nv&OmIiZ#EXNTJJ=Ztvf&Z;)# zwO$D9`X?4M^3m1l)O;}@zrUO-m---YS6jI<PeoxME-l|{xy8t5VWE=R2-4TU0>PFVTZR^)w_u0s2n>J=`TuJNlwLkD`WOjWzB5zuku>D!P%Z0w;hGJi1 zh>B%xK8I^$@$67Z+bVXm`1?ijsttMVz&+*kJ&jJ=y0zB{xTm6s_cj!<1!tgCDUNK6 zhHYtGzxL0Iv9o;k=DxHpTKf$MUIz|fxQgvyvY$4lRSmtplZ57(biKOGtChNoD^*-Y zZ9{FeSX;677VGpnXLgOiz1hXrHFiL{{YSCV#gzO(@ybqhmY&^n>C~Jt_*@xv%xY$U zt4i>CQGc0EiTlZT{iT;&M=5Us@>F#8{(!VDN&B||$$%Ky4d~nTlGaVf{*Jt&l<$vn zh-zOKsr@_0?ZMf}=nwss{FWwtL)WX@yuQod_~ysfr($A=4Yhe=skzw1n5a|o4%^V9 zOd$CR$cn;1ET>qL-v*@x@Px|e%hGB}-l^4`g{eJxRo1km=8+HNTTvX|v@##vD4b4f zB zXx!s9uxK`KnHv0frCo!!sqv7{Zpoj)7PP&E zAVaAF57DphRpbXf#kDnm{2CI`XT7?l?eD8jP;WLh6>qd41@h^Wdo4fO5N*w4pcly~ z9?3u2dba0Er}G&3+$-AV_-PDq8Tp}VOn9{-Z^d6culgu&8$)T4>=L%bOKv{Wy;#;c zR=HJimfyGWC#|d8{t#oXTpC+@`!;IYv2^9i4$Hl~uq~=zUElWGgHHCn9o}jxE^zf)yb&K?UQgRnx7VE^JQ~dpN_Z7v5>uJ_CvSd? z6}q-AD?ZWJG}5-q+Uu>Q%FQ$Cdba-&Ee099!R0AT*RcJqio%*_({*caq}p|IzJdwq zi09#8+Saa{S>K#F#f<#X7UZmt#J1y5cki0)(FW0-)BY9vm&`)Usfi%+CW6PP*WxY8 zSTJo{tiAesi44?ZHR~6A+BAC?b6Qun{h@C2Ot#b7--Sj8ai~-54fV9HWcw`$Z(d_D@yvkf$E-&kpH_8{|9mauJE82!? zZ!6*rySfJ2K^bE2TGDrUmo^nY#t~fBOIu%AH{U4Ye(KO5jzF^ zd2C~~w+&IwnnJmdk2yPArS|8jmc2RDPP~nUGIZ4R>cCd1{rRfpIr52d_tVbmq6=NESK9N=~|pMkX2CaP18-))a8I z!m!C6kvU^))!sR+O{q-T-X+G2Zo2l5nwGf(Z^_P@9%Xc`+W!)fugt~6{Z07j0)V&E zFjTY}iv+P3+A_L!?SCu;Jxf3nkHIpwThbM1q%G_}SHh*EP^!3w>ZnpO8 z);S%I4Q6bYb+gc7&YU_$n?u${w_6tNt{K~2?QICFW+Q97<7ISrwLgBhyk5oHGPPG& zjC53Jr7$2zctzjM$)wb3ybf^gd^)N34g}4HxQyEM>J#cFT8 z+{4wy9m_gb#vU7IY^A!HD(B9sCgXL}^(FbLCt}Fx@frRN0*!fuuIPJn%iP}IcRSZO z6OXz%J5j^y8(Kr^BJ#ewD`^=vdW_)o$XJQZ=UdS|B2soNs}5pb zOM`L0Xzu1dryc=nL_FIu>zNz=WcDeCzf{-I>fY-&i}@eXa`9D{$uMkb?+K`)kBtg0~E4sDaQcS0czi(^%BsI4bk z^F>CC>5@}sFgW#fV<~n(iLFa}b&H{W&YZf==+9X=>x9CvWbVk9v2i1Qe2dPu{5h-T zIdh5y`P&oqWX`oX_cm&Hwkqw_Dk|ALn|dSfXhf~5N0QY{e?6OVSch_RZR-~In2-2sTXI10z3Mp|NcIa~_ zTcvb%Y;h=qJ=QpYkVh8EF;($%2yp`8s*-JjgL;DHi@Um&q`SAYH7M%eHGQSw0MBJd zx61iR9VM*N%s%v5&Q>nqmAKK7LI=)BT;7-M3;GLkW;1_MK?lzHUX@$lwI*1*QC<)n z>F-moP%bXRao$?0FF`hm#id4RZEiZ%HQZO(RvyW2?9QP~Ips5r<9$6P2%}W%35Ag^ zoE}&iE{v>P+|iZoYjRwu9^@F3uP#PC09e`SORkr!ez^i;t=BGeqHON8^nCUD!lL1e zbCxNa&d3pu(KNN(pl<}{z#$$V&JT*wpd-X}Gl0{DD|jutjFUmoVdS_hXeHf>4zU*i( zQovTv4~M`pA&XLCvosNEp-$mnghaedbCQ^(iwjjJY%ffR_GUw1T=`IR(iYF~x3UoXVx+DF~A+B{eI><%#jaGg>JD zmbJN1iD$w?OIMJe08j2*c})l$2Y>Q>E4@#Tl#Q2;2NJGyKLPfXyV9EwI1c_~oNUo= z3}Q;b=?+YorD2?K(CKLsyztK)-io$i38v1m3B@8~>`%q~oB6#}X~Sex(sR8y#a9~A zPlZ`oU5X|Yl)|41^BNeEVxszLL-1+1UwGJ>&5sb_JOX@-J*5ZXK2{QuGa#c~#w{H~Id4*R~ytnS?XlHfq)?hE#0(+=eej zY{+BPG$&uv=*4l#0nQBWEsj)kBl+IJ!aO`D!J`!^Y-?L`5xhChe9!fbY}JoWj0xD{hfTmF_p@qbnl&*?%%rRc)>dlYukzlpTBJ40B?X(EX87k+NbayRY({W<1 zV`VnCbQNNR9Q3AdJZ&z>oru_n53h{mWRp~`+Bc%sj1j_$6O%-*%EN>Uh}ZJN1@tc? z8R{FB54A|GAPXWve3(P;#Fnc7aC&ItUay95lG}9Cs9(aZC=+}vW>6(jkFs$HBIgHWqL3RdY*DY8%Avo@`P}GY_0#~}ZYYn= zTfhfgHs=RN3)MOV#+4BVvJ~?yC_}usHm`PBbM8@yIjWV-_>@C1jE9@*iYlg^dDu>c z=w>99!@N{#i6;YaIk-{hor5EhL@RF?wxJ)FkjkZVc;c8J96+0n!b*GVw{Q5Ye; zDEd1*HyT1Xpb-!^3VEqwMp+yX(3lSOtG}z?@dDIAp--L{Ve*pjO9dhgK9Wkd?qUo96mBS#vQZD|mYnA1 zaZ#;|2s1HxalAvA6yqZwr44w}1id3Mw`sVvWw?Qr&$91$umCkH<&c4C$w()x^3`D( zKINMc-CfeGg0__4z907R)`ZWB&`n)}d4RD2MHleDklgHR(jp0c)vZn7aPg2AE8&TbSz zf3YfqZGUcPQ(+q#xVotUNeM9sjTl3~+z_Yq!6HVjNIN*4tLFrHS&Bk$boU4dM158H z292r)E*TBohrWo7aGT*AW&R{7Vz4DWQ^*{FqlPiSxl0DDT%sGMgYy-g%;Kb&_vDh1qm0mdC5ccVoUd9J=q;Nr|mHIui73d7lTOYnJu84OKQ6X*D)) z*rxKs95R@jh}`xPp{XrYL!pqbgQ+U)iz>9YT%%5)G!!wj`i=P7U{ta- znkI+ESM+!BW;z0?gHp$sU9&XEZCyA&H@`K9O4k*LZ3wM2uaWhZTz!qiEQB6>YfY(>~KF0K&S(CvUm_BewVEJ(?vLK@Gmda z?kHE%E1}fv@{aC>_}I*{^||F;r{cp%OIM@csTcMo$#>~Sz!@W#&SdffX?XoW%d%k* zhieb>-WJ;IMnouV)o(^&gD|2x&4NIvJSgGQaH+7hoCA^J7_<-;;9DX1z?{SCv|uBk ziebZy@&a5;Lxoc9V!D5>(v-9x0URbu5;-D|3=Yx&n!8cD#*>12goas~ zr7m3GAU@a5i2N-ss9deH}c zTjB=P1Z%d)j}SqOw_GX>su2r}-qnj~TNSS*Bhns0AY|mCUBnU~C?f6wA2;g?dc|He9_}yY%at6W>b{M^hM|!SW%(;|BB(D{Kv+d+jqG-jma7dqJI56V zBu>@?o3q!ap$K&&mM;1e%>8P40$6c!rKQP*7A6;_ zP?XB{bZsZMn2F-A^3w|~Rj-t_UKww_RGxZets$WvwoF1(YnFCo+S2pI>)|V!3-PM= zytWjE)F_TGbG8beis7xvMe~6pu#3`TYmo540$~)#Te%Ab&&2RlTSoY_X}M`|r93$N zQp&{xDDVm43+4+OypPg5?956o;E7;SVs7qkcyy?7BT2c9`0_&oLV65QB76feN)rK; z1mE5qiP9*ddPU${n73d)o?{8ATrI=|Y_NBD-hu`Af`cp*JCd~Ukeq0XC97aPm;=h~ zKnWk@+m@40M<~Up_&1PNHx@Sttz4cZP68J~WLHC@gRPjXP&5!MY}_@{asvo(3YE6N zAh-@&0L$f!D>6l~GM?~&Zxl4{m4bX~MjlHbZ(aI@TiN>|R^L!g$7Q`l46MO!p9Ie` z?5g3)9g@$+2i$VS&GS;J6t*Mx<<2&bAwTSI7#rnIzZuJhmsJd2x>dD~)vK1e4ywsm zv;cc9UC6|`YEM)o_}BG~Y9PH;Kj#|4G?FnH5I5?VTIbKl-d-%d43=cr=o`VWEDXWV z>+A=&l3J2SYI0F7VH%8wI&zJLn)-#zDM>Nf3ldd@PRT)t7#V5(8|!MrrLO;AjM6!? zMd)aa98y$)_!UbNXNgN2wd_LX5Fx-yYY@m3ypb%+PoWaPp}u0N>{+C?AlXasCc(Yj zj`m6@6uJwgX+fb>%x=QOnj9hrD~U!}pvnZ7Ro*7$$Zt$ci{NB1Lb`+(ra;7WohNS9 z+*O%lcb>>=#su|y3FR7;_0-MbtnP-XB8aSYSV=HtyO3o`5kkE`ezB}w#Og1u&_7^o z2*t{3zIe8(0dIZPOacdxnY}qv?mW>MGLkAA`r1;dRw)R}d#+Q-wZ}Y4gNPTAgtp%7 z8YzOg#t<6mi8@B8!hx7o;R4G)&OTsU#t)9K&Y7kp323v>UD&diDlIA*<7OsMyiFxb z#3<@ONbab03hRcM;>PS$GKO?empsHrM0ds~LFk?!{T{Qp;st z4+Fz}ecnzW*S+inUdF7i&QQ%S%*t6{7;{7o{voOcNHQ(enJOv~Gpp{!b-O~M7%i*{ z3-rS>g_O!ku%V4*h7816GA`j}u+)j&x=H~P!C-_9)z-R=TX<`(Q7IjANm@M*?RaxV zmOT2aEA+?>F5AS`qw`_g4yD>|2THl*!Xw`P4;=yrC+^8LM(&1H^oGzL+~%VeZ? zFu+PpC5I0!%ldeu&W`Wwl7L9I4RXvHq-HL$DOn#xPt#xc1AM9)LlYj&*t%g3?bhAZ zae|AyQ|UF>JvbZ0Zi^V0Ug)6&IGb{Qa`|kY^OK(J0B2`kl%AbEoo*$#3Wi1D0mh}o zgX7tB8ToVuY7@%ZCg+SqAwB*I5UoikO2F2efN>Oi*J8Bk%%b(iG)yb#Yz~5YIJC_t z2W=tgO6eSqVGk>=0frPuFq8670yIjkJt^mBmNzt4$Cx`xxMUXLBA-A2XBCsqu$T}> zV6!+v8{tMXdD06#nHMs1h#_W?R+lJdg@mxS1*utdz>LmXtgeViJ2ud8J2ud8I}%;s z+A+d+QOd^`sE04m*?e&h)X8BBv(n;r*Fb0UjoTe*7oMrGV8eA{S!u)fowzk}|PE!Jrg@RaD#`+Q}dG* z;~c?8W?_rcv*{M4XVJl_%%TG}o33sCY`V7jv*_@i$t*fxv*{MjE*Fk#79BRh%;E=( zbloe{&N zG+|3|xWBXoPnNMU1K+WiGG(48N{A8)5~7GE%0qhNAH~Zh1btY99352LDYTrc>Xuu8 zSnaW;Rk>tnxYa^cMcn=)4PFI_O~rH~sJP6f>vwoKAde{|f${QIU9rH1m^uyY1=?2{ zoko6(!)+vj4enjKLa*0e{#CmXP zAQY%;U0Ae{V<*v4*oA^*X-j!rF+7UL>%CS>cMnn{a?guKutHxQ9?~^zt-pl9s(IVL zg~tP>O|oz=50%J#blAOohi4RnHkGJn!`=u~L6^i4*UD4rpnr5|Xd6tizX^lR6E%-M zB$TdUx%`D8))iun=uI0^-IzpO9YRyyL<7=#$@QF^>r~ai9&F+-pIGQ-Sm+mvA8}CH z5tG3NjK!J8@_z&7B1$t#eFhMs)*VGUErJkeZr!zo1>W95MMXf7v0_Fx%4#{5?ywJU zHi_~lzfz@96`c`FA4S=~-KL?@4f7TxaUfII8a#7C+nWTi$2x+-^zp8v;L~3a8z;2k zy!i`ozEAh5nD>O92dfz)C4(IbvgJb>F^4Cm_{HDhVlI_l2wT&;@HJELJXN2o3Kg%J zQrgf+;kDxyO6jxfMoOyA4oP~`NLv_A(;JtDtsIcn#^B*$G{ z^2W8}<|G$x4ax0}l80^@xhT1%)g_l(Cwb!%hi<_=3WN(&$E?6cdB!FC*yCAZ(nkgbNP!ueuiMty)LIy(|pY zyIL4@#$U%movx0BI$9kQ>#7?v)<^MwIw{Xux1}=4HZc&z8dm3Mm=GeKjksxmW5R+Q zi+V9m0(oeS+2;bB+~uJW!=4S-6<5H-#kSAG`J!2ICq{y|uH;IZQGTU;nS!_Oj0C#~ zY()%R*9Di9y70Jm6#$+I zXTeQ4PbQox6U!xmCQH?9s(_4*?;&Zzf@^U)j#{rgNNS`wrHFJR zc|8HeV`GpxdVO7?&e2|8u#`fs(kGkB@K*)ZUzJm?L`?Y=DJyB&MH(swKx;Ar2oF)R zWYJ|0nMv#BFKq3^UJy-?J)$~Sjwgg!gF#(f3gGHOxx%**ZAgt;rABqL$CU_b6-HwC zvR;a2v%wlKuvvZ`g5`C#P~HY+HEpfu@lu8OR|{Cel1;$alp;ONF3=Nj=C)pow)H~P z?JgWwy{~g~^pRAkLC12dsFH+qip`5dRZ)!mm;ib~0pwZ*kP8(+QyYPpWear?2h_WV z0u2$#s4gN)h}_3S)*{0W%F5`Imx@e&2{BzAaA}pPhnY&QceeTyN~Thz1Rar_uDIBQD_INyi2Yk?4PpgD{df?E_ZoxIGB$k`beEA4xWG`T^j$}gYEKw)DGtRi zmYIc>Tw!##D=Y!?O5T2S1>u@y$(4xge&t!0$^sT7kt-po|KhP3iZ2e};XW#2&+Bom zRhN_@asBu!#px?!MkNbcX79NTc)VZI6)tR*$Bj~nw_v)yG%35HL-&DGqOK-MXV+)g zSk|<)-!eBFfJ<3dq&CRfuU+cm@Q9pK2>T>vEn?}i)FfNR>kCySye&~rif!pZ@H&7eQ8w8qDUPr~6ysjg6SVTnUnTHScV4rUIB~{%r z*Y$_cw(&;!9ub}@VU74Z-ZAvM~tu|IGbODI#xwkwCs1qmObNT zHz6J|0?n>{L48xBo)IqapW?PdY{JPg5%i4+7O&T#Y@xJRF6zoXVvJ~lV2F>8S{Yga z>^T&YcRnkb)y4QcK)aSM92y|^@FBs*P5rV}&3qKDHFOPmNC$-}7*#a#NTDGDK3dav zugba;PD$N;tcVC~FVrGaE^7}bqB+Sq3P#*+otw%e(r?99Eg9ptE}EZ_I0QihV7uM2 zu~-?@H(VUjJBYVp(^Z5Ibs_`@^=nJ+MF3KVhWh&&Hf~PXFpPKb5W~qcapR?ZPELlv zmSv0@BeDS!o3d~VH;yN?awYABL#Xr`uiD{gd3&sjC>?=2ip2^nFElC_WJ7O7;!}AI zFW0MuU?evp#IbgP)nQ(^Y+~=^r0;g?;@ar2PMPIY4)>rRb23@-z*`L|U8b;uEb@S{ z`b(bJ^(g^l342D%vb=!{>BV}5fC9f83tQob=gnV)lkG}5jS_(}bZi8X@@g>VJ`5!F zbxFMAqvsk}lt}`KVU$U3aAQ#FJySVqWK+M^;OF7ofLs^AAW69$$+iv!rs7e)-_$-*(Im0#S5-+boHw4Xu(2?f^Eks8LnTw zysL9oK_X)JT8Q2qrtV(0>Vy>#6g7*N)wy`>;t058ard&0S)?6nR>W%F-L+=@vW~75 zt2T-!m zYk8rpZj?7IaQlcW641kLbS?)NH}c}`0#`}9ksa=KC6>}vw}}w8X4cEQ3)HN-n9yLc zth;+1(8d3cxHs)?BS*G&^@naRk&>rxN1|vKUt2?qvb(CjaA}}ymNk_~sqFss_t`rD zB$7;0)#sf1-nFVMW+pNd2?S!?5jZ*k{dy_@a+;)g+VJQLqkK{*BF>%;2cwgYS5)Vl zH!x%qGLp`~IJcjz-cPz;kcPS4{$TW>BID@E-r3oyzYIJwLk=doI!|@J(fcNQHm(RU zTz&~D{O~5TcJ9_>T;1DHl1w^Zkoa@~gel#E1A(j(V-RS1Ij3>tdr!zsy}nPal$WWy zOT#yr)EXDP73d%~!yrf*y)H85RMR0-KRX#AljPG&zmiP{g(Z9nm$MDX&usju7GAcW z^&6)IV)pjyb#Kdu{O}3vER1NK0-#hd^R08qn3i>`cIJBe(au598H1~GyU0Pg&(8)5 zRo)UFuRnl*-qpVD&n_>9u+Y(3=b%~9@JxokoyNBNV=iHZoJFJ?k2B*-W|d47&E88fJ- z@H1#1`N2#@lQMfh-tA~0#dw)71sA2i-zlI;_^?JqO!rVzc_*iydnGl^UpLxcKb(-q~!6> z4R}r{5rdBuUCMr9S6=#h$;|oKpk6&)k*rU~Y!k z&OZ?x{ETuWuB#Iq z$&+WCZn)Xvkb68C+6}^2@%0@Y}e48%*2m;F=IQ$g_-UZw0#^r2XQ>GfV@Iw$2 z3bo7B5sbksD5eGD+C4cU<}?DV%d|3d>Cwx_a_cz5IxT7AF+!2!?t+7`ar zJn-@y6EQ}l^kam1jO(dslxhY2s*btU2(#w&D6%$N%~X`AX%-)q2Civ$eO zRK5rIRmbs6^@@kObGaV_Zf^C$C(6U>{xuI#_|eanYhkkY`Pck}hf7!qz$dNAU{j%y zh(G9B3SH`_YZiu>j?+HdwJWx+^)x)I=aS~~z zwkKF^vmaZ}yQR_b#DX92QsfUM za`~1YQ56XmyMV#kwPpzZO!0M)yCf`RhQIYpovqfRo_Fm?1mD6*|X^q%MyqPcEuK-ev?CK+w_hddndA}Rq z4KJhEUw%cph*w=BU*FF>>Di=8bj{P=xHYJ)Zh1WGN418uzJOv7sp5=;Vn2)onP4ny zi5?`4e>*PFaYpI}mVD>~t|%iPsx3W)qwKtRR^6^T6HOf3M{VgN?dgM+157Ri|D{f( zpN--YU;qNq>Y8t1Da#hJw3z&fx8I{1i$cl?*Fja`A4|XO6n#G$kZgZ){Ao0(xuj40 zRy!%<%s)Txv2{aJ+U_%cucKpf@{8<_qtjvGS4%hAg{0U0R-Toz&VvKwtV+2kJvGD9JpA{3X&L!HCQqi1kq`usU_<5^q z6*V&Pc5a{jB4LS;PY=U|jGyD|xBA?NAx>=ss?SBw>Ql`d8Ckj97+Ej2!W2BUdxHVx zW%=f3ghpl;^_6HaIT(%yr=ycI6{1a@>TF-Ui@Y`5EV84;Ki#SC3qIi~$Cdk^3PG$93Cp{E+P{(JddraDxr5GwdX6M~ka^>=|M`ERQ9=`GC z{j<|y8T{pT`TObA!{yA2Fv`$!6ggfdA&$HP^*5S|C!d@i|N7e`mPvk4oU`Ee$QNBP zH}LK8`I@M7cm1K7*^bkzr|L(3m*J*yJCWY=dA#>wI61)+e0+d=cIixgA9{jjqUy@w z-pL6>J@&Y!mzHzw`Hvnvw z8pCF{`oBrD1N=AYrHgeSy*~j+|=(n7=T`$M! zI#mf;*UNFb&Zax9>*Y9IryxS>I>%1!N|z~SP#O0qRQ z-zCZ>7jrJ;Q}m#H?0^SI!fC#c9#|TRNMY)j_>0`cJbr6JO||C1v|*QybS^!kb#4xc zcsGK&A!+uMZ|A}BtkMPv!sgYKtzWtF$TkO8D`#&pTaYEok5NM5{8n{rm#+v%(t4D? z2~F4IVUz=vvRG5svcHU9*AYs~6)o;*7x6J&RKa}zMO9eH4}`Jvk9TkScw^6h=*KQ? zRLD1;B@-t6>BF%@hDd-000`4Uq$%kz59l+@fgxKU2%w;nv#8oY*~%d(0i7iaY$Z9?mt0v8S3NAGR_ z^&8!6fzNrr5f08Pzuw$mz$;vkoh4noUGmy0Gafz9z6)3q-3)z#`^B{VUCC2*KA}La z$5Owpg_X&n5&cx20fWs?@BRQcTBsmuzu%|8u-{JnzI^G*yI8E;H0w z7vyG?s37n)u5*f~YT#(Y+_7)5-{z)$)$0AnyIsJmoWx$WA6htawaFcm7R&UAtNPY_ zoK&>yH2>dt5c>*=E?m)?;%#+3#TQkYMeEN{FI{XS zKEmqz^*nTNx=;F2pFNgeM@LKP=a_H>BI5%ToNmr#1K~jpRG;E2@EYEx@}nwI5!HG* z@+~^8>dXA`#Pe6aFaD?$Gk?-OKJud`57%3l@l^d()CT~R33U8JBUKMs!%Cc|G(CWAB8F&-SB{5E-idVENEo8kWF z_qu_03VHDB>t*^V))m!2;^ghbY|MBLXb|+Knz?*mPwzqzPyYVcfQF@qu>G126^E&Wl>dVBtD61>}%q_8dxUC*!1?^Jp%$Q$6P8cB%_mLYK#BW2QUhFuEW+oy>ytvUrhtp2?Cx?X35@Z~Kv zgM!8DC(K!Y9;a;Sl71TXq?6yzAItB+LJfdIjFF|&s}YP$VnJs{4v+2KU9k-ZaML4K zI>}r~4F)J&X)liOn(fBNX>CFZwuR&qe6PD`Xrja%-wa>vzyN?KRX`8fS~ z25rwzrzHB!P->Q6bgT;0wA#xEqx$Z07Y!OeW@n3GsOi%yn!em1f73DLoXN|gaPtZz zMc<@;eZ^T``mx;m?gshkABP{;-kCQ#UE832p_#At`TVLOTJ;Us+LZ}7Fi30ld>OCh z85@+MS*urIldCg0z)_q}=kAo*oKMEkS8*F@P^)WSA{LqeD3H8e?8G|wKqM27QfQGcNK;uX*5eOH^t+cz>|ct)PIHOE!`&1n^`lEUgM z3bi$_KNj)lK0q+dm3%UFtX@Cql@0ZpF4NgEvmKqRPsw{*jqCiqcRCD~vStXYL0%cg zhC605JAG_xds{p?^Y0g1e@)N7t0}t?uqS|Kl$)#(acuRg9Ms8CT&y#e zIOG{cx6-3j4!%CoC}-)xO)8d72+yL*c-%q<*uCNIAHDuIJ8|e_yI-8BI>u2#qeMqJ zmadq-fumN(I9}=*XIhG)-dFWim$Oz_UXXfAmFJu5OZ8Xv&^2~(V#}u|;TlQUm^h_~ z_r*`euu~hh4f%?rI@4q`msK33v%f66u+rUM&)BM(VKNj48YGYCs zQkAo0@90-5V@WC>=rQi)WP74GZV#PK)I^jT#8h!mQxu0}hAp4UHic(`CM*!|UzU$+ zO5k!s2pqKMUC*y5mcwS!Iq(eYCV5c!;9rKn5-t2NBA(@%sPv7q6Tp>C1yYT+Yn1-E zd;u%5`vRlSbgi}rH?9C`*M*gHdMm)g{-5+r^)!>+Lec|(psEOal0tEwj0nP;XGFOs zI6*#_I2*~D2{Wc&WUum-IfvB)ln)Z(Iwg1JvrPfae8#S)eBfnU4uJQ=i$R6RVJ3%( zIYPc{QHI4AS4`;nQpwt9A7pj&+F4$DiiLoycsk4}N{wov3VPz4R79dWp`AoqCo*~J zsYwnr&&YzI`N(|6ADIu5 z6SdR6&~NjbUXjBd-9Y8&V@BzT!R+)dvo2m0EG%FN>ERFBRLpuzeL{MU$wrBU`jO@zD?cekI$4!o#rmi0 zYJ4d#N}ufaWjd-_^VHNfO2+1DplMDv-Ij@jx9Ky}_@(Tb^a)FEQW}nWhucQY5nP*I zK*EJavF4*bL7OPlW_R0SP_NAtk;N=9pl=A%=Cv?oR!X15|(Q_0*4Wdg_-K zzaDz4&&kh}a}yX->xn8xA_Odd^*mii1naN8rTq2d`5RAXXN#K~xtIJSRALF^gngJ? zh*z_#o{IA5k2Ej+Kw;7!6~l=?nZ7wHOCj1-SA2VYT-UQ9JSuUaKU5Xsed(898Nc<` z_@x(@U-^kT(Y(FfQeWoDdfw8hx*LY>lQm3N^3U=k1~Z?|Bwt;wD(SS!Qo^4F_?H2a zpR3<-r_B-->nv?@_nH%BOw*G_GN@Ah^ZDg$7JI$HNcm)P4T#3qi4rvEjUd6?w;Ij@1^522*9Bn4ZC?umo5R$R2Cn8OsCM91#&i|!3D@6fx?g282bgcAC{`Tu@kktO-_wRwPHeZ|%^A~>w zfI`^aO+NrLA;8i!ZcgOp(&eJ@#{+HKZJwAIl}Q%vRGl&TTacxm*APQ2m@- z++Y19RXv3n|9HYvt?hyTX0wsWcPd$1eb5Va$Y2L~2R7CbSE2dT_N{GA&ozD|I+h zg%wmx*YAkzH$Tllt3&fu1-6@WO=r%@vLa5>oB%O{vUATTrGYqWk3%}l!|*_sax^^I z8-4mTB2%{-wbr?E3z5cj%kZ$(Ivv&xXAu`v;`76Ig@_fa{{B|VzcZ9GIg_j`LxBd$ zTTbiJ8O&aZ{0f*0X?p$ia`KirUH7&*Q@WtkXB^;quCi&HTS<9t$TZS*Yx0o5s)V=| z7@goQD?@yS4~3u(_7){o+9&n3?K6@4=vpeNCXb(>Mpm~l7lCB?9wOv%q*HLFN#sy5 zyW)wt{0083M;YS2MV28w_m-`S<^$Nqh6B^Tvo;1AcoqB#??rd<2*xd`*i0Ju72O&D(7l0Pr{qm zTaSEA;t|r0(lbdstsj{V%M)oBE(zVjViN`F=l%KAQt&+UweenyujRx1pm||{<2D1# zhq>WLm4KUnFOU7$er!6-t(C)vaz&^7%Y0Lthg6@G51U)wrEeb}zH2v(!=|B90q<|w zc0FFr9ddjTgb4zlhqpDRqPnhdoK9-Dpq=am!ti1DH zxq5^Rz@wlLDq)QLL5PoyB33V?o9Rbm=rsp$?n}G}G728;MgT&8c_SPmZoxT^+*&LM z2;BJ(n>%k=6V>;sM|59{Tfb>TkG247zIpW;)Z6*99;=)0@mp_cZxZSNU~zFq%5HV5 zEynV`zu06vmB#tU?z`Q0k*^XXZD0iN%j!uv&f_Q_CDKZ{Gs61H8q7Ze59|gD@+`2P zfXc|pn)BJ5FSmFMVi_<*{i11kQ?k4(qeix~0u73tE zCD$b;S-+I*LMNQ_qHZ8Fl}f>>XQb9%fk!)=0!dXvrsJIM@Gds;;Ur+8?oIiLT=Sz+ zCa2o!B^R1k-l8YEu7|2X6b!TOUp>2WCI=t%Jb{k%A*i#s^P);>j3J*hd77W&eY0CU zPIAjMU^RlN=6TcE9}8oI)dho+4~7Tc!_Zh^_qXHp>L~(M1?36;QUfYXy80;XB7i@5 z*`IeBn)(7zwM|v&OzxlXfXN=fWpP1c4I#Vw0O8uYWcbmg{r7^Y)G^HYIew@G3n!X- zAh%=#B zhyY{#ZRzP41RS625ADv&R2CPWrM7da-@10PFYUQ?iso~x3A87VfVwcbKm*RD_KD;w z3`|s>jo+w@(wdHZBF~2+Bd^%A#6pO*G321Sp*mCUxaiHWb#R2-UDuX?}yrgEaZNZyb5lF@OiQ|YiYT)}IJ3o6|% zBem4UsJ&(e8J9pf#nVaUsJ=Lk%CkWZUH65x8~^hZR5yNQbdP^eP!XU?w(?o6er2$s>5w%#S z_+qQmZe`hvk(FS{jnU@nOr%D924(Vw*91jxN@Z)n?*4ZnaejH}&t~ zd%o@DW2-aiu-t?NpPsLE(wcv-oH$dOm)2*kr^Zp$DqL)KRmAWR`HJ_jb9D6;=_ubx ztI$FD5rGH%VE|rV@4j|;EIp#F$!g2gdLR_n3PGx1RlcS5X$NfGTi>E64+NyCB^2`E zeZRHYeWY*c`t0H6r&`2A+4QgalysCoMQ++lXZy*snjD$2t9#zEc=dwUZ)K;X`%q!@ zG+cvpPr!#af2VncOwGCWGj+Z<3=e{$KJ=>P(Rhk|8?5 zLqG;*@!(&^bNY5UFXhFF56813tl|?6X@6K@%JIXgq=%&G%63KS@NKdvWt|4fCLJ9D zbge6rrPKR+A6RFtmY5<#PIsSel77+y_E52O$I1miIoG42JNdEIsoX?Jii>mNM_GrA zLRamZ)M$QwJzZ)jJ0^v&uv`Xq{w+{~zBt}rB$M!-2B51rU7LWaGag``Ho2YiI)+kz zmYUb6++Ku`dXOnWhoPJ3V%uA-YjT(eQIsQ5MmezGx*VBU%2D{R%c04p9NF=G@UMTM zO8jH;``PHEw=+0>0(Npc9opa_htvCL1T9S_2WQ8plqEQrOtvV5b~GNdNAvkkA5hff z1i_%SA7zNQ@>3^Ye}J^6Eb%?1&%p^yp0~@bmk&=W59sraw5CD##jr znH(rNax~z(Zzp?DkbJN(I)`Wlk^S@WtCC6sg=cay^{~0 zj`zW9AHRP;9-d9k_VzywC*_{}mdWo&z5d|+*}>ohWD7d>L2vl%1@vkXI??18R?b!~ zH3$Ov*NL2Vq(R(@dk8f0U;p*t(`bJ%>Hh<;#MW_11of(4iL0urxctFR*DFEh=*WQN z6~6X8*(bf-@pLi3nm!>6H9fi?@=3oR^P~Ur)ji{E|-v+C9a{l;z zN)EYBJ9&C|veO@&sj7%>Sh?(O%(kuCgC3lX z-wu8uA^Y(BVYFapSI@`z>0)?yb)uZ#H@Y~wTkuuEhV?lP@p)QOp~x#B2pI4z{oJhV z$;ft!>cR9+dN7_|?jao){#+sKs*W7>w@IiN4eqhQ$)9;VJimh^sIGc^cK{$cP7hDs z4ge+71Xbzxqt}Cxyj+9c@Z|mMvIF1*P)Ts~aVu49DlbH02;5Cdw z8fj`>?fheRYaexU@8IAR*WX_%#SkF{nUKQx5T``tyPFH{C=&T_di6S1Zl> zK21^H$?v^aj5k^jIU*k>`^N{r{c-Yc;4y}^p1c{*ErF@{0#;)W=E=%3UT?%o^r}8$ zO0@*HC&OXy)#Q)}m=J^ZI?abCCtT1vl*<$kbrvd$uAokzL!RdjNp3=y!*$WTOB0~BqUi-Z<>XmwKIO0^6+WueY2e)4VG&4ZUNrl)rgST6=l!v{^_rE2%FIsfAL1jngHes3^3 zKrZ@5o|8xcIkvnWq`65svC^S#wsb9XN`)*h=488qO4edda1@-av>z{CU1p!+48@>~V)2UD-|_p=tHA-w zdiOWR28p7f6em*E!6$B29MQ>y@@7hkl2;_<`t9I!>gBanvYWCls+xp}R~TbR6`jfc zk?DLluh3t3+hQMnl2p$@l4kJh!+Ts%_vG)OS@d>!C$oJq4Sr?jSsf>mfS#?Rpg@+- zTtls|GhZHo@MQagN657jhxx1@vuQCqY!F3Z%n?J8h!a@>{cy`@HVo|Wu+m+#;4J+$ z4a=KT6g){$IgKejZ^tpH%&R;V@J&TKu3e2?yDl3Um&{VcD^iu+nR$SLB6z5Jp0(cY z0QUF^fZz0PAXA%BTE{3hF~Vg@8=c3Uq*W+u&cowEB>J40=2F1RqtSu2G*?@eBYTS= zmD*dG#oPCQ+yn6vvEI-ag6~T%A3rtIE1#Ior9>~s4HN@`Hou@JRi9Xd<>O;tX4KZ< z!Jt1G$!Y)c46>i98e+IEdnGu&&antdkvOdF+&Nmlpll*ZHBD#qNe>@y#DGCG< zrY2PqACDt@Fow2C;=ZLC+S%_N6%(WXW{GXBpo=qBW=g{u-@qAVZbh6N(DcLbHpoF0 zhC~f8BhdoJnleHt(+#yQuG>9CYf$DiTgR8Q+dplZ;wG17An1=)c!&AcL&AL(g-e{n zFy1wC%>q-Ww~jn>Y4D?a9!~m|V_(7?IQ=k~`tjflQ<^B3iXn+)_4?jG<|>>J`{B)p z>EeiQ8=gGRysm7nj_z<$RA!`!t8K2D#L|O37SSIKRi+M;H(8Rh3iQ^7ykVT!WQiA_ zaA^z@X8O2~-JHl9=D4INNS5-P{+q#}Jd(oA9Ue$dB-=qZ_ugnRT>t!_4BgQF;goM= zo|c<@tr#(tX&9T3Xrj}e7V7n?uGM=}bge7{dB<)uUyW##k^gtu@y(RX!QjUVjfP8b za`@rBcwjflNYO&jqI)FEgnqnj`q8@N8JyW}s2I>3dX0SH#pExPyE*SV8_OhVd3}CA zDwBm0{0vtR@;pn-Ab(eJQoqp`~=D1TaqqP&H%R-@4i3gCY##eF^ zwk?_b{w{+8C=Bx56!m6svUn69-izgS|Cr~Pu2d>&@Aa4xGCpyLS&C0>h)YZo0?8!P za`dpr`?++e3eUHEtX^z~A;l`*kW#FRIjPy7KWO$@)c7=39j|l=%LSJSixzum zVqI^}NM7RDNTb$rR>|NFjhwaJthCA!s&w+Zr!Y~@Y3Gt&BB?_SP>`8o#k{S3rT z8O;=ZbMBM^9eJ-N0Zj&zD7$NUySO{1Y*#X%_kYSsSXPI8BjJQjyPyOE8WV;XlBhyp z?0QQc_sM(jtjcKC*1iV563{!n&vz(b;q%4|_IHZVsQU1}~p=XRM!e z2;`mZERd5Z$c}*X`CLK`9$#^w?lym8PVhm%YKO*^5AJW2J*TdpeEWkWtUo}OGpePe zY%1gG(o2i`ww8!$5B6;Kz)n8skqF#xcW)=M{(n6@Va3^Tdaw;+@%mLrztXRyj?UTs zz;tQemq;5QhCias`!sPzmq-ECJ)sQ6QpoN-J)z^?v~nKEvhQ-2S`3|hK0P^RgC;FX zX`xqJC%}3m;1xtu?ZFdkvZxY0A{L?Yj*iiI+dfbCwc7>J>mznpdFr-2lgrX+gj*lQ zD`q4*v9ha>hJ7rmfVbM2(y5cn8;!(5EwF6iRh6H-x{%(dl@fDCtPp-YJrDNL^UQ`M z@Ab#i#qh@hR|4Ai@Y}bOZw>5+0kTc%)V&x}KxP|;qAzbuB7oW5zh;YXgYyUY@i{bK zX@YASrEa^+`-dk<@X?8on0%lz-77D!Z{T(AQRVGX52{5j58y4Eog83I-G8;Rx6$dp z6H=1B1yZ!>V5%}r=uBPmv0BS|FU+_XiX9el!)%$Ws)NmWf5Il_8&uzVR#qFz=ciDe zOlQ~qsr6GLS6&&3GtL)Rtjsn8@O9msj5Y_x3Loe)4$&hbd}BH+8fEo`OB&GHFKoh1 z3cu*hjhYjTh;d5}>Bikvb0wHanwI3SmRedCb!AVLk!-oAL_SY?Z+lE0aAe}kM_YMR z85mL6+9g@}2btzdt%lC4Yl*xy+LRp;hmyV^HicVttHa;7_NB?tl3trNwAfy&%pX;l~1v4dp$L|`N8HT>84Bfj3nvFmfS zC#-$##kDC0>&27H?=yG=f_5mBdG&|D$E5o{jE>$-Cb(fHmp^{=-c0awQg(*@DiUP@ zu)tPF+k1q(9~>@PynaTQ#4N&%hH1B<)Skh`sic z1KoK(XymwLcp1j)Rd93cVns=#%52)|R9=QwIG6J%?hcRvVR;q?eoc_~X-68!h8YsN2rN%^M{MhQ3tat!s(!BK|AQ2|q zcj&1LY>L|do!*3%l~=xfF69-X(-QSMno@e~@q3DTNqd<=qUR(z4gF=tS9oADIrJ0Zv8imfk;yMzkYihh;lk)u9_vhEG_oI`sa7N+Lvo(Eqkkz-Ae@hQrw=P3E1WdRf*9hF{|8GKPsYNucbt6GhVbRhAsW&cC8Z4I<1Axis-JFLp) zMmcY&E~()5Oth8r?lv#-h0s@!*^TQhMWt$*6Yp}xmk~Jm*GOf2oWl}SZq&uM6e%2i zF&M`lZH0p6jf(XxU^Hq8hGhqqzyx&kPGsRV8;MgU|`*51hejHA3dvC_mg&~Vb?ko9J zlCP4|KNTy=W14))w!Lv zVYk}EUl|^VE|KRcV1YmeQW)eI!^ZZyg*FLuE@}b!`Vj+1KH;|0&9<}L0!|wOqtXP? zB*FY?Yh%&9-iPTzpYuE&9UuiX>IN)YHIP6|{y=mnaWv__18vr~x3!w(BsRn#Ti7|^ zsYM19W_~lcQT50br{tE93M8HNZ_=h!X-_9V!5+K~6SETrV5Kj}lBHD0Uwb!SNupbP zyImy$3H{_EmN568Eo6jv$c@T_w;%v*Z;z+yg2LvPjcuDb^OEW=`$ROvw0SMHT_wr4 z&|XO?W%1tCD{$680O)DiC5tgrd?J$uVYFd9%pFTC;_rnif;7AMV1%pS3c+Z#s0f!Z zI(Su)zE$9=qrr=d`wSQT!G6ZDpfkM6210U}lX!Gy%~XhH6gx+|+jc~67ZJlWw1Kmr zN)bOGp^B>-tx8TYWhMPCHwIizY2h~bkR>VJ$6k?G3l4?g6}z8RHJDk9NT{N=9y7cpr=?nmXGWa zFh95Ffa6hpHDb~XwUZ+@ic4_Q%jAXZ>S|h^+>|{b5kTSVD_<>Rw{(4T7r~aXMa6S( z(#zcmEIudz44}omwiv`_;|toJ0?nP>a+Thpd2>cR1g0d&^nDcT2b}2e1$qtpU?n!T zxMEcUB+N?S?Bw#_!5!1)G^5{#2gcM|)fTG(L7{=eHpqyOf?r7mE(~5-FMWD%qSqRx z4_Sc{LJpNfiqBbTkv^&|nk*s=*pfEY7=|g} zm5eaUv#4q2b&uhZ(Qw4_&JE~24|l2;9pUcpdh#?SCqC(rBU3=e4%gvnFY+o3mhOh z;h4KFQ1GgTlQ7EmxBv(!d@sbbNk)86vz3In_=g>HiXQ3wDgh}o0>9k&=iMbRXO=*< zWLekg{ELggU#ul)b#OA+iy{L~B7A_?l8{0XN^k$Bm3mGp^qndz5ROxwZ)#VndppAQ z;WdfSNScPqHC)?f$_UpZeueMNC)g7Rdp7z`bgCBK-6asKUzpv+$e zKG}|N4pTqMn^&(BU9G}h3D6WF*)}yOsxIV+z!T&Uh0`QaeIo9btFVfm zWB{nf0;dNRkkl2PtxZj!KIEw zHcpRLqZj#2c7c5Q#VAGz36rIrW`Q%!85^s8OmxS)Yr3mvv^oD`PprIXNJ#RP;c4^u z*LRcG{mI~$z0*Aam!}kh9t|dE|2mE}D`rVbASsx4GQAkdvvGjnT1qQbHKxw^1Z2~D zKN@~Ih(wr^ONA`lv79Yfyq1wjb54?wEKZ!!$ly!t&!-642z-4-%_fZ%#xmM#Y|-u< zp^(0)@T{Y({p<_P7PD;?rSyxTif)E6;hA`;TFF!Rm%d z0($#pA`RL@xV8Uj@8ht45kTjMC}B1EP6|`o2GA?K{t;QMM5RZWF?6i@OgTW0uclK{ zv{n8}_pf2iDFZDJNbR?+t)12De)nukS+O~-2o&5^yW?ph1Z)%W*lV%%t7|YzV`SGh zNQNS+AU>WElZ_WgDDj-4-x9A0a%mgSp4{`x%c-gxIO8FpC0$y4$w~|R(+krMw*hhC zwkqG%;>C3$=CSNaM+;-*JG7F10Ohpx!T(}{Vq`C^n`i}fNf!lpCZ(t00LN!wN@||9 zrcs)2eP@&QuAF**qg0BlI`4=+Z>CAZP_R7xB)Kg|jGCFw4)`wHODJ(6Qan*@`z4=E z-6}yKZ^0ePDIFu!Ts(;3%2RLO4)(r$IzzO-gD3;~DIb4m?xFC?-iZJR)r)jbaghBD zmZ3?1mApA)r7RKMOHS)v-x`w&@hgz{@$$sJ;o8|K3EA5=r=eIh=wE+EOVFxA83{-7 zjq;@gEBu7*FH|84O39lofmU+5u~LZikRhRcSgl^^!`3i{BIvTwW*6G3{vty{GDt>@ z`qf45cvNsP<4-Cvzv76l{7Fj}H!rzlABdI-{G9(B|3wbk$8it{g zZqg@&1=q^bWV5#D*TeY}890C3Tf+(`U|Y5JAha#)Fyw7(UISD{Olr0me;k#EB&J*M z1M|A#u0W8$o;9ANZ|-EYO!img)MpW_kb2ooaYH07R+K@qV(3x~w6JoybE`D5-h`%~ zQT?2En1|Qe%98#m^(HHmDGwgZW5JtL-e+OO6Y8^=*-Fn@PxZZb!Emy;vq*_v$onKBLe9l@MPHs>a9x+uR@z^8f{+ONU{_b zre3o`Xl!SRpY+mI)o_*G|AjY~tf@xX*xAbDZIg#`F|plBpa}`(s31o>XleILMS`Nt z#-+B7EruSk=Bv86<2nYLED6YIN#8(aPQI;Wp48#;4O?KLkgszQVgdDcC!0{oFRdWC zUY3wE3WPt+3u`6Dk+#|%YRgHj-Y_+_NgRj8a}*esG3i*JhNnZS4l~Nz!p(|Z6a!c0 z!Z*79PIIt$zPtbHIXwD26c?K?2rj9z5){ulIi5zj=aNHCUoibsEb1%C2R7Z8VBXcl ztLGVckQ_bR6G{QFvyQF(Du|`$F7DRx^fEktxNWtZw$VoW<_Pv0BC}7YvL@OLD54`x z&6C7{)-$z!!AFRbnzrVVA+t)ae03?HzShc%kAhK?VJ-5uS8It&E3lrpbW@pR3Zq_e zwXSzP`q}-%>~i>r1D4v$DKx?; zk$5!~sBdd-B>r;NCtuTxf*t=9h!v43^fO^gM%rC*99~0dAX*K-igz?7Fx&HJjTQW5 zlGYk9+v&w#=)fxBBW7Xz1=g&Xv zCF{~=$+-?~c0~%XQ0w9`9+yf!x>IXCP@1}~*M-DcW0n1V({1g05w?`FlFtoK%EkFx zFMzr*Ov!KT>Rk!9S5mCrSa&2T>JOVOCE=y0h{W_XWA5{hU&ob4lw=uI@H}i_+GRLzwuu z!m6biG`weg`Ko$gtOE7n8pT@$<@mb5;*DG39ivYlqx?_XuCQD4h1naJ+V zlP%1S3{z^aMuPB?Ob}dNUHigjgIuB?jex1=Fj%vd`d zFF|m2B?d`aXn9l=`Mkd+*+-?AX7hr2m#UC)j1Nl20|bBJ`YaCFTQn+^WyP?LZhbla zICKfTZBc!4S)0JSC$1k%ch!9;2gB;5k&sEOaK_JSlcKj=Ali3h#tQ5O1rekW!LUdmMCQ@gy!JXCpn>b)7M47VJ9#c)7J=Pq z^NQA`QlKIDyGk&cUXp?mW(@+GP^*Qa&9haxR0b>iQM$U;FDQIgD5m4(BIqXTjVhg3 zU-3gXsSmj}+U0Gvs)YPt^HU8^%2`(){Abov#~>2@W876|hCldAwC$|{1~Ce7iEV+L zSaV0Qiz?qo-MyTpuD28qNv2Edx5Tm+lx@t3w|;f0m!>Kx_`{YeF?ie?uT;DnFy(X^ zn2gbFAKDr#EuKvX{gIGSvefZIlGb^$| zGH4eiLB>0JtRMO&leNnN?w}o(jnq0T)(*+lwBWNctU{6CwXEH$3?~QOPoA0@1#^0(V*;>p#nJmgPt)tgV8s*|)dcBr!O3ybUXoTWoYi^mC?aok<}% z`{i`FcM$MORpfSuDvyLDX)zP2JQH#2QUGR|uchdfiY^{iO8qs(`&ll=5;=1!(hfWZ7s6cx*E_^tU#^f9|6TDh|IGjv1;)~L8dIDS>~VRy z0ACTn~@kO8EU zli!G5z(tXYp2LzotKAef(M!v}j%G=a5>=ooFwpj|r^Od}T8<+-P3vF3j7~qD93Ow0 z;FN~=gyT_WWy1GlJwWr^LLksH)eJ~F?$StVgA=xi>=btv_S3K6H#U7-g4m>5Ci&~y zYdT>oUS}9631T;@6|1g|5QbfW4PBF8UNoI1Lft5slHNA`JDonwBQLG8COA(ObF==m zH*5mOuM@i}{DQWS(X4f|IG1K5Sjh@7Ea++lE!~lR6iN;pt7WP9>3T?99w=;m(;ZEV z9x%w=IS_h?+=g2#lw@ztsy2V9^TQQ5)xf2UxX1cye_9h+Ynji zavqAm2kj`MCze^cN*IfbrfrHwh|kqN#bq*$8DMd>8|M6^@-9=`0uhcK{YQAs)+f{? z=QtyXm!zrmQ8`tc^M1o7<0mMfxgi!@>6jS8ukUuqz$Vh`+NUgj4U0q{Y!e4fQx>@` zz9qS{0lFmhd#{Ff=NC6qS8lnWY#gpS4?&fVDdkTQoy!PrXf|3<>e{j0);NVIPD-{1q*#6lu4RQc8$uX@c`q3o*7=E2nx>3Um9@M))PioRGPRd{0c`sNpI#1UF^ zgAlVvEG+F-x^(N3Ulk$VRitvW00xx#I5-_qe1AcyfwmNCU;8_Ke@Cs=`TY}xFW=4P zww~`5oXpnAToWp-p^>cXR;UV2iLK?*r&ZCrD$=)dIem2?$|-}Zy^g4Vw5cpqF9cR9 z=u_%iEpr0V?>Y=trM}n6Kys;}^t*JX(U!qYD#wSrD<&;c>)@F?Dl`2O+hfuyz6|HA zv20$Ir^E1c=MFWgWnd(!hD5Yk>CZnsQKTveO-9rR#z;0NaRA(Z+VUao+ePKyKZU9y zQNVSAQ-NpA>C>E&kV=yat^|kEsz`8z`eWBkyHL^L<|;KTvj$No{RI@GBT;ph1Vy#T zGb5;9F9W=k7wWwlQ=8cJd{b=`VDAZ6*-$R3-~tqZ^N&arVc*s@bJkY^=4yx_%*Z7v zx3mSy%o8Ary`8fkS)&w5mxwK4PNS}TZyRt2klV{|)U-Q&eeJE4@XDOVipO230LoMW z#%azzEnxl_q)>5Eo%b?0kp}a?_Is|QDf)f%ZYy$HjLFLf+N1q#VuDeUy3FJ9v>Ya{eWuGImpjS3I zq6RP5*Lj&&6}_$0jUE=xcV zVisZglw&IIDAx(Mu)LBI36o6Tybn+3k4!l@=C)Fm?0-n7PpMD)B_Y@fV#fpcuN`1s zS_g2Z?SN{|KpS4>ES$3I)w{iC0M1ej9Rg_0{~u-k`IQTyouFSWL5d$0C1TI3;R=ns zX=vmR(+DS4w!Z@0`=-JFBD++MW5mv8D!Kc{`^msdZC~c_wAJwq;cR&mlNkMHAgh{` zec7upMpZw0dC!QbZvf9ssxKW#+siDIn_p*_x}>T$EzH#bWCU-(Xq$79fu-A6AKJBu zZOhx*6=@3#K3y=2(WRU^TR&H|(7BevW_=q|iCtnY~5KrL2i92S! zK%bK#tn0hfBriq)a3za$mEr7-N9?b6DjcnCu<+uj9Dc+}&Xn2(1o-n%7zugy=!&ZW zD7Q-zNOx!;J(+KEdZ z-vd`Qo>A49-SI#orA;QCK&K7+Hq5b&At@ip%VbAC^IN$OTbI(TX(g+qa3;K zQVB_O`Zl}vzI9Wii>?>xmiaN+P#x7)H!5LD;=n|$;?!+aQ@y^{G)gmNzRCurEY9P* zo1ga2hBC?X8%UvBOJO@@(;DwIU1N)2FAYout^E87sP7QQ%QQ5JxmO`P1 z-&c<9v(wK2_27;E2E3uluZTXENGd@~X|2vc%~7ZZ`vlZR^5pxI?a~Vsel~|b`|Tv+ z<7|aWau-}Wr5GA}kj1nOkIS^*y+KO9}0vmY}C99k@$6lKL&e@<2Z_U?(oTMz5BGlABGDLIOpPpg8WcngXPHH zz_w<+dfnf!Nm8bg1UFusy~&?XGhE^_7DRHmzyzm4pg#eB@sxc&d;d07(>AOv6*opR zkC0opX^~JTxtp^mb2g)}Si*HD zYP0r$ioyQRAS9(;d>-$87@D_Lergd=RiPqBatkK3t=DF&s?gJbyd=_mM+a7Mf-Z;) zXVESEN0U=Z@CPN7^?9g>{?_zSnP`;S^`_7nw#NP)0QEA{GpJeSlDYSCTvx#DZ&74K zls4w^rSfU4ue7!_9wJ2y^;EGu%gDSP@YeX(Blf>aslDr|B_RNp;`Z>3YE0X)zle;! z$T=i))~t4^!^+mhbMvU}Rq8S|k;UsG_dg2}5f^S8e2hQG1aHR_L1^M^7llZZ?=o?x zTm~u%lWdel?Ov9ty0~M@MDd%F;m&X&{3HB{Yv&TjWM`5&Uf2L1B2l@GXDAx#s1uK1q; z2-Ju;yI-8&)YWwD^L=9nZfpoec^bsg<@rNed@P}kkeO(=so=KvK8;8uNU!-88B%;p z_LZ|BuV;&@NNsIMt!b3LC)m%+re|RgqTIwB@)j0hqA-!#Xa*e>{n+YfwehDkQGh3l zODhfs%4!UDCMTAWsS1EevjAWp&ogmw5-+lF=do_WwTvq>0j`W-XI#4jeeHGWh1W*T z=^e58NpMryG?V$o{SN^0pU1<~qhksvr7C-J>8SnVb=X!NQPUFnMPFQ%;Z@{!_4?mg zP3tJTz{{AV7t)B=ua5?F5Nuuv0bNS}(HN;i1hLP)6O$9D_HqU@wv2OfJMHZPU61s;}z#?V1t=(Fdb}2ZKG}NTr)E-6DvC2cl zs;^?Vn|N>SlXf*cxebQiGpunVBtO9I#$*X$(O@Y8iC5NsLB4(!wS_ zM70zWN?1$VPQr?aumpfj^c*^^9xS@nW_Jxjs2-ynz-_CpD+ranMrK5o z61Hc|Z8gABCN$G3&F_F5+*rN=z+LC6$gZ+%_UN<=WL~Ss$~2aEQ|au8EaehO4yk2! zOt}dFm6TXdHVsaokRi8cK!lOA^}1mwC_iQ0G#tFNjE(Chy` zgS$|iQP zepdPlob!rGC(2x|z4*J^r0MXm9DV-uNoC38uo5+;?BrYO4XQwP@?SLzYAFilM`aSK z>|rs7+Q$&=G>in!J5tf+#A*MWNq>9y?F4Lr#Ye~5{%^Y|^@X9S#5cy?J_N_*SiMoC z7jM9Lu!lo+eDaafr^zv}R>DM`))iRvDx1P-bAk7j-RrZx=toC%s7iMTrySAn*4Wf-drric z*1OnB728GtiAJ0BQYf`z9qU@XxJtxX52h+_88TE%W>re1aEr*2FP{$tzRSHqJ#Ci#D%)KDpcRB=H#WU3V65slex&Ahq)JJh%R~gah=(fPt;Qr*b6oy;O*IoxqjX0~PzQKX9h4AU-G$Gu$-L=d?12NsubR;DJZ|-W~{ynv?DEVxtz?VVLfHX+Nd0?e4rBb2Lfv zCWXzx=DopSI36cC)z%)3Q&9ciB0e&n=85W>6(+6n9ROCdosy-PBDETxnq)-aNmWci zPVBbCk+eh4f5I42tq(e$O_2(>z51ZY@ii;;*E@DL9vvTB4h+dWI# zh*4@WyIS{z9X5p^MM7^|M5P$U;gH0@0}Jl#8|f%VNC;;!(f*bmlI%4@A#7J__jtE; zu%bu`P|C`=zxI?Z13A(tHU$S5>u}jEMHD7z0$aCNyHPkWtfG4r&8v6!#1_yFDw0jF zCeQuJ$v(N#M$^uoRja7TCe-Iq8o~2$Iws4js7|J(LPs`4PBM+$-KJnatC{^+!IMzN z1G>R!#BNzK#ZpH^M@~-ZDqGPWFE!m@onTI>D4W-sI5LV$Nc&|8X=S}B?6{)qi4X9u zNE^MKrF3cGblUEABolsFpx#OE;8;Ja47oKc#18Woj-iT6!8|I5`TEe+CIrZi^2m5W zBbb}8RW|u|D~7+mou}8Y>T=O|$D?-Kgzi^aB6OpDIX%yU0BQVyK{b`h%FYRd#4p=; z81vxQQFkwc?x&9gi-m%gqLtOxH&J6Dg_kt>!m9|QU*t2?ko3EM3OXG%?AKFMBW_x5 zZHh0<=P+}6W;a7hWx%m!oK)kMLVZje^yw~RIa6tes83Nvyb0UPlCn5F`hsA@cnxEI zC+7lOI%NWP@Ffd+WBejz5Q-n0s7l$(r3}L525Dkq#k6ubT2a01ss|t=dnWI*kvOJo zoQ%)H)**+*oGnH^@KdS0w3%f^ftCFDdlI%wE$n`t4QMFb?20_GdQrx?^zCWF^bsnN zl;kINLgk@Zidu;kXY}OPTQNA)oj?3>W@>R~NvQFQx}a3B8?-bwS(avsnSW1m`n{@C zQ^+&Yt-nU4p#rH$yS2ndEq6%RT;SjW;(ofNDqi?tsEhljsTI~ac0h3dN!xw4!fWEJ z-73Z^t|S#9NNY{3-H`5#ED7lV?|EU+1VBlsdU>qmzNt$+g_9}NsSNVkySr*dur>HG za0F%V*x#G4I=>@S@~C3xGGg)9_`Hi{rx}1#2bGHc2~N=mmtD>^ zW-&!wU8Qelb^kq{^Jai|qTYMXo6n(H?tdB`9Z(n8Dn(QMZ9Mv5K^x_T|M_{3X7AI+ zB6yQ_vcoGE)F$mCw#?jO8_>ND@a3w$ukT3ykvy7A5wZ(*T^Wj6h3)I6*iG81j3v3e z+W!TCc6KbT;v8Yk;i;gNfd1V}tg}$rg$0 zrCR91(}H0LAK^r!^M{bNegT_%TMP@R+NUM8;6WSl0>mhn_QVv?EPwD^if zu5GevkG9zPB`fxKYcY16qn=GEmgOFZIpBBL2}>GQcs-lTe`khEf|E3l4TPJb?oaoN zDfH%A8Oy_|yX{znyep%}y=bfNnZAj$VFKtr!<%zp(9_j%8}ZC5=JWAB67TM>wocBD zPd*=m*?0f=fyk{Pu{lkY=*U&DTZo+sxJc z@^N-CW&c4^JEC}We;cC^j0F|VDDM9Ga5xcqTS5iLhbi1HU{mZv1BDK~3SB~MtX9kl z&2_0zw^@M-SE7okO%j&U9S_g_8ZK$qp@xKzno?FY3i8uX9DumLcDT3QiaJ?9RK@sP zaZIjxM}js$9F3u}%Gos6+r(r>dEI0=Z3o5%`iuN-=_;DQ0=o9`i|e# z=5yH|Ae)L=ivVO2XSdT^L2fMbob>T@_dx9(M)ObanB;L-F?c=tnR^0}${6dwG=#H) z(PMqJ-Ql@ZNLh813UMYg0ZApd1tti%gTkh3W}rdo@|4B@Lg7?Jrl?>%d(bBH0;5j8 zpFhq@%1iiyT7$g%s$-CaS`r&46?0QD`e&xFV{XPn5*LJ?Zr7VGb+0U#rgsEz*=SUG1lfiVpf}XB z4yRGp%erUSm6MoPGYYa8E@teCc!wvwRkL~dsyn}lQzT2HCEs8{79p!lLUQ!#p1L{S zEILHK#D+KQ!cUy)0P9Q40+zQThjltGzY?0z>Rcm%`>9anlBa?1uIxHGv2?xpa`N}- zX&oq4_!44BXF~-Fg{^z+la`8@4lm;xjGjOF^Vz^D++HP{J`3almV~NSy-?1KZl*}` z%GQGNT#Z_rqp^^d!|lB{A5>;FV(>}B{uZUXyz!zrV@@h;Py%h9zlMA6XmZjr%$S>V zs-)w@%jWlPHBFmZrU?UGR)3kwDk`@Z3Tu!+efN&SU z)*Rdl)AaiM=>{Gyhl=XS0DW!hCO3v(VuL3Mm$6*mSZmU&BwH|9negYf>7$Y!IYQDP ztxIlG5!A_zrG>aI)=iy2QXKFW{#&RFTpG8?=U^-B?{jpvxBn^cVcvvkVNUYVXwN$2 zrBsR(ztyl~7?!uPZv_Ys~Q=d`CC5t6SzqTsBK?M=iJf)t9Z=V6K zRY^kBCwn)0zBaKE)OG6pcr%nYi74EoaT8vu%#vm?m7&r?TaF{bpR1IlSc=@L1=Ef# zYMf2jA?iEGIjOS}@P9p$gb{bxF28z6%SKU+rBrTZN~T8o62d5`qov#&{ooV=G!nV# z!jd|RHzJ++*ZJcesVy4fbY`|TM%Dk{DQq===yW%h5kL2yylo4u%5z9D#WhU0!J8I~ zaFqfTqSj{5stp!Orm728E{8Dc)BYi8-?$vO#y|0$5)j1A9K2FhE8O4_rl3$Lf-*U9;h~NK0cI#GUsC{FQ_od^L9_zKbEcpYj|TAhEKvV^(KoVRG8Z)H z_!R6Ee=|I}DZ7TyS5cOW1ks?9q72<_?M5GN(>fP>7e}`cnwr9PAkGsQOrB2fJv@vK zaNwD?Dwmq%3Xr#C9JI|K zNWQ{2EZaw$mh#~Eusv`PjUx_2+mpQ>)8OO7`BzB0S{_o8>)`YH*#CxLSz9FyFk-h+ zl(!L5t%F>3Dp!G9ehOj8=eFdCGLa!PtO!@%sL77Kr>gkQQe3*NeTq6dyldF^-WUn` zDf&XAOEid)&z}md+kK>wOu`ysf-VD)&>tL8Ly*Kx*G_AK*xG_h^N`%omn6{E^P*Lt zwR3ZS|D8R5C`vHTG4CG>YTh+_R*6_6{l>n9C@*3M0-SBu2c=}(+XUax01(|75HO9^ z8kuX144=C`vj&B>n%nj5JUW?;wh>h5Nf%gfu>yE$Vo z@Lr6XA|BpHPQE&PGpgxj*t%w{u9dZc_WPd|qY5dIO>e~Q@Z^MjvQw3l`Rv~=ZtZzX zlwe~jemnQDu1~7hm-?g_m{Uc7+5~T(ro`{~Z13#zSYG6eYk!lO3nYAYU>A=3h8~Y@ zEQJ%T+REb=F`=zwn%E=v_OD?SJJu%A2=op6#+9WhKf4c5OSW#?qA=V=&CVEW=iZC`w78$OAOhK{F|c8u zQcjkDT6FZw>p;s{tS9@R-=aFG zS@1dac`2IM(Z-7+iggndQQghH}PVID+O zOZTQjr%9Hh{ZnOXDk&c2tCw~XU%SepfNhj1kp|m^1agns#viYf9$3lW3fc)0i+tC$!P%AP}ytB+}*GoA~;KplmDy|q?z?{L8zYRb5(36$A~P1 zL!6dhRR`g}Z98ma(k0Vzh;s=kol9T0{0{AFp7|GO2bUoQO=_^Exseca7ev0KJAi1> z(%ROxt>M4y^=dz&t-Flad5iSh*Y*&}=&K9hTG?!}M?#%QWxYH65(zQI8vBoCaMK4H z5TKG}QtGKy*H_({t)g_Y)~T@uqVd9k;Ox5(m6kiWFc18bGE27orVXydxPDj-A4 z%~jq~I{cC}h7BhYDOJ)+_U7R1)A5H%1g32ZW&E`Z<*{T$!@O>e*Q{XkX^WD-Qoc>M$M3#okxEq8f z`A>nglT8IgkSu@+>58MhPxfu=kuUM1^7sv3o_1At?c#{BMA7FeafW`kFQ<=Y+zX0a zvOBzXx#r6PpkyjvB8m}Jh|~7^iiom8qw?mneZ!#;r`%({^f%KObZi@&eGu^A_@!;# zX7ao1ysNrC>WX9-5ykuBze>u5XtIrIc`L^)GyX&u69q3bLwDd+-X0|7)W{0^s9jGl z2=P>k6@ieRL7md97L?PA`9_+p5=^8#m6=h?>7QUYa)urwLnydhSLfMpCWAMzYs~Ev z>}q_%R;v-~$e66ZT(|1%O9uWg+nm|8#Y6S#P0 zsSdr8GiJuNSjU%ZF)twji8qJ{h!6_6?L6)Db!3yNI8yA9SYpIzU(B{Fv$9#0Xs2C5y%xzS6&S?)H5CeQtJmT0dZeUafXs-q|uIK)wgH&W5;Z49pF;| z8WNU8a*?d0a}`kDNdsfZ0Mqfw{%>ch4wv&`m2$~EXUD?kT$fm5?8x4w^@=)Ihd3pf zbOzd4j1?BC)x@;bN?fK4iaI^(&m(jBcyLCI;FQ0twdws_v)Pj!t!=V_umYWu=BX)q z8iq&gOA#R*_aJj!=}4lj+Tp&&N|1pwe?Vqs=jR&eoORfCUc05y7{BkQA$bVFJ5%`a zh;2rKOUmT1!(1R8h0#k#Wp?E7eXhDNhGC4&7Ubs*Atsj0edKtl0D3Ti3}&|A_fp>; z{K6iG)=q7N$`{+XqtlM$csag4-V@?cVxn$aw?qV*TlM^)6;?$RmK=}%E{9-tKeFC? z+lR9sgr}cw@8&E851$;pN9j=T{0(Y&ke{NY8+lbUY& z@JP}tg%hF<$FiEV$tRPvemG)FwO@Ti4G>Hap7kE=-Lh3v*y3G&>`puU?-f|OPA$5OrhC@%;E78p`Psu&Iby_rN;L7& zAKf)Ps52g^^!CQ#Q*+w#`X&&w6ohH3&6UWn_3;#LrgW9}&>E;@md<(04%EZL2RwN`l8xF#zNY2g+tEDHuV;4uY5o(MN~znCv<=ooqDrQOxl^tX z*4l!wLsWuV45c-~2qncltF9|`?U&kZrUcK#f;`8(Np2baPPB{yeo;{*Z~W@Jcp~`>=!CrQ-9lQ8}E#=EczU4`GuYG;Con(DggsFyr%Sw%p#u96V)Sr1o;-R{R2Si7<`#q!$@y!PVM z_4MedRBxxXAc2JtS6%%g!7_bG*CJ&>VZ3r$t87h2Rny&q5}uC>VM!*oVLt2IrCv*O zUNRQn61vG+3G43y$}&S+#vz(EiZ0T|>;3KBo%$j8GpGwShy5PxoQ zNim$L7@NEx1#I4~YSMcx+yWZCsMYjKXxnBlqQAQcR0PD$@W$|=R0IlVh$*4NRnV6g zc%{f6OQ-SzuUt+v$Y-u}#G=*X;S~kMCH6`dy$Y%sB{-P_I<#KZPldp3$!OK>pWg_< zn0aV>Wry5w+e8}fpT3wW_5Nt>!OChc3l&WHBl`*6-s7MT`FS4-qCdgB6Sz7R+NN7< zO%V{F$&hUqt*vPyt#H~eN=~-Kf&?%=e0VIeYrq|?44L!iAN>iXy1#M#uQ#5Q4y`H- za(F=Y4cH6Z_C2&N`GYqp)Qm;F7cU$C?LM5(9!DP+t&pV%t^% zY3;3U(z`p!?!Z(zgMnfTcC9u`UKNU7-IgtYQsS$Q$fz%!B?=T7Os+?E){_QZrx8D- zqKV5j&fh8e=n9Ld$Fb&vRb+=86zch?vR=$7Q@n||fiHKhAxW}v7b*intr5muP10K0 zf4^EmCpi(mUgLXPT>RYL8GbV>YAaRlRb3Rc1ZA}V)>w`9kCgc+sanZ5m9k=+LiP%( z%>yMKat}{`@+pURz+WLITx-<{wEx4%$;su9^T`FKDs>-J679eKYw+u@d;6nF?;ksX z4kaOsybvmu2@M`rj(#?KPz!_$B3+-=En*W+gU%IC?5gf3PUI0Ro-7Y)ckxPp&e`i; zDh*?xo;r0xy#X{YOM<_EX~cJ1^hnuul^6);!}~tPGw_}Q=7=WA+m)V&It3dX^|}my z74tZsyLdCI8`fEdX%uk$!T2~SaskMyin(PLS1)=6u=27;BFIBd5RF|vz+Yc3dTh$1 zZI|V!9gM%=5+|to>Slq1f9+CVv)3|DVXtMF0EmH!%1U|Ic+mV|sd$9v;pFqaz#5E& zY-*3VL+BeOx=&y{T$W{`-#^`1U0$8=8ixq$kbClpa)0y3MXG_2Cc||q0@w_h74^Y8 zIf&C=x@ISAUBg8ZggOtJTuQZBSM0RxPqN^!woSEy&7y9ns^t2AV;k9Q;z#1=hr_c^ z?DE2HpSH>%#_ogaQ4O*h|Rqg}2 zLwg$v%%5C=P-CZs)Rd)P>(A-+>DKYx6i6#JXE@8M4aS>9+N2w2aH6&uX9*y`FrR0R zy|N+Tk72!^<(o-@!bwyh+u2F{L`#QKHX?DWl9@7y(W@J3jrb7BkFRmn-NG5btN%e>-KtO~RJ^%m3f*z<%gOaBJ zaLdog5+F73g}h_UlWGenHAnkKeY-usq!Q@4F`Vn@H$kU6OU5rjr#sqs9$j%Uhp#b9 z9&e+-k>wUMKDod61No4wPL|4HS9*aTC4H&rVAWn~TCc2*ydgt)h?W;^Mtvxl9{Xc; zX{J%>y)0O-1GAM>SfN@YOF(d!UU-pm)%~Rypy4r3MCx4h>_Xyt5tTuC`;R8{VgEd+i!VD7(|XTn>V3N(7BfGQ@^~z8yXA zWbbtEP&^{`{9a>?uJo)ac~zXdSYE@ss}q57-b5sGF|;CA@_SG@rFPE43D*jKh=I@U zzLiAQG)AqEZs!;w@n7fsbwD-YHxe=devO)R>2+9daHDUvY4U~`r{FKclW)=k3Mm(J zB1uQcuVKJ;m*rlSWuWn0b%x3yI~z44^#@+bGy`RTVkn}jFGI7Pxb<=o+czgq$+6k% zpQVfTZr0l2B>?r=G%s#U4KbM%d#UzeAOEt~r=YE6dWu4m30LO`BK@rOqs7D?-fYWN z+yme3{76+h&|)LJG-kcLu=hxpI4HzZ6{9Eu;gxfnLnUg#aI7-{lm!k2B$y@Ek;5E@ zI1~5M+*N}lBDB7YwXZ2%D>Yl*`P%QBefBSM9_!g<+VKbAgY-MwnYevu;uHQDqEz>I zgl8lWy4AAo*?UF9!PDa-;}Kqh=K!Frf*W-IIzE>6?Ofue)Jm`?19w1$9$C}KUvA1D z*OZU8e4>hzR}U*IKoj6{k147sY!TE3J78DMa?vWd$ct)m`E>A|P(ColjwHe-})T)AKt{A#ISRND1qVWpVj##NVni->=s=%0UUZt1Xm4!tp zz^z!xl52d2Te0yFE4TijoPZ9{)mBtm4vee-#@D_-IKHkELQ`jP*&@5oIu*}l8?Ukmho2MaP3c<+!BJlc;xilhsXOL)PuM= z|Ju-OiMW+%VG3`S3!2)O&+XcJRz8SaS-=5N2TIw%Nn3mzThRw;`MiZju=93z5`8kc zbtvOYnHVq$u&c{<>ff^&+d+jn4pjvl{(6x{KI$BK()Q+)_j?P0dOct|v!Df1!8D*$mb>8|UGl?RLIo6d)wZs1leNyreT{N$jR5rf3rIv zn6|X@HZxb+C;en6G0JG1Un;AcTzhtdrdBBa29i1#_vdX&$@%WM$Zlts@`*BtSQapI z?^Hhm&Ezwn!p7#Cfp~D7wKeu~04-aT>*e~|?7?LNZt0Plhn^s%6W*u!UiPk4;G4?o zD4I3tt%no|v0v*B2OQDs6TE`sH@HL5uGmQL_+aQ5A-iB`-tqen_U+~{Y2Y_jF>DbC zW2I=;HT2Mit2#I!!N)uaXdT-!s+v3fErt-z*&8Y=B(;qwaRTl&EOkveZOuN|s`rP7 zgZ45$yZ=6IYV+VyQE9(0f8->d5ElULZGQ*(I`Z4g&(DBv<49IH)ve?G|Kra}u8>-s zG3dAFvl}*u3K=h3oC{kaM;P;V;0HsuF+8Ng&v4y-Eo75xWOrkc-M;F#*SG#(?R(A zhbOhKRs&V%9?AtDc}95`!UQ@`X+|Q(Rogg~Bq`py^0ft0TLqIt&0A{ncZgK0V5NXf ztK`a9m6Pw6D<}8*5ubI|^v@Y;`Q!Zj-xDJmKuCO@0X422CK(BqF@am>Is6ZMz}>A0 z?iz#$hb-ywSk6^oWa*;6n#Y}uvu2tlbXKTuzhBLklEj|p4o_dV9N+*+FP2?)y>aC-fVy%5J`%7$s9yu>06>xc(By(TvS3gp`Lq4|Htz=VYfv)=_(XmozFy z2kO6;zsIx0igT>1TjsD|u#kYLMvJDFeNEs?7n`r?STL!y9nRyH)m4wr7*LE9LgwP{ zhQUf4u3`0N^A`Jw^<{iVhSTJIpQREo@&RAzgXA24n_VwX@BdO3Ox6@X{gQ&Nrr0Jv ztWpg{VUTWwEQq|Hd1U}YTaDXvbnF3Yivt&CDm%kj-Yl1W)yZPjHD+Q9dKyx-M?uo* z^z7U8bbgK=a`GD1hmE1H46i>E)|Cj_?$Q|=-@(55=TaRfM?9O6)^od*m8OPg?qe=? zppyPGwq>t_Slw+rRBNSMl$yb3XGw^A^KonKb-A)rw6QC$M&Gd}7mv>c_WBZK+kC%L6k(&tYX+C$a0 z%i3sjvlm77_ngWR(b@#QzVhOLhr=%FqzO%k5;~F9ApS`$O1MIk7&iZ}w!llLXWg0D^4{Pe zc(yj%!S9+%AOB-d*9*&_sfN1qfqI^^ljm?nc4%&~#m@3v;q^Yh)h_52cqL?2vbdtb zixdLazQb>_tg291;r;9fp0SCMmOk0tB&vF$HP|< zYgiZh7h#T=KZ0cfXFQ;+p{#rBP4&*2G8(WTY7--(({s402XH~!z^daW|}*R^_) z3UJFPnl=7*|F{siJVI=>yS%r1a{pjXo%Vr$c6GfU!bfEPl9We#f3k#sBX5P0_Y=ce z??SG*PDKmv1|+@QKe6k<|IYjeKfLh%pa@Ih5VubDMxQ>7sD+|wm(;bhANDAzi!0I2 zF88l3avLv*9Lq~$HtQ2hv4vbM73Wn`qPiy*ARzo=dPM1iaKd0yS9z0G6vu}y#Vzzh zc8j3F1iEhh7U7-{3H?>_>XpEln7g);S+-9`R6L;EzzfW5`L2}Br9DbR%6yvLeJ6c( z)yJZKEyd?V^G#rdhX>+v(?=)Ycg#)FBntSj!V$)1V)6zX zL7VEhCuKutPme!GvN;tDC?|u{kzz`enVZeGjJ<>_prr00=EvYR0WVGlM_Xl!?NcMh zLrX>FK+qOlDT;Nt5>YJUj*kDow0&uJT1m34e$iV3$vS|Nl6-f^*tT!-|dnQ{qsSf3+KfEf&=U8KiDd7>sdHd6u@+Lq#N{Whjllkc2!};;}E$dFW z5Q@OC7fjcK=NV2w-*4ukm2q(v6%u7>S3_umH1?1mKSRo6`k;sm~IyAh<91|X= zYUY&>x-yO-fmo@qf~oEuLXU_#57eV99We;O-GmH=Uchsq`oQ;N-t6hgXn0m5SD+e< zpn%_yO5L0y9~~0KMUj(Fz+AlMcZ;%%3!sCERtqvMLk_%@s!gJuO{$afXP$uver{@6 zALbXgl~(eRl^_8522oa}kDR}=_hei*Q2U1f^785uqa0x%;J3g5@9xfsE$WT5(f*v$ zE|p4576$9-{17jVHuuOMlLloS9O{DZ!}hw!Wdy`}+;JYLGM-^;phPXOgND|pO5+v* zSDa-P{355Q$#+VaYn<48-Kc7h9MS{@NjPU3s!Ab6*hUhG~8v1ngesErhgG0xw zf?$9MR0Iq70VE*+p)hF}tx;2ym}ZClo6sWxXQ)e)wTC@1h#y8}Qv z`>1g@#!CfS{an3bgTq;BT~T;}e8mYN%zJ#49tp|Pz&k|+Id&Ha6>46yjzxPweLndK z>>z7DH~7<^;bEF(Fn&)Rhw&m1Xd|AuL%lNU2MA%x8(}qswWy{XEmO^Jg zrZZI$iq@m}6=jq`VdKT>B5NUM#Rs6_r&>;=7ANG%yJs>ZU{Qw4Ha2;6e6msvd zbH~@P(kzfWyd-Ck;^KJC;9u>!K@oKoq$rGoZ|e_AFYKr=vBbP|&&ArQLH;`?X~)?x zkuCubnYJCB3Z56IdII2RjmF1P1Y`#+*+-GZug1++=oD_saz*!P?X7x*WSqdQ9W5QOYoshH)^3x+nU- zkqTo3?Ty>IzJ;CF<}~nh+ynFR+4qb5@d*$&^E+T~JX2ml`}YAto!`4mLl>7luLj3< zA9IIjADL(~0{D08-T} z3IPe|LS`|#&Db_*!m|wdY!b!cJXCu&OVC}%K)fn~*7M)^1uPc=`g6P30Oztm$rkNh z&-d2wV;u&tEQlgD8L4IIf$_#gpio)N?xELYa!)70U#E^Lf~V_`H`iC-@T8FAqM1_1 zQPm0w^vZYzN}P6Cjx+MTSHrbLM+|_xU@*nA&kJ;fLEI26(|j|Vn*}-xylin!hmRqS zbv&6{{{U*ueYoN+9qwHBy}2$db474+gjGb*B)jDcNN{%yRuTa|TwN1~HNK z>R<#)f{P)XD;46nP@AoiZhFgIE5%nSz?-XofGK@&a|`i&!M7f^b4oopY!27wLdnm?4i=HCY! z!$u9_a*=72F{_yw?>B}z2#kMcOe!&;invExU*ee$>Y8oTO_a`XDZ2E2gHH9V=R%#F5C3*K@!!drM^vyC_L^fI$NDt&pNXKH)nmu6=`5s-nbnR{sF?*EiGPz#-X@&X`p}W zPIJ@G4<#$=5|i>3Qdmo1U5((Ttw=q($M44I9=11vll{fL_l-ZOlrJxUr_M{Qc)fW1 z**iLX5#-MPqMWG4>{{dlC#5LF9^_c-7n<3*Ts@3YbK@Vj*U^v8e^|$l=@)mIG9%Y` z^H)!I*d@ zGoM{8JVWAGJJt};Eb;_ATH5^L>gqkp6HtNh;V0%j*J2kd8s~bvOiALF=Wp&60hPC` zSx0LTupduh{&E3c`!fR7@Lw;#iO^zr4QZ{Fbcs=GVcAeN3|O{5g=E7EgV#VsgC}7P zs|XO=(fH<0T|}A!Gz2($pgU37i+(JiXGQ&x7sRe)8I;Ng_U;UCVsnslA5vq)sbX&k zHEj9K{CuO~h=cj)jDDLTaW5aJ>qfXVHoR0UBD-~v#>V?DjYaHb0P_Sd3pHFCyzdjR zJb)_r0c?JgHSp23*@B;Kx*Bo4rRpF5^X1b6{eGkIz_E0DJ+!YUa=tmL zTeRq)E-yHyPiAXG<&w>&os!#y?p@^oEgYbN5gVJn8vn`-DfOqdOxujVNQEMoT{8)J zdLgw4T19lh2#K-l2wF3UYA!;R`?z!zG;BoBd`#N{xlrQW z{H= zT_|kP(=A!&JaXNF;9zfy2c9coI0AZCmMjK?8ilHtRP?5G#$VYik9y2g?gg9bKzs)w zTZWdpW?qKFL~M)N{I|PEPhP_2ERh37`5$F|GWdX*=g0^T;ZFr75yhv96qp{8nwdJo z207&|9fG+i4J3a+ulpFG-Vs6Y=nDj{3RTDJDHIAOr3C!1#GO~kT&U^hhu%{)XZby# z=Kv>CK5ywwhORHZVt_Sj6r!_J48iFd1O$%P-%$*X`|WPG#j)|$mHUkk!{C)2ATffh zSI^W+wLu3b)+P#_(FW{GK(95UGJbah58}Z;QgYhyk$Oy^T&U4GB$a3w-&y8+6>V^H zXa~w-qw=Is#=2(ZTn-DMc9a74EYN|22y`aHP!RG^3Qq}O?EWMbrEbNQMZz(BqhXT1l6BFrPYf zVGM1y9R*9(`>Ym+>juke?R&3(=fH^J(-IJA1@%V(#lm7kBRzym1*!bht4KMI?fu|= zP3uDnfKPxKk*1_y|6xs9WjyKgbosL^P~t>7WQ;K%GX?%kp(fOd%^L5!R_Oj-nilgp zTU^PZfYFp=e3=FlJj_1}|G*j}kk%N}@gu<+Qe#tF=eWA*j@!I3h@Lak2*@I1$Sanb zCC%Wrmv8H5cFB)={+N_?(t%@!5TO_nfUdgwd_G)zlA$>#nld3>Cu0eKG;|{mGTSB# zyXRJ__r|)2N%C_6%7(#T+X)(B4BZAe!U}3<1>_ekP~1eqeb}RkP>pDxLbXxajo^Vr z=n>NBp8$m#!~_sS$MvI&KB^j%`yl!BaGWhF#y#+U?4rpsbl+@cz(bf))~^AF(7Suj zhHgT6QFfW;=7#4XWp%@?zNidsS&er8)qGy9GnS328X}0t6Y@fvlLr(xnw=mI%n5Sj zn7*w*S>yLT^Xhnl=FnP*hCL~`?4fC#ft`WBS_S5)_iQl~hsP`wPoae205u~3q31Z{ zz~tP=A@a`|Kd^{TA4qGmy8rfBc?xE79vs8PaXfxuUT{fyAL%@%;^t)kJh>h=b8xNP z8xnFM_co7Rq`Px(_!Imv(oO5o1V6_>0$$3$W~&9_rvqyr$OZ=+j1KTzpCH@?XAq}JcOAwNtle2IhTPDn zRu{=eLSWt`!vF`d$9O%f9MdSPUZDFc#(IMo;mAgt{^8i?oB|2>8TphMqXh`GTfH>w zv_rRg6cC;ap6TSNeZ%eXlLF55L8wAmiYcnm2&jKMd73}|bTkWihVWfXs>1rGaMHcH z1RX3rtXu~pQdl3X=J1>EdoK^$+!MG#1qv&KpPvdKu74`>k2uV*-vhlXTuUg2$;UMv z6lMRwVMu-x{L$`Rg!hov)ZRr1VkG@u|Ao{nh`)DyC#&M`X3sRjXOkspl_w1Y-F#bn z50>Q9L0`m^0YQ|-9IrXV1&S9{kdQ_7GK$Zw6gvTTM@=-zwsZ^vVmzuc8=sQk@kYOt zPmg`1Q|bH$BAl_53bjrrl-6C8rq7>4XtQ8ouZoZ=cXX)T74Cg>vqGx{{Ya>T`vx^> z|LhWDZvh2DmrrvX1oSto5itT=Q2C%Y(QXSKoEgL<5bw5=6;Qa2quz1w-U1G%G1dXf z^d!DIf78!Bwu2}QH@LjL`Qu;-N@$Qm6DMl!y*c)@P_u8$8+GqL2gIA-8hXd03z9|1 zQrh7IyAOf;jmpUl$QY5h!dEX=$ywKv@Iv#7eXKBuwdR60iZJA<)Ze*8s$bn~c^n|-yY}}Ipl3x#NZg^Ae!*=8V~v}E z6|C2@d#c)?sQQ{e=zTQ({%E#Q^hlfwl2gbfFPKf6Q#)p^1{DrEjc(7g zz|pz*O-u@&m-sD7f5nGdATtYmnQtXN5b_T36Wz*9Glgg@R3!^TU!mSIBoQ9J^$C5o zvvE~x05Pm^NtW+RE`F6qkY#5NGjm=(0*}h5UB&85bmz1D(w0~nT+e1+J{4(4c1s4P=}*iTbX?JJA?4*o^kU zW8X7yUG*br2onplOHge>m?kz+1O1oGM3JqmOO+}BA^Y? zPvGv6QNL!{fK?|(p3u^$Bkd@j&`RnNh~7Xa=-}XPO&+Tsn{`Zw>ivw|*GpPJ|D_1b z=>-ufQ$2C6COq{cB=m87Y^e6CQL6u7$zYf8Ugd*=aZg9f$%mnT4J|`=+@WYuekZk|v)UY5FNu~wJLhzIf zHf({UvSqQmB-C0$>5!4p&aT1xS%osrv>x3nueD_>)lWh%$&G1ij^wUVcLgPMox7{q z8~UUc@PZz{_GEbb@=~4k;VeXQI0a5+$_L9wy2qy2 zxuwI7c3Da;)ao5u^v`GUe$8#+=L$JysC?6n)$|Dv z@u)lf;LKYtEgNqnT3^1VKuEUKgs##Im*v9EVc6ak{sQAyUOCHx;i97FYL~u_jVp~} zq~8O~? zpq30T_lf9DHP=V|q2wR?qa!o`!h+P#E{X6~S+-+`U<)d-EeibU^^*A&{QTtS2;czt z8UM;SJ2Mlr=2CFPYT4F?w$+-0@7l47r@S)v0d5b;VBex#1eHFGiZUmNm@XbB8rOw@Dkqb8P>LBT8Xbw+8Cta) zQwD|44AC+i&@QjOG+GpaG{o+WP}pRQ=FNQTTnC+QT}Ssw(;(xqu${G-TDdXl)Zys* z;^dE8V0t76l{{`D1HtXG2I?H-bY(@gMcMFpmoA&a~W0m7lLX{yrR{ZZg3pAR`; z=mo!)>OJ$0Kc?9d=@ild@7`wm-2G;^l<0p$3le;tq?A(hlKM10Ug*K7ylAUnr-&k< zy^xZ!fe?~MX3@EPZ#HxN`_iE*tfaX1tM#16AF&N=F6#9=AiX)O1J?Ly`;0)X)cm|G zK7K1c3zpAeU?;Z&78(QgEUPMHa@1#Htp(gj&Q4B{$0KYPsI`E(6^p!9gz$?SVi!Nt zO18O1@}xg2FMddA(=D(f;97+s`Y(@GqLw?eF3Jx^TDU6bJKdZ#{g^XTaCd{^g zeaX7@W+;NbhC=0?%Fm}m1AEsfgy`St8byHhJTF2lN}Ci^rAneN{U0MJUVSBO*!f!bi?Dj;veWzzdTcO1d7a7?9Hhq85L^Nu~&}KP&J`IoWGg zd1C$M?_n1+P$H+2QUkN9YXb+^vE__ZWFmsAb~5_o@(jVgQJ*g-TdY%_#*)x3-xTaf z+LWYhGo4`DlktSwy!3!Qspt)eKtvSb{G>vQDUVgitItl4d5=?=`jL(t>_RXnL@J=l z6dE`yd5#x2RA3PeI-yEt$|e=Wy1u01bVB}p`n2}pLNU{6Pzw;S@o74Aj+c-jV<9Y0 zo7r~yWI?^n1`zr$h;UYFhh=Q&mMyP^fX0vPBgQ#p>_rPvfvf{#=)234+mAN`W~r&R zan|J+5}RVqlUYMgBgMaVyS2CaD$Ef)^`MYEZC_S<8gEJ{?B1=H_}dTUh!hGDjFyHN+8OZ%B!c8&=1H-f=X|_X$^Prq0)Cuz=8hNAs_CDcyNjs zbTxahpN!RpI8shh9b1j2e@~SKUrIcV21gGO8b+pW;y9WEfSDLE9Ju*zST93;gTOxeKDLIEBd=Vs6pXR*iyD$N&bUp1x|2Vhj27~htGdH-9%tRuDGWsZ+Wo5j+VJhL<$Wt2%+)Go0{%K@qa>jQmjuwsN8 z4Cr+T^lw8!L!Fe+#z>Eg+wK#%VKyrzdcD01(S^}rDwoc4({MzT&wP3aHYQ;E8k3fc z&eWZVUUEwm>opQIU`u^P^x5Ybc(LXaz~z@e`y68<4cP3BK&+!1>UcG6ah3t)q-QPF zq)Q1vm70W9sb4`y-M~9gs3_H4y1D7~y;_D2lS2zx2|-B(+`V!}PKO}Zf||K}=M`4C znBGw<-!Xe^-T=d)t5Myop@I|3(1#c$cxOIZHxab+vr4lBFr39=x1SV0Yh!a?qjw0R z8&D3?`@oI@762FI>iO{}Uoc*$jv&s6W#Dcn2PEi-w)C6J-%*>2;%uJ3wm|p@J#8gA zIY!3CQtu9h%4X4))!6?i4oM*qvk&51 zHODEKt$mZ6f?H7w0f{?7&AVVQYbP7Cw{?ts_zsonAuA;2-w9c1o${tyyJ@#A8C+D8FdaVymKHmOzbu+yEgIMw5xso`R zFj!3QVpX%QNYjk3;J_%?j_a3Ul!~|ZuA*ifUduR0T^4OdRC;N!a#7Q@qVCDsC>Z z0cz<5*oMtTu%=S-f=74E{=!DX*%!_&UegB1@8!voY*9ecQ&V?C$doh29I;w>M=3290-C8nq_aI2T_;;zr_6$#WxLP)rCxiC#abp%+_JzS}VbtY|| zY;$Psfe0DwgX|aHTi^qHeCf?JY1sXFc5`GBoLAYEFpj175^%c6K~`p7cys)f0)*0@ zS2#bgu^t39pg(7lFA2p%M{d~Vw}>K6o`NnwZ?*Q9nu`WZQwP2Wvaw*R7*kt5bB?M2 z7v7=FyRAc|?19=X9tBM%a4uNqi4kDd>&9C3i+8ilkcWkbJe~gwSq38mMF}yWZ+O!q z5l(n95AFB0d-8}7tIM81CH#-9uMcQ&9t3t4Sm0=90i_=T zRyFWZGsdIHTt8=7JcKKtmPw>S7z3gBfHJTVy%?2aEtWKBMJrM$!<^RJdv6@Ieb%5I zaeZt!&V27k8;PbP0AfZl&qEk5I+OvDKcNf$%qKb_x#|r)BJW)U%^?Ua7VVk`sjeRx>MNKJ&_UHoju0Rrv88-0!o~g zK|W`WFswoQqttL#=-Yv1!=z@|oq%ugyKB^wa8C#~reDg9cRGt*ciNaJGnePudxF~z zJ%3O#Y2ihuny}g^4kY(u+FvJ+kcKn*ap-W%9Mwip#}{j^A+1 zXJBF|hx#f5eswwU>AS_4*Di~5Xt(|hgNe^?j6Q9H(`w{#%D4TLDF3`3o)SGf2`WdC zTQGj6dQc2cipiR5qkREWrv6fc;Eg%4EeNUc{6Thzct)SM$Ok%cLmS=CW&{-Pv;h7I`puRy0tc z`xg6*ba^v5#8)x-;x`l;kS-qnd2PY*E4~1X_<*Mq=kY4(Qgj+JM&GV6Vq1PyCmH*hFJzy2oEGTsoVEXDQ(w)yxRYJDml8dFqudkuuM$^5!?m7DA6=Dhjp)oJP?;C zOqB+%mo5u~q-RrM8tZYHpuV1M!^3N~F$>^v&~=hy@KIlbl9VajuU0g-gkel1qGbSl zdur=k%Q@0f@`2~~vk5vW?i6-#{|#>=MLK0>cpPgMomR$jQB|k6W^1yZi%Lt$G018j z=GavPi)19ad@~+@e%_9!KYjqij(%7+AR&nAL#=j_Qc zq30;Sr9*dmYMxNJniBk_bsY7?fb+0`93vZFb&Hri)JLCOmN@u zdDXRx6AB{;4(eH#bQ`$YnErDA0jl*gdYa-rpwzWF7<&lgQ@SB3MtKDyB|DouPeB}R z$byPA<9>mRad38ZbM8n`snhJnX<6C85g5ZUn;x;Pb1;q&@K71)6!TEyFbS#*%GzoH zH&F9Ha#k9kcirJMK9OJ#VrnY$L~vHC(Q>X~6PjKlFBY<#`_)95@0H>5#LYjGe!y|! z%h>QiMp~FSN2BvL9=bl`3D!;zPOPsb_-28nsdUo1GB!RS>}6nz4_nde(ItMIsTC9c z5LE@77hpNf_k;zcG}O|={T@mqoML!Kb{kRx-7c2%>7ajzlq|~7s7|9z<|FuQZvVI* zSmG+9w~C(mr{p@vrb*I0MH*__-n>SJ2B6FjfpaAI-xSJa=U(o^5AXZlH1A-~= z83z(vLo9G(nBhP#0m;2HZzRma!TQZw?+9#5Lu-}|4n`V7m3J&sH#dZ1@?J zgvZ<(SjiSo+AHQ?bce(R%v)rIYbmb~ipMU4_}w0exL5`x-444uZLx$vJ(MgV?3CQi z5`s^-Q7N^U|GpG5ofBF_<)Jg6f~5ZA!*x(_2WKd4 zK7uZJJa`riLo@RDwJDEwn3C8yIlR?%V=UJMnaaE+Bylz%S7;_4xCEq`!isQDsBE@t zSY<7bBB9Ru;AHcK%soX_J5MUTF_84h<0GE%^yAy{2ec=oWc_O(ILj7x<#;t}ZJf`n z)Sq}9#a|4ViR;t%=Wm_)!9EjMQM}0-S3fz6LA;tplPG19{@a&52M~mOn{r8A>Z?3S zyS{YKThl&ybtT5_F)eV|5)X=c7XdjRoDByfbWcWZH!V;g_uo9Ek2YJuCLcEo4dt|T zONFQao1Pa^JXs#N`L6aU02OM@6$R3XLuvim#0-tYa1#>a)5!(>Kn!Jpyq6{*1VNgc zgvHD;ebPweX`bK@!?GgXFk3xLrZcz`<^=>q2OJexH6+cBUbAt^k_Mfjc5toWhnT)@ zP0^qJce{fo%j-% z>5=&8@_WYHPxxsZ#HIbfixEsOny6h$qBXoIFJU&-M7aHYWRI||!;e!HctN2x;;z@c zFi|H1@vy?ON^ey!Nz$~aN`b#00rOC4tvV<~ID^jDKA|t)70$t!k3}d#Vm&quI{TFnO~P(~4wNbnE*2Wc7@C8us2`XBEOo>=G-MDr zc@^A};FYUpg6xtt`0#uA3g&>26Tz(lcfo?-jHITNcIgJT`z}L^J-)@IzDq=pA|Qt8 zBzKr_VP}{`X&x}dGz-y~fu_%%hpYh>14*f8Y@@A#)4=Yu5;?^lf;ig6YIp^DQWA#c zYvZwPpelJ>qW?+7V^_3|x&o9+mXIv6(!A`S_CcVyTOB@%>WuJ@%rt*MUWsF5bsGw5zBEd`6S}r3j+y$M3bo4r3Ri}H?tA=RVefj-9)d#{YM=r z`l%vHHVL5_fA3W^9ym{-8?9U%vewlO98|xMVodW#L-?Z`IRA{M>;PcpQ;3}<8P(ts zXGhf~8HO!OWx8Pcae;DdS^EPnCfzb8ju804>9N8HVtjWtoTB}H_SI^!4+4a4YjN_# z)~O=(ruKSzB^lxgo%&&<vUlV-OJsEuex522GjbNC`RRH+N<4)_9L2@;#q z8D>Dj5un!}Pl09hd>{g#?)=5KC41dM#*-#|z8-&{O}@%&jLG8B_4|`E1_yYUQUG+3 zm~C*<8gEuIWhIaI82~79ALuq}HQfUKpN`w$qLmZk^T|?vI1k}_j3>H(wr4FVd3C=T zjtllW2H%kpiv&-5#oz}_F@cMI^zroeW}sdz`9P`7MrM6+N6uk0AD)&5ha?C%Wj;uT zaQEDQoT1hY44yW-=5q(BE4%edMTt}Q%Mq&hu4e2iBreUo#-@*$Swa#dH-&nZL)Dpu z2h^t8RY77L+21Vjpb<9ApJ3<(a}_+3Xyd%D+UuWuo6H~C`9_LjxSStITdq_;dh}U7 z$<=WRzr{#2{(7&RGE66ylQb<8i}PvaVuVn9c!`z-#qQjOBF`0US=@uO+l#Ar=wG}UWW!(KFWOLAY!#hLIxw!)(aZ#eFnq&_t|d4*jG z03uP4yY_OpOH?FV0u|2SX$fSDg&%P6?q(0@G8SO$mBm+2h@+;cd+@r`w+X2y+#9H^ z1tP=*xIkqjg)XT)rsu=e%RWhHhH|BNB-P8jA>rd@{-~=OGSm?_f?B|0yFxJmdOBWx zMX5e@I%Lv(pQR-6kSKG(<8Zn#>Ul1L!6AH6U>xy@2UKsdLC+hXMy2Cs@dH>Dz$@3D zYtiQQkre>2dcEd@dNX#l;m**cg8SVOo8g4PBoF^YWXiSA@$c=@V51Q#vq&{S8o>d<>419V4ip2oOsB z+2L&w9ER`9GUtSRIH)KKKq?>5kIxTAg8{0{5JK;6;FW_azqeU*X!i)OGlauqAg5U! z!R=L8<#a-KIR&I5%jQ}z3mqDm)0UJ+U-`hV9DUbrr6giTH zp)ZpoNTMs1ZFXtkdPk!om()?o&85#;`^IE8kT_5x4a2Ke_w{Pyy`0Ia$d^iRai&)& zjLa{EY9GCqNY6m6G$r#b;k%)T*r9x6G8@Agkp9T}c}z=UhvM7@DjT-4r^>uuc%Aqy zVyk)c5^=S2kbP0d7-D3hhh%c%iS{MpXraz3$#!@0js2X;Bk6GPBE&oQ`Eh{)xMu+j zvb+Ado??f}B%X90_cEAP5+)(hI>VG^-dpQ-jzcrz$JbkVwl=naH=%ddg@H|=1=Vy= zql50j;lUj&pQT$9c>g&rQkIIU3AN)B+n9yEVHQvr2QeL7j_%)5`VcC6SMy%p=hOW; z*FoJsrNmovQM(gw^n|=!M`#P$BhY+~tj)TvM^$aY&jjTeGJKhc7jOAjVKkbeBijk3ug#%o)2;CyWVSufi4s=yKS2`wZ}NHni9;rv_n!wbQxz(*J|9UpGfn&TrFQ5%&G3xl zI6DA@redH9GvyD1?2#l>_Iv!q?i!^0V{;jpt(Z+uP=ei*Ii9G>z99I^dZA#!m+RRU zh+r9VMoXk7j!nuq@s&gI@Rp1V`6ut`gz>!LLINw3N5P>i5PuQY2uOVlhu*?RLQ1C3 zrXG9TtPj|-Sn-eKxrZ)0h6R9%Q2MsecBzkzP@frR;5yz1QVe;`i2;tC7+?p~+SnO! zXaBB|qR0|vfmEn)r!;m zukaj^WsVn;7lLDM0EL9zLcUB{+iD?@`&OGOnb+NuBFLfxVYYFYhvTzU#X8eGd&?0A zV6c_ut{xto2)&G^$Nz+K=WILqP;t8K*#3$`)F5Q#d)g2ux@l6~bRR>|_pS^$af>w3tNHp9n_NJkz$H-c&^hihdvS8wXEemj zRu0nGQ>E_g;7z4!%T|57Jrih?3$-ih?p6)9!Z;aGS7o>X1gxBUuBZi$IhA+^Uv{}| z@~nwK}w`XwbbiA>sXiEK;wf8r2Iz+ z;2P~;<=cLLW9HDoQ%U?n7S<~NPrxKIRRbR>z-b=tm?jC)@Y7eiHKlisU3VB(%U_66 z3*F`3AFh|xEk0uV^>}j7y;JwOPOB7+i*51qaNpVpOl*amErZ0 zJoH^gedI6dQHnRzRg%VqpNy>K?qLp~x#xEf>$M_^yxj;c>NnzypSXA=e_Qjz;|9=g zMT30eiw+*5ReS`gPIg^?R*E#kNwq#%ixYbTnjrxcz_e#>q9OxGMQ11pa|VhnX?D5c;tSXkeECL-(Wb3@N|#e`cA2zP+0C|F!A7__2#^V!m45%_i zONu0rj|f}<7>y)~TbZI16AHIXj&)|3aV4?rP$aA!$Tq{?0{?QPdq!CiCa zGB%EK!G{1I0{GFz>fVA6>56o(^PM^v{R35Y&?Y!7lU0KYo!NCW}q`3auIc#>8wJa>1%UXu>Iw?c}?1xtK?=y@Qc)G)`IZ z8ZBp2q7YM*9V&sC5ElAX}VdNOyP-e&IpG&Q; zQON@s220uD)R0$V^DG69dy;vadP&cIaEs2X^V5*3g-ZZ^#LJIn*8X_~#F+T<#)CA9XE$^q5lG$-IKPImfo4P$Gb_nE0?)B>Cd$44bf;q-3&8kcSV>2&C)5Zg0Eu zQTs&25g>Y;ercu%i-N<5?s9DleMfG&U>8kGP{T^tRHq5%wm{zixSF{k>$M{76{HzS zJh&lT6c3Y74uske+7SYe>jk>3_@jWSS}ff=+^ScIG}pvV;AQ?NKhvRdqIM1FZ661S zmPn8V46kfJmScf%l?YsYl*7~0ayueHN*Ho!O)weGJNtv?yDnaQ*dDpp-M4gO*sW<8 zha;$jvNKaKTV^qm0Z0jdA4}1>8l*|>r<($etv1`paksXr zBu@3A@b9&D_dMMy_gKI9gt!y3iEpvu3LBAZ3pg%ijHaEBmida;D~g|^Px`MufUf4+ z`k0$Nthyme`oKq`t`Nz<`UJ-FbH^lA97hTi zSPQN&dFUixI`JTS@@^m^5PID~Z%{$>*i-a8J6JZlj`83*Bx z_wl30Q_1Clbs7d|VH26gUX97>J-8Xu2#y9f!;=eIW2z9#sn#2omVL4BhyzMfgZ1#ae1PnotGy3^IsqvH&u0Ns zb@F_FwRXh-Zz=FbyV`I+j$K5aFtO|j2s2~D>YutsI}owN+7Q+Z?W-OgNJ-{xHr|ZV z0XLzNzhEAc>N;Qwpfq84YuK8X)}yL`E6a-MsN1`I6v64;MfZ|jw)=B?4}tj_C5;6a zj7;MlkJd+?*vx0_pT@1T=r(KJs^pKlF9M(7e)bhAB2rY=GU&(u4=xPUI^i0OMWGiF zfP^HI4uW07(9dkWq5-R2qQEs+1fj5M5A)R%WFcDvE*gBt&ExFJhidt!Tqqb-0ut~( zHP0r`kz2_J!&4Mw40C8deO(7fgJ+_BzJ;SN<*;#`v)hwi-z!Ja=!Kd^@;4ghu{sqF^Agqk%_r9^K<=-h5EV_@ z>^48#3~a>DD@TmKkFIvj>1jL!J+3d4HO=qz3+=Fnsot4T@qm3~AJh{lCPGFy;7LoT ztNxk2TWI>Dme(s=S(|x0bJmK#BVUVY5%`I*E}Hqb_S&yJQe`XL1;uI9cKUB}K~12} z_YFMjid!*N7ilj%A{_!8u;=d456b*qJN1>NKSD-3kn?Az5pZlLXTx>;1c>mMJYti( z`L`a)#HNoxeT~UNC~Y?QzyJ5_AOAQx9gchd=ZNmi>BaE!oO1)FD5Wr%^OS0*kE;x* zbR5*)02#vh{SP%(7%q)!u4@A#Rp$tf?bn%QK-=rqmy@@VD#Vgc=9)|e*l-SBmK05^ zMu%U1Aa5dg>loo@eGTysVGnW9g|<4lpHLLWS?mJK`}};p1;C zp1sb;{SffquAsRi;gU+)%QPH5Z)|5lYvlnU)8f^?L4d8$J@hU|6ePYbul&b~apW!3 zc>;GY?tdf=y$>q8nDn$lHlNjf+^|xD!)i*EQ~!*fo_P-h#A2w5* zOSLD!)B^A|CTZV4-i%-N$Dl#HJ-NL4fOsVO#T8TPg!#>^0nR9U8hJ&{kLVdXog)jy zL-XTH%&jM`^ZM19m80f{lba&}sv3^N5R6zH*se$|j!F;jw|z=!MA=Y{BgIT7wQ>fqzOU4I$lpfg|uFSJ*ffZ z?G`#Ob;xl`P&*KKP%N586WW-)HK=)I-b6^YI(AzdrJ4x1Hu}uRi%4zpaQE^!PdTGP z82f!xa)4vl;8fvGN-?F3y*8w!j_@HMS~v`Y5&ioq5RnMgkQ^aN&Kg`E_pxn!{blj} z0lCePhAcdQG*lxH+jFb{*Q&ZYtPk86c>YtQ4Og&MXoA#A)q};93@~Rr5r|E1O!{Ow z-f9N2T%+7A7164>IaBm(qKRAc8d-7?`6E@1{Rra_UcrZRf(EL6)Vt}_g@n7q3;lUr zz;z6x@rHeNFZ@Ap>_Le~q?214!CpEO;~Aq243~jF>V1R(L1~atogaT8GlFo}Q8wUV z*ObJ62V}#a7wak-K%_lon^ZWl%w|QNOm%yqTH)xLQe zXqlVNXuTi~&{L%@XuP>s7cjJT2r@)ri_!Bx4z5pz7Z*dMh(u_kIxion1W)yjAw2r} zll2A24+b~$gWrD}-dtQ?U0sYle!xelV+a)~!9R?&4EM2lW=*3(X~4S)^Dx4dIDR+V zjNn${s`4f1m&PO!q!IaaR&w_Y#*Q3ahZm<1twnj))Mb`I4T>8Vm-=Fa%ri;=79s22 z!j#?oAv++&MmRyae8yaa!-x7EO-57{qzOz{jrQBYpS%L{*NPb~#-dKtPHIVJ!iHVY)sc{%(CiHV8DP0`#@Hk zULS%&-!4o~wvZ&o%RBKt`qoq>c2aqkPU8T~%Xb%GOdnl)5{ac9B#U*0>kgqNb_4sh z?WSIA8@j0Sv6#a#xQmD9gOg~z(uT;#=08JQsMGhV)DONREIw1QG5yo2VoX^C$qzO4 zSGYGcfk@=ch*w8<)W1kW4v&j*O`k}E=>pY}DbS1yn4sTI$brJdvmZ|!v};@!21Ig% z43IE=D4H4{mF6){_G9hFx+XA#_Rk)c2;Uo-kwg=63ePJ>_7>N`35)@)M!f-bJcBJ@~ zNTV`<e`S3an!uXra?X_ zMzS0dZvOS}$TP_HGNNp>MTH#U_c?NZ)8!T-3+N=~Z^EL(pFquIv2yPznogVs+yU(r z_0s+0lo|ZeCF4$1yrY=h%R?T>S@zNV9sS0xB!jHwY|1H4F8nZ~%viD(NSvtSOJW+Z zjTBF*%9OXu97rHjxT{7=utmB6OSbG9*WN9APXCX+O0Z^?#)CUpKRbRqoklovUlvyC z=kLIs09mKG6Ih)_4;fcftb@@7Qb;GdYJ^ld@Z3TV5IX0KC6q$C%veOo)Cl5mGuy6b z@V34k1Xk_UcbNLGsCGfWE`F9LZN(1Uez4?iVCC=VB9kOhOd1jKLl?(=aumlQH3-#p z1tO=cHZv>YXe*X;@XczZRQdbGk}AFFG4q|-1x)OFULdP)7~KfO(Ef>;%sp7RfR)SukF0qh za&LLMCK!Q>10VHdF4|to%J{EzE@fc}B`N4--aonc)m%=Qq$+!9lw}Mm9Qw^$sx2W2H#6?rlDTrU)u zMeH8$4J;#XU^psf3#f@i7o!vhlP?m0OnK`sP{VVwi@f6@x4OzGH#0rE^n7kC8I2P^ zoAZX?01_;;2SP5Q3O`~j>1yz&Uz@IyT7GLxmay{n%`Rn$Fldf!MOdnz4!O@aXEcTU z7xvMa<9a!BTm<=seFfBUvHB^!>o4JnDNne->&Fr+D^q2J$V_~C+nf$Ib7?ZY+4DY2 zEJyrUhP=s>-L}^FrZ!_Pj;9ynZ^*NWU|pE6Z;VdYbZkrgZ_iqA+)`zS>4?6QUP&o& z3fX)9!?@cFG8W6m%mZ_5aD*9RDmbL^0L@PGW?hr)BEGH}P-Fzqh_Nsj+iRHE4E!CF zW{gjZnybE`Ja;TMR|45qJ4sS8UM1vRt3GSP$zqO;oG9~Xbf2~$R#5Ns^lNL&6J-J0 zFrCjpRB#NI$wu(+av0!`Mx^~m{EQLya5BV|yw@LPNQNyxzX>u{hGgk=KVk1Sf`1lj zrpVhk<2T^uOPoSBk1aTZNkhg{ZNM>>1PWU{fW}7}kOPu}C3-!+z8QW}_m{W`kZs&^ zm}*uu=Pk$uCVi~ihiSseNTN+C6dxD)A$pa}4PkF%L49r*&0w2IPaU`13NP?hHd%XL zDUbKxtsP**K^?*1>dWK-!-x1r3bU5@Q1}q4UOhkl^pcH@CPq!1YF(MVts#;W_~XgV z-K5W0cCo}_ahY?^3^vzIqm5x;$N=VKxB;m!ygmUf1X5f#%vQt=cyV@)JNxSQ+3YLv z6qcE8TN@`mhjxG<{x?X^nfrC79j~y3j>d>8=p9<5(L|+d8=Ute@{!9G;(&*WOXVOs z#cNd8?&INx|2qWPyKJeB@V6goYG9HSt{s}(krbgs;Cy04K{(iXV4I*Ah=tXSQ%m9d zOj@=kn!kO!;PWRPn3vJB&Mw^$8wfx_d4@A;1B%LuPK58aK*4f2ahKy+ys@JIY8WEp zH|t+Whhq}Kjw|m7yDF#{IfK%2RX^n#4!==5*#8dCy;5?B>%iB9f~sXB*wJ}?1?0GH zU6s3M8Rq_;e7yZ_bn+JNlqafN6F6RefGc&ouxwUpS$Aiphmlch6lCrxJcB!j;6RPB z|Bt2LJ4TL@nWCg5R|Z_S&-3w*4LDZ}U#-uT-Fa$JDk(BYn-}*aUfj!qLJ;p*6fF#XrLIET)*V@10)N+0uE5@9N!yMO?cF_CyrXD_%|-53d8JFjYtw%2 z4vM(kCYX;W_Ordu7d0HPFcZ3cEP!t`SB12Eux67@?i2^7gBB*hB;hK++0@~6Tw2~X zxOEH;z({Z(rubotGtRBb2lV(<2Rr(?A`d0Pn7ib+yxUGzsLJO*Q2D^#{W0l6_R2iR zZhG}yx<+WJU(i<}hkOC@oXra8a^3(kb zol`;6OsCvX45a|lzhP4j@v7&;(XH9S_y}j5o`uH0TY1P*W(5EsoBmpnV}*I^rG=qL zL_R3s$N3>6j$_Nxm&$Q8KDYPWqFgh7O=>0>E3l^xKp<%B-f`zxu?pEH_G`wV2OVhA z9dL)Phm9-)e4NjSjAx|r4ZY%OCpChdwuLTg-KM(6-(Q8>w0#b(Q=SN^Y?!Bla(rr0 zfU#}jtfQeL%nW}+&-cYaXc@R_##Ou9*iBu!u9mWk220|Rup9k+g z08kmCY|lPlqo@V9Y_4n$mY86Bp0h;Dkhy@UOAel4Wq5sgrT7J}GfWIf_f$QweAMqJ zU~*^uiW*jvx*qObWbYSSz}+Gty{RV4I}zZXB~oej7=75ZhpdlzikqMmU}%TbwRONJ zeotq5Boq{5ulugX=G3r*#-1s9?j0dNh6}N@jnC zo9nC5K%O=S2Z+XpOI$B2ewyTytF%o}@i!fGD*MLIRg)aFb_#!9*9%iChgTd~ ziH~%ot3)xmc}{r2TFhp6!FIxfUn?&i_K}VM?!r`VA0uZ}Gawbj>wUr4M({$;o@bvi z@RaE|9F59!IShDgEtfZ;{=urHMJJF=aN4XNt;Vxsbz&5PkCaMp8T$MPb$U3p3}D;u zYYhQPSJU3zu9*jTkZf9PmbW1;7c&eC1GGQ>Wci+cZjZLBDAm+U9WqnKewM8=bHVDL z`IVn`1^8saAN;_Pe5O+X8=)HKq9jh-7+ck3z8<4##ZqH6uX2DHWUoGKd9`P z7Pz_@-u}UaDI!7s2{n71PXufE@qUS^E;hu1xj(SxK;X<(T>%@f?Cj$N)5-~4u{Hs5{{Pgis8Xfk@7PnFbY=TriV7I6QzvB7v) z_=%k$xu$mkl_@rU(n&3u8eV_LL=CeK5pj{ZM%h(q200P{a}z_1LktI;0UiX*x_g7h z1P&*#XuZdYiW}Jx)YojDkCah=9@zL5M8a_pQgHjxdA;14J&I&WIM>YM(^YJ{WjPH% zmk$$74US1wDm)Wd2kPIL!|t$8*`ODsSeTQ7+Y0~#(}LbM$H;!kG*zrBcp5Bq~JF{z{tBYHN>R^&-!x>=8j zf~m1xA&vn0kOK>0H2wp2M2gLN38$D}D~XQkRZy)p5_PNDUn%k_ATNhVaz8rodWqN= zvuCHrjJ=pPauLEWoPpmrc!mnt7@DVfK{+Z}&Kg?k3xB@7#h zd(BULBJU9xW}Y{|edpFhKUgsctnM-@SNRy*l$rDJs;hp=PDj195Pk1PB1JJ8qbUF? zLhTIS`wEWDi_PS+wDlF4Esj;qNQv8$Q&=#sbW9X{>J>0m&}RH&ay_0dv-6Z?p)&Em zlXc*HDoz*|b%lhUl1r8TK@Vd)`v*x+v{_MoVE@d!+=Xroo$pTA5YWs*Hf4T3%M5bv zvGJU1Ak&%#bwTy^at5hZ;X(6KU5i_ph+Zc(w*R8JolwN$^RoTK$u$)eHLI(I7}la{ zKYQRakxC}o=OXo?tyTo1^LTrT-jl%z8qUmswAB`C zKIXMFT;-73&hxm{k4S<$FNL1G^0RjPveZ;az~uSF?CssZV$F)(#v?jbW9K{{qg^@> zHYigHxxGi&!i0@>F6F?Td5)~&7DRfMvXjv`)c*pxL9JP%B+&@SShpMkjax2t@3Mnb zA;Lu>)ney+@fm24eaxXtFbwNbGhWv7f?Dn5e2eLE1#EZ}6Z|)`hrJJ!ndRWZ*w1!2 zbdGYz@izfrZC9?t@-h({LKAx3q=pHzcc^QapLp=e#P+^cLD57;2sbZQ{k8LqR`r3> z--%nP@;a51JBA&%a1Qp&wTy1c(7b-<++5VXcX-t8)A;^N|M2+rxDRsh&(mA2mxJV#>M9U4Jpj7G^nz03rl!rzAzGe?)dd} z%7=*_2d~7pwX8kVtZNzp|N+wy2rTOkJoSKY0 zyquBw|EQ{Qxpxm_(G0b0`tbm%>Ea-e!g#>#Or6q_y)(dmVo9q*od~q{N$~m9n4f2F z%J=l#fo~hDh8k+YPxKiYVFuy@4$g#Kg0qYyyphq?TZG#$S9v1ZNBNd?km&dDt1`*ql?^NtRtd$Phu@de)7JYTPMuGV5SlEvNYq4a ztWbm-8eJ-lt&MIVVWhjBfy@p?o)JU7biSnxNqNTbzKc%m4Gx8QxevgKS^TwQ^^qmV z+$xD4j*N_<*iIZ(;>*Teh-BUCzrYBH7a9OGf+6Fvr;ar=xG;$s57wQXn7{4N1K#iH zK6xl`J4zkfh0HHpm@IJH^-2BsF8jmh78B>r>ql1y$vl>cgT64gcCVGf`WGs08NkCF#?O=#?=@Y#3sSq3Fk8 zPF&p>IN|rBb?+r|`XC*JTZxx9SXh_gEZ1gVaWwU6M z-d2qmBAg)!>^EB$HQ@Ca zeL`(%u>zy55vO0m9N!{c562(m$`Sskf~TZ}ZhxTuB<`L~Q-O(s{`}%zew3al8j=v3 zE5lx}^w8dbhMdhFPazWK3;kII|G8 z;^j&*q+8Pa-VQOUPPBu*%Tlh`+{&5k#Q3$klPwBoUk|=J(|VnTYEH3&?O#lRg@#We zk`ubMGaslV&xPV>u~UUC0Qa7g4h(V`&o!Vm5kPqj;sPa5l=T{g9#8dH-EYYjW}V+D z<`A5T@&Se`b@@UijA;4DXb+Y9z-mKTNZYA2%sLc$@!#IDU5)`s{&CmP*TDO`N`r%9 zo1~5UL$9RI{R(#$*V4lNU#X85mo@IVZ!o84cIujM*zX z*Kws13Q>H9%1F)pw=f0_S8o?)Ap$NuU<~r~8!UuxJiE?9Gx-w&qVea|0>ENwPysdl zVJ$4PFAg>E_^_s9xgK~0flx5M8yzPG;!-H2*r8eBULnPD2bwA7_i#!`9h7BH2bJkk zc=PN1{4<8etBEe z9_+15>ravH2Jf*khIPb)-mKYt?qmp>K+ut=9Li7l^WF^MrkwX)9wvsF+Oc~ZW?~q_xo2Tl zFv9xMU7D1u&g6w>>^$SRs<>IG&PBaS^+zHG*55RbMP5 z6NM83Y+i9mpjF6tS2+zwFVW-4FS3{!sB{efpwB=$pBSv2&M;ce$kf(Ph$R6R5lmmYxWWH6Hrhgfx7UiT2BqZ`aQ&VsV{>vPAaTBj4j%Yr=z9udf zp>OVKc%iIWr#4Qh6`p?yJLVIFre7wAqwU(Rw@^&hfDiFg9G)re+C&gaQfpWr!IQD| zJdvXBMo>GqFrBo{OmIr{#I*Y!A`~IVpby(y30ck(Yu~{rW6?bnM#`>(?uXQTl1QpNemZ1%i17A!uD`_ICMXS@{2+RJvMn_1x8s`-ru&< z5Nbr*78fASD{rf5f8amW7(1Kq@|Yi)`>(V6W}a`qV-)r{sMf-s9kA~%6kozE;T2xv z1aMbV!U-aX3Q;y7u(o|x0>z~aY4yK_!%YJSpetg8@==O$Ag!G448D(u| zkt@QYA7_5I#%T}KptaB5e)w=^+2r@LpE^?rzK0T6S5ue8PjssQv6tbi!PY8N7|xOO ze!1V@d{^J9Y)FdJH@F`_;|+F}q651NYtzIN3$r#N1Bxve>u+O=vUjoe+(+VOQOfBXl{e zFO_yaxT+MM=DRLDu=#AFD*bq_ynTSq61ii7&w81^sbAQ2Iy;uc%HZa?K}5pTOWSC} zE^$IoQ-5_xp-<+(9p#1~0=;gUWS%kQ}t!)g%n4S{HnS3d7JP*wJ5W@mf)%7Sb zcbIBnc$_T9nqL2fy#xw1=FnV>Lh0Rjlj^RA-~!kVPZa;kv;dr&C0B_+)hNeKzs5R5 z;n`&VCr(QEzS>ce2`lO;o{$&H*=`1Sb(>~#aLwV8so{$DhXyKu(euiM<=s#oW9JbV zTM#N+Mr`-o2%anR*Xubbfj}@Q99)dN&jvT3Km7O)hNCci%II-|V4w85irpXt$iY1- z?*lTl%PZOIDh^`qpygecw;Nm!rf?Vz?PC+CHDSHMBvjKxd_rfRx=xg*F zpz#LIVp#Yj@gqzy zlFH39^5@|Ej6<=b)XG|>bK-Ht7OW1@?ZjkvB^kPJfoA|9>zOrmOiYsD!>2hzW*8 zUwLj(3)F^VWe^WSo5{m%>snjP;S+3(aW)ThBP#x$!L#r+hM_B6C3{U@w#!xG?X7$@ zT7@iqL{$RWFZ~`QL;UsK-_HlPwZa0agC$39z;e~s8cCM=y*0SXreEI9SL@9?6v#G% zzqXS{r7q-F);Xn$>)b7Qfjuyb#j(sR%YvQF-qW+rWw)WqVuxBxpUKe}4gTlj;PPys z6puJrdWV2bv%=N~1bRIA_M?CBc|4gy-%#1yoFSR70j=K!?!Cm)O-WYGrTbaWzt^LO&6oT7boe`lERSqLRu8%D9sImu|OLl zGT!T$i z=G1?HS8dJ&jw`D%R6nx!scplt=CB#bL*aAjJW)6pX7o&Xr>9pryRB%?GEk7Wou!vO ziml6d5m1|nGS(3BP5IVTKccPiIN^lZ3^qb4@jImiH;ku`|!8bPs%11Ne& zbJaA!$~i}n!9RKxekj%GIjh2^P(a%$xon0CQH7V`1|Vq(?OZ)+gI|PqFJ-jQ7q%wh zqjGW)WNQ81IR4AcL+nX$uj&Q>hLmgT*1LT>T->b2gqpUwr)vUB4et(x(+ONVK9K?wb22TeMqe6r0FzASSRfKvX&-V`hIXJ%^ei-P)EEU*s z3O-Lz#3msQgD(NSmcb52OHg|}%%@2&?^S9npmfZx)PsWC74r^HF9ymA#*K2D%ZKey zIKNU&Y&!8&D+U0^7${*qNR89xmzCHijtE5V$ZD8JKYT|E`9w>puFeh6Gk8i=iQW)N zUT=jSF|mON3LluQ9wyV-D}0AfprfX7#CPca(yDi)gpfjOagE#GDt8VV^`jyKmw zYY}7__|ckp;D>1$y|INgaPB31h`N=J%VVRK?_Tk)oiPN8Uv(?GJRk>fJ*(jBDD(2_ zpV0z#`9noQ3z-tuW;rCCOA25h$C(pS&AWabDQ&pCe=BQbt@|oSM+&(Zoz%<=_SuTg z%!yi()~EJVHjGI-3s2>dL&w)KAbNNA&R}KchIWp?EK8I);VP~om$ho1F}e;)ULw%U z5<)4Tx$6XZ-CD%Nz20yg3;W1h(i&lZZBT3kiD-NU%y;|FmGTL&J^4cchQR&9DXifx zaO#|0yraWceeTz=tUbz)K+t=2K9HgD=*`%>Lf}8jC{pp zP^y-NPMO3sjMtZ4X)ncr<-V#EL+qcXX~DL_Wyi;AX}NNHKAih_93Dj_ncVluc**H# zM2yE-jR)7g<8zWFp|*~AJq1@q@Bf_`vG~0B?NM`XgA#pQ%Z_andKGs?z%z(ord1#u z)bj>OW6{rTR6!=xJVO*?l#AoTH!uCM+Qb<|1?N>q*u6~h8*lo`xy0<*_+Ws7 z*7Mu>dZ~CV@4frdBjqsfubu7hEw1RxFR^AFP^Llde?&>CxSnp(NJRYJlZ_Pj* zKA}6YDfSFXtmz2qmy1)NdbC4;)^pPbKR6#S8?{k%@#z6_pl65V9uXv*1-zCjU{^^1 z*&b)!%8n2E3G#Qrygdd*511Aa<4`g);pdTt9$Uv$^QGL)fS@$~Ab&SWO2^k~jvqEv z2?PggwGNn6V`@kWtqPinhhmOWm3afE|*m%A^tNlh(2W9lq01 zL_Cbg&^dM!6HXvPKy+}(XA9HOaYxuBC*Y#ix4I&U9&UP;@yXuM%J-R^_C<6OLVS^O zx>&0PtT?eu`Lx~+`QBYWn7DLf60m5wLcR zfy>z4*b$?@2G;D!im6D+J+E0`;Km?&hR}t;D+Ka1Y#?LHGFhce5%5KTqOPqqx$8mJ zhI`5_ym#KKq$P| zVMv*-ZG=2QJe$5sR6f^6Fjz+6+@lr9{*DiIULb>l%|tZK=ZdtIp#jQtlYb9uN*%h1 zUz&{?WHgI@IxRIHme=dOn{D{m-)!h4x8m?jR|*36Kl;@o1f}$E@pOWZ;p^U9|9%cI z0J57?L?6=BK5<7U%@f@|*EAGoRs^Wc@Dc>pd_){GFgIh2qLR-55IgRQ?$&q<3^no| z+4ygpI%N#kt}v;yo&8c$NzumR+dvlnK$|>N^c>okib1#FRJE>e=qy}-CtXdKP?edp z9`3lmxmOEulcgN+xLG;6R0PCXzLK$z3qS}OM(Uu^i7q5H7RB08W4t_eH>Qin*qOqg ztE?@ya?tTfc@^C8tkhe+w|8YoPz}zYgZ^-ovax)CxzKBG++L-0ai(qJceR6YRYK*zyqSMQ+wG>`pBsH~6otzK3h_cJK zTX0gdpz$*}UgS)`fY{uTN*7+_*0HQXTDEW*XuehJy7jeW{!i1ymXd0SMD!he6ON<7 zNl%fSD(87Wez;%TkRk%KnZ*a75uOWrK6QH0>Gw2vs6uxrU=3Jo1bF4eY`m#0%LqqD z=WippS~GPpoC1P-f^xf$Zwf=(H&*SpwhU z33J}i*AR^Y6`=eFHH^!)QW?jF<&LfGlTHBwkiI(wzS!a{Tix*?-)b6q%!dZyhFU)L zB;a=WIKX6(dmE2R7J7u9pdztHssKxi)&@Wt z$dq%snOSROd2O_o=A1EOk6=y1E&%g6bk|T=Ibm;GWd;NXEfdjxb@wNFFU&c-d^fxt zz{iWUy*Ic*?vCMhWH=i4C6uj-)~jjkGaMF#2_gL1sZ=qajAzCKB3(LA;{)9VqI@T) zNi*y^q^UkUsLNxgyhQ6xN^RNukhxnt+{H<;Ys?{Pp}s5rmS<@p9Z0(QP*M0=Sz;)? zzV|9?s_tei3>}CF=%KJguY^#8AekHI{&(wA*xB*rQ0da)b?eeTv(_bmibjX#24*2c zS!Bl^KHw$+r~0%2-P)SqI+^`S!NB{=<#%9{GGALS>8m`$+nD1L1ATD8V@?``xkC@d-{j0b?54W4OPTP}VM0@rzUi-(V0wmd zj6E=su^@OstQk@sC4FRgcar>1HfkaenA$Biq|S7+%OdI&v1FV~W%^kbD%3yY2k9F; zT{7M1V06A#PDJj#dP0-Y^Zg@2`t9@P_X+a<2dEJry*`%Bjy_*pHey>f71)XWcG7?G zG7)WLvFWS9Gp2n22sXb)&RG}?Bu)^>c&7{Zqc^@n```HK^MiWTY<5*;*;-P0=tZc> zqap>4yBV6k0oN*|>ec0=t8u^N%T`CyDDe($R1zpOJrc@gRP*g5T=}5Uv_fbifj2h{|w*m#e*mKI?VRx#Qn03)RN(Su06jcjPUfp2r*+@$LNDU|PW+;w6!Cj8ba?$cn0DCPG1zQ&_otgIfWaq@@yfS8Z5X=7^#SCu^`hDOBRn~Y8#F`PW6`#%jw zLqN{5bia@psq#&6j4r54h7(9v0%P5a7#YDxSTk{lK=(NY19HUrEn>{O`8}AM*^`-P zg&J>WTC?3t2lTd4TGua-YIcR(mYzcr0{<1BO{Bc00;R`-9jW*wOk<(~#nmjA!*f2h z9du(g<(vAQox#Sg$R<)F*@L@dcw!UYbF^an{k=b2_Crzr|KD=8pudV7C(Qn01sef> zWsSt2%CF{7Gv3{T7J<(K*LRI+GN(UB`@k7spT&tyHEs_5Q!>-nbWPPJ!yktO50J3? zD%fOSYpWpsjlQ4b(L$f7@1P;6W5Y`okR97)Iy3v`9X2 zn>~vVDiFP6yf{2R{fTU&lWk-JK#=B1i67pI7iXo@tQZvva5Dko6E`zz#K6jTayC2% zLRrEH{YdX4x^|v7z?U`xUpNSpdsM%l{B`m!`G4vc5N11vLZ}GytNDCReCJxMcl4Va zs=zFm26SJ)VSAvpWGW=seHM-HmBWP@m3^f!EkWUdMwoM;r|F|-9j=`5_iL;4Z{TLJ zRn)@RdyX?g082FYnu`mag)=1mA|w@m!Fe{36>G|I^|T?g-;_1fJ8fM>uX?*!RQK3u`UUbd`z6jKKx73!@uUUhw~! zmd0@SU(*%lk0p&tmm$!($YfiN4q3KKFlH+C*~2xn?6%z!pgd4)iEoFo@si}) zm|oZ>|0X!z&j=@YP5qU5@F6pxY~a$2x&R;x!;7k-1=|CZ1?-N)E*4-N`R#xMlCjf^llO!E-5BmaJ|-nzuQ$9r!<@I(IMyKofUzzDq0JCC zBM|?TwI>Ki_MR4I`>&pmtYj5-%N{W905xY}Rs$5!D)X@+uX7vAIE!CbOI1W?CTMT0 zB5Sw^uj;Y(S<|v8PBKH;Dq1*1cVri9xb9X1jcG%;@%(I_`RsaZf>fjeVds!WFCEG> z7}~deiuMWcF|hV7y+-B1U&_appq6&?$2Iz_tO90mS3sT7;RacQJ*Gl*vR`Y;3g5C` z0j`gm!UU^jLp0&`40t{;4fs?PJxO^aS;cK|J1__$oD!fgFr8W{tE^SW=_+|Mg)vk7kAt_s0J=W0vf?}TDLq+2h)W^)sC8K5zJ2&WH>n=d=b+y1&+WYzOkffb z(j0b_f26%e0`e{|KP;0{9=giq%M?l-b^d^_-o8IhNOxf$X zf>BCR;A~NOi+$OOG`5??!$T+|!W(oO5@OI68D(kdc)6^jg1NkgDVPa3!zy z57`n$bMjT-rfGk%ppZ1T1fjL^r2x6~f0fxM!DWIS#)2rM7l@jVqzA}nZgkBbwkwKC z`0A&?hP!aseZbNj&OS3*D5e0QnKB7{o4uo@1!VvDy8%*Bs@IqSm=2s`kPw8+_>S3uaJNu@z|e&PiCz1|-o3=n zc3hb58T8GdhToAD%cuz=McArGPSVhBIzmt|Gd~*ppXovU&C;;;LAk|l^tFXT9E;vT z!=bw<)o}X@O`Q=usLBqz^o`Z- z2j{p+p>tEoP)?f$5epDC)jBekMNaG9(Fps=w&%&)$H`}C5(d{Y0I-4?^|#@X(gV~5 z%xfVQtpQ?!ayhh32AqZq7_;7JsL>B`f9X3zj}Z6hbHeBAQk?S`&<2W}k)CR;!@&sRpoCC5Mddz|= zfaa3gS^=N@amid{-qlShZz-f_y8Kxx4t7KFn-)u1>Wt88Jh{7D&A!dCI?~xux5l2x zCQ3x}rYPt7E~0|*2XVVzl1T`2muGlF<)WMkC!va1^UDI{^0BpcE;pw}JkWSL{@nD- z0;wUm5041J5Wnl=oKPhWv|v)FUyuTw^wD6rc>LKrI(*R`D8q0dr+{oAzwR1YxP11z zb^^s^sGoYA7KW>g|4AisJ${EP5l`}Z zdSiig3u;J|Pj0W`Q_Dj%(SD+kz>oSf^^RppD}BbSDRjc zqD3nj(TOr)TC8}0%bER>z4j|gzGj+zS{IBoIgTjv{lgg8;>6#&+fSCElJLq?NIu0H%5He1E+_ zDmt>#kjx3;G&fKQY;(G@gp@|u{7%R&wQAybVFq6uBK=tR~w58HpRl#6dU7j9P# zqQJ1^vpP|yf+@IEVAnDfQYJ1+8rxMx$alNgV2&TCW}vjh1*!-0a$7bZNLEMJUYJ^F z&_m>Gy_>oxv?kUBDjf@BUWcK#jJNf z^|qrDBXK=D?LfsmZYFmmRfS%D2BL@-JtcX^aq2y&@bGLnQLvBL8A6)ieIp%q4m8_o z11;2w zuF&|O_m9`#+-vf2qs4$2;HN%A)C~8$h9?_xIm-JoLs4Qi#o%N|>^LxZO1I}7#q`n_ z+Hum{(_soDa(@(`!F6NUkG*3vc|yWm~kFovcfsPN$GiZmsS zULqtdM4IPbx9(UirXYA!VLKbtL|L6TO4=fJ;eQ}8vS#C z@Tj>3b&Z|rM#w_^(}ZVAT+0Pew@OhIy+9@UorE-`TxG zNIBZML#~=pQ#^C69U2FHzh;ATEm}FjBZL7vTy>L9JaOh^w4L>?8)hsoSbmbv!jd%u z4xTLAdA!vX4wQM{F(!lrgZ@<#-QaJH&=L1BNas{-fIB(gpE!ta-r9C^v z__dE80`9VZ1_iNL4a6M~%+LZx9 z@gaK`;GBU<={Rc!!|kkp%%6Lo4awkT*oDl?&ED9pB18Qsc0U>vXe~cb9Y~<4Lba>W z6z_RDR6O7ujnqH&5_xWLw&12wDGdxT0WS#x9#v6uvGj6EG8rBT1HYUQ0#(33v;peu z{&w^5T6(A)r`>x2>x_9|?%iUvTu8~)k~w{!(bDi+EmnammPr&2srspOMzBs;q9vFV zQ07D$wd5anD0ai4IkW#-*jCjMN&62?1R#)r$L1_#KsWs?x5<%cq4Ux2d$hR~|FdPf z%8U35rmM^nGF{?C5HU%J0?pxkjeHK&#Omi9Q=%-Az5aM}eKoR5E%YqXiPrCjo|@sc zRiYI8<=4z9`CzLmX=O<$@t!{I%@ILat%R376b@*#i@C2E)S_lo6J(dlA^CLCp}~Pi zAb}hjo@vpt!me8$tX^MlUgSpF7zFs$UR8~ZOuX`C2V(yfJSs~!t2TJXIaqI3NXkA> zf8x6Fy6~GklMFR)j%;km^cxZDEQ(iH%#NN;@&uLd3Unnk2R4mQFc+oLBA(;?IzF^p zDY@UKQctrUWjfoBp)r*>glCF)f^j-kZUSD#;~fgH zQj@O|c-*mjg@?jo*fI3Y6K*PF^y}02=Wnfrf`8s&gf;sRnlZ%x0VP~Uv6T;`4MOFx zC=y3tD+7!zP;9w+VVos9vU&DxF;tPh&SZkp8e#Ij(yVN?OEG%Q6_0D*3S*j`UiM47 zvS+$YxQK`2?HoKY`X^(m3|u?=3qEZyf~}jAtp)k7S7)b-MNzLRXO~G^QVha&K^LZC zoN+yviiP?(G|c>h!KT5jit zru}0)3EgHx%FjmE;|vr_^|?z*2}#D5XThI2_ksL0S5+M!a)IU5V1lKvHnk)rTU#3% zH}B%*(?%%s@%4871-c0>7u4Xbb(=FY*++*J@{Yg&mg_6lkNqE)8jV?1x5K64) zXyw(5)N?#1^u7@&m3GWl%TsD3@+qNRdeC^AGuxyFi{?lC*~_a! zc{GE3`1t`0aGSfIhchIa@pARI|Bm5jBjj>YGjvXm#$P==Gg?K^E(MQ)w#Y$9ik`J& zOO(Aa43w^d?K?C{ttmPj%J$3zRatcGVi@N^99G#J$7oY_Af_d6a zC!0bN{m(WsJn!eH2mN&aV$2!X2frclDw7AV$LeAoJK@ii$74XDsk|AcRy3bU&l8c; z!J&@DhNeXXkMpCCcz|S--dgYn+Y854jk8167z2c)Pbvdvg}|WYGL4)aeIn>N zzX{^f{`m(CVp}(`(X%Ny&cc*k6oj^bTL8*RG4r0uUJp`n31fSS=mKAQh} zz@8DDl-Xb_FA%+fslR674#ybe#tu#kaCNO_f7LyMaI4l!)4H*?)Tk$p|M~p=sRSQT z%}aJ!8Iz*10yl(Gy~VH8>kP}wBo+`o_gBx4Kba=n0No_oO2ADoF=WcqsPZAoo+uwy z&4;|cx%vmlNUko1XMb1@4~q8X(Asz$p$d?SLe)5U!!Q7P$OJZI9p>~>5BxHu4Z}0{ zdT$@$EL<)w0B^U{29%aWk}|-jr(6GiN=gp}olG#0I)UH;=r429EPvO%<2dqwN|kQZ zl?XT})ND8COfrRr#826DgWH7t#@u?PgCu$UPbc!usty02wr}lD>q@rOFFHe@hwX1y zLfGL%mS`b6$@#)S2uUOo(10AffBl_vR;|~5fYO~F<2+*6V(-0Ht$NOy6-$+v-t0eC zA1{E(5VVwd{dne@49E<6#KE9@ngYXrIhq#^sIi<;6f@N}a|^hCG;6!Q9X z1|^5W8Q&YTYo;sRYs(WCR!ESyeFcDoUebohlmj+PzriC0%{P`mSj`Po)FkOt~^*2STzs$rG@~=nIG^gVL?jAE_|wo zYz=qd$d1R~Hvn*yrSR#?W_&S!1pF@AQkx#On<49nBkqYOgKB6RixgmQb^E}V?83Pf zD&Pw^i=&H_^{C64=9SeHEaQ-n3V_#wmC&)wKGHHAAn6M*61XkOx8+YZr23BL8?az` zv9*E|Z8FLZ2*H+Q4tqW*v%0glzut~7&JFT)FgzPvUJk(Uqxmck&3!M=2#>Aax;Q+F-F%UR5SO*l(Xcq4f@dJ;^zmGs1hHp2^C8v%w z@*$mej*nCJcyyhz$M_XgMxYh5RiKxmP9p6?segF=PS*l4pZ*@^gGKr3D)R5+Kq4}a zJQsQJV)8N5j|it%Mz8^01zUn#5()@}pP}l+h=!ghoIcLi4NX((j)oq_-Z(%nAD&Y) zBZ*(bQgy*e`&*cLlqjhidMra@VDs08^u)zct;yn#GCnUNP&y(R($4&M>3VMx4VjY0 zM~kx#ig+&%L9#D)D>7LmNrCm?znPo>%sVj%i_ANoNC~edfq;(0On9nFGpvN{@bCE`|uOn^~5~_$`i><>US~NGRSbAjfkL#Q@S0*k@TP0 z8h{ZkfCa(z+Vtg?K+sxUMB{X+xrjvBp^a{_eXz%%=&DBvemLVrW;kE(Fe?%neN`oS z)Cwq8k?YFY)@u^QKdnnn;-xdQ{RPl-7_rRvOrP(S7ThBE(ufC85N+!40#M5$h0r$v zFP>uI6^@1~UK)}okWk3Z5%wjy=IMJKDj_%?f9u4eblx#5I?-<@@D zo_Im9r+3EjUVkq-fI``Z0^2=IHO-d*CKTvzP*n=3J!()KF?*OG8J2Rsw_o2l3&fLA z%tRp`n@{oMS|XYN-Zt)}-@zt@JcFoe9|5%cO$0PISB9$=pE0eM9T_)wG+9z)rEb1E zXh~eHmTPoKW_%{?vaKg*qU(;e=`06XON+rjx&uHQFG@^la*DhR;zf08IES*bJVWox zreB*j`StTK#@yb;FXeHE*w(uEqid$D$mj*dHrz98x+Z|+mO?%bLwhyi*iBT(wW$3F z>enb>`Bk%c;Y|_n1TVUbFT$sLkBRvZRd5WYhPW@{u@6390Gy5NvYXZxZ!l&1GRLy4 zt5gLg=(EJ{rm%v;f&_X9u8VIG7CBlFugMr2875BnsH102dXe^Al0!oN z3A!Ma49PmHyitR`{Q2eJ>H_nbz|SEvtNie8UqF`llsYTuFXtJCk)96A3|YM+bgyha)fj z)AIQ~42GFbUwAoGBzW1%gyI9U8DyQ#ofK+2zOSnxg&Bg5Am+H4~(_C%Ph41y^?%6vSZR9M$I z&I1AW`CAtCRRJFs4E1ffi6e3h{cy69&mN^N5p#fP(0 zW>9>1PQy@V=^-s-xM26Q?QkF59zyjt&IYVI5(wt)=_QizCKf8UtDYWmD#5rMWIzk1 zjZ5t*bZS_jWodA4xN6rWHWBgn8|j$Y2eB!+@yTBu?E?9 zT2TP~t~5J=5zu%FNVsS9n@?Oy%CszIeh?Zj*}ac)1QA3+CC<>_y9GIC0dD3~l{j=_ zSd6a8ReB^`gyB>FafrflI8DJG%B~9J+)e4^WVZ=1ma4}^3PL%Qjb5oVK^Jxy&?JRU zLD>^Nc|#n)^rfGK*X`?iRyMTaux5${$@EYX+P#VgMwYmFgBQR`BhFqx043CP1XpC* zqU|b|q_$U#u)WZ6qWqJwYUL%(+Sj|^60%Yda%3u}K^+=FVl28-6{2ZG8wmBC)$kJ> zEPTKBG0Z7zFH-6U=%ZnUk}neEGK>(*U{1Lc5pwZv8#Vq#-w%dAA-@S-JYj*XhKz?c zDlP9E!I2Gx3@3w&khR8ij~~dMfZAb9NfsGWc(4X7xH6^y^ zU}OGGpFE;4Z3MMz=n-?CmHMIlWf;-L0sv1hoI)f=@R&oJOq3P=s>M7BT`S|!q(!Xb zCcVQW3l`b{5)62)NFoXK>~!|Jq)fTo{M|$6=~i9))b6AfpJ>Z*wFM22UJUz z@uhW+q(g6)Saj7SQGnHAT+BAW@7~Q&qWE(A@jYL5dhiVitK4H}gtF5?{I96KLj@S(&F} zDbbuBR=6RiG0!e8Zh{{1+BBZ7ZUuGU(g6s)4!Fkxr$JJf|~nigKO@tlm9@T;)C44iIRIwU=VxjrAYTZ!`L6cEG-FLOn6c1r2)P zDXCg3DDc9 z-uk*&5l&7`UUo(hW#_+~xX-%i8K2*~Qw?GDv?mDqx`Y)mm7hT`u`&@5+c^YbSRxB+ zU$o@>medO&PgqSr(f3&_>&ma03^sJA?kZ=V1g#H4eFu0l-ZRhXU>kzZRAy;9rz23= zKo0L<;ziows2xdKvq&EiHwx(pSb`dKyg$s-6s?!J*i%7KJ}YekMJb&u$rwq5%wu$X z8}6Fpr_KAVU8H;N$_!wWVGK^j9HoE)7N{_I@{XTCn8PW%zGrR{qHZP2Cmlrm1(q7^ zMEDuxd7$x&sk#lLa(qC8CEXArM}L6&M9gw1X+2li<>*em*AP%z_e0OYhnOmt!KeaF zWn%ThcEoS&QLD?H>LXO(d0n!sk5s?iyTGpT>0%L4WU!c<-mzqW2a?BH?P$!?-A%_& z7--AFJJ4gwLBxz}%I0gi)qEa!q2D~!qkUi~%C;8JR^1IOK-M)WcQjqH`~7vQ;HLoq z_kA|4ma$9ijeUvjx*~8iX1f6kI{2=|-gMb41nrGbV2UZtKvxD3EFL@S0+)g}p0{v; z9^Dw#WN?}JfuZ|Zv1Oc?2`w~IV%*3S^Q?x0bJ`=7Bve5P!@WzPs(!nBQLX5PswnEd zup^`wp;GVvdfUIc0B({KguaZTwqRHqLD5vV0N_{rxE64QYb@Fz2G8w+DJ~>gjo?<)b2K@} zeR4ml*SVb1T|$d_Hxw4GG~9s&91lqG3oSViKB+cY$p(WnWQTlt7K9K@6azrk0;ojwptP8}zdebc&G%SM)_yG1mR+yeXl+W(k9F3b z#CcBuPipVuI>t;5Q31>yKyH;Ira8_sVPz3+1|pRC_6M>WKo{t%*Gglfl5*~n@DY$| zHVSCOXd4)3a$r|*zXq(A<^d5Es*c%EIBu7`pojV6se$eL!*@L^5Y7+K6@ON+Z;^yK z`0(n|Q3T6f>-ON_!n=n>2BaEFemXiFquUs*H9m0%%2{R3*Uj$Czsm_kG+3E3TNXau zdzif55V;DtR)MboJBVxxhAs1uHA|iMYDlRBjR+5pgLpzeTBZ|{Hq5Wt`;7GZNT3a0 zJ={ZrL>o{{wGYJ;)J>3xoxwSI6)T?6fI||9K{0hf@@xEeNbO?hF`jJuynMvEFV`{w zqwUE(X*vfV)ZE0zjKS|{BJn&x;(a{@er$zC0yx>zKLjBIH0)>`85S-EH#qtjERz$9 zL4ii#6&o2+^d@v-yf%Us)$Oo?e~z{FRGlec*}HDkf*rW;+p`CxrgWxAwndg%VT@XK z@fZn9^Aeo^v!VF$AB+WTxvR6LV^ewFU0jelE1YX zuh@QiMOL-Puer+?aAofC%88>Gy&L1CbFviN&0C%f{r<|P&3n6bDyQ-<-e(fKfJPM& z7TM+Q1AI);8p>$I%mbIDM=xyz_pQdNMz9{wB~|yvK$IYz=d>t`wZhLAauP@>PT}IT zG~~cL&wP%Si}aAzep_VE*a#FUd&=mJli*D|;)S6JsoM-bR=zC0%@0`~;D%hE9kRH` zNb;a(0JaFo6}c+BO(j9zIYuBeo4lkHx*3(27cU~pQ@G9pz)6R5SRPZ02>PKHAC@vh zw172J6Dpr%t=1*YPP~inuX+^lt^8|T{8Li?t zVSb9*ffby{becI)!73{eN@+*An1{jf!xf^z!xVBd2|Lm3w9(`nVoPN5brR^2WSn1$ zz(lY(xZoDI`PHZuT2d!FvcWjj{Wn8`iZ(+Teua1=5`DV&uKo@xp7xA$`@^WwICHlJ zF(?Dm>bEZQu}Q;dIose+z)tot z#K8SfD`WBi)!GZR^}WCaoIC17u_6`5DyE>T(rC;YMvE2CDhW0TN4CfsJtD}CvV-sx zBa~tM`y5D*y9f002^_8E)FiT|0`)*rz|25-ht{64h&k{0c9vS#m@ZGH46 zJGDWw#()(}jRwMv?JXf=xAvJIp`kG3>)wr?XS3Dk z4ZJH`7VIC``$MD{y6fZmn68U!hp9A7M<76rS3ne|$iPisR%yAq|Dz!{ihJK<3C@22 zJT6)9bU)3usL_1KEgzQ3{=%10ypK=SM1C|}qQ5a#uB=!lzI+l1N>*eWx#jD1N+y&N z&GVQAoie1Wd58Pr83@G6S?)Xi4({LzD+e)nLij2vU^b2~{~Vtq+YX_-d~d#Ec0Kx@Aq8-qojX#q2!f%;22=J^-b8Q5#|Fd2C<$+?jinU$pnN zdGiLG4Xe^V8A-S_8=@;}^MBBMJoM%)k)By@XE399qs+EtU+8xY z)^~l?=lSP@&`0+Ha?N*m3lbvlM@S}#nknHWbo*TfioW6pFn?^8uc+CX>b~yX_TwyC zWaR!eTQkwyw!b0}#RD`Vl}n@Fc!{3TM)2wk7zhI$I48!X(thUzJ`CPQJ#6Fp*7%)I z*T~XyQZ|mV@CV*D(tay%pT=v3TP3fhep8lN%%u*zDPS0MB~_Ar4~5aH&|Gn~Y0N!%yJ{uF?kA)!kELT-k(!$Q2pN(1 zY&%vo(py!1(E56E6RU$|Pk^_=7NUw6TBo?Ko`2sc?v*&jI6csU|3l$BT|pdjHr-&v zxU2O{r7&|8QZl@G$?$?ypj@HIhZdxwYBI{5+_4(!iBAZL;I-lWWPWz^`f{I+TB{QK)nTSkmB#=9|vTNP}HQTbBf0OhJiCwweIlzGFdN}q)9auq`$d!aeSp; zNWX)9Kk~#&zGP1+WxS@0*Vdb-`NP)E>G|1c(7Wk_{-kj4|<$5vlYQ_f6v zmyIi-c2m{A4Iow2oVWDp{xA#9C38e+LM|F-8j^Gc8dZyDsLpHvT~%%2uS$L}{aMM* z+&MzUWWFFb8lCvQWFqlj?ADCtuGagl3%?J^jcjPk?pBpJp{2r8SSnQ5{W<-(yZQb7 zY~fU9yLOmzo`n$EmTE4_i4lL93PG?5E1?a@n9VF(jJyI~8M0}?RTHIKbr0zI=i_Br ziB7c*o`LfF4@6fQFTwoxp*5e#r~dposhb9O(Vc}VQ{^3)D$SMFY&ZdfSrtcSSak?! zx%Kp^PGbbe7;hTvV+?Lh{Wm~IZG~-d!e6CWzg!fmXY;JK7}<;2!|ToDU*i*u?qH0A zEch1n)MG1(WpEoy_|gNvLWN-7-5N)p1IRf=U|vz@<4Z@)6}d?gl;M0*q}CWc54f>~$3T;Kexao6~9xrs<6g=(JGpeT42S&h1CdyhR6 zJOTxIJ#5SNTGOOuOwGcEd}%$#=-pmkf8yHV!9}g3a+S2VDF)X0Lh0=CCoCKB0($g% zh9D8@rPGiO8_r8+Lz=GGduHebdC5~OiQZ!5B@M)i@HLdWl{tpny?`m&PVst7f|Q3X zN&_vb+%4_gBfxn4s!H=jnGtG0R~bHYvx5G~vN(Wo6gg-9PTvNh1Wy3$a1l;-i=r3 z2}2GM>*7h%j69zvRwssQNh6BRAs_~L^q?aUH@qpyuM>os^11J*d-Lbxrb?nw`{OV3 z5gvXdud@lv5Pt#Z)Bx%=2G$aefaT7JyArQSuw4H!QI| z$RA3Sre`>ETjg0T%`)u#M zc;t}k2LQU5qo#^@V6?$JIhw!*)sKVd-Da*8w#>z2u!)a-~_w=X}x?cIQ8G6 zAuKM|FfQFxNdCr;sPECdDF*V{nwvOH9B`FF`UGI$C;JWn&5uOMV?s8?rm z!LkP}FhVVL!qQ%*)ywbRA_vWgQ@Cpk0I3B@J9r|7b2mLQZOL2)r$jd^Bb*12p>9fZ z9nnt2A|ZaED^Seh!1-;$V>6?P(yev!+{{o^0T(w7ZFbzDs6vWDL@2Oc=C*_yXjbLO zzHotMEpexb?cwPjkU)?_vk`EtV^ zwXb2a+cp>82+9a-T8|6EFRY!QENJgIeHi*p_*htL zodQG6;qYZaTk|!(jMM?0p5?N8;CGTwV^w0SqT_;;u2HVLOwe+$1+GUS^$t{;8*j=e zb9E(78NV1BRn&aR4P(Uy)^ljCX|PJWo0kPw2r+~JpBUqI#8Jv@G|aSZ=7x<#+mzXD|H(GOk*5$rbe zJ$W*C%2r{(JnEmsEP!yq$^}O6#sP3E9CqMN>F~Ous7OFul5jpZf2ahA@r(V@7*KeJ ztMb60bc`SA0b$Wcr#b=0%(_-`;oCX#br4s9q4-y$4fpfsDf&q!gK6J&p!aQWUQl&( zR{2mJ=7E`gH;$_qxXJZ{xLEs(=)UiLC_8$iumIIUiDS)oIL0y9!19)e@G{t_eXTXy z<%n^uvJ-{8aFwGjvQ^-PVIEsEZIaG?V&G?BjEMcPl1S85{nF-8O6cnMdBDxtxkB;;xU$iVKFsobylRfI~<8%=Seh8UJ7uoLl-W(UEmXR3_g52 zRKL-wx7mawqoKNXI8YH%l4%kAi29lF&KZ!T;ex#{%?=%;fM=LkVJ!JfLtkUy&sboW zQOx3&?5!P?!xs1OnO+e&`>V)FHI%+>r2^QE$Z#zPgFtP;>K_7P+Lr&tXKe3)UBaP< zv4Cbq9{@oYLPBBD4uMSXk!rRw@nfwA^Be689+J~=2n5x@ zFJ-0+rj@ROfjD-0im*VrFQZ;m;@4>NCNJ}6<$MP_P$zn9l}|&Y zE9Xng+cfM=PB5X!um$>WK_e`hY*xDtw9W9+W%42WVy}>MjWctc`Fi!)(^c0RdJv@N zAquVdXp~@P7Xa&sGvv)ag_JHNuZRYmY(l*I>w8X0K&%zA#|~n{9vY3-JO3|t<}Ngf z3`Uf#gQS9BatPM4<89n5B2&Rqp+*#aibzL*kJQ*ok;?z`>g=QXHnlO@6Gn#UBjBsZ zP;kXmTJlLgT5**>KzwQkIu{~>bz08=(lOrV21PY_w=f@ipfGTx(gb}7zo z%>7pUX;`VO%2N4q?}oA7a&J8?JZ@k{<4Ce#nBCd}aYC%2RRb`9a`C9QQz}I%yq41K z6GQo3Yibj^p%LmywMk9s7#HgB`M1ElZ2N>iZAzG%9@OpmBc3d0 z*9Ql(h)-1nVNlliEC31Mx;{<=$OGmGzT;i`^-r(pz=}T!jgU(nb(<$e(tP9exAl~* z0i~JK%%IX)&QqZsDJqbpHyRM+bIeX4)rxsV;8-9yW%B%Ja57}D8DKa~Bytpd!q~_f zIg{ORHt2g@wj~eR_5jWc@8)H6$;jBQqpx)I&*%6nut&CQ71DbjFgyPd-CF zaFmMdRX52p-@i-a=UmNUaw+Xx&iT{%K<81TJ6KEfsm@{gG_zLLwHLAw;t6y=3eSzE z_Su?8BR*^aDFc5hq?QfhI_3eSAkjxTN)oJMe8okC9@7t&mPR>v{4H{)sObTDWy!RL z_(wf)bu_z4L+LwX=fll)OCuIz8c4UZ*`DO0pdEdnSt;{-?T1SA2~b}xSrB*vSqDnX zMgB;p$U(m4IHDHC)Q$0RgJP?nXlh=%5f-d7b-Af(W9}5(*`Si0l#jCtLiTxlC!9&t zz@A9$oq>}^WVpb~)S$B_`jDTx>ly`#k_uM|3;vk|q#US7CE)%)Gk-{AnTg|(L+D|R zvjIWd)cfqs8gM)%UN# z>Uz}y@{*-4@~T75-q3i7R&K955V%eGBygPxYk+S9Xg%s~f;d&hyWJ1@OW2M=+iq4_ zed(Zofz;;B?Qe>MgUU^oErx(l+(?S8n=Ko*yEf%hN$!Z(u?Ar39P9r03qG#ND;$O( zuTe^MGK*>tx8A3J^u#~QbYB+=OF0}F0YXlpy(AqQeT+W>5t%1?UGk?ZOLst}dmBp_ z2@!Jz26EDCR?D+qQKA$wFXaZoev!R0F`i}1k=e7dnnCXm$0)8N}_i_Ek|NCtm;PyQbTA_9ocI~4Oq zkZGhVYL50Tdk#?q{nD2~dEk7oa@n{{>Wb*2-4L0X?e)V07G1Y2jdDd;QJc3+-O~h# zn`g9twA?tO%Sw}0S{b>I7*Dsu$e31wS zno)^Kg_S{LJ9GzlKsjl)5{>;+zWaIerzd-uit+?;a-mXoURk9xi27q|F-MKF zSwALt^3moLCmOFqG{%cdnBy?S#1#vyJkW?4R1IK8BW1s-xLVwu4gp4VUq6FP;1Q;w z^z5oxQ9=12pLtroa}3R!mx>93#c9tz(!vDw89{f&u++Bai^E_ttY+gv#jK!oeZR*_ z1duRXIyg3=MhAZ<8yTe*d*TPk)ebELHbd=d)6m)??TQ7B_dD_F$q_8~_@c~7`=SR8 z#+qZB1#Nsss9h{9H|68&;y!FygGNa?7w;fE87uLEXKM1B;!w0;n^UqBeqB}utADSX z@A8;f37|tlGUO25#eSdQjEA1@V_peKH?xSe=P~T`Qmo4`!C=G%`j_tP8ln1%ytt`t zgGnDxT0)lKp0Z9>TuaD(2SJ=jdahnM=mRu8^h?zHlS0V!_LUTgZD|uS87()Mp}nDN zZEJkKTt4UhltFzBaC-6QtZHI%_kgv5N(3@+|F%jmfZ+?ogDM*s=4JrVq>t zM20pjt<)gmqAscY_%h&0wKMC)f`OK*L6Xvxk=(ro@7#P5v+h~M)^gEanc|+QIA{9l zdGcfQr{gT3-MIrT>ZGaQ8=&j;6DNyDB1DmZfnzej>Znwjrf(_vizlOrQL>H$R8UZE zIH8{2rKhW`uB_##|Bo+V!|gLS!IMyPC>oaBTLO?z{CnYWo+&^<$&h+>PUyco0h&dB zdNnS(p!^>Py|dfCk}Y(V@ES3fLGxr}=kU=z$2dl&TZIV&ZD5!VzViVcO|j>HmkGqg z2JZyuxLxA53sI%mV%ITOGIYCOQXYPAC^+Y>Q^i*il6J5J z^nryt$s_ykBC#$Odk%*k^ZIUlDmOA-=4T^8AwSj&^2&$)2|2CjnCQ15-Al|XaKAq6 z7poMDfjcyT;|)Vzh}QFV8InhN)~4x-kh|JtSE!k?LOPEe#~fMF2)aBtWwjYbWd~F1 zWqXwn4co@h^X&>JVA4|98|ecAjJp~eG3gD|#Ly5fKO=Kw#F|Y9BJ^s7BACmGLjhqT zvcd+AZuzy|urjbFIQeSHF%SN?VLwmEkZDvlE>A2G)e9{QHit1*<>TOzwzfK=H=F|! zaX?)m5rv!-@Nv`;*3uyTpg13Yy`$*41%=FDp$^AOiTvMXT#OMVlRasWx?PDu<#%+s?@|n&(8A6kNcs0W{C6EAZunPp zcOjZpruun4QA!vDI$tkuVS^e5PY57ih$pih>ls8~IvaCX=s_ek_LgaB%JIz-ZtKRR zi4eN=>}81xjn5V^R_^6$j56d4%$dCNAdreHB~0v&jMIk>tYxDmPdKz47LKW-oiX<#>y15%R3U<{+NMnJraY2BC( zvH>FPN~7C>4}pgRf%D*ki4+TH%M@$nOMg_Jx`t#vEljL#1@L8wl+Js_ zv`VD-?v-9=0VU84+H=+Xo%q}~$VefFdabx5r#%cmSb`Fa+}9Iy4R($Zw*&Wr*RXNx z^8@l|qwxtulJiHDn1I1i*^tl5O!?`tlI7I;NR);ABp*ftDpLv~00`p)we1NzICDc*ZsH5_~spbO~MDIlR-=r5{ zd6OBwPE0~|x@TK5_ZZF;y1tG)_4tlpx^e*`ehIK^)n%DK)nl1hWy$jBHAJbhai@Sg zqS*m`St{n?v;f-(1KkFZPZg3z9?LSOY`jGG-(^ss4iV!H^4Ry_?91&>*EfUP-z+-7!KC4>5;`<*t*Z1PuWTwqTSwCL%%*ez^$C6<@P?&Us7l#3ccCU`W;on2u z!Y@MwVi4S*R&Z)R8qUJ)?i|9OfDE$E38ugJ{xaVjgUj2%*T>t#-*v{~b2c2TLl058 zqrSLM?zLoIvA`iM7;`N@Uwp(QK2BQvJ5#`2n%b2x*WUZ58)KD=&<9JbbEIDC3Xa%w#9u~Jent+`;R*A zd}Z+bmHvD-tm&A7!ni~;aJzx^l~t|P0H=;^3(N= z1t5drPbg+Hpnz+g&n0is@t*H&w)52#AAJcRv&Q4;_wSRt`L|Bz!`PDJz}adR44FC5 zb>I8-*R%7%xbr_p&K)pYvHQybVpIl>QQ_97TG$Xrvf|LLSsd#S(SM}o04O!&y_1=v0IY>db&Aa0Gx9{^4qA6nM+%2SCZ=*G zm>BXlVXs3$EiQi2>2{j;(zMdJhI!YR|vz$s3>XIE`EZm0HbE0JN7f5 zC`$L@uZ4gng0KRe@$6+XM->vIdHJLB2{3pFmSzyxJC2J9RpRCJj#c6b3je$=pik+) zWa@Nh8#O?of#xz98=KbX3&A_QF8*9kR!o3l0}(fsBu)(eS5|U=mnb>C54U?5Fh3sw z+QT}nSr-7Z7lUDkXZQCEs?A|@_(ja<5e9e*JSh$fx07#WA+PmbQ!R^u9&b^Wq$kaGr*P)jydQFwk)^oC<;+hEwrv+Obbmv;o;sHr3SMg@VNs zGkIRAHFgVHB0Cesf_TclB;vE4zlcP!N47sU|6zpG83-k!17Y7`m(ofrI^&6Z<8F2S zT0i7K0ih0Qf(K#L=hyxvj-M=5Wd@UnvISyQpOJ2a%AJ2?g+dV9b4)${y`x9~@u*H; zeM^m?U0%DG`ooUUP;7}jh6v;`nP|Gg%{G1;K3EQ(LA>(KsdW~!N5Fu+8t zR<836OueNOEi^!FwyzVZxsQ*Bf#r|cqb!$5&59OmIWhEKT=+uj8-ju}5d~<+s<>Rp zMJ_}4+^IqI(?nE`$O5QKw3+zp@kubUR&y|@nDCy!*4l?$z2XRS?V^|OR)!Z9?C^jC z%^@sz?ii@Z5r^pTYGbl{eFhgUh}0Q9l^QO3_42}DtKg$-%%&8eRUT%WK1hK_=fnBg zr{vuNgJ8kx2PVvl5QdKix0*cuzo0xei`Ydo24kUmK|?^;ntcf}PeN{T?dqGC)L#19phc!Nu+6NWG+`nK#|6!S*RgItBzPQfLBO@COHvSWt|H~f5I8wB`% z)}v>KsNGzPe%3L`E zHBd^B9x0p09Zzk(;li449eDOOPtlI;;C|nW=vwc%gxP?ecU4z z(-k{LXc?(nai^wab;9UXqz;0wxEtG*Db1FPv}e0cH9Lg3nu{g7)E?%KFrIq(_KqF% z1Rx&`T>>Z};JLCack?xSA1eZMjl>j4KI|r2Qt)sM@bDOkH)Z`}9|8JW+@D7aRMb@A z)4k8syiY!n1j~`K7|AgzgYc#+-f&x%c&);YS@VE*LdqWC9kQ?2U3X>YKTp0(lYd=4 z!yDD_x)QL&Su#KQ6p_*l@g0k?{4zTGB#^u5`@B~$ zTg)8~Ysia#uRDF$8Qo5?<@ND0Qa(^sffz~ha5nnwsyF`S3~4y}ySp4*axgG+6hdaE z+#s)+V^H~0t6)`E3pCMOcQ689=@jM-jhfWOUQWRhT5SgrSLgu97SSmw@%y8!KBfyw zd9^(ycfIg1v+1$mC zANykX&Cwx&pn{v>Oj$JExJlwK?sN>2b-Da=2Df@NHY$fQ@zyye<#X~n`!_%T&Ikj` z(8PzNV6Y4-op6l?*5L(28t}owI4aLu85IdWXOu!FlJ+GzBJwj!i~L96^)SB&dk?P& z<092%csYBF`^oM5fKfAB1iX3t8aA;yTsYxAm|8-SC4tmE->7GYGogBpbY#fS#GAUm zN8K70s^3%AO2uuP@#uAWAGCUdsQ-D(`o{W2zf+2C=)vEt<_lMhr7w^7tcJM-g;r(I zMRQ~ulmO6t29rk9QwZa zJzh=b>%q_4B3(sW7VE+5K9mvmTTG^%&2|8? zGJJIWjEe1Gs~QzP=)XsL4MlkLln!zIQMd=wCj{^)=2j=&@lo^cmK_U2 z)+e~l$#X8$cNqh1pwgxxQ5SJg>8+tPvWj2&e6MDO zd%^y`e1cv1#`Z7c*UIKoao=Jlz@Z%u1ZbLTU5mjrWb%G84474C5WvscS$dg+FIyH) z7#Qhm2CK-Wz@)WII%^81(}XH`rIH}CdswmDG8NzLU9}xj%j)AbBI}rQvIQ(}S6<^% z3Uyh6aJm5GZ01N&fN-G=g@Y%taZ2jX_{ZyVYvEs$S>hZH`F^U|MvaH@Qs93j{04CG zxpWoEnh8vaj8!p)#yN%3BpNEzn?PZVG(egjK)e&45D0Y08GMgQssgPpo<%Di5d295 zyQ3_S@@4oh&pO!z_cfTEA0fUZj8%Rcu}H`ck+T+DnzCKu^+)d4`rDiXtD^P`Jb?0pHZ1T79A@mTbAcKY8B5UPdMRA%dZ#WuqpS zmKE9Rs5gdD2AyOy%F$nunaPS0rItVaj3Vpp(t6Qyb-~L#VatXOW+;E2*5;bs-RX{K z2fx1PrwEf_nzah2yu)MzcTCEbm8STd(7uOMcRJV15U|T)zCfZ7&Afc}($?WQEVq2v zI~xvao`6>YNx;A=AYVe0vyMNN{3(F|A!dDCjixMH5QOM61PzgA*;+1oi>hewod1*b zbZDTarA@9@jZ)?UWw7NVmn3*8P0#V)8(%}M&_`qaGxCi07nAM8Sy8pob*q-gy)hUTG0wNP{i}P?YSa0z@S=K;#y!HvW#xM=W|zZ#Pbyf zmnpe1L$Q9f0f*p1?PRx0ryXmaq zO4rzYM+Ifk^I_I5rvnH$m(1H?#Ip)>vTUl1hO9!CQC}#y)+FArUYq947n5fM&p#W5Edl73tX|>rh})su{zs${0>j$Hg>a zXe0h$Hq(MZ{dH;C%pu@rTce(*O>o!Licw3u@ea+%57n3I?l4YpmUgdyuLm=v5SC{7 zXXK4Sk;*pGsxG!jbPH9FVKL>)Ik@2X)RuHCk5ybQ8kYv0!*J2Kl}e|V;(#NW@!8p&x#g+x%rd?ET$98epa-JpZ7twY4INdI-lEyR-DF)m-YKW>Dx{3ClaNpkpp^U2Aos&zAc4 zGXKaw)DrJHYFv6Nu>xr*Do*w_KC-n6TR>d9Pqhd(N+#Hnql^}#7mqe+I12om*21w5 zJAu$e@2xnc;nTej-K+teWasayQ|wwbu1uZlCBy$IhrBMwmuR{8=-nQy6bSxRGVOGb z%Rmj)K0-iy-TN6`!TsA`u5W%;rIkSJ)n@jJz+Jdw{2%n8^E|2PIUHOl?|fcYJY2YA z+{BZ z(8fTf;%KA(v3+>Yo3tq2#L$+kUM102hJ{vDZc=d84jzj=d+B}Dzuzl$)O|Xe z!mq(OQ+)d%R)ZZv-$Xo{*I40G)GE!pWRDxKMs{Q5iu=j>BZB zVPQf(p5JD9$dO1%LTFPjis+dM5SH7;e*tt(nMaCR@>FB238k1g!w1anB0CZdrZZoj zC@?{sqaKpXk89Be@_}p2b5#YvA0vwbeGR}+08jy9Qnvs)kYg3OLan9qrqn2fqSN~o zQ_E2EK+q9WCWpP==&NPwx`$_=fBAvw2a*6Jq&UJ+g`RjaD|8XM5P}m?aDeVnSK9SZ zcuD8+Yy^B){4;v-b>1N%nfx~z+*01p!a9oz5!lVp#)FnZakA{t#Q_$QM*~ovB`hTW zQV+TdJFZ`>=hcds207cx73pW;vSO_ooYe~i{qtvCSl1=_)KEj+Sz@amNp)vhVLNMoI4R(-@9?^Nd$a{S*LXEnAxWqD>@KeguV8q zr=d228;eQz2k7I56K_v{8=B1BHzMr2?9}0FsGVL+^6NX*2h);MoY4C_p7o zbRX3@fLCs;9vpmou$)5qG-?)!hy1JPV~q4mB5`?r{qvV0nb;K2uc6D=$g&>*M^Yu2 zqsVYSYg9gZ*od(4=?|C{#fk~Ko=}C;@F>YoYAiND&^vxGfVAsJqS2}BKUW-oZip4A zPGVymx7467ncAE#)$%^Y4)DNw^Hl;@6(#DtyIzEXo*;-j2?lv_x8WfKzAp2iT9rd| zk9&q#Ri05FKupku#HKa9z7sxnjyJ$)PoFN)O@9gV42!$#sJ|%~Z1O0Sql4&>Bt{MW z6x$`}_b~86=jO}R01cL-vr9+i!xpHVsz2lm@lBYI(-!P>NU@jg2hMSpW6ZwLMp;5s zfrrpbU{!KV98iDgKAIG1;Y=Nr5p9i)rp2jhe zDy>6k$z#bdHZ@THl$SX$U0swa-$M=6uwi4R zxtePW?R9DVXg*eot_oNuU}0BQvnfgl$Xc%FGqAkAOu&y<&DZL*!53o4pVMrh>jnuE zje+GsXnsQXWXva5t-uNiRc#}!K?{)_jeCHv0HcO0v;I-5#bI$g#nyUfYqW~mK8kMj z)*cwRyBE)_n@~05)ba)@wBZ>r%?K-Fw(CZzs0QdP6p9poQAUlvaY&yALndp`5RC_F z1DLjeA&*7*EO@~C)~=95&%HjB@W5=5JOe3}Gn~MMv1QJPe`3YKyCiSFVxNT+tdJb) zsk7_=y>N6;lFZVoP`ydfb`~H&p_P>@3`0;{wfi7emb8g)IywirNHdX7ktSt2n)Qei zMxlzG9P;FVe4QkAmX8{Zt>S2mamcf-?B+??ZqDp+$QwtNC9VsXh3gl{yx;-JLx%=l z@xY;fo45{1ewbSpgg^G97h#PjskA`!ZM-iqQRuauM(ZFctwyWQ&p6NK#DsqHP^INt zSsV)3H_ca;RzZ05FmJ?wa|KlfA)$^3>&A1?EV03BYjjsTo!j+~vBzRE;p+i1|+z1m|aPzg8yKN7mUJ8X-y#3^* z?uXD<9Bq#<8G0}u5=15N>0H(%Agbn?0L@1CRy7#e_A6}EO*f>6?0$+@eUREvkLJlo z4jqG(;!bt>Rc1VfKFU=m*#tO8frT{#f{uR`n$}*BFGBMc=sY-ZUEQqCGcKmtUq2jm zbiXphRqTlTf1Ilh-&C=ZD5|v-LZ(9#8uorS?SyI#>1iRO^ZVHZ-L!YQw`E&)f(UsS z6n%x7O^n-3LF>m$@o)%*f zQ(ZIM5Cl=x=PRY02_g#MHxLkNXSECCloE=?akA=^A0}!pQ%8Yj9%e@ab?|!Qd-V=L)aV!zPA3K<>b!C{qP_w0?p%RGnT0k7Hg7eN(2hVb)xd(1$sj}t$C*C0(FIM{>0!dy2^5PV#qRRN$0Xa9o|3B2k7jYD z%eD+v{3|<_mO$*m=_UdzehGmM7N^sF)!2vYyWeM1){+8WDAlEA3@e?EegYPUq`4Z7 zpba3++|pF%%OOk%IkIc?IJ>M0vlTI~4X_X2U;2#C7Vs#=cI$sgX!q#;J2+b6%TQLlUl0t3b^F>8&<8)(Ype<^s8nOzATpUUiif^;Q z1*{+Fypf7VUJuTgkyM=QkT8eZQ2)b4RB5QH70odqPb+b_OnF+d!q`( zNtpxaEvs=gxvs8K3X`w3L&_2;F|=K!2JqWaz+N^nC^^Tq_9(-XQsO786+mDJ5O)|2 z?;{^&t=y%0rTWdjl+Yo!bv6EcePw;>%!7DH$GZl>qE5w|q^UmCtXgc(!h43@%I3I@ zpToTNP}&I@XHVVYPKWX3P~gOQE&tv_Jw0#vGkEqefNaOgblFR8=RX4R(8lv8IzF&K z*%@xW#@9)j!jcaSV~^ZH9Ss2~mLDoz!8u0OiXR}o7e858$eag_WmAWBD0tg)I^1D5 zayWDe56(`q)^i?$&_=!D8v|^5M||vhpDY1}Pfh~mYZ;=xBGaF%ukt%zAxVV6EqQ0d zD)J>usMWimj1&N=yoE5+D~*2-HR%Y;~#AXa6k4BxG(4XryPNZKDcc zMsm6uDc@}$)R^ofKe5*}){S!v0^e`KvDwzRXr>s@%O5NFt90w+>$VKzI3PPQFj(l? zL~b!qU0Ej6@SASX((x&rZ$Flw`|t`b^bCPn-c$lsBBc#FsceiEL--&K3uuEPbb-n;u!paQ>9aCXXJhQB>7jGZ3@dXj>u?-!mKu>~+ z2dERvw7tjqG2|>(`3<`J=mT56(G`%B(QkbS%eNOJmgym1-S$mhlD?7kJx-_`%~2mq7Ak(}aqLI@82*Ymk~jw$>e*FL>2Z4V!F2jU9&e_I+7{euMx}3B zYTEKUz0|JNNAuAFZK|+4*lR()cdTaw^(k>yml@z+N9gzKk4M9w2ja_z3ZeR2{mF99 z%L*;QptKnGQ)*Am9=staR3%5I)TW$DBG>WB|O# z@%DcrX)DcN0BKH3(Du4uU7s$`|lmW%ev z2ce@9?eO(RDg|e#T+L zr%g9BP$h0CZR82;ye}tx{+6|XV-PWgo%cvoL&%WYCz$Yd`Ns_7c#KLMWpoE`w~g;nzQ&}%f`{?L?Mn_>z2T1!cX7)?;rpeAyan<;yT6SVSS z)=w|Dy7>_Jq_?)TK>epA=mKFqae!yb-k35Aiv$T3bS%$3{k3LF-BorPun)%M!m%6Z z0PvZ&5ybYNxI5bQ)^wrLpei1;JoQ{ z#us#Sq$>smc~XsQVh<#NTh4BDV2EXCCJ&%H2u;>Ts%ERQVfFyE8^%?yXqkae6Vo3z zvu_;a2`7$E+B0T0NtpFyE}V^ggyqiO^kqpGCS5qh@LEdWQoO zRTY}@9Hd+Ma<5J@`<*$RZAZAPj4CuysL6-(R!xdP@nD3@%lQ7OdwBeQ+&wuRqYh?7 zftDOf<8R7&nl_Ogd!Z#bWFKu$4Yw*aK$bpz1P=pYSs2O&l-9cZbI?HqmuZ0%XV43X zXSE89%_8>h>dWP2+Gy2lCHxyhdtu@X9LMitTrX&OOoaj1x{2r2R)|Y zck{!Zsb`Wk1P8(0c*3x}n0Xg<5o41%no;3M3AarBr0fX{Pn)D!?+V-#xB_>{@PB%p zD1ng`R~jzZD{(~ENC6}jDOC`U-RSd&$Zfz4lUioHq+*;Di5)C4;+vCF1c6+)wj6|zR zzGA=#O(^*D5Hno7O0d^Hi9aar#@V5;eJb0YUc}P&rT~_M3CKDO!cN7N+ zyZUC7G4u=%cL)M4J-5PSYYfqPPWnP&ynG^})noYeGJA;>bdjfq=jO{trhHK^#Z0Hc z<^1TdPc|{5A;YfUHF4qu#D^$z&^+`u!Z9pyo2_Ct5iWb<*1dIi;Ro<22z*OL4|8z9 z!G>-skElE?vVk1s=d1Zh_51X(f~& z*qouC=@BtSp0=od`xa4dS!YdQg67>5i&+m@L6l)|PI*us{m9qzw0^_e9a))65hRtE zN0HFdvmdG8l{-RB@#e0mkdFKc$R8LN9_TIhx;Ya_6Nof6XGZS{7J7TLKj+!ef&i+ zgAq~|!aw27v%E#|)!ucN@dpMDH-BC}B8y6#U2rOKthABcxHdeQpD$9O6qzSv<>RTY ztUC59%Mja8NMBMM0(fa?%YJzeT`QJSOGzj=>KwtV|2+TRBg6M%gKq>Pwg!G=!NA)V z{UoIU_ynLfd1YapRr`$1hHKnp5?Qi}oA2HPo*&Z;p+2&bRr572Ra}oW<(D2)Y%;3P z4D1~Jgn3%ekz{-b>4}{o_78V#i*X1njLX=|ni)Z$%vl`vB5P$-3hGp%qoHzHg8LG^ z#WN1_9dP;XI#^s6obRYLAzhjO8$b31fcy}#l(zHW{G)Ef@|*05jq+4HL4=52!ZnTh zZ)DKj{oV0gM;N&HPh^GzL?)Syzs$XBSf@5PWT$JpgaLl+)dV^Yvez&@C40G$0gfgUdBG!~A~4b$03Jq=b9aL|vPM9iE4VYDM5B24lF z1{}=Rw@4l{=mvI@eeXQ3X@J*zI*p2Vz6tJ_<9(U*>5Q+>`a{$%Sb?yJ>z38TuV6+Y~)v~UwQBmGmDwAVis^~NlRUx2khC|P@s=HA`TNvxSHkf2w|SX~n?U9i0Nxi$Cz$T&Rz?G`5t+Bb~-Vo_Qr znqD?J1Yyyb-F2`8#`pwSSQ8BGnCBXHPeO}QNu0mN#cJlI(B zHDnn*i-WM04*(+I@$7zfL^zkyvMZ2gb(xd(>>9-!r4ucaDmj2c-2CP|ploIpvm{a5 z=#96+b;v@S0}Wkd)09CMtV zmyH|0UIGvB9uvfMBAeV}x?6al{x5h#3?srL;XLEeW!zh}ul-2a+u(uiZQ_g2SIo14 zl{RlZN?i{)o0iTT{8FoUW%VG#yRP2?oS=m62Dxw%GbGc=C)T{Niu%in8=NU_{24L^ zO^1hk29=WvNL;OGb8x?zfU#u$j3Kzz(1f$uJ(#0P^;}aFP?qu3du6V3Iy9>A_yr!i z5>tT|u|_g^Ys`$zsm9d;(iXZsYfICY8EGC_1gMv2Wqs~j!EXBxs1+*2RR@-LXtr3`1eoWv+2-y2&A;|Lp)MQHoB1u*e*S4snsGH3Az|bR^w1j zuy*Qn5A*r**^ugZT%|eEq&f5EtzQo3(2?V5MYHk4<&)sqNeqDvSj?V-RftVzxsWnI zrDPtwZk}heiiMP+wW%)v(fJP*H8`qFyC;`)=PpP8b~Z~_l{Ft zNS?BWq6Ro>kYLIy#CC-qWFr`Cu#-6shtDU+FRh`$KO6RtalBsp_Oz4N09334R_9@i zE7Az^R8+@Q1G~ z46SW)6=0n2E8U~dG^uqZMF?G%oNKvAYtiac&#kyQ z0_=~@&O9953?@+vYvU<~yqy|aw9~=6!%Tc*=mr~<5tvCr)L97(x^;!VJ!+AjVAw(j z2$>yXJ7XZ`3GSABx{p*Mx+!WD<}cx?;74puTQ!i@R&-9s%$%0;+%$?K7UnR5Ll0Uw zuzcbP2&2c(v@3G+?w&E2tb2FT>FOPL1$+*?7JXc6QrRU8f&23>VJLU)JiJXl!}?*` zJwE)vc3V8gyVLh@|2|!P!3bzO-nG8-j4g_+t;$zhVrw1PqZ)!Pr)#I@oZ#@K*N1~w ze!W+Csq);fgSh~)7}F9=b-VNO?i1P(@lVV^X_#GQFW4eLU3XI4LTWH!t$bkE zxAJS(JZ>o(hN_DmxqQj;Cq1}GOXNQ(2}@OQZX8J@7(S@;I03_(y+tO*T&4>Sm%77f zC8j*_`VRK%3Np&6Qdq`NwsY?TN38AyWhR@tlaE;@vn@|6?NE2j9pi@OZPf3jht+t= zUdf@KRZdlaG*lMZVjHM6M6QISo$tQ3k;tc*w(>?IABauE!Aa?)u*?CC zgLTMCSk-U$E&*=`I4L{nFJ>GLdpDEaHm4G56X}7$1trmHpSqH}Nr#jURcKE^uNF5r zuijWOz`QA~s`Jh#zx)UJpa=|1zT%ESx4doh@=&i>YEN-oFpW7MRQAR0MM-iRQrXKD zdp>A(aQA#d&F`@ikN-OThWA*m2SaS13qp*RI5>_)_*$|4U78K{yO4GGp#O%kH6J;) z=AGfBm9BHgJ;SS%UNS|!MtLblaTQS$Ds8wg+=WZ_7{)q+qis6;>w%k$azt_sfviS)R2j`W=oC8d>32_QP;bna;wygm!Az z`R!1Xy0;d{s@7=qSiPsuPV6jfz3qDyrSFq*;)|-JYdHk$Rpv@JT>;wL8dt6EUQMRcO+rIUMNcuV+h^iLyfH*vhePi?y+#c;y2(? ztf^F~xW?08{xairDkQ~tlP5%a>G6Lv%(Rh$4=-+@c4m{wc#;bn&79q@Ad6oXg83bQQ!$!0m6eE0! zvdLWx`5-)9RvbyY9KPTCd|W%#?7BJf0wbWd0RDStZQGe~U`3q54kea3k66q2jUHpJ zex6Que17(6WWA@n^T~L1H|xrSf!Biu&;(`v)W7QAVD`rU^)Ey{!u6?D#g8d4pdO~I zQ84HVIsVpQ2f}Ad2}w^P2Z{w0+Yx@R)n!aM^+b=OlmQQc4E?SUzdQ!LGmuY=#)62S z9yC(4q7pc~JVQMPby5q20+#||Gd=S1n28J@cTVs*tm1kLpc2b4_O+pExbg@`TjC-+MwxHDhHb%24!BI){Kn-DdJpF5oC5mOlqQ&z1lZpO(aW<8HxZRsCiKhlu@-064VtIG3GI25i=z`S0IO-&%M@(HGl7&nwmM+f!*m(c()x@0p-maZBK}^jkIVhppoIg% zrPOUo0f$NGdJf1(>T*$q)Vo}m(gnjtR_kgLt!P(6te$EdrPio_zgMW*w?fcjuJMrB zi4uDeKlY_={}u0f-^{n zliv{xC?-Z1Tvqbkv0;hC!#s<+X;w1TOJd+a0SEy3A;ju!s}^znA&~r!M@ur*`*J^} z2j0l$&^U^5=UCcP>*PwP7xXWiNVV|jp?jEaNHj4C5}kQT))HLuUX`{(Ds=pRqb&!- zZ=b-_KL&RoNL)E3?s10Phr1fT{yIMTpW|v`lZFIYb6{W4sK8)QlOFSmJOhlrQF+V) zH9?{jL5W2jxokh(l|}2y_YIJ-%#Ki_G`oFntYO_z#oj(8jZ+t>hy?g@`|-U)0e1W_ z(w%LI+Nvt?ZWmH@ZL}HkZ>u5p&lkqG`2EB9RE=OY1QU3+Sb6safYNg$FrQLZSpH*m zI%-X$#`#)rZF1kC#afoVlMRO3$3n@zq3_+3lMX7cNPDR9rR5MilP_K~as-!NT>SVA zDy}h$ZR|V=%~WQGb>pdEPP##?5L$N;>Z>8y2@z1VW+UYFsd>}zH&P^!yxuRD`awD@ zXJ0^$bu+mAjaZC8#KtW~(%mOlg%F_?)gs5N^uc`M$gQYk#{kC)1~j(Pc0=@M%mDSt z%B6o^|9K0Gb_i3!It1a+Lq)GTAnvXW$3f}WBd%3G>4Ju_@57u zm;(Frl~}wGZy9xip!*3dsDl8LIbE5GlzKGp)ATFiwQV+s%@AxmB&>Y89*Wt|&-2N+ zkCO*DWN2Z^nrYx83fSNdSoFQD-&%r}JzsF?)$dDG8K6`P-y<*)<@?I)MI28ldI_w? z-bjs`S(#pDOYKS83Y&(kuED2%fDFn};LJfRv!=%~A2b+7(SaxVilXlU4CiWI3FD(P z(NtsmZCz096a z01AY+_ev~@gXDp7g&dPA)Ih)D<5I~ zQmT&hek|!X?`BhxS8n-s5zXu_>&v6sA`$8=hP$2~1wWMScKY1+xHkP-9xJ*7=2J9N z1L~9|0dU+i-A;?j=_F1p5CU{5Po(DyJ`A9rt7BBrX$c#3dK^=e@a1rF$L7nag!APb zc3Sx|yl@^}k2Vn+F+#ctLyr!}Mo!!TfAgrDU=O2>LPmVje~*X}NQ(_HM)-rH@y*?M zi;l4I0@0QJ=77vX^ph+n-?G9^v<30>G-AkOcj+d8ZI8>uGDy!GAycFdL92imXK-ltgtp zQZLTdAknb-h4Kj+p6sX#rHBLGPV$dzbB@H=b*Ue`_A`9M>>18*2&ZfC*fO=0x&%TIJ9UE@vZ2yu{&K8Jdys*rj#oRNH~=@ZkJbEHYINQlv0!=%R0vgp^<`Pk;Gp z<#&5ujfcx9mTYz)ZmwyJCAEUOZ1Om+)0uD7>P#So#+dAYd2>s)3)VPXU!DK3cC{R% zlYOm+<|?$PL19=MtJ>E|BCTE)a3`S)u+tf^%Rw!H*0{vY%o34Zg5|VJP|(f^O#+$Ea2i1k?R~;nC1D~B9Z=}PR0k%{ zW##~-ts&4LXRIx1ut9T&Zc&dE+67mUYxI!t4w-A6c{d>eF#@R_(h_L?dH)L%akIh8 z3aP`^nL%-DQN5bZzn<+O&!>&*jBPE|lqaafwesej+K}Be)(<+-2rZ)1ASwcfX ztBGY%U24v>*kGL#l)E%3&?FrAR;KM6FL{H^#^S~!@5)l zW^@kGzOn-MH+hI}P9MnCxdpEPrWd7Vuw;Njqb|D9(J1?jQ}WMOi_$&OFG!+7>GbDF zJ`XVxX+A|H*(@F2(h`so?+_?oA;VvD*a<)?<2dYYwJ?qaV1w2clFESY_@@}f(t&JVj=L-j4jnB@_@7sG63Ws zk?`V?Q8umhLTc~IfLR_e83@f?z|VbyI6CrchlaBp0Q7QZxS$}iqEGh4UYQ{#+Mz#q zQ$LpNeOUiRkS~3ryb_=op86z)3O>~O&j}}cqcs)SD=KFqw9FL(Q`Gj}ih-VpMNPEG z#2zFzzX5x^qz7ixd$a~4Xjv3=fdR@Ee9@>Bycs=~t)si6r|^UcV6s)Jq|QlbF97NX zlZXf$D^0p|6BnW(PhbR^%|^c5|190IcmIJmRHwa@b{Si$$Wz$hG7SVNrVf1!NRA|> z(3eXrursyv5O9Xs)zUz4d?6l9FLB|+K#vmMIX7{1dOeBf?NX5Uj3KffzM5TbW3tdP z(1T*~c|AQIgU)A);@ycpU^W_k`XUsI)C1IL^9APnpg&R+0B*zap{8_$uE?!8(+kgw zE@w4(Mqts zXYK!(wSUbL1VzOVYz8WypQC&p`uw?#P40tt;gy~NyoQo2qWoH7?@gJZdz3;OxreZ~ zIk4gbd`Rr^^@3v^`5<*Q#Js0%TMGymkCb%~v|O}XEs@_0`1F`_a~;WChz(m#Jv(@m zn2d~v98cb+Oqe2xL3Qa?Q|EZ9!DsCndw-r?9p z5|c2oMK;bR?iN^WIce?AfM=nh9Fb;oRAVIzo$p4=MZ0$cATp@63Ppyg5x0=82jd$` z(}D1nC`5^o3Ph$fRI-Uz1|nE9;x%1jSgn}rVI{Rl6 z-7oJYlo`JNG+Xe{+(Nwdh?w2YTn?{aD~+BgMP%2%X~N{?*t1C6JxikWLp7L~r#9p~uU4B%U=vL_~lxwnbKg zYec(QgMV_Q?g^nXttO_8Ivg246t?Q$fju6@{|BgFz)XcRhg zIbFbUX>*cRDKFGAxjqDA;aBh#US9XiZgb@l1smTi#CnPqg$aPaM79^m2Wof7!GL3h z{P{vGgx;GS6A1SehiM9WWWEak(3oq?>XNvonr?(~7~dg9AWSWvyk#A|FMwjR1l@TA z3iHU+Ph5(Q^BIK_MQ2Wz;pU0w|4MPLViLIJ5mGiRctQ0WdoZKS?n+U4Xg-2BDO-Y) z=|5ttsE#DFAlRGV{V*a=RgZY<4QvhGgeOJt17$M$29X_hy-bQUULqmem668=HQm^f z|JmNYarbxKie@cPn8g8gw}Usx>Mk*gBRWC}FXEKT5`uL~7+Vjb`d~~MB8Lhcg*7Pe z?A5h~O~I+W>sojab{$(3jEQBEqh2(C3UVYA6l7VxujXq^y>cu%9>~*cWA-KP1nz1g zZ{?Jl9fNFSInnA_cHI+WjOZj*;taMgoLyYpSY+mYB@|j#fzFHMrkicLOy}_Nfvux= zKMp_ipJGN3&FhHx!kE4m>5BuPlI~1cFuYk-3vaq&uh7$CsdXpoh3B&uC0ZC?8Qpdj zmh{K@>oWqnIcVRjLRYcTR8E$sS7L2*u#!1fux56&y_m}<)X$09kH3UIFUYR*`r$c) zkzjB;A9hX$l{VbFIqHPXYo6$1g9n!@&1{`^op6(2K3PZvM+6lJAbnEZ?ciO{l2C0# ztou?Pq*TMchi-THi&+UHeCi_3x9#*Sbnn6GcC)9_oUKln-{>`Wun57Pf`wiSRU@@I zx_R}!#l|p{*~kBsF;siZcoe#+BVe5A4|~Aj_2r=V+xY7GqR$*FvMqQ;>%%@lu)2MM z_tKEQ7aD6zPBH+IK~v#m+#Z|YCk!G>MS&>y5z`lyIMgaO={|ZWHQ3340R`DMp7y(B z0U#md5VVz@qr($rDMh5lS4JlW{h4o*=T~}owovdW(aI{Ja5F^X!2D784uiGW5)f5pJ6~F4cl6NYNz!RhHXr#AV zR8<1+B<1hV;!T4&d4BUXZ&@9v@)6uDOd}vE1#~J&4s54eaJ`f~`sPp|k%Ej4#^&jD zd%yfMagtHcJv-1lW6K#aQa<)qf52qB+>0zXaDaGUF&GsC3cV>!aDU$!Yg$nvPstN@ zNMrq7eN5Gy9Y9#`A_xnn3?w+D%I1X(si)Gkt0zt&ACzyW3jtsaE6iaqV~EXb zZ9w*8ZuNwU^VcB9_Jff1;Opxe|B;5%){TQxYpoG^16<|Hx5!oE0V-7Ehg(dk)ZYv3 z)=`EOaJRW7N!cBB^KGo;iW7w0CL6J8&qp~Y6_BT z5UD+$0NwJMB?JPrcz+l{|8+hUO(eYS6lz}l1g3%jBnlOpPM1qZt-|0KHYEh({E2Mn z80!GQOM<-@mn)xvy6AfIG=JE3a=ulL?V}I4aqk+bv^G91ynT&v@GU9V^=9&~ap$mm zJbs*PpJwY5(z&oNtBSHZ_TqNn*ZuuTb3k)X5CB1#Xv=?aPY{D3Q7 zD`Q0O0Q^dtx8A_rN{o?^9Oti_AM_{!T_;pzVs9`}0J*=+3|_bGMI0HJOa)ww?JK9S zlz71E1^ycRWf1ft*g=ceX8ZXfTO?M2$jmlaY@gv7R@4O^9a15508q34e4S7K;I=?{ z&zBpG+B~NCu-03)n6ZRyW{)JT??ordYhP;k&!x=yR%DLaE1|Hpc>$V9N|!A z;dS~v$vTWB9wSJXJ}+-q7Y6I>!2$tLe!zL2WmOl?S1Gl1I?#%YZW*~TW88XniL|Hb+OQo5L|@czQGaHoHeP&wJzb)QXpN`&(naV>4>abn%Q~~Jtw#);w1GrNUf+PDH2ej{4J`@LJ0Y=` zKPUc1-{(PK>vNJtfo(wN{jR7Mc5GJ1d@9C27nt8%S4!aO^j+f!G*OxM3hQ&T<2`~h2xI>l?FTZ=st&)r7ZjIaC8sa&;HBM)(HtvMU z*-&U(Nca+?+4Kyd>h`QRxWGULJrdOkb*jz5(WdopF{DR3*ErdufuWBI*%RWyo#V=V z=rLHj*L?==n8KYLPB8+AL__)_M3?UJu!j(>-S?c`| zU&OI8dj1faiqI_Umnu~hsABkIA>#Bj2*I?NO0k|j@Tc++>hHol{52j3Yi^e}PEVMw ztYuh;q}@DCIEVy`FTa+9L5es%K#(c#5Y5kr+wqlX;i6GOI0s`9}(GAXbH#R_LxQN*^Dy zLB&`#8izJLA;^kgf+xhkW;xFK_qxe06>V7;<{d!CGGEQv7dz*4S@@p@yJCwi@t+`V z3eY||I;Ih`V%NKi8LR^UJ8)h-KGR_Wy}`4HJmkqhgkrnR(ft-v@=T!!sxPCnPyGNd zV+0A1(Q@4vnPKN$0J`Zz4kU(=KfI0qa*dyRBsJyJ@6k~v!XYHO0wojAyXRe(97GRn z<_Z@QO{WgV1UBg3XmYuJh0ABeh#@;$sj=7zZ9t!z%7CgQF5r)uO(4o-GRsky)>{e( zw`~bHJ0z&&&%T0Ei6R3pB8xQR$GVk)^zRQMc$*%?A1BG*iKb(R&|czylNHDD!adm?Em z0I~`4Pl!E#-zX7agdB~g=WVL5D27s@4{BNe2nfZS{@3fD`xkoJX3cZtF!a>r16@d_ z2yyzDywsO7aIRqn(2OVgfF2$e?hxcP$ZW+#7@RnFKu3a}IF!6i)}2im9(fXLuNl{$ zfpic^3T>7Pj~KB|Y)MBLJzgLZ{1-hQRF#o3LE)=_6RT**U5AHcaAhD@&0FH`duw3? zZ(!v>8evUAI4kUV@TN6X$Jifa9MrJ}RVF~?l9l=gbF#XEhf~F|Ui$FE!zW17>&vVj z)L054N^HBjI6Bc$NS4I@GK{sdf7KT=#{>7CmZ)Qx);4~P>+8$@89Fr*gCv`@Q3qqc zwnSB)bezVb5Fj(#{jD;erO~H^*BzTg29SAlCWZ!sfeOk%u`L&Ap?0}AXk;O8i}jwf zn&xhdJNH>uA{3YtF>IAv3`v~fHCnPzx(eHx&DgUkyY67${&dqnGnar3htHvB0dy&` zJ$VVdHWensS!Zi3Wq_n1WCbUq$qz0)Mm;=p`S5d6t!E1*i=W&s|0rXn`1F+gE!tMl zLxnWr54XO1MUi(yIhKD77vN$1EFgp;J|=7zkE+zlchW>v8`MM-VHP+d{RAS^sByY6 z;ez)*-7WIN}c6gD63j)(v5hs;XDTu!b+it#GNJ#5xm@N8WC`k2;&_W{#yp zR(Ab^7B1x^F zL-+rC`_`_uj%8bZ(H%%&$N7kb?C1sqLExS2FB(D!qXdv531a8h-#KSh_3B;^$vOM% zJH{Dj$4FX_?&^BZn$o z>Y_Qe$7`}!Z#t%dh5(T-)HcxS&s&Ti%K`jMG51jhNtK21hPz#+*6l%y_&7aaw>b95 zV;hT)Bkh}0y4LlaL=n{0evHfMwmW?!&OnQLCQbt4HF%PlDpkTUzEEARft`(1yr_(Z zn$E<-T2@ndRGQ-Hs06H+Y4m73%^L2q5A+PXl=wZ;GPUe5BGkLZD;+n@9KbWUrRIpy zXEcqkNr=FHbMPzjv30J}V3DzlIX1-&a>OY4wz4;9{28$}7SY9O=leRi+h@9#J~WPD z`SISjPJMit`DM?>5N9As95oVq=Gd5-0%_~q27_rD%-c3=fS>teC!=<>t}<3CKF7T_e3mA)E5DV+A+ z9!6ydJ^Bj2AD3T{``SV^ljvPK2yQq5l}P&8;91+iIz4K{W_!6)S^`2|u`TP&%nelZ za;+3IwgAU4I{?`S5(U%z?#T0P4k6t!J&HsS(tPdCy$G{$+NvFf;-F3bXV@20{u(UN zO^8xIAkjR>acNBA57F(b^7rWSCq&!;_k!nAGtXTTtG*CFdW~S;B$m;EC#v~2kofy$ zx;c;Y6qxSZ^WlgfRPTN1HXKl&diQXG5#WV^|8#mhG1UsRgbcO<1T;(e9Qu}HjtY?a z1n|GeRO}s9(5D(M(stU5e?|nqIJg?1#}bL%NT=JQkd9JxQB{0X$b$Y^PHtiFiP5*6<+n_1s6 z$ah}-#ch1Tuox|mkFzsVhJ4D!$q;>xCs!xn6~Hkn^XGsk=a7QoK*yqtPI^aAAcDcM zTH`nYaDMeO$5u{r()#sNYlaK9SGCTv?blLUa|NKL}2sO72?MN{Tpw0=b^(|Pi>N#cFeqR)i+ zE*HO407@Eh){zC!mX;$s##NM)XtR-C`(uru8H@h3iUd7#b(1gaB?^gRPMG0%OgMc3 zayXwp0$~1_!{tC)N)MLP<0VC}Xy(14{+Q+(tn%Z)xQ-xIi^?me?_Mj$(!6gTV%66=pbL=v^dzr|5T zKm%P{p10=bep7mRFC0FP%|ye9d{n=&F&MFK4XuvK1vxI|mFCibv_^O++q(0*Wk4bTTv`^C=h0 zi>Jb5^L=XQrLs;F-*&I2sh&nw0fG9Ep1fF_zO$S1Iu!;JDr|#3+^M zE#c8EKp}nk^DD6LIBbpP9W=k`nOoxbBjVDw&s_x;ce1kzEmqmTOu!QR2E(Uf8hGyf zRugfip&lU*)EcaCh?=oMdD7WFMFp>+n^>?eXNuKaUdvEu*3g zLl~3uM0CVnu*wdgSv<}aK=pClexC7A!FVpWh?~nA6mC$J*WR7n-QBDJb^vYjq;ihO zMKwTAX*!O;SLLE1Y%lXSL&Q^r`FAg#iX@vA)+ke-jL?|)Y%{&xT2#tFg%oDhYI&=$ zQ^%QK==rzSZ|a?P2`~H&^Yd$geX}^+mUt9F0ET3K`1EN|KE^e`&}c_K$_fx&-_kRh z#%?yVQ%-7noWl>zk3?KX#a{Z6q1Fk!u7A3BIg&pCPSH916?!gGhB$ePztJQw+@CT` zvcH%^Jjuh@_PEof1Bxhoc;#s$ma2QcJH#w$w78J;SyRByRr#coX~n|HE|)PJuj(i^ z9IxslE#cze9$p8`OL^uLre0t)EegfFH$ga?XVt}OXj*P-!RIgKM8|4lj&MwP?lL~? z!PdLu$XVH`P*uSA>r;Q)9V?n)Rl-I@_f2zOaB7d=fQoJxASyT%EN<=Y22*dR{inrz&w5lt{JF zq@>qnn8FjvG!HaJ0%aUH-#+5LtpguA4y<=G%F_SiMu}Yt3{Taa#Yo4+l~dvt$jpB6 z(Ov~1$1?NL-Iz3eDjE`|;7~cZ1N;=!q3n>|WkMK}K$?SX$n|;Y|I|LL#2bEw1Rf^i z7y20sRU);mfRPM84zIL-hUoS=FC{+3j-+eeYVOrjiGb)gcmLPtaSe zzl}F4izx3)u%2L&+|`zdGVxhU->#sciorPb+A#@C ztM9--O$LFmAb-VCC<{y?(#LKZk@o>LE@c810!~!ta0RbZ8uh#|GQ**zj@#+2ZbzPkAJH+cA>`;Z9= zgyteGGD=*VzK^9J-CeA&NZoM|C2}Mql+!|>@bT*6#>f_xja4q3Qq=*J2~20pUiYo1 z3`z%}i!J*zJv`3DBL8IXe)2IKb^GV(^c&g&*wM{mP22pDgzrcvY_UP{>|t7ZLKKqP zY^@oG12(#iB@l=lM<1}(tjox8vPMOHR&|o2Uc+b2q&RZ|V!B8e2n2l%#BFW5NcUG= z0yMlluLwh3j`IW+z<-#q0N=n<$dctuPrti-**v_b%rYmV*Qt7Rp%D%-JO>OYNTO}F z_*Mm;L5nRh_}==%vykmB-3L(*>0Bb=eHO~c@bK_+%UtKCAU2>nrm zxFdhy?q+ZZOJkd{g2~~EDu_xqEWA=C8#DB2)oRQODBo9AnIsPBGEpMPc?tT1Uq4-@ zoCNEj?o%cICAwmGU*+4WFnz2HYQIRTu8qdk>pWZ?akt7k^H(M@DUs^TJ;ca;f%`CD zvqx|&m>@6L>F0puu)HL36n$?@X3Z+!Gsx*pRGZH{wQ7GcTYL1kk_QR z#u*NvtU%_Ue2;`$PVfD6JA2UT?aJO8X%6hn?r&znhnmoqD=|@ZsGX#!i<%`Vk5s(G z<~HjvI{3&_YMtJMWX2xBWZ51$rj9wApJ%@tnc@7;bh=={v0F*fz%fzb$H?C;2C)0P z>9N2{&eaTM;M>i}8LJ49DWQ5`qyCj#<`?$TU`-eIppihl zat||TxCYk-p4yZ;h$AQXOK|@X4^H_RS~vTMNn~UNb%vutp?$%KjvX6Og%yRcHZ>`a zc_Dbf7%woF=5prNCO|q!(@5GtV1VQ)ZM&B?O;Oa3s{4~LElDG{nbXV?cYkm1mhD)G zL;>X1oOY}|p;(&}VAXCW@wK~jz5yd=*b+=o?=jX4m_K-Eib|?fX*$t)%i>#5!hrEz zW;`hB%jnT;Nmm8K4iwO`FVl)?7%y%X_U-lZ4A=)cw(l=~J?j5dplP^wxhpjaemuN0 zs~s^K0VU!-x+S#F84?q!nawprkz5W1R$+f8Y*1uilKD{fB|43uwSi!9Og^Dw6qQ=N zsYf8}fL=U+-gtcC$91$Ada;q{E(Q;_oq4O4F>`=K{hG6IHD}3@E8rffK?$YUlw# z%{QF*RYyN`7&@oIMaH@EbqbVa-9Bu-ZN$+cc}QSzr8UiM%Ka_}L8Nu;)(KTFlRZbv zT)+C01acC`|Cwzt2-K00!cfi`@LsvWfMQSSS5OI|fRp>|gem!mujKbN{1xso7WlK_ zxsnNYoV?cl_~(=1nE$1;oxt?>i!X9WBY8uAFYJV6vK4>wMbykg3?Fe5*xz%-OY8gD z(VPBT;zU4we02Cj-*XGaenm5TzRYds##ur@goVCNV5e^vceo#b;6*92_Tm0RdW)11 z$hPht`iIBwCiLRJqyeYvzvNoJJoA4_xpwau4ds@W^EbmGEAW!O@}mIal_43L4b9(W zZ~y_}Kb%+)ThSI?^-?iEj8CBx{EvIzI%$N+F5u3nrKBy;@t}Q*WPx=l!Gi#50IVGo zqK}~IQE?YeMh8egDuQPDBxv3gPxj@>=+ZwYC!Vmfd3lxv>NT&|r>|LVg+sptNb9{hdh7X(SVmqL*- zKZRo@R0(H?eHaZu5}?G*XgD^Ndj0G5Zq1Dm-p5TJm_^enXgEX-Tf6Y6Tk z`9H|9ys*efl9cFSy!xzztqsGeJ_Kjr_T(NBnA;JY&;KdV$psW@Gzn<^5gB`oaq8HM z1#qAq06baD+v|go&eCuE_Iw*pNCP82%)($yr#Oc>R;J=lB+%3-hy6V zv?pZHV~MmB&US@T5$;zOG%%@nzAV~le!lnNc*`QO(0enUZ$;6^z#KC!p!VeTg%-^! zUQA9OYC-cB0PZVs_yyCi@)jy zl+Yc|pOSa67NL?^X--^n0B33L677J;NRga*GgQ?fy$Bi} z&o8bqIpk{iLBMq8y|bD~<*TS$AoHct(@U-71ruq$Fn~+6AC}5RN$Gt26rUH91=&JV zwj6N7SgH_DDqmfmr>dH)P=G_m*n4vhBK7v8c5|oh&&doCtdCr!9eRVUwR{7W+ zT~E-ni9;DxMukvvNL~^o%4tfC39!k>?T`$o$ zJ4YHULT!d#OSQ}zWp&|AkhF7P{c%UHe1fM|=nCz>PzS5kfjB!hY3uF>RU!niF-HgFf ze}OKej(xNrAw|_c*3)T#7kG}ClsR8o-myVCX$_?)$*EKZp9x_78CbEyWa!Vvfk1~* zqGDhMQ5z&p2YaLhFF^eH4ifDFQWsb>Ok{Nqhf+Pr^YxVe=-|LGS(WX*FA7615UNe=5Q@@V~vZ@eB$jlW#(s_~b173m><-11=MyUCl7 z`X8QOU;QS%vAq2q=-}8(3cNY;)*w+!>DK19L2omDP%qRQxDp!tL0d#PQt&nSNC_Go zWGs!`&=(VCq$5w4RyD1N7Vt}!k%zOTl=R;KsQ2H<}8YRC&36P1yjI!$NR-kKj zMO;SZ&!Q5eH!b&(Pt>%{p8Uj>J9NnRE1Dvig(7z9__wy}Hq6xjUto5sN*I9;^ADLf zraYHi2q`_oYex4I_y2RnvEqrCk`@SLCVwb2V3*%UkR3+BOfOh3?Z%~=qZ5P8FtQ-K zfT%ETR=yU623J*(Oj{rb8E)Y;gwEjDqMeBLxo2_ja5%|e8hLVL;i*TXyKZz zXQliERnV^S^mTr@MAVUEysFs{REPJEK++i4Kxy-iBPd736iRtWpg2qZTE0T=fC2!N~mGn0GbrhXYm0?a$;?&}&Rr>6LixK)P z7k-6z`c%)}sZ=6Y9t>$v*2$6YGO8vu!UsK(}HAOVP@#J|Es{=-y=7}SI zn}+skaJ*v+`)uEXOruf@uZFF0ynLBAEI;%8WQqs63Uw?sKvuaTSHJFZ$gw7fkIFo1 z6co7Soy0HEWZvJti*DGA%Fvq*(j@LkPk0`_L;tBS2>nR;2)R%?bu~=I@PbzcWrpYX z3#gJS$N3$y3uazPDd5s;6f;IlBk84%j+aCcQqAg|ASM%S&EKo-I*18M+fJ2*0DMYK zYZ+6hn9KV7d1sTBusDW#^C#eH)b?A9cR}(>4UWWJy==5s*w6zjpGvX_s{9G)IiMlP zoS&#j>$9)|0b-oR2HIenrAo`Akg6M$J{z9uQS*h0;PRR2a%d!+faoW=6}2nkt2xGX zX@DJ3LN+`bs&O`55!$Syl6N&AQd<;JZXsFDv(hCPoE4Nukb#CS1wOu!@%9&?YkZzp z`fy=C8IlAaovl=`Xe;&C3ie7#nTy}H`*imc@TXdH3k#!r$Pbxqe^SL&{y*(MZqnw< z_Q@XvOD-TYPoEcBH+^}8?)-RIkZwKmt{c-vTck>#D80zZK{&vnu zHapgW*%BCo+E6MyWY!j3`_LZ_S@_L@?t#FeH{uPy1l0P%NL08qb#fbXBz<+^NCtp) zQ{%XR(vW=qVDI2RV4fj&H+hGqUnFAo?r!fKD+TGyJTHVPdDk~jzRNzx#D2l?0{$o88Qd$EeJyZ#`W2W$-MgYD&;-u_pJsGH z^b{=tXAj}bTB)ri|8X@Zs)zA5pQKEv2U#e@v89g`Iyy-_>pW`kp{K_QZv>Dr;g4I} z40#(v$GDbRPiDbHn~&~hsdvaq z!iDmLz_{|{S)YsR^{%%Jcas&y$9jyL$y?D|Z#P$ew%jsm%E`ZfFt+FA;_~5PF`iuh z4&(~32b8^*0T*j|_}ahYhtCoP#lxAitj{47T!;}XI+jIz|8kG^ zuq@cN9BYcjs@c%Yp0x>o%2rUxy;Jb|AudpkEqgMWTbPm)JR(Hr0hj_#&P#5 z&#P^PtKa1%r+(>AH22V{7&#(iY_5Z^7jO!iq3ogXJsJ$v+`PDbL52=4y4nE6FL>Z#8jv!6nGPOtEmBE?QW-gDqu zQWA{=*YX`*-Y{FKK5E5a#dFlC$VZvcGpyP06m-N_*T1Qj!Qu>!qcs2B^clV6z!WV3 zXtpMrHVu(Nh)Zi-sCox-$GP_5-jl;8*kW7$hzk&B#p2r^Ef zyyf`J?Xw$-Xw}boql%AG#-1buj;1{99}DtLO|zb}_K(Cc>f2OgCES?2b`(DewiShQ zC_x7eP1m{c@@Ge>2NIGQgN`q`h`}! z$f<=ufepd(W!xTZ-}s)_OWdJvgbGBTkm$;-V3jRZErv2>0$maKG@O|G#r6cXP00O2 zH9LU9)Q<3Jn-^b2+c#%T-Nv)-30MO?x(;iXex|*Yp zeYrMl8aAIdQOO5EtDGNmv+J$FvK(G?sW8VIKEa& zPi{xSvsYE>Vwwz)ow%f-!D@Am@nzBR1EUk(fq?JZWNDtft=km8b)Y;1f z+qbPlfNQ-rc}pWKUzX}XW-7~)E)MPleKan9R6I9q`rDycyiEZD7OWAKt!}<^yIFRm z2*5u9S#N36JI<_i=hwc+vjH$QtaD3uQ)!j)yk^Yl>>{gHsru?IbgLaSxKqm-Soe(3VJLyfKfF=On8re+v z%okUule3fGfK`!kV!tv|h)b5>lvI3@bb^mJnf-&Slk?NbYBPVq(AnE>3|_gRWg`g< z&3yI>M{x^=I%p8Gw0C$_C0&sw(3X!|9dCmXagQY?PlxQ z_3DYxJko7=`K~0~E@MVTmGh8{tzV+(hf+I~@hIgR9cYLe5CS0!i>-@iXnzl0YAqKD zCL#Mi9{zGOJRb}dQ_?LB;%|R-)wEm?So=xA{G`n<&u!J zfL;NUL>alYX@R|G00h;)U0%n?3OVGg?|t8SmrkmXC%oY z@U2XUu2mWiQnw)>K#q;mkNBu!rSx2RO#W*5A-~!|4)zv_3Ge`DckmVwQR(WfjX>ei zbu5#U*s?)0uj^MlY4x~(C<^$zNOlTCA;mMF-9auGCi4GTwzDew(=EE=u=#RkEdLB6 zwxXSKWC{Ni01{7;(nGc3;lX`Os&V5!Hctv$z&trKNKBOLsRbI zr9bN`g;XP`NqIrkRjJEZsj7&2#vI#aSp_K(v9h7?`|#D+-T9I2UZE>tHk`%p+kr!q z;OV2gMQb zMMjebqg!g$3K5;E>brfK`cvjsA37b1xdDG1T%TQhL|@efTB!^OMPeho-aBC(KTTJo zwkZ}r7!Y!6^#4tDjlFFV6e;o5oc)8S&w2}$H+V*%h=vr-Dn+FoH8LJrtz4-%@pxd| z1Rw%jD(r>AzinV(W~Zt>Y`FkMU*Rd`AJ8v9w|EAe;wS`Nj}lNI(B-tOk$popPFgi{ zT{FXZY(2=I6;@h2hSPodF9hvsKjA^_0^hN)h$DSjL%DfsD2g38KR9e`O-rW+>tH4X z>p%o>5J0x90KVF$TFgC#)JMB=>7K@4b-`V_g{n;nuk0Lz7S@jy&rW7vr<3i&diht; zTbHt&6`*ZYLbWJDa20F+{NW%T+AuoIF|v^cT*_gsL`B1q}NY3dpZ z)YTCJ6^=aCZ|4L0_#k!ueR*r(j}hsyX7d&;6k(ae30K zKL!sT@wHPVcZW0b7R^>oLON^ETRn=Msy#kP)x4UY4G%j@Bh)_BQ|%IA>IkVQ3}^g| zF7C4n8~K(~fA#vt{dEqGE+_Kz95T7>peoc+A30>#GVnEsV!~D|tjyLfD^-=3azcWg zx_bAPmv9u#(h5;cL%k8cHih$(r#s8RR?&c$COd9#Ib@}2Si53stN93&C1qH;&UvZ0 z)5+!onghVvfij&PFn_yz7z9;rvb0!v`SdiI9f&!-+VAq~g&W4Z{$~kH&;>jE}idkC;L4qabD0_e!4)SX8Y)4GqNF})EkTlregd`y)PWL z!$G0FBg~9iD11bf`|I%hM>Hxwzd(^egLCjq4TT3S) ztq6Dj_GJO`8w}3m8nR!st^hcYNNant8Bw;B@@^Slc5J)~!OjX=h5Ee(%9ffQp5J^L zUctXM6zftxw_<%Z!dIqK1TFTC4!+byTb%853@U{To0!#HtH1A6DIq}NV-kPV&H5L9mg$Z(+v+nu`Rz7|u|0U0`p?r?QM9qGSs*PQir;{H~IvKSKD=K;?42 zH2<}8Gc5N7MHGC3kwebwVOW>OH>w4)phl|G;u(Du8V#}smmz$~5KZ$O)cQn;M56EF zbf~yW!HW5JSZK?Pmw`2pr?MY#0r%lXA{Y!Gmetost(UHV%loJ#J#!oK#Of$W&RAc+ zjG9fKwP8qR^)3e2!{Cpg%v!bb{jhIT_1y2|al>^k%Ty?ERUV?d;m-O}WeqX`YN`g#5QwySI>Jhk;6%TJ*SKTh1d~$WQN@4F z^Vxm6kBHs=uAnVt{f-;v+vffXYELFt!81XW|)46d};q|C-PL;1~q= zRXV&iMU7D@==CR`P6iW_SRJGp5mNw6)^`H#SY?fl6RR(FXpN@h1)QFjzm6l zIv5gUpmaGvw7iBVnzI~-Ua?z4^Q-}*nc`w3d7a1L_3ks^BtNhzp~s}&o5u*rLNgFD zcT%LoYs~qRYeL1IF~S@=uY@ZETzogRp&J-fI8R@mR)xlhiY`qHIP&g3A>aK4g-3m< z^zdc-lU_&T+IssQWz?)Z86fw!)5wlQCH)flog;HkmG^a^FBKYCX+PQV>V zWFEgb9aZ$ib)IbXufY4t9FL}Cb_;ipISdxgDOT8|OeMgwIE3SBe(x%Qitnwb8c#^( z$Ye$D4OD@~9-aWv4^?e091>7BcPk512Jm8nv&O(myF&eba=B}@pXQqp39$0YE&4K$ z;RfaNqCd4EWkHczTX(p4%7HV&D_Qg~l(UMCxN0huW5UWRH$to)?I;8TkH?8bye(y8gDBk32qR$SM-cssdus zu-?QpknH-0_tzN{!&ptkQ2|S;36OM?hQY%U?7hQ%YhWP#|RoYy69`0+}n> zj|xq4CFyja%36BD$K&mCWhcSV?p0u1a7&j;jt8vAZWG7H5logKVU~43Yq?EmhXx!~ zez@lyDqSvuhP1+aEG8k2{`~)%uAkwV^1l8TgwSb3BqAeHJymuqJcp$yh!JY~!=g+va8tGzdalAI&Z#lAth))>{Npwv!jGdf#F;PW`O5dsb3JOu#YVj`fh zto4zP-~>Yht*>TcK0AG4Npi_@rRDExW+=$*5`0%z@%cm60nrsBu`HhP6hm#CFLQ@w zher&xZ?SpGv{-yzIuB+)0_>^{?ex{{?JJ9`;C=-HI5NV6*?Ii}(z4h2KLR%|2n;0y!QIN$>jA3sPRX%ms%>GD7+mox%;<>Zo6FBpOtJDw|vs_2G{6k;hI;ST*ppkvrAzy# z!aY0zxO=@r`E>edxV3P)W!Po%yjx;{HmH1_9X4DSYXf^Xg5?Nes1#EnAjBk!B~!tu zgU5ic&1ya?hT>YRg&oS!2psbR0F25%j43s)7S~xks~HT3e!hN_SG0xDNOhwQnXG)& zS|RN}tFqC76axjGw5LYNV5DU@OAGOY6d(m@3`aa{zB>zWe3ui&5UJv6>LIJ4ya8bX zL8(6u&{JceIO;wCdO&RR@~lpfWZBSm@v@4lGN+;Qs|ME&A%JXoVZQb-y*hs0rb9Yt zOepw7^l_K_Rw@=3E5TD>den!L$73E3Y_X$=At$Q>`Ob&(jvg-jTK6fC#)5t%ft3;9aF#p^TFaMag z`_XNOH1TS??-UKbd48h!NN>ICWLQ}waCWi*r6R))WL^|v0OOWXBQ|PF*ozeDH0Hb6 zj<*DL}i!PbdBUaST0Xo>lLf@qkN58RRag9@`N#;=v?qAVAB~Rj5ewi@d|4YGDC<0$=nP&IHlr zC(?TvB{i*)5XBgyjuCBIXCRQkr)}K!j#Wf@z^~y&#DJ=G`xd>Q(2e^DRh?S%jDRi{ zD92`F-Ryi8k*!W<@dA3hdVgU&3RW{mw7;_u9PCN@Rc}B&Zk#asg=y~ZD4glZ%qWOP zrs9d_;yEj1LI*8gF=qbx3sA>25bf?iRj?WJnqwM;^1A+zPe-c6M2+yacYGWUF(*J7 z38PJTCIcg^DiXhC{sHSbt}wE{SIMIUjjaH#?|-`n9zchMf?A7y-Xac$_h-z!DzlX> zqsJT+opn{gm5pqf@;%it$)zAIG`)%W^Q&cA6kAOG4FUs_Apx`GOpccipw;n~Q@GjD zwCV)ePr%{V-`-371}s@4x6>kX<4=9LhbuPQ*g#4RH_x`3hfzfd$Mbh=a==2euBl8@ zz+Z_E^c0pJOKsRFiy#FueX=fY`D0C6N|{8yvuE2h{zPrbX+}FFuScFhcs;zBLB*iJ zvLapecYi8)Y#ZPNm#c;>bxmpM8|R++PHkROX~lPmiqu`iK)oK^cGQYQlVX9oC_q}B zMmi@=7EQQ}*?~j`rOB}wh%*#Tp0NLLsIZ#(u}RQ!6d{Jscj9@j&QJH5_cDJGOEm4T zT;?hl#$b~8n+mrl%wFPgPK3gO!BR#+e*jOzld5>b9SJL_Zs8`F}M-UG`%QxGF1rcPZLCOz! zGXTe*m(Q4IOu$VJIZwrxY&0dn@WlMHA>em-*Vi5;pUx4U%&R>^48njgY3=LJ5n^61 zSBn|wEw;Eu#D6FmtoL*rvtGyaoJTB9S5zh)Y9IP(>lPn^^UY*fQa9I|;fomPr72Y1 zSFLE>s>9%Vrkg#aOW%=08mfgGO6YI>Ya`>Bm9uWixhD|H13@X7XIF!d@M2p<5*8_> zN4*MA-X8}zRjb5MPj6R4o8dvwdcugP zXK4lS%7~XMZ|O%-46_PpwMW2&;7fl--|kQc2kyrU_WWQx1cWsvvh7&6 zG!7hlE3z(_3XBkKmD`rUv&Y|WpB<$KIm_zdP2#6S0s2nh0xFHn7vZZmK|+ON-Qakz z-=w?`#T}y&e8i^9zaO4FE6?v$yeoSGgZkNV+)R&&|18OaV0~x$M`x|$S{1els&gA{ zH_c6eFAHsH*_yj==z@Y(^fVQ&Z0D5kW?G$zjWQ^+`LBjPnO#2EApqJJ6Hmguq@P~>%JpNo z9yFOGyvt}ZWj?Kf)N<%R%neLSm8CYY$!I*j0jU9*3ecu8Iyv)s*gVs1;-1jlm5MHX zw(9SChFzj1e6Q~(Si@POoT%dtvcz2 z`K#p%d)I|a4`Wd^A6tb^fA|ErhBzXAp54`$(Yy_mnW`+6Z0H3PaW?ZO4mm+7zC}1B zZS~}6O5E>k$zT_PTWKQucEWV1F-oX;AmreWWUJN%1?DiV%bzo#93h-S8Zb7rzC-sr z-}L$h3XOJFWqVg^xLaR^UDhinCWTZK8sEIXz8Zq9fagCM{&9jfG1&_pb-&1X#ds!b z=oOux7C%+iJ{8HCaMxtS1N8m>J;5_;3M6dU^0{i4x!+a13+kSl3y1a0$^ltEI;X1) zjf~eEXZiIO`Dm+g(oMaaf8jb&Vq3E1ZiaC8RG){k$o4t?dGDD3RFd}#bUl-6%rzUm zEg@!}5Q-+39%8QW!j+)(VpA2n7#Ig5tE%uM6FZma%0@!}$j`|_Hmancd9eI5-qe2> z`RBT>hspn3w9smHX28PaUe!}@%c`jF=G4B~O>U(ha@ z&;)1S;AOoAu>&U91I1|wgwo=ob%nf)rAy3~As77W0~sWByccX>lRu{GMQQ}8%GwkG zZokXL7Tp0=27LOSoErbc)rmkGteYC8Cj3YMi-mFc+~Tw9T(nrH{~AwXfR)ggk9RNcNyMuPc6+G}* zF$7K7l^t%l%o>W`CtNq#^|y?|1p@w5L%4DAVw!>p70{wDF=+#SQB*yEcJ*- zI{q1xbTBLap0@t>+hK305~TyY6eTemg6X>I!sZF4j8k_~_rNzv#MP~;of`@}Q@~)L zRWdWw_6?UeJ3h=$VvhadxoplYoy8O;qCFt8&FP%+tF&luCUd|E1qje+gNjdtQ;gm( z{^_!nFkQh!Oz~0~O({8-PjOId1!lVU57?!P=@iZ?tyGPK;% zrUK&pVu25|o$xKt#4q!3Oo4$|d_^+M)hWhX=GE4chJKUb40V zUa?sr*sBIS$jo51ChQ5Sy2z+(53C#tdw&mdx0SHqDa(ii?*i2b%-jUR0x8e8BWrU` z?NVeUNFG?HHw<->jlPtVkVIj=GvP6Uc>Q;(>(1P+7T2tAEp&)|YDL=87pr}^_g!F6 zvCoYaL{{=#Tq`wEKc;8n1SP5{)!^R^XE>drqs8Wg;?!c2Si-|gTbU2o$=|E;mB7W) z;mqMFB{;y}I@ZYdSe}BBA!DJlG+Q__dsoE_4A$D_&*=NmcDijH+r$K)&%EZCo}gA> zv66@^yA(W^Hd~dO&F3YjmH^kLYTw2bWRiUj@08EH`tyr&7Nrtnq9wd&BoekDpSv8M z^Dm?G(REZn^8Um{>QBThj7IMvICY};aG~BqlI(oP#N79smy4i1{*1-mYO&c4`W=fs z;9?)UrAAnIgJ25%?q>? z3zKt3&K=m8wRGyeFTbR1PSG|KJGeb`W5I5_>U_5&=Y?a$Z@xQEJt^;kT^UVG$k#WTZ>@7c}r;a^t_kAawtTr%$1J0?_a^9By5 z*m&5}grR@zT z!&+n^_gQHRg*t);k&;9ThI+Y~xANW^oP})mgZ5zkgkzZ@6kETdZQK>y=ruFcRRZg} zZc4B#1vJ`igS#nTEX*T1m`(y3P)&3+ni)2s!>#BhV?5+mJT^%GqoY`IVJ z+cOk@o_3Ot!%b*$U895;$*zA+OWAVKf0&ZQqjf0^L+E7u0nvL^R~e?KY_yDR87dj> z4-P*A+CbAn1F{u}5i!ksPGz`WqLSk$!tlCp25jHNX$1aupcsegy3fr(RO9=cd*$07IAAkWcWk z&0TB;Mc9ZaDD`?6Dn+HK!jY6c4RZ!CV0R@L3S*wHdDxZaR1^7%y$vWzAm2q&Hwz=L zfoz#zOKyg#-aD4PmLg?32q6k%V&(T&e|guK ze%W#qj?%b}?gL$#^6u~LRe2^Z4C4@oCtRz;9bH!1G_i$$*zIr*Jkl$}zuJf2`82qy zOrGpP655C$z_wvr8`57l*JfK&sT)7WV*|vQen>S2k1drNK_dGK1_{PBBXH8FYx*+9>;?otb z-j9RFq_BKDy<2J1X-UOxWm3in%=VVwkM0A6B?v+KX=zO5 z0%`;@w5PUM=SDOi}VGCpV3a z4D;~=>Tdu=0}zScpY>Yuq!&6l`*?Acr4$Nlo{l0e;Z7H#!yi(|(IBhK{5;AfTIXZM>mg9^71a3X8o3ZGMNyNzBGfq6!Z zyO$5bM5dH<qAjtSWL2xeBoFg3bFNo0InFA$oy;e zH(hg)Ft~~vq&%JRA4@1e-QE251;dPRvV${^pDZ+SP4!B`S}4DC|L`UOnL7YM(lZak zJ^!QijPuOs(A6h)_WB6?7I#5v^2#}#sYK5jDSs7(P~{O`5sR0j<(MS$8W$lbc<7#n zOn9Y>PmE%?$l%rJe6WddJ`Ecz|jIIdpTy0`Sfu% z*_Dpd6fbtK048{c(o4}m&cDOha-Op9kU&DHBCIS2$P>0nRBt^bVehAiq?mF-;FaP+ zMevxHjtnVz-N^OPk*vz||Ob~TdBve4w#3$+P~DTq^k z{QZnnUR~abUmOoPxSpAYm_owde@H1him|>Bl$|ii(BK7gHacX{x4wKze-En6qAfAX z@dm2sAxMKPD7Qf)N9e@p@+Y7*X{!pt~2c^n(q_5?t zlL-j?tQFsAVNUuPo;EMXkeKTO(UQ+!#EN;gct@5^r{zR(?zU0)%1SXT_6IlTJ4~gR zuc7{djM#$C^6GZ7WkbU=-e2sUu9;j|9oCQ&Mt1lfhPT6ZVwrZ%vCe!u+Kvi#!3;I< z39ng8IP+|6^BaqZJ7h9f_L;2c!=P4pO=AAM(U$?FH<1FL!Xy`4Nm<{5EI;4#!ei|4F`OKA zj!)!xjR3+>4KOjACPr6g>_Omqh>9Ja7S8wzT!h7U1-5DP=2M}i44mWnKWy)2`6rU{ zU0PF~6ki8wV8yD zHS_Q-P1UKe+GP#^Q5hGaFF&wEmMt@@| zsu7C#g*7Xyw;?~RnI<7B&Xji+9X8*SQI=jz(fgPUS5-6Qrtz>WBFfph8h*a`c?div zMwjB@AntI~K)QmO-*SD|`{4xKV&66kGil`0k^+!JSNIG(Cur)kk#waV@3jx;(QWWf z*c`Bp;D2;wda)6)$X85QNE&*s*i>vNZ0iP0gU_2q09-fp2m4f7ff~xG-iW%h^BIRT z3dMVM1S9GwH6>_Hum7SnrP1BsEtH|<{MWXcH=`h5<^TwlH-I%d2%u|&Pe zlQO>pLO+}Hb%$Twd&NHvFogxvEmc=$LY1r2VBbZPq6bn)_+mn$CrZ=l+^);~vG?~w zh)D-#6{JSc!0pc#HkV&V;kqt{Rm#={3c&yFsu4*Zj3y|vj|oUDjCTL_IY3aDk%u`cykwI{NH$Ou5 zO10&VS7nUKOm1YP#@=e5Cwdwm`-@BNVg4juDL_YR-?i2T{2r=9e!*I-Qze9xUETxIZSPnB(Iw)qtH{$axISOQi=AH)9P z^-mW7+*}Wl9UWsT*F<^j(mNoJB1K* z2;kZW;&EzxPid)5&HTc~6sBGMYXC#czXb(K`Yw%JMgNjWd$NcQEsHhm*T84t@3q z)CXGZEW^^J&5nRp{Ih-KU~L4KJI)Z3yS^FX7hy7Gh4q0QLf#ftM5(Ol5@1)lvG(4n z6b|YQJd;v2n{DLZ^`M=uo@Ksq`~f=96i${RjZno#XQ}L&b*R>-Qlemh(q&-Y8B4qh ziSUBr`?`X%QebQZ-X!qRQOJM0RKqCXv43;%s?f<<@iGQJ3Ii7!d`L^XwwFWA8D!Ii zz&zHL2aQp4ezg{*fv6=QqIJX0*^Xp`E=8rrL>3TIXhxl!NXeWZpmc@*>m&2HT_5$~ z8q}tyquPg(K1U}K^oo%wo5kx+?Z_Gg2h=QJ8F^W@PL+1S zeR*EH1JxL)ic1*nA~TE7t*!oL$Gy9ZF%?ec$bL6$!Q09RJxy&4|DEhk%S;uZYP~d& za;C;dkZdN8GlhXes4%1S362gtdi;A*dY|XR>oF=M7%e!w!hAlWbk7IFT{_aLd`<7g ziia(}OX1ndBA+5V#|KD`6j7aI|3^Z`EvVpsNVCT1!FPuN8I%JwE0EY{WgQTEjWR&LU9zuOTBbSKCMbJe6+_n{wOCGzbNI-qm zK5a$agi!F2Xl>E#W$;C_Av!SgjIhgP_CYF=ZVPof#U;b(zrA@DQvY%%)WOmkR+V_1 zejEQaT|tch{s%PC29}_r|EF|#dxR0kCY!f`Lt^b2w~fRCj|~9q86gJ4HzR?ug@f#J zsWQM*?je+AF<7?waNowVEO4@%XryPKd&1{73($0F%&_&<~M39G!Z;9a((Y5xgz5T(b44D1rw-rf+<5 zpaw;SK3}itfts@6TD#|lVh4 zme*(eMbjF*n?dUO_yJp^B(7|BJx3Juc2S_1OO3-6R|kOf=HfYLU=NO66}P-9~hKVq~R|5WiW={Gqg2KQu()Kw}bup9=^ z3>T+stPOJ4)j&S{m!mFKWbAxd@-w3tXwz0>zMgy|OCK8s)%h_}KX9y${FyBGFy-VSxmLDsx-29pwds=NiLmOhrM)G9xRH;6wfGkTC zDxmuO`;-81JIFj@T@DX^0)g#h_;rQDbHJn)RWJ`3yUT=+X;~#lCi*H>sX&~R40}?h zu=YL}B#da10k~o?dc`vaX~vg3XPr*WhKI>fiNE-F25F4Ng!A z8&AYkerP!|7IJ4#qDHMsE5BcYHv>vFl~V*mf@5TLDJL$+u9Ml&Rstuuf*|S8)j~b| z+EXfEm<4J8l>alMh7}Mk)*E%&e40@bjpUn)dKrrH&}AJ$v8T_AVqfs{umhPf@W!yu z(Bdx}jIZX#DqRB{#BzXR7n&d?j8k~j`92AQy z7ig14S-=YZS|xa=_p_rneb9xip;0IAdO!B5Vn-05Iw_By+QiYt==;R6+3-!T*r*p{ zE}1!dSvABk+D^E&VQql7uejHlut|JvwdqB2Yv?cNKRi|Qh)Nsa#O&Q5qUeB_Uq!qX z;DvYSG95g%WT=@xd%ikKhRsv!5NJTGbDD$DR%}SZ(to-*H_}e71wqM>isnMGk6|t6 z6@V5LpRRwSX!Z?OunPQ3-=_G;*VcrNzLsQ;`<63p z$lj^CD3-DF)1kGw$r$}FflsH>J!>>%xAtN} zLOMgW|5pDJA5Jso#!f?3NlMEWx-ElCqojM)5nAypW4|!x93haBKB~$Bn{hYAJcao) zn`ec{Sk32uOfZTWTc&^=Z7a&we@ES}7?&oz4(nIkedI9+{ns8+tQ-u&RL0UqAS)Tr za&GGzX8X_?Y+K_4EF|Mjya1|e0(K-SR>-dD8imX{)-qvW8Uu6<&jy-cq8?MByG=7P zqzB43^+6&HgR~9;#7z`!Hq5xqy=)V$C0&}pTsU|8Ijp87x7zVrF<0VfMi*z#&O(m738~=5L^HWn?nQ7z%L&NY`NX-(rmE;JJf8kj1Gr=jUlE$K zq|VW-8AK;wg;)t>cpJT@WK0pifrHw_2AOlDgrT`gddq?T51V}vMM=?a`)5n)ga)_)T~~m zrEPF5@zgU(bZI)QYY33D=o+FER7-h+Vxe-9WZP%fE$6XQfH?}TPxHm#+o<1d5cMG{ z0#fj^Ds1xK z^R;1V^KolhSISw_e`7fkx*pexG_!}pd2*-tNQ<#6Ky)9jCCC8qZ8sbT88Q^h;pL11 z4B0km&Cbq&=F`k)i~}u-WXapYq08tAHvh$U_hpNs4SWAaR%i_8q(6{)9V(IUrFfo6 zVX;u8g$Ilb;o5q9ewP?3#Osb#OYzegurkkVYGw)j?D@e%)UPuq(+lZVf-P%aD6f}m z?Awz^mUbuPxgeqdO@4sOx&oo97^05qSz*mYWw)2!!?m zUXe6(rH7KATLhu%A zE58~ASQLh~;24!+);?%^&43G>t4o%fKo!}JBJVqZt$M!76}UOWJ7llk{vF-U;;cNy$Aj)4{ z-K$M)tM2SbOopCi3tByGx%+Ma({fEJ%n1iY-{1DamU=l85}sQr9-D6by+|}j+;_cH zj*_7)cG!u-yoW*o1=ZGuXi@;)2;$i^^Gt|*A12F36&6N2J{@c??JpIGGuy%rkd6&lilF{TXvWnY}B&eM1frZnh+pAAFJie zP5oZx_kBe1E}TE(LRXh59=ZoH{knxQW0(u2)S0xX4{)_dyk7F1A{Duxm#AAQ@T6p= z!sK2+lYrK4q9u+GJt!C@ON)Nmr62+9}w4u;xK~P{QfAm*dKHA2SQkV{OJd zof)!bDKqOnM#UHl)ul1Ebm&wtOKe)C5Tc@KDIxml;zpJ45#I?XmirK>ps(0| z`Vcpmx_N$aJu=94o4yN!;7b-HD!C1XGAcgRyX>qpGqv9pc$PbbFXGzOlmpD${psZB z-SNa&m6+y}K4q#8!)ZA3jPJ$pL#EoHaPa7`43hX_oC)#`)MkL7pugw~8S?UIUzc)hfQVSGe0xkot2w z>O=W4$_hxjlb|g$UMZo{9xbSVQbT{$la4$q_4-dbBw|V80c4&P?_gEeq&t-`p~_Yz zK)-5Q$o5B5AXBKI|6w45r}Ap|zVc#=HBK*&EW~Us0>`NHrZsTVtQDqvCA|{fENkF* z>*-%)JAt?O@RWX~whyEOtXg<6xE`Xgtr<+b3fwZH@>0?Olm5~#Wwx^3bEe~t*Z^f? z>7}5Y#0>A=bw&~^MEgX;W*SIa4IPVk%;~V=gsPl4S!&FNjG3kHpp7COt&~E`_GfmB z()uEYWpe-Arrs@wv7Wzz)KXNQyZjn2##9P1wFCV}kgcxO6a)yltEi7!+)*mf>|?Ej zL0xdN*hN(fRFF=)eeU0a&Yqk-Um-a?nAiE}6e^itD$$xPp@qldSrQ1ME_+z##^;N%zJLH2 z{$L3#@c15Jvf8LN!#%zQnGdEt;+g2;j6RG8C)YzoYUCECG75qU8YNg9Z|<`0@TxZI ziS?%Y>G>eI2$kdYU&#kyO~rBYBUFZQOb;&~!1JQTZX`+GDc6G19^O1D8z%LmSutse zIGj9JK$LGlITby;96iU&cc})W+QO^H@vSs(RFmpPqWfyn<5125Rd3c68l%&hn9_A^mK^N+0{0S$GYTnVMu!xM(gIS+Z2UAjH z{R6m<*rHHZ|sg0y;t{H^MK5#A^EsK9tB8D9ft-bA5(^zesa~L^cW0KWv47n_T83>cA@p&k9Uo|j9;@pjs&B>R8OX+TD#m4Gj3h4hpz7%y@928m};z)B?986LP?D#G_e#!XEqeL!buqr_$Gp* z^ZAxV7bmLo)EfYs3>m0u;kvqxrIMVoM)ui2nY31~s(zC#t;<&VIjki~>(+_(p3Vj{ zj_{d?Sw1K#)u>(KNnZQdbFw*AyENM_XR2s%XGE>U-fGo}HS} zm?P@H@{{5ePLMzzpAsxyUk9!!{XH#x1kx5c=#4Hh0#*bn&O#ATi#8Krp>UBx$vWq< zrj1IX;&bVOJ#T9`R_-gZPVNo355Gs16j>-=B#FuP*&fB2Oq;?TK4(X^p=A}0QUTj8 z-3a%P70CJ&I=-}bJ)`S+A(>(7p>A&=H1jXtVc zpHChiZQNSN;d1p-NO@Ck;7DTb*C5Xk8y7C$FQ{;{IIDo299=Haa+ijrN=0%t<9Dkm z_=Z>^WH`50K1Z8Ebd#;P16m%^>Zx;#|=Weg4`R=p< zRTYk;g{Z>y-$|*zGdLJlK~Q%qg7_h3x53k#smC@KGKsTZ6`}#tjLY=EWN=|*yi{de zrm2(Mi8hda6acHf)aleT!+elIBZJ{{C!^8TG|-BRWda zJurRmg)ArUS4dVd@EY9+(MS;d-kXo}EgI2ZzM`L-C@+k#Gy!IDlnOBUM*qvGXFXNS zZVQdS!|w~y{BVSjU_e`^3E}0<)#b%_$V_n8)Ava`(ngv_IVdwGfCk~ktCaHrNB>#= z-QdW&N8Yw;aKvy+ARpjMO+}`zGj8@7+LZ?MAHpt^ZLh-H{lW4oP^c?lXLvHpdMBZR z*~|&njFvMnZ9gxS0;`;pKt?5Ljxk^aRJ&f~5_P;dcfz8$EPY%BaV_e!<3d$1s#3B! zzfDz9rh7!;g=*CcQc^tS4zQ=> Date: Thu, 12 Aug 2021 16:33:01 +0800 Subject: [PATCH 02/75] new rust_ctp md&td --- Cargo.toml | 2 +- build.rs | 2 +- src/ctp_client/mdcontroller.rs | 33 ++++++++++++++++----------------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 61d6428..4d6a1a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,4 +13,4 @@ tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" http = "*" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.2" } +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.3" } diff --git a/build.rs b/build.rs index 65dc821..68842a7 100755 --- a/build.rs +++ b/build.rs @@ -1,4 +1,4 @@ fn main() { - println!("cargo:rustc-link-lib=rustctpclient"); + println!("cargo:rustc-link-lib=rustmdclient"); println!("cargo:rustc-link-lib=thostmduserapi_se"); } diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index c2b9951..5472c87 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -9,8 +9,7 @@ use super::super::utils::ctperror::{GenericError}; /// like rust_ctp project test_ctp.rs file -use rust_ctp::mdclient::mdapi; -use rust_ctp::mdclient::mdapi::CtpEventHandler; +use rust_ctp::md_api; use std::{env, thread}; use once_cell::sync::OnceCell; @@ -45,7 +44,7 @@ pub async fn init(){ ready_for_ctp(); register_md_event_handler(); - mdapi::connect(CTP_MARKET_DATA_FRONT_ADDR.get().unwrap()); + md_api::connect(CTP_MARKET_DATA_FRONT_ADDR.get().unwrap()); } fn ready_for_ctp(){ @@ -55,7 +54,7 @@ fn ready_for_ctp(){ CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); - let version = mdapi::get_version(); + let version = md_api::get_version(); println!("CTP is Ready, Version is {}", version); } @@ -63,7 +62,7 @@ fn ready_for_ctp(){ /// 必须主线程先完成注册CTP的事件处理器(闭包) fn register_md_event_handler() { - CtpEventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { + md_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { println!("Rust Ops,Error!!!"); println!("===========Error=============="); println!("Rust Error nRequestID: {}", n_request_id); @@ -73,10 +72,10 @@ fn register_md_event_handler() { println!("===========Error=============="); }); - CtpEventHandler::OnFrontConnected(|| { + md_api::EventHandler::OnFrontConnected(|| { println!("Rust Connected,then login"); - while mdapi::login(CTP_USER_ID.get().unwrap(), CTP_USER_PASSWORD.get().unwrap(), CTP_BROKER_ID.get().unwrap()) != 0 { + while md_api::login(CTP_USER_ID.get().unwrap(), CTP_USER_PASSWORD.get().unwrap(), CTP_BROKER_ID.get().unwrap()) != 0 { println!("Rust login failed, continue after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } @@ -85,11 +84,11 @@ fn register_md_event_handler() { }); - CtpEventHandler::OnFrontDisconnected(|n_reason| { + md_api::EventHandler::OnFrontDisconnected(|n_reason| { println!("Rust onFrontDisconnected, reason code: {}", n_reason); }); - CtpEventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { + md_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID == 0 { println!("Rust mdclient Login successfully."); @@ -112,7 +111,7 @@ fn register_md_event_handler() { }); /* - CtpEventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { + md_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { println!("Rust mdclient UserLogout nRequestID: {}", n_request_id); println!("Rust mdclient UserLogout bIsLast: {}", b_is_last); @@ -121,7 +120,7 @@ fn register_md_event_handler() { }); */ - CtpEventHandler::OnRtnDepthMarketData(|depth_market_data| { + md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { println!( "Rust OnRtnDepthMarketData TradingDay: {}", @@ -164,24 +163,24 @@ fn register_md_event_handler() { }); /* - CtpEventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { println!("Rust mdclient OnRspUnSubMarketData nRequestID: {}", n_request_id); println!("Rust mdclient OnRspUnSubMarketData bIsLast: {}", b_is_last); println!("Rust mdclient OnRspUnSubMarketData InstrumentID: {}",rsp_specific_instrument.InstrumentID); }); - CtpEventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + md_api::EventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { println!("Rust mdclient SubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); }); - CtpEventHandler::OnRspUnSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + md_api::EventHandler::OnRspUnSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { println!("Rust mdclient UnSubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); });*/ } pub async fn get_trading_day() -> Result,GenericError> { - let trading_day = mdapi::get_trading_day(); + let trading_day = md_api::get_trading_day(); let response = Response::builder() .status(StatusCode::OK) @@ -200,7 +199,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError save_sub_instrument_ids(&sub_req.instrument_ids).await?; - let ret = mdapi::subscribe(&sub_req.instrument_ids); + let ret = md_api::subscribe(&sub_req.instrument_ids); let rsp_result = RspResult{ code: 200, @@ -329,7 +328,7 @@ pub async fn resub_if_relogin() -> Result,GenericError> { instrument_ids.push(instrument_id); } - let ret = mdapi::subscribe(&instrument_ids); + let ret = md_api::subscribe(&instrument_ids); if ret != 0 { eprintln!("resub_if_relogin: Subscribe LAST SUB_MAP ErrorCode:{}",ret); -- Gitee From f81df81cbbdebf8c8362146ba178bd0905fd832d Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 12 Aug 2021 17:36:22 +0800 Subject: [PATCH 03/75] modified DAPR --- src/ctp_client/mdcontroller.rs | 10 ++++++++-- src/dapr/component_client.rs | 10 +++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 5472c87..2c809e9 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -29,10 +29,11 @@ static CTP_MARKET_DATA_FRONT_ADDR: OnceCell = OnceCell::new(); static CTP_USER_ID: OnceCell = OnceCell::new(); static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); static CTP_BROKER_ID: OnceCell = OnceCell::new(); -/// rust-ctp-mdclient main.rs fn main(){} +/// ctp_access main.rs fn main(){} pub async fn init(){ - + println!("ctp_access init statestore"); let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; + println!("ctp_access init statestore response"); match res { Ok(_) => {}, @@ -41,10 +42,15 @@ pub async fn init(){ } } + println!("ctp_access init ctp"); ready_for_ctp(); + println!("ctp_access init md_event_handler"); register_md_event_handler(); + println!("ctp_access init md connection"); md_api::connect(CTP_MARKET_DATA_FRONT_ADDR.get().unwrap()); + + println!("ctp_access init finish!!!"); } fn ready_for_ctp(){ diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index 027525c..d6cf619 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -10,7 +10,7 @@ static DAPR_PUBSUB_NAME:&str = "pubsub"; pub async fn fetch_state_from_statestore(state_key:String) -> Result,GenericError> { let client = Client::new(); - let dapr_host = env::var("DARP_HTTP_HOST").unwrap_or("localhost".to_string()); + let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); let dapr_port = env::var("DAPR_HTTP_PORT").unwrap_or("3500".to_string()); let dapr_state_url = format!("http://{}:{}/v1.0/state/{}/{}",dapr_host,dapr_port,DAPR_STATESTORE_NAME,state_key); @@ -39,15 +39,15 @@ pub async fn save_state_to_statestore(key: String,json_value:String) -> Result Result Result,GenericError> { let client = Client::new(); - let dapr_host = env::var("DARP_HTTP_HOST").unwrap_or("localhost".to_string()); + let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); let dapr_port = env::var("DAPR_HTTP_PORT").unwrap_or("3500".to_string()); let dapr_pub_url = format!("http://{}:{}/v1.0/publish/{}/{}",dapr_host,dapr_port,DAPR_PUBSUB_NAME,topic); -- Gitee From 4d387967f65cf708f6bad58dac594aa60db9a704 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sat, 14 Aug 2021 15:39:44 +0800 Subject: [PATCH 04/75] modified CTP_MARKET_FRONT_ADDR --- src/ctp_client/mdcontroller.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 2c809e9..0359284 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -25,7 +25,7 @@ static CTP_CLIENT_ID: &str = "CTP"; static CTP_SUB_INSTRUMENTS_STATE_KEY:&str = "SUB_MAP"; static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; -static CTP_MARKET_DATA_FRONT_ADDR: OnceCell = OnceCell::new(); +static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); static CTP_USER_ID: OnceCell = OnceCell::new(); static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); static CTP_BROKER_ID: OnceCell = OnceCell::new(); @@ -48,14 +48,14 @@ pub async fn init(){ register_md_event_handler(); println!("ctp_access init md connection"); - md_api::connect(CTP_MARKET_DATA_FRONT_ADDR.get().unwrap()); + md_api::connect(CTP_MARKET_FRONT_ADDR.get().unwrap()); println!("ctp_access init finish!!!"); } fn ready_for_ctp(){ - CTP_MARKET_DATA_FRONT_ADDR.set(env::var("CTP_MARKET_DATA_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_DATA_FRONT_ADDR")).unwrap(); + CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); CTP_USER_ID.set(env::var("CTP_USER_ID").expect("Ops,Error for Env Var CTP_USER_ID")).unwrap(); CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); -- Gitee From f6b4fc6dc279151dbb27ea2776de85f771d70d7b Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 6 Sep 2021 16:23:19 +0800 Subject: [PATCH 05/75] change Readme --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a36ddf8..426f0ca 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ helper = store ## 可配置环境变量 ## 配置环境变量 -#### Simnow工作日 +#### Simnow 开盘时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 - CTP_USER_ID=142909 @@ -62,7 +62,7 @@ helper = store - CTP_AUTH_CODE=0000000000000000 - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112 -#### Simnow周末 +#### Simnow 非开盘时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 @@ -80,3 +80,10 @@ helper = store ##### Dapr必须配置的组件名字 - 状态组件固定名字为statestore + +#### Docker RUN +##### Simnow 开盘时间 +docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access -e CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 -e CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 -e CTP_USER_ID=142909 -e CTP_USER_PASSWORD=qq632386504 -e CTP_BROKER_ID=9999 -e CTP_APP_ID=simnow_client_test -e CTP_AUTH_CODE=0000000000000000 -e CTP_USER_PRODUCT_INFO=rust_ctp -e CTP_SUB_INSTRUMENT_LIST=au2112 -e DARP_HTTP_HOST=192.168.202.76 -e DAPR_HTTP_PORT=3500 octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib +##### Simnow 非开盘时间 +docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access -e CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 -e CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 -e CTP_USER_ID=142909 -e CTP_USER_PASSWORD=qq632386504 -e CTP_BROKER_ID=9999 -e CTP_APP_ID=simnow_client_test -e CTP_AUTH_CODE=0000000000000000 -e CTP_USER_PRODUCT_INFO=rust_ctp -e CTP_SUB_INSTRUMENT_LIST=au2112 -e DARP_HTTP_HOST=192.168.202.76 -e DAPR_HTTP_PORT=3500 octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib + -- Gitee From 6772145ac954c3b73740b01e4ff37fd1befb9108 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 6 Sep 2021 16:52:12 +0800 Subject: [PATCH 06/75] remote dev in docker readme --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 426f0ca..7eaa394 100644 --- a/README.md +++ b/README.md @@ -82,8 +82,12 @@ helper = store - 状态组件固定名字为statestore #### Docker RUN -##### Simnow 开盘时间 -docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access -e CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 -e CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 -e CTP_USER_ID=142909 -e CTP_USER_PASSWORD=qq632386504 -e CTP_BROKER_ID=9999 -e CTP_APP_ID=simnow_client_test -e CTP_AUTH_CODE=0000000000000000 -e CTP_USER_PRODUCT_INFO=rust_ctp -e CTP_SUB_INSTRUMENT_LIST=au2112 -e DARP_HTTP_HOST=192.168.202.76 -e DAPR_HTTP_PORT=3500 octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib -##### Simnow 非开盘时间 -docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access -e CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 -e CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 -e CTP_USER_ID=142909 -e CTP_USER_PASSWORD=qq632386504 -e CTP_BROKER_ID=9999 -e CTP_APP_ID=simnow_client_test -e CTP_AUTH_CODE=0000000000000000 -e CTP_USER_PRODUCT_INFO=rust_ctp -e CTP_SUB_INSTRUMENT_LIST=au2112 -e DARP_HTTP_HOST=192.168.202.76 -e DAPR_HTTP_PORT=3500 octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib +- docker运行命令 +```docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib``` +- 根据Simnow开盘时间/非开盘时间更改环境变量CTP_MARKET_FRONT_ADDR与CTP_TRADE_FRONT_ADDR + +```vim /root/.bashrc``` +- 最后加载环境变量 + +```source /root/.bashrc``` -- Gitee From 9cf275978931d2c21adea2e4ee1a7b909d47211a Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 6 Sep 2021 19:32:19 +0800 Subject: [PATCH 07/75] modified DAPR_HTTP_HOST --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7eaa394..2e98fe2 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ helper = store #### Dapr环境变量 -- DARP_HTTP_HOST(可不配置,默认为localhost,配置为了方便调试) +- DAPR_HTTP_HOST(可不配置,默认为localhost,配置为了方便调试) - DAPR_HTTP_PORT(可不配置,默认为3500,配置为了方便调试) ##### Dapr必须配置的组件名字 @@ -84,7 +84,7 @@ helper = store #### Docker RUN - docker运行命令 -```docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashenv-ctpaccesslib``` +```docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashrcenv-ctpaccesslib``` - 根据Simnow开盘时间/非开盘时间更改环境变量CTP_MARKET_FRONT_ADDR与CTP_TRADE_FRONT_ADDR ```vim /root/.bashrc``` -- Gitee From 1574d82c965881fc86a826a5d63466079b4deb49 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 7 Sep 2021 00:09:27 +0800 Subject: [PATCH 08/75] add log tool of rust --- Cargo.toml | 2 ++ README.md | 9 +++++++++ src/main.rs | 9 +++++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4d6a1a4..1a61a44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,4 +13,6 @@ tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" http = "*" +log = "0.4" +env_logger = "0.9" rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.3" } diff --git a/README.md b/README.md index 2e98fe2..ab66e8b 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,14 @@ helper = store ## 可配置环境变量 ## 配置环境变量 + +#### 日志设定溢出Level的环境变量 +RUST_LOG=error +RUST_LOG=warn +RUST_LOG=info +RUST_LOG=debug +RUST_LOG=trace + #### Simnow 开盘时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 @@ -78,6 +86,7 @@ helper = store - DAPR_HTTP_HOST(可不配置,默认为localhost,配置为了方便调试) - DAPR_HTTP_PORT(可不配置,默认为3500,配置为了方便调试) + ##### Dapr必须配置的组件名字 - 状态组件固定名字为statestore diff --git a/src/main.rs b/src/main.rs index 5d6202a..e20b162 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,6 @@ +#[macro_use] +extern crate log; + mod ctp_client; mod routes; mod request; @@ -20,6 +23,8 @@ async fn shutdown_signal() { #[tokio::main] async fn main() { + env_logger::init(); + mdcontroller::init().await; // We'll bind to 127.0.0.1:5000 @@ -36,13 +41,13 @@ async fn main() { let server = Server::bind(&addr).serve(make_svc); - println!("Listening on http://{}", addr); + info!("Listening on http://{}", addr); // And now add a graceful shutdown signal... let graceful = server.with_graceful_shutdown(shutdown_signal()); // Run this server for... forever! if let Err(e) = graceful.await { - eprintln!("server error: {}", e); + error!("server error: {}", e); } } -- Gitee From 96b602e4894b81c0702ae8987d23c9b5ab811d2a Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 7 Sep 2021 16:40:42 +0800 Subject: [PATCH 09/75] using log+env_logger to log all project --- README.md | 10 ++-- src/ctp_client/mdcontroller.rs | 95 +++++++++++++--------------------- src/dapr/component_client.rs | 10 ++-- 3 files changed, 45 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index ab66e8b..58743e3 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,11 @@ helper = store ## 配置环境变量 #### 日志设定溢出Level的环境变量 -RUST_LOG=error -RUST_LOG=warn -RUST_LOG=info -RUST_LOG=debug -RUST_LOG=trace +- RUST_LOG=error +- RUST_LOG=warn +- RUST_LOG=info +- RUST_LOG=debug +- RUST_LOG=trace #### Simnow 开盘时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 0359284..dea12d8 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -6,7 +6,6 @@ use super::super::result::RspResult; use super::super::utils::ctperror::{GenericError}; - /// like rust_ctp project test_ctp.rs file use rust_ctp::md_api; @@ -31,26 +30,30 @@ static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); static CTP_BROKER_ID: OnceCell = OnceCell::new(); /// ctp_access main.rs fn main(){} pub async fn init(){ - println!("ctp_access init statestore"); + debug!("start; init sub_instrument_list into statestore"); let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; - println!("ctp_access init statestore response"); + debug!("end; init sub_instrument_list"); match res { Ok(_) => {}, Err(e) => { - panic!("Init Sub Instrument List Error:{}",e); + panic!("init sub_instrument_list error:{}",e); } } - println!("ctp_access init ctp"); + debug!("start; init CTP"); ready_for_ctp(); - println!("ctp_access init md_event_handler"); + debug!("end; init CTP"); + + debug!("start; init md client event_handler"); register_md_event_handler(); + debug!("end; init md client event_handler"); - println!("ctp_access init md connection"); + info!("start; init md client connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); md_api::connect(CTP_MARKET_FRONT_ADDR.get().unwrap()); + debug!("end; init md client connection"); - println!("ctp_access init finish!!!"); + info!("init successfully!"); } fn ready_for_ctp(){ @@ -62,57 +65,44 @@ fn ready_for_ctp(){ let version = md_api::get_version(); - println!("CTP is Ready, Version is {}", version); + info!("CTP is ready, version is {}", version); } /// 必须主线程先完成注册CTP的事件处理器(闭包) fn register_md_event_handler() { md_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { - println!("Rust Ops,Error!!!"); - println!("===========Error=============="); - println!("Rust Error nRequestID: {}", n_request_id); - println!("Rust Error bIsLast: {}", b_is_last); - println!("Rust Error ErrorID: {}", rsp_info.ErrorID); - println!("Rust Error ErrorMsg: {}", rsp_info.ErrorMsg); - println!("===========Error=============="); + error!("md_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); }); md_api::EventHandler::OnFrontConnected(|| { - println!("Rust Connected,then login"); + info!("md_api::EventHandler::OnFrontConnected,then login"); while md_api::login(CTP_USER_ID.get().unwrap(), CTP_USER_PASSWORD.get().unwrap(), CTP_BROKER_ID.get().unwrap()) != 0 { - println!("Rust login failed, continue after 2s ..."); + error!("md_api::login failed, re_login after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } - println!("Rust send login request successfully."); - + info!("md_api send login request successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); }); md_api::EventHandler::OnFrontDisconnected(|n_reason| { - println!("Rust onFrontDisconnected, reason code: {}", n_reason); + info!("md_api::EventHandler::OnFrontDisconnected, reason code: {}", n_reason); }); md_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID == 0 { - println!("Rust mdclient Login successfully."); - println!( - "Rust mdclient UserLogin UserID: {}, TradingDay: {}, LoginTime: {}", - rsp_user_login.UserID, rsp_user_login.TradingDay, rsp_user_login.LoginTime - ); + info!("md_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}",rsp_user_login.TradingDay); let rt = tokio::runtime::Runtime::new().unwrap(); let _ = rt.block_on(resub_if_relogin()); }else{ - println!("Rust Ops,UserLogin Error!!!"); - println!("===========Error=============="); - println!("Rust UserLogin Error nRequestID: {}", n_request_id); - println!("Rust UserLogin Error bIsLast: {}", b_is_last); - println!("Rust UserLogin Error ErrorID: {}", rsp_info.ErrorID); - println!("Rust UserLogin Error ErrorMsg: {}", rsp_info.ErrorMsg); - println!("===========Error=============="); + error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); } }); @@ -128,23 +118,8 @@ fn register_md_event_handler() { md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { - println!( - "Rust OnRtnDepthMarketData TradingDay: {}", - depth_market_data.TradingDay - ); - - println!( - "Rust OnRtnDepthMarketData UpdateTime: {}", - depth_market_data.UpdateTime - ); - - println!( - "Rust OnRtnDepthMarketData InstrumentID: {}", - depth_market_data.InstrumentID - ); - println!( - "Rust OnRtnDepthMarketData LastPrice: {}", - depth_market_data.LastPrice + info!("md_api::EventHandler::OnRtnDepthMarketData, TradingDay: {},InstrumentID: {}, LastPrice: {}", + depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice ); let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); @@ -158,7 +133,7 @@ fn register_md_event_handler() { match json_str { Err(e) => { - eprintln!("Error serialize json depth market data!:{}",e) + error!("Error serialize json depth market data!:{}",e) }, Ok(event_json) => { @@ -233,14 +208,14 @@ async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result { - eprintln!("Get CTP SUB_MAP Error:{}",e); + error!("save_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); }, Ok(res_body) => { let full_body = hyper::body::to_bytes(res_body.into_body()).await?; let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - println!("Get CTP Sub_Map json_str:{}",last_sub_map_json_str); + debug!("save_sub_instrument_ids, Get CTP Sub_Map json_str:{}",last_sub_map_json_str); let mut new_sub_map = HashMap::new(); @@ -264,13 +239,13 @@ async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result { - eprintln!("Save CTP SUB_MAP Error:{}",e); + error!("save_sub_instrument_ids, Save CTP SUB_MAP Error:{}",e); return Err(Box::new(CTPError{code:1001,msg: "Save CTP SUB_MAP Error".to_owned()})); }, Ok(_) => { @@ -291,7 +266,7 @@ pub async fn get_sub_instruments() -> Result,GenericError> { match result { Err(e) => { - eprintln!("Get CTP SUB_MAP Error:{}",e); + error!("get_sub_instruments, Get CTP SUB_MAP Error:{}",e); return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); }, Ok(resp) => { @@ -299,7 +274,7 @@ pub async fn get_sub_instruments() -> Result,GenericError> { let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - //println!("Get CTP Sub_Map json str:{}",last_sub_map_json_str); + debug!("get_sub_instruments, Get CTP Sub_Map json str:{}",last_sub_map_json_str); let response = Response::builder() .status(StatusCode::OK) @@ -317,7 +292,7 @@ pub async fn resub_if_relogin() -> Result,GenericError> { match result { Err(e) => { - eprintln!("resub_if_relogin: Get CTP SUB_MAP Error:{}",e); + error!("resub_if_relogin, Get CTP SUB_MAP Error:{}",e); return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); }, Ok(resp) => { @@ -328,7 +303,7 @@ pub async fn resub_if_relogin() -> Result,GenericError> { if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { let last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; - println!("resub_if_relogin: GET Last Sub Map:{:?}", last_sub_map); + debug!("resub_if_relogin, GET Last Sub Map:{:?}", last_sub_map); let mut instrument_ids = vec![]; for (instrument_id,_) in last_sub_map{ instrument_ids.push(instrument_id); @@ -337,7 +312,7 @@ pub async fn resub_if_relogin() -> Result,GenericError> { let ret = md_api::subscribe(&instrument_ids); if ret != 0 { - eprintln!("resub_if_relogin: Subscribe LAST SUB_MAP ErrorCode:{}",ret); + error!("resub_if_relogin, Subscribe LAST SUB_MAP ErrorCode:{}",ret); return Err(Box::new(CTPError{code:1001,msg: "Subscribe LAST SUB_MAP Error".to_owned()})); } } diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index d6cf619..e26b580 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -14,7 +14,7 @@ pub async fn fetch_state_from_statestore(state_key:String) -> Result Result Result Result{ - eprintln!("pub_event_to_topic Error:{}",e); + error!("pub_event_to_topic Error:{}",e); return Err(Box::new(e)); } -- Gitee From 73a099ae1b9ae524a65bf2dbc8abb8d6a5c25cfb Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 8 Sep 2021 10:43:46 +0800 Subject: [PATCH 10/75] using on_front_disconnected_reason to describe on_front_disconnected reason --- README.md | 15 +++++++++++++++ src/ctp_client/mdcontroller.rs | 4 ++-- src/utils/ctperror.rs | 17 +++++++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 58743e3..cd14b3e 100644 --- a/README.md +++ b/README.md @@ -55,10 +55,18 @@ helper = store #### 日志设定溢出Level的环境变量 - RUST_LOG=error + - 面对程序crash前一秒情况,输出crash前一秒的错误信息 + - 面对程序不crash的情况, 其他部件出错,导致本程序状态的错误,帮助告警 - RUST_LOG=warn + - 面对程序不常见的情况,输出if-else的不常用分支的日志,作为提醒 - RUST_LOG=info + - 面对没出现bug情况,输出日常运维程序基本状态的日志 + - 面对日常运维情况,输出程序的关键信息,生命周期,状态 - RUST_LOG=debug + - 面对开发调试情况,更细的用日志 + - 面对修复bug情况,更细的日志 - RUST_LOG=trace + - 面对需要跟踪进程,线程,函数级别 #### Simnow 开盘时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 @@ -90,6 +98,11 @@ helper = store ##### Dapr必须配置的组件名字 - 状态组件固定名字为statestore +#### 运行Docker容器前的DAPR环境支持 +``` +kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 +``` + #### Docker RUN - docker运行命令 @@ -100,3 +113,5 @@ helper = store - 最后加载环境变量 ```source /root/.bashrc``` + + diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index dea12d8..b31dc26 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -17,7 +17,7 @@ use std::collections::HashMap; use crate::dapr::component_client::{pub_event_to_topic, fetch_state_from_statestore, save_state_to_statestore}; use crate::ctp_client::mdevent::Event; -use crate::utils::ctperror::CTPError; +use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; static CTP_CLIENT_ID: &str = "CTP"; @@ -89,7 +89,7 @@ fn register_md_event_handler() { }); md_api::EventHandler::OnFrontDisconnected(|n_reason| { - info!("md_api::EventHandler::OnFrontDisconnected, reason code: {}", n_reason); + info!("md_api::EventHandler::OnFrontDisconnected, reason: {}", on_front_disconnected_reason(n_reason)); }); md_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { diff --git a/src/utils/ctperror.rs b/src/utils/ctperror.rs index 81fef43..8cb0369 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctperror.rs @@ -43,4 +43,21 @@ pub async fn unprocessable_request() -> Result,GenericError> { .body(Body::from(json))?; Ok(response) +} + +///@param nReason 错误原因 +///#4097 网络读失败 +///#4098 网络写失败 +///#8193 接收心跳超时 +///#8194 发送心跳失败 +///#8195 收到错误报文 +pub fn on_front_disconnected_reason(n_reason: i32)-> String { + match n_reason { + 4097 => "网络读失败".to_string(), + 4098 => "网络写失败".to_string(), + 8193 => "接收心跳超时".to_string(), + 8194 => "发送心跳失败".to_string(), + 8195 => "收到错误报文".to_string(), + _ => "未知错误码".to_string(), + } } \ No newline at end of file -- Gitee From 3b0b47c61854f8db15627ae08256404e9cdd194a Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 00:42:36 +0800 Subject: [PATCH 11/75] validate IS_MD_LOGIN status before sub & OnRspSubMarketData --- Cargo.toml | 2 +- src/ctp_client/mdcontroller.rs | 142 +++++++++++++++++++------ src/rust_ctp_client/librustmdclient.so | Bin 78888 -> 79016 bytes 3 files changed, 109 insertions(+), 35 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1a61a44..0cff878 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,4 +15,4 @@ serde_json = "1.0" http = "*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.3" } +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.4" } diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index b31dc26..d030185 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,3 +1,4 @@ + use hyper::{Body,header,Request, Response, StatusCode}; use super::super::request::{SubscribeRequest}; @@ -19,7 +20,13 @@ use crate::dapr::component_client::{pub_event_to_topic, fetch_state_from_statest use crate::ctp_client::mdevent::Event; use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; +struct CTPClientStatus{ + pub is_login:bool, + pub sub_map: HashMap +} + static CTP_CLIENT_ID: &str = "CTP"; +static CTP_MD_LOGIN_KEY:&str = "IS_MD_LOGIN"; static CTP_SUB_INSTRUMENTS_STATE_KEY:&str = "SUB_MAP"; static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; @@ -28,8 +35,14 @@ static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); static CTP_USER_ID: OnceCell = OnceCell::new(); static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); static CTP_BROKER_ID: OnceCell = OnceCell::new(); + /// ctp_access main.rs fn main(){} pub async fn init(){ + + debug!("start; init md_login false into statestore"); + save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string()).await; + debug!("end; init md_login"); + debug!("start; init sub_instrument_list into statestore"); let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; debug!("end; init sub_instrument_list"); @@ -45,14 +58,13 @@ pub async fn init(){ ready_for_ctp(); debug!("end; init CTP"); - debug!("start; init md client event_handler"); + debug!("start; init market front event_handler"); register_md_event_handler(); - debug!("end; init md client event_handler"); - - info!("start; init md client connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); - md_api::connect(CTP_MARKET_FRONT_ADDR.get().unwrap()); - debug!("end; init md client connection"); + debug!("end; init market front event_handler"); + info!("start; init market front connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); + md_connect(); + debug!("end; init market front connection"); info!("init successfully!"); } @@ -68,8 +80,7 @@ fn ready_for_ctp(){ info!("CTP is ready, version is {}", version); } -/// 必须主线程先完成注册CTP的事件处理器(闭包) -fn register_md_event_handler() { +fn md_connect(){ md_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { error!("md_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", @@ -80,22 +91,38 @@ fn register_md_event_handler() { md_api::EventHandler::OnFrontConnected(|| { info!("md_api::EventHandler::OnFrontConnected,then login"); - while md_api::login(CTP_USER_ID.get().unwrap(), CTP_USER_PASSWORD.get().unwrap(), CTP_BROKER_ID.get().unwrap()) != 0 { - error!("md_api::login failed, re_login after 2s ..."); + while md_login() != 0 { + error!("send md_api::login req failed, re_login after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } - info!("md_api send login request successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + info!("md_api send login req successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); }); md_api::EventHandler::OnFrontDisconnected(|n_reason| { info!("md_api::EventHandler::OnFrontDisconnected, reason: {}", on_front_disconnected_reason(n_reason)); + + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string())); + + debug!("reset ctp_md_login status to false"); }); + md_api::connect(CTP_MARKET_FRONT_ADDR.get().unwrap()); +} + +fn md_login() ->i32 { md_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID == 0 { + info!("md_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}",rsp_user_login.TradingDay); + + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"true".to_string())); + + debug!("set ctp_md_login status to true"); + let rt = tokio::runtime::Runtime::new().unwrap(); let _ = rt.block_on(resub_if_relogin()); @@ -103,9 +130,25 @@ fn register_md_event_handler() { error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); + + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string())); + + + debug!("reset ctp_md_login status to false"); } }); + + md_api::login(CTP_USER_ID.get().unwrap(), + CTP_USER_PASSWORD.get().unwrap(), + CTP_BROKER_ID.get().unwrap()) +} + +/// 必须主线程先完成注册CTP的事件处理器(闭包) +fn register_md_event_handler() { + + /* md_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { println!("Rust mdclient UserLogout nRequestID: {}", n_request_id); @@ -144,13 +187,6 @@ fn register_md_event_handler() { }); /* - md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - println!("Rust mdclient OnRspUnSubMarketData nRequestID: {}", n_request_id); - println!("Rust mdclient OnRspUnSubMarketData bIsLast: {}", b_is_last); - - println!("Rust mdclient OnRspUnSubMarketData InstrumentID: {}",rsp_specific_instrument.InstrumentID); - }); - md_api::EventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { println!("Rust mdclient SubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); }); @@ -171,31 +207,69 @@ pub async fn get_trading_day() -> Result,GenericError> { Ok(response) } +///登录成功才可以订阅 pub async fn subscribe(req: Request) -> Result,GenericError> { - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; + md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); + }); + - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + let result = fetch_state_from_statestore(CTP_MD_LOGIN_KEY.to_string()).await; + + match result { + Err(e) => { + error!("save_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + }, + Ok(res_body) => { - save_sub_instrument_ids(&sub_req.instrument_ids).await?; + let full_body = hyper::body::to_bytes(res_body.into_body()).await?; + let is_login = String::from_utf8(full_body.to_vec())?; - let ret = md_api::subscribe(&sub_req.instrument_ids); + debug!("md is_login: {}",is_login); - let rsp_result = RspResult{ - code: 200, - msg: "".to_string(), - result: ret - }; + let mut ret = 0; + let mut ret_msg = "".to_string(); - let json = serde_json::to_string(&rsp_result)?; + if is_login == "true" { - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; - Ok(response) + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + + save_sub_instrument_ids(&sub_req.instrument_ids).await?; + + debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); + + ret = md_api::subscribe(&sub_req.instrument_ids); + + debug!("send subscribe req, return code: {}",ret); + + warn!("Only finish to send subscribe req, have no subscribe response yet!"); + }else { + ret = -1; + ret_msg = "User have not login,please login first.".to_string(); + } + + let rsp_result = RspResult{ + code: 200, + msg: ret_msg, + result: ret + }; + + let json = serde_json::to_string(&rsp_result)?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) + } + } } fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { diff --git a/src/rust_ctp_client/librustmdclient.so b/src/rust_ctp_client/librustmdclient.so index f43bbca4ffe1bbffe7721e72788fc3cde777144a..c11e62ff0c8821d6e8022ff3353f568ec2f3c3a7 100755 GIT binary patch delta 11781 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 b`iQ}PU38C+D>yzD&iRiJ72>0^IfeW`hJfvc delta 11532 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 -- Gitee From 9a03fa6248bb3eaf84b058c9ec5460075e07183d Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 15:25:01 +0800 Subject: [PATCH 12/75] =?UTF-8?q?add=20CTP=5FMD=5FLOGIN=EF=BC=8C=E5=9F=BA?= =?UTF-8?q?=E4=BA=8Eawait=E7=9A=84=E5=BC=82=E6=AD=A5=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E5=8F=AF=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ctp_client/mdcontroller.rs | 96 +++++++++++++++------------------- 1 file changed, 43 insertions(+), 53 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index d030185..96f4c5e 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -25,8 +25,15 @@ struct CTPClientStatus{ pub sub_map: HashMap } +use tokio::sync::Mutex; +use once_cell::sync::Lazy; +//基于await的异步线程安全的初始化的全局可变量 +static CTP_MD_LOGIN: Lazy> = Lazy::new(|| { + Mutex::new(false) +}); + static CTP_CLIENT_ID: &str = "CTP"; -static CTP_MD_LOGIN_KEY:&str = "IS_MD_LOGIN"; +//static CTP_MD_LOGIN_KEY:&str = "IS_MD_LOGIN"; static CTP_SUB_INSTRUMENTS_STATE_KEY:&str = "SUB_MAP"; static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; @@ -39,10 +46,6 @@ static CTP_BROKER_ID: OnceCell = OnceCell::new(); /// ctp_access main.rs fn main(){} pub async fn init(){ - debug!("start; init md_login false into statestore"); - save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string()).await; - debug!("end; init md_login"); - debug!("start; init sub_instrument_list into statestore"); let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; debug!("end; init sub_instrument_list"); @@ -103,7 +106,8 @@ fn md_connect(){ info!("md_api::EventHandler::OnFrontDisconnected, reason: {}", on_front_disconnected_reason(n_reason)); let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string())); + let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); + *is_login = false; debug!("reset ctp_md_login status to false"); }); @@ -113,17 +117,17 @@ fn md_connect(){ fn md_login() ->i32 { md_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { + let rt = tokio::runtime::Runtime::new().unwrap(); if rsp_info.ErrorID == 0 { info!("md_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}",rsp_user_login.TradingDay); - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"true".to_string())); + let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); + *is_login = true; debug!("set ctp_md_login status to true"); - let rt = tokio::runtime::Runtime::new().unwrap(); let _ = rt.block_on(resub_if_relogin()); }else{ @@ -131,9 +135,8 @@ fn md_login() ->i32 { rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(save_state_to_statestore(CTP_MD_LOGIN_KEY.to_string(),"false".to_string())); - + let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); + *is_login = false; debug!("reset ctp_md_login status to false"); } @@ -215,61 +218,48 @@ pub async fn subscribe(req: Request) -> Result,GenericError rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); }); + let is_login = CTP_MD_LOGIN.lock().await; - let result = fetch_state_from_statestore(CTP_MD_LOGIN_KEY.to_string()).await; - - match result { - Err(e) => { - error!("save_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); - }, - Ok(res_body) => { - - let full_body = hyper::body::to_bytes(res_body.into_body()).await?; - let is_login = String::from_utf8(full_body.to_vec())?; - - debug!("md is_login: {}",is_login); + info!("Before subscribe,check md is_login: {}",is_login); - let mut ret = 0; - let mut ret_msg = "".to_string(); + let mut ret = 0; + let mut ret_msg = "".to_string(); - if is_login == "true" { + if *is_login { - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - save_sub_instrument_ids(&sub_req.instrument_ids).await?; + save_sub_instrument_ids(&sub_req.instrument_ids).await?; - debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); + debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); - ret = md_api::subscribe(&sub_req.instrument_ids); + ret = md_api::subscribe(&sub_req.instrument_ids); - debug!("send subscribe req, return code: {}",ret); + debug!("send subscribe req, return code: {}",ret); - warn!("Only finish to send subscribe req, have no subscribe response yet!"); - }else { - ret = -1; - ret_msg = "User have not login,please login first.".to_string(); - } + warn!("Only finish to send subscribe req, have no subscribe response yet!"); + }else { + ret = -1; + ret_msg = "User have not login,please login first.".to_string(); + } - let rsp_result = RspResult{ - code: 200, - msg: ret_msg, - result: ret - }; + let rsp_result = RspResult{ + code: 200, + msg: ret_msg, + result: ret + }; - let json = serde_json::to_string(&rsp_result)?; + let json = serde_json::to_string(&rsp_result)?; - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; - Ok(response) - } - } + Ok(response) } fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { -- Gitee From 1284870f58f9eab0a0d730c7be508c25a5d0e7a6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 15:38:54 +0800 Subject: [PATCH 13/75] change log about subscribe after check md is_login status --- src/ctp_client/mdcontroller.rs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 96f4c5e..94b2fb5 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -92,14 +92,14 @@ fn md_connect(){ }); md_api::EventHandler::OnFrontConnected(|| { - info!("md_api::EventHandler::OnFrontConnected,then login"); - - while md_login() != 0 { - error!("send md_api::login req failed, re_login after 2s ..."); - thread::sleep(Duration::from_millis(2 * 1000)) - } - - info!("md_api send login req successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + // info!("md_api::EventHandler::OnFrontConnected,then login"); + // + // while md_login() != 0 { + // error!("send md_api::login req failed, re_login after 2s ..."); + // thread::sleep(Duration::from_millis(2 * 1000)) + // } + // + // info!("md_api send login req successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); }); md_api::EventHandler::OnFrontDisconnected(|n_reason| { @@ -213,6 +213,10 @@ pub async fn get_trading_day() -> Result,GenericError> { ///登录成功才可以订阅 pub async fn subscribe(req: Request) -> Result,GenericError> { + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); @@ -227,13 +231,6 @@ pub async fn subscribe(req: Request) -> Result,GenericError if *is_login { - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - - save_sub_instrument_ids(&sub_req.instrument_ids).await?; - debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); ret = md_api::subscribe(&sub_req.instrument_ids); @@ -241,7 +238,13 @@ pub async fn subscribe(req: Request) -> Result,GenericError debug!("send subscribe req, return code: {}",ret); warn!("Only finish to send subscribe req, have no subscribe response yet!"); + + save_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { + + warn!("Do not send subscribe req for instrument_ids: {:?}, because md is_login: {}", + &sub_req.instrument_ids, is_login); + ret = -1; ret_msg = "User have not login,please login first.".to_string(); } -- Gitee From a71db8db42d42aceb8782227264eafbfa26b9539 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 15:40:45 +0800 Subject: [PATCH 14/75] recover login code --- src/ctp_client/mdcontroller.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 94b2fb5..003f21f 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -92,14 +92,14 @@ fn md_connect(){ }); md_api::EventHandler::OnFrontConnected(|| { - // info!("md_api::EventHandler::OnFrontConnected,then login"); - // - // while md_login() != 0 { - // error!("send md_api::login req failed, re_login after 2s ..."); - // thread::sleep(Duration::from_millis(2 * 1000)) - // } - // - // info!("md_api send login req successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + info!("md_api::EventHandler::OnFrontConnected,then login"); + + while md_login() != 0 { + error!("send md_api::login req failed, re_login after 2s ..."); + thread::sleep(Duration::from_millis(2 * 1000)) + } + + info!("md_api send login req successfully. User_ID:{}, Broker_ID:{}",CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); }); md_api::EventHandler::OnFrontDisconnected(|n_reason| { -- Gitee From 1e69b812b1de18b60bbc12fcfa5a7f04f1a789ec Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 16:07:39 +0800 Subject: [PATCH 15/75] add debug log about check and resub if user relogin --- src/ctp_client/mdcontroller.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 003f21f..baa191a 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -128,8 +128,9 @@ fn md_login() ->i32 { debug!("set ctp_md_login status to true"); + debug!("start, check or resub last instrument_ids if CTP relogin"); let _ = rt.block_on(resub_if_relogin()); - + debug!("end, check or resub"); }else{ error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -270,7 +271,7 @@ fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String } async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result,GenericError> { - + debug!("save_sub_instrument_ids, before save new, we should fetch the last sub_instrument_ids."); let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; match result { @@ -368,9 +369,11 @@ pub async fn resub_if_relogin() -> Result,GenericError> { let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { + let last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; - debug!("resub_if_relogin, GET Last Sub Map:{:?}", last_sub_map); + debug!("resub Last Sub Map:{:?}", last_sub_map); + let mut instrument_ids = vec![]; for (instrument_id,_) in last_sub_map{ instrument_ids.push(instrument_id); -- Gitee From 59fbcae319a0fb5a88a172c622f73e212ea36709 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 16:11:42 +0800 Subject: [PATCH 16/75] add subscribe debug log --- src/ctp_client/mdcontroller.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index baa191a..d9debb9 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -238,7 +238,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError debug!("send subscribe req, return code: {}",ret); - warn!("Only finish to send subscribe req, have no subscribe response yet!"); + warn!("Only finish to send subscribe req, have not receive OnRspSubMarketData event yet!"); save_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { -- Gitee From 8745d54d3f36423073232d7b385c20708dc9aa7a Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 16:23:05 +0800 Subject: [PATCH 17/75] change log lever for readable --- src/ctp_client/mdcontroller.rs | 4 ++-- src/dapr/component_client.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index d9debb9..20b1681 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -128,9 +128,9 @@ fn md_login() ->i32 { debug!("set ctp_md_login status to true"); - debug!("start, check or resub last instrument_ids if CTP relogin"); + info!("start, check or resub last instrument_ids if CTP relogin"); let _ = rt.block_on(resub_if_relogin()); - debug!("end, check or resub"); + info!("end, check or resub"); }else{ error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index e26b580..5718888 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -14,7 +14,7 @@ pub async fn fetch_state_from_statestore(state_key:String) -> Result Result Result Date: Thu, 9 Sep 2021 16:55:41 +0800 Subject: [PATCH 18/75] change log lever for performence --- src/ctp_client/mdcontroller.rs | 60 ++++++++++++++++++---------------- src/dapr/component_client.rs | 6 ++-- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 20b1681..b575d8c 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -163,32 +163,7 @@ fn register_md_event_handler() { }); */ - md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { - - info!("md_api::EventHandler::OnRtnDepthMarketData, TradingDay: {},InstrumentID: {}, LastPrice: {}", - depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice - ); - - let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); - - let event = Event{ - client: String::from(CTP_CLIENT_ID), - payload: depth_market_data - }; - - let json_str = serde_json::to_string(&event); - - match json_str { - Err(e) => { - error!("Error serialize json depth market data!:{}",e) - }, - Ok(event_json) => { - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); - } - } - }); /* md_api::EventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { @@ -214,15 +189,42 @@ pub async fn get_trading_day() -> Result,GenericError> { ///登录成功才可以订阅 pub async fn subscribe(req: Request) -> Result,GenericError> { - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); }); + md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { + + debug!("md_api::EventHandler::OnRtnDepthMarketData, TradingDay: {},InstrumentID: {}, LastPrice: {}", + depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice + ); + + let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); + + let event = Event{ + client: String::from(CTP_CLIENT_ID), + payload: depth_market_data + }; + + let json_str = serde_json::to_string(&event); + + match json_str { + Err(e) => { + error!("Error serialize json depth market data!:{}",e) + }, + Ok(event_json) => { + + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + } + } + }); + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + let is_login = CTP_MD_LOGIN.lock().await; info!("Before subscribe,check md is_login: {}",is_login); diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index 5718888..e26b580 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -14,7 +14,7 @@ pub async fn fetch_state_from_statestore(state_key:String) -> Result Result Result Date: Thu, 9 Sep 2021 16:57:04 +0800 Subject: [PATCH 19/75] change annotation --- src/ctp_client/mdcontroller.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index b575d8c..7036343 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -152,7 +152,6 @@ fn md_login() ->i32 { /// 必须主线程先完成注册CTP的事件处理器(闭包) fn register_md_event_handler() { - /* md_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { println!("Rust mdclient UserLogout nRequestID: {}", n_request_id); @@ -163,8 +162,6 @@ fn register_md_event_handler() { }); */ - - /* md_api::EventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { println!("Rust mdclient SubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); -- Gitee From 85512ff036b936fa72b52ab0030c1782406922d8 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 17:40:54 +0800 Subject: [PATCH 20/75] add md unsubscribe api --- src/ctp_client/mdcontroller.rs | 108 +++++++++++++++++++++++++++++++++ src/routes.rs | 3 +- 2 files changed, 110 insertions(+), 1 deletion(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 7036343..d87bbcb 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -265,6 +265,60 @@ pub async fn subscribe(req: Request) -> Result,GenericError Ok(response) } +pub async fn unsubscribe(req: Request) -> Result,GenericError> { + + md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); + }); + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + + let is_login = CTP_MD_LOGIN.lock().await; + + info!("Before unsubscribe,check md is_login: {}",is_login); + + let mut ret = 0; + let mut ret_msg = "".to_string(); + + if *is_login { + + debug!("send unsubscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); + + ret = md_api::unsubscribe(&sub_req.instrument_ids); + + debug!("send unsubscribe req, return code: {}",ret); + + warn!("Only finish to send unsubscribe req, have not receive OnRspUnSubMarketData event yet!"); + + delete_sub_instrument_ids(&sub_req.instrument_ids).await?; + }else { + + warn!("Do not send unsubscribe req for instrument_ids: {:?}, because md is_login: {}", + &sub_req.instrument_ids, is_login); + + ret = -1; + ret_msg = "User have not login,please login first.".to_string(); + } + + let rsp_result = RspResult{ + code: 200, + msg: ret_msg, + result: ret + }; + + let json = serde_json::to_string(&rsp_result)?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) +} + fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { format!("{}-{}",client_id,instrument_id) } @@ -328,6 +382,60 @@ async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result) -> Result,GenericError>{ + debug!("delete_sub_instrument_ids, before delete, we should fetch the last sub_instrument_ids."); + let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; + + match result { + Err(e) => { + error!("delete_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + }, + Ok(res_body) => { + let full_body = hyper::body::to_bytes(res_body.into_body()).await?; + let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; + + debug!("delete_sub_instrument_ids, Get CTP Sub_Map json_str:{}",last_sub_map_json_str); + + let mut new_sub_map = HashMap::new(); + + if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { + let mut last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; + + for id in instrument_ids { + last_sub_map.remove(&String::from(id)); + } + + for (id,_) in last_sub_map { + new_sub_map.insert(String::from(id),true); + } + + } + + let new_sub_map_json_str = serde_json::to_string(&new_sub_map)?; + + debug!("delete_sub_instrument_ids, New CTP Sub_Map json_str:{}",new_sub_map_json_str); + + let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),new_sub_map_json_str).await; + + match res { + Err(e) => { + error!("delete_sub_instrument_ids, Save CTP SUB_MAP Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "Save CTP SUB_MAP Error".to_owned()})); + }, + Ok(_) => { + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from("".to_string()))?; + + Ok(response) + } + } + } + } +} + pub async fn get_sub_instruments() -> Result,GenericError> { let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; diff --git a/src/routes.rs b/src/routes.rs index e7aefff..bbdf3de 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -23,7 +23,8 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> } (&Method::PUT, "/api/v1/unsubscribe") => { - Ok(Response::new(req.into_body())) + mdcontroller::unsubscribe(req).await + //Ok(Response::new(req.into_body())) } // Return the 404 Not Found for other routes. -- Gitee From 09fc468cea25bbafdf47a13b93c35fb40ef835e6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 9 Sep 2021 17:46:17 +0800 Subject: [PATCH 21/75] change Readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cd14b3e..b8e4890 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,9 @@ kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 #### Docker RUN - docker运行命令 -```docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-stable-etcprofile-ctpbashrcenv-ctpaccesslib``` +``` +docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-etcprofile-ctpbashrcenv-ctpaccesslib-nettools +``` - 根据Simnow开盘时间/非开盘时间更改环境变量CTP_MARKET_FRONT_ADDR与CTP_TRADE_FRONT_ADDR ```vim /root/.bashrc``` -- Gitee From 41c36ce2c1aeb36b3459415bf41f3a353225d9e2 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 10 Sep 2021 00:47:53 +0800 Subject: [PATCH 22/75] add common ctp init func for td & md --- src/ctp_client/mdcontroller.rs | 46 +++++++++++++++------------------- src/ctp_client/mod.rs | 35 +++++++++++++++++++++++++- src/main.rs | 4 ++- 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index d87bbcb..e89b5f6 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,6 +1,12 @@ use hyper::{Body,header,Request, Response, StatusCode}; +use super::{CTP_CLIENT_ID, + CTP_MARKET_FRONT_ADDR, + CTP_USER_ID, + CTP_BROKER_ID, + CTP_USER_PASSWORD}; + use super::super::request::{SubscribeRequest}; use super::super::result::RspResult; @@ -20,11 +26,6 @@ use crate::dapr::component_client::{pub_event_to_topic, fetch_state_from_statest use crate::ctp_client::mdevent::Event; use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; -struct CTPClientStatus{ - pub is_login:bool, - pub sub_map: HashMap -} - use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 @@ -32,17 +33,9 @@ static CTP_MD_LOGIN: Lazy> = Lazy::new(|| { Mutex::new(false) }); -static CTP_CLIENT_ID: &str = "CTP"; -//static CTP_MD_LOGIN_KEY:&str = "IS_MD_LOGIN"; - static CTP_SUB_INSTRUMENTS_STATE_KEY:&str = "SUB_MAP"; static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; -static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); -static CTP_USER_ID: OnceCell = OnceCell::new(); -static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); -static CTP_BROKER_ID: OnceCell = OnceCell::new(); - /// ctp_access main.rs fn main(){} pub async fn init(){ @@ -58,7 +51,7 @@ pub async fn init(){ } debug!("start; init CTP"); - ready_for_ctp(); + //ready_for_ctp(); debug!("end; init CTP"); debug!("start; init market front event_handler"); @@ -70,18 +63,19 @@ pub async fn init(){ debug!("end; init market front connection"); info!("init successfully!"); } - -fn ready_for_ctp(){ - - CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); - CTP_USER_ID.set(env::var("CTP_USER_ID").expect("Ops,Error for Env Var CTP_USER_ID")).unwrap(); - CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); - CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); - - let version = md_api::get_version(); - - info!("CTP is ready, version is {}", version); -} +// +// fn ready_for_ctp(){ +// +// CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); +// CTP_TRADE_FRONT_ADDR.set(env::var("CTP_TRADE_FRONT_ADDR").expect("Ops,Error for Env Var CTP_TRADE_FRONT_ADDR")).unwrap(); +// CTP_USER_ID.set(env::var("CTP_USER_ID").expect("Ops,Error for Env Var CTP_USER_ID")).unwrap(); +// CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); +// CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); +// +// let version = md_api::get_version(); +// +// info!("CTP is ready, version is {}", version); +// } fn md_connect(){ diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index e3e46f2..0d15438 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -1,2 +1,35 @@ pub mod mdcontroller; -pub mod mdevent; \ No newline at end of file +pub mod mdevent; + +use std::{env}; +use once_cell::sync::OnceCell; +use tokio::sync::Mutex; +use once_cell::sync::Lazy; + +static CTP_CLIENT_ID: &str = "CTP"; + +static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); +static CTP_TRADE_FRONT_ADDR: OnceCell = OnceCell::new(); + +static CTP_USER_ID: OnceCell = OnceCell::new(); +static CTP_USER_PASSWORD: OnceCell = OnceCell::new(); +static CTP_BROKER_ID: OnceCell = OnceCell::new(); +static CTP_APP_ID: OnceCell = OnceCell::new(); +static CTP_AUTH_CODE: OnceCell = OnceCell::new(); +static CTP_USER_PRODUCT_INFO: OnceCell = OnceCell::new(); + +pub async fn init() { + + CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); + CTP_TRADE_FRONT_ADDR.set(env::var("CTP_TRADE_FRONT_ADDR").expect("Ops,Error for Env Var CTP_TRADE_FRONT_ADDR")).unwrap(); + + CTP_USER_ID.set(env::var("CTP_USER_ID").expect("Ops,Error for Env Var CTP_USER_ID")).unwrap(); + CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); + CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); + + CTP_APP_ID.set(env::var("CTP_APP_ID").expect("Ops,Error for Env Var CTP_APP_ID")).unwrap(); + CTP_AUTH_CODE.set(env::var("CTP_AUTH_CODE").expect("Ops,Error for Env Var CTP_AUTH_CODE")).unwrap(); + CTP_USER_PRODUCT_INFO.set(env::var("CTP_USER_PRODUCT_INFO").expect("Ops,Error for Env Var CTP_USER_PRODUCT_INFO")).unwrap(); + + mdcontroller::init().await; +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index e20b162..9d4e43e 100755 --- a/src/main.rs +++ b/src/main.rs @@ -25,7 +25,9 @@ async fn shutdown_signal() { async fn main() { env_logger::init(); - mdcontroller::init().await; + debug!("start; init CTP"); + ctp_client::init().await; + debug!("end; init CTP"); // We'll bind to 127.0.0.1:5000 let addr_str = "0.0.0.0:5000"; -- Gitee From 1065cbd84c876d668bc2ba83f6c1a8dfa8b5d5bd Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 10 Sep 2021 15:16:35 +0800 Subject: [PATCH 23/75] add tdcontroller --- src/ctp_client/mdcontroller.rs | 61 +++++------- src/ctp_client/mod.rs | 5 +- src/ctp_client/tdcontroller.rs | 172 +++++++++++++++++++++++++++++++++ src/main.rs | 1 - 4 files changed, 200 insertions(+), 39 deletions(-) create mode 100644 src/ctp_client/tdcontroller.rs diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index e89b5f6..2ac003e 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,5 +1,4 @@ - -use hyper::{Body,header,Request, Response, StatusCode}; +use rust_ctp::md_api; use super::{CTP_CLIENT_ID, CTP_MARKET_FRONT_ADDR, @@ -7,25 +6,28 @@ use super::{CTP_CLIENT_ID, CTP_BROKER_ID, CTP_USER_PASSWORD}; -use super::super::request::{SubscribeRequest}; - -use super::super::result::RspResult; +use crate::dapr::component_client::{ + pub_event_to_topic, + fetch_state_from_statestore, + save_state_to_statestore}; use super::super::utils::ctperror::{GenericError}; -/// like rust_ctp project test_ctp.rs file +use crate::ctp_client::mdevent::Event; +use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; -use rust_ctp::md_api; +////////CTP_Access Dependency//////// -use std::{env, thread}; -use once_cell::sync::OnceCell; -use std::time::Duration; -use std::collections::HashMap; -use crate::dapr::component_client::{pub_event_to_topic, fetch_state_from_statestore, save_state_to_statestore}; +use hyper::{Body,header,Request, Response, StatusCode}; -use crate::ctp_client::mdevent::Event; -use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; +use super::super::request::{SubscribeRequest}; +use super::super::result::RspResult; + +use std::thread; +use std::time::Duration; + +use std::collections::HashMap; use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 @@ -50,32 +52,19 @@ pub async fn init(){ } } - debug!("start; init CTP"); - //ready_for_ctp(); - debug!("end; init CTP"); - - debug!("start; init market front event_handler"); + debug!("start; init CTP market client event_handler"); register_md_event_handler(); - debug!("end; init market front event_handler"); + debug!("end; init CTP market client event_handler"); - info!("start; init market front connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); + info!("start; init CTP market client connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); md_connect(); - debug!("end; init market front connection"); - info!("init successfully!"); + debug!("end; init CTP market client connection"); + info!("init CTP market client successfully!"); + + let version = md_api::get_version(); + info!("CTP market client version is {}", version); + } -// -// fn ready_for_ctp(){ -// -// CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); -// CTP_TRADE_FRONT_ADDR.set(env::var("CTP_TRADE_FRONT_ADDR").expect("Ops,Error for Env Var CTP_TRADE_FRONT_ADDR")).unwrap(); -// CTP_USER_ID.set(env::var("CTP_USER_ID").expect("Ops,Error for Env Var CTP_USER_ID")).unwrap(); -// CTP_USER_PASSWORD.set(env::var("CTP_USER_PASSWORD").expect("Ops,Error for Env Var CTP_USER_PASSWORD")).unwrap(); -// CTP_BROKER_ID.set(env::var("CTP_BROKER_ID").expect("Ops,Error for Env Var CTP_BROKER_ID")).unwrap(); -// -// let version = md_api::get_version(); -// -// info!("CTP is ready, version is {}", version); -// } fn md_connect(){ diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 0d15438..e9db21b 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -1,10 +1,9 @@ pub mod mdcontroller; +pub mod tdcontroller; pub mod mdevent; use std::{env}; use once_cell::sync::OnceCell; -use tokio::sync::Mutex; -use once_cell::sync::Lazy; static CTP_CLIENT_ID: &str = "CTP"; @@ -32,4 +31,6 @@ pub async fn init() { CTP_USER_PRODUCT_INFO.set(env::var("CTP_USER_PRODUCT_INFO").expect("Ops,Error for Env Var CTP_USER_PRODUCT_INFO")).unwrap(); mdcontroller::init().await; + + tdcontroller::init().await; } \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs new file mode 100644 index 0000000..93725af --- /dev/null +++ b/src/ctp_client/tdcontroller.rs @@ -0,0 +1,172 @@ +use rust_ctp::td_api; +use super::super::result::RspResult; +use super::super::utils::ctperror::{GenericError}; + +use super::{CTP_CLIENT_ID, + CTP_TRADE_FRONT_ADDR, + CTP_USER_ID, + CTP_BROKER_ID, + CTP_USER_PASSWORD, + CTP_APP_ID, + CTP_AUTH_CODE, + CTP_USER_PRODUCT_INFO}; + +use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; + +////////CTP_Access Dependency//////// + +use hyper::{Body,header,Request, Response, StatusCode}; + +use std::thread; +use std::time::Duration; + +use tokio::sync::Mutex; +use once_cell::sync::Lazy; +//基于await的异步线程安全的初始化的全局可变量 +static CTP_TD_LOGIN: Lazy> = Lazy::new(|| { + Mutex::new(false) +}); + +pub async fn init() { + + debug!("start; init CTP trader client event_handler"); + register_td_event_handler(); + debug!("end; init CTP trader client event_handler"); + + info!("start; init CTP trader client connection, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); + td_connect(); + debug!("end; init CTP trader client connection"); + info!("init CTP trader client successfully!"); + + let version = td_api::get_version(); + + info!("CTP trader client version is {}", version); +} + +/// 必须主线程先完成注册CTP的事件处理器(闭包) +fn register_td_event_handler() { + + td_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { + + debug!("md_api::EventHandler::OnRspUserLogout, UserID {} BrokerID {} nRequestID: {},bIsLast: {}", + rsp_user_logout.UserID,rsp_user_logout.BrokerID,n_request_id,b_is_last); + }); +} + +fn td_connect(){ + + td_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + }); + + td_api::EventHandler::OnFrontConnected(|| { + info!("td_api::EventHandler::OnFrontConnected,then authenticate"); + + while td_authenticate() != 0 { + println!("Rust authenticate failed, continue after 2s ..."); + thread::sleep(Duration::from_millis(2 * 1000)) + } + + debug!("Rust send authenticate request successfully."); + }); + + td_api::EventHandler::OnFrontDisconnected(|n_reason| { + info!("td_api::EventHandler::OnFrontDisconnected, reason: {}", + on_front_disconnected_reason(n_reason)); + + let rt = tokio::runtime::Runtime::new().unwrap(); + let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); + *is_login = false; + + debug!("reset ctp_td_login status to false"); + }); + + td_api::connect(CTP_TRADE_FRONT_ADDR.get().unwrap()); +} + + +fn td_authenticate() ->i32 { + td_api::EventHandler::OnRspAuthenticate(|rsp_authenticate_field, rsp_info, n_request_id, b_is_last| { + + debug!("td_api::EventHandler::OnRspAuthenticate, UserID: {}, AppType: {},nRequestID: {},bIsLast: {}", + rsp_authenticate_field.UserID,rsp_authenticate_field.AppType,n_request_id,b_is_last); + + if rsp_info.ErrorID == 0 { + while td_login() != 0 { + warn!("td client send login req failed, continue after 2s ..."); + thread::sleep(Duration::from_millis(2 * 1000)) + } + + info!("td client send login req successfully. User_ID:{}, Broker_ID:{}", + CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + + }else{ + error!("td_api::EventHandler::OnRspAuthenticate, ErrorID: {},ErrorMsg: {}", + rsp_info.ErrorID,rsp_info.ErrorMsg); + } + }); + + td_api::authenticate(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + CTP_APP_ID.get().unwrap(), + CTP_AUTH_CODE.get().unwrap(), + CTP_USER_PRODUCT_INFO.get().unwrap()) +} + +fn td_login() ->i32 { + td_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { + let rt = tokio::runtime::Runtime::new().unwrap(); + + //登录完成,进行结算单确认 + if rsp_info.ErrorID == 0 { + + info!("td_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}, nRequestID{}, bIsLast {}", + rsp_user_login.TradingDay,n_request_id,b_is_last); + + while td_confirm_settlement_info() != 0 { + println!("td client send confirm_settlement_info req failed, continue after 2s ..."); + thread::sleep(Duration::from_millis(2 * 1000)) + } + + let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); + *is_login = true; + + debug!("set ctp_td_login status to true"); + }else{ + error!("td_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); + *is_login = false; + + debug!("reset ctp_td_login status to false"); + } + + }); + + td_api::login(CTP_USER_ID.get().unwrap(), + CTP_USER_PASSWORD.get().unwrap(), + CTP_BROKER_ID.get().unwrap()) +} + +fn td_confirm_settlement_info() ->i32 { + + td_api::EventHandler::OnRspSettlementInfoConfirm(|rsp_settlement_info_confirm, rsp_info, n_request_id, b_is_last| { + + debug!("td_api::EventHandler::OnRspSettlementInfoConfirm, InvestorID: {}, ConfirmDate: {}, nRequestID: {},bIsLast: {}", + rsp_settlement_info_confirm.InvestorID, rsp_settlement_info_confirm.ConfirmDate, + n_request_id,b_is_last); + + if rsp_info.ErrorID != 0 { + debug!("td client SettlementInfoConfirm Error, ErrorID: {},ErrorMsg: {}", + rsp_info.ErrorID, rsp_info.ErrorMsg); + }else{ + debug!("td client confirm Settlement Info successfully."); + } + }); + + td_api::confirm_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()) +} diff --git a/src/main.rs b/src/main.rs index 9d4e43e..2a39ec6 100755 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,6 @@ mod result; mod utils; mod dapr; -use ctp_client::mdcontroller; use std::convert::Infallible; use std::net::SocketAddr; use hyper::{Server}; -- Gitee From 3ff20522800620088e87febddd44dc89eb031104 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 10 Sep 2021 15:28:12 +0800 Subject: [PATCH 24/75] modified log --- src/ctp_client/tdcontroller.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 93725af..2ef2034 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -164,7 +164,7 @@ fn td_confirm_settlement_info() ->i32 { debug!("td client SettlementInfoConfirm Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); }else{ - debug!("td client confirm Settlement Info successfully."); + debug!("td client confirm settlement info successfully."); } }); -- Gitee From 556e2da70cbfd137f0a9b362554ece3e63c09817 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 13 Sep 2021 17:50:56 +0800 Subject: [PATCH 25/75] add query_trading_account safely sync replace async ctp thread & http thread --- Cargo.toml | 2 +- src/ctp_client/mdcontroller.rs | 14 ++--- src/ctp_client/mdevent.rs | 11 ---- src/ctp_client/mod.rs | 15 ++++- src/ctp_client/tdcontroller.rs | 107 +++++++++++++++++++++++++++++++++ src/routes.rs | 8 ++- 6 files changed, 135 insertions(+), 22 deletions(-) delete mode 100644 src/ctp_client/mdevent.rs diff --git a/Cargo.toml b/Cargo.toml index 0cff878..dff3e24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,4 +15,4 @@ serde_json = "1.0" http = "*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.1.4" } +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.2" } diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 2ac003e..1a06976 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,5 +1,6 @@ use rust_ctp::md_api; +use super::Event; use super::{CTP_CLIENT_ID, CTP_MARKET_FRONT_ADDR, CTP_USER_ID, @@ -12,8 +13,6 @@ use crate::dapr::component_client::{ save_state_to_statestore}; use super::super::utils::ctperror::{GenericError}; - -use crate::ctp_client::mdevent::Event; use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; ////////CTP_Access Dependency//////// @@ -170,8 +169,8 @@ pub async fn get_trading_day() -> Result,GenericError> { pub async fn subscribe(req: Request) -> Result,GenericError> { md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", - rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); + debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! rsp_info:{:?}, nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); }); md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { @@ -183,7 +182,8 @@ pub async fn subscribe(req: Request) -> Result,GenericError let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); let event = Event{ - client: String::from(CTP_CLIENT_ID), + client: CTP_CLIENT_ID, + name: "OnRtnDepthMarketData", payload: depth_market_data }; @@ -209,7 +209,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError info!("Before subscribe,check md is_login: {}",is_login); - let mut ret = 0; + let mut ret; let mut ret_msg = "".to_string(); if *is_login { @@ -263,7 +263,7 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr info!("Before unsubscribe,check md is_login: {}",is_login); - let mut ret = 0; + let mut ret; let mut ret_msg = "".to_string(); if *is_login { diff --git a/src/ctp_client/mdevent.rs b/src/ctp_client/mdevent.rs deleted file mode 100644 index 8fe2849..0000000 --- a/src/ctp_client/mdevent.rs +++ /dev/null @@ -1,11 +0,0 @@ - -use serde::{Serialize}; - -#[derive(Serialize)] -pub struct Event{ - pub client: String, - pub payload: T -} - -#[derive(Serialize)] -pub struct EmptyEvent{} diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index e9db21b..5d7c80a 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -1,10 +1,23 @@ pub mod mdcontroller; pub mod tdcontroller; -pub mod mdevent; use std::{env}; use once_cell::sync::OnceCell; +use std::marker::Send; + +use serde::{Serialize}; + +#[derive(Serialize)] +pub struct Event where T: Send{ + pub client: &'static str, + pub name: &'static str, + pub payload: T +} + +#[derive(Serialize)] +pub struct EmptyEvent{} + static CTP_CLIENT_ID: &str = "CTP"; static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 2ef2034..cd6ea18 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -1,4 +1,8 @@ use rust_ctp::td_api; +use rust_ctp::api_struct::rsp_trading_account_field::RspTradingAccountField; +use rust_ctp::api_struct::rsp_info_field::RspInfoField; + +use super::Event; use super::super::result::RspResult; use super::super::utils::ctperror::{GenericError}; @@ -18,6 +22,7 @@ use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; use hyper::{Body,header,Request, Response, StatusCode}; use std::thread; +use std::sync::mpsc; use std::time::Duration; use tokio::sync::Mutex; @@ -61,6 +66,10 @@ fn td_connect(){ n_request_id,b_is_last); }); + //Multi API will compete to use OnRspError Event Handler + //So we should release the OnRspError closure first + td_api::EventHandler::UnRspError(); + td_api::EventHandler::OnFrontConnected(|| { info!("td_api::EventHandler::OnFrontConnected,then authenticate"); @@ -170,3 +179,101 @@ fn td_confirm_settlement_info() ->i32 { td_api::confirm_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()) } + +//查询资金账户 +pub async fn query_trading_account(_req: Request) -> Result,GenericError> { + + let mut ret; + let mut ret_msg = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_rsp_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", + rsp_trading_account,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryTradingAccount", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_trading_account(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap()); + if ret != 0 { + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryTradingAccount(); + + error!("query_trading_account too often,please access for a while,ret: {}", ret); + + ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",ret); + + }else{ + let received_event = rx.recv().unwrap(); + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryTradingAccount(); + + if received_event.name == "OnRspError" { + ret = -1; + let json_str = serde_json::to_string(&received_event).unwrap(); + ret_msg = json_str; + error!("query_trading_account error event: {}", &ret_msg); + } + } + } else { + warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); + td_api::EventHandler::UnRspError(); + ret = -1; + ret_msg = "query_trading_account too often,please access for a while".to_string(); + } + }else{ + warn!("query_trading_account OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_trading_account too often,please access for a while".to_string(); + } + + let rsp_result = RspResult{ + code: 200, + msg: ret_msg, + result: ret + }; + + let json = serde_json::to_string(&rsp_result)?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) +} \ No newline at end of file diff --git a/src/routes.rs b/src/routes.rs index bbdf3de..361df9a 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -3,6 +3,7 @@ use http::header::HeaderValue; use std::convert::Infallible; use crate::ctp_client::mdcontroller; +use crate::ctp_client::tdcontroller; pub async fn mdroutes(req: Request) -> Result, Infallible> { @@ -20,12 +21,15 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> }, (&Method::PUT, "/api/v1/subscribe") => { mdcontroller::subscribe(req).await - } + }, (&Method::PUT, "/api/v1/unsubscribe") => { mdcontroller::unsubscribe(req).await //Ok(Response::new(req.into_body())) - } + }, + (&Method::GET, "/api/v1/query_trading_account") => { + tdcontroller::query_trading_account(req).await + }, // Return the 404 Not Found for other routes. _ => { -- Gitee From 1613242be5f023c1e2ed6d10a8e811041f400d7c Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 13 Sep 2021 18:02:03 +0800 Subject: [PATCH 26/75] change query_trading_account result as json_str --- src/ctp_client/tdcontroller.rs | 10 ++++++---- src/result.rs | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index cd6ea18..8fe5202 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -185,6 +185,7 @@ pub async fn query_trading_account(_req: Request) -> Result let mut ret; let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); @@ -244,9 +245,10 @@ pub async fn query_trading_account(_req: Request) -> Result if received_event.name == "OnRspError" { ret = -1; - let json_str = serde_json::to_string(&received_event).unwrap(); - ret_msg = json_str; + ret_msg = received_event.payload; error!("query_trading_account error event: {}", &ret_msg); + }else{ + payload = received_event.payload; } } } else { @@ -263,9 +265,9 @@ pub async fn query_trading_account(_req: Request) -> Result } let rsp_result = RspResult{ - code: 200, + code: ret, msg: ret_msg, - result: ret + result: payload }; let json = serde_json::to_string(&rsp_result)?; diff --git a/src/result.rs b/src/result.rs index fac4779..5d3f08a 100644 --- a/src/result.rs +++ b/src/result.rs @@ -3,7 +3,7 @@ use serde::{Serialize}; #[derive(Serialize)] pub struct RspResult{ - pub code: i64, + pub code: i32, pub msg: String, pub result: T } -- Gitee From bd65159631b4fb7a5abe6f64d9c789336a63a798 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 14 Sep 2021 19:05:05 +0800 Subject: [PATCH 27/75] test code with std::time --- src/ctp_client/mdcontroller.rs | 4 +- src/ctp_client/tdcontroller.rs | 97 ++++++++++++++++++++++++++++------ src/routes.rs | 4 ++ 3 files changed, 88 insertions(+), 17 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 1a06976..29b1e32 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -251,8 +251,8 @@ pub async fn subscribe(req: Request) -> Result,GenericError pub async fn unsubscribe(req: Request) -> Result,GenericError> { md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! nRequestID: {},bIsLast: {}", - rsp_specific_instrument.InstrumentID,n_request_id,b_is_last); + debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! resp_info:{:?},nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); }); let full_body = hyper::body::to_bytes(req.into_body()).await?; diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 8fe5202..ffaea10 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -1,6 +1,6 @@ +use std::time::Instant; + use rust_ctp::td_api; -use rust_ctp::api_struct::rsp_trading_account_field::RspTradingAccountField; -use rust_ctp::api_struct::rsp_info_field::RspInfoField; use super::Event; use super::super::result::RspResult; @@ -15,7 +15,7 @@ use super::{CTP_CLIENT_ID, CTP_AUTH_CODE, CTP_USER_PRODUCT_INFO}; -use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; +use crate::utils::ctperror::{on_front_disconnected_reason}; ////////CTP_Access Dependency//////// @@ -52,9 +52,8 @@ pub async fn init() { fn register_td_event_handler() { td_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { - - debug!("md_api::EventHandler::OnRspUserLogout, UserID {} BrokerID {} nRequestID: {},bIsLast: {}", - rsp_user_logout.UserID,rsp_user_logout.BrokerID,n_request_id,b_is_last); + debug!("md_api::EventHandler::OnRspUserLogout, UserID {} BrokerID {} , rep_info:{:?}, nRequestID: {},bIsLast: {}", + rsp_user_logout.UserID,rsp_user_logout.BrokerID,rsp_info,n_request_id,b_is_last); }); } @@ -182,6 +181,7 @@ fn td_confirm_settlement_info() ->i32 { //查询资金账户 pub async fn query_trading_account(_req: Request) -> Result,GenericError> { + let start = Instant::now(); let mut ret; let mut ret_msg = "".to_string(); @@ -206,7 +206,10 @@ pub async fn query_trading_account(_req: Request) -> Result tx_rsp_err.send(event).unwrap(); }); + debug!("binding OnRspError cost: {:?} us", start.elapsed().as_micros()); + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", rsp_trading_account,n_request_id,b_is_last); @@ -226,23 +229,18 @@ pub async fn query_trading_account(_req: Request) -> Result tx.send(event).unwrap(); }); + debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); + if reg_ok { ret = td_api::query_trading_account(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap()); - if ret != 0 { - td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryTradingAccount(); + if ret != 0 { error!("query_trading_account too often,please access for a while,ret: {}", ret); - ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",ret); - }else{ let received_event = rx.recv().unwrap(); - td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryTradingAccount(); - if received_event.name == "OnRspError" { ret = -1; ret_msg = received_event.payload; @@ -251,9 +249,12 @@ pub async fn query_trading_account(_req: Request) -> Result payload = received_event.payload; } } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryTradingAccount(); } else { - warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); td_api::EventHandler::UnRspError(); + warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); ret = -1; ret_msg = "query_trading_account too often,please access for a while".to_string(); } @@ -277,5 +278,71 @@ pub async fn query_trading_account(_req: Request) -> Result .header(header::CONTENT_TYPE, "application/json") .body(Body::from(json))?; + debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); + + Ok(response) +} + +pub async fn query_investor_position(_req: Request) -> Result,GenericError> { + let start = Instant::now(); + + let mut ret; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + + td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_investor_position_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInvestorPosition", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + ret = td_api::query_investor_position(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap()); + + if ret != 0 { + error!("query_investor_position too often,please access for a while,ret: {}", ret); + ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",ret); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_investor_position error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: payload + }; + + let json = serde_json::to_string(&rsp_result)?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + debug!("API query_investor_position cost: {:?} us", start.elapsed().as_micros()); + Ok(response) } \ No newline at end of file diff --git a/src/routes.rs b/src/routes.rs index 361df9a..7935096 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -31,6 +31,10 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> tdcontroller::query_trading_account(req).await }, + (&Method::GET, "/api/v1/query_investor_position") => { + tdcontroller::query_investor_position(req).await + }, + // Return the 404 Not Found for other routes. _ => { let mut not_found = Response::default(); -- Gitee From c0a751c7269771630cfddeac2a699a3bb4072ee2 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 14 Sep 2021 21:53:55 +0800 Subject: [PATCH 28/75] change query_investor_position thread-safely --- Cargo.toml | 2 +- src/ctp_client/tdcontroller.rs | 83 ++++++++++++++++++++++++---------- 2 files changed, 60 insertions(+), 25 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dff3e24..2902c52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,4 +15,4 @@ serde_json = "1.0" http = "*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.2" } +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.3" } \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index ffaea10..45a4f9a 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -284,49 +284,84 @@ pub async fn query_trading_account(_req: Request) -> Result } pub async fn query_investor_position(_req: Request) -> Result,GenericError> { - let start = Instant::now(); + //let start = Instant::now(); let mut ret; let mut ret_msg = "".to_string(); let mut payload = "".to_string(); let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); - td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_investor_position_field,n_request_id,b_is_last); - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); + let event_str = serde_json::to_string(&rsp_info).unwrap(); let event = Event { client: CTP_CLIENT_ID, - name: "OnRspQryInvestorPosition", + name: "OnRspError", payload: event_str }; - tx.send(event).unwrap(); + tx_rsp_err.send(event).unwrap(); }); - ret = td_api::query_investor_position(CTP_USER_ID.get().unwrap(), - CTP_BROKER_ID.get().unwrap()); + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_investor_position_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); - if ret != 0 { - error!("query_investor_position too often,please access for a while,ret: {}", ret); - ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",ret); - }else{ - let received_event = rx.recv().unwrap(); + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInvestorPosition", + payload: event_str + }; + + tx.send(event).unwrap(); + }); - if received_event.name == "OnRspError" { + if reg_ok { + ret = td_api::query_investor_position(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap()); + + if ret != 0 { + error!("query_investor_position too often,please access for a while,ret: {}", ret); + ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",ret); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_investor_position error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryInvestorPosition(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_investor_position OnRspQryInvestorPosition event handler is busy,please access for a while"); ret = -1; - ret_msg = received_event.payload; - error!("query_investor_position error event: {}", &ret_msg); - }else{ - payload = received_event.payload; + ret_msg = "query_investor_position too often,please access for a while".to_string(); } + + }else{ + warn!("query_investor_position OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_investor_position too often,please access for a while".to_string(); } let rsp_result = RspResult{ @@ -342,7 +377,7 @@ pub async fn query_investor_position(_req: Request) -> Result Date: Tue, 14 Sep 2021 23:06:35 +0800 Subject: [PATCH 29/75] change query_commission_rate thread-safely --- Cargo.toml | 1 + src/ctp_client/mdcontroller.rs | 26 ++++---- src/ctp_client/tdcontroller.rs | 105 +++++++++++++++++++++++++++++++++ src/routes.rs | 3 + src/utils/mod.rs | 22 ++++++- src/utils/util.rs | 0 6 files changed, 142 insertions(+), 15 deletions(-) delete mode 100644 src/utils/util.rs diff --git a/Cargo.toml b/Cargo.toml index 2902c52..f17bcea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,7 @@ tokio = { version = "1", features = ["full"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" http = "*" +url="*" log = "0.4" env_logger = "0.9" rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.3" } \ No newline at end of file diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 29b1e32..7872afc 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -40,16 +40,16 @@ static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; /// ctp_access main.rs fn main(){} pub async fn init(){ - debug!("start; init sub_instrument_list into statestore"); - let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; - debug!("end; init sub_instrument_list"); - - match res { - Ok(_) => {}, - Err(e) => { - panic!("init sub_instrument_list error:{}",e); - } - } + // debug!("start; init sub_instrument_list into statestore"); + // let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; + // debug!("end; init sub_instrument_list"); + // + // match res { + // Ok(_) => {}, + // Err(e) => { + // panic!("init sub_instrument_list error:{}",e); + // } + // } debug!("start; init CTP market client event_handler"); register_md_event_handler(); @@ -110,9 +110,9 @@ fn md_login() ->i32 { debug!("set ctp_md_login status to true"); - info!("start, check or resub last instrument_ids if CTP relogin"); - let _ = rt.block_on(resub_if_relogin()); - info!("end, check or resub"); + // info!("start, check or resub last instrument_ids if CTP relogin"); + // let _ = rt.block_on(resub_if_relogin()); + // info!("end, check or resub"); }else{ error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 45a4f9a..955e542 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -16,11 +16,13 @@ use super::{CTP_CLIENT_ID, CTP_USER_PRODUCT_INFO}; use crate::utils::ctperror::{on_front_disconnected_reason}; +use crate::utils::http_url_params; ////////CTP_Access Dependency//////// use hyper::{Body,header,Request, Response, StatusCode}; + use std::thread; use std::sync::mpsc; use std::time::Duration; @@ -379,5 +381,108 @@ pub async fn query_investor_position(_req: Request) -> Result) -> Result,GenericError> { + //let start = Instant::now(); + + let instrument_id = http_url_params(&req,"instrument_id"); + debug!("query_commission_rate instrument_id:{}",instrument_id); + + let mut ret; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_rsp_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_commission_rate_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrumentCommissionRate", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_commission_rate(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + instrument_id.as_str()); + + if ret != 0 { + error!("query_commission_rate too often,please access for a while,ret: {}", ret); + ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",ret); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_commission_rate error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_commission_rate OnRspQryInstrumentCommissionRate event handler is busy,please access for a while"); + ret = -1; + ret_msg = "query_commission_rate too often,please access for a while".to_string(); + } + + }else{ + warn!("query_commission_rate OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_commission_rate too often,please access for a while".to_string(); + } + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: payload + }; + + let json = serde_json::to_string(&rsp_result)?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + //debug!("API query_investor_position cost: {:?} us", start.elapsed().as_micros()); + Ok(response) } \ No newline at end of file diff --git a/src/routes.rs b/src/routes.rs index 7935096..76dc472 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -34,6 +34,9 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_investor_position") => { tdcontroller::query_investor_position(req).await }, + (&Method::GET, "/api/v1/query_commission_rate") => { + tdcontroller::query_commission_rate(req).await + }, // Return the 404 Not Found for other routes. _ => { diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 4a6b460..6f7cfa4 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1,2 +1,20 @@ -pub mod util; -pub mod ctperror; \ No newline at end of file +pub mod ctperror; + +use std::collections::HashMap; +use hyper::{Body,Request}; + +pub fn http_url_params(req: &Request,key:&str) -> String { + let params: HashMap = req + .uri() + .query() + .map(|v| { + url::form_urlencoded::parse(v.as_bytes()) + .into_owned() + .collect() + }) + .unwrap_or_else(HashMap::new); + + let empty_value = "".to_string(); + let value = params.get(key).unwrap_or(&empty_value); + return value.to_string(); +} \ No newline at end of file diff --git a/src/utils/util.rs b/src/utils/util.rs deleted file mode 100644 index e69de29..0000000 -- Gitee From 2bd48f1d668fdb381655081a4d6d0837f9f70a07 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 14 Sep 2021 23:14:36 +0800 Subject: [PATCH 30/75] add api_return_code for api ret --- src/ctp_client/tdcontroller.rs | 16 ++++++++-------- src/utils/ctperror.rs | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 955e542..5c65fc1 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -15,7 +15,7 @@ use super::{CTP_CLIENT_ID, CTP_AUTH_CODE, CTP_USER_PRODUCT_INFO}; -use crate::utils::ctperror::{on_front_disconnected_reason}; +use crate::utils::ctperror::{on_front_disconnected_reason,api_return_code}; use crate::utils::http_url_params; ////////CTP_Access Dependency//////// @@ -238,8 +238,8 @@ pub async fn query_trading_account(_req: Request) -> Result CTP_BROKER_ID.get().unwrap()); if ret != 0 { - error!("query_trading_account too often,please access for a while,ret: {}", ret); - ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",ret); + error!("query_trading_account too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",api_return_code(ret)); }else{ let received_event = rx.recv().unwrap(); @@ -336,8 +336,8 @@ pub async fn query_investor_position(_req: Request) -> Result) -> Result, instrument_id.as_str()); if ret != 0 { - error!("query_commission_rate too often,please access for a while,ret: {}", ret); - ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",ret); + error!("query_commission_rate too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",api_return_code(ret)); }else{ let received_event = rx.recv().unwrap(); @@ -482,7 +482,7 @@ pub async fn query_commission_rate(req: Request) -> Result, .header(header::CONTENT_TYPE, "application/json") .body(Body::from(json))?; - //debug!("API query_investor_position cost: {:?} us", start.elapsed().as_micros()); + //debug!("API query_commission_rate cost: {:?} us", start.elapsed().as_micros()); Ok(response) } \ No newline at end of file diff --git a/src/utils/ctperror.rs b/src/utils/ctperror.rs index 8cb0369..022770b 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctperror.rs @@ -60,4 +60,18 @@ pub fn on_front_disconnected_reason(n_reason: i32)-> String { 8195 => "收到错误报文".to_string(), _ => "未知错误码".to_string(), } +} + +///#0,代表成功 +///#-1,表示网络连接失败 +///#-2,表示未处理请求超过许可数 +///#-3,表示每秒发送请求数超过许可数 +pub fn api_return_code(ret: i32)-> String { + match ret { + 0 => "成功".to_string(), + -1 => "网络连接失败".to_string(), + -2 => "未处理请求超过许可数".to_string(), + -3 => "每秒发送请求数超过许可数".to_string(), + _ => "未知错误码".to_string(), + } } \ No newline at end of file -- Gitee From 18d626238b3402a9004e2f231d2432e4c78fcf84 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 15 Sep 2021 18:42:51 +0800 Subject: [PATCH 31/75] change code dir & file mod for readable --- src/ctp_client/mod.rs | 3 + src/ctp_client/query_commission_rate.rs | 99 ++++++++ src/ctp_client/query_investor_position.rs | 98 ++++++++ src/ctp_client/query_trading_account.rs | 107 ++++++++ src/ctp_client/tdcontroller.rs | 289 ++-------------------- src/routes.rs | 4 +- 6 files changed, 326 insertions(+), 274 deletions(-) create mode 100644 src/ctp_client/query_commission_rate.rs create mode 100644 src/ctp_client/query_investor_position.rs create mode 100644 src/ctp_client/query_trading_account.rs diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 5d7c80a..3f731c5 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -1,5 +1,8 @@ pub mod mdcontroller; pub mod tdcontroller; +mod query_trading_account; +mod query_investor_position; +mod query_commission_rate; use std::{env}; use once_cell::sync::OnceCell; diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs new file mode 100644 index 0000000..9322d58 --- /dev/null +++ b/src/ctp_client/query_commission_rate.rs @@ -0,0 +1,99 @@ + +use serde_json::Result; +use std::time::Instant; +use rust_ctp::td_api; +use std::sync::mpsc; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +use super::Event; +use super::CTP_CLIENT_ID; + +pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> Result { + + let mut ret; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_rsp_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_commission_rate_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrumentCommissionRate", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); + + if ret != 0 { + error!("query_commission_rate too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",api_return_code(ret)); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_commission_rate error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_commission_rate OnRspQryInstrumentCommissionRate event handler is busy,please access for a while"); + ret = -1; + ret_msg = "query_commission_rate too often,please access for a while".to_string(); + } + + }else{ + warn!("query_commission_rate OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_commission_rate too often,please access for a while".to_string(); + } + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: payload + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs new file mode 100644 index 0000000..2047e82 --- /dev/null +++ b/src/ctp_client/query_investor_position.rs @@ -0,0 +1,98 @@ +use serde_json::Result; +use rust_ctp::td_api; +use std::sync::mpsc; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +use super::Event; +use super::CTP_CLIENT_ID; + +//sync func about thread-safely +pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { + + let mut ret= 0; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_investor_position_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInvestorPosition", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_investor_position(user_id,broker_id); + + if ret != 0 { + error!("query_investor_position too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",api_return_code(ret)); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_investor_position error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryInvestorPosition(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_investor_position OnRspQryInvestorPosition event handler is busy,please access for a while"); + ret = -1; + ret_msg = "query_investor_position too often,please access for a while".to_string(); + } + + }else{ + warn!("query_investor_position OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_investor_position too often,please access for a while".to_string(); + } + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: payload + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs new file mode 100644 index 0000000..3a81a2e --- /dev/null +++ b/src/ctp_client/query_trading_account.rs @@ -0,0 +1,107 @@ +use serde_json::Result; +use std::time::Instant; +use rust_ctp::td_api; +use std::sync::mpsc; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +use super::Event; +use super::CTP_CLIENT_ID; + +//查询资金账户 +pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { + let start = Instant::now(); + + let mut ret; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_rsp_err.send(event).unwrap(); + }); + + debug!("binding OnRspError cost: {:?} us", start.elapsed().as_micros()); + + if reg_err_ok { + + let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", + rsp_trading_account,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryTradingAccount", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); + + if reg_ok { + ret = td_api::query_trading_account(user_id,broker_id); + + if ret != 0 { + error!("query_trading_account too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",api_return_code(ret)); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_trading_account error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryTradingAccount(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); + ret = -1; + ret_msg = "query_trading_account too often,please access for a while".to_string(); + } + }else{ + warn!("query_trading_account OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_trading_account too often,please access for a while".to_string(); + } + + debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: payload + }; + + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 5c65fc1..8614f52 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -1,8 +1,10 @@ -use std::time::Instant; - use rust_ctp::td_api; use super::Event; +use super::query_trading_account::*; +use super::query_investor_position::*; +use super::query_commission_rate::*; + use super::super::result::RspResult; use super::super::utils::ctperror::{GenericError}; @@ -181,308 +183,51 @@ fn td_confirm_settlement_info() ->i32 { td_api::confirm_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()) } -//查询资金账户 -pub async fn query_trading_account(_req: Request) -> Result,GenericError> { - let start = Instant::now(); - - let mut ret; - let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); - - let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); - - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - payload: event_str - }; - - tx_rsp_err.send(event).unwrap(); - }); - - debug!("binding OnRspError cost: {:?} us", start.elapsed().as_micros()); - - if reg_err_ok { - - let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", - rsp_trading_account,n_request_id,b_is_last); - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - - let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); +pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryTradingAccount", - payload: event_str - }; + let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); - tx.send(event).unwrap(); - }); - - debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); - - if reg_ok { - ret = td_api::query_trading_account(CTP_USER_ID.get().unwrap(), - CTP_BROKER_ID.get().unwrap()); - - if ret != 0 { - error!("query_trading_account too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = received_event.payload; - error!("query_trading_account error event: {}", &ret_msg); - }else{ - payload = received_event.payload; - } - } - - td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryTradingAccount(); - } else { - td_api::EventHandler::UnRspError(); - warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_trading_account too often,please access for a while".to_string(); - } - }else{ - warn!("query_trading_account OnRspError event handler is busy,please access for a while"); - - ret = -1; - ret_msg = "query_trading_account too often,please access for a while".to_string(); - } - - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: payload - }; - - let json = serde_json::to_string(&rsp_result)?; + let json = rsp_result?; let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") .body(Body::from(json))?; - debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); - Ok(response) } -pub async fn query_investor_position(_req: Request) -> Result,GenericError> { - //let start = Instant::now(); - - let mut ret; - let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); - - let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); - - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - payload: event_str - }; - - tx_rsp_err.send(event).unwrap(); - }); - - if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_investor_position_field,n_request_id,b_is_last); - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - - let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInvestorPosition", - payload: event_str - }; - - tx.send(event).unwrap(); - }); - - if reg_ok { - ret = td_api::query_investor_position(CTP_USER_ID.get().unwrap(), - CTP_BROKER_ID.get().unwrap()); - - if ret != 0 { - error!("query_investor_position too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = received_event.payload; - error!("query_investor_position error event: {}", &ret_msg); - }else{ - payload = received_event.payload; - } - } - - td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryInvestorPosition(); - } else { - td_api::EventHandler::UnRspError(); - warn!("query_investor_position OnRspQryInvestorPosition event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_investor_position too often,please access for a while".to_string(); - } - - }else{ - warn!("query_investor_position OnRspError event handler is busy,please access for a while"); +pub async fn td_query_investor_position(_req: Request) -> Result,GenericError> { - ret = -1; - ret_msg = "query_investor_position too often,please access for a while".to_string(); - } + let rsp_result = query_investor_position(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: payload - }; - - let json = serde_json::to_string(&rsp_result)?; + let json = rsp_result?; let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") .body(Body::from(json))?; - //debug!("API query_investor_position cost: {:?} us", start.elapsed().as_micros()); - Ok(response) } -pub async fn query_commission_rate(req: Request) -> Result,GenericError> { - //let start = Instant::now(); +//query_settlement_info + +pub async fn td_query_commission_rate(req: Request) -> Result,GenericError> { let instrument_id = http_url_params(&req,"instrument_id"); debug!("query_commission_rate instrument_id:{}",instrument_id); - let mut ret; - let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + let rsp_result = query_commission_rate(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + instrument_id.as_str()); - let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); - - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - payload: event_str - }; - - tx_rsp_err.send(event).unwrap(); - }); - - if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_instrument_commission_rate_field,n_request_id,b_is_last); - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - - let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrumentCommissionRate", - payload: event_str - }; - - tx.send(event).unwrap(); - }); - - if reg_ok { - ret = td_api::query_commission_rate(CTP_USER_ID.get().unwrap(), - CTP_BROKER_ID.get().unwrap(), - instrument_id.as_str()); - - if ret != 0 { - error!("query_commission_rate too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = received_event.payload; - error!("query_commission_rate error event: {}", &ret_msg); - }else{ - payload = received_event.payload; - } - } - - td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryInstrumentCommissionRate(); - } else { - td_api::EventHandler::UnRspError(); - warn!("query_commission_rate OnRspQryInstrumentCommissionRate event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_commission_rate too often,please access for a while".to_string(); - } - - }else{ - warn!("query_commission_rate OnRspError event handler is busy,please access for a while"); - - ret = -1; - ret_msg = "query_commission_rate too often,please access for a while".to_string(); - } - - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: payload - }; - - let json = serde_json::to_string(&rsp_result)?; + let json = rsp_result?; let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") .body(Body::from(json))?; - //debug!("API query_commission_rate cost: {:?} us", start.elapsed().as_micros()); - Ok(response) } \ No newline at end of file diff --git a/src/routes.rs b/src/routes.rs index 76dc472..f8b326c 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -28,11 +28,11 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> //Ok(Response::new(req.into_body())) }, (&Method::GET, "/api/v1/query_trading_account") => { - tdcontroller::query_trading_account(req).await + tdcontroller::td_query_trading_account(req).await }, (&Method::GET, "/api/v1/query_investor_position") => { - tdcontroller::query_investor_position(req).await + tdcontroller::td_query_investor_position(req).await }, (&Method::GET, "/api/v1/query_commission_rate") => { tdcontroller::query_commission_rate(req).await -- Gitee From 9c35499128c0002ed4e9ac0657fd0b8d09f592ff Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 15 Sep 2021 20:37:48 +0800 Subject: [PATCH 32/75] add query_settlement_info api & thread-safely binding --- Cargo.toml | 2 +- src/ctp_client/mod.rs | 1 + src/ctp_client/query_settlement_info.rs | 98 ++++++++++++++++++++++++ src/ctp_client/tdcontroller.rs | 17 +++- src/routes.rs | 6 +- src/rust_ctp_client/librusttdclient.so | Bin 136688 -> 136672 bytes 6 files changed, 120 insertions(+), 4 deletions(-) create mode 100644 src/ctp_client/query_settlement_info.rs diff --git a/Cargo.toml b/Cargo.toml index f17bcea..b411938 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.3" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.5" } \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 3f731c5..82b1d8b 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -3,6 +3,7 @@ pub mod tdcontroller; mod query_trading_account; mod query_investor_position; mod query_commission_rate; +mod query_settlement_info; use std::{env}; use once_cell::sync::OnceCell; diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs new file mode 100644 index 0000000..8b318cd --- /dev/null +++ b/src/ctp_client/query_settlement_info.rs @@ -0,0 +1,98 @@ +use serde_json::Result; +use rust_ctp::td_api; +use std::sync::mpsc; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +use super::Event; +use super::CTP_CLIENT_ID; + +//sync func about thread-safely +pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { + + let mut ret= 0; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + tx_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspQrySettlementInfo(move |rsp_settlement_info_field, rsp_info, n_request_id, b_is_last| { + debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_settlement_info_field,n_request_id,b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQrySettlementInfo, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_settlement_info_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQrySettlementInfo", + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_settlement_info(user_id,broker_id); + + if ret != 0 { + error!("query_settlement_info too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("query_settlement_info too often,please access for a while. ret: {}",api_return_code(ret)); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = received_event.payload; + error!("query_settlement_info error event: {}", &ret_msg); + }else{ + payload = received_event.payload; + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQrySettlementInfo(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_settlement_info OnRspQrySettlementInfo event handler is busy,please access for a while"); + ret = -1; + ret_msg = "query_settlement_info too often,please access for a while".to_string(); + } + + }else{ + warn!("query_settlement_info OnRspError event handler is busy,please access for a while"); + + ret = -1; + ret_msg = "query_settlement_info too often,please access for a while".to_string(); + } + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: payload + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 8614f52..9aad1b0 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -1,6 +1,7 @@ use rust_ctp::td_api; use super::Event; +use super::query_settlement_info::*; use super::query_trading_account::*; use super::query_investor_position::*; use super::query_commission_rate::*; @@ -183,6 +184,20 @@ fn td_confirm_settlement_info() ->i32 { td_api::confirm_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()) } +pub async fn td_query_settlement_info(_req: Request) -> Result,GenericError> { + + let rsp_result = query_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + + let json = rsp_result?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) +} + pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); @@ -211,8 +226,6 @@ pub async fn td_query_investor_position(_req: Request) -> Result) -> Result,GenericError> { let instrument_id = http_url_params(&req,"instrument_id"); diff --git a/src/routes.rs b/src/routes.rs index f8b326c..dab590c 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -27,6 +27,10 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> mdcontroller::unsubscribe(req).await //Ok(Response::new(req.into_body())) }, + + (&Method::GET, "/api/v1/query_settlement_info") => { + tdcontroller::td_query_settlement_info(req).await + }, (&Method::GET, "/api/v1/query_trading_account") => { tdcontroller::td_query_trading_account(req).await }, @@ -35,7 +39,7 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> tdcontroller::td_query_investor_position(req).await }, (&Method::GET, "/api/v1/query_commission_rate") => { - tdcontroller::query_commission_rate(req).await + tdcontroller::td_query_commission_rate(req).await }, // Return the 404 Not Found for other routes. diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index bbd358faa6dd5d324a824b2a7d0d326de4c230e8..c91d1a0279c416d4df96eec1ab034b0fae84ad24 100755 GIT binary patch delta 8576 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 delta 8881 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 N@* Date: Thu, 16 Sep 2021 20:13:07 +0800 Subject: [PATCH 33/75] add query_all_instruments api --- Cargo.toml | 2 +- src/ctp_client/mdcontroller.rs | 6 ++-- src/ctp_client/mod.rs | 14 +++++++++ src/ctp_client/query_commission_rate.rs | 5 ++- src/ctp_client/query_investor_position.rs | 4 +++ src/ctp_client/query_settlement_info.rs | 4 +++ src/ctp_client/query_trading_account.rs | 4 +++ src/ctp_client/tdcontroller.rs | 37 +++++++++++++++++++---- src/routes.rs | 8 +++-- 9 files changed, 72 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b411938..b73ed21 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.5" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.6" } \ No newline at end of file diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 7872afc..03f8aa6 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -184,6 +184,8 @@ pub async fn subscribe(req: Request) -> Result,GenericError let event = Event{ client: CTP_CLIENT_ID, name: "OnRtnDepthMarketData", + request_id: 0, + is_last: false, payload: depth_market_data }; @@ -209,7 +211,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError info!("Before subscribe,check md is_login: {}",is_login); - let mut ret; + let mut ret = 0; let mut ret_msg = "".to_string(); if *is_login { @@ -263,7 +265,7 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr info!("Before unsubscribe,check md is_login: {}",is_login); - let mut ret; + let mut ret = 0; let mut ret_msg = "".to_string(); if *is_login { diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 82b1d8b..d4860a6 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -4,6 +4,9 @@ mod query_trading_account; mod query_investor_position; mod query_commission_rate; mod query_settlement_info; +mod query_instruments; + +use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; use std::{env}; use once_cell::sync::OnceCell; @@ -16,6 +19,8 @@ use serde::{Serialize}; pub struct Event where T: Send{ pub client: &'static str, pub name: &'static str, + pub request_id: i32, + pub is_last: bool, pub payload: T } @@ -34,6 +39,15 @@ static CTP_APP_ID: OnceCell = OnceCell::new(); static CTP_AUTH_CODE: OnceCell = OnceCell::new(); static CTP_USER_PRODUCT_INFO: OnceCell = OnceCell::new(); +use std::collections::HashMap; +use std::sync::Mutex; +use once_cell::sync::Lazy; +//基于await的异步线程安全的初始化的全局可变量 +static CTP_INSTRUMENT_HASHMAP: Lazy>> = Lazy::new(|| { + let m = HashMap::new(); + Mutex::new(m) +}); + pub async fn init() { CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 9322d58..b44a634 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -1,6 +1,5 @@ use serde_json::Result; -use std::time::Instant; use rust_ctp::td_api; use std::sync::mpsc; @@ -29,6 +28,8 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> let event = Event { client: CTP_CLIENT_ID, name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; @@ -49,6 +50,8 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> let event = Event { client: CTP_CLIENT_ID, name: "OnRspQryInstrumentCommissionRate", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 2047e82..120bad5 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -28,6 +28,8 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; @@ -48,6 +50,8 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspQryInvestorPosition", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 8b318cd..406e3c9 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -28,6 +28,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; @@ -48,6 +50,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspQrySettlementInfo", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 3a81a2e..1b6b2f2 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -30,6 +30,8 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; @@ -53,6 +55,8 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { let event = Event { client: CTP_CLIENT_ID, name: "OnRspQryTradingAccount", + request_id: n_request_id, + is_last: b_is_last, payload: event_str }; diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 9aad1b0..720c6f3 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -1,16 +1,14 @@ use rust_ctp::td_api; -use super::Event; use super::query_settlement_info::*; +use super::query_instruments::*; use super::query_trading_account::*; use super::query_investor_position::*; use super::query_commission_rate::*; -use super::super::result::RspResult; use super::super::utils::ctperror::{GenericError}; -use super::{CTP_CLIENT_ID, - CTP_TRADE_FRONT_ADDR, +use super::{CTP_TRADE_FRONT_ADDR, CTP_USER_ID, CTP_BROKER_ID, CTP_USER_PASSWORD, @@ -18,7 +16,7 @@ use super::{CTP_CLIENT_ID, CTP_AUTH_CODE, CTP_USER_PRODUCT_INFO}; -use crate::utils::ctperror::{on_front_disconnected_reason,api_return_code}; +use crate::utils::ctperror::{on_front_disconnected_reason}; use crate::utils::http_url_params; ////////CTP_Access Dependency//////// @@ -27,7 +25,6 @@ use hyper::{Body,header,Request, Response, StatusCode}; use std::thread; -use std::sync::mpsc; use std::time::Duration; use tokio::sync::Mutex; @@ -198,6 +195,34 @@ pub async fn td_query_settlement_info(_req: Request) -> Result) -> Result,GenericError> { + + let rsp_result = query_instruments(); + + let json = rsp_result?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) +} + +pub async fn td_query_instruments(_req: Request) -> Result,GenericError> { + + let rsp_result = query_instruments(); + + let json = rsp_result?; + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(json))?; + + Ok(response) +} + pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); diff --git a/src/routes.rs b/src/routes.rs index dab590c..56d9f6e 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -34,14 +34,18 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_trading_account") => { tdcontroller::td_query_trading_account(req).await }, - (&Method::GET, "/api/v1/query_investor_position") => { tdcontroller::td_query_investor_position(req).await }, (&Method::GET, "/api/v1/query_commission_rate") => { tdcontroller::td_query_commission_rate(req).await }, - + (&Method::GET, "/api/v1/query_all_instruments") => { + tdcontroller::td_query_instruments(req).await + }, + (&Method::GET, "/api/v1/query_instrument") => { + tdcontroller::td_query_instrument(req).await + } // Return the 404 Not Found for other routes. _ => { let mut not_found = Response::default(); -- Gitee From 9d76f365ccedac0aa901f8ae88682ff7d8bda51f Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 00:26:28 +0800 Subject: [PATCH 34/75] finish add init all instruments & query_instrument api --- src/ctp_client/query_instruments.rs | 109 ++++++++++++++++++++++ src/ctp_client/tdcontroller.rs | 136 ++++++++++++++++++---------- src/routes.rs | 6 +- 3 files changed, 202 insertions(+), 49 deletions(-) create mode 100644 src/ctp_client/query_instruments.rs diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs new file mode 100644 index 0000000..c480275 --- /dev/null +++ b/src/ctp_client/query_instruments.rs @@ -0,0 +1,109 @@ +use rust_ctp::td_api; +use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; + +use std::sync::mpsc; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +use super::Event; +use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; + +//查询所有交易标的 +pub fn query_instruments() -> i32 { + + let mut ret = 0; + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx_rsp_err.send(event).unwrap(); + }); + + if reg_err_ok { + + let reg_ok = td_api::EventHandler::OnRspQryInstrument(move |rsp_instrument_field, rsp_info, n_request_id, b_is_last| { + // debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", + // rsp_instrument_field, n_request_id, b_is_last); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInstrument, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_instrument_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrument", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }); + + if reg_ok { + ret = td_api::query_instruments(); + + if ret != 0 { + error!("query_instruments too often,please access for a while,ret: {}", api_return_code(ret)); + }else{ + let mut instrument_event_list = Vec::new(); + loop { + //debug!("query_instruments receiving event..."); + let received_event = rx.recv().unwrap(); + + // do not need to receive event + if received_event.name == "OnRspError" { + ret = -1; + error!("query_instruments error event: {}", received_event.payload); + instrument_event_list.clear(); + break; + }else { + instrument_event_list.push(received_event.payload); + } + + if received_event.is_last { + break; + } + } + + //Process All Instruments + let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().unwrap(); + for instrument in &instrument_event_list{ + let rsp_instrument:RspInstrumentField = serde_json::from_str(instrument).unwrap(); + instrument_hashmap.insert(rsp_instrument.InstrumentID.clone(),rsp_instrument); + } + } + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::UnRspQryInstrument(); + } else { + td_api::EventHandler::UnRspError(); + warn!("query_instruments OnRspQryInstrument event handler is busy,please access for a while"); + ret = -1; + } + }else{ + warn!("query_instruments OnRspError event handler is busy,please access for a while"); + ret = -1; + } + + warn!("query_instruments return {}",ret); + ret +} \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 720c6f3..4bb7c00 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -6,6 +6,7 @@ use super::query_trading_account::*; use super::query_investor_position::*; use super::query_commission_rate::*; +use crate::result::RspResult; use super::super::utils::ctperror::{GenericError}; use super::{CTP_TRADE_FRONT_ADDR, @@ -14,7 +15,8 @@ use super::{CTP_TRADE_FRONT_ADDR, CTP_USER_PASSWORD, CTP_APP_ID, CTP_AUTH_CODE, - CTP_USER_PRODUCT_INFO}; + CTP_USER_PRODUCT_INFO, + CTP_INSTRUMENT_HASHMAP}; use crate::utils::ctperror::{on_front_disconnected_reason}; use crate::utils::http_url_params; @@ -30,33 +32,31 @@ use std::time::Duration; use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 -static CTP_TD_LOGIN: Lazy> = Lazy::new(|| { +static CTP_TD_READY: Lazy> = Lazy::new(|| { Mutex::new(false) }); pub async fn init() { - debug!("start; init CTP trader client event_handler"); - register_td_event_handler(); - debug!("end; init CTP trader client event_handler"); - info!("start; init CTP trader client connection, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); td_connect(); debug!("end; init CTP trader client connection"); info!("init CTP trader client successfully!"); - let version = td_api::get_version(); + thread::sleep(Duration::from_millis(5 * 1000)); + while query_instruments() != 0 { + error!("td client send confirm_settlement_info req failed, continue after 2s ..."); + thread::sleep(Duration::from_millis(2 * 1000)) + } - info!("CTP trader client version is {}", version); -} + let mut is_ready = CTP_TD_READY.lock().await; + *is_ready = true; -/// 必须主线程先完成注册CTP的事件处理器(闭包) -fn register_td_event_handler() { + debug!("init trader completed, set CTP_TD_READY status to true"); - td_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { - debug!("md_api::EventHandler::OnRspUserLogout, UserID {} BrokerID {} , rep_info:{:?}, nRequestID: {},bIsLast: {}", - rsp_user_logout.UserID,rsp_user_logout.BrokerID,rsp_info,n_request_id,b_is_last); - }); + let version = td_api::get_version(); + + info!("CTP trader client version is {}", version); } fn td_connect(){ @@ -75,11 +75,11 @@ fn td_connect(){ info!("td_api::EventHandler::OnFrontConnected,then authenticate"); while td_authenticate() != 0 { - println!("Rust authenticate failed, continue after 2s ..."); + error!("Rust authenticate failed, continue after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } - debug!("Rust send authenticate request successfully."); + debug!("Rust send authenticate req successfully."); }); td_api::EventHandler::OnFrontDisconnected(|n_reason| { @@ -87,10 +87,10 @@ fn td_connect(){ on_front_disconnected_reason(n_reason)); let rt = tokio::runtime::Runtime::new().unwrap(); - let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); - *is_login = false; + let mut is_ready = rt.block_on(CTP_TD_READY.lock()); + *is_ready = false; - debug!("reset ctp_td_login status to false"); + warn!("Trader front disconnected, reset CTP_TD_READY status to false"); }); td_api::connect(CTP_TRADE_FRONT_ADDR.get().unwrap()); @@ -104,8 +104,9 @@ fn td_authenticate() ->i32 { rsp_authenticate_field.UserID,rsp_authenticate_field.AppType,n_request_id,b_is_last); if rsp_info.ErrorID == 0 { + while td_login() != 0 { - warn!("td client send login req failed, continue after 2s ..."); + error!("td client send login req failed, continue after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } @@ -127,7 +128,7 @@ fn td_authenticate() ->i32 { fn td_login() ->i32 { td_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { - let rt = tokio::runtime::Runtime::new().unwrap(); + //登录完成,进行结算单确认 if rsp_info.ErrorID == 0 { @@ -136,25 +137,22 @@ fn td_login() ->i32 { rsp_user_login.TradingDay,n_request_id,b_is_last); while td_confirm_settlement_info() != 0 { - println!("td client send confirm_settlement_info req failed, continue after 2s ..."); + error!("td client send confirm_settlement_info req failed, continue after 2s ..."); thread::sleep(Duration::from_millis(2 * 1000)) } - let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); - *is_login = true; - - debug!("set ctp_td_login status to true"); }else{ + let rt = tokio::runtime::Runtime::new().unwrap(); + let mut is_ready = rt.block_on(CTP_TD_READY.lock()); + *is_ready = false; + + warn!("UserLogin failed, reset CTP_TD_READY status to false"); + error!("td_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let mut is_login = rt.block_on(CTP_TD_LOGIN.lock()); - *is_login = false; - - debug!("reset ctp_td_login status to false"); } - }); td_api::login(CTP_USER_ID.get().unwrap(), @@ -174,7 +172,7 @@ fn td_confirm_settlement_info() ->i32 { debug!("td client SettlementInfoConfirm Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); }else{ - debug!("td client confirm settlement info successfully."); + debug!("td client confirm settlement info successfully.Then query and init all instruments"); } }); @@ -195,33 +193,79 @@ pub async fn td_query_settlement_info(_req: Request) -> Result) -> Result,GenericError> { +pub async fn td_query_instrument(req: Request) -> Result,GenericError> { - let rsp_result = query_instruments(); + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; - let json = rsp_result?; + if *is_ready { + let instrument_id = http_url_params(&req,"instrument_id"); + debug!("query_commission_rate instrument_id:{}",instrument_id); - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().unwrap(); + let instrument_op = instrument_map.get(&instrument_id); - Ok(response) -} + rsp_json = match instrument_op { + None => { + let rsp_result = RspResult{ + code: 1400, + msg: "NOT FOUNT".to_owned(), + result: "".to_string() + }; -pub async fn td_query_instruments(_req: Request) -> Result,GenericError> { + serde_json::to_string(&rsp_result)? + }, + Some(ref instrument)=>{ - let rsp_result = query_instruments(); + let instrument_str = serde_json::to_string(&instrument).unwrap(); - let json = rsp_result?; + let rsp_result = RspResult{ + code: 1200, + msg: "".to_owned(), + result: instrument_str + }; + + serde_json::to_string(&rsp_result)? + } + }; + }else{ + + let rsp_result = RspResult{ + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } +// +// pub async fn td_query_instruments(_req: Request) -> Result,GenericError> { +// +// let ret = query_instruments(); +// +// let rsp_result = RspResult{ +// code: 1200, +// msg: ret.to_string(), +// result: "".to_string() +// }; +// +// let rsp_json = serde_json::to_string(&rsp_result)?; +// +// let response = Response::builder() +// .status(StatusCode::OK) +// .header(header::CONTENT_TYPE, "application/json") +// .body(Body::from(rsp_json))?; +// +// Ok(response) +// } pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { diff --git a/src/routes.rs b/src/routes.rs index 56d9f6e..f0a35d9 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -40,9 +40,9 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_commission_rate") => { tdcontroller::td_query_commission_rate(req).await }, - (&Method::GET, "/api/v1/query_all_instruments") => { - tdcontroller::td_query_instruments(req).await - }, + // (&Method::GET, "/api/v1/query_all_instruments") => { + // tdcontroller::td_query_instruments(req).await + // }, (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await } -- Gitee From de0595ac386c3d349add6304c75d0cedd6c5d4b0 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 10:39:11 +0800 Subject: [PATCH 35/75] optimize init CTP trader process --- Cargo.toml | 2 +- src/ctp_client/mod.rs | 2 +- src/ctp_client/query_instruments.rs | 4 +-- src/ctp_client/tdcontroller.rs | 34 ++++++++++++++++--------- src/routes.rs | 11 +++++--- src/rust_ctp_client/librusttdclient.so | Bin 136672 -> 136632 bytes 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b73ed21..6c6139d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.6" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.7" } \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index d4860a6..2c283cb 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -40,7 +40,7 @@ static CTP_AUTH_CODE: OnceCell = OnceCell::new(); static CTP_USER_PRODUCT_INFO: OnceCell = OnceCell::new(); use std::collections::HashMap; -use std::sync::Mutex; +use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 static CTP_INSTRUMENT_HASHMAP: Lazy>> = Lazy::new(|| { diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index c480275..c1b3ac3 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -10,7 +10,7 @@ use super::Event; use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; //查询所有交易标的 -pub fn query_instruments() -> i32 { +pub async fn query_instruments() -> i32 { let mut ret = 0; @@ -85,7 +85,7 @@ pub fn query_instruments() -> i32 { } //Process All Instruments - let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().unwrap(); + let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().await; for instrument in &instrument_event_list{ let rsp_instrument:RspInstrumentField = serde_json::from_str(instrument).unwrap(); instrument_hashmap.insert(rsp_instrument.InstrumentID.clone(),rsp_instrument); diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 4bb7c00..ff4ea07 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -41,22 +41,29 @@ pub async fn init() { info!("start; init CTP trader client connection, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); td_connect(); debug!("end; init CTP trader client connection"); - info!("init CTP trader client successfully!"); + debug!("wait for CTP trader client ready..."); - thread::sleep(Duration::from_millis(5 * 1000)); - while query_instruments() != 0 { - error!("td client send confirm_settlement_info req failed, continue after 2s ..."); - thread::sleep(Duration::from_millis(2 * 1000)) + loop { + let is_ready = CTP_TD_READY.lock().await; + if *is_ready { + break; + } } - let mut is_ready = CTP_TD_READY.lock().await; - *is_ready = true; + let ret = query_instruments().await; + + if ret != 0 { + panic!("Error for init all instruments, please fix this problem!"); + }else{ + let mut is_ready = CTP_TD_READY.lock().await; + *is_ready = true; - debug!("init trader completed, set CTP_TD_READY status to true"); + info!("init CTP trader completed, set CTP_TD_READY status to true"); - let version = td_api::get_version(); + let version = td_api::get_version(); - info!("CTP trader client version is {}", version); + info!("CTP trader client version is {}", version); + } } fn td_connect(){ @@ -172,7 +179,10 @@ fn td_confirm_settlement_info() ->i32 { debug!("td client SettlementInfoConfirm Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); }else{ - debug!("td client confirm settlement info successfully.Then query and init all instruments"); + let rt = tokio::runtime::Runtime::new().unwrap(); + let mut is_ready = rt.block_on(CTP_TD_READY.lock()); + *is_ready = true; + info!("td client confirm settlement info successfully, set CTP_TD_READY status to true, then init & query all instruments"); } }); @@ -202,7 +212,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge let instrument_id = http_url_params(&req,"instrument_id"); debug!("query_commission_rate instrument_id:{}",instrument_id); - let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().unwrap(); + let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; let instrument_op = instrument_map.get(&instrument_id); rsp_json = match instrument_op { diff --git a/src/routes.rs b/src/routes.rs index f0a35d9..24f9268 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -52,9 +52,14 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> not_found.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); - let error_str = String::from("{\"code\": 1404,\"message\": \"not found this route\",\"result\":{}"); - - *not_found.body_mut() = Body::from(error_str); + let error_json_str = r#" + { + "code": 1404, + "message": "not found this route", + "result": {} + }"#; + + *not_found.body_mut() = Body::from(error_json_str.to_string()); *not_found.status_mut() = StatusCode::NOT_FOUND; Ok(not_found) diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index c91d1a0279c416d4df96eec1ab034b0fae84ad24..8d21c6b243267064bb478690245e3cc7fa420b79 100755 GIT binary patch delta 30707 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 V7Onz$Ie;(3rO}@6X>RZE{{a2L-n;++ delta 30627 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 Date: Fri, 17 Sep 2021 11:23:14 +0800 Subject: [PATCH 36/75] add CTP_TD_READY logic for all api --- src/ctp_client/query_instruments.rs | 5 +- src/ctp_client/tdcontroller.rs | 111 +++++++++++++++++++--------- 2 files changed, 79 insertions(+), 37 deletions(-) diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index c1b3ac3..e971e7c 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -96,14 +96,13 @@ pub async fn query_instruments() -> i32 { td_api::EventHandler::UnRspQryInstrument(); } else { td_api::EventHandler::UnRspError(); - warn!("query_instruments OnRspQryInstrument event handler is busy,please access for a while"); + error!("query_instruments error about can not bing OnRspQryInstrument event handler"); ret = -1; } }else{ - warn!("query_instruments OnRspError event handler is busy,please access for a while"); + error!("query_instruments error about can not bind OnRspError event handler "); ret = -1; } - warn!("query_instruments return {}",ret); ret } \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index ff4ea07..13050a8 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -32,6 +32,10 @@ use std::time::Duration; use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 +static CTP_TD_INIT: Lazy> = Lazy::new(|| { + Mutex::new(false) +}); + static CTP_TD_READY: Lazy> = Lazy::new(|| { Mutex::new(false) }); @@ -41,11 +45,11 @@ pub async fn init() { info!("start; init CTP trader client connection, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); td_connect(); debug!("end; init CTP trader client connection"); - debug!("wait for CTP trader client ready..."); + debug!("wait for CTP trader client init..."); loop { - let is_ready = CTP_TD_READY.lock().await; - if *is_ready { + let is_init = CTP_TD_INIT.lock().await; + if *is_init { break; } } @@ -135,11 +139,8 @@ fn td_authenticate() ->i32 { fn td_login() ->i32 { td_api::EventHandler::OnRspUserLogin(|rsp_user_login, rsp_info, n_request_id, b_is_last| { - - //登录完成,进行结算单确认 if rsp_info.ErrorID == 0 { - info!("td_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}, nRequestID{}, bIsLast {}", rsp_user_login.TradingDay,n_request_id,b_is_last); @@ -149,16 +150,9 @@ fn td_login() ->i32 { } }else{ - let rt = tokio::runtime::Runtime::new().unwrap(); - let mut is_ready = rt.block_on(CTP_TD_READY.lock()); - *is_ready = false; - - warn!("UserLogin failed, reset CTP_TD_READY status to false"); - error!("td_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - } }); @@ -176,13 +170,13 @@ fn td_confirm_settlement_info() ->i32 { n_request_id,b_is_last); if rsp_info.ErrorID != 0 { - debug!("td client SettlementInfoConfirm Error, ErrorID: {},ErrorMsg: {}", + error!("td client confirm_settlement_info Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); }else{ let rt = tokio::runtime::Runtime::new().unwrap(); - let mut is_ready = rt.block_on(CTP_TD_READY.lock()); - *is_ready = true; - info!("td client confirm settlement info successfully, set CTP_TD_READY status to true, then init & query all instruments"); + let mut is_init = rt.block_on(CTP_TD_INIT.lock()); + *is_init = true; + info!("td client confirm settlement info successfully, set CTP_TD_INIT status to true, then init & query all instruments"); } }); @@ -191,14 +185,28 @@ fn td_confirm_settlement_info() ->i32 { pub async fn td_query_settlement_info(_req: Request) -> Result,GenericError> { - let rsp_result = query_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + + if *is_ready { - let json = rsp_result?; + let rsp_result = query_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult{ + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } @@ -210,7 +218,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge if *is_ready { let instrument_id = http_url_params(&req,"instrument_id"); - debug!("query_commission_rate instrument_id:{}",instrument_id); + debug!("query_instrument instrument_id:{}",instrument_id); let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; let instrument_op = instrument_map.get(&instrument_id); @@ -278,48 +286,83 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge // } pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; - let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + if *is_ready { + let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap()); - let json = rsp_result?; + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult{ + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } pub async fn td_query_investor_position(_req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; - let rsp_result = query_investor_position(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + if *is_ready { + let rsp_result = query_investor_position(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap()); + + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult{ + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; - let json = rsp_result?; + rsp_json = serde_json::to_string(&rsp_result)? + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } pub async fn td_query_commission_rate(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; - let instrument_id = http_url_params(&req,"instrument_id"); - debug!("query_commission_rate instrument_id:{}",instrument_id); + if *is_ready { + let instrument_id = http_url_params(&req,"instrument_id"); + debug!("query_commission_rate instrument_id:{}",instrument_id); - let rsp_result = query_commission_rate(CTP_USER_ID.get().unwrap(), - CTP_BROKER_ID.get().unwrap(), - instrument_id.as_str()); + let rsp_result = query_commission_rate(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + instrument_id.as_str()); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; - let json = rsp_result?; + rsp_json = serde_json::to_string(&rsp_result)? + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } \ No newline at end of file -- Gitee From 842054ebc5a2c55790f77c2d019c7d45deab3bb6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 11:33:37 +0800 Subject: [PATCH 37/75] covert_gb2312_to_utf8 pSettlementInfo->Content --- Cargo.toml | 2 +- src/rust_ctp_client/librusttdclient.so | Bin 136632 -> 136632 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 6c6139d..51ebc38 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.7" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.8" } \ No newline at end of file diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index 8d21c6b243267064bb478690245e3cc7fa420b79..f105ae16040a3750ef4d63fee93e99de0b08885d 100755 GIT binary patch delta 9556 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 SnB5O(KLf!DxXD|Ia{hn47Z2h9 -- Gitee From 32d2fa0715a2654c4a39179da207932d87f07d39 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 11:42:04 +0800 Subject: [PATCH 38/75] serialize json for a aggregate RspResult --- src/ctp_client/tdcontroller.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 13050a8..5255e52 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -226,7 +226,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge rsp_json = match instrument_op { None => { let rsp_result = RspResult{ - code: 1400, + code: 1404, msg: "NOT FOUNT".to_owned(), result: "".to_string() }; @@ -235,12 +235,12 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge }, Some(ref instrument)=>{ - let instrument_str = serde_json::to_string(&instrument).unwrap(); + //let instrument_str = serde_json::to_string(&instrument).unwrap(); let rsp_result = RspResult{ code: 1200, msg: "".to_owned(), - result: instrument_str + result: instrument }; serde_json::to_string(&rsp_result)? -- Gitee From 725b8ea4453eac08df881c37ed6c4bf991789e55 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 11:42:29 +0800 Subject: [PATCH 39/75] serialize json for a aggregate RspResult --- src/ctp_client/tdcontroller.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 5255e52..4ec84c1 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -235,8 +235,6 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge }, Some(ref instrument)=>{ - //let instrument_str = serde_json::to_string(&instrument).unwrap(); - let rsp_result = RspResult{ code: 1200, msg: "".to_owned(), -- Gitee From 1174fec7b07612cf1dc33a00fd36be07a0109086 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 17 Sep 2021 11:47:25 +0800 Subject: [PATCH 40/75] td_query_all_instrument --- src/ctp_client/tdcontroller.rs | 54 +++++++++++++++++++++------------- src/routes.rs | 6 ++-- 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 4ec84c1..0c5a59f 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -262,26 +262,40 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge Ok(response) } -// -// pub async fn td_query_instruments(_req: Request) -> Result,GenericError> { -// -// let ret = query_instruments(); -// -// let rsp_result = RspResult{ -// code: 1200, -// msg: ret.to_string(), -// result: "".to_string() -// }; -// -// let rsp_json = serde_json::to_string(&rsp_result)?; -// -// let response = Response::builder() -// .status(StatusCode::OK) -// .header(header::CONTENT_TYPE, "application/json") -// .body(Body::from(rsp_json))?; -// -// Ok(response) -// } + +pub async fn td_query_all_instrument(_req: Request) -> Result,GenericError> { + + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + + if *is_ready { + + let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; + let rsp_result = RspResult{ + code: 1200, + msg: "".to_owned(), + result: &(*instrument_map) + }; + + rsp_json = serde_json::to_string(&rsp_result)?; + }else{ + + let rsp_result = RspResult{ + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); diff --git a/src/routes.rs b/src/routes.rs index 24f9268..6d52dbd 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -40,9 +40,9 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_commission_rate") => { tdcontroller::td_query_commission_rate(req).await }, - // (&Method::GET, "/api/v1/query_all_instruments") => { - // tdcontroller::td_query_instruments(req).await - // }, + (&Method::GET, "/api/v1/query_all_instruments") => { + tdcontroller::td_query_all_instrument(req).await + }, (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await } -- Gitee From a49ed8b25269f4ed363f6f22236321fbbf874f11 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 20 Sep 2021 15:53:47 +0800 Subject: [PATCH 41/75] add push_event for send_order & register push event --- Cargo.toml | 2 +- src/ctp_client/mdcontroller.rs | 174 +++++++++++----------- src/ctp_client/mod.rs | 10 +- src/ctp_client/query_instruments.rs | 3 +- src/ctp_client/query_investor_position.rs | 2 +- src/ctp_client/query_settlement_info.rs | 2 +- src/ctp_client/query_trading_account.rs | 2 +- src/ctp_client/send_market_order.rs | 27 ++++ src/ctp_client/tdcontroller.rs | 151 ++++++++++++++++++- src/request.rs | 8 + src/routes.rs | 5 +- 11 files changed, 284 insertions(+), 102 deletions(-) create mode 100644 src/ctp_client/send_market_order.rs diff --git a/Cargo.toml b/Cargo.toml index 51ebc38..647b1ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.8" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.9" } \ No newline at end of file diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 03f8aa6..78dfc0a 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,6 +1,6 @@ use rust_ctp::md_api; -use super::Event; +use super::Push_Event; use super::{CTP_CLIENT_ID, CTP_MARKET_FRONT_ADDR, CTP_USER_ID, @@ -25,12 +25,13 @@ use super::super::result::RspResult; use std::thread; use std::time::Duration; +use std::time::Instant; use std::collections::HashMap; use tokio::sync::Mutex; use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 -static CTP_MD_LOGIN: Lazy> = Lazy::new(|| { +static CTP_MD_READY: Lazy> = Lazy::new(|| { Mutex::new(false) }); @@ -51,10 +52,6 @@ pub async fn init(){ // } // } - debug!("start; init CTP market client event_handler"); - register_md_event_handler(); - debug!("end; init CTP market client event_handler"); - info!("start; init CTP market client connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); md_connect(); debug!("end; init CTP market client connection"); @@ -88,10 +85,10 @@ fn md_connect(){ info!("md_api::EventHandler::OnFrontDisconnected, reason: {}", on_front_disconnected_reason(n_reason)); let rt = tokio::runtime::Runtime::new().unwrap(); - let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); - *is_login = false; + let mut is_ready = rt.block_on(CTP_MD_READY.lock()); + *is_ready = false; - debug!("reset ctp_md_login status to false"); + debug!("md client OnFrontDisconnected, reset CTP_MD_READY status to false"); }); md_api::connect(CTP_MARKET_FRONT_ADDR.get().unwrap()); @@ -105,10 +102,10 @@ fn md_login() ->i32 { info!("md_api::EventHandler::OnRspUserLogin successfully. TradingDay: {}",rsp_user_login.TradingDay); - let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); - *is_login = true; + let mut is_ready = rt.block_on(CTP_MD_READY.lock()); + *is_ready = true; - debug!("set ctp_md_login status to true"); + debug!("md client OnRspUserLogin OK,set CTP_MD_READY status to true"); // info!("start, check or resub last instrument_ids if CTP relogin"); // let _ = rt.block_on(resub_if_relogin()); @@ -118,10 +115,10 @@ fn md_login() ->i32 { rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let mut is_login = rt.block_on(CTP_MD_LOGIN.lock()); - *is_login = false; + let mut is_ready = rt.block_on(CTP_MD_READY.lock()); + *is_ready = false; - debug!("reset ctp_md_login status to false"); + debug!("md client OnRspUserLogin Error,reset ctp_md_login status to false"); } }); @@ -131,90 +128,90 @@ fn md_login() ->i32 { CTP_BROKER_ID.get().unwrap()) } -/// 必须主线程先完成注册CTP的事件处理器(闭包) -fn register_md_event_handler() { +pub async fn get_trading_day() -> Result,GenericError> { + let start = Instant::now(); + let is_ready = CTP_MD_READY.lock().await; - /* - md_api::EventHandler::OnRspUserLogout(|rsp_user_logout, rsp_info, n_request_id, b_is_last| { - println!("Rust mdclient UserLogout nRequestID: {}", n_request_id); - println!("Rust mdclient UserLogout bIsLast: {}", b_is_last); + let mut rsp_json = "{}".to_string(); - println!("Rust mdclient UserLogout UserID: {}",rsp_user_logout.UserID); - println!("Rust mdclient UserLogout BrokerID: {}",rsp_user_logout.BrokerID); - }); - */ + if *is_ready { + let trading_day = md_api::get_trading_day(); - /* - md_api::EventHandler::OnRspSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - println!("Rust mdclient SubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); - }); + let rsp_result = RspResult{ + code: 1200, + msg: "".to_owned(), + result: trading_day + }; - md_api::EventHandler::OnRspUnSubForQuoteRsp(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - println!("Rust mdclient UnSubForQuote InstrumentInfo: {:?}",rsp_specific_instrument); - });*/ -} + rsp_json = serde_json::to_string(&rsp_result)?; + }else{ -pub async fn get_trading_day() -> Result,GenericError> { - let trading_day = md_api::get_trading_day(); + let rsp_result = RspResult{ + code: 1500, + msg: "".to_owned(), + result: "MD Client Not Ready".to_owned() + }; + + rsp_json = serde_json::to_string(&rsp_result)?; + } let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(trading_day))?; + .body(Body::from(rsp_json))?; + debug!("API get_trading_day cost: {:?} us", start.elapsed().as_micros()); Ok(response) } ///登录成功才可以订阅 pub async fn subscribe(req: Request) -> Result,GenericError> { - md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! rsp_info:{:?}, nRequestID: {},bIsLast: {}", - rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); - }); + let is_ready = CTP_MD_READY.lock().await; - md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { + debug!("Before subscribe,check md is_ready: {}",is_ready); - debug!("md_api::EventHandler::OnRtnDepthMarketData, TradingDay: {},InstrumentID: {}, LastPrice: {}", - depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice - ); + let mut ret = 0; + let mut ret_msg = "".to_string(); - let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); + if *is_ready { - let event = Event{ - client: CTP_CLIENT_ID, - name: "OnRtnDepthMarketData", - request_id: 0, - is_last: false, - payload: depth_market_data - }; + md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! rsp_info:{:?}, nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); + }); - let json_str = serde_json::to_string(&event); + md_api::EventHandler::OnRtnDepthMarketData(|depth_market_data| { - match json_str { - Err(e) => { - error!("Error serialize json depth market data!:{}",e) - }, - Ok(event_json) => { + debug!("md_api::EventHandler::OnRtnDepthMarketData, TradingDay: {},InstrumentID: {}, LastPrice: {}", + depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice + ); - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); - } - } - }); + let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + let event = Push_Event{ + client: CTP_CLIENT_ID, + name: "OnRtnDepthMarketData", + payload: depth_market_data + }; - let is_login = CTP_MD_LOGIN.lock().await; + let json_str = serde_json::to_string(&event); - info!("Before subscribe,check md is_login: {}",is_login); + match json_str { + Err(e) => { + error!("Error serialize json depth market data!:{}",e) + }, + Ok(event_json) => { - let mut ret = 0; - let mut ret_msg = "".to_string(); + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + } + } + }); - if *is_login { + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); @@ -227,11 +224,10 @@ pub async fn subscribe(req: Request) -> Result,GenericError save_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { - warn!("Do not send subscribe req for instrument_ids: {:?}, because md is_login: {}", - &sub_req.instrument_ids, is_login); + warn!("Do not send subscribe req , because md is_ready: {}",is_ready); ret = -1; - ret_msg = "User have not login,please login first.".to_string(); + ret_msg = "Md client have not ready,please fix first.".to_string(); } let rsp_result = RspResult{ @@ -251,24 +247,23 @@ pub async fn subscribe(req: Request) -> Result,GenericError } pub async fn unsubscribe(req: Request) -> Result,GenericError> { + let is_ready = CTP_MD_READY.lock().await; - md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { - debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! resp_info:{:?},nRequestID: {},bIsLast: {}", - rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); - }); - - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - - let is_login = CTP_MD_LOGIN.lock().await; - - info!("Before unsubscribe,check md is_login: {}",is_login); + debug!("Before unsubscribe,check md client is_ready: {}",is_ready); let mut ret = 0; let mut ret_msg = "".to_string(); - if *is_login { + if *is_ready { + + md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { + debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! resp_info:{:?},nRequestID: {},bIsLast: {}", + rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); + }); + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; debug!("send unsubscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); @@ -281,11 +276,10 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr delete_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { - warn!("Do not send unsubscribe req for instrument_ids: {:?}, because md is_login: {}", - &sub_req.instrument_ids, is_login); + warn!("Do not send unsubscribe req, because md is_ready: {}",is_ready); ret = -1; - ret_msg = "User have not login,please login first.".to_string(); + ret_msg = "MD client have not ready,please fix.".to_string(); } let rsp_result = RspResult{ diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 2c283cb..53e5846 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -5,6 +5,7 @@ mod query_investor_position; mod query_commission_rate; mod query_settlement_info; mod query_instruments; +mod send_market_order; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; @@ -15,7 +16,14 @@ use std::marker::Send; use serde::{Serialize}; -#[derive(Serialize)] +#[derive(Debug,Serialize)] +pub struct Push_Event where T: Send{ + pub client: &'static str, + pub name: &'static str, + pub payload: T +} + +#[derive(Debug,Serialize)] pub struct Event where T: Send{ pub client: &'static str, pub name: &'static str, diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index e971e7c..7ce3c8a 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -3,7 +3,6 @@ use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; use std::sync::mpsc; -use crate::result::RspResult; use crate::utils::ctperror::api_return_code; use super::Event; @@ -18,7 +17,7 @@ pub async fn query_instruments() -> i32 { let tx_rsp_err = tx.clone(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + error!("td_api::EventHandler::OnRspError of query_instruments, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 120bad5..c05e7ca 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -19,7 +19,7 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { let tx_err = tx.clone(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + error!("td_api::EventHandler::OnRspError of query_investor_position, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 406e3c9..103c0fe 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -19,7 +19,7 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let tx_err = tx.clone(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + error!("td_api::EventHandler::OnRspError of query_settlement_info, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 1b6b2f2..6ee5b4e 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -21,7 +21,7 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { let tx_rsp_err = tx.clone(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + error!("td_api::EventHandler::OnRspError of query_trading_account, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs new file mode 100644 index 0000000..d8fd1d1 --- /dev/null +++ b/src/ctp_client/send_market_order.rs @@ -0,0 +1,27 @@ +use serde_json::Result; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +pub fn send_market_order(instrument_id:&str,direction:&str,open_close:&str,volume:i32) -> Result { + + let mut ret= 0; + let mut ret_msg = "".to_string(); + let mut payload = "".to_string(); + + ret = td_api::send_market_order(instrument_id,direction,open_close,volume); + + if ret != 0 { + error!("send_market_order too often,please access for a while,ret: {}", api_return_code(ret)); + ret_msg = format!("send_market_order too often,please access for a while. ret: {}",api_return_code(ret)); + } + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: payload + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 0c5a59f..0531b7c 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -5,11 +5,16 @@ use super::query_instruments::*; use super::query_trading_account::*; use super::query_investor_position::*; use super::query_commission_rate::*; +use super::send_market_order::*; use crate::result::RspResult; use super::super::utils::ctperror::{GenericError}; +use super::super::request::{SendMarketOrderRequest}; -use super::{CTP_TRADE_FRONT_ADDR, +use super::Push_Event; + +use super::{CTP_CLIENT_ID, + CTP_TRADE_FRONT_ADDR, CTP_USER_ID, CTP_BROKER_ID, CTP_USER_PASSWORD, @@ -25,7 +30,6 @@ use crate::utils::http_url_params; use hyper::{Body,header,Request, Response, StatusCode}; - use std::thread; use std::time::Duration; @@ -41,7 +45,9 @@ static CTP_TD_READY: Lazy> = Lazy::new(|| { }); pub async fn init() { - + info!("start; init push event_handler for CTP access trader"); + register_push_event_handler(); + info!("end; init push event_handler for CTP access trader"); info!("start; init CTP trader client connection, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); td_connect(); debug!("end; init CTP trader client connection"); @@ -70,6 +76,109 @@ pub async fn init() { } } +pub fn recover_on_error_event_handler() { + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + debug!("td_api::EventHandler::OnRspError: push_event {:?}", + event); + }); +} + +fn register_push_event_handler(){ + + //OnRspOrderInsert是Order被交易所后台核心拒绝的响应,不算错误,只是订单的一个状态 + //交易所后台核心 —— 对收到的交易序列报文做合法性检查 + //检查出错误的交易申请报文后就会返回给 —— 交易所前置服务器1个包含错误信息的报单响应报文 + //交易所前置服务器 —— 立即将该报文信息转发给 —— CTP交易终端 + let reg_order_insert_ok = td_api::EventHandler::OnRspOrderInsert(move |rsp_input_order, rsp_info| { + debug!("td_api::EventHandler::OnRspOrderInsert, rsp_input_order: {:?}", + rsp_input_order); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspOrderInsert, ErrorID: {},ErrorMsg: {}", + rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspOrderInsert", + payload: event_str + }; + + debug!("td_api::EventHandler::OnRspOrderInsert: push_event {:?}", + event); + }); + + //报单录入错误响应 + //此接口仅在报单 —— 被CTP交易终端拒绝时 —— 被调用用来进行报错 + let reg_err_order_insert_ok = td_api::EventHandler::OnErrRtnOrderInsert(move |rsp_input_order, rsp_info| { + debug!("td_api::EventHandler::OnErrRtnOrderInsert, rsp_input_order: {:?}", + rsp_input_order); + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnErrRtnOrderInsert, ErrorID: {},ErrorMsg: {}", + rsp_info.ErrorID,rsp_info.ErrorMsg); + } + + let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnErrRtnOrderInsert", + payload: event_str + }; + + debug!("td_api::EventHandler::OnErrRtnOrderInsert: push_event {:?}", + event); + }); + + let reg_rsp_order_ok = td_api::EventHandler::OnRtnOrder(move |rsp_order| { + debug!("td_api::EventHandler::OnRtnOrder, rsp_order: {:?}", + rsp_order); + + let event_str = serde_json::to_string(&rsp_order).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRtnOrder", + payload: event_str + }; + + debug!("td_api::EventHandler::OnRtnOrder: push_event {:?}", + event); + }); + + let reg_rsp_order_ok = td_api::EventHandler::OnRtnTrade(move |rsp_trade| { + debug!("td_api::EventHandler::OnRtnTrade, rsp_trade: {:?}", + rsp_trade); + + let event_str = serde_json::to_string(&rsp_trade).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRtnTrade", + payload: event_str + }; + + debug!("td_api::EventHandler::OnRtnTrade: push_event {:?}", + event); + }); +} + fn td_connect(){ td_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { @@ -263,7 +372,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge Ok(response) } -pub async fn td_query_all_instrument(_req: Request) -> Result,GenericError> { +pub async fn td_query_all_instruments(_req: Request) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; @@ -371,6 +480,40 @@ pub async fn td_query_commission_rate(req: Request) -> Result) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendMarketOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_market_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_market_order(req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") diff --git a/src/request.rs b/src/request.rs index 45f08f4..56a0852 100644 --- a/src/request.rs +++ b/src/request.rs @@ -5,3 +5,11 @@ pub struct SubscribeRequest { pub instrument_ids: Vec, } +#[derive(Serialize,Deserialize, Debug)] +pub struct SendMarketOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32 +} + diff --git a/src/routes.rs b/src/routes.rs index 6d52dbd..3129e63 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -41,10 +41,13 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> tdcontroller::td_query_commission_rate(req).await }, (&Method::GET, "/api/v1/query_all_instruments") => { - tdcontroller::td_query_all_instrument(req).await + tdcontroller::td_query_all_instruments(req).await }, (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await + }, + (&Method::GET, "/api/v1/send_market_order") => { + tdcontroller::td_send_market_order(req).await } // Return the 404 Not Found for other routes. _ => { -- Gitee From 9e45b73ff66426ec2341a4a1c43d8f14c4bb6f16 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 22 Sep 2021 19:46:14 +0800 Subject: [PATCH 42/75] add recover_on_error_push_event_handler in thread-safety event handler function --- src/ctp_client/mod.rs | 2 +- src/ctp_client/query_commission_rate.rs | 20 ++++--- src/ctp_client/query_instruments.rs | 19 ++++--- src/ctp_client/query_investor_position.rs | 23 ++++++--- src/ctp_client/query_settlement_info.rs | 63 ++++++++++++++++++----- src/ctp_client/query_trading_account.rs | 19 ++++--- src/ctp_client/tdcontroller.rs | 15 +----- src/utils/ctperror.rs | 24 +++++++++ 8 files changed, 127 insertions(+), 58 deletions(-) diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 53e5846..ce006ca 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -35,7 +35,7 @@ pub struct Event where T: Send{ #[derive(Serialize)] pub struct EmptyEvent{} -static CTP_CLIENT_ID: &str = "CTP"; +pub static CTP_CLIENT_ID: &str = "CTP"; static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); static CTP_TRADE_FRONT_ADDR: OnceCell = OnceCell::new(); diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index b44a634..3105734 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -1,10 +1,11 @@ - use serde_json::Result; +use serde_json::Value; + use rust_ctp::td_api; use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; @@ -13,11 +14,12 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> let mut ret; let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + let mut payload = "{}".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); + td_api::EventHandler::UnRspError(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -69,17 +71,17 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> if received_event.name == "OnRspError" { ret = -1; - ret_msg = received_event.payload; - error!("query_commission_rate error event: {}", &ret_msg); + ret_msg = format!("query_commission_rate error event: {}", received_event.payload); + error!("{}",ret_msg); }else{ payload = received_event.payload; } } - td_api::EventHandler::UnRspError(); td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + recover_on_error_push_event_handler(); } else { - td_api::EventHandler::UnRspError(); + recover_on_error_push_event_handler(); warn!("query_commission_rate OnRspQryInstrumentCommissionRate event handler is busy,please access for a while"); ret = -1; ret_msg = "query_commission_rate too often,please access for a while".to_string(); @@ -92,10 +94,12 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> ret_msg = "query_commission_rate too often,please access for a while".to_string(); } + let rsp_commission_rate:Value = serde_json::from_str(&payload).expect("query_commission_rate deserialize error!"); + let rsp_result = RspResult{ code: ret, msg: ret_msg, - result: payload + result: rsp_commission_rate }; serde_json::to_string(&rsp_result) diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 7ce3c8a..fe7c818 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -1,9 +1,10 @@ use rust_ctp::td_api; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; +use serde_json::Value; use std::sync::mpsc; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; @@ -12,10 +13,12 @@ use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; pub async fn query_instruments() -> i32 { let mut ret = 0; + let mut ret_msg = "".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); + td_api::EventHandler::UnRspError(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError of query_instruments, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -63,7 +66,7 @@ pub async fn query_instruments() -> i32 { if ret != 0 { error!("query_instruments too often,please access for a while,ret: {}", api_return_code(ret)); }else{ - let mut instrument_event_list = Vec::new(); + let mut event_list = Vec::new(); loop { //debug!("query_instruments receiving event..."); let received_event = rx.recv().unwrap(); @@ -72,10 +75,10 @@ pub async fn query_instruments() -> i32 { if received_event.name == "OnRspError" { ret = -1; error!("query_instruments error event: {}", received_event.payload); - instrument_event_list.clear(); + event_list.clear(); break; }else { - instrument_event_list.push(received_event.payload); + event_list.push(received_event.payload); } if received_event.is_last { @@ -85,16 +88,16 @@ pub async fn query_instruments() -> i32 { //Process All Instruments let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().await; - for instrument in &instrument_event_list{ - let rsp_instrument:RspInstrumentField = serde_json::from_str(instrument).unwrap(); + for event_str in &event_list{ + let rsp_instrument:RspInstrumentField = serde_json::from_str(event_str).unwrap(); instrument_hashmap.insert(rsp_instrument.InstrumentID.clone(),rsp_instrument); } } - td_api::EventHandler::UnRspError(); td_api::EventHandler::UnRspQryInstrument(); + recover_on_error_push_event_handler(); } else { - td_api::EventHandler::UnRspError(); + recover_on_error_push_event_handler(); error!("query_instruments error about can not bing OnRspQryInstrument event handler"); ret = -1; } diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index c05e7ca..5501ddb 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -1,9 +1,12 @@ use serde_json::Result; +use serde_json::Value; + use rust_ctp::td_api; use std::sync::mpsc; + use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; @@ -13,11 +16,14 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { let mut ret= 0; let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + let mut payload = "{}".to_string(); + + //let rsp_settlement_info:Value = serde_json::from_str(&payload).expect("query_settlement_info deserialize error!"); let (tx, rx) = mpsc::channel(); let tx_err = tx.clone(); + td_api::EventHandler::UnRspError(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError of query_investor_position, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -69,17 +75,17 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { if received_event.name == "OnRspError" { ret = -1; - ret_msg = received_event.payload; - error!("query_investor_position error event: {}", &ret_msg); + ret_msg = format!("query_investor_position error event: {}", received_event.payload); + error!("{}",ret_msg); }else{ payload = received_event.payload; } } - td_api::EventHandler::UnRspError(); td_api::EventHandler::UnRspQryInvestorPosition(); + recover_on_error_push_event_handler(); } else { - td_api::EventHandler::UnRspError(); + recover_on_error_push_event_handler(); warn!("query_investor_position OnRspQryInvestorPosition event handler is busy,please access for a while"); ret = -1; ret_msg = "query_investor_position too often,please access for a while".to_string(); @@ -92,10 +98,13 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { ret_msg = "query_investor_position too often,please access for a while".to_string(); } + + let investor_position_field:Value = serde_json::from_str(&payload).expect("query_investor_position deserialize error!"); + let rsp_result = RspResult { code: ret, msg: ret_msg, - result: payload + result: investor_position_field }; serde_json::to_string(&rsp_result) diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 103c0fe..a74929b 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -1,9 +1,12 @@ use serde_json::Result; +use serde_json::Value; use rust_ctp::td_api; use std::sync::mpsc; +use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; + use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; @@ -13,11 +16,24 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let mut ret= 0; let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + + //let rsp_settlement_info:Value = serde_json::from_str(&payload).expect("query_settlement_info deserialize error!"); + + let mut com_rsp_settlement_info = RspSettlementInfoField { + TradingDay: "".to_string(), + SettlementID: 0, + BrokerID: "".to_string(), + InvestorID: "".to_string(), + SequenceNo: 0, + Content: "".to_string(), + AccountID: "".to_string(), + CurrencyID: "".to_string() + }; let (tx, rx) = mpsc::channel(); let tx_err = tx.clone(); + td_api::EventHandler::UnRspError(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError of query_settlement_info, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -65,21 +81,42 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { error!("query_settlement_info too often,please access for a while,ret: {}", api_return_code(ret)); ret_msg = format!("query_settlement_info too often,please access for a while. ret: {}",api_return_code(ret)); }else{ - let received_event = rx.recv().unwrap(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = received_event.payload; - error!("query_settlement_info error event: {}", &ret_msg); - }else{ - payload = received_event.payload; + + let mut event_list = Vec::new(); + loop { + let received_event = rx.recv().unwrap(); + + // do not need to receive event + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = format!("query_settlement_info error event: {}", received_event.payload); + error!("{}",ret_msg); + event_list.clear(); + break; + }else { + event_list.push(received_event.payload); + } + + if received_event.is_last { + break; + } + } + + //Process All settlement info event + for event_str in &event_list { + let rsp_settlement_info:RspSettlementInfoField = serde_json::from_str(event_str).unwrap(); + if com_rsp_settlement_info.Content == "".to_owned() { + com_rsp_settlement_info = rsp_settlement_info; + }else{ + com_rsp_settlement_info.Content = com_rsp_settlement_info.Content+&rsp_settlement_info.Content; + } } } - td_api::EventHandler::UnRspError(); td_api::EventHandler::UnRspQrySettlementInfo(); + recover_on_error_push_event_handler(); } else { - td_api::EventHandler::UnRspError(); + recover_on_error_push_event_handler(); warn!("query_settlement_info OnRspQrySettlementInfo event handler is busy,please access for a while"); ret = -1; ret_msg = "query_settlement_info too often,please access for a while".to_string(); @@ -95,7 +132,7 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let rsp_result = RspResult { code: ret, msg: ret_msg, - result: payload + result: com_rsp_settlement_info }; serde_json::to_string(&rsp_result) diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 6ee5b4e..61a376f 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -1,10 +1,12 @@ use serde_json::Result; +use serde_json::Value; + use std::time::Instant; use rust_ctp::td_api; use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; @@ -15,11 +17,12 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { let mut ret; let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + let mut payload = "{}".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); + td_api::EventHandler::UnRspError(); let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError of query_trading_account, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -76,17 +79,17 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { if received_event.name == "OnRspError" { ret = -1; - ret_msg = received_event.payload; - error!("query_trading_account error event: {}", &ret_msg); + ret_msg = format!("query_trading_account error event: {}", received_event.payload); + error!("{}",ret_msg); }else{ payload = received_event.payload; } } - td_api::EventHandler::UnRspError(); td_api::EventHandler::UnRspQryTradingAccount(); + recover_on_error_push_event_handler(); } else { - td_api::EventHandler::UnRspError(); + recover_on_error_push_event_handler(); warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); ret = -1; ret_msg = "query_trading_account too often,please access for a while".to_string(); @@ -100,10 +103,12 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); + let trading_account:Value = serde_json::from_str(&payload).expect("query_trading_account deserialize error!"); + let rsp_result = RspResult{ code: ret, msg: ret_msg, - result: payload + result: trading_account }; diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 0531b7c..35a0040 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -76,7 +76,7 @@ pub async fn init() { } } -pub fn recover_on_error_event_handler() { +fn register_push_event_handler(){ let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", @@ -94,9 +94,6 @@ pub fn recover_on_error_event_handler() { debug!("td_api::EventHandler::OnRspError: push_event {:?}", event); }); -} - -fn register_push_event_handler(){ //OnRspOrderInsert是Order被交易所后台核心拒绝的响应,不算错误,只是订单的一个状态 //交易所后台核心 —— 对收到的交易序列报文做合法性检查 @@ -181,16 +178,6 @@ fn register_push_event_handler(){ fn td_connect(){ - td_api::EventHandler::OnRspError(|rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - }); - - //Multi API will compete to use OnRspError Event Handler - //So we should release the OnRspError closure first - td_api::EventHandler::UnRspError(); - td_api::EventHandler::OnFrontConnected(|| { info!("td_api::EventHandler::OnFrontConnected,then authenticate"); diff --git a/src/utils/ctperror.rs b/src/utils/ctperror.rs index 022770b..264bc0b 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctperror.rs @@ -1,6 +1,9 @@ //------------------自定义CTPError----------- use hyper::{header,Body, Response, StatusCode}; +use rust_ctp::td_api; +use crate::ctp_client::CTP_CLIENT_ID; +use crate::ctp_client::Push_Event; use super::super::result::RspResult; use super::super::result::EmptyResult; @@ -74,4 +77,25 @@ pub fn api_return_code(ret: i32)-> String { -3 => "每秒发送请求数超过许可数".to_string(), _ => "未知错误码".to_string(), } +} + +pub fn recover_on_error_push_event_handler() { + td_api::EventHandler::UnRspError(); + + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + debug!("td_api::EventHandler::OnRspError: push_event {:?}", + event); + }); } \ No newline at end of file -- Gitee From 725eb7bad5cef373abf7e347f6c44054366de92a Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 22 Sep 2021 20:03:23 +0800 Subject: [PATCH 43/75] add comment for send Event --- src/ctp_client/query_commission_rate.rs | 2 ++ src/ctp_client/query_instruments.rs | 2 ++ src/ctp_client/query_investor_position.rs | 2 ++ src/ctp_client/query_settlement_info.rs | 5 +++-- src/ctp_client/query_trading_account.rs | 2 ++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 3105734..84f10dc 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -35,6 +35,8 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> payload: event_str }; + //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index fe7c818..73a2f5d 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -34,6 +34,8 @@ pub async fn query_instruments() -> i32 { payload: event_str }; + //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 5501ddb..71cf6d9 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -39,6 +39,8 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { payload: event_str }; + //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //so serde_json as Event tx_err.send(event).unwrap(); }); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index a74929b..0dc6410 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -17,8 +17,6 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { let mut ret= 0; let mut ret_msg = "".to_string(); - //let rsp_settlement_info:Value = serde_json::from_str(&payload).expect("query_settlement_info deserialize error!"); - let mut com_rsp_settlement_info = RspSettlementInfoField { TradingDay: "".to_string(), SettlementID: 0, @@ -71,6 +69,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { payload: event_str }; + //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //so serde_json as Event tx.send(event).unwrap(); }); @@ -80,6 +80,7 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { if ret != 0 { error!("query_settlement_info too often,please access for a while,ret: {}", api_return_code(ret)); ret_msg = format!("query_settlement_info too often,please access for a while. ret: {}",api_return_code(ret)); + }else{ let mut event_list = Vec::new(); diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 61a376f..5d5f935 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -38,6 +38,8 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { payload: event_str }; + //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); -- Gitee From 96a9f57d1aa8a54fba95c1e6989c7756eb55936e Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 22 Sep 2021 20:05:18 +0800 Subject: [PATCH 44/75] add comment for send Event --- src/ctp_client/query_commission_rate.rs | 2 +- src/ctp_client/query_instruments.rs | 2 +- src/ctp_client/query_settlement_info.rs | 4 ++-- src/ctp_client/query_trading_account.rs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 84f10dc..1f972b7 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -35,7 +35,7 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> payload: event_str }; - //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 73a2f5d..63b1233 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -34,7 +34,7 @@ pub async fn query_instruments() -> i32 { payload: event_str }; - //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //must use the same Event type in OnRspError as OnRspQryInstrument //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 0dc6410..84e5ed8 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -47,6 +47,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { payload: event_str }; + //must use the same Event type in OnRspError as OnRspQrySettlementInfo + //so serde_json as Event tx_err.send(event).unwrap(); }); @@ -69,8 +71,6 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { payload: event_str }; - //must use the same Event type in OnRspError as OnRspQryInvestorPosition - //so serde_json as Event tx.send(event).unwrap(); }); diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 5d5f935..0c86ef7 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -38,7 +38,7 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { payload: event_str }; - //must use the same Event type in OnRspError as OnRspQryInvestorPosition + //must use the same Event type in OnRspError as OnRspQryTradingAccount //so serde_json as Event tx_rsp_err.send(event).unwrap(); }); -- Gitee From da35c53e5befbfcb2b5f43e0510715275eae8f9f Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 22 Sep 2021 20:26:16 +0800 Subject: [PATCH 45/75] add comment for ret !=0 --- src/ctp_client/query_commission_rate.rs | 4 +-- src/ctp_client/query_instruments.rs | 2 +- src/ctp_client/query_investor_position.rs | 4 +-- src/ctp_client/query_settlement_info.rs | 5 ++- src/ctp_client/query_trading_account.rs | 4 +-- src/ctp_client/send_market_order.rs | 11 +++--- src/ctp_client/tdcontroller.rs | 43 ++++++++++++----------- src/routes.rs | 2 +- 8 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 1f972b7..89fd323 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -66,8 +66,8 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); if ret != 0 { - error!("query_commission_rate too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_commission_rate too often,please access for a while. ret: {}",api_return_code(ret)); + error!("query_commission_rate error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_commission_rate error, ret:{}, msg: {}",ret,api_return_code(ret)); }else{ let received_event = rx.recv().unwrap(); diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 63b1233..ca86edb 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -66,7 +66,7 @@ pub async fn query_instruments() -> i32 { ret = td_api::query_instruments(); if ret != 0 { - error!("query_instruments too often,please access for a while,ret: {}", api_return_code(ret)); + error!("query_instruments error, ret:{}, msg: {}", ret, api_return_code(ret)); }else{ let mut event_list = Vec::new(); loop { diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 71cf6d9..25a4486 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -70,8 +70,8 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { ret = td_api::query_investor_position(user_id,broker_id); if ret != 0 { - error!("query_investor_position too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_investor_position too often,please access for a while. ret: {}",api_return_code(ret)); + error!("query_investor_position error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_investor_position error, ret:{}, msg: {}",ret,api_return_code(ret)); }else{ let received_event = rx.recv().unwrap(); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 84e5ed8..cd73111 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -1,5 +1,4 @@ use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use std::sync::mpsc; @@ -78,8 +77,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { ret = td_api::query_settlement_info(user_id,broker_id); if ret != 0 { - error!("query_settlement_info too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_settlement_info too often,please access for a while. ret: {}",api_return_code(ret)); + error!("query_settlement_info error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_settlement_info error, ret:{}, msg: {}",ret,api_return_code(ret)); }else{ diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 0c86ef7..849ae34 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -74,8 +74,8 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { ret = td_api::query_trading_account(user_id,broker_id); if ret != 0 { - error!("query_trading_account too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("query_trading_account too often,please access for a while. ret: {}",api_return_code(ret)); + error!("query_trading_account error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_trading_account error, ret:{}, msg: {}",ret,api_return_code(ret)); }else{ let received_event = rx.recv().unwrap(); diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index d8fd1d1..7cf0bf7 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -1,4 +1,5 @@ use serde_json::Result; +use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; @@ -8,19 +9,21 @@ pub fn send_market_order(instrument_id:&str,direction:&str,open_close:&str,volum let mut ret= 0; let mut ret_msg = "".to_string(); - let mut payload = "".to_string(); + let mut payload = "{}".to_string(); ret = td_api::send_market_order(instrument_id,direction,open_close,volume); if ret != 0 { - error!("send_market_order too often,please access for a while,ret: {}", api_return_code(ret)); - ret_msg = format!("send_market_order too often,please access for a while. ret: {}",api_return_code(ret)); + error!("send_market_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_market_order error, ret:{}, msg: {}",ret,api_return_code(ret)); } + let empty_result:Value = serde_json::from_str(&payload).expect("send_market_order deserialize error!"); + let rsp_result = RspResult { code: ret, msg: ret_msg, - result: payload + result: empty_result }; serde_json::to_string(&rsp_result) diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 35a0040..3b2f143 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -104,20 +104,21 @@ fn register_push_event_handler(){ rsp_input_order); if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspOrderInsert, ErrorID: {},ErrorMsg: {}", + error!("td_api::EventHandler::OnRspOrderInsert Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID,rsp_info.ErrorMsg); - } + }else{ + let event_str = serde_json::to_string(&rsp_input_order).unwrap(); - let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspOrderInsert", + payload: event_str + }; - let event = Push_Event { - client: CTP_CLIENT_ID, - name: "OnRspOrderInsert", - payload: event_str - }; + debug!("td_api::EventHandler::OnRspOrderInsert: push_event {:?}", + event); + } - debug!("td_api::EventHandler::OnRspOrderInsert: push_event {:?}", - event); }); //报单录入错误响应 @@ -127,20 +128,20 @@ fn register_push_event_handler(){ rsp_input_order); if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnErrRtnOrderInsert, ErrorID: {},ErrorMsg: {}", + error!("td_api::EventHandler::OnErrRtnOrderInsert Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID,rsp_info.ErrorMsg); - } - - let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + }else{ + let event_str = serde_json::to_string(&rsp_input_order).unwrap(); - let event = Push_Event { - client: CTP_CLIENT_ID, - name: "OnErrRtnOrderInsert", - payload: event_str - }; + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnErrRtnOrderInsert", + payload: event_str + }; - debug!("td_api::EventHandler::OnErrRtnOrderInsert: push_event {:?}", - event); + debug!("td_api::EventHandler::OnErrRtnOrderInsert: push_event {:?}", + event); + } }); let reg_rsp_order_ok = td_api::EventHandler::OnRtnOrder(move |rsp_order| { diff --git a/src/routes.rs b/src/routes.rs index 3129e63..ed030b0 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -46,7 +46,7 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await }, - (&Method::GET, "/api/v1/send_market_order") => { + (&Method::POST, "/api/v1/send_market_order") => { tdcontroller::td_send_market_order(req).await } // Return the 404 Not Found for other routes. -- Gitee From b5d420560d0db69e14ab584045499faa69ef6ec6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 24 Sep 2021 00:31:22 +0800 Subject: [PATCH 46/75] complete send order logic --- Cargo.toml | 2 +- src/ctp_client/mod.rs | 1 + src/ctp_client/send_market_order.rs | 24 ++++++++--- src/ctp_client/tdcontroller.rs | 54 ++++++++++++++++++++++++- src/request.rs | 9 +++++ src/routes.rs | 3 ++ src/rust_ctp_client/librusttdclient.so | Bin 136632 -> 136608 bytes src/utils/ctperror.rs | 2 +- 8 files changed, 85 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 647b1ad..22254ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.2.9" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.2" } \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index ce006ca..5262fc1 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -6,6 +6,7 @@ mod query_commission_rate; mod query_settlement_info; mod query_instruments; mod send_market_order; +mod send_limit_order; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index 7cf0bf7..f52665f 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -5,20 +5,32 @@ use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctperror::api_return_code; -pub fn send_market_order(instrument_id:&str,direction:&str,open_close:&str,volume:i32) -> Result { +pub fn send_market_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str, + volume:i32) -> Result { - let mut ret= 0; let mut ret_msg = "".to_string(); - let mut payload = "{}".to_string(); - ret = td_api::send_market_order(instrument_id,direction,open_close,volume); + let ret = td_api::send_market_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume); - if ret != 0 { + if ret != order_def_id { error!("send_market_order error, ret:{}, msg: {}", ret,api_return_code(ret)); ret_msg = format!("send_market_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_market_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str(&payload).expect("send_market_order deserialize error!"); + let empty_result:Value = serde_json::from_str("{}").expect("send_market_order deserialize error!"); let rsp_result = RspResult { code: ret, diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 3b2f143..17ab6f1 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -6,10 +6,11 @@ use super::query_trading_account::*; use super::query_investor_position::*; use super::query_commission_rate::*; use super::send_market_order::*; +use super::send_limit_order::*; use crate::result::RspResult; use super::super::utils::ctperror::{GenericError}; -use super::super::request::{SendMarketOrderRequest}; +use super::super::request::{SendMarketOrderRequest,SendLimitOrderRequest}; use super::Push_Event; @@ -44,6 +45,10 @@ static CTP_TD_READY: Lazy> = Lazy::new(|| { Mutex::new(false) }); +static CTP_TD_ORDER_DEF_ID: Lazy> = Lazy::new(|| { + Mutex::new(0) +}); + pub async fn init() { info!("start; init push event_handler for CTP access trader"); register_push_event_handler(); @@ -479,6 +484,8 @@ pub async fn td_query_commission_rate(req: Request) -> Result) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; if *is_ready { @@ -487,7 +494,10 @@ pub async fn td_send_market_order(req: Request) -> Result,G let req: SendMarketOrderRequest = serde_json::from_str(&body_str)?; debug!("td_send_market_order instrument_id:{}",req.instrument_id); - let rsp_result = send_market_order(req.instrument_id.as_str(), + let rsp_result = send_market_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), req.direction.as_str(), req.open_close.as_str(), req.volume); @@ -502,6 +512,46 @@ pub async fn td_send_market_order(req: Request) -> Result,G rsp_json = serde_json::to_string(&rsp_result)? } + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} + +pub async fn td_send_limit_order(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendLimitOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_limit_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_limit_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume, + req.limit_price); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") diff --git a/src/request.rs b/src/request.rs index 56a0852..3640608 100644 --- a/src/request.rs +++ b/src/request.rs @@ -13,3 +13,12 @@ pub struct SendMarketOrderRequest { pub volume: i32 } +#[derive(Serialize,Deserialize, Debug)] +pub struct SendLimitOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32, + pub limit_price: f64, +} + diff --git a/src/routes.rs b/src/routes.rs index ed030b0..38b806e 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -46,6 +46,9 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await }, + (&Method::POST, "/api/v1/send_limit_order") => { + tdcontroller::td_send_limit_order(req).await + }, (&Method::POST, "/api/v1/send_market_order") => { tdcontroller::td_send_market_order(req).await } diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index f105ae16040a3750ef4d63fee93e99de0b08885d..51e483eae32c6f30635f32ae65e676866d6abb6b 100755 GIT binary patch delta 30041 zcmc(Idt6q<*8kp*fJz96;sdCNH&j$qN+XZAI)X&rGBv#4%FNU}zG`IUV;UZjFms#3 zTPGt^ypwmyyx=A9l7?nVmWoz}H$*d{^!WU~Yu0RdnA17G_mB7U`|Up4@7`<8TC--& zn%T4Gp|x|?*T`I7V{uC};@wt{)?AZk$YagBFShgja5&$5IQ-oe(KUNN%y+#vfBUjo z_w|j(j9b2&2F!W;v7X)1u1=oX=1{UV-0@kE-@vxj5`2u{aHIW#+97_%d%jy+RQuI* zeFEu~tii|vuEx1m-LC^~z?qHnQ=FS|(y=?2FFeYBM11Ix+d7IuJ; z0M3Jk5u`|l@dd8(aUQl#nssU&QS_t0W7bLUIvWw zZ<#%R*xLJ{Hm3KhQy@;huonA;c=wuU-{ty+m`*Wfnd!7j!C0AOGa_m&Hh;7>*BWK6 zw`%+M@_ws=Gu1!Dds)R@rhka}CCWL?KJ>5m!ahm^G@1cU@B4p)&9dV50U_qwRK^+| z5aK;+tSaaIpu)5@0sUj{!#i}?j$ib&VKg!PjImA7NF4R$zlPE6A*MfZ&58<)cFj?K znWosqQzFc);fGS_THPiE`Lvh&j%Z-_Sfy=v$I?Okc zhBD(sBv;T@(Fb=|0@S%U#wq$vRlyalf&d4XFZ-DbHc;gcJxO8iXM9P~iQ^rq&Se<= z{>lR5L%4#*4905)=x3&buyUv-cZV!Wz4$ly~FO7X1 zwpgDDOrNXleT>=0P1Qm1^;yAcrRQu-E?=VN6kE^wc&7U|k_B5Ek19nMW0_I!Hzv^V zr(;wU)3a_{E9ykYoS=CKhaH(s`Y_uW!R75C@pF5opSfc>>P9wc{uJLH=4vbE)N3(J zpZSZGSU294sKUwC{)+0QCd%nuxN_rkG>c8s%0D`U>Gjk&S*FTgZ^`rlYCPE9=um^{ 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 delta 29205 zcmb__30PIt`uE;PP(&sbWDpU_0VflzUTx>yA(1aSBz}|~Q#+v(UnOif{e~I1t6kl> zyXU<1^17NI-)|JtCh5wBI)1@<9p??4H*wN&%P{Q5ZG89@=RK0(_>IA+0RDmVPn>_@e2CL#;s*{7 zU`?F0aC+gajnf;a4^BG#fpyjAdcgWP191l7Y=AQaXG5Hg%uTy%ZnSwEc>JsJo04jm zm|oMedR^SQ!2iWf{p++b%@3`Q{DZ9wpAgTHuNg)F5oYD%s_pBptJ}ERjxb?eq;H1# zr?tU%w7J)+>(|Hgvr5f0zYx!Ll~-AQA?5{?3pU5oPtU9Y%7WR}GW~-+>rKai$=2HY zhnU$^#v0=v;+ZkdRW6XqS*!d9cJ%(8`%I+Mk@LJ^L>WHD{YK~@j)wB5VRWy<@_|>Z zRsk{g5Byk-mgMnp8mmL1S?;Igd-|}vj5x#LGPf?0?M8jp8&h9m#keSLpskX>*h5vI!NxIO$+xNo?r9D9+qk?3MIDZC2BV-a1;3AR z=m!>DkzhBB=bq*Ye^PYdXu@FZYsd0cDokBH*!mdD!|%%Cl}tFNuzX>2HsE5&V*<

7Un@J`B33B^CM$;` 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 String { pub fn recover_on_error_push_event_handler() { td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + let _reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); -- Gitee From 63450ce7132b884674107c3945426af20f5d4cb1 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 24 Sep 2021 00:31:49 +0800 Subject: [PATCH 47/75] complete send order logic --- src/ctp_client/send_limit_order.rs | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/ctp_client/send_limit_order.rs diff --git a/src/ctp_client/send_limit_order.rs b/src/ctp_client/send_limit_order.rs new file mode 100644 index 0000000..f6d97a3 --- /dev/null +++ b/src/ctp_client/send_limit_order.rs @@ -0,0 +1,44 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; + +pub fn send_limit_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str, + volume:i32, + limit_price:f64) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::send_limit_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume, + limit_price); + + if ret != order_def_id { + error!("send_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_market_order req ok, return order_def_id:{}", ret); + } + + let empty_result:Value = serde_json::from_str("{}").expect("send_limit_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file -- Gitee From 5118bdee62b29669e8af33d6152303b5810f6bd9 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sat, 25 Sep 2021 19:34:12 +0800 Subject: [PATCH 48/75] add send 6 type order logic --- README.md | 2 +- src/ctp_client/mod.rs | 13 +- .../send_fill_and_kill_limit_order.rs | 44 ++++ .../send_fill_or_kill_limit_order.rs | 44 ++++ src/ctp_client/send_limit_order.rs | 2 +- .../send_market_if_touched_order.rs | 45 ++++ src/ctp_client/send_market_order.rs | 2 +- src/ctp_client/send_stop_limit_order.rs | 48 +++++ src/ctp_client/tdcontroller.rs | 197 +++++++++++++++++- src/request.rs | 40 ++++ 10 files changed, 418 insertions(+), 19 deletions(-) create mode 100644 src/ctp_client/send_fill_and_kill_limit_order.rs create mode 100644 src/ctp_client/send_fill_or_kill_limit_order.rs create mode 100644 src/ctp_client/send_market_if_touched_order.rs create mode 100644 src/ctp_client/send_stop_limit_order.rs diff --git a/README.md b/README.md index b8e4890..5ac5d56 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 - docker运行命令 ``` -docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access octopusquant/ctp_access:valgrind-cargogit-gitstore-rust1.54.0-etcprofile-ctpbashrcenv-ctpaccesslib-nettools +docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access noquant/ctp_access:valgrind-cargoconfig-gitstore-rust1.54.0-etcprofile-ctpbashrcenv-ctpaccesslib-nettools ``` - 根据Simnow开盘时间/非开盘时间更改环境变量CTP_MARKET_FRONT_ADDR与CTP_TRADE_FRONT_ADDR diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 5262fc1..1199cd0 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -7,12 +7,18 @@ mod query_settlement_info; mod query_instruments; mod send_market_order; mod send_limit_order; +mod send_fill_and_kill_limit_order; +mod send_fill_or_kill_limit_order; +mod send_stop_limit_order; +mod send_market_if_touched_order; +use once_cell::sync::OnceCell; +use std::collections::HashMap; +use tokio::sync::Mutex; +use once_cell::sync::Lazy; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; use std::{env}; -use once_cell::sync::OnceCell; - use std::marker::Send; use serde::{Serialize}; @@ -48,9 +54,6 @@ static CTP_APP_ID: OnceCell = OnceCell::new(); static CTP_AUTH_CODE: OnceCell = OnceCell::new(); static CTP_USER_PRODUCT_INFO: OnceCell = OnceCell::new(); -use std::collections::HashMap; -use tokio::sync::Mutex; -use once_cell::sync::Lazy; //基于await的异步线程安全的初始化的全局可变量 static CTP_INSTRUMENT_HASHMAP: Lazy>> = Lazy::new(|| { let m = HashMap::new(); diff --git a/src/ctp_client/send_fill_and_kill_limit_order.rs b/src/ctp_client/send_fill_and_kill_limit_order.rs new file mode 100644 index 0000000..848fd23 --- /dev/null +++ b/src/ctp_client/send_fill_and_kill_limit_order.rs @@ -0,0 +1,44 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; +///5.FAK单 +pub fn send_fill_and_kill_limit_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str, + volume:i32, + limit_price:f64) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::send_fill_and_kill_limit_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume, + limit_price); + + if ret != order_def_id { + error!("send_fill_and_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_fill_and_kill_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_fill_and_kill_limit_order req ok, return order_def_id:{}", ret); + } + + let empty_result:Value = serde_json::from_str("{}").expect("send_fill_and_kill_limit_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/send_fill_or_kill_limit_order.rs b/src/ctp_client/send_fill_or_kill_limit_order.rs new file mode 100644 index 0000000..fb768e2 --- /dev/null +++ b/src/ctp_client/send_fill_or_kill_limit_order.rs @@ -0,0 +1,44 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; +///3.触价单 +pub fn send_fill_or_kill_limit_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str, + volume:i32, + limit_price:f64) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::send_fill_or_kill_limit_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume, + limit_price); + + if ret != order_def_id { + error!("send_fill_or_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_fill_or_kill_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_fill_or_kill_limit_order req ok, return order_def_id:{}", ret); + } + + let empty_result:Value = serde_json::from_str("{}").expect("send_fill_or_kill_limit_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/send_limit_order.rs b/src/ctp_client/send_limit_order.rs index f6d97a3..6d70b25 100644 --- a/src/ctp_client/send_limit_order.rs +++ b/src/ctp_client/send_limit_order.rs @@ -4,7 +4,7 @@ use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctperror::api_return_code; - +///2.限价单 pub fn send_limit_order(order_def_id:i32, user_id:&str, broker_id:&str, diff --git a/src/ctp_client/send_market_if_touched_order.rs b/src/ctp_client/send_market_if_touched_order.rs new file mode 100644 index 0000000..1cde10c --- /dev/null +++ b/src/ctp_client/send_market_if_touched_order.rs @@ -0,0 +1,45 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; +///3.触价单 +pub fn send_market_if_touched_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str,volume:i32, + stop_price_condition:&str, + stop_price:f64) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::send_market_if_touched_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume, + stop_price_condition, + stop_price); + + if ret != order_def_id { + error!("send_market_if_touched_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_market_if_touched_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_market_if_touched_order req ok, return order_def_id:{}", ret); + } + + let empty_result:Value = serde_json::from_str("{}").expect("send_market_if_touched_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index f52665f..8ae6370 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -4,7 +4,7 @@ use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctperror::api_return_code; - +///1.市价单 pub fn send_market_order(order_def_id:i32, user_id:&str, broker_id:&str, diff --git a/src/ctp_client/send_stop_limit_order.rs b/src/ctp_client/send_stop_limit_order.rs new file mode 100644 index 0000000..670060e --- /dev/null +++ b/src/ctp_client/send_stop_limit_order.rs @@ -0,0 +1,48 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; +///4.条件单 +pub fn send_stop_limit_order(order_def_id:i32, + user_id:&str, + broker_id:&str, + instrument_id:&str, + direction:&str, + open_close:&str, + volume:i32, + limit_price:f64, + stop_price_condition:&str, + stop_price:f64) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::send_stop_limit_order(order_def_id.to_string().as_str(), + user_id, + broker_id, + instrument_id, + direction, + open_close, + volume, + limit_price, + stop_price_condition, + stop_price); + + if ret != order_def_id { + error!("send_stop_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("send_stop_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); + }else{ + debug!("send_stop_limit_order req ok, return order_def_id:{}", ret); + } + + let empty_result:Value = serde_json::from_str("{}").expect("send_stop_limit_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 17ab6f1..004964e 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -7,10 +7,19 @@ use super::query_investor_position::*; use super::query_commission_rate::*; use super::send_market_order::*; use super::send_limit_order::*; +use super::send_market_if_touched_order::*; +use super::send_stop_limit_order::*; +use super::send_fill_and_kill_limit_order::*; +use super::send_fill_or_kill_limit_order::*; use crate::result::RspResult; use super::super::utils::ctperror::{GenericError}; -use super::super::request::{SendMarketOrderRequest,SendLimitOrderRequest}; +use super::super::request::{SendMarketOrderRequest, + SendLimitOrderRequest, + SendMarketIfTouchedOrderRequest, + SendStopLimitOrderRequest, + SendFillAndKillLimitOrderRequest, + SendFillOrKillLimitOrderRequest}; use super::Push_Event; @@ -88,12 +97,12 @@ fn register_push_event_handler(){ rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + //let event_str = serde_json::to_string(&rsp_info).unwrap(); let event = Push_Event { client: CTP_CLIENT_ID, name: "OnRspError", - payload: event_str + payload: rsp_info }; debug!("td_api::EventHandler::OnRspError: push_event {:?}", @@ -112,12 +121,12 @@ fn register_push_event_handler(){ error!("td_api::EventHandler::OnRspOrderInsert Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID,rsp_info.ErrorMsg); }else{ - let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + //let event_str = serde_json::to_string(&rsp_input_order).unwrap(); let event = Push_Event { client: CTP_CLIENT_ID, name: "OnRspOrderInsert", - payload: event_str + payload: rsp_input_order }; debug!("td_api::EventHandler::OnRspOrderInsert: push_event {:?}", @@ -136,12 +145,12 @@ fn register_push_event_handler(){ error!("td_api::EventHandler::OnErrRtnOrderInsert Error, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID,rsp_info.ErrorMsg); }else{ - let event_str = serde_json::to_string(&rsp_input_order).unwrap(); + //let event_str = serde_json::to_string(&rsp_input_order).unwrap(); let event = Push_Event { client: CTP_CLIENT_ID, name: "OnErrRtnOrderInsert", - payload: event_str + payload: rsp_input_order }; debug!("td_api::EventHandler::OnErrRtnOrderInsert: push_event {:?}", @@ -158,7 +167,7 @@ fn register_push_event_handler(){ let event = Push_Event { client: CTP_CLIENT_ID, name: "OnRtnOrder", - payload: event_str + payload: rsp_order }; debug!("td_api::EventHandler::OnRtnOrder: push_event {:?}", @@ -174,7 +183,7 @@ fn register_push_event_handler(){ let event = Push_Event { client: CTP_CLIENT_ID, name: "OnRtnTrade", - payload: event_str + payload: rsp_trade }; debug!("td_api::EventHandler::OnRtnTrade: push_event {:?}", @@ -480,7 +489,7 @@ pub async fn td_query_commission_rate(req: Request) -> Result) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; @@ -519,7 +528,7 @@ pub async fn td_send_market_order(req: Request) -> Result,G Ok(response) } - +///2.限价单 pub async fn td_send_limit_order(req: Request) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; @@ -552,6 +561,172 @@ pub async fn td_send_limit_order(req: Request) -> Result,Ge rsp_json = serde_json::to_string(&rsp_result)? } + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} +///3.触价单 +pub async fn td_send_market_if_touched_order(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendMarketIfTouchedOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_market_if_touched_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_market_if_touched_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume, + req.stop_price_condition.as_str(), + req.stop_price); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} + +///4.条件单 +pub async fn td_send_stop_limit_order(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendStopLimitOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_stop_limit_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_stop_limit_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume, + req.limit_price, + req.stop_price_condition.as_str(), + req.stop_price); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} + +///5.FAK单 +pub async fn td_send_fill_and_kill_limit_order(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendFillAndKillLimitOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_fill_and_kill_limit_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_fill_and_kill_limit_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume, + req.limit_price); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) +} + +///6.FOK单 +pub async fn td_send_fill_or_kill_limit_order(req: Request) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; + *order_def_id = *order_def_id + 1; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: SendFillOrKillLimitOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_send_fill_or_kill_limit_order instrument_id:{}",req.instrument_id); + + let rsp_result = send_fill_or_kill_limit_order(*order_def_id, + CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.direction.as_str(), + req.open_close.as_str(), + req.volume, + req.limit_price); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") diff --git a/src/request.rs b/src/request.rs index 3640608..de97db1 100644 --- a/src/request.rs +++ b/src/request.rs @@ -22,3 +22,43 @@ pub struct SendLimitOrderRequest { pub limit_price: f64, } +#[derive(Serialize,Deserialize, Debug)] +pub struct SendMarketIfTouchedOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32, + pub stop_price_condition:String, + pub stop_price: f64, +} + +#[derive(Serialize,Deserialize, Debug)] +pub struct SendStopLimitOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32, + pub limit_price: f64, + pub stop_price_condition:String, + pub stop_price: f64, +} + +#[derive(Serialize,Deserialize, Debug)] +pub struct SendFillAndKillLimitOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32, + pub limit_price: f64 +} + + + +#[derive(Serialize,Deserialize, Debug)] +pub struct SendFillOrKillLimitOrderRequest { + pub instrument_id: String, + pub direction: String, + pub open_close: String, + pub volume: i32, + pub limit_price: f64 +} -- Gitee From 0c15d52a43b21d44cf68b8ef05472a730ee0fe7f Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sat, 25 Sep 2021 23:15:22 +0800 Subject: [PATCH 49/75] add cancel_order api --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 43 +++++++++++++++ src/ctp_client/mod.rs | 1 + src/ctp_client/tdcontroller.rs | 73 ++++++++++++++++++++++--- src/request.rs | 18 ++++-- src/routes.rs | 21 ++++++- src/rust_ctp_client/librusttdclient.so | Bin 136608 -> 136608 bytes 7 files changed, 139 insertions(+), 19 deletions(-) create mode 100644 src/ctp_client/cancel_order.rs diff --git a/Cargo.toml b/Cargo.toml index 22254ad..29e75e8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.2" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.4" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs new file mode 100644 index 0000000..65947ec --- /dev/null +++ b/src/ctp_client/cancel_order.rs @@ -0,0 +1,43 @@ +use serde_json::Result; +use serde_json::Value; +use rust_ctp::td_api; + +use crate::result::RspResult; +use crate::utils::ctperror::api_return_code; +///撤单 +pub fn cancel_order(user_id:&str, + broker_id:&str, + instrument_id:&str, + front_id: i32, + session_id: i32, + order_def_id:&str, + cancel_action:&str, + ) -> Result { + + let mut ret_msg = "".to_string(); + + let ret = td_api::cancel_order(user_id, + broker_id, + instrument_id, + front_id, + session_id, + order_def_id, + cancel_action); + + if ret.to_string().as_str() != order_def_id { + error!("cancel_order error, ret != order_def_id:{}",order_def_id); + ret_msg = format!("cancel_order error, ret != order_def_id:{}",order_def_id); + }else{ + debug!("cancel_order req ok, order_def_id:{}", order_def_id); + } + + let empty_result:Value = serde_json::from_str("{}").expect("cancel_order deserialize error!"); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: empty_result + }; + + serde_json::to_string(&rsp_result) +} \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 1199cd0..40a6420 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -11,6 +11,7 @@ mod send_fill_and_kill_limit_order; mod send_fill_or_kill_limit_order; mod send_stop_limit_order; mod send_market_if_touched_order; +mod cancel_order; use once_cell::sync::OnceCell; use std::collections::HashMap; diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 004964e..a3c7071 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -11,6 +11,7 @@ use super::send_market_if_touched_order::*; use super::send_stop_limit_order::*; use super::send_fill_and_kill_limit_order::*; use super::send_fill_or_kill_limit_order::*; +use super::cancel_order::*; use crate::result::RspResult; use super::super::utils::ctperror::{GenericError}; @@ -19,7 +20,8 @@ use super::super::request::{SendMarketOrderRequest, SendMarketIfTouchedOrderRequest, SendStopLimitOrderRequest, SendFillAndKillLimitOrderRequest, - SendFillOrKillLimitOrderRequest}; + SendFillOrKillLimitOrderRequest, + CancelOrderRequest}; use super::Push_Event; @@ -109,6 +111,17 @@ fn register_push_event_handler(){ event); }); + let reg_order_action_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { + + if rsp_info.ErrorID != 0 { + error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", + rsp_info.ErrorID, rsp_info.ErrorMsg); + }else{ + debug!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}", + rsp_input_order_action); + } + }); + //OnRspOrderInsert是Order被交易所后台核心拒绝的响应,不算错误,只是订单的一个状态 //交易所后台核心 —— 对收到的交易序列报文做合法性检查 //检查出错误的交易申请报文后就会返回给 —— 交易所前置服务器1个包含错误信息的报单响应报文 @@ -583,14 +596,14 @@ pub async fn td_send_market_if_touched_order(req: Request) -> Result) -> Result) -> Result,GenericError> { + let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; + + if *is_ready { + + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let req: CancelOrderRequest = serde_json::from_str(&body_str)?; + debug!("td_cancel_order instrument_id:{},front_id:{},session_id:{},order_def_id:{},cancel_action:{}", + req.instrument_id, + req.front_id, + req.session_id, + req.order_def_id, + req.cancel_action); + + let rsp_result = cancel_order(CTP_USER_ID.get().unwrap(), + CTP_BROKER_ID.get().unwrap(), + req.instrument_id.as_str(), + req.front_id, + req.session_id, + req.order_def_id.as_str(), + req.cancel_action.as_str()); + rsp_json = rsp_result?; + }else{ + let rsp_result = RspResult { + code: 1100, + msg: "Trader Not Ready".to_owned(), + result: "".to_string() + }; + + rsp_json = serde_json::to_string(&rsp_result)? + } + let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") diff --git a/src/request.rs b/src/request.rs index de97db1..23a50ef 100644 --- a/src/request.rs +++ b/src/request.rs @@ -29,7 +29,7 @@ pub struct SendMarketIfTouchedOrderRequest { pub open_close: String, pub volume: i32, pub stop_price_condition:String, - pub stop_price: f64, + pub stop_price: f64,//自动卖出单 } #[derive(Serialize,Deserialize, Debug)] @@ -38,9 +38,9 @@ pub struct SendStopLimitOrderRequest { pub direction: String, pub open_close: String, pub volume: i32, - pub limit_price: f64, + pub limit_price: f64,//触发买入单 pub stop_price_condition:String, - pub stop_price: f64, + pub stop_price: f64,//自动卖出单 } #[derive(Serialize,Deserialize, Debug)] @@ -49,11 +49,9 @@ pub struct SendFillAndKillLimitOrderRequest { pub direction: String, pub open_close: String, pub volume: i32, - pub limit_price: f64 + pub limit_price: f64//触发买入单 } - - #[derive(Serialize,Deserialize, Debug)] pub struct SendFillOrKillLimitOrderRequest { pub instrument_id: String, @@ -62,3 +60,11 @@ pub struct SendFillOrKillLimitOrderRequest { pub volume: i32, pub limit_price: f64 } +#[derive(Serialize,Deserialize, Debug)] +pub struct CancelOrderRequest { + pub instrument_id: String, + pub front_id: i32, + pub session_id: i32, + pub order_def_id: String, + pub cancel_action: String +} diff --git a/src/routes.rs b/src/routes.rs index 38b806e..5b988c0 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -46,12 +46,27 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await }, + (&Method::POST, "/api/v1/send_market_order") => { + tdcontroller::td_send_market_order(req).await + }, (&Method::POST, "/api/v1/send_limit_order") => { tdcontroller::td_send_limit_order(req).await }, - (&Method::POST, "/api/v1/send_market_order") => { - tdcontroller::td_send_market_order(req).await - } + (&Method::POST, "/api/v1/send_market_if_touched_order") => { + tdcontroller::td_send_market_if_touched_order(req).await + }, + (&Method::POST, "/api/v1/send_stop_limit_order") => { + tdcontroller::td_send_stop_limit_order(req).await + }, + (&Method::POST, "/api/v1/send_fill_and_kill_limit_order") => { + tdcontroller::td_send_fill_and_kill_limit_order(req).await + }, + (&Method::POST, "/api/v1/send_fill_or_kill_limit_order") => { + tdcontroller::td_send_fill_or_kill_limit_order(req).await + }, + (&Method::PUT, "/api/v1/cancel_order") => { + tdcontroller::td_cancel_order(req).await + }, // Return the 404 Not Found for other routes. _ => { let mut not_found = Response::default(); diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index 51e483eae32c6f30635f32ae65e676866d6abb6b..c839f3964731b7e5576e5f874a19dc4941399828 100755 GIT binary patch delta 19434 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 -- Gitee From 1dd2675843b88d9c5c0afde0c2fd10c7bfe957d8 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 28 Sep 2021 23:55:59 +0800 Subject: [PATCH 50/75] add process ctp api error logic --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 120 +++++++++++++++++++--- src/ctp_client/query_commission_rate.rs | 44 +++++--- src/ctp_client/query_instruments.rs | 39 ++++--- src/ctp_client/query_investor_position.rs | 43 +++++--- src/ctp_client/query_settlement_info.rs | 38 ++++--- src/ctp_client/query_trading_account.rs | 43 +++++--- src/ctp_client/tdcontroller.rs | 11 -- 8 files changed, 238 insertions(+), 102 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 29e75e8..6131b34 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.4" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.5" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index 65947ec..e609af8 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -1,9 +1,15 @@ use serde_json::Result; use serde_json::Value; + use rust_ctp::td_api; +use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; + +use super::Event; +use super::CTP_CLIENT_ID; + ///撤单 pub fn cancel_order(user_id:&str, broker_id:&str, @@ -14,29 +20,111 @@ pub fn cancel_order(user_id:&str, cancel_action:&str, ) -> Result { + let mut ret= 0; let mut ret_msg = "".to_string(); + let mut payload = "{}".to_string(); + + let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); + + td_api::EventHandler::UnRspError(); + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate + //so serde_json as Event + tx_rsp_err.send(event).unwrap(); + }); + + if reg_err_ok { + let reg_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { + + if rsp_info.ErrorID != 0 { + error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + + }else{ + debug!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}, n_request_id:{},b_is_last:{}", + rsp_input_order_action, n_request_id, b_is_last); + + let event_str = serde_json::to_string(&rsp_input_order_action).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspOrderAction", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + } + }); + + if reg_ok { + + ret = td_api::cancel_order(user_id, + broker_id, + instrument_id, + front_id, + session_id, + order_def_id, + cancel_action); + + if ret.to_string().as_str() != order_def_id { + error!("cancel_order error, ret != order_def_id:{}",order_def_id); + ret_msg = format!("cancel_order error, ret != order_def_id:{}",order_def_id); + }else{ + let received_event = rx.recv().unwrap(); + + if received_event.name == "OnRspError" { + ret = -1; + ret_msg = format!("cancel_order error"); + } + + payload = received_event.payload; + } + + td_api::EventHandler::UnRspOrderAction(); + recover_on_error_push_event_handler(); + } else { + recover_on_error_push_event_handler(); + warn!("cancel_order OnRspOrderAction event handler is busy,please access for a while"); + ret = -1; + ret_msg = "cancel_order too often,please access for a while".to_string(); + } - let ret = td_api::cancel_order(user_id, - broker_id, - instrument_id, - front_id, - session_id, - order_def_id, - cancel_action); - - if ret.to_string().as_str() != order_def_id { - error!("cancel_order error, ret != order_def_id:{}",order_def_id); - ret_msg = format!("cancel_order error, ret != order_def_id:{}",order_def_id); - }else{ - debug!("cancel_order req ok, order_def_id:{}", order_def_id); } - let empty_result:Value = serde_json::from_str("{}").expect("cancel_order deserialize error!"); + let rsp_input_order_action:Value = serde_json::from_str(&payload).expect("cancel_order deserialize error!"); let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: rsp_input_order_action }; serde_json::to_string(&rsp_result) diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 89fd323..135266d 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -42,24 +42,37 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> if reg_err_ok { let reg_ok = td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_instrument_commission_rate_field,n_request_id,b_is_last); if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }else{ + debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_commission_rate_field,n_request_id,b_is_last); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrumentCommissionRate", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); - tx.send(event).unwrap(); + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrumentCommissionRate", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + } }); if reg_ok { @@ -73,11 +86,10 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> if received_event.name == "OnRspError" { ret = -1; - ret_msg = format!("query_commission_rate error event: {}", received_event.payload); - error!("{}",ret_msg); - }else{ - payload = received_event.payload; + ret_msg = format!("query_commission_rate error"); } + + payload = received_event.payload; } td_api::EventHandler::UnRspQryInstrumentCommissionRate(); diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index ca86edb..919f965 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -42,24 +42,38 @@ pub async fn query_instruments() -> i32 { if reg_err_ok { let reg_ok = td_api::EventHandler::OnRspQryInstrument(move |rsp_instrument_field, rsp_info, n_request_id, b_is_last| { - // debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", - // rsp_instrument_field, n_request_id, b_is_last); + if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInstrument, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - let event_str = serde_json::to_string(&rsp_instrument_field).unwrap(); + let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrument", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }else{ + debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_field, n_request_id, b_is_last); - tx.send(event).unwrap(); + let event_str = serde_json::to_string(&rsp_instrument_field).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrument", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + } }); if reg_ok { @@ -76,7 +90,6 @@ pub async fn query_instruments() -> i32 { // do not need to receive event if received_event.name == "OnRspError" { ret = -1; - error!("query_instruments error event: {}", received_event.payload); event_list.clear(); break; }else { diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 25a4486..c459dc7 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -46,24 +46,36 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { if reg_err_ok { let reg_ok = td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_investor_position_field,n_request_id,b_is_last); if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }else{ + debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_investor_position_field,n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); + let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInvestorPosition", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInvestorPosition", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; - tx.send(event).unwrap(); + tx.send(event).unwrap(); + } }); if reg_ok { @@ -77,11 +89,10 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { if received_event.name == "OnRspError" { ret = -1; - ret_msg = format!("query_investor_position error event: {}", received_event.payload); - error!("{}",ret_msg); - }else{ - payload = received_event.payload; + ret_msg = format!("query_investor_position error"); } + + payload = received_event.payload; } td_api::EventHandler::UnRspQryInvestorPosition(); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index cd73111..d095c5a 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -53,24 +53,37 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { if reg_err_ok { let reg_ok = td_api::EventHandler::OnRspQrySettlementInfo(move |rsp_settlement_info_field, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_settlement_info_field,n_request_id,b_is_last); if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQrySettlementInfo, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } - let event_str = serde_json::to_string(&rsp_settlement_info_field).unwrap(); + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }else{ + debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_settlement_info_field,n_request_id,b_is_last); + + let event_str = serde_json::to_string(&rsp_settlement_info_field).unwrap(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQrySettlementInfo", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQrySettlementInfo", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; - tx.send(event).unwrap(); + tx.send(event).unwrap(); + } }); if reg_ok { @@ -90,7 +103,6 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { if received_event.name == "OnRspError" { ret = -1; ret_msg = format!("query_settlement_info error event: {}", received_event.payload); - error!("{}",ret_msg); event_list.clear(); break; }else { diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 849ae34..eaf3921 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -48,24 +48,36 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { if reg_err_ok { let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { - debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", - rsp_trading_account,n_request_id,b_is_last); if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - } + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; + + tx.send(event).unwrap(); + }else{ + debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", + rsp_trading_account,n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); + let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryTradingAccount", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryTradingAccount", + request_id: n_request_id, + is_last: b_is_last, + payload: event_str + }; - tx.send(event).unwrap(); + tx.send(event).unwrap(); + } }); debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); @@ -81,11 +93,10 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { if received_event.name == "OnRspError" { ret = -1; - ret_msg = format!("query_trading_account error event: {}", received_event.payload); - error!("{}",ret_msg); - }else{ - payload = received_event.payload; + ret_msg = format!("query_trading_account error"); } + + payload = received_event.payload; } td_api::EventHandler::UnRspQryTradingAccount(); diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index a3c7071..9d04319 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -111,17 +111,6 @@ fn register_push_event_handler(){ event); }); - let reg_order_action_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { - - if rsp_info.ErrorID != 0 { - error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", - rsp_info.ErrorID, rsp_info.ErrorMsg); - }else{ - debug!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}", - rsp_input_order_action); - } - }); - //OnRspOrderInsert是Order被交易所后台核心拒绝的响应,不算错误,只是订单的一个状态 //交易所后台核心 —— 对收到的交易序列报文做合法性检查 //检查出错误的交易申请报文后就会返回给 —— 交易所前置服务器1个包含错误信息的报单响应报文 -- Gitee From 27889dbfaab627abdfa716b73dd5e073ea488756 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sat, 23 Oct 2021 21:51:15 +0800 Subject: [PATCH 51/75] get dapr sub info before unsub & sub & remove query all instruments api because it will trans large data --- src/ctp_client/mdcontroller.rs | 34 ++++++++++++++++++---------------- src/routes.rs | 21 +++++++++++---------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 78dfc0a..61365d6 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -174,8 +174,16 @@ pub async fn subscribe(req: Request) -> Result,GenericError let mut ret = 0; let mut ret_msg = "".to_string(); + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + + debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); + if *is_ready { + save_sub_instrument_ids(&sub_req.instrument_ids).await?; + md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! rsp_info:{:?}, nRequestID: {},bIsLast: {}", rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); @@ -209,19 +217,12 @@ pub async fn subscribe(req: Request) -> Result,GenericError } }); - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - - debug!("send subscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); - ret = md_api::subscribe(&sub_req.instrument_ids); debug!("send subscribe req, return code: {}",ret); - warn!("Only finish to send subscribe req, have not receive OnRspSubMarketData event yet!"); + warn!("Only finish to send subscribe req, we have not receive OnRspSubMarketData event yet!"); - save_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { warn!("Do not send subscribe req , because md is_ready: {}",is_ready); @@ -254,26 +255,27 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr let mut ret = 0; let mut ret_msg = "".to_string(); + let full_body = hyper::body::to_bytes(req.into_body()).await?; + let body_str = String::from_utf8(full_body.to_vec())?; + let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; + + debug!("send unsubscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); + if *is_ready { + delete_sub_instrument_ids(&sub_req.instrument_ids).await?; + md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! resp_info:{:?},nRequestID: {},bIsLast: {}", rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); }); - let full_body = hyper::body::to_bytes(req.into_body()).await?; - let body_str = String::from_utf8(full_body.to_vec())?; - let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; - - debug!("send unsubscribe req, instrument_ids: {:?}",&sub_req.instrument_ids); - ret = md_api::unsubscribe(&sub_req.instrument_ids); debug!("send unsubscribe req, return code: {}",ret); - warn!("Only finish to send unsubscribe req, have not receive OnRspUnSubMarketData event yet!"); + warn!("Only finish to send unsubscribe req, we have not receive OnRspUnSubMarketData event yet!"); - delete_sub_instrument_ids(&sub_req.instrument_ids).await?; }else { warn!("Do not send unsubscribe req, because md is_ready: {}",is_ready); diff --git a/src/routes.rs b/src/routes.rs index 5b988c0..0d68bd2 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -2,6 +2,7 @@ use hyper::{Body, Method, header,Request, Response, StatusCode}; use http::header::HeaderValue; use std::convert::Infallible; +use crate::result::RspResult; use crate::ctp_client::mdcontroller; use crate::ctp_client::tdcontroller; @@ -40,9 +41,6 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> (&Method::GET, "/api/v1/query_commission_rate") => { tdcontroller::td_query_commission_rate(req).await }, - (&Method::GET, "/api/v1/query_all_instruments") => { - tdcontroller::td_query_all_instruments(req).await - }, (&Method::GET, "/api/v1/query_instrument") => { tdcontroller::td_query_instrument(req).await }, @@ -90,19 +88,22 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> //make sure routes return is Infallible match res_result { Ok(response) => Ok(response), - Err(error) => { - println!("ERROR: {:?}",error); + Err(ref error) => { + debug!("API ERROR: {:?}",error); let mut response = Response::new(Body::empty()); response.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); - let error_str_start = String::from("{\"code\": 1500,\"message\""); - let error_str_empty_result = String::from("\"result\":{}"); - let error_str_end = String::from("}"); - let error_str = format!("{}: \"{}\",{}{}", error_str_start, error.to_string(), error_str_empty_result,error_str_end); + let error_result = RspResult{ + code: 1500, + msg: error.to_string(), + result: "".to_string() + }; + + let error_json = serde_json::to_string(&error_result).unwrap(); - *response.body_mut() = Body::from(error_str); + *response.body_mut() = Body::from(error_json); *response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR; -- Gitee From 9601ba069657d47f06db054b8bb38dd92f7d4d23 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sat, 23 Oct 2021 22:20:25 +0800 Subject: [PATCH 52/75] change sub log --- src/ctp_client/mdcontroller.rs | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 61365d6..94181d9 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -310,14 +310,14 @@ async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result { - error!("save_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + error!("save_sub_instrument_ids, get CTP sub info from dapr error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get sub info form dapr error".to_owned()})); }, Ok(res_body) => { let full_body = hyper::body::to_bytes(res_body.into_body()).await?; let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - debug!("save_sub_instrument_ids, Get CTP Sub_Map json_str:{}",last_sub_map_json_str); + debug!("save_sub_instrument_ids, get CTP sub info from DAPR:{}",last_sub_map_json_str); let mut new_sub_map = HashMap::new(); @@ -341,14 +341,14 @@ async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result { - error!("save_sub_instrument_ids, Save CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "Save CTP SUB_MAP Error".to_owned()})); + error!("save_sub_instrument_ids, save CTP sub info to DAPR error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "save CTP sub info to DAPR error".to_owned()})); }, Ok(_) => { let response = Response::builder() @@ -369,14 +369,14 @@ async fn delete_sub_instrument_ids(instrument_ids:&Vec) -> Result { - error!("delete_sub_instrument_ids, Get CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + error!("delete_sub_instrument_ids, get CTP sub info from DAPR Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get CTP sub info from DAPR Error".to_owned()})); }, Ok(res_body) => { let full_body = hyper::body::to_bytes(res_body.into_body()).await?; let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - debug!("delete_sub_instrument_ids, Get CTP Sub_Map json_str:{}",last_sub_map_json_str); + debug!("delete_sub_instrument_ids, get CTP sub info from DAPR:{}",last_sub_map_json_str); let mut new_sub_map = HashMap::new(); @@ -395,14 +395,14 @@ async fn delete_sub_instrument_ids(instrument_ids:&Vec) -> Result { - error!("delete_sub_instrument_ids, Save CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "Save CTP SUB_MAP Error".to_owned()})); + error!("delete_sub_instrument_ids, save CTP sub info to DAPR Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "save CTP sub info to DAPR Error".to_owned()})); }, Ok(_) => { let response = Response::builder() @@ -422,15 +422,15 @@ pub async fn get_sub_instruments() -> Result,GenericError> { match result { Err(e) => { - error!("get_sub_instruments, Get CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + error!("get_sub_instruments, get CTP sub info from DAPR Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get CTP SUB info from DAPR Error".to_owned()})); }, Ok(resp) => { let full_body = hyper::body::to_bytes(resp.into_body()).await?; let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - debug!("get_sub_instruments, Get CTP Sub_Map json str:{}",last_sub_map_json_str); + debug!("get_sub_instruments, get CTP sub info from DAPR:{}",last_sub_map_json_str); let response = Response::builder() .status(StatusCode::OK) @@ -448,8 +448,8 @@ pub async fn resub_if_relogin() -> Result,GenericError> { match result { Err(e) => { - error!("resub_if_relogin, Get CTP SUB_MAP Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get SUB_MAP Error".to_owned()})); + error!("resub_if_relogin, get CTP sub info from DAPR Error:{}",e); + return Err(Box::new(CTPError{code:1001,msg: "get CTP sub info from DAPR Error".to_owned()})); }, Ok(resp) => { let full_body = hyper::body::to_bytes(resp.into_body()).await?; -- Gitee From 05b20ef5a7e0ecc2b4cf542f877d4f875b6d0517 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sun, 24 Oct 2021 12:17:50 +0800 Subject: [PATCH 53/75] =?UTF-8?q?modified=20=E5=B8=82=E4=BB=B7=E5=8D=95?= =?UTF-8?q?=E4=B8=BATimecondition=20=3D=20GFD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes.rs | 2 +- src/rust_ctp_client/librusttdclient.so | Bin 136608 -> 136608 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes.rs b/src/routes.rs index 0d68bd2..46020ac 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -89,7 +89,7 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> match res_result { Ok(response) => Ok(response), Err(ref error) => { - debug!("API ERROR: {:?}",error); + error!("API ERROR: {:?}",error); let mut response = Response::new(Body::empty()); diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index c839f3964731b7e5576e5f874a19dc4941399828..47f2fa8b65540e5da293e0634b75ac16a55f6595 100755 GIT binary patch delta 20521 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 delta 20428 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 Cn&@T# -- Gitee From 81fc00f985023c1dfec55325ef463ae9547af85d Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 25 Oct 2021 16:42:52 +0800 Subject: [PATCH 54/75] update cancel_order --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 90 ++++++++++++++----------- src/ctp_client/tdcontroller.rs | 14 ++-- src/request.rs | 15 +++-- src/rust_ctp_client/librusttdclient.so | Bin 136608 -> 136608 bytes src/utils/ctperror.rs | 12 +++- 6 files changed, 79 insertions(+), 54 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6131b34..c1c5134 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.5" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.8" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index e609af8..7cfc632 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -4,6 +4,8 @@ use serde_json::Value; use rust_ctp::td_api; use std::sync::mpsc; +use crate::dapr::component_client::pub_event_to_topic; + use crate::result::RspResult; use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; @@ -13,10 +15,8 @@ use super::CTP_CLIENT_ID; ///撤单 pub fn cancel_order(user_id:&str, broker_id:&str, - instrument_id:&str, - front_id: i32, - session_id: i32, - order_def_id:&str, + exchange_id: &str, + order_sys_id: &str, cancel_action:&str, ) -> Result { @@ -49,54 +49,67 @@ pub fn cancel_order(user_id:&str, }); if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { + ///17.报单操作请求响应 + ///如撤单操作的响应。交易核心返回含有错误的撤单操作响应 + ///回应参数rsp_info就可以得知被拒原因 + let reg_bad_order_action_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { - if rsp_info.ErrorID != 0 { - error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + error!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}, n_request_id:{},b_is_last:{}", + rsp_input_order_action,n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; - tx.send(event).unwrap(); + debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError push_event {:?}",event); - }else{ - debug!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}, n_request_id:{},b_is_last:{}", - rsp_input_order_action, n_request_id, b_is_last); + let json_str = serde_json::to_string(&event).unwrap(); + let rt = tokio::runtime::Runtime::new().unwrap(); - let event_str = serde_json::to_string(&rsp_input_order_action).unwrap(); + let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspOrderAction", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); - tx.send(event).unwrap(); - } }); - if reg_ok { + ///18.报单操作错误响应 + ///交易所在通过OnRspOrderAction检查后,会继续验证撤单指令的合法性,如果交易所认为该指令不合法,交易核心通过此函数转发交易所给出的错误 + let reg_err_order_action_ok = td_api::EventHandler::OnErrRtnOrderAction(move |rsp_order_action, rsp_info| { + + error!("td_api::EventHandler::OnErrRtnOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + error!("td_api::EventHandler::OnErrRtnOrderAction, rsp_order_action: {:?}",rsp_order_action); + + let event_str = serde_json::to_string(&rsp_info).unwrap(); + + let event = Push_Event { + client: CTP_CLIENT_ID, + name: "OnRspError", + payload: event_str + }; + + debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError push_event {:?}",event); + + let json_str = serde_json::to_string(&event).unwrap(); + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + }); + + if reg_bad_order_action_ok && reg_err_order_action_ok { ret = td_api::cancel_order(user_id, broker_id, - instrument_id, - front_id, - session_id, - order_def_id, + exchange_id, + order_sys_id, cancel_action); - if ret.to_string().as_str() != order_def_id { - error!("cancel_order error, ret != order_def_id:{}",order_def_id); - ret_msg = format!("cancel_order error, ret != order_def_id:{}",order_def_id); + if ret < 0 { + error!("cancel_order error, return code:{}",ret); + ret_msg = format!("cancel_order error, return code:{}",ret); }else{ let received_event = rx.recv().unwrap(); @@ -109,6 +122,7 @@ pub fn cancel_order(user_id:&str, } td_api::EventHandler::UnRspOrderAction(); + td_api::EventHandler::UnErrRtnOrderAction(); recover_on_error_push_event_handler(); } else { recover_on_error_push_event_handler(); @@ -128,4 +142,4 @@ pub fn cancel_order(user_id:&str, }; serde_json::to_string(&rsp_result) -} \ No newline at end of file +} diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 9d04319..973f582 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -746,19 +746,15 @@ pub async fn td_cancel_order(req: Request) -> Result,Generi let full_body = hyper::body::to_bytes(req.into_body()).await?; let body_str = String::from_utf8(full_body.to_vec())?; let req: CancelOrderRequest = serde_json::from_str(&body_str)?; - debug!("td_cancel_order instrument_id:{},front_id:{},session_id:{},order_def_id:{},cancel_action:{}", - req.instrument_id, - req.front_id, - req.session_id, - req.order_def_id, + debug!("td_cancel_order exchange_id:{},order_sys_id:{},cancel_action:{}", + req.exchange_id, + req.order_sys_id, req.cancel_action); let rsp_result = cancel_order(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap(), - req.instrument_id.as_str(), - req.front_id, - req.session_id, - req.order_def_id.as_str(), + req.exchange_id.as_str(), + req.order_sys_id.as_str(), req.cancel_action.as_str()); rsp_json = rsp_result?; }else{ diff --git a/src/request.rs b/src/request.rs index 23a50ef..c9903a5 100644 --- a/src/request.rs +++ b/src/request.rs @@ -62,9 +62,16 @@ pub struct SendFillOrKillLimitOrderRequest { } #[derive(Serialize,Deserialize, Debug)] pub struct CancelOrderRequest { - pub instrument_id: String, - pub front_id: i32, - pub session_id: i32, - pub order_def_id: String, + pub exchange_id: String, + pub order_sys_id: String, pub cancel_action: String } +// pub struct CancelOrderRequest { +// pub instrument_id: String, +// pub front_id: i32, +// pub session_id: i32, +// pub order_def_id: String, +// pub exchange_id: String, +// pub order_sys_id: String, +// pub cancel_action: String +// } diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index 47f2fa8b65540e5da293e0634b75ac16a55f6595..e943f882e78980e5b4b1d8d7900097158263024b 100755 GIT binary patch delta 19171 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 delta 19336 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 diff --git a/src/utils/ctperror.rs b/src/utils/ctperror.rs index e5ad72d..ecf4dca 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctperror.rs @@ -10,6 +10,7 @@ use super::super::result::EmptyResult; use std::error::Error; use serde::{Serialize}; +use crate::dapr::component_client::pub_event_to_topic; pub type GenericError = Box; @@ -95,7 +96,14 @@ pub fn recover_on_error_push_event_handler() { payload: event_str }; - debug!("td_api::EventHandler::OnRspError: push_event {:?}", - event); + debug!("td_api::EventHandler::OnRspError: push_event {:?}",event); + + let json_str = serde_json::to_string(&event).unwrap(); + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); }); +} + +pub fn get_error_event_topic(client_id:&str,app_id: &str) -> String { + format!("{}-{}",client_id,app_id) } \ No newline at end of file -- Gitee From ed202894852e7da22424705d46dfcbbf7100b24b Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 26 Oct 2021 15:18:26 +0800 Subject: [PATCH 55/75] update convert gb2312 to utf8 --- src/rust_ctp_client/librustmdclient.so | Bin 79016 -> 79072 bytes src/rust_ctp_client/librusttdclient.so | Bin 136608 -> 136664 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/rust_ctp_client/librustmdclient.so b/src/rust_ctp_client/librustmdclient.so index c11e62ff0c8821d6e8022ff3353f568ec2f3c3a7..2ff0753818fda6aa55e1b951f2d8676ca4958951 100755 GIT binary patch delta 18030 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 delta 18014 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 D6IvFq diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index e943f882e78980e5b4b1d8d7900097158263024b..c737a390f89b219172c01e799711404ae8723621 100755 GIT binary patch delta 32921 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 QZ&4fE;uo|T{#LT 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 -- Gitee From bf603b8d6019af60bd025990d9357926acb928fc Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 26 Oct 2021 15:56:18 +0800 Subject: [PATCH 56/75] update gbk2312 to utf-8 --- src/rust_ctp_client/librustmdclient.so | Bin 79072 -> 79072 bytes src/rust_ctp_client/librusttdclient.so | Bin 136664 -> 136664 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/rust_ctp_client/librustmdclient.so b/src/rust_ctp_client/librustmdclient.so index 2ff0753818fda6aa55e1b951f2d8676ca4958951..38cd5f4ca2d15e8188f47bffb171ec3edc52f471 100755 GIT binary patch delta 143 zcmaFxlI6immJJ?EB9C@+Bx`SVx%0^K$jujug|Z#BS+SdAm`+r=TL>^Pcy#W)@&5mR zkItZ_}*>fT-?PFx7ed#hJSx$zvY9y$`?=FnO@*<~JM}3<8szzgTcWWLs~%pM2zt SCDV=f&Huk_|Nn*YrUC#cZ&OqN delta 117 zcmcbyn&ZZ5jtw46BFjq}3Ljsea*Rn$K=AeQzQunSp3K}F!}Q=IqsHWqk0o`xTW|dP z|KFqY_=_`lLG&??-rf%&k?yHriSE`1AYStuj*R~dlbgR-a6)8TU;LYV Date: Tue, 26 Oct 2021 19:24:34 +0800 Subject: [PATCH 57/75] update cancel order & order status msg --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 58 ++++++++++++++++------------------ src/ctp_client/tdcontroller.rs | 50 ++++++++++++++--------------- src/utils/ctperror.rs | 16 ++++++---- 4 files changed, 64 insertions(+), 62 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c1c5134..7361cfb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.8" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.9" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index 7cfc632..528b31c 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -7,9 +7,10 @@ use std::sync::mpsc; use crate::dapr::component_client::pub_event_to_topic; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::Event; +use super::Push_Event; use super::CTP_CLIENT_ID; ///撤单 @@ -24,10 +25,9 @@ pub fn cancel_order(user_id:&str, let mut ret_msg = "".to_string(); let mut payload = "{}".to_string(); - let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); td_api::EventHandler::UnRspError(); + let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -35,23 +35,24 @@ pub fn cancel_order(user_id:&str, let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Event { + let event = Push_Event { client: CTP_CLIENT_ID, name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, payload: event_str }; - //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate - //so serde_json as Event - tx_rsp_err.send(event).unwrap(); + let event_json = serde_json::to_string(&event).unwrap(); + let rt = tokio::runtime::Runtime::new().unwrap(); + + let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + debug!("td_api::EventHandler::OnRspError. push_event to DAPR, event_topic:{}, event: {:?}",error_event_topic,event); + let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); }); if reg_err_ok { - ///17.报单操作请求响应 - ///如撤单操作的响应。交易核心返回含有错误的撤单操作响应 - ///回应参数rsp_info就可以得知被拒原因 + //17.报单操作请求响应 + //如撤单操作的响应。交易核心返回含有错误的撤单操作响应 + //回应参数rsp_info就可以得知被拒原因 let reg_bad_order_action_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); @@ -66,19 +67,20 @@ pub fn cancel_order(user_id:&str, payload: event_str }; - debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError push_event {:?}",event); - let json_str = serde_json::to_string(&event).unwrap(); + let event_json = serde_json::to_string(&event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); + let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); + + let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); }); - ///18.报单操作错误响应 - ///交易所在通过OnRspOrderAction检查后,会继续验证撤单指令的合法性,如果交易所认为该指令不合法,交易核心通过此函数转发交易所给出的错误 + //18.报单操作错误响应 + //交易所在通过OnRspOrderAction检查后,会继续验证撤单指令的合法性,如果交易所认为该指令不合法,交易核心通过此函数转发交易所给出的错误 let reg_err_order_action_ok = td_api::EventHandler::OnErrRtnOrderAction(move |rsp_order_action, rsp_info| { error!("td_api::EventHandler::OnErrRtnOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); @@ -92,11 +94,16 @@ pub fn cancel_order(user_id:&str, payload: event_str }; - debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError push_event {:?}",event); + - let json_str = serde_json::to_string(&event).unwrap(); + let event_json = serde_json::to_string(&event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + + let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + + debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); + + let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); }); if reg_bad_order_action_ok && reg_err_order_action_ok { @@ -110,15 +117,6 @@ pub fn cancel_order(user_id:&str, if ret < 0 { error!("cancel_order error, return code:{}",ret); ret_msg = format!("cancel_order error, return code:{}",ret); - }else{ - let received_event = rx.recv().unwrap(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = format!("cancel_order error"); - } - - payload = received_event.payload; } td_api::EventHandler::UnRspOrderAction(); diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 973f582..7f3bd3d 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -376,39 +376,39 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge Ok(response) } -pub async fn td_query_all_instruments(_req: Request) -> Result,GenericError> { +// pub async fn td_query_all_instruments(_req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); - let is_ready = CTP_TD_READY.lock().await; +// let mut rsp_json = "{}".to_string(); +// let is_ready = CTP_TD_READY.lock().await; - if *is_ready { +// if *is_ready { - let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; - let rsp_result = RspResult{ - code: 1200, - msg: "".to_owned(), - result: &(*instrument_map) - }; +// let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; +// let rsp_result = RspResult{ +// code: 1200, +// msg: "".to_owned(), +// result: &(*instrument_map) +// }; - rsp_json = serde_json::to_string(&rsp_result)?; - }else{ +// rsp_json = serde_json::to_string(&rsp_result)?; +// }else{ - let rsp_result = RspResult{ - code: 1100, - msg: "Trader Not Ready".to_owned(), - result: "".to_string() - }; +// let rsp_result = RspResult{ +// code: 1100, +// msg: "Trader Not Ready".to_owned(), +// result: "".to_string() +// }; - rsp_json = serde_json::to_string(&rsp_result)? - } +// rsp_json = serde_json::to_string(&rsp_result)? +// } - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; +// let response = Response::builder() +// .status(StatusCode::OK) +// .header(header::CONTENT_TYPE, "application/json") +// .body(Body::from(rsp_json))?; - Ok(response) -} +// Ok(response) +// } pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { let mut rsp_json = "{}".to_string(); diff --git a/src/utils/ctperror.rs b/src/utils/ctperror.rs index ecf4dca..3e8d26d 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctperror.rs @@ -7,6 +7,7 @@ use crate::ctp_client::Push_Event; use super::super::result::RspResult; use super::super::result::EmptyResult; +use std::{env}; use std::error::Error; use serde::{Serialize}; @@ -90,20 +91,23 @@ pub fn recover_on_error_push_event_handler() { let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Push_Event { + let error_event = Push_Event { client: CTP_CLIENT_ID, name: "OnRspError", payload: event_str }; - debug!("td_api::EventHandler::OnRspError: push_event {:?}",event); + debug!("td_api::EventHandler::OnRspError: push error event {:?}",error_event); - let json_str = serde_json::to_string(&event).unwrap(); + let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + + let error_event_json = serde_json::to_string(&error_event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); + let _ = rt.block_on(pub_event_to_topic(error_event_topic,error_event_json)); }); } -pub fn get_error_event_topic(client_id:&str,app_id: &str) -> String { - format!("{}-{}",client_id,app_id) +pub fn get_error_event_topic(client_id:&str) -> String { + let nq_bot_id = env::var("NQ_BOT_ID").expect("Ops,Error for Env Var NQ_BOT_ID"); + format!("{}-{}",client_id,nq_bot_id) } \ No newline at end of file -- Gitee From 0cfe567ed48c35d24b924786a728851c0604c9ac Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 26 Oct 2021 19:57:31 +0800 Subject: [PATCH 58/75] update cancel order returncode --- src/rust_ctp_client/librusttdclient.so | Bin 136664 -> 136664 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/rust_ctp_client/librusttdclient.so b/src/rust_ctp_client/librusttdclient.so index 6276b4d0d74bda082ec39ec65d1aa8dcd8289d69..6999d6d1ff6a270f2330ade3263c7ec1878e1405 100755 GIT binary patch delta 7245 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 delta 7189 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 Date: Thu, 28 Oct 2021 17:21:53 +0800 Subject: [PATCH 59/75] change send order logic --- Cargo.toml | 2 +- .../send_fill_and_kill_limit_order.rs | 2 ++ src/ctp_client/tdcontroller.rs | 1 + src/request.rs | 1 + src/rust_ctp_client/librusttdclient.so | Bin 136664 -> 136664 bytes 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 7361cfb..bc64be7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.3.9" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.0" } \ No newline at end of file diff --git a/src/ctp_client/send_fill_and_kill_limit_order.rs b/src/ctp_client/send_fill_and_kill_limit_order.rs index 848fd23..c489e52 100644 --- a/src/ctp_client/send_fill_and_kill_limit_order.rs +++ b/src/ctp_client/send_fill_and_kill_limit_order.rs @@ -12,6 +12,7 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, direction:&str, open_close:&str, volume:i32, + volume_condition:&str, limit_price:f64) -> Result { let mut ret_msg = "".to_string(); @@ -23,6 +24,7 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, direction, open_close, volume, + volume_condition, limit_price); if ret != order_def_id { diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 7f3bd3d..7e1ec9c 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -676,6 +676,7 @@ pub async fn td_send_fill_and_kill_limit_order(req: Request) -> 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 delta 24314 zcmb7s3w%w-_W#*O5|I*#M^0WMf=GgpP)*glqDj1;jklm)w@q=?O;sHf6~R>-ldG+w z#G`HMRYE-?C5cc)TTNY$&{mI7B2?4ImEU*Gnv=)4|NrN6&*#&A_g=Hsnl;~9Gqd-^ zp2CmZ3qNvSmG04eltuoUkJ`OC!)S2% znBHDC|KcWwR1aV)OP8lCmJmyAi+{1%!z(hXLp?5@sfr&==i=I}SnjFh1uwAtjJe6n zW}khJ#dTF_&6Zrc;eK`bjV3JLuk`CH{RtyjJ}i`LX|3c*U0J@yo#hjh{DAU*l>M8} zczYXX&3Ny|_J6RVWyJGrdDq4Q)oM#l8dmE_Z?k%!vN{fPYG1$GWlRCLcOcV((O&ib>1ZOYGgwOBvboKfHAw=Rgq&nTAFA2eoTXNLaVmgSkIUxPOO15{}}r|W1g?f1YO z-=LR0M5Tk%=|aWw&M|azSJ`SFG~Nk~DgRwuza%`5HQEjZn0#% z$OWxb3wp@{i)HbvEH7zUo!*5grwkbLGb=i2{|GgayhAa|oek^LM(JzJMT~{q4uhF3 zxPlF;;ttQTf#r7=?B-(2c$JyaTE;GXn)UU87lW2iK>EP*Y0UDVd$Ro&3;fDos+x4l z)T9$-WqDMB#ZnKB`rY9BcU3^P&g|&r$1K0ZU}@BdZoKX zHKS}c>+*0j!4~P~qct=|3)?s;uHvGR+;U;jnJuJ?!d{rl=7qNr=YE;cs ziQ}UZr#Tl}5=L?bndZO%o8LSwtj)^XVRHdWr)guSNi^F&GIs~q>@!u*IH%af-MDmN z9S$MYS)&KbZ)iRC<5-q^sWl>8>38nWay{jTsMKEni&TuL==yuXY_LT2m@|bwjbpjP zoDtY2Dnf+|q5KIjLiv}h63_b*+z z^r9Kn$Yvj})=bQA@|OT!$abB|5oan+8praEiin;{f9OjrpRRS%1xyFzXPK5Gf!$bs zf`@>a*T_5mtTvx)c4wWLT4xMYlj;ez-py8N)VT%gA2OQ++5Glsk$*XeOV64EgKYMV ziedDh`~|8N#r;>lcRn*6R|)Z0iy=>?SHlOaUys4kMop$0G`4H1dCHAvmdb?aKb^yR ztO9Zly5ow_eABzJE&h<2vzw}Fj;T3*xmv-U)h`WYZ|hW|IMeHmek?CAXEe6i9qPH% z+1aBaxwJzmyLYBnZcUbV)EfUD45?FH)RW?J71b(a1IcGA|BaOVIW@7=S1>5{0wXrh32bbP4lY(vbQmyo^dR*;smz_B?cd;v5WpWQx zj1ub@mN!t(Bpp-?2fMMnwkM~T^Ktk$ENc|ACy%xs6^;zFh6?7Yv~&*MpKL7er47%e z%2BELY?C(eAzE1Rh?~5P(V9_L_3%P%DtJDY^|4$wvDxQob#-gPrRy}ZdZVkUmPjpK zuc{fjlbVs8^JYwY*4KwgXO$7X$|ZaCEl##pHD-e@_skI?k=Bl3=CY7Tzd=6CsdE+o zOilFp=J^ntpZ-|7rxW|gG>xXV_ypBY80_+Q2&*kMVWHN9+U-~#rbcLUrQftQ%O9Ib zO>OoB%_>XLK1ZXyzVr2jABHS&E`RsOvA20@KE$Ju{PjY0vir1w_(dz0-{rZ^{H>|C z->N^^27MuapQ}~$_?1Nq1dYUSMu&Zj0|%gL8AU^7d_z zvQk3_(aYb)0W3eG-mah~e-1TwT{4YOTeSXCIV)OuQ*EiMtj1$zr+l%Nm%Lt4iTO^b&HhMx*7?r}E?uM^(885ftHCU9q#Ep8CBnwD+@iYPDId^<_G+ONFR8~wOGDW8+a{MS{0j{!ff^sH?DrK3Tt>UTTRkt-nLjCsFpKYk_NVA`NC3m z;7pLD+AL2lX1Q~Cf1*aEN_M*iqf!3mwqt|#5BdIUB`+Jua(xucRu!*S6+0`Kj1fqI zu2-WB6T18zSF7;O2HarY=CNBWKdO!!e1#RAll&w#kczc=Vq|x&AjPYC$7NuKr;0C@ zupehYdm~uBvf4ahu{=-jtAQ{$p*_PbqXNi_%z+VD8dW=-Je3dU()McbVDgo}TK!o5 zxwhBTOU;kN)Y9nG&s8JXM}=Eo`SEy;{oMFX3e2A)yyJ7UPJF0V$w4YfoVNC5 z*;Dx(ug2F+vwO=n#vkU4mU!OPX#K1=+afJdy5&zc#o{M_^Ez?qg}vun_DwLm&Tc5Y zcNZ|!EYd$nt&B_k?m^r~X4}h+YWFTLFOSMyoC0WT zUMcdkj(TV&T??>wC8%GkXIyG7v>hSls>{CCS`W?0>jBm~56s@zTl9RHO?xs-Vi*Nz z7nkO`VY9`OW?2zu#HBS{jq6m8xD_iXiqxFA)U$CbIzPS5VsV@^yIkr0zeIPXR7RIg zP~XED-G`;-JC|+NWu-E_S4t_oS~9#zb?;@H%da@P!U~uiHz=MiHz=438HIm7F~<(pv5%&gUXot;`#~7NQ4byQEV;;%qcc^{1h;3ba8okT-stU1QxeqZCir3a=NS0-3^6x_b;vu>C)IGsJq3# zD&r2owTzpLoYfyiGB|$!#q__~yzgwfzH*lwH|&7xxD`)NAV_n~Pp7#i&v6cMV#rS= z#rC(PVjWf-#)_XR#clV@Xp>JV(i8lr7G#yEc1K_N;kY2TxniTru}QXfrt( zlQ;r=g#d+rU4!LYC%ocT#NMO(%T&vXq4zLZ6;aS>iwg-bW1;XXszxc+_yK)(+dnS# z3#a7%4N@#5#U(e)J`bB2ZOs`EeXI+XnW+!^cK0YEm;Bl~qdQ zWNW_!VOnfi+*{eQdDpH}euxEOMnmhCD`w=c;muR8khh`7z{q?Auu4U^@ZThkJw`$7 zzi!U`HQ4?QIa?8%ExY=fW2iKw+dRiqH1=~W2Oxwz0?m|A!{mRlvg3`O0lRmIc- z*0v8Xk`|lpr0L}MQnv`a;6K=;UL=o?FWJk>kr#n1 z%X4HBNon1J;nzV)Qhx6Ca71t*M)piw1Wjfs6i6!djGL6mo_VW~dc7q#8ZqWMj>DOg z1sRo>WJ$8Hm6L0V+3vRh`*@0uqOHQgJlS0p9K1*oz~?_mm1v>0_nO0xC?2^9Fz@~ z<196HDU0$P<;;ilFqo=Rj@9s({+-#ayrItyI9ZfkchNsNp_h{5q2G%nAEUn6_V=LZ zJ)An(Bwr_KLPHl%FNeRkvRzcNd~#7nB9#W3^M7wXvLEV6q&+5H#=xf;<58#A)!>rO9AABpKJdG&N zzqq?4$wl9Y>7Ito^S2AKQYm})TVZ$`VM7cGD9v@}0*(oDo z&ZtKHGT8u`osGX2-gUup-hakfe?M=AKMrVo84l0{dNjqth+#qtV=cwvvGeAH$FII} zm3306kcY2q{cjY|iVFTVMRA-Zq+QA10^+MmHt&{JvC@MpF;Shr5VLE!kIzWZq0?9M zYo>2vl^l(`!1RqhC+n2-)%cp}+l}`?kX6slVU3`$Bz=x~B$4#J^p#HEhp4$4eWfyf z9^4n#_BMt$oC_o5XFeKPr1Ep>S8ER%6Oz}+k|&1!Cz6p0qTXx65oM5eB~i~%-c=!L zGV>^j`W&6A5mk6rCYm=|t}}Jy95dz5nJig({1r3R@T{y<$_}2BObz}tQZki4m*euH zxFk~>q(m|m@TJbwaMWClsqL}>lBv#OjnznQ5CkJIMavf|l*`dm!l#BY)rb=FYZyKg z5+nsfMcfLWiB>#48!vV=3cHc1lJYumR(9axDKZOL9eQQl9ziyJD7DfSC-R);MWU%^ zgi*`z_5A?uh$h+-fLrMV#c?9s#fbLY%2aP8i_|a0j9P}R&c@ReK&+JY6f0beh<5R; zhNk2>T2p+fG=&b}>RPD=_GCM$@M%lW4DJ7ENgaRTs zQm(BPty_#*oE*z0ej`bc98WzjW_TD4#G9_hv9V-5GH6|zblO<2& z*4)L^xL#BjZt>fSRs3a%GR{xmQ9#t%#K!)05g&J@=CG zIQInH{g>S9CZcK~_ugkpHxl~`@@4LMrsqn>Qr78|Sm|Q;h>vR-_3LzJWyw@?aR!;~ z*@<9>%2PakAuzRC}GOuS~Ul_`?r1b|z_8rdkc^jw-3vPFiuQy-j1P zda7+XAye%Noam{Rn#-wnle)|tA3imNfzipCc|3?9#;Cz7$PcEL)c z>U}Ayc;@p}OZJj%@m^hHO7h3D_z4D2QcRV}wjcX_lx#;yyE57O6VFwW%`UB&!LMmR zRcEl|m`t{CP@*&V?Qu@FXwGIym(Ovgu=O!nsg#{R&JuCDcRZd!U|_`JUA}yc^j$8F>vK6 zm9o*tn5EN=B}*@3%bt2~-w~)tmU>8uWa-%FI!pgS&DB`yL*s@M?Rt*5U*G7EoJzH+ zxT_GdS+=}_kik?xDt?z^a}K;#G$yK~%_!ze60(b$R-KS9KbM5KA$lTYxqS8jop8M8 z2oqAb$|!qqmK14iBn?4y%;ZHh}0vR+CgA+|$0AwyAf zHA1$?2FSE|_BavJP-HeV{F5Cpbp~IB6@z%M989hh1Zw|-v@6pjjncddE1xrIk`>v$ z>a4UnB&Va7&`M$j@7{PKV^+MyI3MF_``@aJoBl)wwUn1**8>K{ARllh9+Y87p4?@( zuANTLVshi_JGHIRxDoWzT*Ibt=+h~5N!;VfB$33ukyVYjCTQY8R9lTXcR5fcbMGG$ zPuq-8`%tQ1+tQdJ`>tY3V_zUwJB>r#r6%w{Wj$H?syfI{_##h)YQ!&VPoTMvn1n-MsqBUPE^T0=H3&(WJ|mJR-XQbmJ@9jMY^1eNDl174i% zy+(o`D7AU$q#P9^e2pH-4JeW)hfZsm4HZLYR{%FTl(Z|80CUzwu zG0c~&Yq`v3Ufa|z&yLR|AvfSepG#IAU_x&5u#}DeYCjWlb6+JP%MQr7Wbmtgl8}uP zI4%d;&VHWVEaOcam|juZVACbaR=E7Snc<&3gGWk~aJZN=Z;X zs#->t=kOuNyb+dMC?&jmOI1;Os%tbC zFE=(?+4E&VEFRS<8~f5D`$n}@{w4WH!!2IVZ_mU3X)oAW!7emBH})Flk)hb9tk~u7 zlgUJrTVG5^v_Q$f3oK+;+0f3v-Hrm9FNqr(TGi)h$Q;|LAoUB!IN5sHO>6gy&cQ~A z*Y!QJ2vJD!An|Ij;XC%0lp+EpR`(9H2>(??b^~gQvR@00OB-DXRoMY&D|kDnx_|j@ zIc0h}oxQh5+zd9_xZkEq&=GPAvi4iq!PEu^l+_;{u4alMO^l=lpL4THNLO`5j5yWA zXdE`>Qwp9so9oVUCU9T*hZ;px&L_ev#As6QpPxu=a8Hb5gLjvBKE!D8%rMzl%8B_Z z;veC6Y3#lEZ{D-aqOdoTdK-jsySDRg_inK%#IV`p5UkB71&^Qrzd zATvJo1nPssJjZ8`{p&17F$V_pd znK60vX7Zd$F~f&5=GJJ~TO|gf_D8`vbYMOsUQWR#?$6!c>y(saD#<3wb8zEO!M~j; z-e_(--=I{D=*niz-z8c_7=hw$bEA&SXQ+%Poj-O6-%ukwaO_9q@e5P{S9y-<^7blS zZp{>!t&UVH8!lmqj1V)CsM!6Unm8qI&R6;oRn{_byn z3^@&=HW7w@;}WVogDOv}GSPE8iHKHVM&p`kvJo~>+`?#!9gcu7qn$BG^ba#$aP@$< zQ{q~f5o}$&O&kd`dRP~HER1k;?T0%>n{XrC&38Nf^;gVCHwQ|`9VmiS3?KZJRE|(N zJ6Xg#;l^{WJxQDYhFH8^IKqt}>!pvVdm7c0vF_hWHzD;(x53G?u_bi{{V~)@{w za4tGx6mTDKE-(kZ>D$s`X^+&60VV(o-7S`3z%t-Opl>aUg;F~PxDuEM+zCtp<^t1e z;j^k6xX6OwF|ZKmkMUXt>;Uxjuvi8GV}QxPMBp-D3NQnh4$J{&0j~lJfqwwYfIb+< zzE4>!w7SOt`vDVy(|{?!CBXEjuwB0y7g-P-1r`D?0n31ofWG+WWA!ir#Q-CLiNFM4 z3UCrI9k>vf1>68E1ResG0WSi5>sTzMz!;z>md8Y31TY2I3z%-l#dus~0p|e=f$M=~ z!2Lj9{M)4qz!>0NU?R{1OHB$e6qpX|0n7r90Tu%10Ly^ufWCDtmOa22AT3dez+zwu z&<#&H_Hya`MPTJi9a1q=cf0y_fB zfWv^k-pB!93~(hd5x5hW0?f@Sx0k2m;syj+z{kKspbs9`%YdOk-+IUeU<@z;mfC1B?M)1SSHDfhoX04%*=W7oK>S%>sr13xUzV zGGGs&Zv(Uh7z3OHOa#sWrT|w0(}5d+S-?HOLf~0o8L$}Wi*Fm;@bnr33;`wry8u&w zBkZ_H$Hi=57H|o$5V#Il2Fw8Z;$OV)2gU$%fr-G2z!cz3U^?&-Fbn90XZb>)Kd=lK z3G}t0A;1{mFkm8Z8ZZTDpM#5ZTr2}-0W*Mwz#L#1@G8*P7s&^V0X_yM0_)%fB?TA^ zOb7M?W&sxh3xTchmgS2_e+ynPy8#1%#YvXP3uY&UO_Q0j5%gcuV zdwq!s3+Mp82lPJ&JK$O1j{z9}%P+tXudyY-R=|*NVF)}7oCTco9Sngkg_tRUIp4z& zIQ>$2xeMO+BQL`axDnU~_#^OT;O494b-xE+`S%m)@1mzS3S*WWHL zZ-C9?6TtSs8^9sJ$G}-Yk2_!j*bul6*aG+su;ZO_d-+3L%z~f+_Qeka+XJKTBFTW` zfGNOc_t0|SG~i+2BH(4%Lf3XfzyGrfvbRo#&-w(JVk*H-Y3&M1GPa4G&m;ED+e883hHavlaQ!yn(G!ni>qIylk>=`c zA^{TX%57pA;j(RF8EGsLI}nMh8)i-Tpptp;K{y9KVu7=_i3p%EliDveli`C(roji{ zBt$_P(GNbTBmq7Md%*``4@5zlT_lgL?iiu) z@d8RZzz1P8S^_j8Wk--k1bk3QD0~oxzz1Ovq9F8vhd7`cJOI(5@o}KBSWG3jDpCo~ ziX8+;#VLYJaSLGGkRd$cVYxCxL=Y~_5DA2{GsHB)X&GV};fM^eldxZgC?M>SA&Lp3 zVV?jDfjyxQ>bM|sR^j~ z0oJ2iX%qyw;3@5p*g*yR#VIPtfPHUNvTm#J=mT7`RYVZZ-YOCZCv6qe2#3J|VXv)X zCt-)JqJS_I_Jsbh?+f&VJ)sr$K+rd}FKR>j6I>EI2nxh0f?RP6V9nV=!!N)E4{%3C zcs~?mig_m}f^ z5w3k#isTm&SKF0hCE=WtBJ)Kf#JcLF>`M>4>scn^xoi1JkulB)5?+ah3%b2wBD(#I zcp6~MIY~+4FQ%i&ntxK99Z5Y(Hz5$_zSP$kX;lF zheH;aEAEnq0gzcebH%XX2&YA^m@^#VHOv+332WqvLqN>@-wy}*rNS721e}*AJgL5J zBVf8TPxKlAl_g@u5FH`#PEJWpo5D59I*e6wyOuDj$3w~?qZ zF;9dN&WGEPMhI4osUyKbkw_hhn&+PqnJ6_f#5<#m0Jm{?klT2Q+7V=3eM)$aLK9pH zBpJ<5pv(EJ#o1d^sNeAzjQ{8%uz^S#jaAcy9_z$)T!uEor7x`T=2>agi>-no zI)k|eHC&*Yf(yhW!sr6wKN=BqED#+>BcXSZS6adr5L^|T2#UpVfYt4^>^HYr_+z8x zwB*8d4X#T?lQFWH-3iW$Bm(@Sl`+^6IzwdvB6|!v?+{-X;o7>rK-?SyGBSnhSZE&> z%?WZvEWtHaoIe&uU-I=vx;`wnqS$(e%eVW&j_ZmmA2MKPhvY2lFs+`L$H8Ep8w9>!Dc!vpb2#$=aT zoqk4x@hcKDUNh?NEy=CzZhCpTh|8}S?X7{W4%ACFR@S78&9507te8x@r(i3u)6Zf= ziZL5DK^bBOz| zV;}YCZI(OTZdJwl_i8?PTp_bhw9l&gD7k)k&v_-+zk}|E#}V@5c2CyZ(t=k!`CFh0 z^zXKvUwO{FCHBlQBJnhIeU8y4TL0uK4v!V&S3jc0ilirb&^^)P4Py*u?M-hOHoyJ9 zaIMZ}cdEr|CF1-WMjPw&aABQmL?-FqOCR%KHT_HZ%Sx_)ocA0C6V+}l;p*^4FMl5> zdA@jOuJM9jfrG`)Xs%=RC$p>K{#^8t{x$brj6^EdKa`Efo{KcQ&+f1Q%ij(q*AEo2 zL4ox3A3D#R2vXhBW+7p2r{h*G;O0IuBSFGgo!o-DnMz1Hn zNxy?V5%O0mqU?q(K|h=47_&NFI7uthO7GcKryp zTF7oHFIFELJME?@x&G~>^UMMLgoavJM=37-7@Y`OcOh2?Yt^ebp<%TuxF813H`@5? zAKwqhdP{a4O2zv5Mx?*~DRwIMGpKxoL)@4T8rAs#6~_a-hK5l23DJFlVT*rM%5*pr zE(zU7#rk;x>y`YX`q=ge-pJ_Zi3N%DGsPyjv+JK`-%!Q+r<=X7Vv(7C!p!$d-tPgs ze~!WOr;_UjuFSzIM1E%TFswZ3>qk{EN6p~Qtn3@i2Kvzu`H)jL>EAd%Qu_MG#PQfX zp^B>?`+>P(l`42FjxRLEM(M}h9L4HFc4O4E;^e(9_CiR0Rt$U#JYLWyxm&8(P4VJ1 z>(q?R^wV~>E4etFK!uH^a`>eJe>AN}OW)k>}o$r1P7 zHp2b&Q_=p_o{cBn5z$MrQtM~jr9I8%`k7p=9ayd}C=-=jKi%S%lAjRAmm=x(lbp6c z!|v1(3l+;>!x)z9-ES)SS5U$&Un<^7GukBSXPvZpo{RPL-J<0Bfg#08t{>erv?u#H zA(|}5IL;IUmt)SV7cQnPM-Qyi)~8y%Si4y4hMHYJN2KcuT)a~qe$z<~UyJ1pCGT>N z1@)Eunv&}W&j!Y^AN|0~!%D7BIIKK(+Wa}}d9G-JXSQ1&TpRTe<$@L=&LzXjpkzg<#V5s>*v-KD>=3`Oz^KCD*y*IJ|TaOY{=ji#`=e#GV)CD%_wZabCr z^#k(WSMp5Zy$<_0`teSmO=Gh^v^lH8-&nq|M9f@g^s?(mz}jEt@+I1IaZbtgqYD3{ z(RhGXh`6*szQBJ*0m6 zdBoeNvoq{_rsHKpKcai*3@+A>`gWhma($a&vXbkkUB0U1USVQ=x)B+zpXvVL-`Ssj nWLE82EDv!z@JG5aFU7iZu$bd*jr0gqN6%vubC0(*)aCyGX9o@- -- Gitee From d6dd83c128b45e710e8db676cdf45ed14dfc2592 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 28 Oct 2021 18:08:30 +0800 Subject: [PATCH 60/75] modified ctp event sender --- src/ctp_client/mdcontroller.rs | 17 +++------- src/ctp_client/mod.rs | 59 +++++++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 14 deletions(-) diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 94181d9..e00b9d7 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -200,21 +200,12 @@ pub async fn subscribe(req: Request) -> Result,GenericError let event = Push_Event{ client: CTP_CLIENT_ID, name: "OnRtnDepthMarketData", + topic: event_topic, payload: depth_market_data }; - - let json_str = serde_json::to_string(&event); - - match json_str { - Err(e) => { - error!("Error serialize json depth market data!:{}",e) - }, - Ok(event_json) => { - - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); - } - } + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); }); ret = md_api::subscribe(&sub_req.instrument_ids); diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 40a6420..7c90195 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -24,13 +24,66 @@ use std::marker::Send; use serde::{Serialize}; +use crate::dapr::component_client::pub_event_to_topic; + #[derive(Debug,Serialize)] -pub struct Push_Event where T: Send{ +pub struct Push_Event where T: Send { pub client: &'static str, pub name: &'static str, + pub topic: String, pub payload: T } +pub trait EventSender { + fn send(&self,event: Push_Event); +} + +pub struct Process_Event_Sender; +impl EventSender for Process_Event_Sender { + fn send(&self,event: Push_Event){ + debug!("Push Event:{:?}", event); + } +} + +pub struct Dapr_Event_Sender; +impl EventSender for Dapr_Event_Sender { + fn send(&self,event: Push_Event){ + + let event_json = serde_json::to_string(&event).unwrap(); + + let rt = tokio::runtime::Runtime::new().unwrap(); + let _ = rt.block_on(pub_event_to_topic(event.event_topic,event_json)); + } +} + +pub struct PushEventSinker{ + sinker: T +} + +impl PushEventSinker { + fn new()->PushEventSinker{ + let event_sinker = CTP_EVENT_SINKER.get().unwrap() + match event_sinker.as_str() { + "DAPR" => { + let sinker = Dapr_Event_Sender{}; + PushEventSinker{ + sinker + } + }, + "PROCESS" => { + let sinker = Process_Event_Sender{}; + PushEventSinker{ + sinker + } + } + } + } + + fn sink(&self,event: PushEvent){ + self.sinker.send(event); + } +} + #[derive(Debug,Serialize)] pub struct Event where T: Send{ pub client: &'static str, @@ -45,6 +98,8 @@ pub struct EmptyEvent{} pub static CTP_CLIENT_ID: &str = "CTP"; +static CTP_EVENT_SINKER: OnceCell = OnceCell::new(); + static CTP_MARKET_FRONT_ADDR: OnceCell = OnceCell::new(); static CTP_TRADE_FRONT_ADDR: OnceCell = OnceCell::new(); @@ -63,6 +118,8 @@ static CTP_INSTRUMENT_HASHMAP: Lazy>> = pub async fn init() { + CTP_EVENT_SINKER.set(env::var("CTP_EVENT_SINKER").expect("Ops,Error for Env Var CTP_EVENT_SINKER")).unwrap(); + CTP_MARKET_FRONT_ADDR.set(env::var("CTP_MARKET_FRONT_ADDR").expect("Ops,Error for Env Var CTP_MARKET_FRONT_ADDR")).unwrap(); CTP_TRADE_FRONT_ADDR.set(env::var("CTP_TRADE_FRONT_ADDR").expect("Ops,Error for Env Var CTP_TRADE_FRONT_ADDR")).unwrap(); -- Gitee From 2f95011f9410fb1300a9d883f6108317955f27fd Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 1 Nov 2021 17:18:57 +0800 Subject: [PATCH 61/75] modified ctp code for push event to dapr or inner process --- README.md | 35 +++ src/ctp_client/cancel_order.rs | 17 +- src/ctp_client/mdcontroller.rs | 265 ++++------------ src/ctp_client/mod.rs | 53 ++-- src/ctp_client/query_commission_rate.rs | 2 +- src/ctp_client/query_instruments.rs | 4 +- src/ctp_client/query_investor_position.rs | 2 +- src/ctp_client/query_settlement_info.rs | 2 +- src/ctp_client/query_trading_account.rs | 2 +- .../send_fill_and_kill_limit_order.rs | 2 +- .../send_fill_or_kill_limit_order.rs | 2 +- src/ctp_client/send_limit_order.rs | 2 +- .../send_market_if_touched_order.rs | 2 +- src/ctp_client/send_market_order.rs | 2 +- src/ctp_client/send_stop_limit_order.rs | 2 +- src/ctp_client/tdcontroller.rs | 284 +++++++----------- src/dapr/component_client.rs | 2 +- src/utils/{ctperror.rs => ctputil.rs} | 13 +- src/utils/mod.rs | 2 +- 19 files changed, 257 insertions(+), 438 deletions(-) rename src/utils/{ctperror.rs => ctputil.rs} (91%) diff --git a/README.md b/README.md index 5ac5d56..8c52f84 100644 --- a/README.md +++ b/README.md @@ -116,4 +116,39 @@ docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/oc ```source /root/.bashrc``` +## VScode 使用SFTP远程开发 +### 安装SFTP 1.15.6版本 + +1. 然后ctrl + alt + p选择SFTP插件 +2. 远程服务器创建接收代码文件的文件夹(/root/ctp_access), 配置以下远程服务器信息到插件参数json列表并保存 +3. 右键目标文件并且选择Upload菜单,即可上次代码文件到服务器 +``` +{ + "name": "gpu01", + "host": "192.168.136.28", + "protocol": "sftp", + "port": 2200, + "username": "root", + "password": "123456", + "remotePath": "/root/ctp_access", + "uploadOnSave": true, + "useTempFile": false, + "openSsh": false +} +``` + +``` +{ + "name": "76", + "host": "192.168.202.76", + "protocol": "sftp", + "port": 22, + "username": "amax", + "password": "pc@asdf", + "remotePath": "/home/amax/testdapruntime/octopus/ctp_access", + "uploadOnSave": true, + "useTempFile": false, + "openSsh": false +} +``` diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index 528b31c..a74f873 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -2,15 +2,13 @@ use serde_json::Result; use serde_json::Value; use rust_ctp::td_api; -use std::sync::mpsc; use crate::dapr::component_client::pub_event_to_topic; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; +use crate::utils::ctputil::{recover_on_error_push_event_handler,get_error_event_topic}; -use super::Event; -use super::Push_Event; +use super::PushEvent; use super::CTP_CLIENT_ID; ///撤单 @@ -23,7 +21,7 @@ pub fn cancel_order(user_id:&str, let mut ret= 0; let mut ret_msg = "".to_string(); - let mut payload = "{}".to_string(); + let payload = "{}".to_string(); td_api::EventHandler::UnRspError(); @@ -35,8 +33,9 @@ pub fn cancel_order(user_id:&str, let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRspError", payload: event_str }; @@ -61,8 +60,9 @@ pub fn cancel_order(user_id:&str, let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRspError", payload: event_str }; @@ -88,8 +88,9 @@ pub fn cancel_order(user_id:&str, let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRspError", payload: event_str }; diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index e00b9d7..b8c03d2 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -1,23 +1,17 @@ use rust_ctp::md_api; -use super::Push_Event; +use super::{PushEvent,PushEventSinker}; use super::{CTP_CLIENT_ID, CTP_MARKET_FRONT_ADDR, CTP_USER_ID, CTP_BROKER_ID, CTP_USER_PASSWORD}; -use crate::dapr::component_client::{ - pub_event_to_topic, - fetch_state_from_statestore, - save_state_to_statestore}; - -use super::super::utils::ctperror::{GenericError}; -use crate::utils::ctperror::{CTPError,on_front_disconnected_reason}; +use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response}; ////////CTP_Access Dependency//////// -use hyper::{Body,header,Request, Response, StatusCode}; +use hyper::{Body,Request, Response}; use super::super::request::{SubscribeRequest}; @@ -35,8 +29,9 @@ static CTP_MD_READY: Lazy> = Lazy::new(|| { Mutex::new(false) }); -static CTP_SUB_INSTRUMENTS_STATE_KEY:&str = "SUB_MAP"; -static CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE:&str = "\"\""; +static CTP_SUB_INSTRUMENTS: Lazy>> = Lazy::new(|| { + Mutex::new(HashMap::new()) +}); /// ctp_access main.rs fn main(){} pub async fn init(){ @@ -107,9 +102,9 @@ fn md_login() ->i32 { debug!("md client OnRspUserLogin OK,set CTP_MD_READY status to true"); - // info!("start, check or resub last instrument_ids if CTP relogin"); - // let _ = rt.block_on(resub_if_relogin()); - // info!("end, check or resub"); + info!("start, check or resub last instrument_ids if CTP relogin"); + let _ = rt.block_on(resub_if_relogin()); + info!("end, check or resub"); }else{ error!("md_api::EventHandler::OnRspUserLogin Error, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, @@ -132,8 +127,6 @@ pub async fn get_trading_day() -> Result,GenericError> { let start = Instant::now(); let is_ready = CTP_MD_READY.lock().await; - let mut rsp_json = "{}".to_string(); - if *is_ready { let trading_day = md_api::get_trading_day(); @@ -143,7 +136,11 @@ pub async fn get_trading_day() -> Result,GenericError> { result: trading_day }; - rsp_json = serde_json::to_string(&rsp_result)?; + let rsp_json = serde_json::to_string(&rsp_result)?; + + debug!("API get_trading_day cost: {:?} us", start.elapsed().as_micros()); + + common_response(rsp_json).await }else{ let rsp_result = RspResult{ @@ -152,16 +149,12 @@ pub async fn get_trading_day() -> Result,GenericError> { result: "MD Client Not Ready".to_owned() }; - rsp_json = serde_json::to_string(&rsp_result)?; - } + let rsp_json = serde_json::to_string(&rsp_result)?; - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; + debug!("API get_trading_day cost: {:?} us", start.elapsed().as_micros()); - debug!("API get_trading_day cost: {:?} us", start.elapsed().as_micros()); - Ok(response) + common_response(rsp_json).await + } } ///登录成功才可以订阅 @@ -182,7 +175,10 @@ pub async fn subscribe(req: Request) -> Result,GenericError if *is_ready { - save_sub_instrument_ids(&sub_req.instrument_ids).await?; + let mut ctp_instruments_map = CTP_SUB_INSTRUMENTS.lock().await; + for id in &sub_req.instrument_ids { + (*ctp_instruments_map).insert(String::from(id),String::from(id)); + } md_api::EventHandler::OnRspSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspSubMarketData, subscribe Instrument {} successfully! rsp_info:{:?}, nRequestID: {},bIsLast: {}", @@ -197,7 +193,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); - let event = Push_Event{ + let event = PushEvent{ client: CTP_CLIENT_ID, name: "OnRtnDepthMarketData", topic: event_topic, @@ -228,14 +224,9 @@ pub async fn subscribe(req: Request) -> Result,GenericError result: ret }; - let json = serde_json::to_string(&rsp_result)?; + let rsp_json = serde_json::to_string(&rsp_result)?; - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; - - Ok(response) + common_response(rsp_json).await } pub async fn unsubscribe(req: Request) -> Result,GenericError> { @@ -254,7 +245,10 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr if *is_ready { - delete_sub_instrument_ids(&sub_req.instrument_ids).await?; + let mut ctp_instruments_map = CTP_SUB_INSTRUMENTS.lock().await; + for id in &sub_req.instrument_ids { + (*ctp_instruments_map).remove(&String::from(id)); + } md_api::EventHandler::OnRspUnSubMarketData(|rsp_specific_instrument,rsp_info,n_request_id,b_is_last| { debug!("md_api::EventHandler::OnRspUnSubMarketData, unsubscribe Instrument {} successfully! resp_info:{:?},nRequestID: {},bIsLast: {}", @@ -281,197 +275,50 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr result: ret }; - let json = serde_json::to_string(&rsp_result)?; + let rsp_json = serde_json::to_string(&rsp_result)?; - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; - - Ok(response) + common_response(rsp_json).await } fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { format!("{}-{}",client_id,instrument_id) } -async fn save_sub_instrument_ids(instrument_ids:&Vec) -> Result,GenericError> { - debug!("save_sub_instrument_ids, before save new, we should fetch the last sub_instrument_ids."); - let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; - - match result { - Err(e) => { - error!("save_sub_instrument_ids, get CTP sub info from dapr error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get sub info form dapr error".to_owned()})); - }, - Ok(res_body) => { - let full_body = hyper::body::to_bytes(res_body.into_body()).await?; - let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - - debug!("save_sub_instrument_ids, get CTP sub info from DAPR:{}",last_sub_map_json_str); - - let mut new_sub_map = HashMap::new(); - - if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { - let last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; - - for id in instrument_ids { - new_sub_map.insert(String::from(id),true); - } - - for (id,_) in last_sub_map { - new_sub_map.insert(String::from(id),true); - } - - }else{ - - for id in instrument_ids { - new_sub_map.insert(String::from(id),true); - } - } - - let new_sub_map_json_str = serde_json::to_string(&new_sub_map)?; - - debug!("save_sub_instrument_ids, save CTP sub info to DAPR:{}",new_sub_map_json_str); - - let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),new_sub_map_json_str).await; - - match res { - Err(e) => { - error!("save_sub_instrument_ids, save CTP sub info to DAPR error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "save CTP sub info to DAPR error".to_owned()})); - }, - Ok(_) => { - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from("".to_string()))?; - - Ok(response) - } - } - } +pub async fn get_sub_instruments() -> Result,GenericError> { + + let ctp_instruments_map = CTP_SUB_INSTRUMENTS.lock().await; + let mut instruments:Vec = Vec::new(); + for (_key,id) in &(*ctp_instruments_map) { + instruments.push(String::from(id)); } -} - -async fn delete_sub_instrument_ids(instrument_ids:&Vec) -> Result,GenericError>{ - debug!("delete_sub_instrument_ids, before delete, we should fetch the last sub_instrument_ids."); - let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; - - match result { - Err(e) => { - error!("delete_sub_instrument_ids, get CTP sub info from DAPR Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get CTP sub info from DAPR Error".to_owned()})); - }, - Ok(res_body) => { - let full_body = hyper::body::to_bytes(res_body.into_body()).await?; - let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - - debug!("delete_sub_instrument_ids, get CTP sub info from DAPR:{}",last_sub_map_json_str); - let mut new_sub_map = HashMap::new(); - - if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { - let mut last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; - - for id in instrument_ids { - last_sub_map.remove(&String::from(id)); - } - - for (id,_) in last_sub_map { - new_sub_map.insert(String::from(id),true); - } - - } - - let new_sub_map_json_str = serde_json::to_string(&new_sub_map)?; - - debug!("delete_sub_instrument_ids, save new CTP sub info to DAPR:{}",new_sub_map_json_str); - - let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),new_sub_map_json_str).await; + let rsp_result = RspResult{ + code: 1200, + msg: "".to_owned(), + result: instruments + }; - match res { - Err(e) => { - error!("delete_sub_instrument_ids, save CTP sub info to DAPR Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "save CTP sub info to DAPR Error".to_owned()})); - }, - Ok(_) => { - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from("".to_string()))?; + let rsp_json = serde_json::to_string(&rsp_result)?; - Ok(response) - } - } - } - } + common_response(rsp_json).await } -pub async fn get_sub_instruments() -> Result,GenericError> { - let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; - - match result { - Err(e) => { - error!("get_sub_instruments, get CTP sub info from DAPR Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get CTP SUB info from DAPR Error".to_owned()})); - }, - Ok(resp) => { - let full_body = hyper::body::to_bytes(resp.into_body()).await?; - - let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - - debug!("get_sub_instruments, get CTP sub info from DAPR:{}",last_sub_map_json_str); +pub async fn resub_if_relogin() -> i32 { - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(last_sub_map_json_str))?; + let ctp_instruments_map = CTP_SUB_INSTRUMENTS.lock().await; - Ok(response) - } + let mut instruments:Vec = Vec::new(); + for (_key,id) in &(*ctp_instruments_map) { + instruments.push(String::from(id)); } -} - -pub async fn resub_if_relogin() -> Result,GenericError> { - - let result = fetch_state_from_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string()).await; - - match result { - Err(e) => { - error!("resub_if_relogin, get CTP sub info from DAPR Error:{}",e); - return Err(Box::new(CTPError{code:1001,msg: "get CTP sub info from DAPR Error".to_owned()})); - }, - Ok(resp) => { - let full_body = hyper::body::to_bytes(resp.into_body()).await?; - - let last_sub_map_json_str = String::from_utf8(full_body.to_vec())?; - - if last_sub_map_json_str != CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE { - - let last_sub_map: HashMap = serde_json::from_str(&last_sub_map_json_str)?; - debug!("resub Last Sub Map:{:?}", last_sub_map); + let ret = md_api::subscribe(&instruments); - let mut instrument_ids = vec![]; - for (instrument_id,_) in last_sub_map{ - instrument_ids.push(instrument_id); - } - - let ret = md_api::subscribe(&instrument_ids); - - if ret != 0 { - error!("resub_if_relogin, Subscribe LAST SUB_MAP ErrorCode:{}",ret); - return Err(Box::new(CTPError{code:1001,msg: "Subscribe LAST SUB_MAP Error".to_owned()})); - } - } - - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from("".to_owned()))?; - - Ok(response) - } + if ret != 0 { + error!("resub_if_relogin, Subscribe last sub instruments ErrorCode:{}",ret); + }else{ + debug!("resub_if_relogin, Subscribe last sub instruments: {:?} ok!",instruments); } + + ret } \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 7c90195..1d23206 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -27,60 +27,59 @@ use serde::{Serialize}; use crate::dapr::component_client::pub_event_to_topic; #[derive(Debug,Serialize)] -pub struct Push_Event where T: Send { +pub struct PushEvent { pub client: &'static str, pub name: &'static str, pub topic: String, - pub payload: T + pub payload: T, } -pub trait EventSender { - fn send(&self,event: Push_Event); +pub trait EventSender{ + fn send(&self,event_topic:String,event_json: String); } -pub struct Process_Event_Sender; -impl EventSender for Process_Event_Sender { - fn send(&self,event: Push_Event){ - debug!("Push Event:{:?}", event); +pub struct InnerEventSender; +impl EventSender for InnerEventSender { + fn send(&self,event_topic:String,event_json: String){ + debug!("Push Event Topic:{}, JSON:{}", event_topic,event_json); } } -pub struct Dapr_Event_Sender; -impl EventSender for Dapr_Event_Sender { - fn send(&self,event: Push_Event){ - - let event_json = serde_json::to_string(&event).unwrap(); - +pub struct DaprEventSender; +impl EventSender for DaprEventSender { + fn send(&self,event_topic:String,event_json: String){ let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(event.event_topic,event_json)); + let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); } } -pub struct PushEventSinker{ - sinker: T + +pub struct PushEventSinker{ + sinker: Box } impl PushEventSinker { - fn new()->PushEventSinker{ - let event_sinker = CTP_EVENT_SINKER.get().unwrap() - match event_sinker.as_str() { + fn new()-> Self { + + let sinker_config = CTP_EVENT_SINKER.get().unwrap(); + + match sinker_config.as_str() { "DAPR" => { - let sinker = Dapr_Event_Sender{}; PushEventSinker{ - sinker + sinker: Box::new(DaprEventSender{}) as Box } }, - "PROCESS" => { - let sinker = Process_Event_Sender{}; + _ => { PushEventSinker{ - sinker + sinker: Box::new(InnerEventSender{}) as Box } } } } - fn sink(&self,event: PushEvent){ - self.sinker.send(event); + fn sink(&self,event: PushEvent){ + let event_json = serde_json::to_string(&event).unwrap(); + self.sinker.send(event.topic,event_json); } } diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 135266d..9839e61 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -5,7 +5,7 @@ use rust_ctp::td_api; use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 919f965..0a9f946 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -1,10 +1,9 @@ use rust_ctp::td_api; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; -use serde_json::Value; use std::sync::mpsc; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; @@ -13,7 +12,6 @@ use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; pub async fn query_instruments() -> i32 { let mut ret = 0; - let mut ret_msg = "".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index c459dc7..637c1c5 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -6,7 +6,7 @@ use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index d095c5a..c18f0d0 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -5,7 +5,7 @@ use std::sync::mpsc; use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index eaf3921..0dbb7bf 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -6,7 +6,7 @@ use rust_ctp::td_api; use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctperror::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; use super::Event; use super::CTP_CLIENT_ID; diff --git a/src/ctp_client/send_fill_and_kill_limit_order.rs b/src/ctp_client/send_fill_and_kill_limit_order.rs index c489e52..a5a6a3b 100644 --- a/src/ctp_client/send_fill_and_kill_limit_order.rs +++ b/src/ctp_client/send_fill_and_kill_limit_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///5.FAK单 pub fn send_fill_and_kill_limit_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/send_fill_or_kill_limit_order.rs b/src/ctp_client/send_fill_or_kill_limit_order.rs index fb768e2..59c7cce 100644 --- a/src/ctp_client/send_fill_or_kill_limit_order.rs +++ b/src/ctp_client/send_fill_or_kill_limit_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///3.触价单 pub fn send_fill_or_kill_limit_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/send_limit_order.rs b/src/ctp_client/send_limit_order.rs index 6d70b25..8d71186 100644 --- a/src/ctp_client/send_limit_order.rs +++ b/src/ctp_client/send_limit_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///2.限价单 pub fn send_limit_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/send_market_if_touched_order.rs b/src/ctp_client/send_market_if_touched_order.rs index 1cde10c..35c5f38 100644 --- a/src/ctp_client/send_market_if_touched_order.rs +++ b/src/ctp_client/send_market_if_touched_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///3.触价单 pub fn send_market_if_touched_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index 8ae6370..4001a95 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///1.市价单 pub fn send_market_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/send_stop_limit_order.rs b/src/ctp_client/send_stop_limit_order.rs index 670060e..0e87f51 100644 --- a/src/ctp_client/send_stop_limit_order.rs +++ b/src/ctp_client/send_stop_limit_order.rs @@ -3,7 +3,7 @@ use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; -use crate::utils::ctperror::api_return_code; +use crate::utils::ctputil::api_return_code; ///4.条件单 pub fn send_stop_limit_order(order_def_id:i32, user_id:&str, diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 7e1ec9c..f807a2f 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -14,7 +14,7 @@ use super::send_fill_or_kill_limit_order::*; use super::cancel_order::*; use crate::result::RspResult; -use super::super::utils::ctperror::{GenericError}; +use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response}; use super::super::request::{SendMarketOrderRequest, SendLimitOrderRequest, SendMarketIfTouchedOrderRequest, @@ -23,7 +23,7 @@ use super::super::request::{SendMarketOrderRequest, SendFillOrKillLimitOrderRequest, CancelOrderRequest}; -use super::Push_Event; +use super::PushEvent; use super::{CTP_CLIENT_ID, CTP_TRADE_FRONT_ADDR, @@ -35,12 +35,11 @@ use super::{CTP_CLIENT_ID, CTP_USER_PRODUCT_INFO, CTP_INSTRUMENT_HASHMAP}; -use crate::utils::ctperror::{on_front_disconnected_reason}; use crate::utils::http_url_params; ////////CTP_Access Dependency//////// -use hyper::{Body,header,Request, Response, StatusCode}; +use hyper::{Body,Request, Response}; use std::thread; use std::time::Duration; @@ -94,15 +93,16 @@ pub async fn init() { fn register_push_event_handler(){ - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + let _reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); //let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRspError", payload: rsp_info }; @@ -115,7 +115,7 @@ fn register_push_event_handler(){ //交易所后台核心 —— 对收到的交易序列报文做合法性检查 //检查出错误的交易申请报文后就会返回给 —— 交易所前置服务器1个包含错误信息的报单响应报文 //交易所前置服务器 —— 立即将该报文信息转发给 —— CTP交易终端 - let reg_order_insert_ok = td_api::EventHandler::OnRspOrderInsert(move |rsp_input_order, rsp_info| { + let _reg_order_insert_ok = td_api::EventHandler::OnRspOrderInsert(move |rsp_input_order, rsp_info| { debug!("td_api::EventHandler::OnRspOrderInsert, rsp_input_order: {:?}", rsp_input_order); @@ -125,9 +125,10 @@ fn register_push_event_handler(){ }else{ //let event_str = serde_json::to_string(&rsp_input_order).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, name: "OnRspOrderInsert", + topic: "todo".to_owned(), payload: rsp_input_order }; @@ -139,7 +140,7 @@ fn register_push_event_handler(){ //报单录入错误响应 //此接口仅在报单 —— 被CTP交易终端拒绝时 —— 被调用用来进行报错 - let reg_err_order_insert_ok = td_api::EventHandler::OnErrRtnOrderInsert(move |rsp_input_order, rsp_info| { + let _reg_err_order_insert_ok = td_api::EventHandler::OnErrRtnOrderInsert(move |rsp_input_order, rsp_info| { debug!("td_api::EventHandler::OnErrRtnOrderInsert, rsp_input_order: {:?}", rsp_input_order); @@ -149,9 +150,10 @@ fn register_push_event_handler(){ }else{ //let event_str = serde_json::to_string(&rsp_input_order).unwrap(); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, name: "OnErrRtnOrderInsert", + topic: "todo".to_owned(), payload: rsp_input_order }; @@ -160,14 +162,13 @@ fn register_push_event_handler(){ } }); - let reg_rsp_order_ok = td_api::EventHandler::OnRtnOrder(move |rsp_order| { + let _reg_rsp_order_ok = td_api::EventHandler::OnRtnOrder(move |rsp_order| { debug!("td_api::EventHandler::OnRtnOrder, rsp_order: {:?}", rsp_order); - let event_str = serde_json::to_string(&rsp_order).unwrap(); - - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRtnOrder", payload: rsp_order }; @@ -176,20 +177,18 @@ fn register_push_event_handler(){ event); }); - let reg_rsp_order_ok = td_api::EventHandler::OnRtnTrade(move |rsp_trade| { - debug!("td_api::EventHandler::OnRtnTrade, rsp_trade: {:?}", - rsp_trade); - - let event_str = serde_json::to_string(&rsp_trade).unwrap(); + let _reg_rsp_trade_ok = td_api::EventHandler::OnRtnTrade(move |rsp_trade| { + + debug!("td_api::EventHandler::OnRtnTrade, rsp_trade: {:?}",rsp_trade); - let event = Push_Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRtnTrade", payload: rsp_trade }; - debug!("td_api::EventHandler::OnRtnTrade: push_event {:?}", - event); + debug!("td_api::EventHandler::OnRtnTrade: push_event {:?}",event); }); } @@ -298,35 +297,30 @@ fn td_confirm_settlement_info() ->i32 { pub async fn td_query_settlement_info(_req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; if *is_ready { - let rsp_result = query_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + let serde_result = query_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()); + + let rsp_json = serde_result?; - rsp_json = rsp_result?; - }else{ + common_response(rsp_json).await + }else { let rsp_result = RspResult{ code: 1100, msg: "Trader Not Ready".to_owned(), result: "".to_string() }; - rsp_json = serde_json::to_string(&rsp_result)? - } - - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; + let rsp_json = serde_json::to_string(&rsp_result)?; - Ok(response) + common_response(rsp_json).await + } } pub async fn td_query_instrument(req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); let is_ready = CTP_TD_READY.lock().await; if *is_ready { @@ -336,7 +330,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; let instrument_op = instrument_map.get(&instrument_id); - rsp_json = match instrument_op { + let rsp_json = match instrument_op { None => { let rsp_result = RspResult{ code: 1404, @@ -357,6 +351,8 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge serde_json::to_string(&rsp_result)? } }; + + common_response(rsp_json).await }else{ let rsp_result = RspResult{ @@ -365,59 +361,24 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge result: "".to_string() }; - rsp_json = serde_json::to_string(&rsp_result)? + let rsp_json = serde_json::to_string(&rsp_result)?; + + common_response(rsp_json).await } - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; - - Ok(response) + } -// pub async fn td_query_all_instruments(_req: Request) -> Result,GenericError> { - -// let mut rsp_json = "{}".to_string(); -// let is_ready = CTP_TD_READY.lock().await; - -// if *is_ready { - -// let instrument_map = CTP_INSTRUMENT_HASHMAP.lock().await; -// let rsp_result = RspResult{ -// code: 1200, -// msg: "".to_owned(), -// result: &(*instrument_map) -// }; - -// rsp_json = serde_json::to_string(&rsp_result)?; -// }else{ - -// let rsp_result = RspResult{ -// code: 1100, -// msg: "Trader Not Ready".to_owned(), -// result: "".to_string() -// }; - -// rsp_json = serde_json::to_string(&rsp_result)? -// } - -// let response = Response::builder() -// .status(StatusCode::OK) -// .header(header::CONTENT_TYPE, "application/json") -// .body(Body::from(rsp_json))?; - -// Ok(response) -// } - pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; if *is_ready { let rsp_result = query_trading_account(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap()); - rsp_json = rsp_result?; + let rsp_json = rsp_result?; + + common_response(rsp_json).await }else{ let rsp_result = RspResult{ code: 1100, @@ -425,25 +386,24 @@ pub async fn td_query_trading_account(_req: Request) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; if *is_ready { let rsp_result = query_investor_position(CTP_USER_ID.get().unwrap(), CTP_BROKER_ID.get().unwrap()); - rsp_json = rsp_result?; + let rsp_json = rsp_result?; + + common_response(rsp_json).await }else{ let rsp_result = RspResult{ code: 1100, @@ -451,19 +411,14 @@ pub async fn td_query_investor_position(_req: Request) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; if *is_ready { @@ -473,7 +428,9 @@ pub async fn td_query_commission_rate(req: Request) -> Result) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -512,7 +464,9 @@ pub async fn td_send_market_order(req: Request) -> Result,G req.direction.as_str(), req.open_close.as_str(), req.volume); - rsp_json = rsp_result?; + let rsp_json = rsp_result?; + + common_response(rsp_json).await }else{ let rsp_result = RspResult { code: 1100, @@ -520,19 +474,14 @@ pub async fn td_send_market_order(req: Request) -> Result,G result: "".to_string() }; - rsp_json = serde_json::to_string(&rsp_result)? - } - - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; + let rsp_json = serde_json::to_string(&rsp_result)?; - Ok(response) + common_response(rsp_json).await + } } ///2.限价单 pub async fn td_send_limit_order(req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -552,7 +501,9 @@ pub async fn td_send_limit_order(req: Request) -> Result,Ge req.open_close.as_str(), req.volume, req.limit_price); - rsp_json = rsp_result?; + let rsp_json = rsp_result?; + + common_response(rsp_json).await }else{ let rsp_result = RspResult { code: 1100, @@ -560,19 +511,14 @@ pub async fn td_send_limit_order(req: Request) -> Result,Ge result: "".to_string() }; - rsp_json = serde_json::to_string(&rsp_result)? - } - - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; + let rsp_json = serde_json::to_string(&rsp_result)?; - Ok(response) + common_response(rsp_json).await + } } ///3.触价单 pub async fn td_send_market_if_touched_order(req: Request) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -593,7 +539,9 @@ pub async fn td_send_market_if_touched_order(req: Request) -> Result) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -636,7 +581,9 @@ pub async fn td_send_stop_limit_order(req: Request) -> Result) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -678,7 +621,8 @@ pub async fn td_send_fill_and_kill_limit_order(req: Request) -> Result) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; *order_def_id = *order_def_id + 1; @@ -719,7 +658,10 @@ pub async fn td_send_fill_or_kill_limit_order(req: Request) -> Result) -> Result) -> Result,GenericError> { - let mut rsp_json = "{}".to_string(); + let is_ready = CTP_TD_READY.lock().await; if *is_ready { @@ -757,7 +694,9 @@ pub async fn td_cancel_order(req: Request) -> Result,Generi req.exchange_id.as_str(), req.order_sys_id.as_str(), req.cancel_action.as_str()); - rsp_json = rsp_result?; + let rsp_json = rsp_result?; + + common_response(rsp_json).await }else{ let rsp_result = RspResult { code: 1100, @@ -765,13 +704,8 @@ pub async fn td_cancel_order(req: Request) -> Result,Generi result: "".to_string() }; - rsp_json = serde_json::to_string(&rsp_result)? - } - - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; + let rsp_json = serde_json::to_string(&rsp_result)?; - Ok(response) + common_response(rsp_json).await + } } \ No newline at end of file diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index e26b580..e595877 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -2,7 +2,7 @@ use hyper::Client; use hyper::{Body, Method, Request,Response}; use std::env; -use crate::utils::ctperror::{GenericError}; +use crate::utils::ctputil::{GenericError}; static DAPR_STATESTORE_NAME:&str = "statestore"; static DAPR_PUBSUB_NAME:&str = "pubsub"; diff --git a/src/utils/ctperror.rs b/src/utils/ctputil.rs similarity index 91% rename from src/utils/ctperror.rs rename to src/utils/ctputil.rs index 3e8d26d..5509d09 100644 --- a/src/utils/ctperror.rs +++ b/src/utils/ctputil.rs @@ -3,7 +3,7 @@ use hyper::{header,Body, Response, StatusCode}; use rust_ctp::td_api; use crate::ctp_client::CTP_CLIENT_ID; -use crate::ctp_client::Push_Event; +use crate::ctp_client::PushEvent; use super::super::result::RspResult; use super::super::result::EmptyResult; @@ -40,12 +40,16 @@ pub async fn unprocessable_request() -> Result,GenericError> { result: EmptyResult{} }; - let json = serde_json::to_string(&rsp_result)?; + let rsp_json = serde_json::to_string(&rsp_result)?; + common_response(rsp_json).await +} + +pub async fn common_response(rsp_json: String) -> Result,GenericError> { let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(json))?; + .body(Body::from(rsp_json))?; Ok(response) } @@ -91,8 +95,9 @@ pub fn recover_on_error_push_event_handler() { let event_str = serde_json::to_string(&rsp_info).unwrap(); - let error_event = Push_Event { + let error_event = PushEvent { client: CTP_CLIENT_ID, + topic: "todo".to_owned(), name: "OnRspError", payload: event_str }; diff --git a/src/utils/mod.rs b/src/utils/mod.rs index 6f7cfa4..902f7d8 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1,4 +1,4 @@ -pub mod ctperror; +pub mod ctputil; use std::collections::HashMap; use hyper::{Body,Request}; -- Gitee From 7480b3da913c5555969271eaf909661cb14de5d6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 1 Nov 2021 18:15:15 +0800 Subject: [PATCH 62/75] modified --- Cargo.toml | 2 +- src/ctp_client/mdcontroller.rs | 85 ++++++++++++++++------------------ 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index bc64be7..d8243ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.0" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.1" } \ No newline at end of file diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index b8c03d2..8bbfbec 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -36,17 +36,6 @@ static CTP_SUB_INSTRUMENTS: Lazy>> = Lazy::new(|| { /// ctp_access main.rs fn main(){} pub async fn init(){ - // debug!("start; init sub_instrument_list into statestore"); - // let res = save_state_to_statestore(CTP_SUB_INSTRUMENTS_STATE_KEY.to_string(),CTP_EMPTY_SUB_INSTRUMENTS_STATE_VALUE.to_string()).await; - // debug!("end; init sub_instrument_list"); - // - // match res { - // Ok(_) => {}, - // Err(e) => { - // panic!("init sub_instrument_list error:{}",e); - // } - // } - info!("start; init CTP market client connection, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); md_connect(); debug!("end; init CTP market client connection"); @@ -164,9 +153,6 @@ pub async fn subscribe(req: Request) -> Result,GenericError debug!("Before subscribe,check md is_ready: {}",is_ready); - let mut ret = 0; - let mut ret_msg = "".to_string(); - let full_body = hyper::body::to_bytes(req.into_body()).await?; let body_str = String::from_utf8(full_body.to_vec())?; let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; @@ -204,29 +190,36 @@ pub async fn subscribe(req: Request) -> Result,GenericError event_sinker.sink(event); }); - ret = md_api::subscribe(&sub_req.instrument_ids); + let ret = md_api::subscribe(&sub_req.instrument_ids); debug!("send subscribe req, return code: {}",ret); warn!("Only finish to send subscribe req, we have not receive OnRspSubMarketData event yet!"); + + let rsp_result = RspResult{ + code: 200, + msg: "".to_owned(), + result: ret + }; + + let rsp_json = serde_json::to_string(&rsp_result)?; + + common_response(rsp_json).await }else { warn!("Do not send subscribe req , because md is_ready: {}",is_ready); - ret = -1; - ret_msg = "Md client have not ready,please fix first.".to_string(); + let rsp_result = RspResult{ + code: 200, + msg: "Md client have not ready,please fix first.".to_owned(), + result: -1 + }; + + let rsp_json = serde_json::to_string(&rsp_result)?; + + common_response(rsp_json).await } - - let rsp_result = RspResult{ - code: 200, - msg: ret_msg, - result: ret - }; - - let rsp_json = serde_json::to_string(&rsp_result)?; - - common_response(rsp_json).await } pub async fn unsubscribe(req: Request) -> Result,GenericError> { @@ -234,9 +227,6 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr debug!("Before unsubscribe,check md client is_ready: {}",is_ready); - let mut ret = 0; - let mut ret_msg = "".to_string(); - let full_body = hyper::body::to_bytes(req.into_body()).await?; let body_str = String::from_utf8(full_body.to_vec())?; let sub_req: SubscribeRequest = serde_json::from_str(&body_str)?; @@ -255,29 +245,36 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr rsp_specific_instrument.InstrumentID,rsp_info,n_request_id,b_is_last); }); - ret = md_api::unsubscribe(&sub_req.instrument_ids); + let ret = md_api::unsubscribe(&sub_req.instrument_ids); debug!("send unsubscribe req, return code: {}",ret); warn!("Only finish to send unsubscribe req, we have not receive OnRspUnSubMarketData event yet!"); - + + let rsp_result = RspResult{ + code: 1200, + msg: "".to_owned(), + result: ret + }; + + let rsp_json = serde_json::to_string(&rsp_result)?; + + common_response(rsp_json).await }else { warn!("Do not send unsubscribe req, because md is_ready: {}",is_ready); - ret = -1; - ret_msg = "MD client have not ready,please fix.".to_string(); + let rsp_result = RspResult{ + code: 1500, + msg: "MD client have not ready,please fix.".to_string(), + result: -1 + }; + + let rsp_json = serde_json::to_string(&rsp_result)?; + + common_response(rsp_json).await } - - let rsp_result = RspResult{ - code: 200, - msg: ret_msg, - result: ret - }; - - let rsp_json = serde_json::to_string(&rsp_result)?; - - common_response(rsp_json).await + } fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { -- Gitee From 41680806453c5eaef043e3b72175a35d2840c273 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 2 Nov 2021 00:01:34 +0800 Subject: [PATCH 63/75] modified readme & NQ_BOT_ID topic --- README.md | 2 +- src/ctp_client/mdcontroller.rs | 7 +------ src/utils/ctputil.rs | 7 ++++++- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8c52f84..e3813e1 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 - docker运行命令 ``` -docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access noquant/ctp_access:valgrind-cargoconfig-gitstore-rust1.54.0-etcprofile-ctpbashrcenv-ctpaccesslib-nettools +docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/octopus/ctp_access:/ctp_access noquant/ctp_access:valgrind-cargoconfig-gitstore-rust1.54.0-etcprofile-ctpenv-nqbot-ctpaccesslib-nettools ``` - 根据Simnow开盘时间/非开盘时间更改环境变量CTP_MARKET_FRONT_ADDR与CTP_TRADE_FRONT_ADDR diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 8bbfbec..930b3c1 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -7,7 +7,7 @@ use super::{CTP_CLIENT_ID, CTP_BROKER_ID, CTP_USER_PASSWORD}; -use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response}; +use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response,get_depth_market_data_topic}; ////////CTP_Access Dependency//////// @@ -274,11 +274,6 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr common_response(rsp_json).await } - -} - -fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { - format!("{}-{}",client_id,instrument_id) } pub async fn get_sub_instruments() -> Result,GenericError> { diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index 5509d09..1a99ef3 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -114,5 +114,10 @@ pub fn recover_on_error_push_event_handler() { pub fn get_error_event_topic(client_id:&str) -> String { let nq_bot_id = env::var("NQ_BOT_ID").expect("Ops,Error for Env Var NQ_BOT_ID"); - format!("{}-{}",client_id,nq_bot_id) + format!("{}-{}",nq_bot_id,client_id) +} + +pub fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { + let nq_bot_id = env::var("NQ_BOT_ID").expect("Ops,Error for Env Var NQ_BOT_ID"); + format!("{}-{}-{}",nq_bot_id,client_id,instrument_id) } \ No newline at end of file -- Gitee From 549ba0c869d3cde998d32516717fd9fdae607e04 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 2 Nov 2021 09:25:08 +0800 Subject: [PATCH 64/75] fixed some warning --- src/ctp_client/query_instruments.rs | 2 +- src/ctp_client/query_investor_position.rs | 6 ++++-- src/ctp_client/query_settlement_info.rs | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 0a9f946..b1df66a 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -11,7 +11,7 @@ use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; //查询所有交易标的 pub async fn query_instruments() -> i32 { - let mut ret = 0; + let mut ret; let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 637c1c5..87208f2 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -14,8 +14,8 @@ use super::CTP_CLIENT_ID; //sync func about thread-safely pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { - let mut ret= 0; - let mut ret_msg = "".to_string(); + let mut ret; + let mut ret_msg; let mut payload = "{}".to_string(); //let rsp_settlement_info:Value = serde_json::from_str(&payload).expect("query_settlement_info deserialize error!"); @@ -87,6 +87,8 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { }else{ let received_event = rx.recv().unwrap(); + ret_msg = "".to_owned(); + if received_event.name == "OnRspError" { ret = -1; ret_msg = format!("query_investor_position error"); diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index c18f0d0..d2dbdfe 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -13,8 +13,8 @@ use super::CTP_CLIENT_ID; //sync func about thread-safely pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { - let mut ret= 0; - let mut ret_msg = "".to_string(); + let mut ret; + let mut ret_msg; let mut com_rsp_settlement_info = RspSettlementInfoField { TradingDay: "".to_string(), @@ -94,7 +94,8 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { ret_msg = format!("query_settlement_info error, ret:{}, msg: {}",ret,api_return_code(ret)); }else{ - + ret_msg = "".to_owned(); + let mut event_list = Vec::new(); loop { let received_event = rx.recv().unwrap(); -- Gitee From 6e2a6e8c6752f72581644ac83217e8c416785680 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 4 Nov 2021 16:01:33 +0800 Subject: [PATCH 65/75] modified dapr topic --- src/ctp_client/cancel_order.rs | 6 +++--- src/ctp_client/mdcontroller.rs | 2 +- src/utils/ctputil.rs | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index a74f873..78bf20b 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -43,7 +43,7 @@ pub fn cancel_order(user_id:&str, let event_json = serde_json::to_string(&event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + let error_event_topic = get_error_event_topic(); debug!("td_api::EventHandler::OnRspError. push_event to DAPR, event_topic:{}, event: {:?}",error_event_topic,event); let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); }); @@ -71,7 +71,7 @@ pub fn cancel_order(user_id:&str, let event_json = serde_json::to_string(&event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + let error_event_topic = get_error_event_topic(); debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); @@ -100,7 +100,7 @@ pub fn cancel_order(user_id:&str, let event_json = serde_json::to_string(&event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); - let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + let error_event_topic = get_error_event_topic(); debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 930b3c1..7c60ac6 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -177,7 +177,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError depth_market_data.TradingDay,depth_market_data.InstrumentID,depth_market_data.LastPrice ); - let event_topic = get_depth_market_data_topic(CTP_CLIENT_ID,&depth_market_data.InstrumentID); + let event_topic = get_depth_market_data_topic(); let event = PushEvent{ client: CTP_CLIENT_ID, diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index 1a99ef3..d79a1d5 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -104,7 +104,7 @@ pub fn recover_on_error_push_event_handler() { debug!("td_api::EventHandler::OnRspError: push error event {:?}",error_event); - let error_event_topic = get_error_event_topic(CTP_CLIENT_ID); + let error_event_topic = get_error_event_topic(); let error_event_json = serde_json::to_string(&error_event).unwrap(); let rt = tokio::runtime::Runtime::new().unwrap(); @@ -112,12 +112,12 @@ pub fn recover_on_error_push_event_handler() { }); } -pub fn get_error_event_topic(client_id:&str) -> String { +pub fn get_error_event_topic() -> String { let nq_bot_id = env::var("NQ_BOT_ID").expect("Ops,Error for Env Var NQ_BOT_ID"); - format!("{}-{}",nq_bot_id,client_id) + format!("CTP_ERROR-{}",nq_bot_id) } -pub fn get_depth_market_data_topic(client_id:&str,instrument_id: &String) -> String { +pub fn get_depth_market_data_topic() -> String { let nq_bot_id = env::var("NQ_BOT_ID").expect("Ops,Error for Env Var NQ_BOT_ID"); - format!("{}-{}-{}",nq_bot_id,client_id,instrument_id) + format!("CTP-MD-{}",nq_bot_id) } \ No newline at end of file -- Gitee From 61cf51b6859f55f13f89af60aa38babc05bc8c5d Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Fri, 5 Nov 2021 17:41:52 +0800 Subject: [PATCH 66/75] add ctp error --- README.md | 4 ++-- src/ctperror.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/main.rs | 1 + src/utils/ctputil.rs | 41 +++++++++++++++++++++++------------------ 4 files changed, 70 insertions(+), 20 deletions(-) create mode 100644 src/ctperror.rs diff --git a/README.md b/README.md index e3813e1..d6847d0 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ helper = store - RUST_LOG=trace - 面对需要跟踪进程,线程,函数级别 -#### Simnow 开盘时间 +#### Simnow 交易时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 - CTP_USER_ID=142909 @@ -78,7 +78,7 @@ helper = store - CTP_AUTH_CODE=0000000000000000 - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112 -#### Simnow 非开盘时间 +#### Simnow 非交易时间(下午4:00开始可用) - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 diff --git a/src/ctperror.rs b/src/ctperror.rs new file mode 100644 index 0000000..3ab7019 --- /dev/null +++ b/src/ctperror.rs @@ -0,0 +1,44 @@ + +//借助From Trait, 把T当初第三方函数Error,就可以统一映射到enum CTPError中 +//通过?返回第三方函数Error并且自动转换 +#[derive(Debug)] +pub enum CTPError { + SerdeJsonError(i32,serde_json::error::Error), + HttpError(i32,http::Error), + //IoError(std::io::Error), +} + +impl std::error::Error for CTPError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + match &self { + CTPError::SerdeJsonError(_,ref e) => Some(e), + CTPError::HttpError(_,ref e) => Some(e), + } + } +} + +impl std::fmt::Display for CTPError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + + match &self { + CTPError::SerdeJsonError(_,ref e) => e.fmt(f), + CTPError::HttpError(_,ref e) => e.fmt(f), + //CustomError::Utf8Error(ref e) => e.fmt(f), + //CustomError::ParseIntError(ref e) => e.fmt(f), + } + } +} + +impl From for CTPError { + fn from(e: serde_json::error::Error) -> Self { + CTPError::SerdeJsonError(4001,e) + } +} + +impl From for CTPError { + fn from(e: http::Error) -> Self { + CTPError::HttpError(4001,e) + } +} + + diff --git a/src/main.rs b/src/main.rs index 2a39ec6..94861db 100755 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,7 @@ #[macro_use] extern crate log; +mod ctperror; mod ctp_client; mod routes; mod request; diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index d79a1d5..83bbbaa 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -3,37 +3,36 @@ use hyper::{header,Body, Response, StatusCode}; use rust_ctp::td_api; use crate::ctp_client::CTP_CLIENT_ID; +use crate::ctperror::CTPError; use crate::ctp_client::PushEvent; use super::super::result::RspResult; use super::super::result::EmptyResult; use std::{env}; -use std::error::Error; -use serde::{Serialize}; use crate::dapr::component_client::pub_event_to_topic; pub type GenericError = Box; -#[derive(Debug,Serialize)] -pub struct CTPError{ - pub code: i32, - pub msg: String -} +// #[derive(Debug,Serialize)] +// pub struct CTPError{ +// pub code: i32, +// pub msg: String +// } -///实现Display的trait,并实现fmt方法 -impl std::fmt::Display for CTPError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let err_json= serde_json::to_string(self).unwrap_or("{}".to_owned()); - write!(f, "{}",err_json) - } -} +// ///实现Display的trait,并实现fmt方法 +// impl std::fmt::Display for CTPError { +// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +// let err_json= serde_json::to_string(self).unwrap_or("{}".to_owned()); +// write!(f, "{}",err_json) +// } +// } -///实现Error的trait,因为没有子Error,不需要覆盖source()方法 -impl Error for CTPError {} +// ///实现Error的trait,因为没有子Error,不需要覆盖source()方法 +// impl Error for CTPError {} //not adapt Struct defined in request -pub async fn unprocessable_request() -> Result,GenericError> { +pub async fn unprocessable_request() -> Result,CTPError> { let rsp_result = RspResult{ code: 1422, msg: "Request Error: Unprocessable entity, please check.".to_owned(), @@ -42,7 +41,13 @@ pub async fn unprocessable_request() -> Result,GenericError> { let rsp_json = serde_json::to_string(&rsp_result)?; - common_response(rsp_json).await + //common_response(rsp_json).await + let response = Response::builder() + .status(StatusCode::OK) + .header(header::CONTENT_TYPE, "application/json") + .body(Body::from(rsp_json))?; + + Ok(response) } pub async fn common_response(rsp_json: String) -> Result,GenericError> { -- Gitee From fa798f8c8256af82c03b1d4694be0883323824fb Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sun, 7 Nov 2021 12:07:28 +0800 Subject: [PATCH 67/75] add CTP Error --- README.md | 2 +- src/ctp_client/mdcontroller.rs | 11 +++++---- src/ctp_client/tdcontroller.rs | 27 +++++++++++---------- src/ctperror.rs | 26 ++++++++++++++++---- src/dapr/component_client.rs | 44 ++++++---------------------------- src/utils/ctputil.rs | 33 ++++--------------------- 6 files changed, 55 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index d6847d0..8f64e69 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ helper = store - CTP_AUTH_CODE=0000000000000000 - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112 -#### Simnow 非交易时间(下午4:00开始可用) +#### Simnow 非交易时间(交易日下午4:00开始可用或者周末可用) - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 7c60ac6..0bd4d13 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -7,7 +7,8 @@ use super::{CTP_CLIENT_ID, CTP_BROKER_ID, CTP_USER_PASSWORD}; -use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response,get_depth_market_data_topic}; +use crate::ctperror::CTPResult; +use crate::utils::ctputil::{on_front_disconnected_reason,common_response,get_depth_market_data_topic}; ////////CTP_Access Dependency//////// @@ -112,7 +113,7 @@ fn md_login() ->i32 { CTP_BROKER_ID.get().unwrap()) } -pub async fn get_trading_day() -> Result,GenericError> { +pub async fn get_trading_day() -> CTPResult> { let start = Instant::now(); let is_ready = CTP_MD_READY.lock().await; @@ -147,7 +148,7 @@ pub async fn get_trading_day() -> Result,GenericError> { } ///登录成功才可以订阅 -pub async fn subscribe(req: Request) -> Result,GenericError> { +pub async fn subscribe(req: Request) -> CTPResult> { let is_ready = CTP_MD_READY.lock().await; @@ -222,7 +223,7 @@ pub async fn subscribe(req: Request) -> Result,GenericError } } -pub async fn unsubscribe(req: Request) -> Result,GenericError> { +pub async fn unsubscribe(req: Request) -> CTPResult> { let is_ready = CTP_MD_READY.lock().await; debug!("Before unsubscribe,check md client is_ready: {}",is_ready); @@ -276,7 +277,7 @@ pub async fn unsubscribe(req: Request) -> Result,GenericErr } } -pub async fn get_sub_instruments() -> Result,GenericError> { +pub async fn get_sub_instruments() -> CTPResult> { let ctp_instruments_map = CTP_SUB_INSTRUMENTS.lock().await; let mut instruments:Vec = Vec::new(); diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index f807a2f..3151bfb 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -14,7 +14,8 @@ use super::send_fill_or_kill_limit_order::*; use super::cancel_order::*; use crate::result::RspResult; -use crate::utils::ctputil::{GenericError,on_front_disconnected_reason,common_response}; +use crate::ctperror::CTPResult; +use crate::utils::ctputil::{on_front_disconnected_reason,common_response}; use super::super::request::{SendMarketOrderRequest, SendLimitOrderRequest, SendMarketIfTouchedOrderRequest, @@ -295,7 +296,7 @@ fn td_confirm_settlement_info() ->i32 { td_api::confirm_settlement_info(CTP_USER_ID.get().unwrap(),CTP_BROKER_ID.get().unwrap()) } -pub async fn td_query_settlement_info(_req: Request) -> Result,GenericError> { +pub async fn td_query_settlement_info(_req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; @@ -319,7 +320,7 @@ pub async fn td_query_settlement_info(_req: Request) -> Result) -> Result,GenericError> { +pub async fn td_query_instrument(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; @@ -369,7 +370,7 @@ pub async fn td_query_instrument(req: Request) -> Result,Ge } -pub async fn td_query_trading_account(_req: Request) -> Result,GenericError> { +pub async fn td_query_trading_account(_req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; @@ -394,7 +395,7 @@ pub async fn td_query_trading_account(_req: Request) -> Result) -> Result,GenericError> { +pub async fn td_query_investor_position(_req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; @@ -417,7 +418,7 @@ pub async fn td_query_investor_position(_req: Request) -> Result) -> Result,GenericError> { +pub async fn td_query_commission_rate(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; @@ -444,7 +445,7 @@ pub async fn td_query_commission_rate(req: Request) -> Result) -> Result,GenericError> { +pub async fn td_send_market_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -480,7 +481,7 @@ pub async fn td_send_market_order(req: Request) -> Result,G } } ///2.限价单 -pub async fn td_send_limit_order(req: Request) -> Result,GenericError> { +pub async fn td_send_limit_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -517,7 +518,7 @@ pub async fn td_send_limit_order(req: Request) -> Result,Ge } } ///3.触价单 -pub async fn td_send_market_if_touched_order(req: Request) -> Result,GenericError> { +pub async fn td_send_market_if_touched_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -558,7 +559,7 @@ pub async fn td_send_market_if_touched_order(req: Request) -> Result) -> Result,GenericError> { +pub async fn td_send_stop_limit_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -599,7 +600,7 @@ pub async fn td_send_stop_limit_order(req: Request) -> Result) -> Result,GenericError> { +pub async fn td_send_fill_and_kill_limit_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -637,7 +638,7 @@ pub async fn td_send_fill_and_kill_limit_order(req: Request) -> Result) -> Result,GenericError> { +pub async fn td_send_fill_or_kill_limit_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; let mut order_def_id = CTP_TD_ORDER_DEF_ID.lock().await; @@ -675,7 +676,7 @@ pub async fn td_send_fill_or_kill_limit_order(req: Request) -> Result) -> Result,GenericError> { +pub async fn td_cancel_order(req: Request) -> CTPResult>{ let is_ready = CTP_TD_READY.lock().await; diff --git a/src/ctperror.rs b/src/ctperror.rs index 3ab7019..80a9e19 100644 --- a/src/ctperror.rs +++ b/src/ctperror.rs @@ -1,11 +1,15 @@ + +pub type CTPResult = std::result::Result; + //借助From Trait, 把T当初第三方函数Error,就可以统一映射到enum CTPError中 //通过?返回第三方函数Error并且自动转换 #[derive(Debug)] pub enum CTPError { SerdeJsonError(i32,serde_json::error::Error), HttpError(i32,http::Error), - //IoError(std::io::Error), + HyperError(i32,hyper::Error), + FromUtf8Error(i32,std::string::FromUtf8Error), } impl std::error::Error for CTPError { @@ -13,6 +17,8 @@ impl std::error::Error for CTPError { match &self { CTPError::SerdeJsonError(_,ref e) => Some(e), CTPError::HttpError(_,ref e) => Some(e), + CTPError::HyperError(_,ref e)=>Some(e), + CTPError::FromUtf8Error(_,ref e)=>Some(e), } } } @@ -23,8 +29,8 @@ impl std::fmt::Display for CTPError { match &self { CTPError::SerdeJsonError(_,ref e) => e.fmt(f), CTPError::HttpError(_,ref e) => e.fmt(f), - //CustomError::Utf8Error(ref e) => e.fmt(f), - //CustomError::ParseIntError(ref e) => e.fmt(f), + CTPError::HyperError(_,ref e)=>e.fmt(f), + CTPError::FromUtf8Error(_,ref e)=>e.fmt(f), } } } @@ -37,7 +43,19 @@ impl From for CTPError { impl From for CTPError { fn from(e: http::Error) -> Self { - CTPError::HttpError(4001,e) + CTPError::HttpError(4002,e) + } +} + +impl From for CTPError { + fn from(e: hyper::Error) -> Self { + CTPError::HyperError(4004,e) + } +} + +impl From for CTPError { + fn from(e: std::string::FromUtf8Error) -> Self { + CTPError::FromUtf8Error(4005,e) } } diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index e595877..3e1253c 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -2,12 +2,12 @@ use hyper::Client; use hyper::{Body, Method, Request,Response}; use std::env; -use crate::utils::ctputil::{GenericError}; +use crate::ctperror::CTPError; static DAPR_STATESTORE_NAME:&str = "statestore"; static DAPR_PUBSUB_NAME:&str = "pubsub"; -pub async fn fetch_state_from_statestore(state_key:String) -> Result,GenericError> { +pub async fn fetch_state_from_statestore(state_key:String) -> Result,CTPError> { let client = Client::new(); let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); @@ -22,20 +22,11 @@ pub async fn fetch_state_from_statestore(state_key:String) -> Result { - return Ok(r); - }, - Err(e) =>{ - return Err(Box::new(e)); - } - } + Ok(client.request(req).await?) } /// 参数2: json_value 必须是json格式字符串 -pub async fn save_state_to_statestore(key: String,json_value:String) -> Result,GenericError> { +pub async fn save_state_to_statestore(key: String,json_value:String) -> Result,CTPError> { let client = Client::new(); @@ -55,19 +46,10 @@ pub async fn save_state_to_statestore(key: String,json_value:String) -> Result { - return Ok(r); - }, - Err(e) =>{ - return Err(Box::new(e)); - } - } + Ok(client.request(req).await?) } -pub async fn pub_event_to_topic(topic: String,event_json:String) -> Result,GenericError> { +pub async fn pub_event_to_topic(topic: String,event_json:String) -> Result,CTPError> { let client = Client::new(); let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); @@ -82,18 +64,6 @@ pub async fn pub_event_to_topic(topic: String,event_json:String) -> Result { - return Ok(r); - }, - Err(e) =>{ - - error!("pub_event_to_topic Error:{}",e); - - return Err(Box::new(e)); - } - } + Ok(client.request(req).await?) } diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index 83bbbaa..e895985 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -3,7 +3,7 @@ use hyper::{header,Body, Response, StatusCode}; use rust_ctp::td_api; use crate::ctp_client::CTP_CLIENT_ID; -use crate::ctperror::CTPError; +use crate::ctperror::CTPResult; use crate::ctp_client::PushEvent; use super::super::result::RspResult; use super::super::result::EmptyResult; @@ -12,27 +12,10 @@ use std::{env}; use crate::dapr::component_client::pub_event_to_topic; -pub type GenericError = Box; - -// #[derive(Debug,Serialize)] -// pub struct CTPError{ -// pub code: i32, -// pub msg: String -// } - -// ///实现Display的trait,并实现fmt方法 -// impl std::fmt::Display for CTPError { -// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { -// let err_json= serde_json::to_string(self).unwrap_or("{}".to_owned()); -// write!(f, "{}",err_json) -// } -// } - -// ///实现Error的trait,因为没有子Error,不需要覆盖source()方法 -// impl Error for CTPError {} +//pub type GenericError = Box; //not adapt Struct defined in request -pub async fn unprocessable_request() -> Result,CTPError> { +pub async fn unprocessable_request() -> CTPResult> { let rsp_result = RspResult{ code: 1422, msg: "Request Error: Unprocessable entity, please check.".to_owned(), @@ -41,16 +24,10 @@ pub async fn unprocessable_request() -> Result,CTPError> { let rsp_json = serde_json::to_string(&rsp_result)?; - //common_response(rsp_json).await - let response = Response::builder() - .status(StatusCode::OK) - .header(header::CONTENT_TYPE, "application/json") - .body(Body::from(rsp_json))?; - - Ok(response) + common_response(rsp_json).await } -pub async fn common_response(rsp_json: String) -> Result,GenericError> { +pub async fn common_response(rsp_json: String) -> CTPResult> { let response = Response::builder() .status(StatusCode::OK) .header(header::CONTENT_TYPE, "application/json") -- Gitee From ef033a2f812d1e6e3570232eb2e3993607a95ca4 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Sun, 7 Nov 2021 22:37:12 +0800 Subject: [PATCH 68/75] unwrap check & modified --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 184 ++++++++++---------- src/ctp_client/mod.rs | 4 + src/ctp_client/query_commission_rate.rs | 194 +++++++++++++--------- src/ctp_client/query_instruments.rs | 171 ++++++++++--------- src/ctp_client/query_investor_position.rs | 181 ++++++++++---------- src/ctp_client/query_settlement_info.rs | 194 +++++++++++----------- src/ctp_client/tdcontroller.rs | 2 + src/dapr/component_client.rs | 33 +++- src/routes.rs | 16 +- 10 files changed, 518 insertions(+), 463 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d8243ef..79dbe87 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.1" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.2" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index 78bf20b..cb036b0 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -1,14 +1,15 @@ -use serde_json::Result; + use serde_json::Value; use rust_ctp::td_api; -use crate::dapr::component_client::pub_event_to_topic; +use crate::dapr::component_client::{pub_event_to_topic}; +use crate::ctperror::CTPResult; use crate::result::RspResult; use crate::utils::ctputil::{recover_on_error_push_event_handler,get_error_event_topic}; -use super::PushEvent; +use super::{PushEvent,PushEventSinker}; use super::CTP_CLIENT_ID; ///撤单 @@ -17,128 +18,127 @@ pub fn cancel_order(user_id:&str, exchange_id: &str, order_sys_id: &str, cancel_action:&str, - ) -> Result { + ) -> CTPResult { let mut ret= 0; let mut ret_msg = "".to_string(); - let payload = "{}".to_string(); + let reg_err_ok = on_rsp_error(); - td_api::EventHandler::UnRspError(); + //17.报单操作请求响应 + //如撤单操作的响应。交易核心返回含有错误的撤单操作响应 + //回应参数rsp_info就可以得知被拒原因 + let reg_bad_order_action_ok = on_rsp_order_action(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); + //18.报单操作错误响应 + //交易所在通过OnRspOrderAction检查后,会继续验证撤单指令的合法性,如果交易所认为该指令不合法,交易核心通过此函数转发交易所给出的错误 + let reg_err_order_action_ok = on_err_rtn_order_action(); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + if reg_err_ok && reg_bad_order_action_ok && reg_err_order_action_ok { - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: "todo".to_owned(), - name: "OnRspError", - payload: event_str - }; + ret = td_api::cancel_order(user_id, + broker_id, + exchange_id, + order_sys_id, + cancel_action); - let event_json = serde_json::to_string(&event).unwrap(); - let rt = tokio::runtime::Runtime::new().unwrap(); + if ret < 0 { + error!("cancel_order error, return code:{}",ret); + ret_msg = format!("cancel_order error, return code:{}",ret); + } + }else{ + warn!("please access for a while, cancel_order on_rsp_error:{}/on_rsp_order_action:{}/on_err_rtn_order_action:{} event handler is busy", + reg_err_ok,reg_bad_order_action_ok,reg_err_order_action_ok); - let error_event_topic = get_error_event_topic(); - debug!("td_api::EventHandler::OnRspError. push_event to DAPR, event_topic:{}, event: {:?}",error_event_topic,event); - let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); - }); + ret = -1; + ret_msg = "please access for a while,cancel_order too often.".to_string(); + } - if reg_err_ok { - //17.报单操作请求响应 - //如撤单操作的响应。交易核心返回含有错误的撤单操作响应 - //回应参数rsp_info就可以得知被拒原因 - let reg_bad_order_action_ok = td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { + td_api::EventHandler::UnRspOrderAction(); + td_api::EventHandler::UnErrRtnOrderAction(); + recover_on_error_push_event_handler(); - error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); - error!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}, n_request_id:{},b_is_last:{}", - rsp_input_order_action,n_request_id,b_is_last); + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: "".to_owned(), + }; - let event_str = serde_json::to_string(&rsp_info).unwrap(); + Ok(serde_json::to_string(&rsp_result)?) +} - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: "todo".to_owned(), - name: "OnRspError", - payload: event_str - }; +fn on_rsp_error() -> bool { + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at cancel_order, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); - let event_json = serde_json::to_string(&event).unwrap(); - let rt = tokio::runtime::Runtime::new().unwrap(); + let error_event_topic = get_error_event_topic(); - let error_event_topic = get_error_event_topic(); + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; - debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); + debug!("td_api::EventHandler::OnRspError at cancel_order. push_event to DAPR, event: {:?}",event); + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); - let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); + }) +} - }); +fn on_rsp_order_action() -> bool { - //18.报单操作错误响应 - //交易所在通过OnRspOrderAction检查后,会继续验证撤单指令的合法性,如果交易所认为该指令不合法,交易核心通过此函数转发交易所给出的错误 - let reg_err_order_action_ok = td_api::EventHandler::OnErrRtnOrderAction(move |rsp_order_action, rsp_info| { + td_api::EventHandler::OnRspOrderAction(move |rsp_input_order_action, rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnErrRtnOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); - error!("td_api::EventHandler::OnErrRtnOrderAction, rsp_order_action: {:?}",rsp_order_action); + error!("td_api::EventHandler::OnRspOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + error!("td_api::EventHandler::OnRspOrderAction, rsp_input_order_action: {:?}, n_request_id:{},b_is_last:{}", + rsp_input_order_action,n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_info).unwrap(); - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: "todo".to_owned(), - name: "OnRspError", - payload: event_str - }; + let error_event_topic = get_error_event_topic(); - + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; - let event_json = serde_json::to_string(&event).unwrap(); - let rt = tokio::runtime::Runtime::new().unwrap(); + debug!("td_api::EventHandler::OnRspOrderAction, covert to OnRspError. push event to DAPR, event: {:?}",event); - let error_event_topic = get_error_event_topic(); - - debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError. push event to DAPR,event_topic:{}, event: {:?}",error_event_topic,event); + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); - let _ = rt.block_on(pub_event_to_topic(error_event_topic,event_json)); - }); + }) +} - if reg_bad_order_action_ok && reg_err_order_action_ok { +fn on_err_rtn_order_action() -> bool { - ret = td_api::cancel_order(user_id, - broker_id, - exchange_id, - order_sys_id, - cancel_action); + td_api::EventHandler::OnErrRtnOrderAction(move |rsp_order_action, rsp_info| { - if ret < 0 { - error!("cancel_order error, return code:{}",ret); - ret_msg = format!("cancel_order error, return code:{}",ret); - } + error!("td_api::EventHandler::OnErrRtnOrderAction, ErrorID: {},ErrorMsg: {}", rsp_info.ErrorID, rsp_info.ErrorMsg); + error!("td_api::EventHandler::OnErrRtnOrderAction, rsp_order_action: {:?}",rsp_order_action); - td_api::EventHandler::UnRspOrderAction(); - td_api::EventHandler::UnErrRtnOrderAction(); - recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - warn!("cancel_order OnRspOrderAction event handler is busy,please access for a while"); - ret = -1; - ret_msg = "cancel_order too often,please access for a while".to_string(); - } - } + let error_event_topic = get_error_event_topic(); - let rsp_input_order_action:Value = serde_json::from_str(&payload).expect("cancel_order deserialize error!"); + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: rsp_input_order_action - }; + debug!("td_api::EventHandler::OnErrRtnOrderAction, covert to OnRspError. push event to DAPR, event: {:?}",event); - serde_json::to_string(&rsp_result) -} + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + }) +} \ No newline at end of file diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 1d23206..96a2806 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -48,6 +48,9 @@ impl EventSender for InnerEventSender { pub struct DaprEventSender; impl EventSender for DaprEventSender { fn send(&self,event_topic:String,event_json: String){ + + debug!("Push Event to Dapr, Topic:{}, JSON:{}", event_topic,event_json); + let rt = tokio::runtime::Runtime::new().unwrap(); let _ = rt.block_on(pub_event_to_topic(event_topic,event_json)); } @@ -79,6 +82,7 @@ impl PushEventSinker { fn sink(&self,event: PushEvent){ let event_json = serde_json::to_string(&event).unwrap(); + self.sinker.send(event.topic,event_json); } } diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index 9839e61..bc59fd3 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -4,117 +4,149 @@ use serde_json::Value; use rust_ctp::td_api; use std::sync::mpsc; +use crate::ctperror::CTPResult; use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::Event; use super::CTP_CLIENT_ID; -pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> Result { +use super::{PushEvent,PushEventSinker}; +use rust_ctp::api_struct::rsp_instrument_commission_rate_field::RspInstrumentCommissionRateField; + +pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> CTPResult { let mut ret; let mut ret_msg = "".to_string(); - let mut payload = "{}".to_string(); let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); - td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); + let reg_err_ok = on_rsp_error(); + let reg_ok = on_rsp_qry_instrument_commission_rate(tx); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + if reg_err_ok && reg_ok { - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); - //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate - //so serde_json as Event - tx_rsp_err.send(event).unwrap(); - }); + if ret == 0 { + //Must received the same type + let received_event = rx.recv().unwrap(); - if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { + td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + recover_on_error_push_event_handler(); - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: received_event.payload + }; + + return Ok(serde_json::to_string(&rsp_result)?); + + }else{ + + error!("query_commission_rate error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_commission_rate error, ret:{}, msg: {}",ret,api_return_code(ret)); + } + }else{ + warn!("please access for a while, query_commission_rate OnRspError:{}/OnRspQryInstrumentCommissionRate:{} event handler is busy.", + reg_err_ok,reg_ok); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + ret = -1; + ret_msg = "query_commission_rate too often,please access for a while".to_string(); + } - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + recover_on_error_push_event_handler(); - tx.send(event).unwrap(); - }else{ - debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_instrument_commission_rate_field,n_request_id,b_is_last); + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: "".to_owned() + }; - let event_str = serde_json::to_string(&rsp_instrument_commission_rate_field).unwrap(); + return Ok(serde_json::to_string(&rsp_result)?); +} - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrumentCommissionRate", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - tx.send(event).unwrap(); - } - }); +fn on_rsp_error() -> bool { + + // td_api::EventHandler::UnRspError(); + // td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + // error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + // rsp_info.ErrorMsg,rsp_info.ErrorID, + // n_request_id,b_is_last); - if reg_ok { - ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); + // let event_str = serde_json::to_string(&rsp_info).unwrap(); - if ret != 0 { - error!("query_commission_rate error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_commission_rate error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); + // let event = Event { + // client: CTP_CLIENT_ID, + // name: "OnRspError", + // request_id: n_request_id, + // is_last: b_is_last, + // payload: event_str + // }; - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = format!("query_commission_rate error"); - } + // //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate + // //so serde_json as Event + // tx_rsp_err.send(event).unwrap(); + // }) - payload = received_event.payload; - } + td_api::EventHandler::UnRspError(); - td_api::EventHandler::UnRspQryInstrumentCommissionRate(); - recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - warn!("query_commission_rate OnRspQryInstrumentCommissionRate event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_commission_rate too often,please access for a while".to_string(); - } + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at query_commission_rate, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); - }else{ - warn!("query_commission_rate OnRspError event handler is busy,please access for a while"); + let error_event_topic = get_error_event_topic(); - ret = -1; - ret_msg = "query_commission_rate too often,please access for a while".to_string(); - } + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; - let rsp_commission_rate:Value = serde_json::from_str(&payload).expect("query_commission_rate deserialize error!"); + debug!("td_api::EventHandler::OnRspError at query_commission_rate. push_event: {:?}",event); + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + }) +} - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: rsp_commission_rate - }; +fn on_rsp_qry_instrument_commission_rate(tx: std::sync::mpsc::Sender>) -> bool { + + td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + + let error_event_topic = get_error_event_topic(); - serde_json::to_string(&rsp_result) + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + + }else{ + debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_commission_rate_field,n_request_id,b_is_last); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrumentCommissionRate", + request_id: n_request_id, + is_last: b_is_last, + payload: rsp_instrument_commission_rate_field + }; + + tx.send(event).unwrap(); + } + }) } \ No newline at end of file diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index b1df66a..35b433e 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -3,121 +3,118 @@ use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; use std::sync::mpsc; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::Event; use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; +use super::{PushEvent,PushEventSinker}; +use rust_ctp::api_struct::rsp_instrument_commission_rate_field::RspInstrumentCommissionRateField; + //查询所有交易标的 pub async fn query_instruments() -> i32 { let mut ret; let (tx, rx) = mpsc::channel(); - let tx_rsp_err = tx.clone(); + let reg_err_ok = on_rsp_error(); + let reg_ok = on_rsp_qry_instrument(tx); + + if reg_err_ok && reg_ok { + ret = td_api::query_instruments(); + + if ret == 0 { + let mut instrument_list = Vec::new(); + loop { + let received_event = rx.recv().unwrap(); + + instrument_list.push(received_event.payload.clone()); + + if received_event.is_last { + break; + } + } + + //Process All Instruments + let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().await; + for instrument in &instrument_list{ + //let rsp_instrument:RspInstrumentField = serde_json::from_str(event_str).unwrap(); + instrument_hashmap.insert(instrument.InstrumentID.clone(),instrument.clone()); + } + + }else{ + error!("query_instruments error, ret:{}, msg: {}", ret, api_return_code(ret)); + } + }else{ + error!("query_instruments error about can not bind OnRspError event handler "); + ret = -1; + } + + td_api::EventHandler::UnRspQryInstrument(); + recover_on_error_push_event_handler(); + + ret +} + + +fn on_rsp_error() -> bool { + td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError of query_instruments, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at query_instruments, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + let error_event_topic = get_error_event_topic(); - let event = Event { + let event = PushEvent { client: CTP_CLIENT_ID, + topic: error_event_topic, name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str + payload: rsp_info }; - //must use the same Event type in OnRspError as OnRspQryInstrument - //so serde_json as Event - tx_rsp_err.send(event).unwrap(); - }); - - if reg_err_ok { + debug!("td_api::EventHandler::OnRspError at query_instruments. push_event: {:?}",event); + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); - let reg_ok = td_api::EventHandler::OnRspQryInstrument(move |rsp_instrument_field, rsp_info, n_request_id, b_is_last| { + }) +} +fn on_rsp_qry_instrument(tx: std::sync::mpsc::Sender>) -> bool { + td_api::EventHandler::OnRspQryInstrument(move |rsp_instrument_field, rsp_info, n_request_id, b_is_last| { - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInstrument, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInstrument, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + let error_event_topic = get_error_event_topic(); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; - tx.send(event).unwrap(); - }else{ - debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_instrument_field, n_request_id, b_is_last); + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); - let event_str = serde_json::to_string(&rsp_instrument_field).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrument", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - } - }); - - if reg_ok { - ret = td_api::query_instruments(); - - if ret != 0 { - error!("query_instruments error, ret:{}, msg: {}", ret, api_return_code(ret)); - }else{ - let mut event_list = Vec::new(); - loop { - //debug!("query_instruments receiving event..."); - let received_event = rx.recv().unwrap(); - - // do not need to receive event - if received_event.name == "OnRspError" { - ret = -1; - event_list.clear(); - break; - }else { - event_list.push(received_event.payload); - } - - if received_event.is_last { - break; - } - } + }else{ + debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_instrument_field, n_request_id, b_is_last); - //Process All Instruments - let mut instrument_hashmap = CTP_INSTRUMENT_HASHMAP.lock().await; - for event_str in &event_list{ - let rsp_instrument:RspInstrumentField = serde_json::from_str(event_str).unwrap(); - instrument_hashmap.insert(rsp_instrument.InstrumentID.clone(),rsp_instrument); - } - } + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInstrument", + request_id: n_request_id, + is_last: b_is_last, + payload: rsp_instrument_field + }; - td_api::EventHandler::UnRspQryInstrument(); - recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - error!("query_instruments error about can not bing OnRspQryInstrument event handler"); - ret = -1; + tx.send(event).unwrap(); } - }else{ - error!("query_instruments error about can not bind OnRspError event handler "); - ret = -1; - } - - ret + }) } \ No newline at end of file diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 87208f2..89e9b50 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -6,106 +6,48 @@ use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::Event; use super::CTP_CLIENT_ID; +use crate::ctperror::CTPResult; +use super::{PushEvent,PushEventSinker}; +use rust_ctp::api_struct::rsp_investor_position_field::RspInvestorPositionField; + //sync func about thread-safely -pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { +pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult { let mut ret; - let mut ret_msg; - let mut payload = "{}".to_string(); - - //let rsp_settlement_info:Value = serde_json::from_str(&payload).expect("query_settlement_info deserialize error!"); + let mut ret_msg="".to_owned(); let (tx, rx) = mpsc::channel(); - let tx_err = tx.clone(); - td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError of query_investor_position, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + let reg_err_ok = on_rsp_error(); + let reg_ok = on_rsp_qry_investorPosition(tx); - //must use the same Event type in OnRspError as OnRspQryInvestorPosition - //so serde_json as Event - tx_err.send(event).unwrap(); - }); - - if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - }else{ - debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_investor_position_field,n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_investor_position_field).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInvestorPosition", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - } - }); - - if reg_ok { - ret = td_api::query_investor_position(user_id,broker_id); - - if ret != 0 { - error!("query_investor_position error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_investor_position error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); - - ret_msg = "".to_owned(); - - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = format!("query_investor_position error"); - } - - payload = received_event.payload; - } + if reg_err_ok && reg_ok{ + + ret = td_api::query_investor_position(user_id,broker_id); + if ret == 0 { + let received_event = rx.recv().unwrap(); + td_api::EventHandler::UnRspQryInvestorPosition(); recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - warn!("query_investor_position OnRspQryInvestorPosition event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_investor_position too often,please access for a while".to_string(); - } + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: received_event.payload + }; + + return Ok(serde_json::to_string(&rsp_result)?); + + }else{ + error!("query_investor_position error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_investor_position error, ret:{}, msg: {}",ret,api_return_code(ret)); + } }else{ warn!("query_investor_position OnRspError event handler is busy,please access for a while"); @@ -113,14 +55,75 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> Result { ret_msg = "query_investor_position too often,please access for a while".to_string(); } - - let investor_position_field:Value = serde_json::from_str(&payload).expect("query_investor_position deserialize error!"); + td_api::EventHandler::UnRspQryInvestorPosition(); + recover_on_error_push_event_handler(); let rsp_result = RspResult { code: ret, msg: ret_msg, - result: investor_position_field + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) +} + +fn on_rsp_error() -> bool { + + td_api::EventHandler::UnRspError(); + + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at query_investor_position, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let error_event_topic = get_error_event_topic(); + + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; + + debug!("td_api::EventHandler::OnRspError at query_investor_position. push_event: {:?}",event); + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + + }) +} + +fn on_rsp_qry_investorPosition(tx: std::sync::mpsc::Sender>) ->bool { + + td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + let error_event_topic = get_error_event_topic(); + + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + + }else{ + debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_investor_position_field,n_request_id,b_is_last); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQryInvestorPosition", + request_id: n_request_id, + is_last: b_is_last, + payload: rsp_investor_position_field + }; + + tx.send(event).unwrap(); + } + }) } \ No newline at end of file diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index d2dbdfe..b172f5d 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -2,14 +2,16 @@ use serde_json::Result; use rust_ctp::td_api; use std::sync::mpsc; -use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; - use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::Event; use super::CTP_CLIENT_ID; +use super::{PushEvent,PushEventSinker}; +use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; + + //sync func about thread-safely pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { @@ -28,111 +30,44 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { }; let (tx, rx) = mpsc::channel(); - let tx_err = tx.clone(); - - td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError of query_settlement_info, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - //must use the same Event type in OnRspError as OnRspQrySettlementInfo - //so serde_json as Event - tx_err.send(event).unwrap(); - }); + + let reg_err_ok = on_rsp_error(); - if reg_err_ok { - let reg_ok = td_api::EventHandler::OnRspQrySettlementInfo(move |rsp_settlement_info_field, rsp_info, n_request_id, b_is_last| { + let reg_ok = on_rsp_qry_settlement_info(tx); - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQrySettlementInfo, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + if reg_err_ok && reg_ok { - let event_str = serde_json::to_string(&rsp_info).unwrap(); + ret = td_api::query_settlement_info(user_id,broker_id); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; + if ret == 0 { - tx.send(event).unwrap(); - }else{ - debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", - rsp_settlement_info_field,n_request_id,b_is_last); + ret_msg = "".to_owned(); + + let mut settlement_info_list = Vec::new(); + loop { + let received_event = rx.recv().unwrap(); - let event_str = serde_json::to_string(&rsp_settlement_info_field).unwrap(); + // do not need to receive event + settlement_info_list.push(received_event.payload); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQrySettlementInfo", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - } - }); - - if reg_ok { - ret = td_api::query_settlement_info(user_id,broker_id); - - if ret != 0 { - error!("query_settlement_info error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_settlement_info error, ret:{}, msg: {}",ret,api_return_code(ret)); - - }else{ - ret_msg = "".to_owned(); - - let mut event_list = Vec::new(); - loop { - let received_event = rx.recv().unwrap(); - - // do not need to receive event - if received_event.name == "OnRspError" { - ret = -1; - ret_msg = format!("query_settlement_info error event: {}", received_event.payload); - event_list.clear(); - break; - }else { - event_list.push(received_event.payload); - } - - if received_event.is_last { - break; - } + if received_event.is_last { + break; } + } - //Process All settlement info event - for event_str in &event_list { - let rsp_settlement_info:RspSettlementInfoField = serde_json::from_str(event_str).unwrap(); - if com_rsp_settlement_info.Content == "".to_owned() { - com_rsp_settlement_info = rsp_settlement_info; - }else{ - com_rsp_settlement_info.Content = com_rsp_settlement_info.Content+&rsp_settlement_info.Content; - } + //Process All settlement info event + for settlement_info in &settlement_info_list { + if com_rsp_settlement_info.Content == "".to_owned() { + com_rsp_settlement_info = settlement_info.clone(); + }else{ + com_rsp_settlement_info.Content = com_rsp_settlement_info.Content+&settlement_info.Content; } } - - td_api::EventHandler::UnRspQrySettlementInfo(); - recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - warn!("query_settlement_info OnRspQrySettlementInfo event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_settlement_info too often,please access for a while".to_string(); + + }else{ + error!("query_settlement_info error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_settlement_info error, ret:{}, msg: {}",ret,api_return_code(ret)); } }else{ @@ -142,11 +77,76 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { ret_msg = "query_settlement_info too often,please access for a while".to_string(); } + td_api::EventHandler::UnRspQrySettlementInfo(); + recover_on_error_push_event_handler(); + let rsp_result = RspResult { code: ret, msg: ret_msg, result: com_rsp_settlement_info }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) +} + + +fn on_rsp_error() -> bool { + + td_api::EventHandler::UnRspError(); + + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at query_settlement_info, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let error_event_topic = get_error_event_topic(); + + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; + + debug!("td_api::EventHandler::OnRspError at query_settlement_info. push_event: {:?}",event); + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + + }) +} + +fn on_rsp_qry_settlement_info(tx: std::sync::mpsc::Sender>)-> bool { + + td_api::EventHandler::OnRspQrySettlementInfo(move |rsp_settlement_info_field, rsp_info, n_request_id, b_is_last| { + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQrySettlementInfo, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + + let error_event_topic = get_error_event_topic(); + + let event = PushEvent { + client: CTP_CLIENT_ID, + topic: error_event_topic, + name: "OnRspError", + payload: rsp_info + }; + + let event_sinker = PushEventSinker::new(); + event_sinker.sink(event); + }else{ + debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", + rsp_settlement_info_field,n_request_id,b_is_last); + + let event = Event { + client: CTP_CLIENT_ID, + name: "OnRspQrySettlementInfo", + request_id: n_request_id, + is_last: b_is_last, + payload: rsp_settlement_info_field + }; + + tx.send(event).unwrap(); + } + }) } \ No newline at end of file diff --git a/src/ctp_client/tdcontroller.rs b/src/ctp_client/tdcontroller.rs index 3151bfb..4a4ab57 100644 --- a/src/ctp_client/tdcontroller.rs +++ b/src/ctp_client/tdcontroller.rs @@ -71,6 +71,7 @@ pub async fn init() { loop { let is_init = CTP_TD_INIT.lock().await; + //when is_init == true if *is_init { break; } @@ -695,6 +696,7 @@ pub async fn td_cancel_order(req: Request) -> CTPResult>{ req.exchange_id.as_str(), req.order_sys_id.as_str(), req.cancel_action.as_str()); + let rsp_json = rsp_result?; common_response(rsp_json).await diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index 3e1253c..4045b59 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -2,12 +2,14 @@ use hyper::Client; use hyper::{Body, Method, Request,Response}; use std::env; -use crate::ctperror::CTPError; +use crate::ctperror::CTPResult; +use serde::{Serialize}; +use crate::ctp_client::PushEvent; static DAPR_STATESTORE_NAME:&str = "statestore"; static DAPR_PUBSUB_NAME:&str = "pubsub"; -pub async fn fetch_state_from_statestore(state_key:String) -> Result,CTPError> { +pub async fn fetch_state_from_statestore(state_key:String) -> CTPResult> { let client = Client::new(); let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); @@ -26,7 +28,7 @@ pub async fn fetch_state_from_statestore(state_key:String) -> Result Result,CTPError> { +pub async fn save_state_to_statestore(key: String,json_value:String) -> CTPResult> { let client = Client::new(); @@ -49,7 +51,7 @@ pub async fn save_state_to_statestore(key: String,json_value:String) -> Result Result,CTPError> { +pub async fn pub_event_to_topic(topic: String,event_json:String) -> CTPResult> { let client = Client::new(); let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); @@ -67,3 +69,26 @@ pub async fn pub_event_to_topic(topic: String,event_json:String) -> Result(topic: String,event:PushEvent) -> CTPResult> { +// let client = Client::new(); + +// let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); +// let dapr_port = env::var("DAPR_HTTP_PORT").unwrap_or("3500".to_string()); + +// let dapr_pub_url = format!("http://{}:{}/v1.0/publish/{}/{}",dapr_host,dapr_port,DAPR_PUBSUB_NAME,topic); +// debug!("pub_event_to_topic, url:{}",dapr_pub_url); + +// let event_json = serde_json::to_string(&event)?; + +// let req = Request::builder() +// .method(Method::POST) +// .uri(&dapr_pub_url) +// .header("content-type", "application/json") +// .body(Body::from(event_json))?; + +// let rt = tokio::runtime::Runtime::new().unwrap(); + +// Ok(rt.block_on(client.request(req))?) + +// } + diff --git a/src/routes.rs b/src/routes.rs index 46020ac..f639d2b 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -67,9 +67,6 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> }, // Return the 404 Not Found for other routes. _ => { - let mut not_found = Response::default(); - - not_found.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); let error_json_str = r#" { @@ -78,8 +75,9 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> "result": {} }"#; + let mut not_found = Response::default(); + not_found.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); *not_found.body_mut() = Body::from(error_json_str.to_string()); - *not_found.status_mut() = StatusCode::NOT_FOUND; Ok(not_found) } @@ -91,18 +89,12 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> Err(ref error) => { error!("API ERROR: {:?}",error); + let error_json = format!(r#"{{"code": 1404, "message": "API Error:{:?}","result": ""}}"#, error); + let mut response = Response::new(Body::empty()); response.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); - let error_result = RspResult{ - code: 1500, - msg: error.to_string(), - result: "".to_string() - }; - - let error_json = serde_json::to_string(&error_result).unwrap(); - *response.body_mut() = Body::from(error_json); *response.status_mut() = StatusCode::INTERNAL_SERVER_ERROR; -- Gitee From 5d94a92a1c3e015e7eac44ca85ae5d7a91598247 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 8 Nov 2021 16:55:56 +0800 Subject: [PATCH 69/75] add InnerEvent enum --- README.md | 2 +- src/ctp_client/cancel_order.rs | 6 +- src/ctp_client/mod.rs | 34 ++-- src/ctp_client/query_commission_rate.rs | 111 ++++--------- src/ctp_client/query_instruments.rs | 83 ++++----- src/ctp_client/query_investor_position.rs | 94 ++++------- src/ctp_client/query_settlement_info.rs | 83 ++++----- src/ctp_client/query_trading_account.rs | 157 ++++++++---------- .../send_fill_and_kill_limit_order.rs | 13 +- .../send_fill_or_kill_limit_order.rs | 13 +- src/ctp_client/send_limit_order.rs | 13 +- .../send_market_if_touched_order.rs | 13 +- src/ctp_client/send_market_order.rs | 13 +- src/ctp_client/send_stop_limit_order.rs | 13 +- src/dapr/component_client.rs | 25 --- src/routes.rs | 1 - src/utils/ctputil.rs | 19 +-- 17 files changed, 277 insertions(+), 416 deletions(-) diff --git a/README.md b/README.md index 8f64e69..8f5333b 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ helper = store - CTP_AUTH_CODE=0000000000000000 - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112 -#### Simnow 非交易时间(交易日下午4:00开始可用或者周末可用) +#### Simnow724环境, 交易日,16:00~次日09:00;非交易日,16:00~次日15:00 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index cb036b0..1ebda2d 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -1,10 +1,6 @@ -use serde_json::Value; - use rust_ctp::td_api; -use crate::dapr::component_client::{pub_event_to_topic}; - use crate::ctperror::CTPResult; use crate::result::RspResult; use crate::utils::ctputil::{recover_on_error_push_event_handler,get_error_event_topic}; @@ -20,7 +16,7 @@ pub fn cancel_order(user_id:&str, cancel_action:&str, ) -> CTPResult { - let mut ret= 0; + let ret; let mut ret_msg = "".to_string(); let reg_err_ok = on_rsp_error(); diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 96a2806..303f38e 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -17,15 +17,29 @@ use once_cell::sync::OnceCell; use std::collections::HashMap; use tokio::sync::Mutex; use once_cell::sync::Lazy; + +use rust_ctp::api_struct::rsp_info_field::RspInfoField; +use rust_ctp::api_struct::rsp_instrument_commission_rate_field::RspInstrumentCommissionRateField; use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; +use rust_ctp::api_struct::rsp_investor_position_field::RspInvestorPositionField; +use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; +use rust_ctp::api_struct::rsp_trading_account_field::RspTradingAccountField; use std::{env}; -use std::marker::Send; - use serde::{Serialize}; use crate::dapr::component_client::pub_event_to_topic; +#[derive(Debug,Serialize)] +pub enum InnerEvent{ + OnRspError(RspInfoField), + OnRspQryInstrumentCommissionRate(bool,RspInstrumentCommissionRateField), + OnRspQryInstrument(bool,RspInstrumentField), + OnRspQryInvestorPosition(bool,RspInvestorPositionField), + OnRspQrySettlementInfo(bool,RspSettlementInfoField), + OnRspQryTradingAccount(bool,RspTradingAccountField), +} + #[derive(Debug,Serialize)] pub struct PushEvent { pub client: &'static str, @@ -62,7 +76,7 @@ pub struct PushEventSinker{ } impl PushEventSinker { - fn new()-> Self { + pub fn new()-> Self { let sinker_config = CTP_EVENT_SINKER.get().unwrap(); @@ -80,25 +94,13 @@ impl PushEventSinker { } } - fn sink(&self,event: PushEvent){ + pub fn sink(&self,event: PushEvent){ let event_json = serde_json::to_string(&event).unwrap(); self.sinker.send(event.topic,event_json); } } -#[derive(Debug,Serialize)] -pub struct Event where T: Send{ - pub client: &'static str, - pub name: &'static str, - pub request_id: i32, - pub is_last: bool, - pub payload: T -} - -#[derive(Serialize)] -pub struct EmptyEvent{} - pub static CTP_CLIENT_ID: &str = "CTP"; static CTP_EVENT_SINKER: OnceCell = OnceCell::new(); diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index bc59fd3..cbbf860 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -1,27 +1,24 @@ -use serde_json::Result; -use serde_json::Value; - use rust_ctp::td_api; use std::sync::mpsc; use crate::ctperror::CTPResult; use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; - -use super::Event; -use super::CTP_CLIENT_ID; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use super::{PushEvent,PushEventSinker}; -use rust_ctp::api_struct::rsp_instrument_commission_rate_field::RspInstrumentCommissionRateField; +use super::InnerEvent; pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> CTPResult { let mut ret; let mut ret_msg = "".to_string(); + //--T1--->| |--->process T1 + // --->send same enum T instance---> + //--T2--->| |--->process T2 let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); - let reg_err_ok = on_rsp_error(); + let reg_err_ok = on_rsp_error(tx_rsp_err); let reg_ok = on_rsp_qry_instrument_commission_rate(tx); if reg_err_ok && reg_ok { @@ -32,16 +29,28 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> //Must received the same type let received_event = rx.recv().unwrap(); - td_api::EventHandler::UnRspQryInstrumentCommissionRate(); - recover_on_error_push_event_handler(); - - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: received_event.payload - }; - - return Ok(serde_json::to_string(&rsp_result)?); + match received_event{ + InnerEvent::OnRspError(event) => { + ret = -1; + ret_msg = format!("query_commission_rate error event: {:?}",event); + }, + InnerEvent::OnRspQryInstrumentCommissionRate(_is_last,event) => { + + td_api::EventHandler::UnRspQryInstrumentCommissionRate(); + recover_on_error_push_event_handler(); + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: event + }; + + return Ok(serde_json::to_string(&rsp_result)?); + }, + _ => { + error!("query_instruments received Unknow event: {:?}",received_event); + } + } }else{ @@ -68,84 +77,36 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> return Ok(serde_json::to_string(&rsp_result)?); } - -fn on_rsp_error() -> bool { +fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { - // td_api::EventHandler::UnRspError(); - // td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - // error!("td_api::EventHandler::OnRspError, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - // rsp_info.ErrorMsg,rsp_info.ErrorID, - // n_request_id,b_is_last); - - // let event_str = serde_json::to_string(&rsp_info).unwrap(); - - // let event = Event { - // client: CTP_CLIENT_ID, - // name: "OnRspError", - // request_id: n_request_id, - // is_last: b_is_last, - // payload: event_str - // }; - - // //must use the same Event type in OnRspError as OnRspQryInstrumentCommissionRate - // //so serde_json as Event - // tx_rsp_err.send(event).unwrap(); - // }) - td_api::EventHandler::UnRspError(); - td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError at query_commission_rate, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let error_event_topic = get_error_event_topic(); + let event = InnerEvent::OnRspError(rsp_info); - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - debug!("td_api::EventHandler::OnRspError at query_commission_rate. push_event: {:?}",event); - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + tx_rsp_err.send(event).unwrap(); }) } -fn on_rsp_qry_instrument_commission_rate(tx: std::sync::mpsc::Sender>) -> bool { +fn on_rsp_qry_instrument_commission_rate(tx: std::sync::mpsc::Sender) -> bool { td_api::EventHandler::OnRspQryInstrumentCommissionRate(move |rsp_instrument_commission_rate_field, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; + let event = InnerEvent::OnRspError(rsp_info); - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + tx.send(event).unwrap(); }else{ debug!("td_api::EventHandler::OnRspQryInstrumentCommissionRate, rsp_instrument_commission_rate_field: {:?}, n_request_id:{},b_is_last:{}", rsp_instrument_commission_rate_field,n_request_id,b_is_last); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrumentCommissionRate", - request_id: n_request_id, - is_last: b_is_last, - payload: rsp_instrument_commission_rate_field - }; - + let event = InnerEvent::OnRspQryInstrumentCommissionRate(b_is_last,rsp_instrument_commission_rate_field); tx.send(event).unwrap(); } }) diff --git a/src/ctp_client/query_instruments.rs b/src/ctp_client/query_instruments.rs index 35b433e..1e03f73 100644 --- a/src/ctp_client/query_instruments.rs +++ b/src/ctp_client/query_instruments.rs @@ -1,24 +1,24 @@ use rust_ctp::td_api; -use rust_ctp::api_struct::rsp_instrument_field::RspInstrumentField; use std::sync::mpsc; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use super::Event; -use super::{CTP_CLIENT_ID,CTP_INSTRUMENT_HASHMAP}; - -use super::{PushEvent,PushEventSinker}; -use rust_ctp::api_struct::rsp_instrument_commission_rate_field::RspInstrumentCommissionRateField; +use super::InnerEvent; +use super::CTP_INSTRUMENT_HASHMAP; //查询所有交易标的 pub async fn query_instruments() -> i32 { let mut ret; + //--T1--->| |--->process T1 + // --->send same enum T instance---> + //--T2--->| |--->process T2 let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); - let reg_err_ok = on_rsp_error(); + let reg_err_ok = on_rsp_error(tx_rsp_err); let reg_ok = on_rsp_qry_instrument(tx); if reg_err_ok && reg_ok { @@ -28,11 +28,24 @@ pub async fn query_instruments() -> i32 { let mut instrument_list = Vec::new(); loop { let received_event = rx.recv().unwrap(); - - instrument_list.push(received_event.payload.clone()); - - if received_event.is_last { - break; + + match received_event { + InnerEvent::OnRspError(event) => { + error!("query_instruments error event: {:?}",event); + ret = -1; + instrument_list.clear(); + break; + }, + InnerEvent::OnRspQryInstrument(is_last,event) => { + instrument_list.push(event); + + if is_last { + break; + } + }, + _ => { + error!("query_instruments received Unknow event: {:?}",received_event); + } } } @@ -57,63 +70,35 @@ pub async fn query_instruments() -> i32 { ret } +fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { -fn on_rsp_error() -> bool { - td_api::EventHandler::UnRspError(); - td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError at query_instruments, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - debug!("td_api::EventHandler::OnRspError at query_instruments. push_event: {:?}",event); - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + let event = InnerEvent::OnRspError(rsp_info); + tx_rsp_err.send(event).unwrap(); }) } -fn on_rsp_qry_instrument(tx: std::sync::mpsc::Sender>) -> bool { +fn on_rsp_qry_instrument(tx: std::sync::mpsc::Sender) -> bool { td_api::EventHandler::OnRspQryInstrument(move |rsp_instrument_field, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInstrument, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + + let event = InnerEvent::OnRspError(rsp_info); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + tx.send(event).unwrap(); }else{ debug!("td_api::EventHandler::OnRspQryInstrument, rsp_instrument_field: {:?}, n_request_id:{},b_is_last:{}", rsp_instrument_field, n_request_id, b_is_last); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInstrument", - request_id: n_request_id, - is_last: b_is_last, - payload: rsp_instrument_field - }; - + let event = InnerEvent::OnRspQryInstrument(b_is_last,rsp_instrument_field); tx.send(event).unwrap(); } }) diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 89e9b50..38efdd3 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -1,19 +1,12 @@ -use serde_json::Result; -use serde_json::Value; - use rust_ctp::td_api; use std::sync::mpsc; - use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use super::Event; -use super::CTP_CLIENT_ID; +use super::InnerEvent; use crate::ctperror::CTPResult; -use super::{PushEvent,PushEventSinker}; -use rust_ctp::api_struct::rsp_investor_position_field::RspInvestorPositionField; //sync func about thread-safely pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult { @@ -22,9 +15,10 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult let mut ret_msg="".to_owned(); let (tx, rx) = mpsc::channel(); + let tx_rsp_err = tx.clone(); - let reg_err_ok = on_rsp_error(); - let reg_ok = on_rsp_qry_investorPosition(tx); + let reg_err_ok = on_rsp_error(tx_rsp_err); + let reg_ok = on_rsp_qry_investor_position(tx); if reg_err_ok && reg_ok{ @@ -33,16 +27,28 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult if ret == 0 { let received_event = rx.recv().unwrap(); - td_api::EventHandler::UnRspQryInvestorPosition(); - recover_on_error_push_event_handler(); - - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: received_event.payload - }; - - return Ok(serde_json::to_string(&rsp_result)?); + match received_event{ + InnerEvent::OnRspError(event) => { + ret = -1; + ret_msg = format!("query_investor_position error event: {:?}",event); + }, + InnerEvent::OnRspQryInvestorPosition(_is_last,event) => { + + td_api::EventHandler::UnRspQryInvestorPosition(); + recover_on_error_push_event_handler(); + + let rsp_result = RspResult { + code: ret, + msg: ret_msg, + result: event + }; + + return Ok(serde_json::to_string(&rsp_result)?); + }, + _ => { + error!("query_investor_position received Unknow event: {:?}",received_event); + } + } }else{ error!("query_investor_position error, ret:{}, msg: {}", ret,api_return_code(ret)); @@ -67,62 +73,34 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult Ok(serde_json::to_string(&rsp_result)?) } -fn on_rsp_error() -> bool { - - td_api::EventHandler::UnRspError(); +fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { + td_api::EventHandler::UnRspError(); td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError at query_investor_position, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - debug!("td_api::EventHandler::OnRspError at query_investor_position. push_event: {:?}",event); - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + let event = InnerEvent::OnRspError(rsp_info); + tx_rsp_err.send(event).unwrap(); }) } -fn on_rsp_qry_investorPosition(tx: std::sync::mpsc::Sender>) ->bool { +fn on_rsp_qry_investor_position(tx: std::sync::mpsc::Sender) ->bool { td_api::EventHandler::OnRspQryInvestorPosition(move |rsp_investor_position_field, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQryInvestorPosition, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); - + + let event = InnerEvent::OnRspError(rsp_info); + tx.send(event).unwrap(); }else{ debug!("td_api::EventHandler::OnRspQryInvestorPosition, investor_position_field: {:?}, n_request_id:{},b_is_last:{}", rsp_investor_position_field,n_request_id,b_is_last); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryInvestorPosition", - request_id: n_request_id, - is_last: b_is_last, - payload: rsp_investor_position_field - }; - + let event = InnerEvent::OnRspQryInvestorPosition(b_is_last,rsp_investor_position_field); tx.send(event).unwrap(); } }) diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index b172f5d..90c9d0c 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -1,19 +1,17 @@ -use serde_json::Result; use rust_ctp::td_api; use std::sync::mpsc; use crate::result::RspResult; -use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use super::Event; -use super::CTP_CLIENT_ID; - -use super::{PushEvent,PushEventSinker}; use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; +use super::InnerEvent; + +use crate::ctperror::CTPResult; //sync func about thread-safely -pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { +pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { let mut ret; let mut ret_msg; @@ -30,9 +28,9 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { }; let (tx, rx) = mpsc::channel(); - + let tx_rsp_err = tx.clone(); - let reg_err_ok = on_rsp_error(); + let reg_err_ok = on_rsp_error(tx_rsp_err); let reg_ok = on_rsp_qry_settlement_info(tx); @@ -48,15 +46,28 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { loop { let received_event = rx.recv().unwrap(); - // do not need to receive event - settlement_info_list.push(received_event.payload); - - if received_event.is_last { - break; + match received_event { + InnerEvent::OnRspError(event) => { + ret = -1; + ret_msg = format!("query_settlement_info error event: {:?}",event); + settlement_info_list.clear(); + break; + }, + InnerEvent::OnRspQrySettlementInfo(is_last,event) => { + // do not need to receive event + settlement_info_list.push(event); + + if is_last { + break; + } + }, + _ => { + error!("query_settlement_info received Unknow event: {:?}",received_event); + } } } - //Process All settlement info event + //Process All settlement info for settlement_info in &settlement_info_list { if com_rsp_settlement_info.Content == "".to_owned() { com_rsp_settlement_info = settlement_info.clone(); @@ -90,61 +101,35 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> Result { } -fn on_rsp_error() -> bool { - - td_api::EventHandler::UnRspError(); +fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { + td_api::EventHandler::UnRspError(); td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { error!("td_api::EventHandler::OnRspError at query_settlement_info, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; - - debug!("td_api::EventHandler::OnRspError at query_settlement_info. push_event: {:?}",event); - - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + let event = InnerEvent::OnRspError(rsp_info); + tx_rsp_err.send(event).unwrap(); }) } -fn on_rsp_qry_settlement_info(tx: std::sync::mpsc::Sender>)-> bool { +fn on_rsp_qry_settlement_info(tx: std::sync::mpsc::Sender)-> bool { td_api::EventHandler::OnRspQrySettlementInfo(move |rsp_settlement_info_field, rsp_info, n_request_id, b_is_last| { if rsp_info.ErrorID !=0 { error!("td_api::EventHandler::OnRspQrySettlementInfo, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let error_event_topic = get_error_event_topic(); - - let event = PushEvent { - client: CTP_CLIENT_ID, - topic: error_event_topic, - name: "OnRspError", - payload: rsp_info - }; + let event = InnerEvent::OnRspError(rsp_info); - let event_sinker = PushEventSinker::new(); - event_sinker.sink(event); + tx.send(event).unwrap(); }else{ debug!("td_api::EventHandler::OnRspQrySettlementInfo, rsp_settlement_info_field: {:?}, n_request_id:{},b_is_last:{}", rsp_settlement_info_field,n_request_id,b_is_last); - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQrySettlementInfo", - request_id: n_request_id, - is_last: b_is_last, - payload: rsp_settlement_info_field - }; + let event = InnerEvent::OnRspQrySettlementInfo(b_is_last,rsp_settlement_info_field); tx.send(event).unwrap(); } diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 0dbb7bf..536dcbe 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -1,6 +1,3 @@ -use serde_json::Result; -use serde_json::Value; - use std::time::Instant; use rust_ctp::td_api; use std::sync::mpsc; @@ -8,105 +5,59 @@ use std::sync::mpsc; use crate::result::RspResult; use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use super::Event; -use super::CTP_CLIENT_ID; +use crate::ctperror::CTPResult; +use super::InnerEvent; //查询资金账户 -pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { +pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { let start = Instant::now(); let mut ret; let mut ret_msg = "".to_string(); - let mut payload = "{}".to_string(); let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); - td_api::EventHandler::UnRspError(); - let reg_err_ok = td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { - error!("td_api::EventHandler::OnRspError of query_trading_account, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", - rsp_info.ErrorMsg,rsp_info.ErrorID, - n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - //must use the same Event type in OnRspError as OnRspQryTradingAccount - //so serde_json as Event - tx_rsp_err.send(event).unwrap(); - }); - + let reg_err_ok = on_rsp_error(tx_rsp_err); debug!("binding OnRspError cost: {:?} us", start.elapsed().as_micros()); - - if reg_err_ok { - - let reg_ok = td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { - - if rsp_info.ErrorID !=0 { - error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); - let event_str = serde_json::to_string(&rsp_info).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspError", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - }else{ - debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", - rsp_trading_account,n_request_id,b_is_last); - - let event_str = serde_json::to_string(&rsp_trading_account).unwrap(); - - let event = Event { - client: CTP_CLIENT_ID, - name: "OnRspQryTradingAccount", - request_id: n_request_id, - is_last: b_is_last, - payload: event_str - }; - - tx.send(event).unwrap(); - } - }); + let reg_ok = on_rsp_qry_trading_account(tx); + + if reg_err_ok && reg_ok { debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); - if reg_ok { - ret = td_api::query_trading_account(user_id,broker_id); + ret = td_api::query_trading_account(user_id,broker_id); - if ret != 0 { - error!("query_trading_account error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_trading_account error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ - let received_event = rx.recv().unwrap(); + if ret == 0 { + let received_event = rx.recv().unwrap(); - if received_event.name == "OnRspError" { + match received_event { + InnerEvent::OnRspError(event) => { ret = -1; - ret_msg = format!("query_trading_account error"); + ret_msg = format!("query_trading_account error event: {:?}",event); + }, + InnerEvent::OnRspQryTradingAccount(_is_last,event) => { + + td_api::EventHandler::UnRspQryTradingAccount(); + recover_on_error_push_event_handler(); + + let rsp_result = RspResult{ + code: ret, + msg: ret_msg, + result: event + }; + + return Ok(serde_json::to_string(&rsp_result)?); + }, + _ => { + error!("query_trading_account received Unknow event: {:?}",received_event); } - - payload = received_event.payload; } - - td_api::EventHandler::UnRspQryTradingAccount(); - recover_on_error_push_event_handler(); - } else { - recover_on_error_push_event_handler(); - warn!("query_trading_account OnRspQryTradingAccount event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_trading_account too often,please access for a while".to_string(); + }else{ + error!("query_trading_account error, ret:{}, msg: {}", ret,api_return_code(ret)); + ret_msg = format!("query_trading_account error, ret:{}, msg: {}",ret,api_return_code(ret)); } + }else{ warn!("query_trading_account OnRspError event handler is busy,please access for a while"); @@ -116,14 +67,50 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> Result { debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); - let trading_account:Value = serde_json::from_str(&payload).expect("query_trading_account deserialize error!"); + td_api::EventHandler::UnRspQryTradingAccount(); + recover_on_error_push_event_handler(); let rsp_result = RspResult{ code: ret, msg: ret_msg, - result: trading_account + result: "".to_owned() }; + Ok(serde_json::to_string(&rsp_result)?) +} + +fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { + + td_api::EventHandler::UnRspError(); + td_api::EventHandler::OnRspError(move |rsp_info, n_request_id, b_is_last| { + error!("td_api::EventHandler::OnRspError at query_trading_account, ErrorMsg: {}, ErrorID: {}, nRequestID: {}, bIsLast: {}", + rsp_info.ErrorMsg,rsp_info.ErrorID, + n_request_id,b_is_last); + + let event = InnerEvent::OnRspError(rsp_info); + + tx_rsp_err.send(event).unwrap(); + }) +} + +fn on_rsp_qry_trading_account(tx: std::sync::mpsc::Sender) -> bool { + + td_api::EventHandler::OnRspQryTradingAccount(move |rsp_trading_account, rsp_info, n_request_id, b_is_last| { + + let event; + + if rsp_info.ErrorID !=0 { + error!("td_api::EventHandler::OnRspQryTradingAccount, ErrorID: {},ErrorMsg: {}",rsp_info.ErrorID,rsp_info.ErrorMsg); + + event = InnerEvent::OnRspError(rsp_info); + + }else{ + debug!("td_api::EventHandler::OnRspQryTradingAccount, TradingAccount: {:?}, n_request_id:{},b_is_last:{}", + rsp_trading_account,n_request_id,b_is_last); + + event = InnerEvent::OnRspQryTradingAccount(b_is_last,rsp_trading_account); + } - serde_json::to_string(&rsp_result) + tx.send(event).unwrap(); + }) } \ No newline at end of file diff --git a/src/ctp_client/send_fill_and_kill_limit_order.rs b/src/ctp_client/send_fill_and_kill_limit_order.rs index a5a6a3b..1758bd1 100644 --- a/src/ctp_client/send_fill_and_kill_limit_order.rs +++ b/src/ctp_client/send_fill_and_kill_limit_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///5.FAK单 pub fn send_fill_and_kill_limit_order(order_def_id:i32, user_id:&str, @@ -13,7 +14,7 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, open_close:&str, volume:i32, volume_condition:&str, - limit_price:f64) -> Result { + limit_price:f64) -> CTPResult { let mut ret_msg = "".to_string(); @@ -34,13 +35,11 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, debug!("send_fill_and_kill_limit_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_fill_and_kill_limit_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_fill_or_kill_limit_order.rs b/src/ctp_client/send_fill_or_kill_limit_order.rs index 59c7cce..ce93b42 100644 --- a/src/ctp_client/send_fill_or_kill_limit_order.rs +++ b/src/ctp_client/send_fill_or_kill_limit_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///3.触价单 pub fn send_fill_or_kill_limit_order(order_def_id:i32, user_id:&str, @@ -12,7 +13,7 @@ pub fn send_fill_or_kill_limit_order(order_def_id:i32, direction:&str, open_close:&str, volume:i32, - limit_price:f64) -> Result { + limit_price:f64) -> CTPResult { let mut ret_msg = "".to_string(); @@ -32,13 +33,11 @@ pub fn send_fill_or_kill_limit_order(order_def_id:i32, debug!("send_fill_or_kill_limit_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_fill_or_kill_limit_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_limit_order.rs b/src/ctp_client/send_limit_order.rs index 8d71186..2f90fca 100644 --- a/src/ctp_client/send_limit_order.rs +++ b/src/ctp_client/send_limit_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///2.限价单 pub fn send_limit_order(order_def_id:i32, user_id:&str, @@ -12,7 +13,7 @@ pub fn send_limit_order(order_def_id:i32, direction:&str, open_close:&str, volume:i32, - limit_price:f64) -> Result { + limit_price:f64) -> CTPResult { let mut ret_msg = "".to_string(); @@ -32,13 +33,11 @@ pub fn send_limit_order(order_def_id:i32, debug!("send_market_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_limit_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_market_if_touched_order.rs b/src/ctp_client/send_market_if_touched_order.rs index 35c5f38..ee007db 100644 --- a/src/ctp_client/send_market_if_touched_order.rs +++ b/src/ctp_client/send_market_if_touched_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///3.触价单 pub fn send_market_if_touched_order(order_def_id:i32, user_id:&str, @@ -12,7 +13,7 @@ pub fn send_market_if_touched_order(order_def_id:i32, direction:&str, open_close:&str,volume:i32, stop_price_condition:&str, - stop_price:f64) -> Result { + stop_price:f64) -> CTPResult { let mut ret_msg = "".to_string(); @@ -33,13 +34,11 @@ pub fn send_market_if_touched_order(order_def_id:i32, debug!("send_market_if_touched_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_market_if_touched_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index 4001a95..ab7f5fa 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///1.市价单 pub fn send_market_order(order_def_id:i32, user_id:&str, @@ -11,7 +12,7 @@ pub fn send_market_order(order_def_id:i32, instrument_id:&str, direction:&str, open_close:&str, - volume:i32) -> Result { + volume:i32) -> CTPResult { let mut ret_msg = "".to_string(); @@ -30,13 +31,11 @@ pub fn send_market_order(order_def_id:i32, debug!("send_market_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_market_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_stop_limit_order.rs b/src/ctp_client/send_stop_limit_order.rs index 0e87f51..8ca7bd2 100644 --- a/src/ctp_client/send_stop_limit_order.rs +++ b/src/ctp_client/send_stop_limit_order.rs @@ -1,9 +1,10 @@ -use serde_json::Result; -use serde_json::Value; use rust_ctp::td_api; use crate::result::RspResult; use crate::utils::ctputil::api_return_code; + +use crate::ctperror::CTPResult; + ///4.条件单 pub fn send_stop_limit_order(order_def_id:i32, user_id:&str, @@ -14,7 +15,7 @@ pub fn send_stop_limit_order(order_def_id:i32, volume:i32, limit_price:f64, stop_price_condition:&str, - stop_price:f64) -> Result { + stop_price:f64) -> CTPResult { let mut ret_msg = "".to_string(); @@ -36,13 +37,11 @@ pub fn send_stop_limit_order(order_def_id:i32, debug!("send_stop_limit_order req ok, return order_def_id:{}", ret); } - let empty_result:Value = serde_json::from_str("{}").expect("send_stop_limit_order deserialize error!"); - let rsp_result = RspResult { code: ret, msg: ret_msg, - result: empty_result + result: "".to_owned() }; - serde_json::to_string(&rsp_result) + Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/dapr/component_client.rs b/src/dapr/component_client.rs index 4045b59..84a0e2f 100644 --- a/src/dapr/component_client.rs +++ b/src/dapr/component_client.rs @@ -3,8 +3,6 @@ use hyper::{Body, Method, Request,Response}; use std::env; use crate::ctperror::CTPResult; -use serde::{Serialize}; -use crate::ctp_client::PushEvent; static DAPR_STATESTORE_NAME:&str = "statestore"; static DAPR_PUBSUB_NAME:&str = "pubsub"; @@ -69,26 +67,3 @@ pub async fn pub_event_to_topic(topic: String,event_json:String) -> CTPResult(topic: String,event:PushEvent) -> CTPResult> { -// let client = Client::new(); - -// let dapr_host = env::var("DAPR_HTTP_HOST").unwrap_or("localhost".to_string()); -// let dapr_port = env::var("DAPR_HTTP_PORT").unwrap_or("3500".to_string()); - -// let dapr_pub_url = format!("http://{}:{}/v1.0/publish/{}/{}",dapr_host,dapr_port,DAPR_PUBSUB_NAME,topic); -// debug!("pub_event_to_topic, url:{}",dapr_pub_url); - -// let event_json = serde_json::to_string(&event)?; - -// let req = Request::builder() -// .method(Method::POST) -// .uri(&dapr_pub_url) -// .header("content-type", "application/json") -// .body(Body::from(event_json))?; - -// let rt = tokio::runtime::Runtime::new().unwrap(); - -// Ok(rt.block_on(client.request(req))?) - -// } - diff --git a/src/routes.rs b/src/routes.rs index f639d2b..9b5c05a 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -2,7 +2,6 @@ use hyper::{Body, Method, header,Request, Response, StatusCode}; use http::header::HeaderValue; use std::convert::Infallible; -use crate::result::RspResult; use crate::ctp_client::mdcontroller; use crate::ctp_client::tdcontroller; diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index e895985..540b2e4 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -4,15 +4,13 @@ use hyper::{header,Body, Response, StatusCode}; use rust_ctp::td_api; use crate::ctp_client::CTP_CLIENT_ID; use crate::ctperror::CTPResult; -use crate::ctp_client::PushEvent; use super::super::result::RspResult; use super::super::result::EmptyResult; use std::{env}; -use crate::dapr::component_client::pub_event_to_topic; +use crate::ctp_client::{PushEvent,PushEventSinker}; -//pub type GenericError = Box; //not adapt Struct defined in request pub async fn unprocessable_request() -> CTPResult> { @@ -75,22 +73,23 @@ pub fn recover_on_error_push_event_handler() { rsp_info.ErrorMsg,rsp_info.ErrorID, n_request_id,b_is_last); - let event_str = serde_json::to_string(&rsp_info).unwrap(); + //let event_str = serde_json::to_string(&rsp_info).unwrap(); + + + let error_event_topic = get_error_event_topic(); let error_event = PushEvent { client: CTP_CLIENT_ID, - topic: "todo".to_owned(), + topic: error_event_topic, name: "OnRspError", - payload: event_str + payload: rsp_info }; debug!("td_api::EventHandler::OnRspError: push error event {:?}",error_event); - let error_event_topic = get_error_event_topic(); + let event_sinker = PushEventSinker::new(); + event_sinker.sink(error_event); - let error_event_json = serde_json::to_string(&error_event).unwrap(); - let rt = tokio::runtime::Runtime::new().unwrap(); - let _ = rt.block_on(pub_event_to_topic(error_event_topic,error_event_json)); }); } -- Gitee From a6180671b7a5eb9898ecb7cad3682be5ff2cae71 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Mon, 8 Nov 2021 17:36:36 +0800 Subject: [PATCH 70/75] readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f5333b..5df6522 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ helper = store - RUST_LOG=trace - 面对需要跟踪进程,线程,函数级别 -#### Simnow 交易时间 +#### Simnow 新环境,正常交易日时间 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10212 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10202 - CTP_USER_ID=142909 @@ -78,7 +78,7 @@ helper = store - CTP_AUTH_CODE=0000000000000000 - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112 -#### Simnow724环境, 交易日,16:00~次日09:00;非交易日,16:00~次日15:00 +#### Simnow 7X24环境, 交易日,16:00~次日09:00;非交易日,16:00~次日15:00 - CTP_MARKET_FRONT_ADDR=tcp://180.168.146.187:10131 - CTP_TRADE_FRONT_ADDR=tcp://180.168.146.187:10130 - CTP_USER_ID=142909 -- Gitee From c30c292ab284e8dd8e84480bb20272f7b0f1f522 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 10 Nov 2021 19:42:46 +0800 Subject: [PATCH 71/75] add error philosophy --- Cargo.toml | 2 +- src/ctp_client/cancel_order.rs | 39 +++++---- src/ctp_client/mdcontroller.rs | 48 ++++------- src/ctp_client/query_commission_rate.rs | 37 ++++----- src/ctp_client/query_investor_position.rs | 35 ++++---- src/ctp_client/query_settlement_info.rs | 72 ++++++++++------- src/ctp_client/query_trading_account.rs | 33 ++++---- .../send_fill_and_kill_limit_order.rs | 27 ++++--- .../send_fill_or_kill_limit_order.rs | 27 ++++--- src/ctp_client/send_limit_order.rs | 27 ++++--- .../send_market_if_touched_order.rs | 26 +++--- src/ctp_client/send_market_order.rs | 29 ++++--- src/ctp_client/send_stop_limit_order.rs | 27 ++++--- src/ctperror.rs | 81 +++++++++++++++---- src/routes.rs | 53 +++++++++++- src/utils/ctputil.rs | 14 ++-- 16 files changed, 339 insertions(+), 238 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 79dbe87..5c6f229 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,4 +16,4 @@ http = "*" url="*" log = "0.4" env_logger = "0.9" -rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.2" } \ No newline at end of file +rust_ctp = { git = "https://gitee.com/nodequant/rust_ctp.git", tag = "v0.4.3" } \ No newline at end of file diff --git a/src/ctp_client/cancel_order.rs b/src/ctp_client/cancel_order.rs index 1ebda2d..ebe6bb7 100644 --- a/src/ctp_client/cancel_order.rs +++ b/src/ctp_client/cancel_order.rs @@ -1,9 +1,9 @@ use rust_ctp::td_api; -use crate::ctperror::CTPResult; +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; use crate::result::RspResult; -use crate::utils::ctputil::{recover_on_error_push_event_handler,get_error_event_topic}; +use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler,get_error_event_topic}; use super::{PushEvent,PushEventSinker}; use super::CTP_CLIENT_ID; @@ -15,9 +15,8 @@ pub fn cancel_order(user_id:&str, order_sys_id: &str, cancel_action:&str, ) -> CTPResult { - - let ret; - let mut ret_msg = "".to_string(); + + let ctp_error; let reg_err_ok = on_rsp_error(); @@ -32,7 +31,7 @@ pub fn cancel_order(user_id:&str, if reg_err_ok && reg_bad_order_action_ok && reg_err_order_action_ok { - ret = td_api::cancel_order(user_id, + let ret = td_api::cancel_order(user_id, broker_id, exchange_id, order_sys_id, @@ -40,27 +39,35 @@ pub fn cancel_order(user_id:&str, if ret < 0 { error!("cancel_order error, return code:{}",ret); - ret_msg = format!("cancel_order error, return code:{}",ret); + + ctp_error = api_return_code(ret); + }else{ + + td_api::EventHandler::UnRspOrderAction(); + td_api::EventHandler::UnErrRtnOrderAction(); + recover_on_error_push_event_handler(); + + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned(), + }; + + return Ok(serde_json::to_string(&rsp_result)?); } }else{ warn!("please access for a while, cancel_order on_rsp_error:{}/on_rsp_order_action:{}/on_err_rtn_order_action:{} event handler is busy", reg_err_ok,reg_bad_order_action_ok,reg_err_order_action_ok); - ret = -1; - ret_msg = "please access for a while,cancel_order too often.".to_string(); + ctp_error = CTPError::CTPQueryFrequentError(NewCTPError( + "cancel_order too often,please access for a while".to_owned())); } td_api::EventHandler::UnRspOrderAction(); td_api::EventHandler::UnErrRtnOrderAction(); recover_on_error_push_event_handler(); - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned(), - }; - - Ok(serde_json::to_string(&rsp_result)?) + Err(ctp_error) } fn on_rsp_error() -> bool { diff --git a/src/ctp_client/mdcontroller.rs b/src/ctp_client/mdcontroller.rs index 0bd4d13..9d93876 100644 --- a/src/ctp_client/mdcontroller.rs +++ b/src/ctp_client/mdcontroller.rs @@ -7,7 +7,9 @@ use super::{CTP_CLIENT_ID, CTP_BROKER_ID, CTP_USER_PASSWORD}; -use crate::ctperror::CTPResult; + +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; + use crate::utils::ctputil::{on_front_disconnected_reason,common_response,get_depth_market_data_topic}; ////////CTP_Access Dependency//////// @@ -121,7 +123,7 @@ pub async fn get_trading_day() -> CTPResult> { let trading_day = md_api::get_trading_day(); let rsp_result = RspResult{ - code: 1200, + code: 0, msg: "".to_owned(), result: trading_day }; @@ -133,17 +135,11 @@ pub async fn get_trading_day() -> CTPResult> { common_response(rsp_json).await }else{ - let rsp_result = RspResult{ - code: 1500, - msg: "".to_owned(), - result: "MD Client Not Ready".to_owned() - }; - - let rsp_json = serde_json::to_string(&rsp_result)?; - + let ctp_error = CTPError::CTPClientNotReadyError(NewCTPError("MD Client Not Ready".to_owned())); + debug!("API get_trading_day cost: {:?} us", start.elapsed().as_micros()); - common_response(rsp_json).await + Err(ctp_error) } } @@ -198,7 +194,7 @@ pub async fn subscribe(req: Request) -> CTPResult> { warn!("Only finish to send subscribe req, we have not receive OnRspSubMarketData event yet!"); let rsp_result = RspResult{ - code: 200, + code: 0, msg: "".to_owned(), result: ret }; @@ -211,15 +207,9 @@ pub async fn subscribe(req: Request) -> CTPResult> { warn!("Do not send subscribe req , because md is_ready: {}",is_ready); - let rsp_result = RspResult{ - code: 200, - msg: "Md client have not ready,please fix first.".to_owned(), - result: -1 - }; - - let rsp_json = serde_json::to_string(&rsp_result)?; - - common_response(rsp_json).await + let ctp_error = CTPError::CTPClientNotReadyError(NewCTPError("MD Client Not Ready".to_owned())); + + Err(ctp_error) } } @@ -253,7 +243,7 @@ pub async fn unsubscribe(req: Request) -> CTPResult> { warn!("Only finish to send unsubscribe req, we have not receive OnRspUnSubMarketData event yet!"); let rsp_result = RspResult{ - code: 1200, + code: 0, msg: "".to_owned(), result: ret }; @@ -265,15 +255,9 @@ pub async fn unsubscribe(req: Request) -> CTPResult> { warn!("Do not send unsubscribe req, because md is_ready: {}",is_ready); - let rsp_result = RspResult{ - code: 1500, - msg: "MD client have not ready,please fix.".to_string(), - result: -1 - }; - - let rsp_json = serde_json::to_string(&rsp_result)?; - - common_response(rsp_json).await + let ctp_error = CTPError::CTPClientNotReadyError(NewCTPError("MD Client Not Ready".to_owned())); + + Err(ctp_error) } } @@ -286,7 +270,7 @@ pub async fn get_sub_instruments() -> CTPResult> { } let rsp_result = RspResult{ - code: 1200, + code: 0, msg: "".to_owned(), result: instruments }; diff --git a/src/ctp_client/query_commission_rate.rs b/src/ctp_client/query_commission_rate.rs index cbbf860..7691626 100644 --- a/src/ctp_client/query_commission_rate.rs +++ b/src/ctp_client/query_commission_rate.rs @@ -1,7 +1,7 @@ use rust_ctp::td_api; use std::sync::mpsc; -use crate::ctperror::CTPResult; +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; use crate::result::RspResult; use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; @@ -9,8 +9,7 @@ use super::InnerEvent; pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> CTPResult { - let mut ret; - let mut ret_msg = "".to_string(); + let ctp_error; //--T1--->| |--->process T1 // --->send same enum T instance---> @@ -23,16 +22,17 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> if reg_err_ok && reg_ok { - ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); + let ret = td_api::query_commission_rate(user_id,broker_id,instrument_id); if ret == 0 { //Must received the same type - let received_event = rx.recv().unwrap(); + let received_event = rx.recv()?; match received_event{ InnerEvent::OnRspError(event) => { - ret = -1; - ret_msg = format!("query_commission_rate error event: {:?}",event); + + ctp_error = CTPError::CTPOnRspError(NewCTPError( + format!("query_commission_rate error event: {:?}",event))); }, InnerEvent::OnRspQryInstrumentCommissionRate(_is_last,event) => { @@ -41,7 +41,7 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> let rsp_result = RspResult{ code: ret, - msg: ret_msg, + msg: "".to_owned(), result: event }; @@ -49,32 +49,29 @@ pub fn query_commission_rate(user_id:&str,broker_id:&str,instrument_id:&str) -> }, _ => { error!("query_instruments received Unknow event: {:?}",received_event); + + ctp_error = CTPError::CTPOnRspError(NewCTPError( + format!("query_instruments received Unknow event: {:?}",received_event))); } } - }else{ - error!("query_commission_rate error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_commission_rate error, ret:{}, msg: {}",ret,api_return_code(ret)); + error!("query_commission_rate error, ret:{}, msg: {}", ret, api_return_code(ret)); + + ctp_error = api_return_code(ret); } }else{ warn!("please access for a while, query_commission_rate OnRspError:{}/OnRspQryInstrumentCommissionRate:{} event handler is busy.", reg_err_ok,reg_ok); - ret = -1; - ret_msg = "query_commission_rate too often,please access for a while".to_string(); + ctp_error = CTPError::CTPQueryFrequentError(NewCTPError( + "query_commission_rate too often,please access for a while".to_owned())); } td_api::EventHandler::UnRspQryInstrumentCommissionRate(); recover_on_error_push_event_handler(); - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: "".to_owned() - }; - - return Ok(serde_json::to_string(&rsp_result)?); + Err(ctp_error) } fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { diff --git a/src/ctp_client/query_investor_position.rs b/src/ctp_client/query_investor_position.rs index 38efdd3..4c99a9b 100644 --- a/src/ctp_client/query_investor_position.rs +++ b/src/ctp_client/query_investor_position.rs @@ -6,13 +6,12 @@ use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler} use super::InnerEvent; -use crate::ctperror::CTPResult; +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; //sync func about thread-safely pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult { - let mut ret; - let mut ret_msg="".to_owned(); + let ctp_error; let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); @@ -22,15 +21,17 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult if reg_err_ok && reg_ok{ - ret = td_api::query_investor_position(user_id,broker_id); + let ret = td_api::query_investor_position(user_id,broker_id); if ret == 0 { - let received_event = rx.recv().unwrap(); + let received_event = rx.recv()?; match received_event{ InnerEvent::OnRspError(event) => { - ret = -1; - ret_msg = format!("query_investor_position error event: {:?}",event); + + ctp_error = CTPError::CTPOnRspError(NewCTPError( + format!("query_investor_position error event: {:?}",event))); + }, InnerEvent::OnRspQryInvestorPosition(_is_last,event) => { @@ -39,7 +40,7 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult let rsp_result = RspResult { code: ret, - msg: ret_msg, + msg: "".to_owned(), result: event }; @@ -47,30 +48,28 @@ pub fn query_investor_position(user_id:&str,broker_id:&str) -> CTPResult }, _ => { error!("query_investor_position received Unknow event: {:?}",received_event); + + ctp_error = CTPError::CTPUnknowError(NewCTPError( + format!("query_investor_position received Unknow event: {:?}",received_event))); } } }else{ error!("query_investor_position error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_investor_position error, ret:{}, msg: {}",ret,api_return_code(ret)); + + ctp_error = api_return_code(ret); } }else{ warn!("query_investor_position OnRspError event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_investor_position too often,please access for a while".to_string(); + ctp_error = CTPError::CTPQueryFrequentError(NewCTPError( + "query_investor_position too often,please access for a while".to_owned())); } td_api::EventHandler::UnRspQryInvestorPosition(); recover_on_error_push_event_handler(); - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; - - Ok(serde_json::to_string(&rsp_result)?) + Err(ctp_error) } fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { diff --git a/src/ctp_client/query_settlement_info.rs b/src/ctp_client/query_settlement_info.rs index 90c9d0c..88d1eab 100644 --- a/src/ctp_client/query_settlement_info.rs +++ b/src/ctp_client/query_settlement_info.rs @@ -8,24 +8,12 @@ use rust_ctp::api_struct::rsp_settlement_info_field::RspSettlementInfoField; use super::InnerEvent; -use crate::ctperror::CTPResult; +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; //sync func about thread-safely pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { - - let mut ret; - let mut ret_msg; - - let mut com_rsp_settlement_info = RspSettlementInfoField { - TradingDay: "".to_string(), - SettlementID: 0, - BrokerID: "".to_string(), - InvestorID: "".to_string(), - SequenceNo: 0, - Content: "".to_string(), - AccountID: "".to_string(), - CurrencyID: "".to_string() - }; + + let mut ctp_error; let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); @@ -36,11 +24,9 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { if reg_err_ok && reg_ok { - ret = td_api::query_settlement_info(user_id,broker_id); + let ret = td_api::query_settlement_info(user_id,broker_id); if ret == 0 { - - ret_msg = "".to_owned(); let mut settlement_info_list = Vec::new(); loop { @@ -48,10 +34,13 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { match received_event { InnerEvent::OnRspError(event) => { - ret = -1; - ret_msg = format!("query_settlement_info error event: {:?}",event); + + ctp_error = CTPError::CTPOnRspError(NewCTPError( + format!("query_settlement_info error event: {:?}",event))); + settlement_info_list.clear(); break; + }, InnerEvent::OnRspQrySettlementInfo(is_last,event) => { // do not need to receive event @@ -63,10 +52,29 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { }, _ => { error!("query_settlement_info received Unknow event: {:?}",received_event); + + ctp_error = CTPError::CTPUnknowError(NewCTPError( + format!("query_settlement_info received Unknow event: {:?}",received_event))); } } } + + + td_api::EventHandler::UnRspQrySettlementInfo(); + recover_on_error_push_event_handler(); + + let mut com_rsp_settlement_info = RspSettlementInfoField { + TradingDay: "".to_string(), + SettlementID: 0, + BrokerID: "".to_string(), + InvestorID: "".to_string(), + SequenceNo: 0, + Content: "".to_string(), + AccountID: "".to_string(), + CurrencyID: "".to_string() + }; + //Process All settlement info for settlement_info in &settlement_info_list { if com_rsp_settlement_info.Content == "".to_owned() { @@ -75,29 +83,33 @@ pub fn query_settlement_info(user_id:&str,broker_id:&str) -> CTPResult { com_rsp_settlement_info.Content = com_rsp_settlement_info.Content+&settlement_info.Content; } } + + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: com_rsp_settlement_info + }; + + return Ok(serde_json::to_string(&rsp_result)?); }else{ error!("query_settlement_info error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_settlement_info error, ret:{}, msg: {}",ret,api_return_code(ret)); + + ctp_error = api_return_code(ret); } }else{ warn!("query_settlement_info OnRspError event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_settlement_info too often,please access for a while".to_string(); + ctp_error = CTPError::CTPQueryFrequentError(NewCTPError( + "query_settlement_info too often,please access for a while".to_owned())); + } td_api::EventHandler::UnRspQrySettlementInfo(); recover_on_error_push_event_handler(); - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: com_rsp_settlement_info - }; - - Ok(serde_json::to_string(&rsp_result)?) + Err(ctp_error) } diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 536dcbe..342350b 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -5,15 +5,14 @@ use std::sync::mpsc; use crate::result::RspResult; use crate::utils::ctputil::{api_return_code,recover_on_error_push_event_handler}; -use crate::ctperror::CTPResult; +use crate::ctperror::{NewCTPError,CTPError,CTPResult}; use super::InnerEvent; //查询资金账户 pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { let start = Instant::now(); - let mut ret; - let mut ret_msg = "".to_string(); + let mut ctp_error; let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); @@ -26,15 +25,17 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { debug!("binding OnRspError & OnRspQryTradingAccount cost: {:?} us", start.elapsed().as_micros()); - ret = td_api::query_trading_account(user_id,broker_id); + let ret = td_api::query_trading_account(user_id,broker_id); if ret == 0 { let received_event = rx.recv().unwrap(); match received_event { InnerEvent::OnRspError(event) => { - ret = -1; - ret_msg = format!("query_trading_account error event: {:?}",event); + + ctp_error = CTPError::CTPOnRspError(NewCTPError( + format!("query_trading_account error event: {:?}",event))); + }, InnerEvent::OnRspQryTradingAccount(_is_last,event) => { @@ -43,7 +44,7 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { let rsp_result = RspResult{ code: ret, - msg: ret_msg, + msg: "".to_owned(), result: event }; @@ -51,18 +52,22 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { }, _ => { error!("query_trading_account received Unknow event: {:?}",received_event); + + ctp_error = CTPError::CTPUnknowError(NewCTPError( + format!("query_trading_account received Unknow event: {:?}",received_event))); } } }else{ error!("query_trading_account error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("query_trading_account error, ret:{}, msg: {}",ret,api_return_code(ret)); + + ctp_error = api_return_code(ret); } }else{ warn!("query_trading_account OnRspError event handler is busy,please access for a while"); - ret = -1; - ret_msg = "query_trading_account too often,please access for a while".to_string(); + ctp_error = CTPError::CTPQueryFrequentError(NewCTPError( + "query_trading_account too often,please access for a while".to_owned())); } debug!("API query_trading_account cost: {:?} ms", start.elapsed().as_millis()); @@ -70,13 +75,7 @@ pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { td_api::EventHandler::UnRspQryTradingAccount(); recover_on_error_push_event_handler(); - let rsp_result = RspResult{ - code: ret, - msg: ret_msg, - result: "".to_owned() - }; - - Ok(serde_json::to_string(&rsp_result)?) + Err(ctp_error) } fn on_rsp_error(tx_rsp_err: std::sync::mpsc::Sender) -> bool { diff --git a/src/ctp_client/send_fill_and_kill_limit_order.rs b/src/ctp_client/send_fill_and_kill_limit_order.rs index 1758bd1..1d38f31 100644 --- a/src/ctp_client/send_fill_and_kill_limit_order.rs +++ b/src/ctp_client/send_fill_and_kill_limit_order.rs @@ -16,8 +16,6 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, volume_condition:&str, limit_price:f64) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_fill_and_kill_limit_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -28,18 +26,21 @@ pub fn send_fill_and_kill_limit_order(order_def_id:i32, volume_condition, limit_price); - if ret != order_def_id { - error!("send_fill_and_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_fill_and_kill_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + if ret == order_def_id { debug!("send_fill_and_kill_limit_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) + }else{ + + error!("send_fill_and_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - Ok(serde_json::to_string(&rsp_result)?) + Err(api_return_code(ret)) + } + } \ No newline at end of file diff --git a/src/ctp_client/send_fill_or_kill_limit_order.rs b/src/ctp_client/send_fill_or_kill_limit_order.rs index ce93b42..d49357c 100644 --- a/src/ctp_client/send_fill_or_kill_limit_order.rs +++ b/src/ctp_client/send_fill_or_kill_limit_order.rs @@ -15,8 +15,6 @@ pub fn send_fill_or_kill_limit_order(order_def_id:i32, volume:i32, limit_price:f64) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_fill_or_kill_limit_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -27,17 +25,20 @@ pub fn send_fill_or_kill_limit_order(order_def_id:i32, limit_price); if ret != order_def_id { - error!("send_fill_or_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_fill_or_kill_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + debug!("send_fill_or_kill_limit_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) + }else{ + + error!("send_fill_or_kill_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - Ok(serde_json::to_string(&rsp_result)?) -} \ No newline at end of file + Err(api_return_code(ret)) + } +} diff --git a/src/ctp_client/send_limit_order.rs b/src/ctp_client/send_limit_order.rs index 2f90fca..ed3bcf3 100644 --- a/src/ctp_client/send_limit_order.rs +++ b/src/ctp_client/send_limit_order.rs @@ -15,8 +15,6 @@ pub fn send_limit_order(order_def_id:i32, volume:i32, limit_price:f64) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_limit_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -26,18 +24,21 @@ pub fn send_limit_order(order_def_id:i32, volume, limit_price); - if ret != order_def_id { - error!("send_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + if ret == order_def_id { + debug!("send_market_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) - Ok(serde_json::to_string(&rsp_result)?) + }else{ + error!("send_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + + Err(api_return_code(ret)) + } } \ No newline at end of file diff --git a/src/ctp_client/send_market_if_touched_order.rs b/src/ctp_client/send_market_if_touched_order.rs index ee007db..bfa5d02 100644 --- a/src/ctp_client/send_market_if_touched_order.rs +++ b/src/ctp_client/send_market_if_touched_order.rs @@ -15,8 +15,6 @@ pub fn send_market_if_touched_order(order_def_id:i32, stop_price_condition:&str, stop_price:f64) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_market_if_touched_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -27,18 +25,20 @@ pub fn send_market_if_touched_order(order_def_id:i32, stop_price_condition, stop_price); - if ret != order_def_id { - error!("send_market_if_touched_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_market_if_touched_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + if ret == order_def_id { debug!("send_market_if_touched_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) + }else{ + error!("send_market_if_touched_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + + Err(api_return_code(ret)) + } - Ok(serde_json::to_string(&rsp_result)?) } \ No newline at end of file diff --git a/src/ctp_client/send_market_order.rs b/src/ctp_client/send_market_order.rs index ab7f5fa..d55590c 100644 --- a/src/ctp_client/send_market_order.rs +++ b/src/ctp_client/send_market_order.rs @@ -14,8 +14,6 @@ pub fn send_market_order(order_def_id:i32, open_close:&str, volume:i32) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_market_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -24,18 +22,23 @@ pub fn send_market_order(order_def_id:i32, open_close, volume); - if ret != order_def_id { - error!("send_market_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_market_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + if ret == order_def_id { + debug!("send_market_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) + + }else{ + error!("send_market_order error, ret:{}, msg: {}", ret,api_return_code(ret)); + + Err(api_return_code(ret)) + } - Ok(serde_json::to_string(&rsp_result)?) + } \ No newline at end of file diff --git a/src/ctp_client/send_stop_limit_order.rs b/src/ctp_client/send_stop_limit_order.rs index 8ca7bd2..66ec9da 100644 --- a/src/ctp_client/send_stop_limit_order.rs +++ b/src/ctp_client/send_stop_limit_order.rs @@ -17,8 +17,6 @@ pub fn send_stop_limit_order(order_def_id:i32, stop_price_condition:&str, stop_price:f64) -> CTPResult { - let mut ret_msg = "".to_string(); - let ret = td_api::send_stop_limit_order(order_def_id.to_string().as_str(), user_id, broker_id, @@ -30,18 +28,21 @@ pub fn send_stop_limit_order(order_def_id:i32, stop_price_condition, stop_price); - if ret != order_def_id { - error!("send_stop_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - ret_msg = format!("send_stop_limit_order error, ret:{}, msg: {}",ret,api_return_code(ret)); - }else{ + if ret == order_def_id { + debug!("send_stop_limit_order req ok, return order_def_id:{}", ret); - } - let rsp_result = RspResult { - code: ret, - msg: ret_msg, - result: "".to_owned() - }; + let rsp_result = RspResult { + code: ret, + msg: "".to_owned(), + result: "".to_owned() + }; + + Ok(serde_json::to_string(&rsp_result)?) + }else{ + + error!("send_stop_limit_order error, ret:{}, msg: {}", ret,api_return_code(ret)); - Ok(serde_json::to_string(&rsp_result)?) + Err(api_return_code(ret)) + } } \ No newline at end of file diff --git a/src/ctperror.rs b/src/ctperror.rs index 80a9e19..d53d2a0 100644 --- a/src/ctperror.rs +++ b/src/ctperror.rs @@ -1,24 +1,58 @@ +use serde::Serialize; +#[derive(Debug,Serialize)] +pub struct NewCTPError(pub String); + +///实现Display的trait,并实现fmt方法 +impl std::fmt::Display for NewCTPError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + //let err_json= serde_json::to_string(self).unwrap_or("{}".to_owned()); + write!(f, "{}",self.0) + } +} + +///实现Error的trait,因为没有子Error,不需要覆盖source()方法 +impl std::error::Error for NewCTPError {} + pub type CTPResult = std::result::Result; //借助From Trait, 把T当初第三方函数Error,就可以统一映射到enum CTPError中 //通过?返回第三方函数Error并且自动转换 #[derive(Debug)] pub enum CTPError { - SerdeJsonError(i32,serde_json::error::Error), - HttpError(i32,http::Error), - HyperError(i32,hyper::Error), - FromUtf8Error(i32,std::string::FromUtf8Error), + SerdeJsonError(serde_json::error::Error), + HttpError(http::Error), + HyperError(hyper::Error), + FromUtf8Error(std::string::FromUtf8Error), + MpscRecvError(std::sync::mpsc::RecvError), + CTPOk(NewCTPError), + CTPConnectionError(NewCTPError), + CTPUnprocessedRequestError(NewCTPError), + CTPLimitRequestError(NewCTPError), + CTPQueryFrequentError(NewCTPError), + CTPUnknowError(NewCTPError), + CTPOnRspError(NewCTPError), + CTPClientNotReadyError(NewCTPError), } impl std::error::Error for CTPError { fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { match &self { - CTPError::SerdeJsonError(_,ref e) => Some(e), - CTPError::HttpError(_,ref e) => Some(e), - CTPError::HyperError(_,ref e)=>Some(e), - CTPError::FromUtf8Error(_,ref e)=>Some(e), + CTPError::SerdeJsonError(ref e) => Some(e), + CTPError::HttpError(ref e) => Some(e), + CTPError::HyperError(ref e)=>Some(e), + CTPError::FromUtf8Error(ref e)=>Some(e), + CTPError::MpscRecvError(ref e)=>Some(e), + + CTPError::CTPOk(ref e) =>Some(e), + CTPError::CTPConnectionError(ref e) =>Some(e), + CTPError::CTPUnprocessedRequestError(ref e) =>Some(e), + CTPError::CTPLimitRequestError(ref e)=>Some(e), + CTPError::CTPQueryFrequentError(ref e) => Some(e), + CTPError::CTPUnknowError(ref e)=>Some(e), + CTPError::CTPOnRspError(ref e)=>Some(e), + CTPError::CTPClientNotReadyError(ref e)=>Some(e), } } } @@ -27,35 +61,50 @@ impl std::fmt::Display for CTPError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match &self { - CTPError::SerdeJsonError(_,ref e) => e.fmt(f), - CTPError::HttpError(_,ref e) => e.fmt(f), - CTPError::HyperError(_,ref e)=>e.fmt(f), - CTPError::FromUtf8Error(_,ref e)=>e.fmt(f), + CTPError::SerdeJsonError(ref e) => e.fmt(f), + CTPError::HttpError(ref e) => e.fmt(f), + CTPError::HyperError(ref e)=>e.fmt(f), + CTPError::FromUtf8Error(ref e)=>e.fmt(f), + CTPError::MpscRecvError(ref e)=>e.fmt(f), + CTPError::CTPOk(ref e) =>e.fmt(f), + CTPError::CTPConnectionError(ref e) =>e.fmt(f), + CTPError::CTPUnprocessedRequestError(ref e) =>e.fmt(f), + CTPError::CTPLimitRequestError(ref e)=>e.fmt(f), + CTPError::CTPQueryFrequentError(ref e) => e.fmt(f), + CTPError::CTPUnknowError(ref e)=>e.fmt(f), + CTPError::CTPOnRspError(ref e)=>e.fmt(f), + CTPError::CTPClientNotReadyError(ref e)=>e.fmt(f), } } } impl From for CTPError { fn from(e: serde_json::error::Error) -> Self { - CTPError::SerdeJsonError(4001,e) + CTPError::SerdeJsonError(e) } } impl From for CTPError { fn from(e: http::Error) -> Self { - CTPError::HttpError(4002,e) + CTPError::HttpError(e) } } impl From for CTPError { fn from(e: hyper::Error) -> Self { - CTPError::HyperError(4004,e) + CTPError::HyperError(e) } } impl From for CTPError { fn from(e: std::string::FromUtf8Error) -> Self { - CTPError::FromUtf8Error(4005,e) + CTPError::FromUtf8Error(e) + } +} + +impl From for CTPError { + fn from(e: std::sync::mpsc::RecvError) -> Self { + CTPError::MpscRecvError(e) } } diff --git a/src/routes.rs b/src/routes.rs index 9b5c05a..06887af 100644 --- a/src/routes.rs +++ b/src/routes.rs @@ -5,6 +5,8 @@ use std::convert::Infallible; use crate::ctp_client::mdcontroller; use crate::ctp_client::tdcontroller; +use crate::ctperror::CTPError; + pub async fn mdroutes(req: Request) -> Result, Infallible> { let res_result = match (req.method(), req.uri().path()) { @@ -85,11 +87,56 @@ pub async fn mdroutes(req: Request) -> Result, Infallible> //make sure routes return is Infallible match res_result { Ok(response) => Ok(response), - Err(ref error) => { - error!("API ERROR: {:?}",error); + Err(ref ctp_error) => { + error!("CTP API ERROR: {}",ctp_error); - let error_json = format!(r#"{{"code": 1404, "message": "API Error:{:?}","result": ""}}"#, error); + let error_code; + match ctp_error { + + CTPError::CTPOk(ref _e) =>{ + error_code = 0 + }, + CTPError::SerdeJsonError(ref _e) => { + error_code = 4000 + }, + CTPError::HttpError(ref _e) => { + error_code = 4001 + }, + CTPError::HyperError(ref _e)=>{ + error_code = 4002 + }, + CTPError::FromUtf8Error(ref _e)=>{ + error_code = 4003 + }, + CTPError::CTPUnknowError(ref _e)=>{ + error_code = 4004 + }, + CTPError::CTPConnectionError(ref _e) =>{ + error_code = 4005 + }, + CTPError::CTPUnprocessedRequestError(ref _e) =>{ + error_code = 4006 + }, + CTPError::CTPLimitRequestError(ref _e)=>{ + error_code = 4007 + }, + CTPError::CTPQueryFrequentError(ref _e)=>{ + error_code = 4008 + }, + CTPError::CTPOnRspError(ref _e) => { + error_code = 4009 + }, + CTPError::MpscRecvError(ref _e) => { + error_code = 4010 + }, + CTPError::CTPClientNotReadyError(ref _e)=>{ + error_code = 4011 + }, + } + + let error_json = format!(r#"{{"code": {}, "message": "{}","result": ""}}"#, error_code,ctp_error); + let mut response = Response::new(Body::empty()); response.headers_mut().insert(header::CONTENT_TYPE, HeaderValue::from_static("application/json")); diff --git a/src/utils/ctputil.rs b/src/utils/ctputil.rs index 540b2e4..cefab67 100644 --- a/src/utils/ctputil.rs +++ b/src/utils/ctputil.rs @@ -10,7 +10,7 @@ use super::super::result::EmptyResult; use std::{env}; use crate::ctp_client::{PushEvent,PushEventSinker}; - +use crate::ctperror::{NewCTPError,CTPError}; //not adapt Struct defined in request pub async fn unprocessable_request() -> CTPResult> { @@ -55,13 +55,13 @@ pub fn on_front_disconnected_reason(n_reason: i32)-> String { ///#-1,表示网络连接失败 ///#-2,表示未处理请求超过许可数 ///#-3,表示每秒发送请求数超过许可数 -pub fn api_return_code(ret: i32)-> String { +pub fn api_return_code(ret: i32)-> CTPError { match ret { - 0 => "成功".to_string(), - -1 => "网络连接失败".to_string(), - -2 => "未处理请求超过许可数".to_string(), - -3 => "每秒发送请求数超过许可数".to_string(), - _ => "未知错误码".to_string(), + 0 => CTPError::CTPOk(NewCTPError("成功".to_owned())),//"成功".to_string(), + -1 => CTPError::CTPConnectionError(NewCTPError("网络连接失败".to_owned())),//"网络连接失败".to_string(), + -2 => CTPError::CTPUnprocessedRequestError(NewCTPError("未处理请求超过许可数".to_owned())),//"未处理请求超过许可数".to_string(), + -3 => CTPError::CTPLimitRequestError(NewCTPError("每秒发送请求数超过许可数".to_owned())),//"每秒发送请求数超过许可数".to_string(), + _ => CTPError::CTPUnknowError(NewCTPError("未知错误码".to_owned())),//"未知错误码".to_string(), } } -- Gitee From 53edabd54b996258f399bd440ad2c8d8c5fe2112 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Wed, 10 Nov 2021 19:49:53 +0800 Subject: [PATCH 72/75] add error philosophy --- src/ctp_client/query_trading_account.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ctp_client/query_trading_account.rs b/src/ctp_client/query_trading_account.rs index 342350b..09e2848 100644 --- a/src/ctp_client/query_trading_account.rs +++ b/src/ctp_client/query_trading_account.rs @@ -12,7 +12,7 @@ use super::InnerEvent; pub fn query_trading_account(user_id:&str,broker_id:&str) -> CTPResult { let start = Instant::now(); - let mut ctp_error; + let ctp_error; let (tx, rx) = mpsc::channel(); let tx_rsp_err = tx.clone(); -- Gitee From 37e68a29c1194fa9968038c85241ea70b369ba71 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Thu, 11 Nov 2021 08:01:56 +0800 Subject: [PATCH 73/75] add client addr log --- src/ctp_client/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ctp_client/mod.rs b/src/ctp_client/mod.rs index 303f38e..1cdfac7 100755 --- a/src/ctp_client/mod.rs +++ b/src/ctp_client/mod.rs @@ -139,4 +139,7 @@ pub async fn init() { mdcontroller::init().await; tdcontroller::init().await; + + info!("CTP market client Ready, market_front_addr: {}",CTP_MARKET_FRONT_ADDR.get().unwrap()); + info!("CTP trader client Ready, trade_front_addr: {}",CTP_TRADE_FRONT_ADDR.get().unwrap()); } \ No newline at end of file -- Gitee From 21f4dc9010c1962fa0db81c548d4bf251ca5dab6 Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 18 Jan 2022 10:44:50 +0800 Subject: [PATCH 74/75] add Postman collection --- CTP_access.postman_collection.json | 1069 ++++++++++++++++++++++++++++ README.md | 30 +- 2 files changed, 1085 insertions(+), 14 deletions(-) create mode 100644 CTP_access.postman_collection.json diff --git a/CTP_access.postman_collection.json b/CTP_access.postman_collection.json new file mode 100644 index 0000000..8b269d8 --- /dev/null +++ b/CTP_access.postman_collection.json @@ -0,0 +1,1069 @@ +{ + "info": { + "_postman_id": "036d6453-6765-4fbe-942a-e6d12abbe92a", + "name": "CTP_access", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "item": [ + { + "name": "/subscribe", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"instrument_ids\": [\"au2112\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/subscribe", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "subscribe" + ] + } + }, + "response": [] + }, + { + "name": "/subscribe", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/subscribe", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "subscribe" + ] + } + }, + "response": [] + }, + { + "name": "/unsubscribe", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"instrument_ids\": [\"au2112\"]\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/unsubscribe", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "unsubscribe" + ] + } + }, + "response": [] + }, + { + "name": "/get_trading_day", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/get_trading_day", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "get_trading_day" + ] + } + }, + "response": [] + }, + { + "name": "/query_settlement_info", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/query_settlement_info", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "query_settlement_info" + ] + } + }, + "response": [] + }, + { + "name": "/query_trading_account", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/query_trading_account", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "query_trading_account" + ] + } + }, + "response": [] + }, + { + "name": "/query_investor_position", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/query_investor_position", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "query_investor_position" + ] + } + }, + "response": [] + }, + { + "name": "/query_commission_rate", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/query_commission_rate?instrument_id=au2112", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "query_commission_rate" + ], + "query": [ + { + "key": "instrument_id", + "value": "au2112" + } + ] + } + }, + "response": [] + }, + { + "name": "/query_instrument", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/query_instrument?instrument_id=MA201", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "query_instrument" + ], + "query": [ + { + "key": "instrument_id", + "value": "MA201" + } + ] + } + }, + "response": [] + }, + { + "name": "市价单:/send_market_order上期所(实盘环境不支持,Simnow环境不支持)", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"ag2112\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_market_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_market_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "市价单:/send_market_order大商所(实盘环境不支持,Simnow环境不支持)", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"i2201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_market_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_market_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "市价单:/send_market_order中金所(实盘支持近2个月合约,远月不支持,SimNow不支持)", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"T2203\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_market_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_market_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "市价单:/send_market_order郑商所(实盘支持,SimNow不支持)", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"MA201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_market_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_market_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "限价单:/send_limit_order上期所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"sc2201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"limit_price\": 510\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_limit_order?instrument_id=sc2112&direction=买&open_close=开仓&volume=1&price=515.9", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_limit_order" + ], + "query": [ + { + "key": "instrument_id", + "value": "sc2112" + }, + { + "key": "direction", + "value": "买" + }, + { + "key": "open_close", + "value": "开仓" + }, + { + "key": "volume", + "value": "1" + }, + { + "key": "price", + "value": "515.9" + } + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "限价单:/send_limit_order大商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"i2201\",\n \"direction\": \"卖\",\n \"open_close\": \"平仓\",\n \"volume\": 2,\n \"limit_price\": 520\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_limit_order?instrument_id=i2201&direction=买&open_close=开仓&volume=1&price=520", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_limit_order" + ], + "query": [ + { + "key": "instrument_id", + "value": "i2201" + }, + { + "key": "direction", + "value": "买" + }, + { + "key": "open_close", + "value": "开仓" + }, + { + "key": "volume", + "value": "1" + }, + { + "key": "price", + "value": "520" + } + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "限价单:/send_limit_order中金所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"T2203\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"limit_price\": 100\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "限价单:/send_limit_order郑商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"MA201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"limit_price\": 2500\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_limit_order?instrument_id=MA201&direction=买&open_close=开仓&volume=1&price=2665", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_limit_order" + ], + "query": [ + { + "key": "instrument_id", + "value": "MA201" + }, + { + "key": "direction", + "value": "买" + }, + { + "key": "open_close", + "value": "开仓" + }, + { + "key": "volume", + "value": "1" + }, + { + "key": "price", + "value": "2665" + } + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n========================" + }, + "response": [] + }, + { + "name": "条件单:/send_stop_limit_order大商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"i2201\",\n \"direction\": \"卖\",\n \"open_close\": \"平仓\",\n \"volume\": 1,\n \"limit_price\": 534,\n \"stop_price_condition\": \"卖一价大于等于条件价\",\n \"stop_price\": 533\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_fill_or_kill_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_fill_or_kill_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n=========================\n\n\"stop_price_condition\":\"立即\",\n\n\"stop_price_condition\":\"止损\",\n\n\"stop_price_condition\":\"止赢\",\n\n\"stop_price_condition\":\"预埋单\",\n\n\"stop_price_condition\":\"最新价大于条件价\",\n\n\"stop_price_condition\":\"最新价大于等于条件价\",\n\n\"stop_price_condition\":\"最新价小于条件价\",\n\n\"stop_price_condition\":\"最新价小于等于条件价\",\n\n\"stop_price_condition\":\"卖一价大于条件价\",\n\n\"stop_price_condition\":\"卖一价大于等于条件价\",\n\n\"stop_price_condition\":\"卖一价小于条件价\",\n\n\"stop_price_condition\":\"卖一价小于等于条件价\",\n\n\"stop_price_condition\":\"买一价大于条件价\",\n\n\"stop_price_condition\":\"买一价大于等于条件价\",\n\n\"stop_price_condition\":\"买一价小于条件价\",\n\n\"stop_price_condition\":\"买一价小于等于条件价\",\n\n============================\n\n\n\n(stop_price + stop_price_condition 触发生效一个限价单limit_price)\n\n(止损、止赢需要交易所支持,SimNow环境所有交易所都不能支持止损止盈条件单)\n\n(止损、止赢需要交易所支持,券商实盘仿真环境大商所支持止损止盈条件单?)\n\n(条件单有效触发条件,所有交易所支持)\n\n最新价大于条件价\n\n最新价大于等于条件价\n\n最新价小于条件价\n\n最新价小于等于条件价\n\n卖一价大于条件价\n\n卖一价大于等于条件价\n\n卖一价小于条件价\n\n卖一价小于等于条件价\n\n买一价大于条件价\n\n买一价大于等于条件价\n\n买一价小于条件价\n\n买一价小于等于条件价\n\n=========================" + }, + "response": [] + }, + { + "name": "条件单:/send_stop_limit_order郑商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"MA201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"limit_price\": 2525,\n \"stop_price_condition\": \"最新价大于条件价\",\n \"stop_price\": 2510\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_stop_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_stop_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n\n=============================\n\n\"stop_price_condition\":\"立即\",\n\n\"stop_price_condition\":\"止损\",\n\n\"stop_price_condition\":\"止赢\",\n\n\"stop_price_condition\":\"预埋单\",\n\n\"stop_price_condition\":\"最新价大于条件价\",\n\n\"stop_price_condition\":\"最新价大于等于条件价\",\n\n\"stop_price_condition\":\"最新价小于条件价\",\n\n\"stop_price_condition\":\"最新价小于等于条件价\",\n\n\"stop_price_condition\":\"卖一价大于条件价\",\n\n\"stop_price_condition\":\"卖一价大于等于条件价\",\n\n\"stop_price_condition\":\"卖一价小于条件价\",\n\n\"stop_price_condition\":\"卖一价小于等于条件价\",\n\n\"stop_price_condition\":\"买一价大于条件价\",\n\n\"stop_price_condition\":\"买一价大于等于条件价\",\n\n\"stop_price_condition\":\"买一价小于条件价\",\n\n\"stop_price_condition\":\"买一价小于等于条件价\",\n\n============================\n\n(stop_price + stop_price_condition 触发生效一个限价单limit_price)\n\n(止损、止赢需要交易所支持,SimNow环境所有交易所都不能支持止损止盈条件单)\n\n(止损、止赢需要交易所支持,券商实盘仿真环境大商所支持止损止盈条件单?)\n\n(条件单有效触发条件,所有交易所支持)\n\n最新价大于条件价\n\n最新价大于等于条件价\n\n最新价小于条件价\n\n最新价小于等于条件价\n\n卖一价大于条件价\n\n卖一价大于等于条件价\n\n卖一价小于条件价\n\n卖一价小于等于条件价\n\n买一价大于条件价\n\n买一价大于等于条件价\n\n买一价小于条件价\n\n买一价小于等于条件价\n\n=========================" + }, + "response": [] + }, + { + "name": "条件单:/send_stop_limit_order上期所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"rb2201\",\n \"direction\": \"卖\",\n \"open_close\": \"平仓\",\n \"volume\": 3,\n \"limit_price\": 4370,\n \"stop_price_condition\": \"最新价大于条件价\",\n \"stop_price\": 4370\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_stop_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_stop_limit_order" + ] + }, + "description": "\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n=========================\n\n\"stop_price_condition\":\"立即\",\n\n\"stop_price_condition\":\"止损\",\n\n\"stop_price_condition\":\"止赢\",\n\n\"stop_price_condition\":\"预埋单\",\n\n\"stop_price_condition\":\"最新价大于条件价\",\n\n\"stop_price_condition\":\"最新价大于等于条件价\",\n\n\"stop_price_condition\":\"最新价小于条件价\",\n\n\"stop_price_condition\":\"最新价小于等于条件价\",\n\n\"stop_price_condition\":\"卖一价大于条件价\",\n\n\"stop_price_condition\":\"卖一价大于等于条件价\",\n\n\"stop_price_condition\":\"卖一价小于条件价\",\n\n\"stop_price_condition\":\"卖一价小于等于条件价\",\n\n\"stop_price_condition\":\"买一价大于条件价\",\n\n\"stop_price_condition\":\"买一价大于等于条件价\",\n\n\"stop_price_condition\":\"买一价小于条件价\",\n\n\"stop_price_condition\":\"买一价小于等于条件价\",\n\n============================\n\n\n(stop_price + stop_price_condition 触发生效一个限价单limit_price)\n\n(止损、止赢需要交易所支持,SimNow环境所有交易所都不能支持止损止盈条件单)\n\n(止损、止赢需要交易所支持,券商实盘仿真环境大商所支持止损止盈条件单?)\n\n(条件单有效触发条件,所有交易所支持)\n\n最新价大于条件价\n\n最新价大于等于条件价\n\n最新价小于条件价\n\n最新价小于等于条件价\n\n卖一价大于条件价\n\n卖一价大于等于条件价\n\n卖一价小于条件价\n\n卖一价小于等于条件价\n\n买一价大于条件价\n\n买一价大于等于条件价\n\n买一价小于条件价\n\n买一价小于等于条件价\n\n=========================" + }, + "response": [] + }, + { + "name": "止盈单:/send_stop_limit_order大商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"i2201\",\n \"direction\": \"卖\",\n \"open_close\": \"平仓\",\n \"volume\": 1,\n \"limit_price\": 573,\n \"stop_price_condition\": \"止盈\",\n \"stop_price\": 573\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_stop_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_stop_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n=========================\n\n\"stop_price_condition\":\"立即\",\n\n\"stop_price_condition\":\"止损\",\n\n\"stop_price_condition\":\"止赢\",\n\n\"stop_price_condition\":\"预埋单\",\n\n\"stop_price_condition\":\"最新价大于条件价\",\n\n\"stop_price_condition\":\"最新价大于等于条件价\",\n\n\"stop_price_condition\":\"最新价小于条件价\",\n\n\"stop_price_condition\":\"最新价小于等于条件价\",\n\n\"stop_price_condition\":\"卖一价大于条件价\",\n\n\"stop_price_condition\":\"卖一价大于等于条件价\",\n\n\"stop_price_condition\":\"卖一价小于条件价\",\n\n\"stop_price_condition\":\"卖一价小于等于条件价\",\n\n\"stop_price_condition\":\"买一价大于条件价\",\n\n\"stop_price_condition\":\"买一价大于等于条件价\",\n\n\"stop_price_condition\":\"买一价小于条件价\",\n\n\"stop_price_condition\":\"买一价小于等于条件价\",\n\n============================\n\n\n\n(stop_price + stop_price_condition 触发生效一个限价单limit_price)\n\n(止损、止赢需要交易所支持,SimNow环境所有交易所都不能支持止损止盈条件单)\n\n(止损、止赢需要交易所支持,券商实盘仿真环境大商所支持止损止盈条件单?)\n\n(条件单有效触发条件,所有交易所支持)\n\n最新价大于条件价\n\n最新价大于等于条件价\n\n最新价小于条件价\n\n最新价小于等于条件价\n\n卖一价大于条件价\n\n卖一价大于等于条件价\n\n卖一价小于条件价\n\n卖一价小于等于条件价\n\n买一价大于条件价\n\n买一价大于等于条件价\n\n买一价小于条件价\n\n买一价小于等于条件价\n\n=========================" + }, + "response": [] + }, + { + "name": "触价单:/send_market_if_touched_order大商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"i2201\",\n \"direction\": \"卖\",\n \"open_close\": \"平仓\",\n \"volume\": 1,\n \"stop_price_condition\": \"止盈\",\n \"stop_price\": 570\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_market_if_touched_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_market_if_touched_order" + ] + }, + "description": "# API的Body参数枚举值\n\n==========================================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n==========================================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n==========================================\n\n\"stop_price_condition\":\"立即\",\n\n\"stop_price_condition\":\"止损\",\n\n\"stop_price_condition\":\"止赢\",\n\n\"stop_price_condition\":\"预埋单\",\n\n\"stop_price_condition\":\"最新价大于条件价\",\n\n\"stop_price_condition\":\"最新价大于等于条件价\",\n\n\"stop_price_condition\":\"最新价小于条件价\",\n\n\"stop_price_condition\":\"最新价小于等于条件价\",\n\n\"stop_price_condition\":\"卖一价大于条件价\",\n\n\"stop_price_condition\":\"卖一价大于等于条件价\",\n\n\"stop_price_condition\":\"卖一价小于条件价\",\n\n\"stop_price_condition\":\"卖一价小于等于条件价\",\n\n\"stop_price_condition\":\"买一价大于条件价\",\n\n\"stop_price_condition\":\"买一价大于等于条件价\",\n\n\"stop_price_condition\":\"买一价小于条件价\",\n\n\"stop_price_condition\":\"买一价小于等于条件价\",\n\n==========================================\n\n\n(stop_price + stop_price_condition 触发生效一个限价单limit_price)\n\n(止损、止赢需要交易所支持,SimNow环境所有交易所都不能支持止损止盈条件单)\n\n(止损、止赢需要交易所支持,券商实盘仿真环境大商所支持止损止盈条件单?)\n\n(条件单有效触发条件,所有交易所支持)\n\n最新价大于条件价\n\n最新价大于等于条件价\n\n最新价小于条件价\n\n最新价小于等于条件价\n\n卖一价大于条件价\n\n卖一价大于等于条件价\n\n卖一价小于条件价\n\n卖一价小于等于条件价\n\n买一价大于条件价\n\n买一价大于等于条件价\n\n买一价小于条件价\n\n买一价小于等于条件价\n\n=========================" + }, + "response": [] + }, + { + "name": "FAK单:/send_fill_and_kill_limit_order郑商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"MA201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"volume_condition\": \"任何数量\",\n \"limit_price\": 2800\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_fill_and_kill_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_fill_and_kill_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n=========================\n\n\"volume_condition\": \"任何数量\",\n\n\"volume_condition\": \"最小数量\",\n\n=========================" + }, + "response": [] + }, + { + "name": "FOK单:/send_fill_or_kill_limit_order郑商所", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"instrument_id\": \"MA201\",\n \"direction\": \"买\",\n \"open_close\": \"开仓\",\n \"volume\": 1,\n \"limit_price\": 2800\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/send_fill_or_kill_limit_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "send_fill_or_kill_limit_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"direction\":\"买\",\n\n\"direction\":\"卖\",\n\n========================\n\n\"open_close\": \"开仓\",\n\n\"open_close\": \"平仓\",\n\n\"open_close\": \"平今\",\n\n\"open_close\": \"平昨\",\n\n=========================" + }, + "response": [] + }, + { + "name": "撤单:/cancel_order", + "request": { + "method": "PUT", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"exchange_id\": \"CFFEX\",\n \"order_sys_id\": \" 414991\",\n \"cancel_action\": \"删除\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{ip}}:5000/api/v1/cancel_order", + "host": [ + "{{ip}}" + ], + "port": "5000", + "path": [ + "api", + "v1", + "cancel_order" + ] + }, + "description": "# API的Body参数枚举值\n\n========================\n\n\"cancel_action\": \"删除\",\n\n========================" + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 5df6522..f1d2eab 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,6 @@ #### 介绍 用于CTP行情与交易的客户端向外提供服务(http/dapr)。实现一个高性能HTTP异步IO的服务器和集成相应的api -#### 调试环境——如何与dapr sidecar port(DAPR_GRPC_PORT)交互? - -1. 先启动一个dapr side car 服务 -2. 可以使用k8s port-portward把k8s pod 的sidecar端口导出 -3. 可以使用dapr的rust-sdk来写程序与dapr sidecar和整个dapr系统交互 - #### 开发环境 ##代码 @@ -17,7 +11,7 @@ ## 镜像 Goland启动一个Docker开发环境 镜像地址: -- octopusquant/ctp-md-access:vim-valgrind-cargoconfig-1.53.0-nightly +- noquant/ctp_access:valgrind-cargoconfig-gitstore-rust1.54.0-etcprofile-ctpenv-nqbot-ctpaccesslib-nettools 该镜像安装有: - rust-1.53.0-nightly @@ -89,20 +83,22 @@ helper = store - CTP_USER_PRODUCT_INFO=rust_ctp - CTP_SUB_INSTRUMENT_LIST=au2112,ag2112 -#### Dapr环境变量 +#### 调试环境——如何与dapr sidecar交互? +1. 先启动一个dapr sidecar 服务 +2. 可以使用k8s port-portward把k8s pod 的sidecar端口导出 +3. 可以使用dapr的rust-sdk来写程序与dapr sidecar和整个dapr系统交互 +``` +kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 +``` +#### Dapr环境相关变量 +- CTP_EVENT_SINKER(配置为DAPR,CTP的事件会发送到DAPR sidecar,其他DAPR可订阅事件) - DAPR_HTTP_HOST(可不配置,默认为localhost,配置为了方便调试) - DAPR_HTTP_PORT(可不配置,默认为3500,配置为了方便调试) - ##### Dapr必须配置的组件名字 - 状态组件固定名字为statestore -#### 运行Docker容器前的DAPR环境支持 -``` -kubectl port-forward --address 0.0.0.0 pod/nginx-test-b599bc598-4cqvs 3500:3500 -``` - #### Docker RUN - docker运行命令 @@ -116,6 +112,11 @@ docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/oc ```source /root/.bashrc``` +## Postman测试 + +1. 根目录的CTP_access.postman_collection.json文件导入postman +2. 配置postman的环境变量{{ip}}为可访问Docker容器的主机ip + ## VScode 使用SFTP远程开发 ### 安装SFTP 1.15.6版本 @@ -152,3 +153,4 @@ docker run -d -it --name ctp_access -p 5000:5000 -v /home/amax/testdapruntime/oc "openSsh": false } ``` + -- Gitee From f34b47a685a2768eebfe835444756dc174f298ac Mon Sep 17 00:00:00 2001 From: zhangshuiyong <632386504@qq.com> Date: Tue, 18 Jan 2022 11:00:34 +0800 Subject: [PATCH 75/75] delete build.rs /add vscode sftp plugin --- .vscode/sftp.json | 12 ++++++++++++ build.rs | 4 ---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 .vscode/sftp.json delete mode 100755 build.rs diff --git a/.vscode/sftp.json b/.vscode/sftp.json new file mode 100644 index 0000000..b586b32 --- /dev/null +++ b/.vscode/sftp.json @@ -0,0 +1,12 @@ +{ + "name": "76", + "host": "192.168.202.76", + "protocol": "sftp", + "port": 22, + "username": "amax", + "password": "pc@asdf", + "remotePath": "/home/amax/testdapruntime/octopus/ctp_access", + "uploadOnSave": true, + "useTempFile": false, + "openSsh": false +} \ No newline at end of file diff --git a/build.rs b/build.rs deleted file mode 100755 index 68842a7..0000000 --- a/build.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() { - println!("cargo:rustc-link-lib=rustmdclient"); - println!("cargo:rustc-link-lib=thostmduserapi_se"); -} -- Gitee

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

|lksWQ7Y71B-m#-DM|kPC zMV}>RrNPDhc4(v+K)l*Giy2tGZM^(j6*j$y-vHb1lY}t6V~$=bcaG<}bu~Siz=Qqm zqfDE>T$MU_?(A#2s9e=ak3+k08R@UqX0w?Vv-{)rmxg8>$J4Z(S}L!5O$g+zhZXDn zK*`=`930X`>mDu!QJK5X670vo>%0<#XA|i<+^s08N%q7+2P0Txu$K$M7IQC8C)uVq zhud)Fjj4Qmy?H!U?H4w_g)$E*LxqEoStwG<6cL$1BvC}jP>B+bAybGn7%CbhWGX5l zWGW>ZC`mMtGBpqx`t7sVz2DDs&hP!c`;RBjWm)&SuQl#_?}PY_Hmj>8gY(B^ z*L6Ks)7!CnsN~yk>H3lGE!ycC8-`{VUo6+3Jrh|{el4k75C5wmYJHPWV+HRiEE}*= zD_*{-uZjI@+54PHTirk+5DcEP361ua4P->2E9D>(lCNGs4a$;fs`GZ_kGx zcz7#vsiVw!?(XzcA7U*!4kWGdd&H5IRM1rN&*Or3^}nqhBMyy%E%pO~(`zdoW|lf% zG(X=rlA!pYf}M47SHMW=?AuXy#YOxEJ~M6kO&>H*OMVHl3wk25^|zG|{_Cluvm>Vk z0#k1aMD3h<;uv*DT5MyePk3L`4(oc8`!|c4*%b3U*q4VUy$(9R!T#ySw=pZSPt9D= z3^e%rT(#KBz}d7@;da^ghYEjM%LPJ)bf7!FsF>5GD;|I5O?`8+fXR^Kg9#>x}%5R=k+~PN* zGrfyvJ4Bwv@HoKZ=w|Mx3xZ;5 zW|f=QmBw~0R@{=E!O8mJF6*gdS`nLyIX4_VFE?*B_p!4$>z_zjx=K{8&CKD`BRwtcq;U<_HBAfG`i_iN*Q=Db zST$*uSlI4J^i6b!^Jgin7vkeTrVX!) zh(zr-|G0EQzHpb-nsm%zUEM;7i=8=9J}lGPNus`?UQG@?oe!@%uW<4@82(H9hfku7(z_7Z zOH;?J_j314jB_#Hv+Sa(8NP_1kjiQ@Vh=IQ*o)^^w*87VN(kFKOgv zHsQ7@|N4!trf%tb?Yw#IEA`_=!{4k++N2+3Y2Cy6wQyKS^1h`yb+lS-KHXt0|Iy(p zare=@i|;B0!(EeDPkv{e*e@KTqp)>Gpw*1CB_Kw5SzyQAGHkn`$+OMBtp>KYd%xUu zOBtJTNr@ggHEEr%(YAnHs*~ZHT&rGdv zM3B*eWZp1uE)n+Z^HWo|xgNB=+1Va`BCC8U`@-RYr-R;{p6i*hpRD-;=l|xoH_W@# z_iJV;IM=wfNvQ7sdia)ojC6(XobK~xDV0w$FCO%}`wCfpo9f&@t)Pjm4x4||+I3Xr zR?!BN;wXm|YmXl0+_wGb)zR#uqly{Im5(Yy9y@K6;*h>`?~zHN^@ASUwY#bcw!YVI zNI#yc7xVPRME|RwOZsqo%g259#{8)?6*bz^>^iK{$5Nx)KhP)tn7iuxtG*!a!7on{>v8a0UjiH3(?N_`b1 zFaxg4xfibN6Dzg|sY!3VwA|>GuXdHX{G}Tr6`!|FmZZw)OwRqQU88;h&mX6p;HL&= zZ@*q;Wy;8xYQ!jCdLcP=*BC|7Fmba>T8=kJBz@2>6dJy)ERc8>Wn&-Tfb z`(^Vt3XQKEY8i-=w^~@>r8#sib>A{+SEClI>EG(g@g^smG=FkND;&DB{>}xZScNIK z^OyAwpL=DMAHT}ZJ!Qq0H;Kmbc~%{~dt$xwf%R6gIVsxA?G*lkig`=pZW#+R}~vE@nihJFR!t*^cZzn@+;r}?DP zaY0#Ah#+@LnpoP&7XYw=6X>0Lfohdw(*kM*&wbzU*{rnzbBo53lU>firN z**vp#UOjum&$+1GdfDC4I^8P;Pa}-W9xJ?;QhM(*ac;4%zqpKsg3#Shsk1^`J_a-S zP_8*tJy*YIx?}K-)*l`N}NXSueR$p=XI_8pwy(I(UWQSCnW&WVcNN!_q^sd z#q-nIG5c5JXO*g37wVg3_&4$<*Ii!VVEr?5B6#UJkIYen%tPL3{5K;V?5v)e*uG2N z-I!ti;TQY4!MMBg3knv#&`iwv(m2Z<5T`P>`EhEzIY&v(C9yZ}Yg>w zxW^FiX zQM9|9ee_4@<`w-DZ-fRF$C#9Ox=&^$tvu(OJim*Bzr?jOMR$BwTe-JUsz^{Ev`pk| zEvLE9?9cOiMIWx4SKMNMzHH->DzPTfQp%5|>}r*g9FIDpCbsW7o-Q;q(imsK`ntOL ziS^chBRz|bx9ruElycTvYrXcqHItBp%4|_mz>a-ES=#ca-<7v!>6bJfFLdBu`)uY# ze}ipuP&of}{p7{JmHpp-%WLJVF*eF659AAJKdcku^3_bMRcPyGlkn={M{idjdv8<3 z-F~UyWdpyq?Ogi%zHXIsC)eJ+{PJMc*v6M#tm`=TJseFIdSsI-aIc^%Q!u$zAu(@9 z>)WmYrfNU??0{u{jrW2?g#Ii)cj)XtxBTV)AKtz#dgbzT$HOKG(Tm|<(1q2tlvgB3wWoOTgWTv0#eHD?Js(SE7vF~K&k?a0u zFMa&_RI<-9Us&YrZ@E}5_qnO(sx=yWGAj3mD^)!<)K$rn_RdY*^kB;V+j#WNXQHkP z>eu@9&#yOD>SW)rLG$7GBVUhuDmHJfyRgM`CU;o5xLuVtWaW|7*^*Yd`c6WX@hxQE-?GGuxn%yTkgLqd{YV%DtfB56g7h zuQj@qRX*3se>)KDF17vLj}o>dPiw8byXgi43lBN&U+>nnW%HzSM5?ITmHyUw+h_jR z!<~6~f5n``)^7S&Rj}!6l9Z?&$6TI6nst_QROg_za{GvDn(Q0VK(2l6O_ql@oBR&b zaa-ehWn<#3W=o}|&NhC*_(!&%@0C26*Kjd8%f6#oal@6rOXb?kKNL@-%Kmg-nDk&; zDsnB8V%h}T*{>e?9P<`-rNgnDu^;|~+a_29W5x7c<&@US=Rq;)Ih_V)e!sK()e_46dz+;6zPY78qIs6Ll(D{kq44#`Nd9uu z$}r`?xc7Bs;J{&&jlV5#wv83I8p2Px-jJn-|AKu=W48Y?gCow3 zvhF98uL~GOne(4Ly-tKJH{E6N>kZr~>_N)6FL-tGc!gCKD*vz@dXjxlW?Ajt<3kcD z%bi>oyfZ&+C0Fo7m)(Ece&gg(@$ZEuFUk^6`j(qK5nVs=cTLXi(SY6trfMEPfl1%b zu00G9++Bdyy|GW0!vG2T}2ahRp-kQGZ7GJh>|=)!>vKb!)*THL__9;-6yKz5RYj^{en)YL^S{^S9=<|D3BRQN?Uruh z+#4(wV7DMw*GT=bg{Z5P?H&ChdvmL&{hJ2=2IO)n>)kYPy|DaAxahfe>|88!wGqr7 zR_cvxZl{_h^Ucr5{J3XZn97tH#A3T@_f*sCsTDeQCW@Fk=gd*7E7}hO&#EZ0D*OJ_ zSMOxrpDy?2*UzGlm4ExTImDciIDC52BQ)6J=ZX^ULf38q&Ta3 zT6*K2YY=Pkl5cmeZhO{oFU8m)%!FyQVyb?TZJt+7NQCT-u@0%FtA7`?w{9 zoL0A%IC*N_(Y#afNPUJg^Y?gR!Cvofrr=GZLA_5ouN@2AazuB<<)5ye{0px9dy#u6 zY=@`sHR;~^C7sSMYwrK{Y*1+2csk)S@9qHpUz;m+^?fcZ@oT@FqT%N*K58K6Zm0A+ zI&>)IhnRuDg$EweNgr}wSLz&Z4Ej5W|9w~2qe(Ufd;EllqKe|@Z~KW|5?}J$(L3^E zTYK@3w&c^w{+#PR zRLkqp_(bfm?cK9K!`SxZcRIFITozkBFVwTMO|-2?Za{4bPr<%uZYg%@hj&!oh}^nT zD}ps_Ns8~<%f9zwTlgb^qba;gE3C6MH9jA@8@6KFvG!r@`;dOEC9BUiVZ95QZE{Fx%u+NtI4Yqz8^H(|@x;)-FQPKCScJ0{w z&nVRo8QZo58P;y$eEKamOL+fLzon9)XY12g{|pIQIl7oPa3$FW9lG_$seX0FREPd~3 zea_CC6z8~8zNOpk%iU!gHVWt)ENv*?j%+e}57?-Foyzy?C7D!_)|UZw{kPM^CsnjdY)tdzbI{X)cMs_x|u7`E~z(Y)o8H zwaxqChXj>$g=D6a3nqUE%QHDuc6Y8dO1ktjUOH;S)1M*JriX3})Hk@LrwF+E=b8U& z@spFv2Zc#WJ5~oJUtDEUi5tQXkY*&a?c$q{4}}E|jR4)`$dF zIgY@3uh^l62e-G{Jq^;5y>swR*Q;2q-s$&&dY5DGeA^khTIEuMH(RNP94{6B+mEXX zgtWMJ9=6?H7N;2*%jO`vw`||g1F`0i{X0e$3}kJZcb?8T9sAS!6!_Tx_5gBA344~q-M(cv~oti zl#vD1EAoS=9k=;18+B8Cvo-tNs|6K34@brFnh)yfb^5Y#zT;k3+L0<9iWVIverk3B0e=sMRnPUQWzEb^ zsQ%=2Oq2CFSn}qx%ZgtTLTX=EZ;szd)kq7ksqrx~OT4mx+wbSNU>P<9U->`*KKQWVQW%ON(|T-o~ys6S>D4_IMc|Jn%c>#ek_ttnKl2y@3|Toa6dtie#zs z{?C7GjnG|MdoPyv;;VfP1!o1?7L^V=7Zg9-zn?ue6nhZAuA}#k=;M$0yOyh@694%1 z4xb4Yi}dIYzz)||u`Kjm|K8y3mD7ppQf`AWQ%RLU~L88NN>i91_vsWMge=##ZG?lVrKd1W$~<*8#q5?s7o!{;kMF)%hiyJN9 z`uW#6=9kOFWFP<7vW_?Yz^9JHye~T{A8zFjv$C5nezhZnVknYwZsL8b%&ZEF6_xL5 zE`&3PT!0RAg$}Dr~9lxlJxB%_NqZN2?1N8{Y12W#3-?T2{s+K_^Rf#UQsq zhUDMV;(T!dUMGg4bq$LzE9tg1EO=ERvi~2qgJ*Q;t-pzHUvoc_|0Pp=Dld@~~6Ml_V8{Mf<1xz|~Aa&Y+`#A zovwW)&|NR%?WrC=&rHX!)Aq%Et0gvm{BU2;mZxmT^xy%7!l*eX9hM9}>o38dYihOi zUJI?yP@R6}$-2G0lr7DzBWPbi^thN$wvzgy%eITYe0eBBIc@JW!jbSpEHP#JNx$J& z4(~%+MlniF4iDtaPQ7?|%+%Fxu5evtbgZqL%VK%K7 z%B1=q*cjdT`RuI46Q@FX!54nBdsY69T3*=ybWI4~m{GIY=jV2^@>vg5z9{s)YP!$C z8so6=nbH<(CAq$YWyO!>CM`uuzpa$>=F1$8%ZQWs+w(}X)ork1p2wQ2JX4-ie9mL` zNi-85$LrOVQT#8vms!PTT1Fl_S^DdJbKAI9ySR5ksJ2vH^Mc?JEaGe7qHSzjJpX=_ z=lcBeyY1cd`My8ax(2p;_}3b)zUQ{(^f*eQ+`F!1CF{A68UGy)>9f*qXAoIjSwu9oi_&>c3dewSAx&tDavB$?s*;lVA3w*lJMWtC5IM*OjNPTJt$tK-A=J-FXe~25*HYBRjtyd$VTv z@E<-~{O>iCI?s*=n~j~GxafCn+YQZc#}mq4UAeYpc(lkmVR5L>9Mhi}{cWBs+qmA2 zr`+D8^3mE(@7U6gGbe6t^|`S*)-XLp>+GFpe*GrVd}Wq}|7@}wQYEbutsbn332}RL zG4t7(>n|1gM}jI=#mCGv|N6IZ>zv@#K|$**!ISx?vLtj(>R=n5utU68jgS^!da?SLWYaZq+4>g0k7cELONrS+#+e?`AymDMHEJNbFu7q-<&bbs>1rU zXO)9uUFgdW~doT=|>r15ifkJ)_-6Dhlf<+DY(Mqk>* zYmTy2r?>yi#^WOEMqp(A(I*b)=f>>C!@e3{xF9VU@JZrrgHq$^ODDt^9kRYAR}lY4 z>~VF~lC!Edw*x$WeTgzy;(f2P=<>Si`#s;c@4UTWRHtou%~VfR<(^F^-+8&%Zd%FF zw0(m2?-_BK5&g3-wqBXlujp${_taP;{POzu#hT^Gf1AZJze#1Bi9B@U`WZ3|4DyEO1$j1u8#(xbXzG{@+;V&)p)wC7(GCIJLeNbXpkK@k}9cktA!9%^d;5 zO;6awyt;RNsE^e5?@>xyTVf*nUDlnu`25Jo@`sW5FaIwIJAXX%=dDez7RJFWd&L?)>GM zEDw8Ia`ua~>hnJAbhv)Sbp4T;mp?DBPl#gObSHIxWbz?}2f2aa3JM|1)Ymz)U7guE zQZA4!UnP|%zBej3M&RRkkntjJ?cnB9H~xN9-kQahvZ;S=$<56Q3s$k0b^cA!_#T{Q z@UeEjw>PKjx3ff_Om;qYbunda#_hCjR%Xq0cK5=Rm)z}+@~w-1apu*oUs58)Gkv!& zo!TPEndZBuct9=7dfmr&PpTc4O-7VLf@Lg*5 z_xbky=Tr?xDLcl6-_;Ip4GNX{yY4a;e|pH-Zscv-LNAYf^_{})?kY9)l-)h-j_i8^ zBv%zbYq)r8;Z3`tu%}P`cs}e`_&!kVl)Y>qg*Rb~Q?p`FVk-V;l*3X_E61+yanNVx zW=?L-E(!@7d-~;(t=9Ke?}Y$lBm$86Te}Wy$?(4LlVaPHBj9 zi*hzzT01(EmwdoD`NFLLM{3aYudFox=DIJ{Y6~aV9jaOVc}`YG$qb+t>J=YOtL3QD&CqiF|W&?$7q@P0a)M{<87S zy{oi!-Mr;Mnxfyq8tW+6gYh>Gc7A5V66B3-ep4nAws4E2FS8tGD{Lto8yz~dr=?Zt zeY0&xa1+y~p&bT+&n3^9-~5xlitTPN@A{90RkvU6(%9;%cGIV(c-0!$bpda_p1hl_ zyxKcX`KgDs(b=8yGL{cAMlCFs%FEbA-Qe{*?W4-&_r8`X>y)8#_BPK`l^pSMONuLZ zD{fzGz#^h!qVQ+>!qy50CmpK$?nU=Ae^{S8cj@foy4O*$_M+mWju$y(d9SjOB`9R7!|PQ8ezSIQp_sm{12X>PJ;T|zsz?b@y$X7A~_O?zdp_=?T{ zcu~83x9;v3#kbZ9Ia^okc)4VIO@4)?1B=(aOINt4EvbFKC#uYAJZ~ni{qo_tK*GRq zp2zGivxw*QDv>@ZEz*0W9%KKHiy33Xz6$ZvN!<3tu*LsDn9V5OdU-0sMUK+j^9tb!+vw#h5#DS@ zk9#hFZwPtQ>)}Q6a?9!EsR&=d;72utAIAUvZya7hy!}z9$4Na3|07NWaXpeqC+!~@ zq(_z^&WDgpr#roVGGELX_=!dGOBwQl^w$xFIQc(`+eEMbHqsMUO3zOr!jo`&|I5QL z!nOC)<1T1l^;_xVmdvl?!SwQ^e+L-y_bk%CQixvuI>JA5(&K#y_YkAUm*aA@%Tbhm zU(ZpT^lH%C$&c{uCG_$npJ}c1`tj`$*EI$n*5dI*yWT&gm)A#*tm~oIzX!yz23vZ0 za$U*);ooBndEt)xn|1{<*na}8yBv4)fBh(d{G};L&qFq-!Hn_1{jWR);U>=XxD~?1 zaQ^;VS9c(sVofhk)+=3xcqaGzoS`pJk)CA?_K<5mWANizB;U`#Gnq%;4F0M_JSbSw z`(+i<BG9Mko>FuNMAYu|@oxWTBVG!+^Mq8TjNt_(cXD$o|qgM9%{mV-jZ; z(8U`W4;nZjqzp~IF` zhW@UJ@K#NF-n0>3%)pNh!aEr38AbRz6?#3#5f6fv^mV2R$xq_(`Cq?iBl#M2dOc)3 z6fnfqNu(!(q24+ooQEN=^O1flhI|P{^4$z^E{bs4`V{o_fB$jD6Z60J&!ca4Fw`+J zFYZ~>%fChPYi`ibpJad3+(6Gm0kM&4=F38cb&Jrxx)|yYYHL_1UfBQ3Gfq2k87=(3_Z?FP zdo+-|6hj@ZL3rQ*J)bL49k6BaZ;?Ixz)6NaD~t-mea>A70Lf#h&Qs2bTZi4hveCDNB>tpS@+&B)G>7=U(ZmVEfKz+ z!Ok^^&tQi7kce=3J^FQx5dM^5-OEV79mBkBfbiQ4b^98^of+io5N^!i-*bo{L2G(G zNjtk3>Jr)41R3lk>xuML`o3(4*5zZ6&qVu;{2zHC$-s{xlHc-`KJUnSo_vg+Pm&*V z1|H;*JqAnY<&_csj*}igjMn|b5dY_pybweDkbPktL*4L4^0R#OJO|?OLAzcu=nnxH z`^!+D$-YmE)BncpC8Wpgf7HYK_&)wCPxiY{a`ZTUdrn+08Tuxf7yS4@^51$z&h51G znE&c$LA(_+%sHfAmNVR^R3rINhIm+oc!*-~FNs&V)2}On6=$^7@9Y5W`i=$Fm zBXTZXVoX05aUlJ>8S?!&!W$XlgzP&NctKl?abW(susSjaJLW{oYYxovH%z4DeNZ6& zzXW~^qJq@pP(zDz4lKt2Jk^8NZ4PF_<3|Xy{I`cd@Gu~*C#p32Ij|IM72^NN`Y&z| zc%9Z70zV7lSPkB2Y4X?%;1URr!wHn6**T2g;Nur*|7j}N@1F$|S_I;=bKNBpJ`50f;v?&|`qsy@C@?Td)d z$o%R!1$s*HPsz|Ol7E&4jNm^flAeDKX3#@506nuvf8Gmbg8v+Lh(nT}89|UAFQt!@ zm8&4$C`!;_N&fRsfIa=SurJb{)60PW(qPyZsXqk+Jyd<@fTSJ);(i3rqjA_5SvOpl zfL~mWfnT_g{jM6Y?l>D{L?hx;g}Cp-^Yn}qAvuBMU+)Kb$|%$mQvVk@lt;T02}#nP zE2EIVeC&`%=}6CtVBn`T2CT32%m=*Jepx+D*2KTtd~)5mi@1=h_OIzhMYv8|w= zat-S0|Its>bG(jSP$%SpRSauR19{ckV2>xVGc*SH_x}d@OY(nXE!f$i47_C_`M{HC zzpv=)Rrqa)6Urj`II+jwL5o}eYOn-fj<}wMgZ|Pj5D#7mZ+``Nov0jvTt>V(MgmTq z1bI}(FkTFBY#i3zfb;~K021mdbL4sbHBIdOU=FfMEh z_gX@d6Ui6f20Qy#gPmj^sd>PbV5M6HGu4#s+y!&QW!| zP?u76;)#G?B%k5xfK!rT4mm}97sJM^fS(it$Vak2b~Pa0u0jXdgw`#R0zGw>5GVNU zGjZjk`j3r)U%Z(C*KI<23P2A9V62Rl);EPP(`(>gq#iTNhkf}=fF3gb<5mOC_gaF` z09k`!R%)~$wh*^vD!@dwhhI@3QxFRu}Z^6oF_C*zz; z2Y4=(0iJR95tj*?Lv+7GobN+;JYHaF>r#^;uE6^kHsXQ&avbEz_!pE0{i+2JSEOHT zixAH}V5cO~&%PLVqaKIK_6y;`sE&0AL)|9te?8C~mD37&LDrvpd}v<``Eq&+>{LyK z`at^Y4-?>}40G~jya3Ynt7-xJCHr#9R^U^$mYz?8GUWFQurGW(Bd$m`WX}@%{B8OR z>sp=zd!P$r821Oj>u!TQL^XzebOan@2A;|IxBdluT3(PK)(b)FZcIaZ>LKrh5Uwf( zcIFHM&*Z$fq#ERN^y%x^ZD+t$ePN!NLw?C~1AeeD;0I4b;(9C!`=wMv-@K02Jva_? zHRTKbgZM?xKl}=y-{mmauYm%3H69o={{7EFoIfOf3d1G_(VX*vK7T7^(0-kOpMOZ+ zHUe<}ScpRxgl{~K{M$kw&wqSCzO)SVko9)Y3Yy=AFIo0BXRHtEm`kiHfutb3{vN7Vdi4GG-yGbJ^fTO#h*MC! zErk7&_Bi=N+`9aPxFzchA6@`y`^pjZrrVbt-p6V8J5*kyypL+q-w;WX8 z$bD&*0?$+l;F+vf7x6iV#{WJKz!xI@V(7jgh2g$ndkFIHF^C5}v|rz=3vfLG*!T_D z7a!8&f$l^7(S4{X!b3+u52gh9PWmNr2iU1ANN?w$9mv;Rhy2w+dZ-71Ps#yU*An52 z(fxScaw!5yLwMpk(9`dVClr1KA^T0x{FA~k|Gc~d^J>mXV5|bk2S-AGNnwUgP1gC_ z(GU;)W#C6)w5|s6{1m@G5`z6gbYa-1&0r57E7(cq*P8=?t9Ap=kw_1Q7aZdJq4ofQ zka>3re{e~gH&j1CJd^9bU;{m+Xig^W)Y%2NE-&amhxCi#jeu5Xa^j&5=p(#09OfA+ znrBd1!phd7`sM+VCd&dp5P;K5=s5@V3Rc0exsQNbE{4g0g7gO}Gr_rpIDUhGU)HD) ztp5OUUMB}UlX22e0(GEY66ye%M}zuc4|S_Lp@*Cs*-_u=5TNfnw~>BJd3yaBcwo@@ z%$Wl|VRsl7!UMeJ2v7+9qbMHse1ka|`$<1J?NoQ=<|+e3hc?@0sIZI zI}B450r_z|*e`jX#lHY}u4@5#GH#d1BY7?fLPG@76HT12;_-h6cqZ#WN;=rDDhPJs z;Xz!yzQ7yR8+aq@NnJAdMVGRdkR$!lvlG_E9H35;^Ft4s$Na;AHy2QkEyfSJY4KTS zPTw~NIcfTZF$y~{N#++fsy{i2kf-F_&a4YO_{YJ0hY`|meGKeOVFEja5$?qc`Z0@R z1VZZnqzycb4?(^_^~10uL9nlmA7DQV(sLL;7p2X&9W1~n>EE0o&_fZ0`~p@nY>E%+ z5;Yh+IEnO}dV}VN65t^O;d}9Mg~ktG9oR$qU26mE7eo0)t~-f8c%{ix$3SvF6DZn* z`beENUJ&pL*u&$BANHjxL7~AI+4p0FK)>!8$Wzk4i|mm+I$x?IehS0Be1d+#rwELZ zc8(WNqeN(QM@^V$I1KF z@5Flxc-$U@cwk85@gr29UDnea?DuH1g#Pd_U9_oYNfhGK0xdh@l0L^J+oteFX z{EN;F$h;Gc2i*TD#539N_^W~ceuneIrK2EkiRLb{kKA7cJlE;a^X$uk_O*aQ?8pM` z>uMkHpgRX~ID>FY^gKv6MT0;{9!B#)-rpYN1(AHtBEVC$foIbGtF!3-D3X58ng56C zl@`6$-UIpz<^}uZL%19limQE~A2)-z($V}@ zhx#Ub7sG;YLErR$2OcEr{I-0+bs6S!dHe-pqHh1C&kK2U?&^=uT}i(fe*--o9uOzw zd&pnhz%S!FATkwE93~O(|KKcI1OMvC{^!Uq zAxQSA7*B}Lm%>nQNq?=MKz`w;_sggO*xAnvc|q1C$2!1um&g(NN&G8{=agsk@jQ?V z@|Mg{pGp1~nnAyC>4D55^-MN{JoV5jLciq#;vbA1&2Qtp6avTs7)wF*lfqCxdGLXj zRtIvpVBNEb=S(+%6L--9% zl#ibwAHiA-vn2cP2H2M%;vq&3^rXB5J*-GiM*z}4M{lPod7fDd=OMvJUcUh3EhT|x zm`3pP{Al2(l;J+Bc_Y|aIu3S1^~SI&RnXH>KtGq>l!3g?nS{t8&v~9cgF0Y&0(c|+ zxYG>uV_Hz>@#Tn1I1}!3`zt`6g78ZG9FLaQIShS##030aS_7F_gXAp{&*PuKelnhS zRDnJHRC@i(E`vQTs!+#{B0b~%AYT_xZ-0FW@PKs!pJbnMdjNRKj69)%^q0bIm}mNj z=;Lsk8N@lI4&t1wtDLVvPmU|(?-nL7i1HB4)qBB%WM5Xo&+Tb_JZC-V@kI9PmxKK| z;b6ZO!f&AGS^ePvjyox)9a)`CA6?=Hdjr-9+~2;f0Y_H!xlBFGLZB zQ6#`l|0uBBAIU$s4CgR>=p2TO!z)IJXNL2EC3c`c#S%1=&$)~~fIX!Q&ugYjk)GvH z2e{F?S!yuT> zz>goO$6mUEJ#|&|d5ZsvRD!oUb>Phn$q%CX>3zV>MH#--$uyl5rmO9rgVQsE4>1 zaj{M!ybIzGPk-WiK7;US`Z|0w67quYkSifa#)C5z`H>2FA%gT=r~$wGf2YsiSlrRX z{BHq#9zpWlD4sDC&-w_j$G;%rRs{ANg>Zg!-{-Ol>KFYOA9q!8iH?twjgPV{l& zfzH7!8J@!y6r=va5GNlKpzc|s=fb3&a}i)a_5$pLXu+@mW>}Z<8~jVwt53KXF+YR@ z|F+1^hIx?3vVk`^EyOTENyrzzPY_prD1Iu>0Y5n#Vcj~U$0`r>xGaatM#d)xJ`mF8 zxBh2Igd|ztmZd^G_%DY#2GNCot|AufR2>ArxPfpJ z^nAzVz7m0CBK#*6*2ONux)EsIrPfeaDf=KVzzY~=hn^R>2mns@sVEnSH8mH;cfMAzqyXtL#N&ZhH&PhhV-fWN z9w;fG=O>bnF#`Vk|Iyo%jQUp!L;n)*gmp_tU|kQSCk~ybQR88rH$r$_9?1J|1Np-U z4@BpCrRaS{HH5Fk8!IjETyi0vjS=o&gz#OUhn%}YOo6wQC+dVGS}UA%9ix_UWZmH~TmEP;o4 zgnOZV^`m`}`QDA5vrtE%Bar?rMDs939r_))ZUMT#$U$@aQl!5hKfs}#SL+75637;W zD~+Lk_m{r!JE8N~Qt`cnBv~hY_d=Xt_ko`G86G45pIt=2+l3~tws0Vwn zNU%o>>A6RR`ryI=>yq{1<_N0Krt*ZOEs~eSUpS$~L!A-WPu|!2z6X1-X|U%U6a2v1 zeSoW;g!m!PD>~3z&DSLhf^6{5`#`V;&)z-o)>xrD0$Ftnq{(*k@L?C z$SW>@Z?ImY$^ZX<|HBPO;GyFs@IdDE7CfA2{HumQJd^Rzi_Ve!8J?pZD}#Kbpz|@< z9foa0&wu+F-e(@g4_Ija8eau@O|C0gjrdHb=hG6sk4jYn%}daJG1RXqb-GwkPUY!3gsOQI!erhN1kBtEj_*g|;=?@?uQyAv|;85US_c_ET zdB1SQ9(cBFr}u9vT9^6*B)=p5&(V2Zzdgi1P9t&MHHSK5SpxTcCy~4)%3ms~8)STX zZb5ym9QI4<`5lS&^&0B!2Bg0{7W~C`82m-XgZL4MbC;2ogrpOaUoDUP#jHXgTM#ZD zgyOaY^pp2rttcNchWW&08}O6zke;8Id!UCJ4E&p-{m!EMdTO@>v0^L2z3@grXxPd>L&(uBI? z&+z=EaT?-*j~)ED8?9R@0lc{g(a$G3!mw`tUFb*MXx(Gzd9>A;1;fHPfwww__YCi#=i}q(xg>N${Jsh0b&3__ zbq3min-SPw7X!y5w9g%%%sul2#^AIOwJv?BF>{J9C zcL#A*;0a6PlWz>-@HWD|EkM5C2>2&?W<&2e)Xf79RT}?Xh&I@7`33AJKc7M&K3|Ey z&-o1a%tiXox4~SIejW0Z4dG76FF6@tAsQbreOxW!_XG6#7>S;<=%VK=4oJ`V1+ZT= z9{fAT3Ey~(p3io;fc+$Ig6E-b_{;Al1j%~UJ%Q#r0s6V_Vid?zc|aa77sR#05OCGo z^z|nXz0aA$@IL2$KB$wWb`U4zx|Qg8giATtsgL46b0P4cx(;|C^VbM(f3*3Z>I`}) z$R4?^z(YwTbynh5bMhw$o;P-iTQVBT1V9Am!<@i`2d$@d|*q5IPubbrc% z^hiAc`EiCgJdeAT=12cJuzw86JBC4ha2JL8fWjZsO$U4WyPywBB6)>g&|g;sarF@8 z@7^n*KSxu5kc?RXKhVAeqy7m-8 z12@vc9|d}JQ6H>C_)=HUlf!Th@E*byL>>50;|9B%%$=KrLQCk_S#S&y1ged1fiH zbKw}ov&%|ZK#*VVp?-v+_lNOFB`!{MKI8uY@)VhaEl>yEI<7(diz7Xz<`54q?hp^8 zzdo9P{VCO8KgokV{(&Ik`5nXORUbVBT$KUWMbFvCw?JfOB0GKGBEL*R-H1T=1$^Kq z-cQJ<=WSpfokQ~Z5t3xyy(B-s#zLPjbGfkJ6jSKG(9JQ-4fSh(hB`TN0C>sQwreNckl~TQT(|Ty8qQ>xc}Aqfb?MC-=9d&gM|v=AnW8?biXiO0e+W6`Z=6{PrfdCKWYraePX{V)CV%JC34XGDFOOp zk)Aj-SNOjM{pkn~B>CY4e#m~*)(>&3%J9B~r4rar-626}Ap3$T{^PW`>Mwyjh3?wIKVB3ixHi0x;ADz1NB{e4Zi)FXOa6j`_P1f@GY3 zLeHTn%HS80pKL=kXR^8w@?@NNqB*=2eXi={B3M@+eLhr|;q#%pjbVPqFyI-PiQQQQ z`{Glk=d%?*h@jOO-Nh>i#pM0P9C}_%kq7%pdmfzyJss$LF9Y!=ehr?>r{vS`H*zz? zAr;k)5hQ<$ANr%N9>k9)YzvE)2mSs05(IJqHPp@Md=*3QvGXGN%jkTj|BW<(v?1KD z6ZBAdp*{c`7xWzk_JRFxf!RuR9EWA>*wZy(!RHSzbIXz`3OyjOO-8rJ1I z0qf%FMqDO*#Q2vM(aAD=Zva( zN(9o4@M(MyC7vtAyAcRk&l7(E?!x6khhH_LnuCF^4cb&ow>{`znox^90hrJ5XJ9X$5A;d5;GVS(+ZoCW!oAwC+{(z6aI;8H&Hg zNnAeOkT2Ay^!ain4fw(GARm!9wyy&5#_*galLzdi`qB4s5!^hQJ*DYjPcpJ+96gs& zl~pGYvJb8b1bM6o{O*Y46VZD+;|%ZZuveh^piW;O_FsayQdQeaXdwH-LJIh+F6jh; zlYZ1ThJC3n1U|_+@L3q0lS~0WWSuuy5ArGLl7yZpR8XYQ`^LII6bW31_%DW~qR(lL zGd#EL;YI6;PzXtK-A_WmC*=1;>M-D{9`x~$NWRbW1o|mnj)*G-H;=}D2l{*p zSc_o}wyv*%23Z)kv(-~AW!;n z^%UY^8Ps{wo)~-%q47pxcs^n=4Dv2NpblR_`_g<5xb9u>AXzseE+Zb$`;GgN{MTD3 zFBBjzrV;)KPkh?C{Txt{P}pLZPolUghqyX`;^7sV)B5*7T#@s@Vk@Xud~U!PL@9>t zSPD2L1md6MK_Ch7$?zU#Xc^%Cmy`($x1)6}kE8r$q0isX=s8H;1n}?_?du(0@M-(1 z+e5!!S^Pkim`j@>VwKSbxY7F$rRa0Su_#W8(EXR?6WG^hWY6Ff#1Hn*i&&A2pSeD; zpE3#jTt)VTqUS7@ai9kuSBR^`7yOvhMqh7Vr-Po3Fo=H)t-IqZ;3?b?KLJROOatIK z&frI21D|tx0OxB4d&vHNWgPJFe9%MsF%M4@8gDs~kfFPnVFBAjxPPg02Rq66d0hz7 zuLbc*=5KEuXo@tbI?;N2K9~XUz19p$6pxq#3Mao_6UDVKSw>yK)juo zAuJ*5QY!i!fvyhyzUJ{?%tyo_`g}bHvfm*Z-KU`U-0<;$xMEgh zd>*>5&-n=XB8UGx?Mf;@^E|_QbnjWvoG?MZuQ#Vbe~KB{W6cbDHqIeCFMxjNh8TAJ z0pQqH$ZPyD2XU#Pa|ug^bBXDfAkQZvN63-!pPvBn+))el97B2*y@NVQt)Q=yR~n(e ztD*i*`YQqT7u5ygC+8i+8yP?DAHiQ8{NOJ#U!vwvUmJ${K;mP^z|PVr z`gvx>D9BS2Ag;*%K4l2{>tuj2QV$1uPoM++J_j=X5B`5#U3vVB)%U+X_I+fR^nC1l zW8aFgZ>h-^*&h3nWwcnoF_a}ylcYj5$r{y26vBjLt44bglL{3YL{##-&wano@AZ1_ z^T(&0&-t8t?%D6Y9rmWI_2Qe_@y+^s8Q8zzujW4X=nmASsOt57iJUKr*M%Ovdv(2U z=}pMreW14axA<53L+~Fs340Lw|N9#9ch^JyC(U0e)vyBV3hR8tmZ{Y57})3OEc`*7 z^M@I(XGxqnO#2UXg8g(Q{k%&-U*-14=f^LS&trfuAbzL1w8M&^Gn?=YS@1jc4liFTkb`C<*@YSfCWKXP3@^&;>^&Pk3RQyf2v zod4|!`Z2EK76B=r>`t+i4c)t0$1xWc}-iz6jXkC-rSZADtP~!DnnA zpbMQpMReKeV6ywiJzX}J&@sfi2tIOuXljYpcSta<5=c5e|~x54agx? z!XHoOmPEUeT9BLAt!Cf!E6jU@+L+$yeM&@dQoUFoa$QgI>2#i-4W34SB|hZQ9r5f_b%Q*`&L?O& zd-H4#?-h|aaQRX2*z*=OuK*2AwhFbHP`@j}EJ0AcutiR{)P#`zZ2E06e}2 z^hIu2s{l_;)QZqw2h!>I5bVUg0y~lZ7QKVh4(n`_cS7yo>nqnuM?o3=6P6=b5=LVEy;6pV&|Q8 zcry|k5lQOq%zL$mM)e{)Y0yzmL(WYIcd9|o?lov+JmnnH zfyn56fIly<=XvDt4dmZ!(%Be>d?Eu;SL7nRX%g{2WySyNjKl7=+6Hp~16=o4VYiuf zu-gOV=Q76~p-;iT-tK6=YIC9A&@IUCqTfH5XWcui8$7X-E*z(4p7D==JL~tqymO9e zXRyH+`#G!Qk0*x&<2<}xsh;ft57mGjE&)60E(h@Bd}zEL;ahh=K5h-@cNO7(FrLJ3 z`1zUf1M7k9h-^|1WOFGr2C7eCizoD|oAd+X>vL06VLtpL4 zPpwX%lYY)$ca``X{Y_ZyUgo;0TMBk1el)i(^Xct~!=p(5+YtH{<^8A+5Po6{^q77G zc8K2TdGF1D2gd_0dAZZQpp$72`)4>&p@x7b@*oa8OZt;JAFC3`FOt{Z((ALv4r}@C za7b17d&0VZV0-}d(~qHDiRULK0iLP{ef>^{-1aBevvNQJGTuq|1b%Wh=)}n9mzRMb z?>y2#1pm_?fFI&LLXd`1|KogYXdLKB+`GVeB*p#GlD`!FQT>W~RhzN-ep?6oj}?Xe z|4V)K*e?q!_Lj&nT_&3}S5PieX=ds-AZ~6-I zU{T`#v66E56&@<_WZgEvRS5A!;CD&f*av)?o8DK4eF*MWw0n*8KdBEop|yzow`buO zwcll&p8!j6h`;h-+S^}#{m$ULO2Rs)(0v5xM|ls7*mFgm2h7|=q^(6pA7?xd4>%S)P+hZ-Bqc zeiEl8d{(XsJDf1YkoLzE8r?n(J**~^8ZAKBd=f4iRjnI?AOa*F<-Am zyz<7S-nWVMTWWN+`8T4meplf^&`+O$-|4c)e3N*-EMc7ky+S#pEIGV?GN+l}a7PXW z0VaUL1(@&ZAP*wj>ie)qqut0S;6(gA_8;Jh*HKr@#zXfhpS>78KnFl^0ZGCSE^H=;+@F{-rL6_;Fjq0t*t}{%h1T0c)P5&0^R|rV`{jIy^+E)3FR}*w(0r8pE%;B~k9hJF+kK@E_z50`-3t9%uK+(a199MS;#cE5b|fe4 zrz_!2T0_oho=5ILc$v2$pYTw`E7ALl8R$2ebGX42{WiHkdDesFNcH!UY9`;5gQheD)NW>zC5dV(;kXwNF5#=F#lCBTU{U-%n18GY5{sOea z+~DU8!n;g`oy1eH6RGPyU5|EM-lHY*4=rPVtAiiOr_F1FpVTd=SEav)c@JS|;WX2t z=&QsS+SSvr2VK6JuMO{2RtI5kFA_d=71|ASM!UjK^`fYwq7zZEi2dK!9rVLI?^A$u zzR&^On_o?T4!f25s$f6%*M(k2692U_pcC)y7>M}A`WdKCoQcT4A>vo${6MNq4FiEx zl}g+NI_aH=7^R87wJZ2>cl-J2um|+r*`P1=Pg;x1TTc&J=eYM=WgIBwmqQ-Sm}j5y ze_)>*n7^Ktc^=*;39j@y3&#b?9+eD-Vkf%nHSNZmfDW{v_ZtjCzfwWXnEoCyKb4w2 z33e5->}nwQwWg~hpGy3Bh4J5Qgt&Sa`Mh&2_)m00i(*%$$Fbc_XjkC9AB8+a*1g30 z_W?gN7;#wo`=#FC?#U;02AVoU{;Lj$UBz!hzSi3y%{PqaVnWurn7@~Uer7xBH0js) zUr<*Et$QOk-RAMB&q3TogcQFhehd7_9SS)tB0sHJFQwkDW*{-br`2P-JSPIF>TB6} zt~T-o>`LPE?9UM&qGe%M5+CxhK2JQ4`13O9FPH-Qk*kn1s%8CNz(mM7@~5BvWX>Zc z&t)4514(E25$G{=6nfO#Wz9FZGxb{^eurM`eTLj87Roo*;E8+=H>W-G{?bmQ->nDq zl{|=Xw_aX1--Fs6OniO>cKa>i1+F5`#;toTrhH6!E`*(YO#0`FKrhaWh6W<`zm5BU zGJivEIy{>1@z>C9xE?TzY5(!Q=d@Tnexi%Pk1oT^HkhXAen+6Il5NQ6eGLpm>~QpD=FRgX3|!=y-5C81+zyY}LVgtQMG2jPekD%! z+6?|3&LxLmJ+*DF=7EZS9TVabKa=R(Qv6)+B!I^;6%sZ)p1U&({_aet8-1UrOw^z&z% z5U;}4dQHQnkY}g{VT4Th?89T!SxhH9zGO=RFD9{mmEC=MKDf!+l{VBMDcGGl8(*e%f%qN66am zF^Tt;#jN`tJMun(IPVh>Ido&)9#8rGI@$qt9$bj{DdW?xPEcQSz|Uj!i+p@{DQLaB z^x7)g=Xc1bVz+}?|EF31x03#{z6$3@e$nNz`JP`uf9JXh(}ns|=SQ!;4RsrA@J11T zS6SNI{f>bM{*}?lzoD{?4IEllstWU|+FZ@RZ)BPOs5d#@bnC-U-vLpVvyF0(ni?^lKeBMJMew5mSeuY;ej!FD{iTh4N55xZFQ_jKp=vVk~71Lrr zwmZKQ;Gw+mBk6CoPhf}1l8}$s;cq?AZuD;WOEc1$ln4AP>m2%V?my3b2Kn4VemXHe zrzRs_Z6ci$eZf!qRp6%?2)?Af#jJ7Se7zsWv;U}dPIfix=TMt$Lz&AJs`{V6R{_Ma zQ*8IW&(LmiH{zt|>!WYjuL6)~e&R=;27de+d zr+tq8hUcQcBA@R$kCeF%J^n~JR4R;dM6errI)m`fbV2CZL+Z%}1|s?QYsOVKj|({Q zQxBkDp)BaD2;mjJr9E`R_)+}g=~93PJ_1~e*L)woMZFAxUL=p-!TrxF*HD8e^7-#y z=qvF%?5ZT`eDDhBhq*4Fi|~PrOAh0b=y$&Czp4hkpmkk8Xu~%1-U}d4ShZ3wP>(T7 zk9TbV|LOry5WO$b^R!-^3^(!XWyp(^LkvBYxb*Ngz|*bJqR^S30FPPsMR$Ia@Uh6V z1=-&mT%Sr8LR?x;c>fB(j~0eK9L#}V)Nm1>&z44f*5+Zp0i0KN-thCkv;^oxDnRe> z4y9J!Mt&Z4%-@#+88w0Zb*%p8m3vXF^A2xq1f5iS#IZr7GllXDTJl^;c*KI=^Bnvu zTE%ZaYi@^~M{?FRlqD}0?FYLGS?A^sybL<2dY~izHS<;vUPd{w*@lk9hb$d;J-@z} zd52YqMbx7 zJ88=E-45ST?Ls<3mLtw2_actXB|P5<^f&pFKQ4Xu0QiXxLcE1El!`Y%oKIQzVqFVC z&e0aA|2vTWl^-F8L>_-UOmluLoYOIwt%?5v_bJ7#eM)VPQJ!x>4wHyqryIs_+2BrKEN5!Bd*7XD6=p9&|D8 zlg}(gJdrwQ2FGg=j@R&8eg5c2$R}pq>s9C)#_4HmoPPZx<p82)(?s8*#`0< z`}NjA&URM;!Ok<*Jy#EN|A5PJ5Tcn< z?qtXBj2B?dd&s82m^a+pg~;GW!AU0UeRU zqg9B%78y{+zuxoQ9-TPvdD}?2ZIS(EtY>7t^ydSVzoo~ix-9YN1S6ookaT)*zA;k` zo<(<2v-N>oQ~&(tm-8NuM-rUx75qz&AkM_HKu7Xp@F~bA@VV}w{<7Ha2G;ZOBee|# z(MG8*jKc{l4mT|2@l!^**R^2vC-HpH&+v;l{i3(|tx`>SE-%!vk%26vT|Myv^=sXW za?*jF1oI;ANFCzx99hIVM^@}2>%ANpS^vv+FRzB2Q`S68Y9Ztqxy_%a-qQmOPcJFH ze~qZ3RDnj|$884w-y!|RO%Oi=gUT9677gn_X~;(vjvBbgryTbgM(05q-kUH>7_BYzX-`~fF zfX`SJ^b6Tjsf{fF&%BSG3OrY9$Wy)LZ}<4$w9l%r&+F{h`;(bBC!wy8`HB}V5dRwZ z6#P@%x18a=W%289bMiR~{EQ|2-f74)mJ9OK$G*(>4%d0zedw1)Ghb)zm*#$q9*_gH ztW=v_;3wG&{D^<;-Gg@H1Ay6%bPDVJexBYVZ-c(*efvkyW5T-UB+o01=d7O{(y77o zN^xtR_Rk&cuNCK?<2^#bP4Lqw?~y*^cmDdjE;ZJCz}4$vekBpq#^gIk))` zbez6^IS)P#c!uY==aBx3IS~It*7>r}dI26}UdST3~)S>or^k6_Qy zH^3);Dm9ej!Ju2);J-`yrxg0@SaK*7p`Tvz`{{n|CMN##y=IsFxk8C{2adQVy7uWj8SpZI=Vpz7}_^56LqhKL|0xeSJ98d4m?GzGdIG`30q$oL z`YXp!zh721`1+c6^DX6kh??HO{9ELIN%DvlS6>?gKI7Iq(K$+hpU{Jk89KsG6Y}qF z@ayXu$MtF=D#rgPw>%vYf0FaTPXVy0D!xtrW5AbsxY3=EPkN1?{;a=&pR(>9J$jaO ziX*=L#&&OHga7!6xjz2q=& zp{2-o5M1LbZ7Y1qTb5e{C!OO6RDr`4@ z9DD|O40jVHSZJ>f$oi{6cy-p#>0@ZO65-3*p)yUw)ypb=LYcURso+Mk$(2Gs9WOJJGTE- zAly3lU4iRCP6GT(JYU20<-lV2i`ZL>4rn)=8$A`fof8H;#B)aCcVFZHJj(O(dCBMV z+Wd^4a$dzD{FmA2uUi-z5qpb&1UiYK(AQYvA1(s8b1V4KZfm|9oX=F&JBG(OPa9W| z^915okAaSR4)R=0_z%0te>b$N%M9~9%=3M&b-r(O8u;-Wu#^3yQ>-)k71{wkO22-u zh&b#tz?44eXs|aAK0$< z)p&N2vF;Uld=}_u9sxi3NPp*lsDIQ2=n+4aI!?QChgLM0-w{85chGT$fzOMC_h?2t z|Ea!#JWTj9_SZd${(j5;R%!ryj`v06nZd%vmHCj${(OC+E94Mw3=4;~>w8XUKe0W~ zuf(gtRlujKt4;6QN54K_(en#EKe=?CflGcITn2JWSm!VLa2+kvvYNqfYkunY%YFs@ zFwgUfJ=d*Ccu}-FhyC5bb!3Ot`Bis|Nr&IFZcVoEij)sk@ETCU(Q=v@7dkW`Z>J`oJd?9{~7b?bN+n# z#Ba2d+e?`C#D53!yg+OL@}1bpFGZpE$X~iZ)gReW4U?45E?C-g=C?X-a9$;mLi{X9 zyL$FD;3us2BClTN{J^M@hJx5zd?3d!|DjG6|Ls@_bW%HEKkbX4;pN)_Pq&62(OuLW z?S|fXD%x+bL6o>%g7dENDd0aB`LE7;KClh?(q*LizAerE7Da@tNc@_-e?x5tpL%-4 zd?ktjKl2#q7bgCbT<=I&`!{NEzd<}x)nH2e8MA`z#!zt~n(23G%fe6717;a~k=u5? zPszkv-iIT6R;Uj>#;o58dEL>6WlJkx!3&lv@yb6gzCp`HDFAA?S2tz8|##dwi+^ zhT-5#JHCY>2vuMgxvrWUysJw|`Ig8V*)_|E5)8}VCE?`;?l zgRddpN<7)e{qyl!upfa}rhZ-OSMqY54wQc_^h@y9D+avx=VuuH^sH8=#-*i++jx+i{;&jQdwb?;DpP{)An`f%T-*LMznE7pmF+3`Fd3%_HD5 zG0LBR`*K}4v9f`|kCD!XC&5qZJo+o^U%T}9$cyJO-hU!;Xnqg#X)D-|$gTDv>esrr zZA>fRyI-PREnf4@2*NKymR}rd4}JoaKde`ucbGu?+ygy|y&YgZ9JlJ>jyiF8@h9GE zuxSrgr_WE^P5oN$K@Z?Q@DTTbi`@=oUWi%r-{=cFPkcVa(3ku;bs*?F-a&i)N&Kv~ z82G75Lw)$uW}{#6D^&~}T2`w3Bfxj9b@Q1I0Y7mPa)1>n)p-u->;@gt*A?!sb~eIp zU!uPpkaarV|D(;)e8=gJQEUIq@awRLfRzVNFG9P?tA73y_XD0@fqD#Hpj6j0kWZov z@?cT6``W+2SJrsp*H3^S=R48T-|<}`A7!2E8Qc%}LC$ZBA2p>P1qMLE&$Hd1SqG^k6;d426Ykqr-102ft9(`=_Ni zKajBQTkC%-l|pP@W}OC0!3r+aU{`X$a+i(So{1v`lr9BK%NUw_CtBsE?Cq5is?pGtiw zd4IRR9_S$ZCm%u_dzknwe&;yloMRx_gx{_W)#E3{bJ+pH7jPV!xmMFadJ%q%bx4%^ z9;IK!v|haR7dNMCFq@j6N*zi-4(Za+?;+~9`gp)2A0R$_M*Pj3w~SizmY3fF{ZL@A zkN%?PK_~ikZ3CD3=U5)-(S7I<0~dSyG#mKItI&(|E5JPEmh*?^ zE#rLi1!+0m%8WBnA-qy!JKl%>n%Xp*&&s|0fIfj$2j1QTA(BD)^ z@L!X9{Cqgz(L;z=!q4Tr=&#come!N~YIKS4FVNrfbi8vsFBYQSB`<{L!7nn!;TPg} z0~WyF9cvyh$3Dm>@&Wp*%P{j5*n)Ng)_M64UPOF|w*~)G$mf<)pdYcuv%PYGPKxht z7bgA-G1y7?ZP*E{OQ}DZFVa@N=u?DtHQryR-8G8)#~S$Uy!rQNH_7{i|3~>>W`0b3 z-OzASn)+&97WNQ-2Yvyo*3T#mgM3m`VLv-br*&=6k9~-UU6^!k?qq*?Kji0x-`x^% zBNS+C+66Uz-`CfWr(@-v3iUxJ@eS-j^mxx#;K#WDeNCV|7wQQIlh?-j?f=^_>><2= zh`|&(1vtMN?E=Y*{VZ#Zc0&u{7YEtjQXqN z=zZ>+;6G};@4WRq=s0y?=fckqZ$R(Cg|Ih?^JjUlV8FV+=*uIZ6Sm&n`woPxhDdjg3fW z5$|ygZ*O2A)hPd_S2(U8Fv`FsK6jlAc_#R7X4_mKbZR*0Cx(GfiDS#A!X6^ZA0K+R zg8wG0d&cH4{-nmjFOHMXshodP=js~>n^l3iXxHVvWFnuwUon2J@!RLc6!|{`dj?l} zA1}u*@eA;jk!*KTP1r*sZ+QdJ-7(*D-=N)e0odnm!hbJ8`&o;)q00vI<)04xU{ln$ zZ2(s9mIORh8*)SMl*&avQXj#O#17|dfqp~Q{g&|n>6CX2WvxE*HTsx-I>|4G1Dc@c zzhT~okdyeg^?+WI)_Jkx+6+AW=u?o7=r_|8^PK4qV95oUV74>QrsqPBqObPFA)nYe z#Njc_FOBv6T3&tPR2ghIX-a-R?SpQB@IlJ90+qn+I5kMje#uPM0-^OKbre`;o-ZgF}~G%bo>tkDO-%)XS8emfudDCFk8 z3AsH$KL0(&_1SzS3`FGl_^rqbvE}ebPLHVs`FF|xAEfiG>^rRmK4%fWLNCypdVa7r zZ2bwJ|KtSyko7LxD5)#9fsS6THQ(#MQ$819Ki2_PiywfT!#AOqGL+BzlK@XOhMhl4 z{LUYszhUdW=4bDw9*cucL(+ML^K40Lo^8f+z)zp4W+;n(=bb{G6K@CpJ2L_FUIY2Z zyTadLEqa-IAL+P&R3x8kbbj~jJmM{6>rd=CrpxyL%wCl3nL){^_bO-oFXTo#e4mzQi9Rrz5xOXhblS8OK=!6MB!gICm zO2iq#Z`cNO!r9R8O5!(S{)$-dKJP9{xmokc3%HK2toPjtP6U4RDC{Ij`e&a8+`SI_ z&qsK@vy210pD+*MxpZ3b?CN-a*j0YQCscr)IMbdm5V4bst!U5J5om7`zhE!;bs&a( zREY3QEAW$Cfci@OWl|@=gL&b10w2M7_@p%tua{?y{FB`we~0vY+(4ZW|96~$2%k;Q zkv`vZM|4%HL(SE4HS4`jG6B|iCsdSOm(T7oJUH(G0ptF z*u%tkz-O=?{88jEi}M5OObvst%L((1Uj_WsKicv2cenYe&x1F@_{%Bi8c0*Z7ySkN zVOAx!~XY@&VKIqNLlCC-sE~sYFtHwIhOdF*)L_yFa7Zl+r0^U z=tulfzcP=X_UG{}AECc->s zRX;qQ1f8(8ul}|Ii~|F~`M>1zRn9-hIRD(9@XNJ9C(;votV}t4!a6Pes=r?q3V3!> zMy0==WGIMVlwW{$-G7j0d$C_VcTtag*Yzp3`-1T4`uV)B3lCH8eKX2OKf-ZDjN=Hg z&q>VVPFsH-j~z$5$&-+?>}PI04SXh|;8WHkYTgg~PkuVYv@3C`Jm?Fi@!%MQiUupOE;$+BrpSrjX2wpvq9yZuuNlv4bP(gR%&VmhX5oVP zgGu{=9~_SS^#kqp(roBAvIhFq;lg~oiu1e%<0Pz0sa>^U&u-_Z4W8I@N6ogGujakb zy1X&pzI)Jav?}u83xt<`4*MsQ>!C-959c_qs5qVyyPEef^d1`re9`auw<)(_&=*Fd zy3QYic9WbxVOgqP;=brW&WeVUN61gUQlOI8ajqTN7A{#b2^R{=btP9{7e?`wHcT%OK_1u${x0LMM=BwHCR(B1MpReo zVeV&$?11FOPn&fCpUzIdy%o&~J%;|6XxbA!j?EAHnfGAl5%P1D@3JMWciCEfO+MFw zlas`saSnc$vEEa;f8Pnar$ewCpemMaAL#B#v?bCLeBI{}Y;06pTT zQumERo#R-1=0Aq~l4$C;pE+wlCz=Ow;4ad?>nP}?e?+_zdz-;{?v$8pFhy?DxX(HG zCgd#msqfHk%xd?Xu4BD?7r)OnbW+mp7vLvh<*6~uJFd4eMt{gAO3mF0I_V1NS5wm2 zz5?+!V%;A#X&USynPaHI6#uHr`N_<$@SvikQ~m{>Q(Fi6A;Q=W8o>QYVWWk9x}Aa;AZ-az8zweT6pZ6oP- zo`<*^-iNr_k@9&vM)`2R?f~L1dIoT3H1cK%!oMyHJ*KVojvqPzKV|J_zMuP7og?7$ zUJmfWm4P2z?-#!4B(N3)MN8MT9#%F=g0_3v><6gk3>$d2y?8!6J z7xEPUjr0Qj%wfO3R`I3g79!_rCqR*k8_fwE>?F zzjaP6(ieIOR6^V4#$sK;mSVZ1{Vi zH2N!iZkO@+Wccr8@;{yHMA3rae=Ff>+FR&=7OeiX*v(gx`#BR8Z#Vy5L-?sWwExkS z4P*r23%R}-oC19PY?Jx+w?ThHH~sQCJqUCXwLpjNrS5-)b!J;=WD@=TKn=u!m^b00 zzX62b+K}?J_Afm;7IXq}L_)o7*nGn`q1{YX*qh|3bBAHi(I*BQyiPz@=kz@fp1p;B z!T5Rs;nUjy9(}Zdf#f566UW`@I-uW@@UvWB&ir20hkt_S#hhFHc|Y<5_zdsF{K@;I z^BeCUP83H4C3^pb>m$iF!0$r*&$zECXwCmj{1^1&%P`K8e6fr3ClTxYyJlREOFoGH zb|C#+^b2P%?CK}N?-+-858!gDc?w$AP z=_B*y;y(No_YVl2d%3=&Rzd!{+%;dVZHPZ9Yn^McHdIe;8OHySKv#FwfFC(leE#ok z*h%O|)O8*5;1BZMp#407{I!~Ney$I{P!GU9cM|^HHpnO09`gB@@WWq|PEOPXCM`Y-ir@WR)lj~h^!wck{YEFwHW1P8K^Jvt^Z?=#tVpR-xe;fg z-4H*olaA{E9{(P2S;x%7`#RDO&-Bs1UEgzS<|~#zW8h-XU&YaG>|3;3k@SCJUFUFK zbOqs=#jr!=zz!uIuBs2YMP5hTeu?<|b>Zrb>*MZV0|^jbvJvcXT2a`c#H&f$LEm{E z^rsNNsw&o^pLhYt=W*hn{t5V*e2BNOQl%Qa40}jf z@3J-KJvPZa$nTOLuXCS3aCl`yS>i^ey5#2=;9_qR^n9SlPkImFBDWlzk4@i%{Ybr3 z`A*gqcQ-Kf?<4cH#ysWW=8 zp)7t^If#BmY9oGr$9AVnyq$!2yOQt(*J}d5!k!-{ywXwdnW+K!NV}g6W4{)lUmc16 zP;J_Gg`r=TByt-66s zA-uTWc;odeo!2#xri5p&Kpap(f1Pl0Kk{kXx_@R|Ezl2)g#7pB0HH5WK@ORXu-p2i z{}k6lgVwp`>Rg{nTIXKB;`&as68v-{x~(1_0DVQSLtihk-Hy{BpQQCZ?=0>oN#5nR z&n0@n$QyU3*OoOL?kfmJ|Lui-#TFty7bXAi>27-Rcb9+>{8r!3ro)thTkrGMI>NmF zB=Wx0OS^XiKh61J@ze6uZzpepm%|H z9tgN93wsm#y;$eR`on&}t$s(3_e-Y=!jC$Ue%>LV6S2Et*9c=8Y|d}S7XarigTcdU7UPkHXcZ3{k^lFosbK}XdE9g)w6|8af!A|kfL z=Rs#-&xwnOw`^9Ww=zCk?_mDH`Olk#Q(k;=Zk9BFN;cNpD zy*wMDe0X1h#O)C+(61EFY5qbw^>iU^>dbbKn9#X-9sUyTThU-jJRGwdbmBezeo@t> zoR9nE&~p&rnPYzVqa5!9bHY<{(as;+0s5|Wzt*Hp8Z*~*+?FXNSUms+@GF)F% zuRduY(yvkrz>ibbAD{oLjJz3r2KM=6E)d#$4)P3H@7vbZX5+<;*t4+18f^Cq?XaFa z<7=PtwY#c4@|`<$uz`ym-jwlaH)uQ`=`@Tm4}J>&LM!^6FVatT_0uoF{fE)Aj-eoW zfBz`>OrM2cKT7&Xw75L})m%{CMEKd8wEy*p^Ag`Ky-WOuKu0fcnXinDce-F)qs_^D z??=7-sOiTza@Xr3-nVZ(=qFkKNPlnt82xq9{`xJs2Kgn%dkO9{RFryaF6n#*I~4g> z{0i{ca6s~s&%Hmwev;Pw>Yw!Y)Nfj$`qO4(zNXwK6Xm&*Dgdi1jgdDqZIL$z5`TPC zwCmgtf0;r2$LKE^%U_be0zaG$Id>!eFutQ59^)8@mZ15{az9lnKQd;L@Owg}W6d|V zV|+^ zhe7NKb5p(N!{1}pzR+X60e7u+^JC?q-^3BvbA|CTt` znd{@xGw3f`(fd`nKPQ@mJ;*%XDy}<(kNEARIqOC>4;F~kJ*DbtgYo1X;`<{G*ikn| z0iNW(=&FPtl6wxT3^ow4w_Zz7pQNpGF{L=3&2T&`{yyz~^w;^!&;LK%zZc63KE+R8 zvzZ(rIu%@>Hg;o{-U>X3uVrY~RdLeEaX~5JOuJ|i$I<-KX#!d{8izX@}iG`8x621i?>$ej#zJ zH|Klfgkx-0Y8U_(LT)o8ARsEV-s1*G4LbxxZ1XF|(L-Ssy3clpky#F_pa zHwEhea|G!e(}~rap9#(Lx4UdP^>T-w&wKR(vB|S{H#8JlW`WSj3+S)QebEwU26O!@ zSRHyf?e zTx~;nIqB!q-S^fh5a+}I}J8jk5=jVdYgmur}&yzrBak<8ZvJN}uyX6hw$N0{s zMl;`$J1CzQv(3K?68_43z#YE7T$At_*8vY$@9iGn2m6m%`!I{?_~ZG7L%p*MQOjmP zk8WPS9)HRLorrbs>nYl~;(g}%$j_H^7-y{Y+!}9y&tOH&6UuzT4!y2w?CJ>YO63Hh zNHN%tI}myiJ>GZ%a!dd2w};>VL>x%ZfZRUG0XjRzQ$F9ruKJMAM#G42y}vW1CGg`( z!~s~ZQj@uFGnK4lC_F&=pXOlx;(1=-GwX5CNvuQOY?&7gd&`~1FS!3u;>-%ZGaeY( zz#tAIpA9(Q5@VfniS2ISJzWW&hoab2;q&m*)S|(Lg2abLACMnw99lw8lzH>~vD(nP z;1?N0JDCVMA7Hx|3Nen2_Q$c={fR#o_}j_<5Y7)|IM0KqsMLaU+*flEmhdm}KfVQg zrYboGBJ;69p1)4>d?mE0)P~c*cM8JarLM^L8|j|~eTlcX^1NHnS_izlGWr!hhkk8i zf5+Yf`sw!2dmi$cVZ9nE3qC`H=PyfpSmU?bN}VZxtG-%7{l=?7@7+n~_H*nP&pSxJ zq9dWN$S*?-rs%6v3izqLsIT<2lKC=sqF*r=b=0ryS2L-LrlP->iN8#bb3OY^{#D;V zy0YP1yI{9*?mv-rv;~JapZU07&Sg12uU0@WunPUo_y*7k@!cYAX67sLH2M|3-EW7B zd44VOcpZZ$@oKtGxE`PBy`V3CH>)M>*}7-@MLiJn;$CuSX+x(M|6ue2$S3_V^85Rg zPphXvKXwJ2cLSShgv>Wu_so=?3Au&1o+5nKV7(E&2#d`{I`4i8`~cTS9wWR*PQVq< zn~S|I)&n9_&n!kJ8ch5xnxN?y-{&n#_$Qoy3vj$#itv|t&r-s=XX&e4f##Y<)b{`EqS@84*Q;6g_feO z6Z@ROd4@no#DOI3DMjgl}P#SSS=6T%V@R!sne>~}-1E7fmZT<22 zJDvv#q$?ZFyO94Xk0PI{6zoLg&|w1fnA`(=;b%i@z*7_8*AC@*ItTcSwnAKzyb%1H z^tm1?ac|yq(20kjUy)}uEpU(jL}kdo7x^qk|5fzgT!atQ0`c--zvV# z>%gZo0sWmvIwwnbbaY*sYleYHU0VKq=rL~PohKroAEY1UCY_%afd3%h!4$tZPzUs# z9MAaZ|2doToLsl(GKFtCo=+e{v`3Y^?@ARqkjMTH6QiT*Pr*R zUxi+RR-E}=)(bvEyIL&f8@Y&lR);5w-%YIucq|9_?@WGL>J8_fUZS~?7sTHc={SWD zAH?5lECRl&;KzTCcBuCH?XW)gwWc3(Op6$0EA`G5@RNK3{EJ?Ca$jP+4D1cotJEjD z;57cS$nP(0nWr*MKwp=&=9~T#^}_uRk}uAeU_6=T_umNfVDcr%?I7h@ljjg!2mHJM z@~Y~4pdV-i`H0@9a2`0o`JB1L&%F-(hYExLgM=S_g7y&b%X9QQu;;|Du>UOL&p8Kp z*joRZ)sX!yRMB7_%85THdMD_|*ZBQzy`C8H#s%)=!3Gh%(AUbX#=h~y7QiJA06aZLxj$hG;We43GS>T#U9@?4__1y9 zBZv4$p91~JG3ccN^|hS)Rn$<}VFBXj(rL@1qxc?{*h7_UjHfcz{*dRZ!cIaTp`u3X z`aK=)n~Hymk;~&$%yX;ojzIJo$W7|E)f{)nYJne`r<%SLbw#X7al>IB(y3Ji?IxF@ zUGdXO-2bVp_s1)69#x$N{YI2S6TZ{rmcV=ktU}*|m!jN0g2s1KK9gGkuJTke5XmF= z{sMT|x(|QUCd8}6tFX_HXehm>Qonq^6}{8%gTDehiPeXli(S3O_3_jW!~w}82|Xcc z^2J%d-S+u_ao`^Kk&HV!)b;Q+)dBvvJ(~A1MyW69SDw$nXXG?El(=+qA^a=Y1pN{_ zNk0jGQf2)7_xv03iCOP%Jg^+}9p2mDo^qbwANq~nXk;K=39t4H>@aH0Gq()_9<=rw z7h+y>ta~r({|Na+5BTHcZ+pOxYrT(Lg?<{KpF#^tRc*)pD!E<5VN>#%>oM|U%|D!! zc^>Qi$KK0mKdTW3@{!J)EokSrAl~X_ee=!Ze12*H>=4$g)PqAn$L0H0lGoOLfjTo$ zv$6U6vZTMXH}Rhao%aYowG;U?asv7lJ3Pj9^VBTx6D9tCLt*Ff(x`iNx-?(DQGlzu ze)#t%K|joQ@n(}weV%&_TIXKd(NBXl(NnR{tnQ#6-ivy2J==Xy_RDnzpAz3zE`WUo z%K7cH{CV2LWxqX?`4)Tze)7xVU#?H3e?uLj-Ozj|^FW^JuiMSPA#J^$unKu3GRW|cz||Zq#)x}WU@h&I(GXX)Js{^Y5!9Gp`WP7lt1q6dk6L(&xS@M zj*Xu{d$>5n&=guPWH{Q76WPc4R>NPgU^4c_GaThQN=#7~cgy*XpRzeD)i#n4OA zil6szz9=#r`8r1YZmc&P+K0<8x=i#Izg~K9UC*`FFFrVmb|cm~pd{;Fmv!&|%efEa zANvUM7dda!>zR z$SwI-6$3%*N)=>&j8rdf-~)+Yv^74K<>tRDd{AlR2 zXg8P}cBsn(^ZmlO5#sv-;urUl&$Pwo&gF>1k(a@_tgjXCAoP)6#Qtl43qB*4z^CM+ zfAq!@kI!VMM}2(meVKVAg*>vHapNTOV}S8c;{1WX=|>iy>JrawT^sJBAK?Dj*u6Ck z{3Y{KskXbw|BKL9Ny6up2RuB~F_3lSr?`%jroNgt%)n)wIEmwzRMDXZF7oVt7<2;G zxt{UuA)j;&%o{8*f2GvxT>p(u8Db!#2)_~_pU=SW#uDCsCFlg3K+ZZWm~Yrh;HR#l zzkd?`Ip=>8oc|F%+wDNyNLl+2-{5)VkaZsUxIPbV{50(M)74zhjgQVYE#jwA%e8*J z`NP<7*pJkcwbmeR@3Zbdytx?osm8z;zxZH3`W1Ny_FRPa+$zAgByS^a)^HieCHv^t#NMrL8+Ob@8pAih5pHsz>hX?4B{2iulhaWwt5$F zTgH8pYr_6RI~E#D@l!p`hH+>Q$P>L&`WYS2Pvk&;Av-#4fuGn9e*UMijtz5uL+Xu} zI)YA&;~JrJ{Sx4DYaR2kU*KQipHVq9VZSbYj`*y~g3qReU(o;K#m@})nG_W{G>2Vf zta~%m6twFUfL@?w{Z7qv#DTdT? zlzGl2m$*N<=LjGD{d%8|N5}cvFV7L{!Dp2F4@JNEc)n6`UzzCf?C-!=TvrmmtIW8X ze!wy9b~Zot`7alG&*b&%eFgVTrL28ZUn}58TcAFdem(pk<(U(9RiE_#{+M#`9`e?o z;Lm#!a*Ol+e|VWbZzA`=XJP(9{N?HUK;LztFH|*3Ez$EuM*a^%0@B|Sg)yg= z_oLm|M#ODcky6i1gMO7YuB2z`5odBj5dHoj|D(bA zodB!PTATpFhHNHz$G-&2u_Wd*9%~;L|DOn1A;$ zKb5-9xD>GZd$0ri)ZuwFiSsdzTO-!E^m@Xu&dkH-$`lMv&vJ#AP%7(H;ke@&%k~}o-XUm&^3Sj zA9oG(lNBL{k)&Uy65^rSGSA0nWv(NKeuk$D{jCkafAV~`!GDv1`$_I^2~})h;Qh=` zrDkkK9dc_$*r&ud@7`8#{;jL^KKt`pES}xQ_&!2e(&_y(@_2dyGD081@4JifYDjql z`IYi1{y6x|6hMAyPyEBnpkFl@@nk*WcWQ#(e06FB=$9dUU2fQ0+S)%;HW%n8xXvqj zANDc$kMBYJ`H^&TuEjh+i2H@a?>?FZJ*Eo|HJBpj+lPan_$crbCY_1}rN6LbiMI#K z!44h1`=HaP`3h@wd-6=ak4*gv;Y)MU4y}99Ka%}3dtryCiC?)C=mds>&J4oGYCH1w zS!Ec10)+4S2>6LNAP4+ZYSnSHt4^Q}e3$xKmSA018F@s;<4w+kj;aUy*JfkBTdRVO z^JcdB_os}*BRKwwoyR;+gulu2=83nFcizf{Urd{be*IGxb}Qr1 z9M=#xLLJ8#M2Q=7>w$jc0O&JJs=lS+U(TkPKK!Dri-PYW4$D38ySQ$iNq}>)tL1WD zbs_T0e9G$!+Cna|;0up)h|qYC^e_BY@RKdQD)E1q6Lqan8%sd+3H>_zM*8^q zn|7F@9gbqV%Q?>$vG$*As1Ek z)bDN3ah7O9)n6_O^!M}VuiFLjP2%vO3c!!%f?oQP{{uXyeanNzjz^)`u zt$mDsaS(chlyqG^5B89;>f4@NZ&h0d8_E)&yLAOWp+F@Am%MZFGV){ivfocD>%i#Q zVSG{pgD?KFqABa2R}oJnK97sizs?{I|7!k9sc+r{oe19#f)^+?`VR0Pu-2hUvEGOt zhunV70YVG8Z!?nA2~K~D09L2DZ{ICG)Ig+PtEk6l9lsuzTmU}_?n@N>HScg-Qxo|} zhaL0Xz6JO}>s^wAtT$peQ7?)8k7$Xw0 zS&TT@o&2=Z^FKx}2Qj|W(+lQn$MKPC)vIepfKGTW+O5X8G-E&Kg{<@7$%5!_W(e#A zQCF$eoVQ6^^EL&_f_{YW42nHC*@!dI_Hzw?5@+0>fFHBY)%IV5c9Xf`Uw5&;3nvnP z4ft&F4#a_AEnUFt@0j_iRNyc0pS0r15Z!&R-H^3kVrhu{AF605z+06X)D`pt zUnBnHXTMhKeC^ersyO0&3ATIebIrpFS{q#sZ)#KzhZ}3wL#x$kZlMTXI?9&_kDTu&rYMk z2Hq6Ssu#Ha=zfBJIfS3wOid2sxyAPrk%~ySe@tuZe!?3dVd7%>jPW zsvD>3^%`TJ|G~mL5`XJi(r*KPgwBHx!LFj~V4s7C-#v@+yiC0i-taEWyM~In2BOok z`R?I*ZhSoK3ZqN?eqsyIk67m%;1X!kqPSfO9&sggmT^u{XR}UpV~~N*UhCK zsG%-uM#&(CbN4xP{uye`3b>~n%Cm|m>2e*;q#0bKj>`MWt#i_;@_iaH)Y++dI#%pXHrE&K$qF(>$DL3B)KnC>Zr~C z1D(KBgwFBA&#P{trUGiQk}Kk!OXu zlv@(*irhk64{}E%-U|H=1867T`0eDvr=X)+!XBO{KLw_vzp)P?|2~AjL_G!%LXXmJ zfu`thtP?y=<}K%QKSTQPWJ5vv)q?lNN8doZLT7Ss#tmy<*7qOK4rf7+0rIn)_LH*g zXZUwc?|1L10y=K=Nkduae6H=+n`i5@3i@JrQ)jt<#$5sV!`hWP z(vNoXmETUP+z$HjKcDc?|E3A~vF2l6*9PN_o1zmSH@)0ozE-CppR~2#uhAyZNn7uM z4p>KgYoGl7r@&|CR>W1Y=l=?UjX0Q{7=d+jwRlEW8o2d^w zlzGK|^y|=MXhgf4`MU7@TJU4&_b$Slv)!Pz4*1(c;6HrTFXx)Ny!Y~H@P62*^y}j* z92ajJWhje&-A|c!o4MgO#;~MNIJh_g6KSKNf=fT3fr%~p?YWD(uaxU@+qMzQc z!u_$XwJ+|(9^hvNfd6)+ziJBY_Bt|}7MJ-(GXDl@!cHXbv43CATwiADIz>{Yg zczSz z;bGo;ma*)5M<*~Io&_&f>NNN1rL28=g{mUHB`>4SlyT_d6xvl*KF!H|s;qo{z6Ih{ zXfX5`0Xu4d3px?bb4q`U@LrUJwcd9d$EV?<@S{1Tb0mR&1&0?mkPC!2Xy&!6&v*0w z&j8`|KLviude^(gQ0nD9NTvz#(><9lvS24P6V;US9`T%x!E8KF8U$X99h_|BOxAj37GY_91 z_LHCO=3dEmc`r1ityDGL9S=Ww9Db_H0P{`H5B!XB%)donfu(@QCxf4SKv#cpo;k&P zytO-+@1Z8ZPjNn3Z!<7oas&6<-|L!xrvO&ZJ_9+p+5Wh?oOM*jnuq*3NIw5p(NK7v z^uN~*=+!Nm-h&NX{34Gwc(1>~TVVfJshD9L*M~W-*I~qbhjOw2=9Cl^GG4< z9OXNF_cqFRZ$x>-)zGCAnYP&3%WVe1P=#{)>J&ypMD$;ls7uJpWbIs~O1M zgx|V?`R+W& zI_f;eYfH$_<}>hL#rFhZElTBS#(u@%p$D??2PbZWd_onTFaU`^b?*kgdkg#;)s#}5 znXf}l;V+}u?g^e_N*$u^w=&dSLW9_=U3wezA^xR;ht@!+Ej|kmr(GQQQWwqA z9rXGe;kwUQ(pl3Lbdm>a8i@Galk1t^C&E4l5Wn>AjAQ5gaqLyuUv#%WFEl?0`pSBL z@HXyy34Y(mP!@TnmO*Y|YaiW3UAKGu$97jV_%vr#i}!>?{)affk$zO4@i6iq;_6WH zpQ(?2#qYql>`CHZng+duvw$gb$Wf1Sv)(lx`4!+X>mBoFeg>bZ{K&sli#ow`F^O#W zsnpK{xegMw)&S5dDq(hlnBklHj}K;7T8FyozyF zya6(}#Eq%nkWMf3SC=d1dnY&ebkdOLM9Sf{lBoaVwf%Pf;#um2acn2?_iO|Gfb|aP zvW9@ivML+Q2=ODlmm^df`jU0STUie{m2?2nUtY=~7vFKq45@A468EYthuk7Bz>jVv z{z2CBNvoc3u@`bnj)Z^7c>I=bkVAm?HlWJV^S$k1x9N9>n06(eRNMsdCLM(y9p3ZVkMP0^01x~D2}~e7@DBGsTjx{8uA&`YNBtmn z7-n8e-wJz!7wGz$>vyq2us4yA(t&i2Y5|%$(Ap2vW-HsZ&f`?2oTJ=dQJ8d+ z>{n(b`qhH%{@Vw6Co~fMa)^J&eUyJ|;6r*!?Vw%7Q?M)1S9Q*lE6$S_A)U`kGR|B1 zvCW%o_c64aApT75laE^aNkXT%?rhzIx@8>vB6Pv;7n2wtqKpqTL-m{vbY>kemw&&< z?KdIMOdR%5iu`=S@oB0F;>K*kAD%<`@P4XZgiq4vGCcc9EP|yCC;Y~C^w;5hvP1ZM z&L=0W`Q#VYfPRYakHcD&Do1;BFT$?!lg@^FXb)B4iHJ^0wc-Amu(f~Y_;AQA_7mhL zd9box`0(a|lW+Uwne5AYlIOOHvE7Di&~73p>R#cqE$81trCo#hE%EEu0lwQO+d#xm zy<^v&+>+Zt`2g|9=!FcApG5AV1|odMx)8q8&;RFzJ-D6+Yk|sK;#-}6U_W8&zR(cg z9SGM!9Fz5z|5XH?X!CidU7=I*3($#M=iT1XfzfMM{WZ&nUrKNI@%%S#?F;Sj7~(+i z>DvtctQ_V)s^Lt?IeHX%1kp^Xn=!~umBqMtOcwALYe)9v<2HhP0!$23srRU*_swTm z*QNb+-H%(*uZXpuxqJ-#$E@kP`cUsSygImDhrd_#4o@401t61VD; zf&Ec;CGP`=P08mgCr~#=0woM&BjI=SMSq>o(O=Q;h`-Tp!n&8BPm=mw27TeL^!cMR zu>bU@j-kAm^uMD$r!9M4^CRMUq88#gq^DFP*7^(D<3T666Lh)|{&5rTS9}Z+#$h5^ zTLt*;4#!|#B>sutDTlhyyZH6h9?*N>kl)TbjRbylKIA6#-u=T!{|qRsC;fN+LccOW z*e6=i^9eOQ`ejsn#X^HAaroi;kY{7V5H}izvCRlH@DwlLr3!Im@lX=>%H~w zrohhAoc9(vALqI9Ku^eD#$Q#lVCT^gDuL_dzg0E#D{xISpuZus{|_DmKk*3oam{b_ zJG{*SPrHCi9Nx$CZt3l?AF-?NxzAJWf&GYI=Y5XtD&)<9?7*3cfG3VY&bip`kFy|$ zB-inC68?Mu_7?3|+dzbVu5Urdjn**mw~FEqPU=F_%NOy@@b@Q4XCmv#sI}fPm-T1L zI&bwW>$*VoN``_ymTSIVi_mU__iGIx{eSd0#pFBdUcPr8WxX*D{7C#6trMT;U(VPG zhJyH4pZ$Obo*ZW2BA@0D!>-a?j~0J96Gyx0Q_zdpNs{m+;Y?F%!EDNHO%+4`W!gip zPs#sEcpR!qr5bjFUeZlr`C;~Vp*9bbmmdbaBH^#DC4M*LmxY86{Q~q;jWEuV{gb0QaRlL^=`rsgn!#(~9s%Uxj=!^^tePzutI({XK(rCBCh=#Jr!^ z?=KtQf&B+(!v2L$7g=BU-tX_jd0sC$4tCy_{B$hIc58u8k^j#_0ME1mT;2->Q^`Ny)pAHb zlwrQ+KBXIkH~T-j-aA~T>-!(ydS`+t(T=N&GWr#5lxUG;l!)$Jy@gRCy3spBL`xe& zM3l^%^aO)Q2x5>TLNXGONJK`DlKAekU$6Cfo^zhx@BG1Y*Ijq*wO8N059ArUU(!G% z&TPJic2ldN--n4`gnkj4;Ev}bdILYa4EDK-_^b4f&Ung-p+^jd>QSzPhx54Y{O3-f zlNf>cse5R?D>ncS@ILUKgx}wVdRuwMLAO~~2e}_o^nR4@j0ZgH1@FHMdkEEZ$ARa@ zKyKD?*qi8OVi)o=6MRa1NLvPY^bX=A{z|F-QojvH{g$5{EB+Gr_oV~VNBg<519Vcn zzaj_wyRsAbv=6!M_CzDjV?2y{qX+2(S_9wzKJX@8Ri@!Tf<2CmCnTnB_#D)n1-@aew+yGqNBKUlpT?fR;L|M@hO zUc&&lSHn(34jc72+TmaQ4tc)BcK_T6eyn!LBN7J={SG#-Fx?FVp$mTm=vq>k$ z`ZKiMEw@y0#DVaX83t40z}p;G`l`F_C(jtjU)^-;YdYV}@gFZ^=zPI;>##lv6s~I^ z|IpyJyaGP`Rnaer=Z8-tAE_Af%Vg3iei-;M&%5d`l!83{V=aRzeo?9(KiRfIKbkeyG2(+Z8}kifeV)n$`Ml1*dYy7po^$I1TR@MYg3zNr z=4`(33+Qj?U$_1AXM9f9fPaY`rkw_z1n*56&2~qxha4imAWt}(|GP;)Gz|PlF1h)irN!vPndDUTSM>Y&b?L}Gfzz(>A z6Fs_`3xu-jzjN?YJWt)1^oJ}*{0!Aao)S5{#5fuB#L1?IInJHtu6x`4z;1aTqTsX8Z)z1Z zUXcB2pPTXX=6HiB@iX@{;QPkI?<~?kQ5o=L*0Kij1mT0QGrW(t2gg|!0lP08d^fKCwdfrEvmeex3y*fKQRw+U?Ayi=e%ps z^KMIBnfJ~>Ue<1Iz5wTYeV)3asusA>FY6+)hr1j{B;ymz--{maF~3Kc-~T23N$n6% z5}tgj>Vf~%y);8d_SFo(%XR#MI#KFR=yz!Y`wYDT`<%{rySN4Tj1+|(>TQ1JoAw^` z9`xLA_RM44|vVZ^3_k`Qg7E2|qT0`nn5$97cF|);a!Xq4!0E|J|J9g*5PU zp8TBT{?d3i%%3+Pepc4WYAo!q5#cwrAvyJ7&@(O=5d{CyW}x4l_%rncmoxw7`>CIS zAc`v0a}xW@@zfVt@CTn2gk6QF!>_NCPP$G^j^2~J=S2Lj(`3jYk`6y@OZ@L^13z&B zezBkMfm;C&FfM5{^L@*Cr06Zsk@3Y><)GihcGz=g;;-g@Bo%;spf#lq>4|Z(P8WCg zx9dW{qs99h3X*3ZUP*f^k2+1>NqlV|;C2th!=`L^Dc2EFo^^!jA2QAd+;P5E9oSpk zb56X?0La-Y?w(KBstbNczk%}T(Kfcb_%`g{{&T2-i2cv`6MV)Webm6kA8Ycx=15EA z5s71K7(adgS-{V1{!^99QIEaL8i4rS@4YF{({6b_@+RuZ@LbsJdTf>* zzZe|^eV>i^52-5k%cFottD#+gR^aFC40y^jULO7{;I`*HPJuMqC*Q?hN`4Lvf}B-l zx15(&1f67m`0r-o599oHAW_Fa_R~-EvOcW*G3=0Rs9ws>W)_JrGuJrp&+|M8T2L093*XHY42y_A!E%P&G zkM()~bnp}Nob!4|2XKdeyao7Q2r}ws6WDoTi`&j8E+(J9z@A0F71^#m4DGfhohP|Z z*vI(+hE=tp5$rJD9r^lI+STXTK|gg1ekyv*toNzOI`#tZi&tm-_ zV*M|5_(^?#{{I)9;8nD%8X|7wU;}FyZ&U4H=M5?6pGrZGft9EeN|MpZtT*hMz|YBk zZRb2v*fWoGhk6h4JwBSh`o4%G|6(fe%yh$v#JBQ~fX~FUmVpa?pBd0skoQoDUS9nI z_z~XM_YV7YY%}9?DP)$Z%LUpuZOEL?5d+-;%b7 z|Ed1&xVLH@`Rs?hY||cEHU~VA6a42TKa(o}9-39wKo;qc>3nY#f_zjBw|u(l?l}C1 zINt09bhVcD8Ttfy9MV&&QGd$EbFQ$!v*>T4F8cci`<3hn{LmNfIPj?UN2lH76Ttt7 z?e_l#{9B%Ts9xy-J|ldmzBlnJtO9<_b3P*Pc*^H5M7-j}|9lq4gSO|Mfx9|iIP*F7 zD9ArR{MA~m4m{+U=Xqp5_(?=jR}3KjaM^b>7WvMf8NVpaecHjtp|1$>eJ_Haxaa&= zIek%;Q@2?bYK6TtOKVK*O&O!7m%J(aa0A1a?3An}grzBt0 zSOa+CE7-|-;_u@Ajkst3#!{Yp^?S~}w$ORR%+GT^p%v-eeh%`FdiH->%^{zZXMe>V zePO=AjbdROYYBc8A`5Jy4IKcS;rbp7U~lBVSVtYLG6-9l6B^xW`$&E!y(} z*iRMm|KiWIH@;_`h42U5rxEb1KQ7S=RVKe@pKLHCzrR}qa!BwUJw#E>r=G8H@@z7T zZSX}7#klWO70od480G&S?ao#| z;M3|p&p?FFqMN{HnCBxzo+mFN?j^<{KHC(;cima%T!bC!YYNQww@!18oP$Zo6VlfE z)!V?%lOOamcoKiEucRIyK#x(7Q3tsG6(5GU3TY@cnB$soJk4M}O#IPYH;>msow<+v z4B|XbYCZClHhc5!9Krtn4{=rMima?d5@R9fo2)C&vu^iQvCQA=VXXOT>9WD;Z)z|4 zOYy6cxnZ}V>hKF6@&DpFOVYE>lA#U2p=0y@bFq_^0|AdLf_y5H&IIQ10Q0!S?MHPv z>g4fwZ%9n+DueZ*&ods$qwnK&@B_zzAEqFB=!q{UFZey@TmN8u3wz>Qj@^hSR(Zq| zL=UCD(({&1zha(qRo&+h&Us6Tw=)jYPp89j?y$eRxb6^|hk7zA;ghm}j^A_cehv3C zMEAMv?Pz|)F@G26YdqC?S$)e4f%^Vvx0tbH0)OBchL(#PP^eR(QaY#IhyBT{d^x>)SnBN;p`fFZ6yU9JUOo=l^ zc;86iJTk@Wq|^K}>UX$XzvuIVemDgB_laLK3HA=wi{(!_3s0`E#WsfuNC&}+uSf8atm_5E~1k@ci#|tj6UtIPd?P$apH{C z*KLQ-Y^OhZ-g)0NnsT_0_$>U?AB}#+_)dq|?L)(XAKV4}4dlOLZ@`lU0RM&#qlc%) zPLlNy2VN%rUiQ~M1o^*0_#)0{TAa_6{PkuH+HDE+H%`AOxEt;IJok$9mOA-(1w$F5 zRHZ)VJ{-SiAI@tzKqvMO^6zT$GpRM;;cVp$MB+wK?n9399zXHN&o~bdF9ZCiNT)## z*m)o?;!H2X%T1vD{O7ixt6b-el|Wv`tg=$M^^cCUv)j>)RT5G+du?9mGTKwKDmfLf%g+e zmY`q#2|uMB#F0-T9hLCwglFaan14ha1DTK+zsTH*d1R+sU+GhYrr#;5VA@Z6kGkNUPa=trNm44%mOl6Ev_JQzKP{)%0lTMs$J>p}kG zKwf=v4&yS*GcR$H>rJ6SlKI9Mh}fH|N%?nx{A)5UJGi)R7-dz`nljv^9nCOI7X3|S zhaSaFnm>kqB`@egMSmH@-^X#i{gK`D5=xt@1cKnb+`K=&wnL&{tMQt)Vwm_Cl<8~-7o1!i~iyK!;i>!`q+{A-s?j> zo^jiAGd=O;%xhVp`UX$*c-SWXIX8X=^Qo^D=nn>Y)j&^lIQk77Lfn?PaV{6@z22z6 z?-PGuJHQibAvc+q%h&|HN4fu2;@Ds5h$rEB@I;C83-v_0({7|Z=t%rooB{a+>p=d$ zvE8oOnIC`F2CP4+150pyA<6fEBtF-=j((-~A%DSJ^|s-?)K^cpzD~^q|B-KD=Y!a8 zb*`%hj?{Iv+m+|L1J^)b>fs4d&bDo!W}H>GwBrK+jja06!J~ zTGxsG;#v3K`ySd2jzhZ<@_+s$@cq2cmSI(ODG7L>w`DM&CjJu#!DrlaKiIxj&{uL6 z^z|zJWeNAAMqYKtx56KQew_Cn=rCfw;(CDT=-q$XT_;qgJfl1>-=FwnwYnYr7~gZ3 zc=&M-&<|&VozRU`Z@o{`{|4dv-++Clt|O1g z_;;wjaLJKFs0{M8-Zp8zO(ns9GKzYjHtFo*zLDf_Weuby;cs%hV?A*5->Vbl{5b5t zA@PeBrhG(4KtD1W^uHzlAsrA*9M}Q4==a~H zl;@oah7-}_-?@>e-r~HIz}Ih}zkBTJ*#AH$=|@Bo{%dpGVe#DxvHwHmfbTyIxkMRNe&pGml+V>mz>k+jToV2VFGt;&ECI+k_IK|C@NaJ!Whh9VJ@=?%S9*Ovw!{Tr z+8Fj0+6;Y3oNrYL>(}bB41+KBJiQ6VNAVK2fuA=2DmA48_>2}pB!n01ILdXI;9qX~ zo4KB7S9a4csKw&w%U%w@z^FmrH?kV^0~b(7oy?4etNqD(*t0%(Tbq+pheTP2NPHWW z9raHE-usb{{MRi5J4}2FyQ)L_6ZHVi;m1D_ej)kj-FD#9SJ!P#o*VqNvB>mz(byUq^Hya|FOo< zh#oGPua6J-R$u5#i^Y7a`v9IO4*Jg!f2!`j({7OOFSI58$VY&$x>*Jy{?e-$;DN4y zLrO}`+6MXe_uRXfZ$A7h=o#OQI}JK^H$+Z7d^X?9j01t8&=xM6S9egG^Kd-~G`DzOOe{TG20?+&y5Gl7TGa#S1XMfJ7Iq1&{;=&X!9ZE_89D;Dg7er0MJiye~akduEqGk_uV>yE0uf}_8C71f80kpZ?k>~ z{Q|!$PW&~K7=LEMo+bWt+yH(8p8G=6d0(8(_h`~dr%zAv`E@@75k51x-fI0m$-u>) zxA1&!+;cuRQ~>;h$Dne!L;CGjp}+pD@FQK`o6lDh@aRFrb3_}Z9v=dDY60X=ZK}Mj z0JqBn-jehKTn7(6o@O9L2+zA2a`15;RmRKzQvS-be{v+(d84Nw&zG}+(AQHyC)67C zfQ&2WvYttC{#N8xJ2&eVu1j_!KV`SU{*%RE|34A_(LT_RazC@~rulMhKz{@EA-AD~ z*WH15XnWpM{!Cxo=lEBW`yV9U{>}NTKxWwOhorOlPtb|*T}yUXg><3f=O`c3tGz{Stei)M(Ekg8IxwcgDAL$KGPQ2@7_JQHD|@7o%Uvl5RQN?*uyu3}e6O7mF*=9#}tXb2VS#w)Bf? zu>U6r|Cje&gfF}M`^{PQH#_P>kwZHja2z{{u-<-{bQYxpp7gvA9?0(SUrdFIj5C-L z2ma&vxP<5Ya&6hyUBMlfmgE6Hv25UH1l!&J3*;F-33*D~*vs>t{)(74XiWTBV`x{N z^R2lPpzqrci$&DZ_XYh3c!cjQq7}VQNA^#0UrlY&Z_9l$$sW}Vq$}YAhLX-P!~sMt zrP}rd+%AXstfydk5-{yLB)bs9Y8}8G#ct2_Z^H=&_ zmwxbH>#%$N?dkIPT`HKqYSx)SpIfbpdKVALn^V)YHC_-WP3@W(*o z30L0hhQjjO#~n&-&4i+rdw;FDOesEmi||ZZ}45&mxj%}- zN_FW1`1g6vJFMb(TyeY)Y3TP*biwJw!|3n*41I}*wL^gWuK_OnxB4A=iMK3g@E4hX zl^UBsyb5^k7n;R7Kgv2^Q^m&cEWmhqx!Er>=bH7m7jIRr+U}wl#^b%eGI$_3Dspl{A{<^4B zDC(~o?cwxOz_%*FFD{Y){v8o-!F>nzhBRXJx4DipNhV|U>@-w zLY(}a^uKP0`3)LtFZH|0PBsQkf$$z{37wczdPSDkv`D7^w-+Nc+UBMv8%~VVE?`?{S1f2$mg~ZfJZL7;k`P8j-ThRpCJCPhtO{L z1K7i9PKY>m=hQ`h&wOC9`ml#sGuVU7GYo5p{w6&8u|MPff#7gtggk7wdQQ*@cSYO~ zIrqFze%3)>uwK3HSIy~HF=gdlYA8tlD*PMp?L5F2zs}2ZNiolRG@q75yV3J#SEncQ zy*CeZQeRXsKMS2*pHu$(kY6YsRr5IOXKx9K$KF_GOJ->TC7W3+#Xt4~}9okTVGo%nlA?#qhrg}(^>>0I{-c-DPNwnn?^ zeb^7Qrr#-j1@M&L&CkYOXg8S${Sx|N@)^8X!N_wR#H@C3zh#j7En!9ao?h}f z-oW>L1_vEY{0Fa64z=8J*reyFobi-u4So{Dzg8D?B9|clu7uyD-=+4z@4g_s2KONc z2ccb&XZ|tt-_7XPNaA0ZO8fj0@V>g+J{Q~%b#gM~Bwwp~)NSgVy z{owNf;l1Xdo(YVFoDUIRbsOXmV%?jYe*KyF=}NbszRYuH)&k_;y%3*zm+<7vfd9#X z(9+4!yDy7d?@NiF*baP)?Y=S!{3JJka2E18{3XuYH-y|~5r60>l(VOvPumTA`%mC! zCY{!t*NSsqOZ;@cHVmg8i1OaEj>Mld5d6f$;HMG^jq8ejC64ton36{-u|AKDwG6yB z>16s1dXLpd9ny#J=PNpNimBw?1qLGVc^uahL;saC@F4NO=lno&2b)*(cR>j9xk~v+{ZQ(6;M=?pAK6){ z;m<;DfoCAMTa?>d+R+^QObrFRDd}hBc)|BG`X%GXv%7$=Mj?-kCH_#U2aY3dZ=#`W z=lWE{vp%(%`#pkpQ9&(dq43o-&`%x#KWIhYm(Dn!I*l1Fz1pG4f*pcJe$T{S% z&BPCLycXpJB^L1vOmgoq%{Xze&-v#YPrU5Q-{>9h8XRtQpApSKw3Asf)``Jox ze3az9raj3|C5{*T*%4=EP%*dYFY&M3{<2~W?Sbz*Ycn=q1?I1iCx2yQ-4$8`J9&@z z!#Lj?yinah+7VvT=q0a;aNNN#sV?24{7L6w;#ZvrIV3&n<7eqd(P6N+=ZT+@7j<>m zGY?;3Jp4EO2 zL(B8-VS(A`SD*m&D|UFc0py>$0Le%`Eve_<%(<;9uxBks^UYg`b`Nkryu_vS5s0_( zqwp`0bE6pK9J&U7d7E_lasPuaC+rzgQfl8B;D?V@HJD{7h`$Gd&)_SNq@JcW-zTi= zQl7f*=DVnu0-k$pdai>U;?>=9s5zN(;Qg^d@|lqt`i=bPj!QK+0zc6f5lqI3n@@rN zKruvSR0~Qi*ns#D<$j(B=~s9L_{llt4CEBy54bK6xC(zMLU>>Lb{KcDNuzHXL*2>kWEH+6D!wo@aG}}$Q3%MnEPNXpP_(mnr2_FYPgNUE&HNbs8p-zL=lsa`7bbN;)f2lLK z-X=c_p|1m^^LlaClY21US-^H@bca2JPrBvyx9*^mH|^(O$=OKf>8C*_@*XmR%>NYJ zNq&ZapK_%CO%2*ldBj7}*AqoSC$tm%$o{c|x`R%;(ebeJ6x*%9`X|8pNA#Ot2Yd%V zaUFJ2oA~GGcacXR{{n=6*#`Wi-l$_BEeJ2pd8epn-l;$<$TO9toWYd5Y;6QQ@(}3n zBb_I;;v9a0JjW+;>#N<|oD1fCu-S<}tqJgxnbF^Il-pmz=SJ{3hWHJiWV@xo52|jZ z-sL$U>wsI2o4Efc;o1N5^&QrS7f~N-Hq7^*c4UXo@C4``+Ei-&3+$KYedI(l@Z&oS z`=3fWuT?_)RE;tWB%SahKFYI{WgsHY-t;3s{fKE(HRiY`_7UixC7m4U&|_#6EJ57zY$F!Vn}^{K_>{ut}NcyT8s2|4}~6+p7CAF zVbseC@Tt?c`F^hexLO4Jk^FUeF!)itw^{sate#MH#tU|@@#gP^pQ0J$-?PtlHRmPb zo_UGXb7(i11%9fh#mx6G$G<_2e=+(~>c4v!M+BS$mHLx*bIE#yXZ|gk0Db@G@W;L8 zuk?IvDexbEW0s3fv<%?k;2amc(^l9+$g^Jd%nHztZ9yJyNB(oOUW&0^lDse^3jC1g zKKUr;6M`>+Pgu25#g3Bx8o_0Xdkzp$NoGjnoCW>W!w~a5qPt__=SjpvjAE2JkmA0|s_h__bXTVE#-JT_zmKu@YzzY*O+!Mfy1YWe=z_)gFNpbdbzj<^aE=VAq75w z=P%+OKZ@yrfax#KB}uzq6F>Nyo1ZProAENpn-UN8whKeYu8a7blYEXVMthzYHV~0d zE#4aw{|j;8Hu1kW13Et5N7|L}Kec%{@juS^FZ=y2{tEf{2O(b^B7QdR2M*r?{}MNP z9|L`L0rHtf{G6=QVyx3d4&U+K70Yw)O8MV7Py3_WZV&wld8Rz~+C9_&@aU)Tte@HL zim$*=@>lSq&CGm$Ef6zby<@2PS>$#{Cq$z!-fusJ_%nH*yzPVCP9pp`{Uu3%5xrzE zf2BSKKfQ>bsTusmw-s^|Ijr4`{wDLHza5GH{zK?ji1%WNJyh3u)2U1CG`Ib4Bz`K* zG8Du&(Q@ zcMA05-0x};-jU-Ddl>9o^yqA>bL_$10lz~wRO;Y3w43-7{1hRb*FOh-Y#Z$Db1Li{ z>vL-d>T{_FRv&~Nss#fK1t013FAVyj3uO(Y3FVo!8tZDl6Fq_Wo!U@eAG-CmM;H8N z9~93a<|LhMPlL};Bgk3&x1$!9iHFnB-)~8O^M~Lk<+;CQXA{=*1GFRPFG2b%E+KBj zCqbSgSa4Kq13H!`u71P$4f|!t2V5z&mU%Gl$%BP-{CD{Dy;jY%EAq_2{Z4_B{S93D zRiE{n8Vr5uX*%;grT3pWeq>$GFh7R@R&R9#pHYrCAq{=L>^A+S7{)J>Pba6r-Ym~O zhdo#y`qpDy|2^r?nT~O>JsRyw92oQg=*JtwAMX=?S2y%G>bX~>3hVjQ5ct<2;!nR$ zeZ2sA<|Di}5a;=Qi*%MUj-@K9Kwf;s^DgJMh$xuza+l)V2J@4PGK0$oXd%o4i zAr439BM#>zpZ7WcY$p*nCKCQG>w(}Iz(o%03!*L!zkoPAg!mJ=E|B0kP>ELsc;8Ek z^E{HT&+{B#;vnLu;I}MUmGB|KtqM+Ssf(=Mu=B`w=$F`e$u~H^HzC8|r<;G3`t%6n$$7WGJT)Kk5B&*y zeuntvTT)-1{T|JqVBF(6(Qx8F*#mToe-MRy?7HrFQehYHBc5}(+uj8KDbM@4{dq1j z#dDD>NdH@|cSnn$-7JJ}+5tL&eu$Hrtob@~zi}k3viW%y;fYS*C(d(}Vz-ai1f2x; z!%Mq|BaCD3!0%d-PL_($SJdODkF5m#;HQWWXDPV%@-r@Z&JE@Ni21ICJKqJ3UFB6_ zo(Grs(0&K$m#JYm$w_`bn?rdfVGlaJn(yQPpL=c>&Y~PXs9^9W5x=cw+ZhM>b|UV{ zIB4Flzz=!$TmJA0;MPmXcYo&rp(hps9yt#BBImYGgMOk3_&mfo7Rf>R6mZ+^)?VhTi%UFzq^0LuRncYZH4mU24} zJ{x5QqjMUgzkbf!i`@?9yPr9hN2(Y|S;D&|iT@EO zj3xYA##QScFt-w3>3_gat*dSz`k0CN%Iya{(GzjF74fsMZV#^n9NJMTe+c%F+z5M^ zM*Ok^LC3ce{7Zi==Ka)k$fpbOH`N23Fz?TSHkIn!j&bHA*hwwozmo>~Vcv7wl<;e9 zNQdV>MiKtVuYe~CYs1i=)S1)Pf=+aGMFST*JgV*4u^+V%_G6jf>V1RF!B3f8tL$I!XbhO*!f;d(*x5-7`h!M4vy zXPi49mFIeB-1Gjat=V(>W%WV70_1<+8o=Y@0he|Y`It{fxW|t_pFn@rXRsewmr{-O zfYFH$!5dn3`fEb^E4XhY$o+xs39o$>bdroSGVW`36m$H{l0#*oi@ znLwyVZt~gJ9dA46d}_u8+hB*#zTO`$`wBeoCmxtYe$tT#+mg>5+X0VSu)`?fJ*FU@ z$61H_2ruym@U1l1Lvg|%(SPpnANd}cQTX4m9{0wmWp4QgUuL`aA!iv^Zed)F?*aWK zq@CWDWfI56ZGoLc9&+1B+MA#s$)XDh{Xu$4?YaxNpXXD=p67I-JQuYSFo4Hn$9GRe@8=tmAJ4w%f-(3-bU)~C zCH?ACfNy!u8y1xQdiG1?;XM`BV%VF+?Ki%nzBVELi@r{Ao?P)Rlv7A?~ooC zLpk(C-qh25=DXDp>pK?jWr~yk$sy+P5%3Ei;dAvyN3)KTzrTSG|rr^%Lt3Mz9Mr~JqHTbuVNihODuB^}Q? z!c85=%slE-(0e-Nu#NS9>@qZ^&BlB?vVxA{c`?aTm-7N1=KT*6ubw)~JkIx#CI08y z$ortUUs3F2!f4P*v_{^cd8(zXhkbn!!E|^x-@}hXkBN$)aE9=D+6)~1Mv~C41$0%V z7vtx*?)X`Z`*xC?&k_Fr$iw~)fPRaT&J(=PGdLS@5>}_w9gaKvpI0@QVd7t0j`$Pv zyxW+E^DW6F;+6Psv^d%gJ!=^XBDW^2|JA#&hmJYWz-OHAO8o@5`1_gyPJfH3=yN(C z=ugI3S%-jrWCHNTPUf&~w{HVJ4CGZ?-5p1sG0*#|b$L%z%yUoFlt#c$aice+t;Z3S z*{{sdBc!U-#D$1I>Ur3q$l=MB7%y8nY{QAzr_Fst@l4>e8TqXE59*NQKyWVoUCBBm zUIF^*Li{DXXCumcHYBdze;#(?zX#5RpQE=(KQz=(5c=KzVm;;=x7MqPd>Wsw3w!;^ zJrCb~06F;YAiqeR@I2?utnW|{v^RgH+teL&I<;HSzW&ZBD5`$99JU!mQQ=ZnO@!F@YX&%T}R zte2t-5l@7l?V2AaPO1_EK!N<^$%J;3Da1F41FhZzJm|S^Q!hL0&EMH=Z|gV?jdC0+_$B9|-NXUJC5d}YSHeyb6%psfPWI~X?&vFi0Q$mT zDfLbc#QAU+oq+Ur-~6lZ8D{)cMc@&7xx{=w(obVkVdr|8$$Z0)BCcAVdD`7SL+?q? z{^v_vM~-;n|7zY77~wsEGQYZZALJ953HexPR^^|<{(8=99500asvhVs*;n7M06)I^ zh;O?{=hf1POYt?c4MhBC=I@+m_{CkHchdH6_N!-rA6*WauPE2We4cf&hqi)_zX<63 zMEn9gmm2h(OU*jLp`TZ^DS=3ypZMdnTAg<7A#OR;KF)r5&Qs^g!#M9*znH5pWHa;g zdnOyo(qHu>>StA;uz}0G<><+8$UM@^`2ddhd~D)ANbUFuv_^Y>!^$Ng+~I^uT!%%Hzt&R=`>IUL)=@%Xcl{~e&K z`Jd8{Jm+!VT?+g0-$MMkLHq|D0gv+jUWw1w?jjC{M~*O1KVFP5aB1=GQMZ6L_Y~2}f>p8%)kxuwa z_)EyME^|!J?>TWh;Ij>8I`Pjw0lh@_y7TYz`XHF&N9xENgDL#P)}vo>&wYBEiUQxh zGTnv0hV~GnJqZ84|G4+60hoBfZTkA5a0R||I{CV z+ZNzuv>iL&7TQ(PV^=wuFOrSj`Jzup%9Hy&#NK=_f&Wyc{)Vpfw_h3HhhMe~T;@eP zcSHPFMG*f5zoovH%#m}l8S1w`&0i^X;uF&G#IfUb0Z;OrCb(6qBJ~@}1;2QPbbhV{ z`iT}b4Mbm4W4>3WlKv{_1zJ$5bPMR$@~pSsX5FZ&)ir;=mx8!B5p>jZpfizjuDuTO ziSS&B^mn#)1joPPa|akYVpq$%flj<~4Fm5kBrm-O@9kX|HTKSvk(#%KYd;3 zlmngHS4&`0i9q*D)&pi^ox&E8j zU*1p!V$(Y?^^wqWquX{_yy? z(JuPIQ@{`M9{WG(*l$fhe*=7vRpR_B+AJOU1U>Jl{(Ob?(j9l6?J@!JFq}Z#knv*` z?G6r|#5m*;8P9g>PJidQ60wI5^}?1DH^QFx`_}QCX^iJgsYZ30@zXwqagAP9GvCy| z(XOfkf8PzT`c>}dX_{dm>4d+b#}N*nktWp)9l>12np8X_s)}X(!M{doT`o-fx{Z8~g|Mf&Tx9|MN3|hZdJJ5Q%TSY_3}|eu_LR_JQ1d-=n`G zw;?}(PK^7UrN7^@-u8R;_0`(Sx^6M#3~EY!sW)ajaUl8kLc@>rclQO*PvwIB2>mJA zjGb|7w3j=s-pdR*`0GG}BIgZf@ZOyLA@F%DP&M=;9wwF|QxvA+%Uy##B=bPRZ7H`( zO(2KxTi{&$rI_URm)!Y%LRR!EaAAzAUr$U2pMg@AfiEEa>lM&ndlmGui177w0FPWQ zYap;9rT*5__)fmCr-JeJ#Lvm|@^Q{T!;6*r>@DDjIwJF)*79<`Mw~}VdiF1s*AD2& zInot!6TOelj(%D7#+knteVzFM_7lvFh#EJ))x#N`XPo-k9|WI>_DcP#*BzYkQM8g< zkB?kJe?vu}cNxET-U5D-lim1RTB2VT??DwiSt|QF{&3e1&uWD_a*I|++^8jd-i6;K zpB~}r*Ov9L+e9JQZSPF@gMOnxC(ipi#E%woJ|X;|tU;_y{I6TFUC!r=JR9qIFf+eb z*WIrPztjF7f*d#+mC?vuP;f zLp`idiQdc1N4tS>Zuv~D3w(b%@`w&o=6mrN>uuiScOPIi_b1xbL3qRj!q0Pmqy0G| zu+&{84mj=V`=xmwwbZKxmw`_BP6a~&R-x3nFQ_l>V}Vrl{k_*=SJv@C24DPTJLh|2 zp84J@wC4cr8NE|#_I<>q@BoZY1LVIT*JZ5xmVx|AIjkKE{(Zdn0NT;_!!!Q-82_bC zK2sL_$L4~L-Y#Xnmrep6=erdmpFZzX>&BH?u7Al;1NC@D=&D|Aaj}4D#y7HqfKJ z0zDPI4;%t`xF+o368UMA1N;Q}&YJKOYznw9j<`LH^owhCJN};Zyq7xa9`GZc{UPHP zk^U*@cPHsw;P}qogZR9S{ESKm{jld9)z81Ad}h1-XyI1Q3q6uyC?`mN-azQr{?c8C z)P5iI6YF7t-H4xU0r{+0$3S`#e(N;xuLFNH;b}VDnR|Y+p)M^;c)Qm@C+4|7yzmsj z?Us;(I#;vPfWxFSl(N2+{4|)P_bw{0Z zj_}vA1D?1A`^iuEy2lY`;+}bf!W>6L!ibYSh~JfQCREoQXV!8bi^cU#iMLsDAm6Fw z?tFK%9rS4DvJGWz2IiZ|`y^Ef)Qu|%zpnSwntWFQdKdg~7wF6XB=V8O$%c9Zm{~vi z+g)$$Tnss+ERa#StH(uOLDmC;lr%X%C&?zaiCGb-#GvM2~Zen@XO~$_p`jKO>x8cOUQGo4^L%Wiv-rmo+G0+`X z|MvsNvkA{T<5dqsZt;g8&&SE9nB!>4Q^iXlUit38eu%DOE$Cmdeuhu6=VPB! zZX-Zn^5(|D^was!Zvfp@OAdp7d$wCXYn}%E&}X18{oSS4DI9$z55RwAK5hFSpszTO z-HY^Rybk`Op1SV0{HOzCT@W|47|l0^^SXXdd|ti;?Z$6HFOY`5Kg0t4q(?s2{vn@5 zU~eMNP7eUL)}!*I+Ew<)VLwTpuW3wv9_#^rDp=V-22ueHc<)NgbMHzE)_cJu@>Dj` zIbR!eA`#RB`w9Od0C;FQWRGnEa8o3!Qbt-5P#%;8=n@VqxaZ;=t~c0%ok()jPICfeinZ(&;)iB z%W&J(L(9QWvNZbpBjuU9I^d~i${IS5o_^QnZL}Ne20m}2Sv5xwBpiMc{UC=Cgy+f( zdkEfi`^!3gz|gGwltUdN_WXW=?ehK&J?&|}5+fl8)gE%#OZX1m9jD#!H29JDSHan| zXU}`1)7!wVLL1j(6*sqnH8HbOQG?0np=a;?U-{QPq zE8;)R{WihMsEfK2-sXRlTY1Rscfwl@0^H`kh+?;EIL{D#EX`mJCw`GdkZ1G}cU|}V z56DO1cae`K6Mxz(z>oOd^8Yd~+6|Y2UlbvJMb;;&p@0iN`6Iyh(Z8}1zfooK&;3+_ z|NU&pEy43&If*}s`?|wv6%1rG;Wzidek{+u%Fmy}yioFpHURyl6Mv8vxML4?1=z!r zglB6AxVi{`f%WR==khsn(AL*uqQMk@X|#p<4Z&`gk&ZnLa#K0na<0}2e1<)7vg2XK zLl6JozYO_A79pRe(|(@LM)`Z*xB5%Y5j^i6k6et<{_ml`dRokU`*h*zjO$f7^t2Y? zEyk1nSCF&l#aD>uOvm;!e?Nr%%{LJE$>E6Gw+O$#1$GrGMKTly+!(OonaoI5B*B~Tx#^5SA|Do93=kUkg7t^Uz{9?`} z$kXQg9l}qs&(Yt|EYQ&wX};Ij17H1%_&kMh=UA4b-{23h=c|N2m<9acrxgrDo4xry zv2v3Cst`mRPd9)kmI*5!r zPG<%@%6r{&5Wg1lPWUSHqSKT4M#w&&ESC9M=uD%(q<*Mu;0-dF|I`9qHkiEQdDn6~ z>%FjN-lNPL7Ri73lM)R z_eaGGSOy~XPXX?W4)Yv=#KXhdu$_K|GN9jXq?6-K_+6?z>g0KZU)c=&)Kl>HNrZQL z4tk7v-X)yZ1$vA-7tZKU=55kA|Kp=yj3J%9tkcw6sM8<~rB>WSe-oa0m?!sf9AqOt z+$WvKPXiv^0r*dZcjtOdocDK$zs!G)^7Pbi>pG&pu@>-jv8y?HT;ZisY>aH8xh_MrLvH%@ zG9c$rF4QeL?V9iEShO3t3Huoau$oc|?FK%9zl%Nm#Ql2-&;GsC8mC`*Rjdr+p~St% z=Fm@LXjkm~Jm)Qwo_WjBtV5EO;9ok7oA1GV*iX2KJKuGghB$AZKz@|?`N~YRt2UwC z5c|8KszXPw6Metf(3L#k_M)-Ay64u{=RdP<`51AvCIiYx3U+H{giMQKx5wT_yQ#EF25ym`l>yrS z7})b#+SP0AfbYu*`RK~bd_|4}?)M`vOMeetq5bqKYw*x(rN(joHo^H@v9|#{Z)N3o z`)To}pdZ@{I}yF?oCi5X3%l{pa(ooveW5$ZXX`WcyIaUFke*UkTQg410{_|#&DTc( z9`mdt_d5!H)Y{4hPxLic&an=M9o}KPe|`wNjYrUK2H`J$3Vveq0GD`G;2qMBKrbTC zJ3m35zRJ+Azz>WDJn6YF?seWP>wg#gT%sNawT0ZQk0Al^iw$Str{NFar^0{Zr@>FK z74&|M{P%tq@MJ^yQR~e3MJ?t#zbD_V$O(DI3s*CUBDWvsKt8tTea{u#Cl=&Bv2-TX zw?={g&{gm+_ER>-{5TB~7WkQT!fn9ykLHVQM7t5*HzN6^_N&lKq#E?{BJnG)MSlaH zeaQcC-<16k`t>a3T(T$QfQ>lcjdZL(09U0E&({+E^T*V?XW!#jh2X!@4pR-L`0w2s z%sZvvr@h#2HXHIu{@~Vcis$Smx)!q`&lk;NKbq z`8)=6b#esoqyH;!Afn&U1=y#06n2}3`1yu_j_r9@v|JeYQRd||;_o>L`j+SY`r_OV z7JH_i!Gu>T)$l{;H?<6W?kAmW1Ihn%=tc6#Meg$nd+uA?^*7~q-|ZLoSjPswL!BV+ zliq4f|MKk9=&=Xw#@B!!iDNZNL66o~(8~hKx%GXv`>0!A6Zy_aB93}jWW9nm{N#s#fIO7?(t8yJg{m<=>lQlt8pYVLK$a83U_-|@D{5?C{?aur6k_BrT zh}d)g6W~9-7IM2!{L=q%-KuPcfrvj^dcx4;{Z7yeq@+|cj{) zr4B#Bb1N~PTM;>@aeXbhuc~P`Kl$0Sj&}Pj>|ZYjoA2%w!2LClxkR2PlZYqL1>nCJ z>8yDQdQa_#-wAx9UUzf)73V!R4T%3$fb%N-=0JnPhx zwO}1N2l#$Ld(uCoC$ydV)<^zDFH;A>@4^+~M>2j4avxn}72?Ta%HeDMqeEXMQGW{k zHwHrvv0or(@yB;A10Jac`w=_L&H1-bcF0rs88#F6_U#IWb6ADG7ic^946XvC4E5L| zJM7Bmc@L{!8Ne0KKSG=OT;X>3OR^;VWisWn@haOr2|nY5*Vci^kz0b}CgHQ)>x9>K z^WT>9y76}{Lm|olacLOkwhVsVjPfkD67a~sfQ$XSG6(d-54r8_jvl9*^=nVu*ssHy zGcFEvhn=L8|3iI2-_LhCh7$f@E9k_7wt*xF@5y<9kY^sC2hS-a0V)P)N#W>#;+zUA@A-wD<#uLvylU2B{KzZiveT<*>Yav5H z>ZP*9961zIf%ah+{G+#FC$a9}zc$;ut%?6a3$&{ypXnJ$Kl%y!)q(u1 z+Jv|l$cnf(lkiRxKtIBJMTGum=U7*K0{lC~zt)^_^+~iVemX8M;1SO~pNC!mKOw#o z0cj|8Rx{@0kw`lD6n(wQIwzJD71wmOd#Wwh9X#(c%zPMhl6{bm9uR-x5$MJ5Igh+1 z1bE;o^!0ysTZ8bEfFH;NLcireyME7n-QtUwM+#ka*DYuJgHF6C>Oh^|> z*eLMnJAiicl73gNdj`8e{;ddq{Uy)|evAI55uTOj%TkY_zar1OT=!QiVJG;lQXg{M z9pkuL`2TP|?ZNZz?U8v-fAcCo-&Yd*$@K{3{H$d-k#-;Byn+29^2JW_*^Kv^TD(7B z>@B;tTPL5|6(P@b;upFN`r&zq!&1*w=6=^ieZ(c%?|SAg@I#(^oJ#JZ{Leye(%;Eb zfFFAv5vDiWEy8=ZVvhm;J=$Sj<|9jipD6LK6ek^z9A4Z5c%nV@SdI8ApwdQ~3(G>z`d(P{wXKZt@Yo0r%%bcEKM0M|hL# z;4``w9Ihbz!41HzY3Oe^!vD}=(9q}kh-QS>EQ-7qUZEXFf0FO!@qQ=&bj!eVn}7AY z=jqHZ9iYd3>~Fyn@UQS3*ux>>f57uKzR#d98FzGe194KN;JKrSKl}sm>3abdJCOA6 z(r$y@EQ2Zjbz3JCCvU1AXjkm8FZVBn;?)iQf21GPYI5Wd{04Ea2I(K?`bF61rqhD) zHtKm_wI1ah^PI0gdms5a9(~TVDDu3+b6Zi)4>QcD@5h4w_;YACNIq9B2A@gh**=6{ z=e&1v8T>R0;f=-sKg#z~2N7QLB;sw@v#;;>Ij|F79C{J^e55M$o5}|Lenk1)nF{(b z&%3K5Hp5So-^1@Dz7^(rg#9qa`|Ze2Z=O$y=LV+0hj5%5@!Z$?uQp>xUy)CsFJx7v zmcPpWR)?K*CH=>EUs<9D{30*mM{k4A@I?5<0KyM!gdL`w2b=V#r)A7{gy&zvWwnCz zCwko5oN~Jc{UH@Mkh9ea<466hnE9S61pMef z<;>5|691P?&|_*5I4?2Nz zbquCnrZiv8Uf?rw&210q>B!4b&pmH{RYyFDmsw{1UgWk&=A){i0=xtAY6H(l2hO0~ zp@cV}|Hip5SK`m&#^5u;_jyke|G!?ehXDl*fb@JJZOHzel&j z-#;at=Jjdk7W@ugrc~u1`1c=l>!lp^s5oEo6Y0D%5p?XXegpB*f5+S;d>-cs9@ydFD z@z=|wUpt9*L-zs4tb%^`wmsw=^3?eUwcgFVM-JOiNGF|EdST8PAH}M<_5K6>F3EdS z=MlejQR>n2ZusAvR}2=1+$z!U{+qaG^uN0be4F?4!z-1#QG(;9 zg~;Q3h<}>}bwANG)kbe>#~JQB^1{N>M#UsRQPp67J_M?OpQyheoQ zH6$+m!uiG+_u;G}{XYHBZrC$l^y9yvI(2OFgA9Xd z6MwIE5Myt=CqeQ>H_l6ks<`cK9M2hrdCmydtM6N2{Sym8FNd`eLC9{F6`iTc)_j(%Ch-*y!ABj3WFchVj*I)fkobL9-C z=(Ujp3roKN|r66&ZxBhZ(8w>l2`$#t+d?N;X7KNt2BrhLRtAASq{ zO*{vG*J$Qjrwe$euHMD_i1HDBI1BV1O~Ajp5I&6SLE)3IlP7cH7nSrt*vY?vQ~eA; z^j?7HG{c|6{@c)3DB&$ws5%FadPzo?u4Cv3FquU_8J5kD%!aZ`Zs%H$_a z2YjPxznoBjDk^sEgVWe^Cd={hJ2#;5wTxpJaMjl zbL43shu)X4-BKJsM&~Xy5YhXr|LfN>VuGV@r?BqI3cnD0?mQawgKvUr>FL*kV|M=>2d(+c17imne38Tcir_!l6a3rcr_I}d+fx9SxOZhD`1DVA^La1} z_zcyBJ&S#|xdy%aM?#NlN&oKSfLqz%zha-YA246sK>VS*tI>CWADjdG{E~DA@&2e- zL)cGO!V42W#P`eKP5QltR-mJ@y4%gV!Fi7$uL=xC#?fLiUw5vj+k4>A0-tw={dyOE zbe)V&8pL?w*$>cs0q~PNext~yr5#J%|{UG8`BZ5C12>d{Q_*Ztq=S+uQ zQmddBiJ$9lLY|T9Zh5|^&Cls?FgrLAzst*Wh2bU0JA+6+{vr5@@!UPQ((j6}4oMZW z3}#v4*SrosgYUTgdfgiE8QKj#MPGm92Y##w=)i0A`RHwcCz~SvOWdfd4awm@#eLd> zAJ=t=@h|SXfYy}i_$%ZP@T?OxeTecbi*_ZRY|P7ceXtWmEv0;{Pr|do&wl##y=|Z$ z`V?|LMEF#OG&O zuLk--?_-F+=sU(4oB?{?nHy%|N7I116*0r00IT zvWGEWqzYvie90pRxi0Bj0K1Bl{z&GF*mKaxpM-b%gnsJTk2-Zhg;#j&&Jy@K^diG;IJ*oR3z6rTNHDu7AjX3Dkl22_IxZ zU&-tk-$`8hQLihR_>diuT=Wuu7j)va-E#P_8Tj%4gSgt6^!q#t`l;ox2Z_(s7$@W3 z04{OzU>mgS^UR~}_zd)Y8L&@CRjCF%R~Yu(oAiAN;7524@niB+WCG+F<2+k-!VmR^ z-lNY!&Sxp-@gpJ6rNtr7{KU_(pY-_-T2sP%tOY#m*=PRlP{4z=Am`kqe}5U^iDyx# zb81U_`mH~)<+h1V2yzdUZ(C@EJLw|io0BH;|YU7LWBY#E2 zVbRN6uE!-k@4Egu26PnXqqMlp7cIhmeTMocFX8Wu2Y!O*;9zx1y+ysm7C?_55dUAk zFQB;ZPVB8T^F@?=N}TCi9Q32l!BYm1&Y>Q#H{Th|%nLsc-Upwtx@cGI{KPMSM{{kW#ULrH{)JL?F z7a3=gebL`m>~GWgzz^p}1dzN|i1FX@#D8A`b(h~WZ~SIq$RWyo3$Rk9er^kR*t2d` ze+I@!iTRMc*v~hu$^R1Yue)i!_Ux~Z{T2LL`5?D|=l!6!`Tj`E^Zv;CZ>jgIh|dh4 zDmV9ug)%`e11X<(7~gz3&?C{i$_2gHp8ZjOaXvh?s)C_lkxp&S=lDGHIr$4hK8kV^ zyFJUgGwIzwJ4v+DL3E0}2&Ey&?Wp`)TOW-x~2; zvthm|7m?ReS>RdS2;aqZ*wDAA5Yni~9q*%G0gju*&R=64;;&>G3WG_fA?xZ?vGN9z zmGJG1522Cpmm!3o*+Bbg0{eNJ_Bn<34fGcfbzUv%dv+-Zps|aXy`VzU0Tb54E+ZfgH(!Ut}Y`?&1L&&l0@}%6uoL0`SVhO)iYY67p}`b8`EWJkLvzHF4AL2N4R)pK4|3s;y~6mw z{j_9L{V)J=z$%GxtHgo7cLP7(3UOHK`RwhvPMXU$^hFN+{sMl=vk!k^9rP=468e?% z5i_|?k>EOo*lk};)r<%Iz(>^8#{pP}*x$PAkS$}${{ZkmgLX2$C;Zg<26iI;`!nys zPG!I^Dw$p=^&j(W$dhL+=0X2t$l+JwH>gAVSzFFPblNpv8ux?w)}tP)K=`b2!1v#S z{p+-AzQ!{ExA~shAu1-;8vLi;2mcb6s<7Vhjf7o^{ojfZKMfKS{29x!US_=y3kk5@ zb3AVncog^|pD!36e4QcZeZ>D=ADndb5?qCTEzONz4Brg?ePtj?o&NC6rXJ70p5OR? zTwQs*%+>opT(WDFEyU+uvM*y7(pa(-ne0-`wPe>=ldZ92FVj~GO2$$lG0751gKT9P z(Sl+^Nu;R=rTU%EdB30E>-9OGKh%BhbD#5^XFof^xrTsGb;+xj#oJ)dsh?rbbUU>~ zFASM^k3HVHWm{g*4>f_E3?}^*Wx-FlLZ*S>uauhK68Jvew<+=GP%+>~>o^Ag0_iNh z$~v=NQ3DbCe1`iKovM(7_-SJ;aI?NP4E%H;oxHDuesC?~jAq+>8`=TxSm%64vtErq z0efpj{7!!0r>%3cl{n8Iv*!8hwMBmey#H3}z(^goyQ-?8yn^%t-!V?6z4D(ScK$B# zKcRmu)oOLeFMiImK}t%Uh=G3c9QrHrX~Q@c_*Mrx{Ye~a!um68)t}SOflk<3r>=Av z@Mtw?R^nKG-ap_k=C%LVHbD--Fyd`b_P1S6)-!z9O!Rw+>w3;0$U*YL8--lE)$dA_ zdDg@K++X1rfkTKVkCA?1@}IQsIT=5W@<~@PnBp&qL#T87);$I#-T=PuBd`6;;5vw^ z2|BshZdRD`8HM;D@^A7B_zYX;I3CdP-1V>6Y~aJ|_5Qvc;3sXpzjN^e@?+ie`NAI1 z51obFvdGV)q#r0)-ar}>{=+5cC2}t;NA%KAPcRyPpWvGk-it2v*n`YRf!?qmfk(K$nOFn4U8Ev+aQ-Lq8~hPgt<)bmAfHIXkskS!<@vIB zac{qVyaGMOt$e+y3j8AaAL<_+M$ETW4-8$sr1;+GZo=c2K*yg6e-wV!y$Sn?TK5Mo zY7Y6N*Y`CPBu`z6(+*1^?)^;q_itxheHoO;6JBLL=!DC7`!%2A?g+=-#fjghIp`$I zA|JKOz%Q;a&d04dKdmLl9o9Wv1BOBl>VKefALC(<*T}#1PVUE_5&jzbCHf8V97nP{ z{5OMi7T$&*rM`e&p?7-yl;>>|ca%4bi(hwN4SvEw$mcryJA(YgEq=B#{`=p7{Ro{> z4^!`-)io4ukxrKepdU}cUqru;=7GHhj*Kyw;*Uo-j})0+-@tb=FcsBy>+Y|M6w5a7 zMx@_*D*Ph)ChE6sl*4ZF8CnBAcM@Lz2goyE-E+Qw2lA2PJ>EXjA9WFVEo!Zg+~&Ew z0MF$Ke!i288*#*+iKMgf1IQsT0usli%I`^!Av9hd|E z68&BqN_)1}N1oJGYxL|+3sLH=ql z<^dK{&O_&bPUtY~Q0o7yj7z=*>~N={rc{}`fgi4b{_ZE8xs3r&Sm*uAEdtzs7=AI6 zbUuEQa;O8zNPIZn6Zo+|&~79r{$R?VfQOz({E>WG>@xHfDUbZ}An8BC`;bFNATiO) zpX15rU+~8v#Bap&O=<2UDnxjxYZzyxW)3tEk>?&g0qE9&%9?-JR3G%y-2Ve_QY!pB zl(;Cgg+Nz9Ok(gieG)o`I7|aPh=c1;{^R^CH&|%>E!*D@r37h1`~dJglp$| zU*FJd1JTWyFUfoqRJF{{O$mSS2gt#(?msD`H%6NJ;Xbeb{-pN>x$tNK=vU(22k!yy zAByqISlVraxqwHw&L#H0gZ7r9y-D5p@nMc%et}*@KB0b)zdzO2a4z=z4(D4!^)ZeJ zvfX7bf=;9^=!pNW;Q5rOH6K``Aos&pgxn;qPJNl#B0fcUedj7|jl6Z_xQpLCeN#E&L0FQl%FG5F#a%P7xi67i(4`K?m>xUV?$ z8}uUm?I8J)?>*@>XTF|&Y0qaMPqDY$jL*(6#Anf0?@Hh^^p|7)Uh>QL_rnf-7vVvT zL0;+O{>Dxs4FLa%@Sm9%)JCsez4sveCDj!1q&4vm>v<~I-oo#qu9kRso%`GZEs!7I zBmU#}y8SAtLc6CMh{)~i0`xbLiFhdeeQF&0#c_nht6sX!bp0r{6?*iM{*{-#}C95{$MicmHh;$y~{_4aR$S+fK;1|`7BA)oH zeRNMu0e$~C*oh7=<{Md+{O`y#Ker(|=alfeeb@^P-mvRp*=uh5iz$iaFqXw`e8f~;e$eAI;bF~R&;F9Y-+ z{)~K11D{d{ZY+ZSI^UrplK$?|0o;{OlJB~T->LlIGnB(IgqxUum1@EH)np9y&w2_p zH{)TP^Uspk{+olm5F3+iDD)tmoXl$xE3c(5ATK0-f}OM^eo}9wcllHmVTVg7&(BAI z&*(phKP`xV=3T@?=OMJ4Bz#bN;3xU+iP*#XM`%};48t?*RfC#`$2 zHnU!e?8-7NYD+TT-lmMt@ANf4OME`^0PG=I4far#_>HH7fAtOIaFg(EKKNg&UKE`g|Ufa-2c#+?RMw=rSUL0KS_AO$03Il&nbvM zKFxdB!V{6#bXj7)rz=4If&ZY{@}%?JA;>u}7knamD7CN)@I%vpS(Nw><%isyn$-s`{7Cj;zFf^fWZbd!9>xLAr>!P_@#E-k*jm5)MQ>nm`H6h!)uVF&almK!MFXDG z_Z@*>lwiN+bfo+{K%O76-S-MW4w3%wN69;%evi27%*{5KQYXx29iqP1hN?e_^Y45E z`tiQ7WYJft-vN*De8K(XCqMTurQ5^)rLM?(0{9N^@0B>P=>@>mpUC@&e)|2p4ij0KfgoHPm=!1vheGubuMhkr|_?+HD6k=58_Gm6yixq(r?9m7m>cY z;L+a{!uQkf66+lU`HKFy;vnkwKo!*O;=jxHpA#A2qS4IvN&@g` zcktPY@F`D&PI3k4`zIr=%6M(I?uZ+ILhnMJU5Q^r zE69ZhtammKkxtN}bH)cgRawVS&}E7F)^k5$H~_oV+h)vn;tApx1fLRzpVDsbwwu}n zi){mRbvlkXkg9+qC$csQNs$YMN4 zCU#!>35>7RW6)P4()ok?2crGKzr?F}SM)0}ue`x*LHydE0`7#M$1KA4O@JRcIpIfs z!e`2UjKR>a=(0H58=Un%wb z|G9St@ z!{xwdY!lj*JbN_{_1M*`$D5x3Ke+>bw9s&+R9@C^F`h@rMfk)N4j|J?@h2g?6e5AfsP4LM%~8P$Ih<^K@k%twTO z%lPJB1%DL%PMZaJ28(*-6MqEqj9dFKPw?JC=MTssKl#aVjrB%BuiTDo=ltF);C~(Y zS(-wg@>%!uEPf08r*c#>n4qRqjWdA9t#>O9-T*u}5Bx}cxb`;SzT%)G^KY+aqF?GS zcvepGQ%$EQOn>7($kPQ?HC5AdJJhWxWAhj+gsKLg+qdOFB_&z1)~{iS1m zJ`b=etpldpuD=E1(w%wmi@WtW(S;`ppqe|%{q=m)NO>94H7<65VqzYxabwGPq?o;W$o)8)ChHHZ0S7)uQof@O6G;iqka(oZGV+<@`l$= zW)6d1qH);C<81e`E{|P4;~#<_;q$#O*{?MErPGc14zsRyj_W_vpR{}DNaVFdcUaW3 z#2<2&{OkfhG7fq}8>-uG_z>F7G}M$zUnc&qUjAFJ2LDM1@mA`t2e!lSlGb^d{W*aj z;eD8NYxT?<7@x+o;it{WXTf9iuSH%y{eLkIe~J-bUh-M^N6=4L>$x3Up{|JK4jD|T zD^C0ed_V8C7)Ls7^!Yp29-NloXFTCPtsqxEz9$hs1B7oI0(jy@z+n~o93|@GzKB3%t zc;!~=GuVSFnr$eEJ-qZL{3Ue?ni@*S8_V%jdIsW**m=9+^so02hnJB5nvDOxJHTO4 z^4V}G>?H6K>|{IP^*f_qe(rmhIM%8;;&X`mTcm#L(j9gZdJ6mt{74npL%Kkwp*)QA z4^0F-+~Ph1d6@85&jTLdIf#6O4`BR{twNm9<&F6U>;Znty6<=Ce)KE42l(HU&fx>V zSD(U8P7_{9uSc8vk;;RAk^k$HKqs;v^3mmr`LZgL|8E`hvktT7D{v3_=?1vOfynca zTd)Z1O8lrrZ@>d5`+^S0sHgu%o(+8liHW_fd4qP+E@Uu!5dWn%&{tq3`X%Ft2Y-e= zhgN~U@RO(nI|=*^JCXUESG2>r@x&j)e8no#|BCO&C9U`4@-R>N`JRr%s}=9ke@np5 z$CJ*a^MoJs+J9Nj|0k{>Ps#lMyIN4LAGOE_Khn*a?_fpBzh4FO^FYGS@V>!_^=|vU z`w%}9);{@*Jhzhg2mbX`1_;eqNx$IzO9ZQ}lz+&Q|2K|EkZ?v{{GB%{2cApTos z9O7Zzy6-4!0PHY)4t65^U*-PZz&X_aWqe?$NjB*F{E&ZV^673*b@io6LSIBzzurQ; zP5+2G>Mi0wPrHiEfP6+0eqMLewZq70_#LvpQWtgsu43r#LE;Y_MEtqH??!lz+qAc; zkh9dKr$XRA&=CBOAby*l01p;ITt$_r)L8PV%GNZPC5WHR@vnLta@NOk&3BIu)Gq&_ zrm(BUIRO8+4)~1myg(M|bSQ*&ouQ6_=#0Be91%=iT_A=MS&Jt|DkwDLvor=IaBS7Z`}djj|jsN3HjRHgms< z?*ihvzP`hJ-?w0YTR|^BlK%Wx08i$C9)pBux1}8NK%SD<-d_&Owe0Ue& z+WgGdVI}Cq`M#mZt?6BW`^!59PvkJ~0PHqh8FmY9m73ENejOSJ`G`HA9RoV)%dj7b zx0OBwJg^@2qtl}KTD<}P^83M|_*a?x(JzPZu}XZa`zqRX#-d#vUd;D8=XL$5O!M<^ zw3F*sSl^zlXyAE(u8uE;zXz;+s>is_o_ws5!Q4kd&*D6AynkH-e}Z(5TmqjV?q`;I z@|~^dZ?YlcgZSwd&gUok!QNoKO6@KWeuCD#$K{{Ef7p8ev3*m>&Bygek=wrWkWYf^ zI|9Ft_v!g~pI$5S-=rJu-`W@VL`(E5$bGYuiNCQ8+D(4g*Fc2+*|**MM)dxZ1<*?) z8c_R^F1~)(Z&1YGOTMnfdx4T2;E%gNYZ`FCw_XDi{C=Pxi10l(c#NYi0aY2BBSoCSP!0REVt^n0%YJX8ews!sT^L4f-v!=7I!yh3x@t+k)I>@UDi zTKlUHb^zR84t&Cjlv?r@`jxicjeS$sU2c3!S^EIza-J<<&9gP+`Bt?WoL?uOU6Qb$ zg!Rr~ZtjQiS^HrIa=hk$3;rVUElj^qe7|Nh>Cbr?{QLh!WH?25g9aFP`!nGYy(#G9 zTI{Z!gr0<*{C|9V3UmU`gHBP>8OMB@tONN!OZYO%(?@w0B>a(fv=iQ!C30TULCWKx^T!qz9IaGymK+9zJatRyj)N6`6=ve zIOE}`O#pYcpul6GOzX3U5^sV1JF2guxt$U`wboE|P z`Ko#INJE*QSpYlvy$~9B!~vb8MQ5|jlRS?4Aw@X{Gk_nl=Cz8lo>4VmKN;jd_#F5T zJqP~fzN1@jqaIc~uaS@VhjjvS?KagJb_=UesvzfM(+3c*BpzD8 z6cv!U8ukfORilU)o!Y_w>f8_bML&Klm!>uOl5l z&xeM1K2+?X$Z5zY`Ds;y*_8MXeFA<$+~+3pd4m3!C<}YbMf|(u-AullEdDrz`y2h- z-zakH))a9s&HGOzZ`R^|PJeFLVJp&KG7kJCtoM9xavbD;68!7ylFS#?`!iiX3bcW~ z29eHb?$=Flzpmt+zRjTbU|;B6_}s+(W)9!on?yQ&w1Qkai3|e1)J1!DLY{&4l?|p& z-{$+b1N+N&$;Ccru}<^*(BJ8#f1LBKaqHdEf|;mqV`p?A(x1#9j^R9jzYp5YBAtm^ zu*ROP_3=kLL!PNNh{HOZnr|TMpI|>^u405AILC3s5yY!ogwJ^f{Z0K=!9ZYjO1&lP z*M-q9iRXtNgB+69{SqrVeh+c{uGMY6D;$r+A4A;UPkGMJ6FcraRk}t$gD3hL{3iXK z`^Lp?7ssiWf{@Q~(!WVLB-%p`jR=2nAn?->^lLrgSEmB*1YtQ1@4zn#bH7uN`>rLg zwad-;X2q*>FM|KD{oUXxBA<;8?7{iYYY)-Wz>nqyCz~m^ zZ?&S`I1{Lc{z|=lp(y&5@H?hMhlxLb3-QN6v%4vW2fqf~`5kca)4H5LN&OG=Cwg0{ z`F1}~d47U8oQHJI5Z|{N_`upC6Jtrn*8wx#0XA|qU$Ry}X@@zAm z5KVtuBahs}_>fux`oYTJzc}e^X1<8D1)tzbsl`qsI?F6)pr07 za9u#?e?Ja(7`YAl5)Z%X3;cL4jQ9V)&WV!$_29oS`5f{zuk2i37im1|7wHFEU>- zllxfwr5)3v^tZ?n@Z&5;d>BuDdJY8rzz<&eY}0AoW0( zL@c}1@X_qo4KJPUyMZ6(`E;EY&39cVI5&^@x|&HAcIsfmsH!lJHY{ z->jM6t_uFe4$J6uFpH1>ei3*^TcnkKnE(Zv;()YZ%{YrK4_Um`n z{{hzjqL;3E0@jSvOV2U{q`$QvhTQxWVE@a==fabWd+&SYeD5~k2buwYD)H-g1D~ps zH@~c&342p_Bj1VNy~6V{$y2oqg`Y{s-xv6Co&yql>!ar%T)ztz1V1^6?<@y?v>xaS z{xSAT6^36(+-R3cdAU3kiWsA_S^d9ijnhg|q1@Odb)H7+~-{QQMueP_{_w|6q zH~wdY;qeN73)#9ZF4SUhwmNkKDAY2|H=Gd}kTjRO*LcUB4)(lGeR;8;7Fa2)zkR zeXXMTnw4Z6d$YRv`9*+L;RxmVV;uuQ^w94lt_J@B>%O~_$Eg>-cPVvUOa~~pU$Hdw zDDaJ(M-6cvRpL+TGq!7;*Z!RQXHwSwnTNHaU4Mz}>u>lJfBEwT$TM~Vd0*uD0LMYT zcQMZ|bj%q~j3zq$9H(<{?eVZ?>1HLN< zXDH+!23W1h#8|Q=FvJJlY(f0Ph_m@QeeTnop z(!bJ$y#CerY5H%vuZPb3rvMLL@WS`K40yDX*DqQ;jebSBA2^fk=Gy{(6z`D}`){H< z;>sa<7Ws4+LUtzAVImExaCjG@h{Mk+T*=1-qeGB!K4v*%m_8R&X zvCf4Z9}N4c#rqP)FJ4=Ld5_Rw*sbjA7+eT)aQ+={=!zUxOrYG#!vcF}pxw_d0-ol4 zn$Uly9r~5xyxat!s}-ETQk)N$`K!IdfuD9SoY9};$5m@7AL~8YVV#Ko5b*1g{)e4t zKi2%rnV-R@uTnLG`7-fa1_4*?VYhcto?UppJ8kW^tW_HLu^x`0(28_Aaa|gBR_BO=5xOE@P#thg)=yUKd^6Aqa_K;i+`&>i*f2Vz_ zQ(pUQR~>ZHTTo9P;JCHZZ_HCUfiHP#SbgB99@2%b{x-0`U+rhVKE=4{AmLB*eVL&3 zzRY)55htTn5og3s>T{haY@K5o!0}*$=YmCU8QiZMI|7Z1oTqk&UP1?<#~bA5@nMj& zvd*n%>IEZ{AAg7a=Oq5Wvp~mx5O)3@;Tt9b?&CfUUEY}QV~#6BZQ+lvQ~te|0YCA* zx9)8-1agb=zEd4$%{Q|j;A$LtREO{%HG&(5!&V&L@(Jiix}xq9JFK$@biym37j1s# zyUu!2b%oyZ65g~B`RwHw$RzTgF@*GAL>&U{>pI~{;ui({Ch3&Y?~J(dHeMO=sv7AG zqJ9HSz^CM+>;a(T^aY*Sq;sPH;GurdV@tv>aNHEO-f8M}AKFc>Lq3u^dFGv<6CdIj z3PVX}6X%ywoL>_8ACo%d5+tv~m-$|z-9|VM`2gYZR%qAX2J)2r9{UXSPvkV@UypKF zS&IE-+z|Qy$$18K8SO%PN`1rispvnjpA5D;iuInubLayJf4(2+C!T~n3lP3o^1?;P zr#s>GFHp|BpB7%PRHd7Mr>*<*^J%km>yU76)FH)4r)X8=3pHiFfk?g>!+ExF0qA`> z@#|8a=@{xFh9A}XU$h&16Y;Ge@gFF}{5u33-XeTy7Ul1QW&T3=m%Q&KRlT}_Aj>QD zr31fk=Ak~+=4!sOS!mZcTO;VNSz+@ZRi5K+bqxIYsmI}45uYPgd``3eajfx0*ISIM zj+g%y(-D`_h5DHWrM|lPEBHyyM7yver9OHWa)>QJy!wp%Y~}eEH5z$j5ZG5Q>K|Qy zOmN?bZx;nm2guK8`9@%7z+2UmfD z-qwY79)`YB+;6s$@^3sC{KTfiZiRlQfuN(RA+E|iQmbizM^*y<9O+N3Ogh&6fvYOQ zJ|p+cHGGJD7UVc9dEn9zlf>VBknKj$uH@gp7BHUwg%)L8*6KmZVJPG;b!q2O!1t{N{!^rX zS0}XV3_x7HPWTM^V=@o&^1Fl=9Z5QTFGlQejQ(?1KIz5qqi2YJem3X_4jS=CC=y3@z&)hau6KOCY=!Z zOps4#N2#qxxZY>oukveM*k@oLBJiu^^DgE)KkxSw`#e{Hd|pJ0Vpp$o-)U$A?0*jF zjO6)iwFdF(eHI+;4`SRGD3)zFZ$$ogMIq1h4d_KbFKE7>j#K`Z(O-ruwOhv@Gyju6 zWblMe@3Ej0x&ryjyx*H#cMEXcEkDSsHaf7o@(l9)xae^V_tk_(A#OiQ{QFmce$={W z{=H?0Z@#+T_;&7J#>0A$kHqsY#&Ntk0&?(?{zdKJ?)pw3ALvM(yrU!Fu}=~A1m1-A zwD`WMYbdlPozKLc`5v^$Z3gRy^!vz<&4{0K9Q-Rj!W)08KSX)v(gvnK$y0qeeh*pl zZ>uM8TssfE^`gNSJGoH~_7>$m|GCU>mFm?1?K;ij*Mn(4b+~U(@!gim#2?E%mEijh zLkZ8&9e4HUuZB1vdY}F|_zx_qY%qoY$F2dM;QOJlI;Hks1>9E?9whkl7XqHz4a|HQ zXm}O#pl?DA1BjBJDq65EKh8D8jmO!q?Rufst;2)Xy={BB49wYqhb%8xoq?EJDmA8ppD@AAfh?AGKnx7Xf=@ZN7<(dvee zH_1z{$RCi8#FPK&0g)SjqPe{EztRTp+DXJ( zpZ%*N+70quKeVn?fa`am5uiVa?Y0VlesUe)!vE+ipcAt8m5u9)xDi^8afhtOmE}B` z-o}cYjAZ-&Zw| z$4KX0?h8#^h6KbPq%n7@~L zpne~~gSFA_2OzKhYX>OR z#NPfcZvgmLuNUt@+z6~hzP^Y2?CQq&e-bSQa^V-(nuDMCjVuGu<&F6c7ngoPU;0{j z^W~aH`oF`%MLuKx2RR4Jq1_cgSEF*WZfx$&zu61e?jZCFt?T!uO9Gzk<`@cEedb%x z6m(*}k*6+E?`4M|zJ)m7DDkazUEup`1AiOwuhR}49TnZLw)t17;`88Ne(N2;mdgQ8 zSo?T4a9k67&oLAvZ?%aeEcgX>m3|a)z(2oM#C09#NW`T5}%wLF=5+i>w=Quabac(!#8LiLhxOq0t{@y|OAM}?{-TDS{neeWbC;pZM@S_=!yyU5;bzSH36Uc!41zzAk@EPTOq4=#* z11_`OYS4(Z`=}rO96yFL$jCb_QiGme=?7x%piMvkm8s z$p2;?|4sd0)eGOJ3v4saS~S#PioFGb@Y6_9)FG8gXXtL!V~%w`=;lcDE5Y%y*w2+N z@aw=a_=SwqOK=`Ic^UGT{5yUg{3}?xpJ`F@-G+O*8R{(s5yTGD^pWj$-hXx})%e=(x znbgZ3x-;ulKdZF$E7pQ9bzoyT^b0v(at`0wdQymvz4+gDt7NQQtZakWSdwp$f?k#;LL zWnJ;aFlc=bDw0Y9O8!PYdiCA;yC=b81Xx^ zze%gVgAbrz@t2{OR>U7P6Y`JU<)y!@7Vwifp(&YnomCR{me>YM&|%GdRrr328i=@e zC+WAiA9|0St79Nz2tU^z@=RIljHfss73Thv(ZugXcw!*z=YMRs$Q9Uaq9!z6o%q+Z zc-?VIERM=hAGa~zspUAo<1ENFKl_MZd>G}x`^iPl^Jg;-i~+vbr@j`;vaZx7cN)D{G5mI(ocYX zI6vr%z7GG5{2R-Ij3D;^>2cs@?#vzT!;xdL(i1nFO!OZvy)FQ{6T8htn5@mg61 z^NsxYgRF~?L!>0^0bD87=p67B-&>J5_S`Pu``$!}y&SJN%9D zDmoVNDlhrD%JFiT=RL2|P8KXezmkz!2D2^yVBS2+jpHebQ?+~>^Om9V@ar|C|L}3( zE6&G4dPtaBOg^a5XrxjL|=Q6kDev} z59I}&czw{3{{HbqZsk+I{pZZ=Ps;euBi{f&@>o?5{WUx{;c(xA#M`G9LvHa_=x1h}P53#>~;&0&kW|Zrje-J)`^O^CUnFjI$`6P zeFEebn2owx>e9w~qoX?>iRVQ9AaQB)WZ;KhMcj5sXT$#pzXNeVZ^tsOmzc-#-`~mcn#gJdn3#G1d9yQ7P#6%8#Wu0*a;-^^SInGz4t@(=UT%Ss0 z!rvv&*5-U&Du-iw1n*X=?cK14M0%2ei#?odfH)a#4@u@MV1BJO^88nn=f8x{)tR6Z zT0YZ5r?&pll|%F#f;k9Q&COZ?xqp7hIs{UQlp_B7(meDYuI9v5GG zL(ZuNB6>Mm74XPSU<&;0eBfWztYq*XBb|X~InQ9dGdM|~LpSSFZ&I;kh& zFL?>?`4;RmofGz1hwvY?8N2fdfyY5d{I^k4jHd#Y-t+4;;r2IR?H@k31noN3I}5Gf z2HeMeUy@J1I*xuNto;KIl>>hIb;och@nIzMdzgOhBmdX5qFsKH*^vJigm2Ui=+-|@ z0mN1GPN@a6fbY8mdl0)VG#L3bT?h4s%)brbeTLCH;iq#*e>Tru#;kLfB^cinS=x6#D%BkAp(nhvY7WHhrs8fIYGzae&#^gS_W_$U^RwuJ9Ot{ z0};Dw%yXl`Rmc~EiNBe3U8)uAO{XFAeee_H@4pKiiaejr1$&5F=Ppm^bYS@Bd&D8q z+4vdgM6GiHH-o^B2hcCcv+K?PKe!w1I;1o2JHTTXP+y%Sd`~vuA=YVa39s-E;-NY- z+(1MQcj@^zm(K*>*X~XH`?xL^vew0FC15|vrHHrrh+l&965%0`XKTVYFg~QL_^`Jj z^y?pii1#G%H(x{D>*KgpgVq=hg#r zx4(hAwc+Vc>^XcJeiyOs|KEIra?3x&;EUW2>wSQ3oC!1lePkKE?EWL-Mra;9D{lTu zuQ#=WoPFG{-kk8tA22^wNBp@>c!zc1Gqw=@T21&w?gxll_dh4|Kt73EkpBeY_ta+Z z_BVVU`FaWAxf&9GO+^FAOL*HukVD*hFW~(~!1q0oWiZ9Dx2xotcAmpzp^j z=I`^9&eA{7uHya^$*1RY03Q7vbi_`|OanZ=3UU)W@5=X#Le_gmlk>n%;v5%{LaU1L39jT2wv{y^t#)H4s~ zH00DPoc|Bju5SQ^32)2sud?QEUmK5prT#?yFb-r?ChwsQyjR0ObT`dca3Am^oJWOr zl&UfV`ih=LoPVA8P2Wabjdt+H)!x%V$8YURpCS7biaCaY&^b^UaU=O3BBZQS_goJ; zf$7L=Q`qhs?}4A#lV~?T_3|qBeFeGi3tCX>&PAY;;CqXLKkH%WF=EX#ch(N&)*ETQ zXWg3Z=5NWkR2p*FPk0B;4+O0D_EA_xKu3v|^p38DoC3To`{UZ7rB>y7m zf5de_=dfcSYY2ag`@Nk~u#;~x@Qax|uMyshI3VYkI_LxbF8#y~ubj880o*qlaeF%H zpDh7?;zPjCHp;n11b!Ohx(u?RQu)T9zs_~o+i=pEe3f$JyN42&KJSctn&3U6;=iYK zATsfR@0%lwDb;u<`Qf=siHB451uw3?f_uQf%wPSnhx)blzb*dad9Lh%e4Ty@a3A42^uWi+&3XrF?s4EJW&&UG#ljVctD(!f@YCP_NT*9F z&`Ec93`Fw6l-baG!rBLNDGGdlO~jLdq|;k3#JJ-uUxj`KBJH+J13zZnPuun|;9N44@G&=38Hd?9u?syXHVAN0sDsZP`HlGeVF>QBI~Qhi|w(2i2=gQUOL zOMgHDc_eAoZ*jeE*_FTFs*_9BfPXnf%NRLKrCn{ifOh>wkr`j5+?u@rI*xTez*8>( z-**jsZXo_kx7e=r9#cjGz+*Y!k78HHzD~i4OJJ;piUZzdYiS#Lsgt!B1oLpqI_0zx`wK*$Q>k|HlWecO*8~HJCa)ns4K; zpp&r9sTE%eI=(qo4IZposY6d;o+RDCYyW@ffaAuEco6Yz3hAF{0y&4S050~tUx!Us zzwu`P-%b1#A=pXsTiA)%`JV2;kMw}Pgr60Ekx$NVz$)}R9g_i%w?^ECl$6@o4fOp- zy!3~@0s3j)?}}`wRNY_EuY~ok_fB1Cnf)O*ymUJ89A#=h;^AfXtD#17`y1nV8KM9B zB-p>hcjBa9eL0?uX4Wzk(25>kgkk@I&i5L)j9<=hf0r*i)4+dcyU(|PzMT9a18GF~ zwhz&6)VimAEA^YS^!q*GzJ^}CkL3QDw#;)3ZTz--%*qg|I z;}qyIn#UVgYZgU5O^&E;=t%rboTHr-L7b8CPDzf}g8zf1>EWmO=GDghuyaut0Qx(? z1k;K0cxlTHr?XXdZ;IF;kOkhMSg#`mn}Klj%2x#_>*iSS>^@56>8&M3y2 z0O_yizBOgt8}oNX$TQJxuE7*}uH*fv0ls^cpL8Bs4f_m@fE=XVt6|95vGzZIk{k46 z+edroKiUuW894|#(3(=8SA%?<%9#d#LM}9%oBN}DuA=p~nDUS8;dp8gRJH_hGl8r(pTzDW9?vfuDF9 z_!1xH%m9AkJH*=v<<>sN{Odptvj{KSk#@`Tn9zb!=O~BZR>(o(dHYR}r{6l~*zpJO z6PO2n1pmkHKtIH|D&yZ@mI3Zq@6=yg2Dyd4f!wmlX9w=rQZIY$`Cg9i!uKFw1R0n* z>iF-*4W|xT1Xp^${aDB$KGYkBpK}m5(mZz~_J59bMck?@ita@Ija&wwImzel>)=1Y zb;G9!|B&~ohW-Sf_$#H_aNWwu=@`s<#ILm)@<~|h4*y(2yJ_oO%)fEQw_&go@t4wE z_X(dvyP}u!=RiNj^J^FlDfRc)^t<=q5ogKI7r7v}NIPH({iYmOrWRB*m{KSIJ_YpS z&!b)49rLyP2yn%Huw6;NGSBBmi+khtS&ql!BkCH=614yRGVZhP8?XK*{m!zV(mw(o zs}1|FLptAXgxq|T+nwa6kPr3{weBC-m4y9AtbK8Hv_f5b3rs=86FDsT7wsm0LAws= zZ_yJnCO?jVWePkm=Ly5s{=gQcz)$EC$mdDYX>^@-Xw9EIkO4WTdH(BMfig}=Ns7#Jx-wf zmv=x&BxLa+A3CDDz0f+Q+_M?4%mv?P=0^Sk4>P z@%C$LEAW%-0)8->Q)-JY2wi=p=c8Tmqb1Bo5i1|H|BrU~EA%dO^8HTv^n@NKlAqR> z0gury@(}(6&y$Ac%{CCx*WWGakC8G4zMb;?@dEYrmA9_Q(&xcld8YfJ-MqwKsukzL z{UOL%FY}pi4(B<2wNVcj1X#`ByT++1(4+WEP|xSP;|QNM&(M$ig2L9mpkBHmvrogB zYA8#;y6FL$;fMPM88%dd0f49Y4wSUpJTLooH~J-fe#?2$U}wl*;P(|pyQw*t@soC= zFGBvQo3LAn&*M2S8n@;}{~QSX0Ov!5pB;0d_tbGvkokWU9uo+TcJJ*V=8 z3`FdCN(B8)^haH-(~9|aay;(r10AVPF7$*Pd{bfPOM$LBo~B(LtZE=q|5W%4P_3&f4y#BY1pjSmG?uxbNCAJp9Y{9$jAT3-K+>v;gz z&I57OA)@yloR^Mo_xfG1DEJKY0_BmW6{RNnAm{j?@&;0e@S{8@6|m;t9%{n=UIv|) zh`%8}>?hU$e$u&F{-8kD7 zJKplvGm3ohHENQ*-_&^ShAFX{Cy>;L+{{A`q_eJtkx)bI06!>gQ z_}ONVLwYUbFLD^ea}!BxJ?q0ul+Q)4e3t0*l5QQ+W6Axj?k=CHR92yZtF77iqvxqW*g$S3ee7T!Tx3br}rT6pPq>RiW~}% zj;ap${iJi}IK*Ke$5TGSt8*V?s4Vn8k?`_K(2wq}Y#>h&zK?d5wCt+cO!!4&7xMLg z#IKqLojBLOAPuG7`4#<2)P-k#O#JP0fFC#lKSDH6s?IC$i?o%m$20?-DDN*7Ih4@_ zyqPZ@IMz^>cy;dq^79J%)r#$Q+Xy;=!Qe1L_>nB&`}#qi66f2-=`ZKe-#kp%GuFdS z0{uWo^7ta=ujEOuKkjOcc4NG61YV#U-vIhC2Q8i@KmY0rK-@g&KjEd*lKoXPz5UI# z0QfNn`AG6?U+$;!)j_{LApLFJPvYZ#l3av;{3!TL-VZy3*Xw)FUWR;eVz9I+0GdIykn83)Gc!p0pxre4f8n2z9c{zOF)pC$fOiGzOh1Oi4c;#Yf? z@SLz8j8gS}lApl8uQcqfGx6)4!uTR;&HvAP2laz*J~EN$@g(KrP(A|xiTmEe)_PW$ z^XT8^qDSH^Gx!89TK=gK1XOrcH@7T?|eaPN`3GV>@D^h?CllexB46P zL*m_G1|s(V5Qv|ymeG>Jsx!FM+zd}^&y`x3;;ac7m|@U z(BwbBeajJV^Af*XQP^Spt>W~u_p^VhR$iy zFUfN^!Ejvz5q~LvmT@Bi`P?S{MV|kPTIaq`X$NurJyy%>zhBn}KTg>!Ljl^<^Yc1T zxcvM71|)<0H`n5F;Q`+3HInVNmix78);AET|3jV8Zt$Qt&dlb#MBu@x24D2PZY%Zv zfVW@6>w?eJIz;jh$ZK?iT$A@k-!T3V}|fmt*i60bM=Bb&Zg< zuF-lD@Y9Q7$v?BdL*GXJbtYsR3ad$HN{sY5&o6d+i0_bwt#?Sfe@pw>;`Of&c7T37 z0{T*i6!@KS%$on4+!FGfM0x7rhWUoGu27TUM~J#gy(@OR+uQB~SIAG=3(ua5e#MSL z4*5yH8uzy(=4*r0AG|}U@3=2oMG>*3?rORlbR52?(28`v-3xn8@;&s9g!egzI1}S} z8AL6mzSZlkuHMsqVJGdVm-=rb4ya*(FDISDJVzGbIWlA`r5wF6+x4SV91uCbTx&1* zRMz>#u{?L5;(LOKDoPz20{&Ch``V?K(NAl_fBz&u{pSE4`2`e;5gz!0e)k6CFY#p0 zO5le$pFs0hJ9s|G;r(@zze;zYzV3xyz9RjTdSK=DSKWbjTT*T-Nk2&X5?6oI2JFVG zM_0kGiLPpQ27TXf&=-4n{~yY2DdMxpr+qoZfxz9*8%`w7G?sM=o)ga`pDU@a)Q8m# z1fx`?ns7gDl=J-mF9*&)$2k8i@g&B4?c9RhO25XRfnE6)fq#jsW%k4GV$-utyCL%P z>@oB!m4pR$CVV63jg!{Cram(v=hS&fU=sybrwZhdx-idB5ILM=-i)kt41ArIyZasB zd90);wkx6mcD8)m)wF5&lW1D%+)zPz3Ht^|2*_ZQmFqeDPH{wm`6 zd!+NzZpMwLym2G>8t?xos{P!820f5}t1xxVJ-`Wk+#RK*9`-=C4W^l;UD z)0P6BP6DpCHJY#YP1t{w@Anl4SpCupcJ6F~olAXkXJyDiHTBBjp%Spq=xoHFcBGTh z9q?d1)K?M0S9}A13H|EzuebET+_kG@H_#V9eV`Qdp0>sdxntlnSl8>#(Dn-kaLvyN4j9V6PexLKyndY?l|j{ zWw3Mc>yPz9hMT9tYrJu6mV%sp*8H2J=kZ*-jdLDM=s(*8c9r-LaRbuU_kS|)I6ODh zl>97WJ)@q4zqcZMduh-K_H+zn3E@lH!hQnW-zfO&e+Ir&5qVRG3-d*^-pn|<6ZE3Z z$$T61`%P{h5B7rG#2@SIr#t4jaZzbfAvhIs}`eD!y^#}bR@fR*b9Ejb-d`R;g z_{Fth^rK%OXFu`R(Vmrc&)f1O_z7G@+z1o@-esT@uj94z#g9M^sz`Z*=@5VXVBq_# zd#-Y5hTV0jk-Wc4^8R_&X}&VG3f9ZF6(hnd4Ar%Dmq*T_K-z2l!D_;vfDVd`7unB_G@U z?;7pj=Z(+HS=ae)B9l%hojIJJj9d4Ce|nsDV%?wouucT7UHPr|$15EIJbV~>+(>>_ zy$rd9DnXB84-e{dRc?NX{hnlYi^| z@!b!CpP+S*Xru2aw{4&=dF?}80Gqh6(Hl1oX|=j?i157UY4X{qCE&q(p|7!ox7CL2 z;>X_t98yy1rk-$c`!oSN0{1DGIuP3}DS}V@rsDI7}Y9O z?IP%e3m`s-zIML^c;X-6e?$5oaQ-~F2KciH&(#_6!G8ep;s3{>4H4&k!{J$wlAb?b z3w`-|z|tJj$=ieS{0Q;$OiuiwF302X@!))O2H<7dqh046w7Z6Oa&8vr$9Nwj(N*^! zK|gKni&#|~_>lv!pBIIn0^mR12y*B~c-_BAhx_3>5q^3#;C`-$O596M0R2P)cHW-& zxz5wCk9z(3{WhQzy908Nda3DZ&`DeGO;?lot|p*!oAfU;z9p>qHsd4sowDX>FL6IW zC@1W;YaS2^c7vS5UqjB5DQEQy_)J*qSKbBO1+&aMOPvYcU?zc=YywAYn z=3k|*Q}0Pj?|12SPgicLkJlbXR|4F3*fA8u-ZmXWy%e?fJuYAA_P3x)jA&r+Ays|v z$~@3iS+ITr1v zuAts1On6_~PsFmT?qh(TxC(r|y}^99SQj}j0M z)_o?IXVKoW;9tm|O8v1I^nH~P&kK-F8Qrk4Tk9NgmbNPw9vNEIV7^5Bnv|zw$@4h< zI<>>=*Ky9{Ibrxkh;%+*hWM6f4SojDPJZFNNx{OP(~$51uYu3_S6=%(@j3al-dXs& z3iEA$>o+vy1K z(-+XMj>Lbg1o%`f;aRT`{=yT0CkwzYMDIs=?j|w;d95Jvf2{+2-zw-u@WY(PR%>8~ z^NIf@>)Y7t$m|Z~urWnDryu1d{)f-g&Wm{EFkN@Yl|!;8ud1EFV-wUy8+rQ+1Kwa0iIfme67=#`36r0 zJlw%CKi{JL1babl3C{mON=p5vD1Ynz>T(Id~U%mX{u znZSIze8@YgF4^X1P*ds*=VAQyymCH!4Rm6I5ubaJ&Oyc*WyP6cJ(+)hK;D;eVw1-~ zC-679@O4DOEqa~I{T|Zm;I5s7 zhr=(xmA>bn^TPpaK6BG#;3pQqAN4TYe4zo*qdx-u&IDLhs1E$VouK?I@pF!ZoI}GP z=SIXYs2?CRc3TnlsfXd_D^dXcirk4h8CI%Pk55onBzht*$T;qq4UkX5dMCH)9iZd; z6BfmCOy%Z!T)bFK)1HhwPH2a9^GJJZy(68)JZQy}+Z>OCYScG$bXqiDrVeN(F5Q6K zUShu%Z-v|x?-!MPJ(c5&;1+o365`)qfPVVoGls6%bFOF5uVlsh3_Ldj&4@l|*PjFJ z>g9X$B_n7zb`1I=x@vq8aVD98xF_?a9d)7Z^6%>ee6g$HTsMze>*hNh_KWYz-GgRT zSMD1Oj6vK8WZ)O2YeSx)+ur!xa2n{OPN3aKNT=SLh(A7SzGy$kBYuv*q+i3h4=Tld zP~Vb{pYLY+zCix!z<@PCPq4fFja>8A8%0Xee!4k^g2*B872wgju%FJPpZx{kss8{U zO8CQC4=(*+9mHonyfUAAJ&_AfF>dD~ya?|XO7Df;b|L&qcjg7&cMU1&c&-l^x^(&;h(^DU|tDh<&~S=POY{>W>cNdGs^7X^5)W}0^9No5pUp{U+GF6;*8+SlBK$i&PwvV&v=aCt zpDwz9G;p5Rkov80dEh%^U=INfFpeLgo%j*o1b^Y9fIAft|Ivz4FaHU>M_T|NUa!}2 zmO?)97TS>Xw}N~YI1GCZ%=5;{Tp{oo9g2RXY#Lpm&%n-Bn5vL`5*ck{0H(DH544u@wG;LNLu$fG_3+X2CZ>x z1D=QS^Ip*BGC*kGO{^n?QbP*lWINZDF^;?S0M9BA;&OKqp|) zf4Lp-)ehiGJ@#=1(smwgM@F&0(@5e**Q|bxMAEvBxM)NO0ZULTyTTS}GtDqCE0e_Ub zVl2=3Caw35-)4Oq%Z(OylFn{@;jKH*85;sSY(qZZoCA4AOY}3CVh?q8u)ohilKL3C z`M#(MyAAW5bcstR^~8(G3va^TMK5o2To$s%W$$vnG0FMHC&_1}PN1V&fleF3k9-At zOI!0KOUHnJ=a$z#dvaf&?>)prL>r|tjmB(6H_@(dA?Qf`yyP#$nLzDfrbUS} z^D@wG@*waplb>>PK_|%lR1zOXH%9&DbOGg)w1;=OUm~;@aziz!pTFq{Ir~0^oW)Mc zujRbl)@;*aBeuKbP4aKuJ2d}Zv>QK)8LcPSZhKw0y7jQXyw?tIy#P9?KM~(xy?T1> zJ-`#~>Y5hizPRGAgHEI-=!hNuJ%;t_5cs={_jkWczi0@`=!H@_^q;$NEI0@dAN%$B z7PK4Xc^s(&n>ud0`ksw-&l^n9%aR3XH@Y6}irfl)0Xq*}f`4HYsno6(pdZR8Z|I2q ze5V!R+EvVY$2>px9jO~$`HbPXK2RBTos83ey8-$>>%HmMb$?y@0ltSWcJd4F%}X5f z`d4{bPvJXIB8MLL(!Z?r+1$iWyn~VNE(WqZBiP@M5U&c-9tt(5JvXUm<)pKD4fF4$Yy)u!Uorvwq}_m^ zKjD9MU3VW#L6ut52$(dKcC6D>7UHnfA+L2L{~aJVRH6D_CjDN3*&h`|yQHRG8$|vm z!7o_0sN1a19qat~ChjwgmV>{~0$1vL*3a=lpp%F2zpK(ut$QZ(|H$#_Dew4nF6VDU z+=tncbQ(Md`2_QN<#SxC&-E8I26?<8@wail+P4Vuk-Btr4VO+ymD+<5fyB>#E5T1V zjXXPnbSej^$Ir41MC^9!K)|EZz5Tu26MXty#`Gt8yvco8k!D``m%Kzd{NNqe>j!L3rmzo-2i^x9A1X~0i%-igzt>iTiwb6?7B(r?4_(aL%+^7dWe)2ZMX%r?aT z_a^kEtb3a)@LYMs+Lt(`E8>7-y+c<{chI%x_*0Ox_)BBX%LT1@xvk%VpAhpA!=bvx zcUxlCyDfuTApiQFfZYoI_pFN|KO=Gq{883Leyc9}pbqGSyFs&UDTloMXbJHU z=35d$f5XH0-eW6C$l~1B&_qW-}(^8RI7;wQ{vd+pQzsp zum{oa`E2kR;rVe{=N<7m>Y4Oe$RT$wG+ZkU{U)vZ342ZlzW-aqTUke2qzfn4J|kQ| zm3Vt~1KJIzDjCAt*{`ef5hr8!BA!d#vN;=Y=M4N*;P1W-I`MpX|A)2A1&nl6^i%B37`HYz>kdtNlj*7x5O=j#97k9+<=wjE|&Ft9JtO3|@g=8k7I;JF?FI5cpxnx5lhD5xat;<*5cpSLuh zZd^@_g}#Es_vymb_0#xd*!c{?ziY{OWzA21&wDCjyr)9s^HCMhNq+!3OGsxe#|z;` zu!r%4|IrBjO8*a;3)ZXDB-(j`b}sb)W<8l20Q)>cI?eWgPO>-XXA%CZ-k9q4EAbNK zBXO^iE@<8H{$tkq*ZZ7rSO38u#r|tbUgrAjox(rkXQ&bQ5joH434S79!+suQ0bMBr z@RW6b*I6CDTt1z(klXkSG%z#){9t$VOX`Zca~a?6>1Pln&Q#t7drMpQW87vwidgr~ zUH%My9kJ@Go7#X~egaLw&t&#@e{1lQ$c=tUo?5R1jw{c^?|nV|%q`3OxEuLP@Q3}w zd{he=NA&WhR$l^&j$Z{0E4^AfK;Z{vP5AJ3OzG_BM)o=*u``{$>> z4EpKq$eYlbQk{5@W$dMTrahg$&3EQg;D@dE9Q|BZ3i131s3~G1jZONTo~sR-iIYT`#fL%R{{-szp(mlC%2rPS2{-)%R@^J~3GCr}Rh^__$r zI)vZbhI)Skb)dwVnq9!ZkNefNJD9H$*Xt9khb7MVhC+|QpCL)n9_;LOv;Lo;;KD zOFnCU>9+*?YrO;h-J6^jI*Ur_@tkO&-aBa5Um9`{JN%V-Fv5NK@K&WBE04Suu=Y7@ z%YxigbwrG3$p0U@{&(dT${R8ek=t8YXgBl{;-OC8=Ig_KM9SJnRG;U({MNid!}mca zwFvh4KIznAyi(`9@v8h5@E@|y(`C%<)dFE$XgWgh%H9 zcOEs&_lr^GD)j^P8@BRSxEkvdYaZzU*9}9~y5T(>kNcm8zA_D0`X0!fkbjtYS>n|d ztq#{O0=wZCPZR&xukh>Gi(Wqpa2_Dcd4LkM&z+@cpFJEyLHw(o%ri`f-dB+Rpe*K# z3&31dIKX}BqliC!4dW8$8>P?*q68{fW{eU&^1+KKo}WdG9R-aPe_-oNC^GjSSrl12R4yq7Ps4|Z6a@UnlA zpI2c2LjS#{(0lM-(4m;s`}2SwKM6VDuav6!5b)zx9UI_!M0hqZ$Fkkq+u3f5$_A2; z@L7zjp^?as_fjvt_5we|bM(WAU+50Bo3_@e-!Sqor~;YZ_3@_%LO#yt=ohR`srlCs zhZE-p8p@J4-}wRUMyzuR%ZsqT)_&#_++UjD{!*zMU*Wo{(-?l;gZxis9UD6YfBAy& zd}YvXx~F3x+8xZdyAIp6)-i8Rbono##PygQa zmzedw`Pi}S7xyWNeOBN;H(x{e(FW50mU%o@d5D3C{k(85=mbVP2A-ez@AU#dkuSlI z*vVznEXjl9tsMq~XeNrCqM&xJjS;#Z+FC^BV`daaSw7my> zoW=1z{@OGH2990>XVZg$J6Vz?LOENOLEv(>gbk)hvUIX#s~kGX1q>WDbVTpuAV3I^ zAX?~f^bSfOv`~&3dITW^Li^9|^UU4*?wt(zee-`mAB=8x-r3oi+1c6I@@_-De1`F* zopL+w8T5;ovp?ZA=E-v%u!jYtKVHb1{yR7a_3Ais^?Z(BU52KKNH@i$r(di0$Aw3~c_`Etz3e-8cy@nLoo$U)`*CHIF6Fz!`-UH&TQM{b9I z_~R<5_`_E4pE(Nri@Dn8**NSc*Ald!?;6lAviuH<_KPQLKqs;d=#ad(L>#GIr=A7N zJc{)1T%G)k2wRBS=hWMoANVLZ&Ti8L{Ls$ut1FYv`Lj@Oati9*knmFv0)BiH@O7MR zivaFDKgMESO#Cx<0z9(~;Exc#ka8Qk8FKqG;p6z7(+IzF3agg+?>eyOCTAQh8wWmf zcS8;*lg{ss27K^Y@ZV4PQqEtJ|AGCe9%mj0`WYvmzu+nGA9nT~?c5JL43EXgqIUSC zY=|=c-@7wtpJ!Y^J&uNEC2eb;qdGx9`wHZFEcv|rKg_Fa3kiHf_yp!F;u~SyftT~V z``>|nJ?Favv(_d3%@O}xNjkro3p*UR4fCTf2shiD>^S9o$NZ2#fqs)?Ka+L^{n##` z{|C}}R@Su*ouPZdXD#8YuTOuHM!Oz`JMbRb2k^o3kvUX9GwXfu<88EorJ(lE{u1mz zy&B*LlK!98A^j9EH6OM4dl=USc+Zvgi+j1AKDZAU*^_!XYe$T0;jyP#$~x{;WWY~s zSLm^t^=|tn={w)=I4}k|#E%_sF*Oe}y#xL>v#8m^W2Cd+=EnbT?1i6$T{RJY{k4#D z$T?@)JrVGxQQ%*;-`i(7`57F8_@S3{W^q5yptGMRBpt`-%j5k{yAl84-!r~)&MDm3 zgL((wgx#W-$$qDoV7KAxG2Y3rWuF_4K);Bsgm!6vS^Q7h`5Hkxe~5YJfnUL{)E}0&CdeFy|+osGLWSwzsFVTyU zPk0&Tcb}5Z8(Xs<-6S1H9*jPow=(kp16zWBNq5+%Zz1Fsz7KNiB79LZ_{=^YoG*+U z1-%UH2LGmVxSsJ$tOfMNoa{4>{&rx@82kHf(%(?b%5D_X6OLW2@$?^j^m*7ee>7lV6y3V zL%$31xsiU)ba(hk87Ay=($&yodIao{VW!u&KKPGK2Au`0_ZjY62;D!{LRty`;1mfY-Yd~fK-MeZHj_+Ru?dOV> zP;Yp@o{s(fzS8GMHO(NE)~-#-q1CcQr5M#YcHyv)=)w84%Rb2Ra%GY=no44Rrn zy_|6Z@CWY)KQssL)W1;9mj&aKQ)oYtzrlWV94UK`@ySa;y&PAI{vQ4{Gj<|yLFCxU*gFG&CRD#jc9KApB}$4vkaUyh#D zNIJ)i2K~&cps)PwS&RNYzVOyvbv1;te|Y#eL0uNMuX+&oa{4ZzSv|<9wHMjfJ2eTL}8< z=PTxe&w-_&qkMij3-DYA`nB5Ul`^q1_AqcA;t;jBI?BhReAXa8M_z;ZUB>xt`%A|` zp0QUU&r67Z!W_b#@7QJ!0YB-Dz~{!q|M6?U<4$}sR=TH=b2ttAJdgN?a2_3Z)*nA; zVchO~Ct^?9Rm`!g^Q&REnIq1$l$VnJc3YvpXJ178a53$+jqyWf&T@;Xc7DvQjDj27oa(Nx9kMFim%N)z(^3bah*%)v>pij^iz<7u1__b z0zG=4!~R!cyWVErDZ;#y_OG%tK_~kS_<@$?JFd3@o*550sGN`EJYtCRh_%?RS?_Wj zd?7dv-Z}&F8RYi?;r-coq0(t#`^?z~kScy)A6l3EYP~ zL_Za=>lA!;*kN#?a{!0DN3FK$!2k^5$`Tysh zpr31pom@sfpC5yM?PY`G(I=mvfAyb$aes*TXY32P^*;xRT}AqP(Qm)t`0XEhA)nAE z+gMDs^L3e*$o^%Vh5vRX5c+_AZ-9R9O46TK1v-(BK<8entmFY2?~ozf0Nx|4}<((xyC1t9til*!LVl?U%W{eFVZ(+yoiv_ z^=xnCB=l?5*Dt7-SR3>*NIAd5aUtW33p?FSIXLUWS61TuLZ}iw^stRk@yDNn&vfUfbhzvAUDs+hrh_YS(^K8UM2oV(;*-4R_Nta^7%2>-$Oj#`b*-s zR{=k=FYq5A{_Q(ZUn9p@ObL(eb9NeX7#J6}zh!%;eJ=e9_~{dNvcI+e_VRv!+`x7g zuJT!xdDMvJQ9;H#=}^cgVEJuP!E4wNBm7c zhrTk62@BEj{S)#ZI}!ZvP5g5uY%u*Rx$*iIlAwHMb01*N`3}xQaoR}?d{S)Qb{X&! zbH4kqXeQxJ@Ox_KBbs4{-U9hUo_*}Uo_ELXpda}S_<4fxab7s4~TQZW6@rv^T~AZpMEIlmnJL)KUtouWmw@gr6|v@;Xj`v{Viq! ze~5a4_mF#0Zi0Se3n5QkXaB<`oOd|!&-N8)SJ)(EAP^kdo2 z*R}P{Wxc!8KI4vkPUrs5q4#&Tn5vg?n;E^xy|tGdW8vD5!YSx$;H#h=)?5vKn(83u zYStT~ej^VC@mCkOZ~SC3AcEzRzKqtE`ysgpSw*`6cRi2kmH;=av9UnLS0`}8? z+g27ni}rczIh4aAh#%zGzI`UiMB9#29cUMNndhx`CiEERJq9ZS-TRjN&<2kMoi4&h zalJC`tXKZsGwqe{q#vEMnA+cO;rB6$} zlQ8W>?dtj)(cbX0;FIB@*YQWn;W)roBmZw*K>TCT6IGs5Dd&Nmpx-IPpCaeqjojkS zzMTrnt%-7@Ie7I4nQ?ivm)W?|QqXvKJ+7x@x0iuQ9+l5gQP@>(4~z)2Y^mp^xF0w? z74YvVh)ExT|H!t8LpC9PjQWZk6t<8$!Z+Iy{4}ivessQh?02A(y%==h4LmQs4(uc{ z2X?ZUbpA61au{;v`+$4Sy=vE~-a|pXchy4<$!^GB|(j_z6vepNW(Hb%J314EOV> z|GDpP@RQzc@RLUne~JVWreAox&qwWl^=8lySAxFU;akG6!H=yP^uuwD^N$*5DUT-o z-sjP-fzQyck%ae9zeDSxT@o(Z=dXLB-u{Qj+TX3jzv~o^cRa7B{^TXb&qIv=wcj1Q zkmC`*dle>~4dg{5pQZ}f;hKbR$@^o|&UwACBy0_SnCBE!4)?S|4!O7BZ&hyp`Vsyo z^NXMzc0U2QXBOz?QNOg=yPzL)zGwa1mylc1$%mYuLwp`PIY{Sl(#etz-LtoV_dpKp z2tSX}-}8>;`ey%!fU95HO*ZnG_C}Tm$KUcxAh*FC;Nd6RR(Rgz|6pF@eYwa&)c#`^ zKtBDygq^5AY1s{aBfAd#hUVKVq&c=;?pxT1^!FSO`6S;MVd>zmq+z4=Kj(yHv9q{mou>Gz5tCjsO!u{>AYR~)k zOTZsUildh2kF4NVl8!Lz2$@FMPuP}vUWV%+>GxnEPmDmpX5G+ZdMGHLQFoEg?cwLQ zC%*Z7j2+ir11G4(^Zqjp`01^-wuIFWuf81m3OxpiDL-lHFSg$~^Tg$x*Jo}Dj)koz>$u6}%#;|{;;^d0N{>O78LT&GhxzxD$BRnGDACu_dt!?Bja zA*9nS-P88>17IhTwzAJ>f8{uJZE&3WW&z}uI~w{`J&rC1JpKI``@Z(O4OT_G7kA>l z`9Hv4HQkEHQ~lM>8zN4~-i7gN8Ts6b_d~{c?g_1s?^Mcyqv7A>jGY$+-lMW(}j#Hb^5A<(=aZuE1pFYlmvik-7@IvPQV|N7g``7a!hlq18TunLJ z6}||0Na-f_SyRXBBhX&e`;p?ltX{Iv%LJf%XG$1j{6_BJpuKJXDCb{2(3jfDUf(m0 z`UG*5ws$1=P30DW{{^J~G5L=<{IBr_=%?=ieVrFiVm#J#Bl?B%ANmXAFmRDHL>>wA z?9(;^cAMS<^K0dEc^3XE=iCE!*3FPZwp|QWo~8C*&%5|q(CP0&e+O5dHzW-)^2xSC zJ~86|$aSvB+VFeI=c*S0-&+EFwUZ6x9$n)C07eu$`7$!-(N?)Zw>o7 zgY{l{Bj|^Z0{tq&`(!{d`b}<#cHKjG^i06LuVJ^7N21`#e}R6^x%Z%LN5DgqP;U?E zJi~D(b0Ef@Q^@DR^yeYRpU>w#D#=+vJ8XZ;@Gtj~?u0l&<(#~q@uYK~(ykAHpTPsf zQ019Se)>LSyZAk(FyWPru+N;6@7=o^_%Y}E*9)X07`cVsMZdu4<9YW;!wo$1d&o`w z+g4xE&wK?7S3fh3adl{S_^};V0z+Hq2K=~=pRM+lmBMF*bMfp z{o+d28=KW`F}2?9&cwJd7!HnW?GmpV`ssCo@?X9h{6@xsKhgs_VdmK)0@eh_nlc{%T2>iFxPM%+m_9poq%wveZ)7s#(KNPl*O9(%c^TCia zAAB?k{DG$-=k-ZHCGN=7JIL=c97;O>=|a2WjB_?2{CD#K&%77(w~N&8rGkEGvq|(b zOSiBTbbhz02+G#`DC|e)5i9e2+2B@?&&90w&=+B!1I~9<2AOvnV%|yle2#I#;Qm4T z-=A^skn`P^-5!H{a>oOIkmJI<_fc3+ z{B8d;@WVP@cfW~x2k!-3{m)w8alYf^<-XgKsr!IVXf^m%m1hn2;m3}{ zIIH-5+$WZG_K97}^8#tEr>sW$$7=q3KeX#R!XM&(<|OZdlnB5+XRU|*MNQqXlPcQV zv0Kv4pNE}GI@CTD+@H|TdX@i!&H;YpJV;*B3-(!lG};?kwypgw-PS&zj^OzIU~n9K zXEDZ+th2BCW@(PG!)y|E_$QF@e$Dl3ZzTH5UWC8-BI@nGdKU{hnecxwuiNx$uwUFs zI`NfZKN0f3`?JvRkh3pwP1#>$_GR@~He1SS&+l-ZF&RO<&$He&((se%!+;+rd@TKc z$dN<1hIYFJ{O8K#=fqz^K5^$9`e~=5zxQt$^plM|C!2B3$^Mr9EgeVyeV>Y~Tmrd; zxnFk_`8n3O<&j6Df^fYvBw!{)o3T1LysE& zgem6%2fuO))80+I%o@kp3U$2r&m)jqlKawUkpIwS&||C>{M1pNeIJ6){>kEC<?q8;o7t|rzNg=apkL_t^~V_M_11*G)NfqNd0+Zpuz&SS8SVp&eHN7G%UjX@ zoqJ_>=!Sd-9)x^!oa$->d~gTA*C(F`iMum#UFd+IeV(!yb~5zsJlkHi+xPk1*rvO| z4@Lpcd+AlS_ZIk*BkWu99icl|FVDZ6MEJVgznymOKfm!T#H&refFE8;{AeBI)>H<$ zNk-2;Dc+MDclHCk7)8Cwm&RDUjffxX06hIFf15`NHj&~I*k_~$U~ z;o7|*pYRQkkH!gCd_y^m3F`ec*)U-8is{YK?-akE`xfHw!LAxf|I&9!=dZzWr*#bc zXE+D?Y2x=?iFP%8h{#Rtsyq$+!HY1@x`_B0X`j)1)2wFO(kixhf6Axdkjoc;lI(p26uv=SNKfc0}$T}{s+Co z^L{fE?aDj=3;aFX)w(P4-syv2A=M<*{5!}qIU4dzu)WpKfgkVb9V}!M(s||u%Ks|h z>-c!_JM;q|jW^@$w(BuFMh_z-@6p}RqUv>+y~f{ z3R^_A&-l}zGvw@7NnZmw40OO_l(F8g=})rG_apvR1$&O12n*bg{EvGJ?Hbq-cDM@Z z{5YQW{}|+7Pxz(G=Vy7}n%djBvR~AUzqub^57!fak6(e$+#KlZ71o=ag?-9iCeH8k|KZ(CU6leT@x~0=X)DB-d3izRO(JzwZ z=biN+=ggDH6RO|XDFpbyreRAbX8-lP3Ehxe?wR2DwHn7A?~`LKrq+A$r=Sz!_X||c z5BI^ph5rcu2Jh#2=UfLn8MqyGqVm~oRnQ4L``ngaNcs;!Ux$*i)W+)gia|h_J=fadVGX0B>r8JxChOKEL7lpx9H}+TUvf?7e;h>@&A+(9b`&7sqSo zewfZ%;AgTs2mQ=d?|}b7=ez9{+mg>i$J!eAVZC?m4Elpkym#F!zz0U4UsF6@_}A=5 zyys2FqcvneG2>Knb?~ox**Xn=vO9)tjd!rWe9!zwhI&`IjlKr;hMe=Zs}7*OOL$FVZ!5jAn z(2pDf`sm&Aoguki(m# z6a5hS8g$O}*Kl8i=j@BvP+m9VV|p(9p7I&ydAH1D_=g`?LIv~g0Q~{yT>prD4V}^6 z2K?@ixG($cTLU=^I^PpNFiAMSC%z8xFB%JZ#!iKOin#2PZ3CY}+)t?e38=3 zyu8`Qy%#V-T}&BOFQ2>$!8fPV3> z=Y7ffSMJ-fmcGtk8Y$1A807gp``tVHpsmuPy+croCW+kCUI4 zt5I*7=QNKaoo6KBVEjP1`veP7Kd@;n_-|Ud$-1$O%d;YZy-zwN9?$GD#)cL4mD(z&}G^dqMS;V)>O^N3*odggQJEBtE0)~Nb= zTKu_<=TCtB$H~uLjN5Zg+}?6A>TS9j_CvGs>MPK$WD_*5{^Y&Qf$u$xexdjSj01Cw z12qo0=QG%C#<>@0rz!9o{imQ^Iv?y=7xZ&u!XEo$`GU0PS zLA&D4cfdcDc+%tpLsg)!`u*{3;14?An_F@W_!(qAQ1Q3ozL(Gr<1L4XPUXDYp`a5E z!=6`VKYH$T`lWwid}pusPFZH?kM_>pywcK9`$;hF&FlvM{~G0RLjvuMjlsN0=W(e{ z$T|0EP|hjd^BLxMxUM9f>4#B1%pcPIc$e=B`|p1m?fO0Ozmf@yv6CUrkM<&bU}Mn9 z)Qq(d9WU12k$jGTUXGz&W*-Us+(qa|Y9}u~3|S%}JQ zJ24O2ua7{Sj9%t>pK-ra=-V+CU;WseyP%g?0)F6I(x0Pw!mR*@ROP$y&w_scd+-l4 zi2v-q)YpAMeztvx?Q-_{S1zI)J_0_xuID`_>$#?%rZ<4xw7tiOJWab|&Cufl*86sn z_B@DwcNyXPN}y%%)4ca)O~UUIG_wvK;k~jW3IC=ZddxZVwLN5hZTJcA4nDQsFZi&Ow)ae~M`YGPoOvSg59j&2*`e6rR%NWFVIVtm=3_5STsj29u!FQSBZa6hn@SZX0U z{vNk4We;zOy5Y>Se0tS33|_pmxtY^CIv$ z;CxqTW(M#k=RDDRZ?fJEceFLCpV|9u!mr1OPc!kx%EZ~|G5Z+Z*S-`XAf_-_^|D3-8{D0WF zmt!~j4exZwN8FTsn%)JS4EIH&cG>@YF8n}b`xc9*{pg?KVD0!72d3I*)6Qt`z=nvI zw7uOI06(%O{KLOlZ}tYZm-jHJoG1MS@EpJ6iPm}Ef!xm=`3vH%deV9Id+^_M889)* zdtS4+7vn$UbKoD8|JE7sC)w%nC)<jU3&nhqxa@?K5!;-~-P00wQa{U!~t%YU!xm*4;)wTpskphwK4;<*p6-hvTXt z&kXl#ssDL|=g0e<^W$s23_sk&?|MUPvW-*JZN{&Dj$bOzXD6Xv@1|hA7hHpO4bnc< zZY!g(lg#$86B$C%Nt6Pjq~IoBIR?zkvOt*LdCFvfH(2{h0=M7@q8>Y z-XgvSbnmQQ+QUa^m&O~XYy-V}*PUcBRqw063H;2^FD?8w()o`4I&|*V7P2AX&+ZF3 z4`v|eXDR2yzGS_ek4K1q!Oe(6vLC`<(T#bLS-@{v1o|Q_`%HQraBoA5II{@f{3^O=>PC=H_SK_ojVhl?=|?8M&8~y~ zUPXR(+>iElCFG#vY~mj9lROrjWZ2+41i{SrL#wt}3R>@T+k?+6_kGon{sFXy$a%1b zygX$;iSd)(GPFzWe|Zk@B=0NJ`Qr_TfuF%^KxYE!o9ll~oFC(Q!BWDvBkl=s3zu19-#d`tMZ@Z&pM$}dw6Wmm(`(e_knzJcLn?V z2(FLB9+i$DkLu;ScE~?DAsFX8U61yL`8|$5*ta}y(p>Npx}m~CP`lh?$^B!QB;ZDE@_k<_;7vZbRe9-1~Pj0mk^*??59#F0y za%&>}t6R{n$VO>V)naa z2l}0k7XxCJ#;%giccqsz@7K?G6;>qi*i_14bI?JQ=y_{Op3~S>+F4(#y9oX>^b-8Q zSn}EO4CoBepPx z7dOK%oyvB-O#2K^4Dxe)KlqG&4F2yTohQ}>o%9iihyO`<=zRLI9mQbeQN3)w2Iyo) zgaztxb;k2fy%%zBx^R69S3i8;{-Be7dY*-=eU6oiOn*rav{|^y;d0(*D(Bk<8P8l0jAu6CJSevd#&<~7^KQ8gbOy&l4q?*&YFEl(4CHw<K)>DkWVC?zRqdy5PJkcl?}CK?Mt<(x1n|ri@IRs^`>eJjtxZzT?D;t45s2;mtgWkQbq4zIHXYyp!n>z@8cw_dX>c3L{t7F`OxA(j~SEl^; z4$kkc60p6O1=^GV9{HtrwD-T*#jdCorbZe+bJ(2MG8bFM>$=3sm|pZts$#TofDZ5-^6 z%U?lz)6TiPn`J+YX;_MO(o`?3PiT{g> zFfSY23i&;i&m*!hYUGwZB`AMy9njBh2KiT!PSc+OkGwkGLX@97c)lQgX)w;b`ykkV z_Ep%k_OAm!1fQ8LHn4P>NdFa`w^o9mZwRlDfYZbwamPMy;Cb^H&t=ad{@L7L6j=lP zUFCmDEBNn!7xI+q>@%A2Rnp1lKO|;m?f+=l)k4yL@wdpA=DHwHw8HaNI+t?W8}Z}~ zE8~SHWa41x#MVR{at`S%o(BBEEg@$_eV+HLuK z7g>mozi(4+IY(}1)nmLEbn;BmcnR>)I?wxB z^UoY-b-ujC5tRSwuur;w?|aVUyh}yk@+`OidS0jke1^WqxHFRQkF%f?IRJW8e?BV& zczm<4#e9YM_rA>W^c~RA{(H$X_=kZbF%Q!G!^{-n^8nZRW4FWuHjlAOP(JTUSZn;u z(BZHXx*u;}#=V&>1wo!=BfwBp!U==l#P6=kPy6h`_3>mD_A{Cd{^i<;uQE%QSv=M6 zZCqa)a^@qOjiMg64e~ji=i_o^@P|uC{}aw1)4QSGQRL_K%~5aDGsgz%JuwCUko@;N z3s-qw%lS)erLcu-yzw>Tmi`+tFMzj^`|7zrFvfl9TJH_pK<`QCy#M&c(C^?OLHqeF z^LPWhfd6XB`9wQjtnYchha4Ctc;zyD8~KO%{UC7bd7G_|_J;og3sgB@cr4oMt%Y$- z{d2q#{A4S@&urUjxsGOQ_<^DEh!fT#d=u`E3eN@p#gu>iQPNoidwzuY6S;3Hlt#Ze zkL?=EaU|Ob&R?OywZ#x`{20RcxHjo5V4O2B6XS0U;oJ3~|7JTNpE%(seSvW&?8Mu$T3qZ=N#k1jY$8dGtl11H}I&c_lrM7y*X#R+jBJR zA?JJ-<26Zq*|>V<5=&Y2^=gZBIpmzLtJ_a@kj3gxc4C1y9Vp65P=vw>~DeJ*p2pJuDLVt(CvWh zc(nd)&{ytg=u72%=~Ij+e;u5sj}nGWTru!au%B)ze%sI=_!0j63i7jh5BMB>751t6 z9Y=WjHNa0I{t?Wd#GAIZ5Vi9y{{T9XP0=66QVs|6{OQ10iMf1{{0-Vk+d5%R)ZduV3Q&NOm3gt9H`) zf#Xh-v!DDV-shHa?sFTn75Tp`Y$@zOIh@G2Yv4}AZz_jt9)+C`i~|4aKkt%#n0DNm z2tF5(pG|0QG5Q(BpZN*pxyuHqm-sEr&m@_jfwg$v6wSNtwS&b}Iy=sSAB*vOI#Kff zP!;kR1Gj8y@pt75>yduQq2GE0$8qPob^D!*{Q1yW_!F&npG_gR(44TPuk!iL2*7in zLq03nQqQ|;N3^%!d}u(PCi}1Fe)^_7KpK?cDbHPUEOVFuv-4fc~mEIN!YZ5Y(I9 z5Ps$!w)c$}0QYu+-%vU1Hxu%VPlP-begpSO4o(ZsM?Sj`bTZRn=W*)&<29l8bRrnf zKYT3O>-C_$*OH$uao|Re;TY_#itv@F$ARxL&dw(MH(W;^bk>o7coqC49|E5j5`P)T z+0YHp?2&}8!gCp+HrPL+S-GEoB>A5N{$)B~pYR5NXZ{5F&msK&_h1hZ=N{Bc-sQOO zjK5PSp}o0vAZIz2WuLDPr@nYTw2Aa5e8Bn9+rjbZTjp*0mq0$+k2Z~hPXAG3Ed^cw zS~LRVa^`PI3)k`efH3f5pNB16uD7z!$*Tb0yEJ8gD}Fuqhoo!gS@;5=dxwXOen)#- zjIOj0weyY|`i+}`ujA~xE1}*&ez#ruKZW~Lhh~6(9q(>`0&?@7fF4(7y(cn0^rj%L zknQ^Rd2=NEZSHaOYaQ=){s{AzOi$S2DV;yf13cz@*JJTc(0gPw{J=5n*Ps6#_8dA5 z_N?u?o$>R~uH!9zSfl4X`VX{sfO%SYd-1CxC}aQLUa)_(&htL}0r+9AL&54iZ}$}C z_HXp-g|-&Yo5Ax$o^zh)_051EI{@ufIXCs9-q`i9L*?h-iNKHW{LA&E-_!v+_cFj& zzjuR7tPKC@1;PIQo^4VIrLJ{KEDnjP6#{m_l++BpZ(ur zycj(px@zkVgyuP1Om;&qR)bPlB>Zrua&?Ee9r>-e(P zw$MwQp$bV zM);W>EL`ioRl2{mhqu7zR9h>F*{qgMY+1&xZh3&eF{>pneX#a=Z54#$8 zBbaZw|5)%7`wH^W@$0Jy;>q~E8`~Q79AcyTz2`7qWXR9Frx;H<_YXfRW^Bjh`@rYP z#9wJ|%HKI>boIx8=bU>9#+*g}@7y~vaw_l#*M;6sApI8~ApN{LD}Y{$Ugi?(OFw=cFU&n;Ey{?!id$+R7l*_dezCdTmu_gr z{m(h>%SdLQFXX%S#(oCh3d;Y^2;>lV?$7ydUBI)>J)AH81%5JfIsD|Cq~G}!$Ln1| zzmD*2xc(SVVm^2+9m=-!Godi-ZT?8Sa1rl+XmZx4+Gj&PL+saK(*NQZ_>It&@Ee-X z%+TJl4}c%_16iIg$gT%_p2m8g;JA~1d7h=L<5X<}`_VDra|70UOAhvy=6pfNm$nUI z|FNc{ET-E35i&ux`J9EP2H@M2gMQ}wF&2)|-19bimwx6wz}25;c42>f1AasG-uF28 z@s5Z6D?bwtApci_|BXl3YP?-8$Ndc1>wrH*Lup(M_}-RcNb;Z;c-}wWf?ef!?;mDE zo_7WJ#bqjww)ooKm*#*@GK@G-&z)^Fm-N2{KkQ!KKQ97&;GSJAodNr==bg^{?ZCy* zm$+;D{AVuu<4_|cHlOgmuQ-lx7@RNMemmm-e&?L^p*)A!v$@2JPf?`tw{5<}ccRZ z4jvG+w>O$0pZFV)kJ{nV?a@yMzkyz~pPs!N|eAD@>jwIT+;U&?drP3&Nk^dBy?fJmcyofdBph_?bBS(aVz9G=9~a zjroY~H|u47GWKxLPQDloKkUUYuBrU5838)!J%e%S%iO0i@W-Ives?_ZbLFV_L-KQm z&Uc*e-QPfajyU%Gf=n8Shkq51leee50j~Ng4 zNp$ZFSqL!nvxgueI*tWj%Z3x9mqDHfSAG5J1?u<8pnlEvZzJbq4)KrnqX)SUBs>Nl zN&Ul7TR=XsryP6x7483yv6g?0Z-3~7e>-MVsYo7$-#i(7W_hopjthH_F>u)z)Ow=D z*M54rh|=)c6a$|Pw$$?;;yK^JIq+{)gg?Q2PLBRow)5F%{l8KUR|n-_KF46~Ee-lA zx4muwJk*65tM=bLFGG97M?jCTUfBmI^JPOPy9q|LUy+~92Y{dbJLIWyzB~;4+$pG6 z5|Sp9_w#LJLi3I2in$o-nWl|PLsKK zSsqD~+UK%+0q=MAb3V^?v8EP`rz(fg6|m3nX!MI-_KP16hM)JGeS;gdu)n-H&(^1U zpZ`7T&0Grqpz*^_*MUy*RnUjE%f2$^6LM?7uU<(0AK3_Wa+AUqB4Mq4j;w;-Gw(s~ znwJR8hI~R#zz?V&yLb!qi`?GF+4r?y>~k>qPrexB|DU{{zyH3SExv@=_L<52TRMsH zSHx(a$V|`~cr-|7jkCdj*15N{QZ_&uJI^@#icjag7MU|)=X-#>_wh*38F2DoyZ#<_ z)gKDl)m6Xcxco{`&L6A{I$?f~K;xV??h_th+^+pA!}BRkJHnseNk8zP8StxdCr(&x zGuTh|e)J1nf1k@dUWnfhRr)4K)b#n z{snIXe{e3wmu*)=!O916JUtro3%uodH@$&zC+3W6fBuN{KZYKa{`&0K;pJ%89qg#j zUW#_5=|7L5qj{_hek@aip7imin{IdCg){YXI@qnLO)7B zak$0Pessx+l>bAJ*hG-=?z$E92b}K_pV$mL39Sjwe<|&1BhCxb&%h6yNq(N-zTyFA zUvbl;pr7NtqdE?5a}@exhUZokeh<&jW+uTu;9t+Xlk2KkuB+;JeL{O`LHd6n+yVN+tWEas&`*Z;2wTi&$Y>YyAz>#UvgCU38Q%eR4sFW5RffZKh2t<4q^BK*5B>?*fiFmAc| zQ}&C0pJGq4gpEHwmA>cy;LPu@-U%;a@JNJve#w&t*Nx$Y;R$j{FtO+YcNawiLu& z*rz4QaijtMLG#J)evNiTobR(=e<0+abG{cG-5v1Ar;uA&(N{C0@*R*e(Bp#O~R z2MeD|MUJIk3Nc^t4Cx$HO+7Y44jqKQ&G}l^nXhg6PvYM=&SFY9ADuR#9<_Uo4x!EQ58Lk{XUzF~ZoVSF`;^uONT$YB#N zz4oaVqWV3G=W)V3k29C}?{i+CSBo z?TDKSgOnzhB0t%(wtv@>_O4cuOscO_gyg(fZKY$Gh@19_ROfar>9lxdHIoym_W514 zhN+rpts+>lH+OV&w>0-A8WT%f63O27?k;(!p)MW`yhR=LF6ilAQdIZ&_S8fn>h<(> zO-(FLbXWq87;Rn2zMe$m;`W~2zGjP5?;wfvr$-~k9F{iEYhN6VPLRKi1vK`GbQ{~d z+PZ5EaR;lqu`$`*-X-SZ;MEtkLR#iFY;Hq+5omf4Qn`1ccUo#bH6IYn1Sy)*-eFX4 zR1zqwma?hsU5V-4rAqUv4!mP^EhgKMFnZ`}?zHxsTvkk73|18>6_2l()z{VA-kGpU z4l*1pb2ttb7O@;G&hzYm(RW-fe5O{!VSxJyHB-Ci&rkG3qav}oF7XasEtF`XsIxJd zFS14ujnvflw&G1I9^db1v{Rf63v0ck7;d7uwXw6WH?dUgs9ky`tY3bcA9JT`MeLmo zvlS31)b8o4%E}~IL2E)Z*ll&DR4TizGZ2*>?kA|=_I4Kd8g%O7&7&~AExt4t@8|<#uh8<6J4zqFijW{_G`_^5yi+6KrI7m zqNgR%)hmeZORYxZKZp9yMl{~t^tNf;V#?h;bzQBArP1F07&ZIFLHakO`T)7^h=4Z&Vm z4Qrm*(ZMl4SZu~6iQ*DVr%HHRs=rmE>&)oVh{Ab)LZEZaX>Kn`B`O`ev%PD2Vrg%K zi3yAW*7sH}77s1nBJNmAeRG}Icx`QTeB(6XE+ye}V{_lq+UXKl&F|_n;h2fUy1IKh zn>!lYCC+NLWK7=}FYnFT&vcQ_L}zFB;)GOH-)kJQjTIXuj+x)PpwY&|CK@-Th8Rlc z$(U>dP()9`ww9Z5+I0(t_jq$pb7w->nAV&$EpwVvWkf7owwh*3JRhW5;sqnEmY(+B z_Lk<3+08wCt=NtwW{`2cw_9Xjf=!uslpx0V!DWh(lV!*6ZOkAZ_>K1XL3xTrhVKi< z0xxKkQlhWtiIpnjdq3r>l*Uiuk=_d2xRP2Cic%@3>F*!(YZ>PktwJv zHO|;Ke#&U<+dl_s_6lsq68VYp*~5%&c(=4Q*%p+v7W>u;N{TJT(i+YTz{D^%q+Ar+ zfO1i~ge@)_-B6iramljT(ITTjMJ2)YCG5o5j(!!aO`&1Z9NlfL%}9#)7^tv$#bWY0k&f$h5Azn^ zo0`IMWI(4WqqYy%6`?v_KMqoMK~dXuNKwr;5z_9NHd%$3T&JDy=2e8w5@bM3&P>GW zk`r57%|v=yb8pLn&Q6o>tB%i^T-(*s-I{2z>NdY8C-8egpj^^NW;R~1r&dn>=`^{Hx!gC$iYmDNI~_MJ-mj-(@t zUhxOKl93T=jXlj>k_fN?Z?s}>n;&UwpN|=!fJMGh$kB4YJlhXI@@865V-l7!J*-dkEN*W}M9XU=Io6xVXV;8| z4eP=QQ|HnF+_y|eT+p5Bl@w*d{GDt^_QJ(0i@14|y3S;Wk#@V8KbVQbqSp2vQ<_7mzfldeU19}msLp_-YZc!jNkLW?{j?GHXlgx z^JuSWSi#c#P-~HXK;F&*z(R)DKYJ^XEIF$SplX2XC#xA|V?ENrrzJYOdzf~`-{V{R zl9F>RVp7x3#vT@QRW;@nTP=D(ljXIz_0}qv6%>^gw139!=lXv$-xg1xoEb4#S7Wl) z;NG-Y|2B<9aiFQ%eH2ZV5k#Wc^GNP*qu7?d9_hD~n-OVUz;G-?378*}cFl9?rgEc= zjf*===W!PjtS{LrE+0#uVjY1>OIx!x%I6*wRNmUxDc!6PyR|Kmbcz|u^OBF6WhW~H zX=O(U_CRfRs?ZWthxjB})QVQt;YCr58OpnR z=C!w*3XG>hbNnh6Pqm_#^43&vU7(?3j?!fK-5`rS`AUq}$^V#MRWot+)CLh!&?OYW zVnDOHyCwf6e9DSm zj+#~koK>NL6{$qCgqu?(zOFq?HVCNo7BDJ-0iRqNC1PUq;lx|g=@rPAp=HCpEz4`l z-&C1#6|-0EAe83N--x|U++9SdEb40~P)d?2?WXhX@%iaIOo#Z{c}T#hwHxJ2bsC!o zm|h*9A}ddeC32VCe5vjoAZdE^fAzuyPW9~Q&`_7JS*SMD`+rTZu93Yk-F>p^3fEA_p|H9=B@u`$(sP+cvPBItWlJ@;nAt{s^WsF@>?o;h>F(^5MF>lJ z7@R60(lJj~xL1f((V39GTN^L1V8k>GNtZjBn)tXYO)7}<^O*9KfJ~zbzto<5qwp~G{Lez-Vd!&&GE3q+Y4yF^?> zPIiW&tb^BZ#f-3rD<*NDObY`4pNTQp#Aum}hIz@<#)o08SY(0z7m?m=v&&M!u!CEJ&>WCyCX`+G$zi zY`covI8UYxbv}Qhy0?^nCZYsX2+x91kV31v5=#*ASqG?Kb|%J&Ai#-syIBTC_9{=i z^f;x&e8ZH2@_t1D(xf~!)w`Cd#`U)uq5Sw}05T$xP!OD2`S^aA&O5~}7~5G%P!hqi zXe70uz0K}@;_M|@ZYGkL+E{r73r#9sUY=-27zuL?lR=Eqf(qjJ#1$;a3oQsPu0;hH z#8WW_p?0`8>A(`)+L2w$WX2zmq7`xx$gDinG|ME!3?^m*B>CLt+F2m(FRDw`b|!Vy z_P<2!+Jt5>Ev)E+Ib@0IAZQ=D^ePhX2fsk*DUG^(IjRCxucrJ5w#>*cPc z_>{$qvBu+6EYd8(sRnQLVledNvkM?oQI%wT>=r{6TA^6Y-3Q?aT7U>&w!`Mh2oo0I zLm@<#JxnUL)e1|pqIN4x)vSc%9}|luzB8{yqf_c?r%rC1Tsvw1y(Nq2$~M0YWo0BQ z=tk{k>vjoxMeoA1@Fji0Y-2AsQ$SjFiDGG^Rbde~ekT0%LH~F{*$<0Njb^po?DGsx_r;gFnMgJr9}x1v?{)h5hl=e$buNy`bcCMgbCPiu5G zCu=)x5^lw>Rmy8g8H*%bY*}P?^~r8Mq%qkhfATKh%tDTetVN@ZlMQnSJ4P+$1l46p3;*!67vu#F*RyG4c<7iOI(A}WVar6hi5CE7SdIE52tB}6PKE;94;8g5 z6u#El%#p!q{IIX-pzq*|j7v&bRAu3Le*EEP9w_lyx14b?QI#EJ>{3YZJ*mLkts_S)t<<{%WYpSJ+Tr_|q&!`YShWF*}VNn9JiZHLJsL2+%A=EF}m>tyoNb za!L}M3kQCvm60EiuiX!fMkXhWEf^8fHTaA3tObA+ZlF31y#v5#1eRv0o4wn90ih51 z37a{g4P!BDGG`;rn`mXBFkm!ht+{|?jmm|Xso9Jk5tIatGoz82eTlvVCW!gDXTEsC z^YyK?6%^!IdsZF#%(1FdF!FX#P_A4Y5Rzb6W0-oS@woQ{#CbTA(j zatH#<4jMaYmf4HM&LY@o1=O>@1eQI}QQpRl@QMACm@eHytKAaYbU)#|*|?Z_p%fLU zWZVKH9@*$1D~v_8h>!?25jGmH=oYz%mRYwb&?+jnJ1%4mq!d+o&y);Dm&K|ymvj;D zRnjSZ+Y^FnF>@g~P1hM;(3~n9H1!L3ykJOMY#PGRX}Juu{+I2}H*q(jv#(MoiN6jDqOeH1SHqmhqqGwa}Jn5qL4jg0g+l+LLQoYD_YkkquH@jMb z^m*P?4w1@X^CE%fJGH;ILcXqq%#8UKWSbwM3Js2q4~Wc$Ix=MXD==&n`n}Vi3I%p1 zAKWnGD@0F|gFju8d^ntea#6X{6AR_lHD-5b;i$N;L|Qnbtu1A`sb~I|>`r;If1}xM zs4Uh{_scD0eF;Wn|zk!~;yT_K_4F{q0NEE2S z?E^sy0s9UX72=5iJtIX2Q6tj;p2{bPTRq2YQln`XQF1IQ_^LZB25OVkd8uJFfKz2r zHU|U8stc=gizf6Q!E7Seh7Vv z%d2&m(Ns(^3Z2IE67|!CilG<325T<~w@ZBWvt@U&46D?jC|wrv6lk^W`<>UN4;C$x z&R?HM$|+{q4_T{6vhp;l%nVo-_j+gszE>-3)f`WP+*pTDRK4xiF0{(5JIv|sko%w`1_&95f6te_*e#45-I=CxB)psH~T z%t%<0lo<$(?9Bn8pp2oB5>OLp*t?Z#yJQ(75smWN5;M)o_oE<6nTXnMX9bSgD`B|_ zV3nCo8t$?>=JMpM0Y=H3P=myO1$y7pQ#aWEG-m~(HOGQ{PDJT1GPV^@CaCpF3(VZ1pu zD2LvvwKBfdDA&HoBGtU+4s(Iiyy0j>8fRf~;Qz?3oGZj-6@6Xp;y=ti6y(gux*UU) zeZ4Yi8-|-=jYKE(@b)>YZ?l9g;du$wl|qb1BMtf2O3*e-i?-a{CkEpTXfbG4B@oot z{2ygkC90Oq3$oy2wT29SlQ-BstqG$7g6HeMF* z>O{&xqs&{dJ-A`^i!{{#d|X*Nz*MX*H8s(kJkad?u@VIw8<3Wzm{YB=hoYr(*${}o zqW)jnRFtVZ!mkN+IO2){6R=87|2UmAXHv`ekqyfMoN4V{aw%B=R4*rOC9mdtO%6=@ zxaw?oeu?4RYpGCe;xN+_2rvSuvO9Am_w6UC6I;WTpWHCW1}!j~72z6KzTFHZ@+<^? zi_r#u=i?HnqTK36Zcj|LG2Pk(g^9#l?<)W&Bci%mk}yr(rXb!W8O zT-Rc$pw`Y#zg;J%syKDAJC0eOhz0>6uuZQhbL2e3rhG*(kuFjn(R z4OuQfz_`mb#O|JG`Tq7u+WvYH4!*A#&t#VKNLEoLh*g1@-9;!1(&mV~tR)+{mq0e> zvjdpJQH|E6@<-T2;+@S)?N2*ZE=@asnt>$U(@=#FsOTgG2o}A-$)ULacFFmfO~B=K z5~}%zg#cXDU)*e5uQbnVUBU>+-o0wiB-G2~LvAB5hiUWrQS{V;P8q^H`5$swE!yy>K4_Btu%C7EGLMqTM zU2aL2E>g-Rnu=Ur3CpF@WeQr^9JC5krMa6CsH2fT%}7ZVY62|?*-I=N);8-R_{3II~i11jY%4zqAmEDXDW$!-jV)U4w2@0mu3 zS|#6NZfogj9X{2>@+vH=nzL{+MMBDlgL!~X1(#oC>+|qPl`@XnEwU3+vT5AJo25wk zuqJo+&6BH>Ef%iUYn7R#q=58lJ%3Y7wwBZ-O;nQfcze>Ouw`Ag6WKR(OFbe0|IA6M z&QFsi1!}UO?o7G7u{I#nijH2{yk+OiQuK4?%r$1tY_>rLl~Yz8VAo9jr+3?HeM;TKvRy?T};khOloe+=%E}8M? zgke@yie)4ueZ(b0ZyJzRex&e;UEQkRwa|Uq;VAF7qyib7eQ(+tdH>)(_HtplEF6E- zb;%|Bj3XV4GGNTW)!P`BgD4YbbeUN!^8&I~W$)2+YOt`{_J!O$8bmVgtgcmN7wz0u z?GO<;$Q1&zgUwvMYT9MC3Hoa((KPAXfp^R{LjNn(=1L`pt4d%@mP@O9dhUTA)F zynaJs7^-+LD44u~Mjw+nyrg`R?n-Dk+M5)BKnwAT6RPTZ~&<&Bh$qlcYs! z^1n(W{|vkG*IFHy3=W9TqCuIan%$s*riyGGh?z)P6rZs~?6?a{fuAVGDOY^^a*B$O zb|oZtDL2_AD)*N=^UWrGG6;aOzq{Yk`ap?}VyaI{|X!u=RqOogHiTY@z zZh!0kF8i&7=HA{O3CVn$$O_<;+{7rk@%;9$LW%A%L%?IDx{oAa#ZYWwNUMuh)TOu- z#hrLMbIOY}Z(BYwms=qhq2>*?sF`ws3OK%1jwwekguK$)GFIu>fHR(htw{Foy9-()#CnP_Qmp3>1g zzt-*|@|DW?iR3g{(eV0G=1;$6PMA?|i{Y&G6}eA<)yi!s zk`6D_gri)33OY{cyQ)*USP3+&k(v?G|1BB=ln?O~1ML|K-$!dKVlkfCSX?h|)qEMI zkmn2l^IgAOoUvKrq;6IB=HOJIz_iMR4NFAbr$a+^=+aSBcHz;89LJPR9|;pJ&Z=x{ zZ4?J8!8DE_l;}v6eOPRzYZs-y3m}y9KHsEy3iBzsN6oA?o7>cCYdhrsl4&&Gf)S|%-l$#N(AXer zClebRqKyq@m~hBN8YWb?F-$?TeyCNeAD}uda8SgX?wS2BcQ~1oje$$yB*4ixL5$Pf z&Re@Q+1|s&wP5j2hr51iKQEH?y+J2va|3y%tZ;ltVy74qeXuGMqnS5~izY*wQIk$HX4so3+(=s}H76QSYR-prca^}YvfF3P8cwgd zn>f%S>z!l~+wkQuRbgM#4Hfws%f)547D1zOd9eAW6gF@d?w9mSPwg*HN;`c401s}m zrj(pD3I8v9dZnXXW_ac*1#>{tvTp8+;w{NW0y@p9`AJMol8AfD<8r{Tv#|oy$W8h{ z0if*(0yVl1VCu-^2Xgqa6QKf8+u#62)@x$7L|2V`a83hZe?BEzQz$P^bd=ZZ-^d-2w0MUABN_urdkfqZDEpyBQpnTvW911t6^TX*d78LXXKW?W zV@#+NzoMEIqWi1-DbfMl71FgMeLz0Kn>CMua15m06(fNDifp4QYUFcmOS*d&O|dDh zWomHditu1bX>_$@7u%jN2+V`b4#*%y^Z6v-R{-ZX28&Bp7_HDb3>k()DyBUiQ#ZN@ zneGJoereh(eh2=ds1YlENnJzLNJ@F4Ot$R8*io zxkwLEf!LypZ>#lpFw;SbG-Q3N(+T}A<@pQ%)glAHf^RL*Gab0NP7}fuaKOF;F`GvX zirltu#*u}J1CYG7lx05!}pbsvQ5CLihZfdX*qf}H6V)nqb=g-MtyBR?zi z%e4T^tJry0)ayV@r421fjcdyC5s!Q;fZa8KP~`+ZrO^0{GbK55GG3^vpb0+lO4$vajH0fUGFj>l(EuO9ii0E{VnN0}pk>8}xItVN4@x zya@OTWCn!Fi7n(?KFO0ox^!EABs;BK9;JC zl>|p#@hq^Gl7o}iP!n&QUfVEd#;pAsr%#-Qb;uHA3SuZxXvI+io;RHmWl{MMX1nHH zhb5pgEI}Y|Z>7ps@SX|;Vkfk_D`STEuVX-?gMu3;N_M#7nyD4|D0f6|x^Kubu!< zMdt?^yRA&6I%F$|y30as##()a)}IwhAvZrU%ZIEQ2)ouMhjR$(*Yb#k#`@lNspT8x z!^zJQd@$P;BPnT9OYc%?mrKX?!4;GjdlaK2xt0~e7rnN%+CS;;?cYY-W|(Mfkv&B1 zZSq-5`4+5Qgm_cH4;S~&9CFs-OO4gmXvl8!>@@+-JrvDO+m!Kg0OB7JL zKrT#>Zy)t`w{&;d8>D3BTDYmnS6C(My!*>VAU(R|Q+O|0HKR*5kSw;RJ@~Sj0hgo` zybZB{#f78-Ra{B70)*&zENT_kSVYTozx+y2dx0j-5y@;qw);^Cs(K?cImoYIV*-U= z<#uC6flg6{y3+v?v-#J;+s0W8&yBB|XcTugP3>M%kb5D=Etf(odnPyfKiQ~MASw5L z*~`Q7l{>A_?rlFKRCrCTyaUCsjDN@2pp{JF9cXz*Qb0o~1T%~l;2SEGZbReFhHja-ZP%R9K@5)BcGN&@{PD1s6K ztFTJ7vxec?-$pX zA}-@eboYnyS|vMdpo^eNea*q8EP47^YvDpuo{YJX#6c-+1ud{*7NvFBC&*=9zjtrKtC?S9UAm#n*YpUVvGs)gNzF17=&)PEOxZjBDkb0SRCdOo3wq!*{{37`)58}M>!wof5FSyzD7*ZjTJa0(z+JCg&})G`VplZ6+Iv3 zwT2O^Wi}b}E!&@HF5IYtgp}Zt^%mo~`__+cuU~Vv)KFy2tJE9Z=v&qG(V)NF@hbf5 z)i>mWtk&n38P`TFO6RGP^H;C^O(lQv!5e(&bL#3now~Bha95d}ABdsMIjR2|ZM1#v z@D%i>G}3B|y{sDK{Lrf_ICsoy2NTWKgFD7dpBx&T*SBd@*)@M7DF1aB7j!z8iz`!BH^L zMRZOFn=g>@sa)@CIqbYWb8$@_jJ#nT!o@rBC~FF^tPz)FU96fDnszpks^K&^8F?T# zP(Oi(9>|>MOx+#CrNlE@)yw$Ed@wS>CXNiF&UAPjwPB+BY78nmD;*bCBQolCv?>}` z$~H)VY4Otr4{XZbQrw)unwE6VltciOJ%*LmaVC)|vbQQ^ie$Blmj^;iBJpW4#C)}3 zi+oNI(RWH^sUiv2Dzmt02{WT{;CA2|3ud~tj>}xNL1;12Fs_h)n7%l9dwFgPtP`J1 z@fIuQRoUrlp$gWStWYL9H4lheXRt#1kGb|I4mI8Wrm#5* z*?DIUFr9j4p!75@Q>Mx!o^n~VUvjCf2*UH1%h^<)Bhb50kh+h$Sq_z}yX*i8~ONmjC=;S{L9+1+3D4GNR#ul^=*h|1MR(M$M2*fMde zKNDb9nlasa1D)8g)};9mp8MrX+WjD8wsJYYB-p0iy^={Mi9`$WCR=Wr)lmJ0f2V%) zJ5ay=!7WHVF0fR`a;R>;g|d6(aR|WdF^e=OiQNN>2-D%EM9RyyPq2F zO#l0Cx%p$$tJtTlySrC_C|$#O#*AN^yn+s(fc5qhPFJW6=qW4GxX=ugtmZLpiwZY9 zc~o>h8aKzAUFZ;71u#IEH$e>&soy(mqcig%RKNWgDAIfktT`AD=*$$Uwm7P2zJk6U zps`KlS!It5%>GM6YC3^pDVv6Lip#^~KJLw#yptAiH6@eg)S5Qz#H<3j*5}j%1Q;}^ z1z6pvmivlfE%;1Em&0KPwgA{QO!(EdOz<_(DI0Q7O!v+#@4PV5Ndl018e1eZ+5Ga( z>9SX~MT1-*My;%!;|v1~u!)n1KXKwBZo;6Osw?gkd3Z5U z8h@uixgb7)@_jog;?_^TI%7&ptU)Cu#&KrEHGUTAN-BxUa-U^y&8W?IinPJWB8=Mp z*e)I>$N$@{kx?)=->_S9j|Vib_*Qp}xE9vBo(W}d*^d`^vwU@TCL>o0+ctU4$dnk# zvf#Mk##lG0VZ@af{W=U@?NhQE>hg8~dVc2A{%@a&@OC8el5dX__DoZ>QpZ z4rCZ+P#v2+ZsX6+{<;@43h})(P}o3v!n^47AjxeO()*_XK}uL@MKSKoEvW7MQSj9s zyRw|i>?;5`$5^bK z^L}NSwX&v@tw6I?U+mFkK@APV;Ic=Hn`|1KW@ZGFT?rTy^P8vo@fwIS>&K^-SR8<4> zvn}eLpcO&;)b=sm;-8!shVi8i4uA;4Q$~(8a8SOp(GPk%EbO z+|~#-k~mtB^G|BQFv5@w%kHReG%A>w$q=64GH*J)gucDm+K7wp*}k@ycRH@LSSdfomfN)nB}R6dLmISeDH=B2WD)KhEx%T8M$51q8#y$AjG~VK zW>}~eR2?#Ug%!;mFIMRpH6;OFfS?{y8zDpat7CGc*F zm6VWxtynP)m?!jxH>Ew}>A0CTQV5%npvIwuNcI{&vQ#oCKgj%KVm7Q_2nGe4$KVVn zfp_MRmbi&|Qlz<$Y2%76Tt2a>-OCh!_!bR5vmC(}$7%T0o2a4-%d_r5f6c-`D07d$47(5I;|ZSO3~ofh!$HgWBVWs1M`<@vi4~vKT4u#H zc^+-0qG{HAz2u6KJeckG`BG~+g;Lum^2OXBg(5bj1x(?m&G*e5Z4cndi!ZqSX8Y}K z@%i)XE%tA4ojYGeKRIG>dS>bY7vfybVRy9P`?J6=SN~yyni3Q+tTC(ozHrA_FK<3x z;toxdUW&&p?3KLselm^92;gXN8+a`EyZ;T7j1dFTRCKD14uZz-? z4wuN8H4KZfWl6zLj;k14EJe55ea0OZSrX|jcR87JciN?z2`|OkAgsg{Kitb>jnG$0 z%@5m*8FYHdJKRW*xhlRrBV1Wv>sTXL+o^mz2|ug* zEAXN+4D{$e>gvF%%EbDDoAGo;>owkzGw+yRIcF2KTGDyaBC&z1hL`p6w%vdB_0R{!=&c3dkpqZ}uRTAll&~o5W z!S?lb>Q0(s2>CR7pj#JiKdTF=$wBm0ZDo72$mJnG-Su8gWvs8}Qi`|&mbjC>evD&P@AwOQF zE%43CIkF99LJGUroZMD4EkTA^3H`ui23&;AT~0IvxP{*27pYsb%GfioPM=n1vNlA? zyp=n&8cfA24j+mv#gGle)?*d%`Ce3N;;HoPy9aJ{hzV0%dkfc&>x zF7-eQa%EGIwL8K=~9z7pEIsaaYW6l)E!4 zLoT^HD}^avkd?x|sa}+o!lw(%v8c`zlFDQQ$w%9t(*ip^hzZpCZ-RxwtwO&;@%N z=4fzdEJ^%;f54$fJ>xdnstUSgB{)}P)~;;L2Ktz3VGfU)MIif27jN5vczjBp^DT!zkH zlptn81Jm<-*2lmbwdy2Sv*ywL$YIPh;)97&o#a* zdi1>=<<`Vp=QKv68RgY-Zff9UhdwQ%2I&Sqrx~Xb>$Wi4s<CJZZS zmD%!rj4G9GPOzdjOTsRvq-rw| zfxGf6U`*J>QC>}@1C3=V1GgFw$Tox*T>A*efG_?qEwfiUtyrn%9C8`6Z?iHC8Ii1P zmSJ4e?FM3-w~QrFf1_2^sYr5B(py@RM01uhC%pmdOQE%P&m6$0Gj|3 zy_`-lAoJqlwCwF;h>VMmK~ldSL%c#>$oob2aQAj|y28PU?o1wPkKv9z-0!R9mlD(l z_k?fPxFnr%(*2BNNC`542{i$``b{oOj8rfM7!k8TayC2!q9xLs^HXu?5gpe9qwg7( zY$uB#?N}0hwgX7?89#X^&8F~iNEgAFktI>d%g5Q*?)?hSzT>IttIZSN@q`>d^@-Jx z;eDdoP?TS2omWHyxal$soMu}rv9+7i>Ewt2n^4CDMYsK7~z86|4d zHiLI1S$`reU}F=1m67XOrl^0qzG-_~FQ2cU7)U~|cK<;{BHb5h0GO5yq0()ldU+N} zJ|wlaZ*`K}x5}b(W*f4SxMYLa8*Kz{v&Q;;wiX*g2lg1mm2ukzrX4_f*PuA2(=lw< z{u^!0kOy4gl=I_aIoo1Kg8d)mdz^N1G?lZ7rV|3hc@XDlt8mI~=iw$l6F!3s*GlA} z#6e?JnOg_n00o0@pSSnja?1}a*05q|=>hth*i>*(5al@+5VJP*m^Cc`@;Rj&+`YW{ z+^sPQz|}i>$RkE+A>YlGUvF0LpSREJ4x$dOvU%!LMeyIOh+0o7L6s7fDJ#>;@~`#x zDuFz75jWeD!cC9yEgp*OPYduR{Bi;TOzSf?@T@ZFX>hHInRW2&6DT#8v3A{ zuJT~GB@XuN4m#F=c$!t#tY88V24OtEmB%Dp;qlBR=GL?A^QHjCCPgM^jp>i4yJEkw zKJn>!`*B_NXFQ#&07$fBo1g+1wl4#sSK%TUKG9T=$k?6bk?w0LMpJC`jJFELO&9Q6 z1J7_R;5Dw<+AIkkE%M@FUS%9;!Oo=NsYOkEna49_nf~?Mt-oK){$UmTxq84zmj^#$ zP5ItH)`?BD&x`eAzJjnp@2O#4PtLml#;rwQa8Gv^tM&E^PBiCX#rnjdaSd95N}R9w zX)1@ywZlgqp*R}@YMgX=Y?V+YLR=Z@jLL)&gS|T9NsJj0s1JNcGDurtQ(v1G{8(Bu zuGVK5Jd)TUuG(XWV^4!K}9D1fztBskGr=Cx@g->DmcvwBQ6wZ6<|GzwWcEW*9>HVn*42jh+-d0kbR=w zSpCfq)?&Ao;44(4SlfkdwMrms`y@%)9%Y>m{B^OZ*t#^$$0rJ|*g7s2%Z2csHxU`# zbOoNIRfS~ERTXk>6+zjrC~!7{lT~T1AsnG$2UOw7Ls+HGlnt5hx_>U$cnLYL9Pu1- z_UE5&UeUWmAt7YVZ^&fftbvrR$pO{yIX~o}3lgziTkC8A+YzBJyp1Is-Wto&&I#&j zmDua|A|$#&l<%Mmx^bPi4a$;glvTE!_fd$e71$F;_FrGBka>OB1=`Vrj3jKfc5^bX z8wmmHFwR9az_<}@yEkC1lk5j>do?DRy!V=y#V%o4s9Hq%)L4`VJ|JHMPhzDu0cKlS^=bF8ofX=M)oP6c3(EyCcKp}KQux{- zs@RzPhcvXYUAqk`BPe%?ceCyMz8N%%IrW1L*C6`UaWktS;28Zr`RMSM=UHhv(lul6 z8Zwh-1yP-vjYxlNLAh|Y2`FCIY$3FuU6g7~x>Z30Gm$q{s>C$5JNJXO{ngqt=0UU4 z0u4KX9)Kd=#f9om5U>)5iS1#87*dBhzqs(GL^N7!^0FAglm=F0;e8$Mdkv|qZU@y8 z!{k7;(iZWCfu95X@q57^al|CseZMar7h75dsZbE#!3)c1@=uGqyKZ@Yna3?VR_B*= zU@Z@!f>5yvTsrdkVKnat{*G?-tV|0zn()})E$*gA1G6aBivuFpStZI&_h*sz-;8-6P)#I*N3aC$ujS>%hMRZKQFLf_hq$S zZ0`$$vdn(?!qoD{xD7GUEjVw5(l-iv;Hb3?cVtmoxh&I?y^%+52d!`wzFmWQvtNj} z+m3k};@B=s`b2Fx&pNgqu(Biqm-S(VeqC?^G6+^7*l=h~y0WqFVxe&Hu)cN1w*LES zhWChj?6b22mIcy(!?Nzyv;Q=#?1;N+z8$37{yE9F#}TtutC_Foc3~(qHVJOOcao!> z&Y|p(LW5Mb>#|GlgHpz_7CwQ3Vf?;We#M!>yeyJCR0VO%;eOrv>{~I1NaCCUpx_V& zv|Z2U+g9Ii!%5H)cYIN5SL@BP3WJ#QYj;;$u;g)Hfz=`)w}YbK^Q|BuC^VrUtC*RM zE54#kRmme4&z%6*@QVwzYV6q&kL_}@t!Mpi5A}=t_2cJTJWGtN^GY-!HE`|s;&@P{$;j;#_a>E);ud_C?hKtQY$bri{LB`^qV_Q zIGa6GDmb@h@zyLvY`Yhv4M}WFbWQia9o^B*Rq?Na?AJ z(`ecRnnm0$f*VpvhAH8iI{C*NyjEIVFcPPTVeuKa24iFn>J=nrJ;IssY7tHMO4({Q zeCq?t9UhJkDV{Zyb^_iL^6cNUH3I5wb#>P^cOPK4IOUwXq#JVzh%lAcnq4h1fpyt0N%`jlPPzyfm^Y)`k-Y{qFhUq1!GBth$Y#1{ka2;`xD2 zA8e4LYV&FG97=D4FuiMt_-~({&iPEjTci$uDY49Ei2QfD{H!`%ltB-WCv-3BLr+*v za<9X3e*s>&5}q&SwII6121p%DCQrb2)jf5yLU%Smo2MF(C=r<0E7wKf`6+no0m>nj zER0^GRn9*a#I-0DXsHR=Ie}3Rif8@`XayGANPIYiI4HtO_LfxuIeHu>*}!VwA=PBP zC@I%eGs@^)O`JWbozA}FWwG~*2T;R3?gcqmjaMB`xZsQ;F;#%$siee|B62;Vlpsjp zPml#(4i+UxF^Bo>@~&Q0HnPmXE!-2GQmU#<`=A*b)rupmf!aJ(p+w6R2!HK-rC#fwk13SzjYSJrY0 z`WL_1EjK*fE1#|74o{~YEWUGWC2bemk|SY7gd0ypASE%mVdnZyBhBOJ(#umJp3-s#0F-CY+JeScuec zF09y`HUcIKIK67Ly-axeK(bY-?$X*His7kEyK=+JutN&J{=V6Ej}=I>PQ(Xn>Ad4J6gTCZ?H(mzW@)80TS2S*-8K=m4GzJhcwSD_}TxH0Mr>NJ>LWv^CbyEPTVh@n<3Ii8o7K>D235)WQAtTH#} zh3K|+LfmTgI?sx5+y-Ok&dGRfSniiR0{DS8PhFfKd}?y_&!kYnS~@RfT&sC<0bX_Y zbV8P|lb`D4VSCQTtCh_X2%7;MMzR8suWZ(fvP%tx8Zv_F8g^3HsL)q)X5h`O>EtP7 zSBk2j;mT7Uw6K;{1&-Ip3cz+PsQ-BBYNRvK0u39^C4qY$zTbLrzHWI_Di1F+sLB>u zzFKbgEe|OR9cqWRhr?r6t*X>qsVw%!W2@fh&hsTc!Ed)#X>b^0y?d0$SFLD*B|21< zO=HaSCcSO|9TA2$nR{qA5JnvUDDc7}Bq{oN;N;Ll0nCp*P5NSKh^SkTlb3WI!|mzW zyFY%pefRP7fBwQl+}t?Gy19IPg5m2+xBltNErFTK`A)mfizRNa<3~yhm%|_51i<6( zhA$#2Uk#53`X&=x81?sacl!zXjpsk}L+T%}@pg{Oh>I9^xQ)GtbKqs{B|Q2r_TakY zs6ylZ@e(v$A@-+4xM?G!<%725HxT#9|`ObKf!5&fHPvYt>3c8oPU;Zb9+Y@vq!9DHcFcKl{hzOWQKUT$Zz>j3W;< zajWtWPDLu9nH$(VGwLQaSwb;IX!62ZY6gIeW7*+uFT0Cm@hiia1`VClaR{MoCoGVv z(Hfg2m|cLgh1mr+Tj*B8^vaekbT!=?mMwABk`g6*ykKT4M<6W}c0tTk#{=j%?tvfi zQl>|rta{m^%z~IL$}E7{qRmsXHfD>ktxfj;VIcua#z9kWo=PR%-zrqg)~uHY^;P_0 zdD=Xw`k8XWbEd@boGCFAn#@f(o+{6gDiGLT4AOb^LXgMOhVc^>O8&Ih5Jt*}n{c_| zSrCs!b_nH~!2*^dh{uA(NtcW2rLk<}N`ty80MFLWl+#4;arLcJtsSvnFVED^v^?c7 zL{u_Rw)ePsg}#~13ncxh3Y4|9FgefT%a~jqwENqwmSuZftyI;`NRCUV?cD;IQXUdH z63>#gVS1*J^njzznG#BT$d{Np89q#%OiA~5_Oz?lakZGzdVu0AQZ4TOMjex>6?LUT0fw@tyL^p80n-3BeXFKdHVO)5OsP%Xo^PTBrzB7%?cg9aanb`{pWXXJI{F(2JKl5GMB)rfwpaJ)%FZ;A*(lYrnrd6y5 zMf!`GXnW0~q)S%|MNF+!3yqU6V%dC=zS*ZhGY5iMQTNco(ga~%tY=OwC0oK$XG@Gl zN(N_u&Djg~Biy}VfwW`V* zNs*hj2^Gmm8Q9Ue`+}Sm$Vk=-q%i`kl?o(Vv6rR-8OdFNjAS>~{mgqcb^V)#<#zS`yb2rjw<>JZ=c=$#zpKJVeXk13daxTq9x}D-1`NyHfMIzX zFf3;ShUII(6yz$kZi+1fS&%UUS&%dXS&%maS&%vdX>411N-hvF23-a)R$K-!rdtLG z`f;8I4j5_}(B*6lgc)6OS3%G{`v9_3eE?ayK7cG`A3$!rK7ibI!F3CPnAsARD_g>X zWJ{RyYzecPEfGJ9$H8zAHF6N-W-|p+Be+D{i$is?MN%ud7&NR|EM^Uwc*7W8cI4wu z&;yRO+XIeu-2;v_-vf@@p$8nxODTuuG_F?@`cLLN%ai%e{Aa#1znSmMU*5BIYVz#Ej*On74cpvzIS2c6^Tmo55Zaj&rdcrv)sNL@uf(Su=eAS!z2Qt&0^fIz<{jmbZI?NsF3mTvXz;e|9SSvLE8Brm*y6Vr9mpOQ@EUxDd zg_LTi5G=oJMDZLwy7t{8LTMX}+olc17S;x1&9=cMLREW`Sa9vp}(=S)f?TEKn?A7ATg^46ua-Uu7djz*x#6U@U17 zFqXCm7)x9PjHQO>FxO$1OgM#z#qfIVSZ+Mcj1dQVuR2i3W36Y>^t;$X`knc))1dG^2+M-F z(Cn4s7KE|nZtAiCjH3p?eAfV2fEs}CkU6>^@=yT~9x4FBLj?f2k^1RHPdWRUq1gvT zaX+Bb&kSvs`0TbzTCob@C?bI=zky{)7s>-3%Cv(LO*4~=jU>Pgeg@2{Ydrp3N*? z?J-RftpYK8A)k@8SSaIqt;|7?tb;HX^rzsx-JpM!3b|(d0%cIMRLC{$F1kODAJi=u zb8W7bNg-y1l?qe3B@6-e3=m`TiVgEj1D)%lfPQLAmS|AIb@DmNppz@$8a{doutmKx zDC2s$y9|PMsR1wszfK-tXUc`LxLz)2D6XG_VLa0F{AK$A_oYIvDNBz}N%{|yE)`16 z;Al)LcX%u&DChdVwbX_20pnE&#(}B(yyI7F%41jqhVei}?(9v#DXXDaYUGgZH_Jih z+zVrg$I=WO<4d1I2$WJT=GvKkDW;zJ&hTL?f#0WgNRJw-Ns|9*h4KR9EzmyV~_m@NtFWPCT< zfUTJ+m-^=QwBYXYKnUxtvk;7fFC`Y;*;}~+43%lv`m=2`LTqR%(&3 zwUz=*0Z%4hPpmhgn1Kv%X0raFcFR>#%5}-h6f>uok1B-V$XqvS%|cLA02qS_afsD~ zO~z0IU<}nWaEzh~p}9zBLz;!OlsDJU!Gm*9QDnA(&?7LeT(2rJU>Am7>s% zr+%pioZv&>#b!Wuiyb0MG@C09xGAk$5r)RPl>#A|a1{3QsxD3n!o1`zjSN&<17Hlw z{FxQ^rh0&;2^HhA<7Fz9LX`z#Ozz-uT0dW8YR&no%RC61xpnG!kdSsJ{4qGpGwvCH zJRcdrJU1CY!Kfbn&ZwkRn$*qU7e*9@3=HE@4QD!HVcDn;AY-%}s;NZT5|PG??pcUH zsaXid;qQ+Mj6D4uP)v&ha%r)rl~F0zk$1%`>>M zaxvEyQ*ig4r43yJ$YIEc$U;PTGGL5NB3Jj4Y0&(IGOp)t&hg`WDoYE9G12VLBk_-F z2duP!9Hxw%tPVnuDdT$91r}fevns%JfB(AJp!IXhlcf@-4aX5*?imPPDd+lT`yhC4 zAV5$D;L8nzhC|-m^C!$Z^!u_NVYv)DWXp0Xb{Z?C5zTjQrV((46nf2B0V?660GDu7 zfMeclr$!oo%2KJ&a8fEZ43vtu%hZ;(OO8l13uwSA1By-*T}-43Gq%57R#s=vm)i#* z#$laJ_h=rm)O2lmmtJOTt!2CP-8!@Uv|Z-ndSMy9HF#*zpiBx=sRSgs#zwPV07-E{ zelxCT)&RFl;90G)pqIX#=QSYfIl1$rsBiC*Ntts+r8ac{Dc2&NHLDZ>q)J9+sl%Vs z3aT)r25gp8+&Q+(>N{IOn^vdPuB|!X<-CPP}_D)851axI)^b;lCF`%UaHYY zO`7LaQ*o(%@XRPniZlAc=oq8S*phkjY0;4qpnV(<-y1gMD%+DRKN%X%L$-zLrOma~H*T`4GgGf%e# z33>BAAu@a_w{OA4_a zBP9`V70TR~t6Z&!D>r1B<)@3)viokC3Sey@4hPnRHPM}cyTXPQ-A9^fEQ7QSXfVEi zccYwvELPOG?G115$`zG?pUZ#aMOW4iZEvZJ1Cqg=9!D z>)9B_(iif>@o#U>u1}`?Ea%Oi{0j)oXY&9JfBhK=w;w)z`1)aewr~)W$=kcTtJU-J z4qjJ%e}f&Rci*?2dG3=DOeWa(%zXd(`hM|wd$syc06Zn&T)~SkpC9qK-KXy_CTI7a z5&wCb|9ljDzF7QovU+%aTn0ovlAi-;NAgqt^IiUPr#~M-pe)tb(8<47>$|hd`|B6C zPNLUWt8M1<&p>msc)IV_5&Wy{*VkxW%FKy?CsS&#f1a>Mia<}^WaUPBN!@vSwz&Ll z?l?J_M8BuuZ~G7tBj9I;tO1=GyE^A0AiTM@|C+q~(rtfV&1Vl6vpJ3Bm-Fje`VUaA zH}lQncClJq-rp~-Z!iDCch=10je3(6U2tht>5V(-UMC_;MCBCBm(M0Gi|9)Pqzu!JD7u#F-w8iY>@$HFt`sr!@u)-oRcsxSocjq6k zuNg4_aD)nfsA!6!lc#4_a{IsV0XLVo_>5<99{gj|m-8#?deb+i)R+9Re2c!eoa2oy z3pBa9etRpQVCfItd`k~JUEV{Pmwyo&JaQ&PJQ`OQR+FnswO(!(Uv6hli(9Pl+&w@V zeEdMT?pK@b`|aHvPH>IKV_0JRZ8R50iQoUJyrtKn`bsRwhSW z-9Ab-r0UdE?H-~iU<8shlo*6WOd{I89E9QcBkhM%u;vnNWQ%kNmdQ&fQ==GCdHSC_sS6@55u>hsc1&TRIF?8XmbBtr2f&wwnmaLG@@1DyrgLpWJ7qGIy6aA#}G6V z*Uc1~K?rDc@;O>Vs!pL+RE15NL;td%ItYchP1u%xD?N{)984MKn_wwF#9j-4yh=GU zZ@7g-2uAc-(F)mnm)Au;bTb~0*&b4l8#2vP9D;&mrlrm2Pu6Kt>^UI7I+EBVN+0#f znnQ3+$!`_YNC#ocay0}4`>u$WA@xo4h?vcc<2D6&5E2Y&PzaE~rc@sC5F8v1Y@Sq> z^N`v+6fg&A7WNQ4Mx7kO+Dz{u^`|loF!jCb;(YXRh%(vlLlAk1u$0nmwv?kkq&~&N z(zd(D!!lEWaw1fN_@PmOTiSX8P7)l1LV6we&_^@|VQ|fC&25J$RHPY+!1z|k5^yp^ z7&G?-3g%%*)hR`PLASGwG6ak1`e0y8ZHm6MfpVuau^bLk92VcR@na>Y%Y5vLULOsJ>&)`wgk?J*+qpZf>j=@GSy^5XmSGt5b+L zCZeO7gD^S27M%(mgv4pr9&%+~XsviRH10UTXA1wNVGJHqZ z5G1?@!~N3S05+(y3(d$?jac?`%_2(R{LbIIFGG0n^WN;$YeP`^n1M3G=EGdS>w3Yx zb3@4ct{0n#+<-R(mmgN`N)IJk4Z`5e9h1H2?!ZBKTnF}n%r2G^w(<~8yo;7tneTEO zhk!%=HD4n+1c4uHe2>KdKPNXZ1dm@U@_2^S_nsqJEAO8m;F<6ZJA?`Ed2GZrV42tl z*LGMKMA|uHcT4M#>V9f#iH{vpTwFd9LAt8Mh=vH`dj--@m)qf8(<7jm>AKr+?$&^| zq%ANB4P9&O)+w;ixRs7ENDRx@*?pg+P|#nSJp`NC zKS50Ev5kw`jl%(&9dcieWE;Af**i!?YV>T%@fa*=YV#m05)DB~@X9KOcQB4j67~=r z6XAmf$$`Q8k;Dv=TqRlJnUfZSco7dN812E1Aqb3f$+0vDjYyU~=Q0G388k&VbZ{5v zZ3fksk;~UV9~3wo%c_9Z20CQ!kkSyQxMN}tLC5QBN2LbgH1RayG(ICd05%AjaqWBs zMB(Jw5PZkNT%Yq1JE1Kf*BFAro6JThMHDwXudU9lKnm_5HWw6zd`k~xMpM85_h z61g%5n8siU+k7xDGKvQ}9*X0LB6EEwgcx3UvT%rK3Bpj{!|j?Tk%M#Fgdul3)Wn#4aZ8;3$445%OU)E zOgYYmVB*+!yBuLm9N9%T)C{6b-b~jYW=6aWN?Fcy4Hn$iE;dBbO{>=rZ*C5nG}>HS z4M%GP-&-spcP8a{8`7Fbv=gX>4Lv8J-w9pF-%xZM5sIL@@ud*$#*y9DBlFE{JPkgy zV0Hy?$+=%42W^P%4XV=ZW+PBxhQB*k5^6xeU9u$1UNdCd0~Uz26Be_1&K_)y zQz~mLgU}w?APq~LizO@3uvtjs8v_U7k=QcE!zqlLL5R#eR^AqL*DVf0;nqh%-rkcs zJh#lR(<(HB_;8}w{V9IZVh9S)gJ~FgeQ*#0*S?mAA+`O6w6zO4O+N^SbUa=Z4d1gG zg2m@@5+}n{;F3%Rul1W{SU8Pc65xbBt>uPqat@JSaq{$ZeoB}|cxKPZ4oIYTK^&X2 zGb$0!>>We3!}HBdU3lTqb;17dy2ks1=P>u>{BlrJN{0XkJ7JMj0`MXcN%$o4AbtcB zw7DltkZe~>W{-!g!<~}yJ1KwsK14o)i>zf|xPWMPTxMw-GO|nKp>l{^rat7_sXhc5 zSKnk@25rP1*5*z{=IBEevWWoMcEkXIMq`i_WJs}dMyrqS z_k{{_?TpGyh*&`2Gbby@@8ueNXte$0?HYV6>OS~0nGBHEo-G;dKnx0qxGM?>G#-VU zn5p9m5NkUd;y?VvY!6r<&MsKIV^mnk$BxQSkVym@X@AH<`Nnc)w#m>`inB4k-yjM_ z+yPN2-WWvL7L@p7cqX?W+LWGlL>7uT7MWl4(VQ)o3qd%j|H=3gw&BGts3H-^p%ULB z>5KM#zV+(=243hP0djz4kZxq!g^prpOk++txVhUdNL(wKPVX`Wkcswf(5%{|W*9!4FT+JECR6)AUM5(UiqB(5Eb~L-1@4)O7KJZt|%bI zcod=t*^{8|;#X}y-VB=~%d!=$B0w=b#1T9&j=kW4a(2WcqdDX<9dLBwJVe?R1*92` z!Y|)Yhaa{8;+Jnm*9Ggt>+&8GUkYm1LjS$k-rucf|DomXHU9lLq}v*FXo!8HgJk=o7dXb&e~6$J9ob*r7I>VN7j5X}dHh1#wR1^I|*B zxjT=yKV*<=56JvZkR2yXCmPbq28kNG#v_4PJ8)u7V8Gt&*&vC+>Gbu8xwa(nL9RVw zgMj7^hp!i3=TAXptUz#K(q&3;_G319v3ZLj61t$#-YIL?2Ijtb38V4t}u|)d)Og% zVK4@5d(ynN%f67KZSHwBv$4>zfBBY?Vih^08O#u=bU388Ilzd{veW5kg9c3OgvPHCI5b0qG1WB}gQ~mK9;}>> zIpXbBwnx@?U7HMP;KqQ|HAXn9t_vpy>CDlUp?gqWr*E)rhTReMQF&y2nfXI*OnvX3 z=fmdiF0pS!W#jiS#(k1ZTL{pt2hle%scc2!4UNwy^ytd)yxlyW5&Xz#u*)TB#*_W) zd4YiKb*w%Cq4Mo(W>#~ zdg!G?lBF)kx$V$2W`1DesN^R55jv76Ho-K+ZJ5{xK9=_$k!n5q0wjfF@F5xT9~Of? zC^JZy5RE=2GYE}zp78b~^Q7G%JTe?)EN}=G;|SP(N81R-;PIy!jEyK9!+WEaVs!0a zx+QIw+;sm88Xb%~Gqq1sB7Wfb{3f?E_97_PW%of(b6%V#4A>_qbT{#e8{=3Qtf>@NT$& zC5zsMvu~?;6>-d&ZskH>*=Tf4BPb{$ceWc^$Cu%GVSR2L6q4 zBYP+Rk$M#_57UpUH;yazrcI_MuY@TXsO5fttr&Nth>8>oc@0lr3${XhdGxc_I1p!{ z+BB#Y)7od3M@Kd6O}yNoz-xm!c<~u>6^@joacLVTH3w>4Z`X^j9j@lv;K9htqZa|A zy0D4S8j;ooLx@CcIU56 z9MfsYmu+>hb{w>hWz7OKF;9*Kv#kIIUj-O#K@-!|=uRb$nt{=*FCT}tS%7QPF&yLG zgJdFd6!M;eG_g-iAJA2kKA;Pm7_DAx(gp@JF5|DsSUG3T@BThg#GK zsCtcqXyTrjLB`d9`GrG^D{11gzDC&`e(9FmFn9;@Y2g0C;x_gd(ploS8zQV>aT}{~|1PO)V^8`< zmJtIqF;5I;d-4_Uytyb7W-OnZSnTi=8z!_F;)?;AnC0`39=F=7UQH27XO~g$ zDT6ktSy@8Y$ICmhEGbA6yPW_D-{z1=Gyzg&O?*?^#{ZtJv39(5lfbBDgW@JuJC56U z%GigQ`1d%XULOOr zG28Zw-sp(<#RNtzJU6l0QP@^XCW*G7iRs7${H{agU+_2%CjnLHCe5iC6I9;SHw1og zCE-*&DsSSQn5f#l`k~j~5ImXhZ9HaTK`!3j9Um=f`JyH^+kvBEM3^dXvZGR6_e*jB2N?Z+{SHZ4lbUywwqwK0k;6OF&iHiT2V4H z3yYgr?MO*o$tCGVBc&?qjgKaXoqfk7!l%lb_-tEwFXXd$qnIZJX=1kv=e{a@c(`QY zi<;Q1M@@D~B99uCH}P67{oE_z(igR{8UJi!{maNdo9}HrQ8b#4ekKNOV=|+kO8knJ zyIe^VmtF3%A%Ysu(N)6nGXvAaZ~IGtH?nV4*2Whtt#e&)8ZHV4oVIbAQ7L$KCE`() z^~OihxqF2r!l%lb_@;KVbUjjYV8Zf<-c_ zhZIH|)q`W-6)ABV-$@xD4Ga5o8rF+A4GY^y$-_f@yYA=qHh@+wnIy$c#5@_I;~kg3 zFX)MGou$!pRi05G3u#vr5N`(*yw(dr!o@AR9zqZOacNUOj24{56?a8Tz8c)-Z>!WB zS~-X|*MuHTlB*2PRZNhB=!YIk$yMG5dfGZ8n{-n?KSt37oI2{v!?YzJ5@fRnCIS2h zB*C#66ve*XWaj9}hyUJG2%~~Rd=>ZtWhef7KU9#~R~e0pH`4-3;33Ga;KCGCRO1yL z05$n#B7rRg_4i05u!aK=;gubz>pDoR(o;WO(o_tigJN_gG^LvJ>5_ivpaNZK2XvfO z2Vt{Yn`kt(f0G4i^2-Duezx}B2tXkRBfvXQtRmkxlG%p}-gnr%Wm2rHA47`Oc5qTW z;ei5ea+>wA%IgG0O`BqbP*YF~onSYF(8Jyk+BiyO7C`}YC9002;?kzzj242&759M_ z;_n+REh0f|g_cG$zc!%9odQr>B}61t$$^N33OWE0T5k;1rG{v=#G_PY0orOJ1$l| zfUf0m*R!^zAOfK!9e_ZjCdVF>q(YLB642t2>>fpT%Ic1g0ch%mA}v z$gW5DG$yrL6BYJD3hhSqpx0fH8k;aq(Jb#XViAqU>t_aGf`F+6g7FZvxcBnXcR$FKZFoIsI?P98kk@MD3N0&Tr33W&7>iX+-YfgpC5D04-u-WM!_HN|B@5Vwc{$)RdoD}wbS1f>)) z?2C|Htdky# z396|OCIf|(5TGs9LH-g{KQd5J3BjJo*vVE(1_V^sPs^JUFzT$L_JcaBoSjkIJuYA` z-TqiRp%P96niVxk;kmj@1)vAvwXfn;1)Z8f?MXc{= zqOm3}(L05&DxFoCcv{{MHFTO*4ec;3?}r+~`>HCs%W`eY`=Lh1JQV6cA(pF>LTq`H zYnz$dDn({T+XR7diR z_z0>g1*1oo%2nPM`ansZw|$^DlX^R**f1TagYkD@1~q4VLn-0>77jw$O<2~{vt7Ei zoSKw*o$wJ9^+U*-4KDfK0ioG;HG-K0d=&zyf;M;IcG@10K~%*6+F~qcW~OYl4NPiO zwqM%<5*nrck!bkD4tjTT9tRez^SR>#Jx%@?G5Fg%VqQc+-*AW_xk|oppPL*qBF*7w zL?+4EA3p*nV0b0A|kB(xokSSY%W;=ZQ~P@4i>RghE; zV}+!+A6AS>@zw27xXZ=Ab~KzZ%3$)5R3~d*bPsoOQ?QE0X(8wB)8hQ`>46UxsG4#E zMU$+uhp2KNq8u67dUA5oCS`fSTx8ufZz-y6XX}Dr+O7fjfQ_K-*DL+z%!DN%c%Xgfc8{qU3QFKCAL@fF5US zkWE^=;)_T{zbc?(Syu#O!-D~Bd=$$>mEcj-=4e#d#z-?Oq0X-k=ozg0+{U7;lpj9O zp`YnYedOaT>D*HUdLu6_Z}P|86P^PbI(U2Q5qFRgQ3RFS?yeVKmLKV@5`BtQT7!ztKemxkww29|*2#-piKIO{95<~tDq9lP&` z0MBsq5{%_JLaBKkjgpr-3K|Ad<@umnH_>Wom(OWa!)YF^UUxuC4(VjJoa26&`F!=f z+H6E>udKFQOU>yFNbG`RX4$Cb6|8)DmAM_kr6}_8nIt*D4 z9sV}Y2C7aG0Un>@^}ROK|647VO{mGyFP(j(hi0MQ8cfpZEwNp``1R~^-l~AUBo#i) z9y{3QH!}NHEn3PkWIA)M5wk+rp>l5TRS7G<#R+`9;JkiX;H5}~iWH2GEd)PbKY!ZH z*Naabvbw%@TY5e6?DBHnsyLneu^e0Vg{z1~Ki;Xm+C23lI#oo6*3C)!&h=ungW8j_ z9oKb$nvoynRk0V`(}~j+-l_hE*I{o~PmB54^u^7uAFpq2Z_aM7&aVHsIJ>?1pUbmG zV^6)}FP}d>Eato7dR*{w@gR67&XxUw_{pN(` zoXhUvQ;YJOk4sYvanG`wZ##^8Z%+F0J)OAPe3&jp&~lRW)U~07*Kd}%b4pQPG;1GY z96Li_STDQn#oH4ZVs7r2Z*FVusIIPd^`_36DEcX`iKeZ+Hj3QPj#|^>x(fT~pn;>e z5*m1VY2ob0jP?!iGOn3gtk6PC40eIK8D3LwF*B3{ufza zY*eJ4v&H2%Zd*G!<hiS9yJWi%-W7-DY#XJ-eRqhqIq=FK!nm6%-X5k=y0! zuDkt&&UJlqd-WSClR$^!Vsa!r+&(WC5dO>&j2n59?KCmesi+yPVoaMfLzY7_z~TLI z_jGYe-^}!u=CCId1T4ph8AxB)%bdeX82t5#d+5Gbr68j{A_9bymo}(8Th7Y%$78x2MH%-OA_Mnc6S&~{`95WZdUWJOUz=4fuH#*dg9DS^fWC(1R8$yp?u^a zd_Q;gANx5E!b&V7Fg*gcH@Q9S(D-b0=XS*|*MXTYGT;}tXJ?a_u;4jIj%>47N4!LV zGuW|cUvtM;Y_TY{_`mMKW=ZT3O?3S2!sZ|-3l^RKtF=YPmS9I=eC-DO;J8RU@d`35|r(Xc3X ziKaYqO-X*0n^A~|=2=y4&d`r;uV0(C9)PKA+dW$2vwoYo|3xi7fIFh7+*q}@HwCNJ>dNw>V?WxFf5 zH!_|#+!HTmPp%`rrmlI8sN1>a3QP+{k5J{6sLA_!Y4fo|5Kthghmx(W<5b@OMBSr5a-8wiLS>3fsawo9-LP*+VKjf>MD1E}IU znUZf|u=-^4ZwN`NotyjFS37yGb&ZMX)!bk01E$r!j1@=I^ZT$9M(h|!;Uut7tv`DY zQ4!57Cu`yCx~*B(1vk?-kp8aY`G!1uNLnCu(1>z*zrYk^A$nv`Gc{>|eu#&EKM+Jt zy$l$-_vr+bYawkJQ84|F!F*I`m%J}94aOosyhzP07fn`F<>}kIyN^pOiTI$PLTY+~ zNNLGi@vDbcI7Ied>E9;QZZ4vmA=&ecB@v0z$1DI*@9M+Ums@N)<3Rb-YQ2R8Zx*X1 zX|jhuvhJ@BXxsgW(@5s=pJWQNu|D~{+-P7MYog`;M&;)P|9L)rAS3C7Iw(am*%&UJ-OZXF5>xe;~WQM1g2#piKI#&vQZ&wI2YSMCXSK4ctc#6v6m zSym;8Q#hTCuMMqQd1;-A_7=aq-`>q{=1*#MsM^nn-2HO$>ID}6^Q%|Zt@)k2BU$A# zA1<+7#H(I}ZE?5;_+MxKM|i;qjpVjixx%V784%HYQ})=E(+#l0DH zlFOTqmr#gdO{NwFZc6)uSuAyqCfOaQ1QFW1*wDLUXza7*wcrEbAbTbce5?|93J@w0 zC=U_k6yJ1B411cBRpWbTAT;x8&qI!)ZryTK_(D+XoPe(i$^3I zRm~FH?WU7N`y1da?EDloaB5d>-J8m26R=c9DPde@x=J{zmCODt*Q1Eu&4-gUb=pWf zzr!-_!mM*tp(9<@5Wl2wY<(u#1U10O^lG5m(ra*&H`FDZ&~m4g_`qs4R>l&mzn^FG zj#F>im2{F_9r@*&&Km-+Az)(EYNd&!jGTQ#?#|ibuS>Hs<~EMb$@t!1<2}RW7uu&h z|9$c1j5eNR$BI^gYCBUXcY9Mkmr!e@k6s*-cGWVC2f6vP3dJ6(rtqAnsm0`kQ14Ns z%`sXh51f1(o)#z^CMD} zbtb;QUgfI$Jd(gv2&5MSgr_Ld@{#n?R7@D|&HZY#rHLnW;^NS;1YUkzdNi#Y6-Km( zc4edNiEC zbjrF=XX6|hbx2hek5orW$DQv}I#G0_cqBC%TG5K?4lEe0I$-M6wiB7DxKK`ExS0LJ z**p~#*SqyvxGp5d!QK(uua z8%6=TtYCy~hGg{(6nU~50?j{`tPEXNTAcYaCp<%6Ywri7!X1c7|5Lht3ggCLH~4fe^hsOLater?S_PQ^0yNSN9=}$6H6HpQ?mdgo6w9N ze4NtJh$Z6EJrHmzi-#vBu#>uIZw8Jcz7!b7uf_>hSPU{!E;Bks7bsg5YKO*DBe=a1 zwQ3!3yYmS17X{OCZ=vTzRkIux)q{+baw20P2sH239xjJLj%m>$kjoGN&he+uh36yq z7ZTwAa3mzu1OCR%?<2Su)ZqS5sKGTNh}y;byKudK)XrisAJ{sjC=cwvkL^y*VmvBL z&-O|}0uboly#f&~vAEA;We@_e8;5DX1g6gCI0EX;F%>N)#Umv$1joJrGQx;uI)yf} z(H}IZ!hHL6q&y~&V80~q((D(#ghQrxV=u7%u*?V*nI$0i{?7r4pyA1x97qxq4ynfO z_3Y4al^H^+*$+iXCXXOw)Mi!*VPz`P56ecHvRUd-G7WfLYJ>{i5P;?~K?732zbuyY z5^6X(&OwZo(hUnaq=zO8^Z%h_kHmaH)03sc(xcv>8{Wo-Je!nl;~!5xQ2LJ~FLU%j z`KG51dns{*;)Qge_#aC;Q2GxdZT4-TaET~s*8+}Gg?#?|NcUk#K(QXxVMsuM2P0u- z@qwb$!kG$>JPWpbq~Z+8Kyel&yzT)>28#SKBm>2&fI2IsE#FPCfs__yNwKzkBuNwW zau+{D&}();`aaD(!acgFK3Xb?J>K5^gwH_7XX- zgV1=>@{z{t9Z`z%uq2`AA4bv#ekn<7T>4eu64Xc~`@pY+7^+qim=e@(?nV@afw9k}!)`L;``}ohPI7XX4V4;vBg-aJWXL z;&8Q1pNH9vG_i!#>>|3N;kAf7EW1 zhL!`&!i&y>b)Uzo#ck3!OmGS+H_UzBjR2J6FzuOua%%Tjg2n3Vem#yK$z?r(@?`GT zv;P!E@&eFE_4$#!fHxe;3qZRON81(f9+bG`7ppilqxj<>kwGHJ1Z=GICUKi~?F*PO z%|1K>Q2&340q>5f@19?xXDN3q-$p9eyW>NlHXdiMT>C9LGc-DfuR{5tXry}l7F~c1 z4R9DjP}ZRdxvgyRCDiPA))wgvGnxuz7Z+{$SS1Qc#85w)r1O|RLQ2^al(+6E@C}3w zJ#+zRtbW}Tm-eM-J_8);Cq8zD4gfbC#}(0m6bD#lM)m9%Z6aw}EAZbZ;B3Ks-91QE2#0g0HERS@CJ8IYp;X>oVgEvW~G{wXaV zsk~{Nx?+~2aAP+;Gy|$ijmABPAY%!;(CWIIzx{$!{BKXrPjSl)NUC@yD%_126dU0? z1ToXE$PI$v?ECe9NGR=(f}*h^$qr12YQ6eDdIeCQtH}V2rRY+rBq_!+JJd5?Q*|G z`{;JLD5(>3L&_K09zPH z1Vy_Mg31DH`zLhdaz-vLICj7p;3dC2qmwE1VWcwLNLdXFG*$R7vjBDf*H|zyKh4T6 zR3BCDU&Z`ckdf;5lZ`A^_=m$1W~KjFiQVqqHEtsN+I{@|d4uPHf>$_o$ymj@Y*mfy zP-LLSgOc%af_D>q0#{k6iW3SzBUS0+gaY1hs4f8QMjQ$*;5{U9zaB)9NoU73wI1ZZ zkCe|R|9Vug(gToy3J*rYZ^`>sk~uJ~KmPGM8cFSo=V3-F(2&LemPdPd(t&OMAgQPB zq>J2M@%sW#!BS$6UAb2Vl!F+lY(thpFuup*$C8Dje=J!So`s8xw0Whc332II!#MZk2mQQwsb5xIUWcF z5!3Yc-F(iEuI~SIsY&|;DJvPYrnao@*O8K#tvWBsA^fnymeREKOSU0*B7p_oPFpvE*eM7?3x1Y1db?fvJWWN!kp8AT3+};rJ@w zc1F#Pfes|9jx68CqIPD2Nb)eZXqa&pib-yOfEns>_W7w>(@yWMXUk-p4g?9Axh)?$ zQ%ftVV65UC5qXPH@Si-6p@ZJ2a3nFax&mT8{VJ5le;-N0WT*rrtiOUg zQw^_3;oZzF-k};v(sxdA^;kmXL+Q$&se+w}NWR1q78mw@GR55Q3gv|tkD`s#Nxrab zq&zwdw(*aBJTMG{!_u+jB+C(!VfHicP99d9&PLXUiMw5-gSO|)HMxIO-!HC9M#^QD z+aQ;XuB}w=2GSs)k`(O_W+Z7p_+6YT`-ZKk!7nHpNytZTE|FM;SMqHnYO~*y82sTc z<8{+A#MPe`%NhBf-@7kiPYcUN%IKXgc@Eph^dREDk0s#-!QU6lugIT;7-|qSA4ekh zBb4{p@~BR*EE5%uBzEM&k+?reTXeQt9jg$f3ObSz6}GI`HmX#k*O~b`6215I7Lg6} zw5Jct#*&hCRP-?$YF&4KKX=PHE#s+<9G8wI=X=)si;EL6i{CnWUs{b}CqdarQr`J8 zI&y-3frUxxZI(RDNYdW<(!BhTS>;ZhXLy7JL)q5t5G!?tWg}(san#{6m|>0Ks{R2p zm`zTH9;0Qdz)MRuH&v&VIERwJja03Vifu3R8)IQqoR*Iy=~tRklrBY7o6tY=``PkK z=NS{Ik>t(OCCcl_opU<=vW!v5STfGJ(I9&8v(|nr`~hj=p4g?C+Mi+XAp74EFa z_!{eQl!!~ml5^p?Vc#zEs%Tl4j3nc`{(n1{3LW7Gr!<*76?S`e4#$Cv9kI}`YNp^< zI0B%Niud8uyXS|8Zo8n6RE1CW>qzu|_8N{N2il7EGobzNvN{JwBOourZ``h@iq7KF zv5Iry#L4q|eR_3{!$aG}Hjd7MvXP{GbY^{J7@&m#VOTbjq>svEk>+q`Yutp(%690z z@q{2x`T3#MaFf7n#=GLNs+7}L@E+-wwKB`N`;DdM7Ft#EC5v!^x8UHY)RJosVk}uV z+f+!EdsK7G48TaDe#PBAErPC~NV(4=3HS{q8(=w%(4<-yNQ%c2bhhFM+1acPRHDL> z#Qd<9uoYYi4*7~96BBgy&Hm47|2=$>tz6T_cIBKE_Z<w~7-%h?=^p4QTAvb1Wc zplGZ-&h<)fi0CpxytJ|L5FVC|zy%4IpKn7qWQLjwGX`4>(NBHj} zNugD@cO;iQ_KJ4XUc7r;eWPP~R_syaXl5wV zCFGopDyl62jUvsVigZqF?Aq)TEh2SNSLBAQlC9IUdP~Br*2ply)xrphXAj0Abnu!5 zVG#&;R#;?E$6qi}d3xS@ zM8&A9WM?4-tLsrS^AZW^C02(VBWV1ppr#8>?bqvQC_CPh zgcnpx)N$!3qcFo{G^q`T$*8c(yKBa%k~JB<;641A-$Kh$lZeJ5s@9CO3(SIy(j7mH z3rpxX+br?!THE7s%2J+Y&_lr`T5gdDqr`SSn{U(HQC(8k%HmUjj9+C_Lo__jn8>6^ z#BT;DBCfqvu#gmwl*%ts24geiQeHYJ8cWD+-pJ5ua6*pRBTky=#gh!cSfXxaKEO%0 zY!gkjvXPdLC25ufo;#bi@8Szh?_WvzSbDM}jm{PCIfs5VF5QhB&d|pQ4@nN^et!%( zxLjULQSasPc8c5MSG`?K#_=T}W7R5zq1G%`==QLLq2M1(_(<%Q`#~w5z*Xofmac-1 z)jN5m?Gk6(9%<0HS;-X*@4lNML}?v%0iVU|iA=08Oz_IIU=&<8E5fw{#v}45+vQdF z)Xg4>oGL|uQv*zAzzTdOShL&?#cIOHluN-L4wrp3N_``z(H(Fe(}Gu7r-E5-wg%5b zwUA&Bb-N>WqhlFC$h2k;Go**V`)>82#~GT1fBw#}W)-?-yqxR+RrB>I*SO2!oNjYa z!=#|oM1+1d!aX2bB~Q@1oe(v8+?(F00R5cS3_&+jDaIU$Gr@S}+FL4k;vUUGqC zCmLp~Y%;@3$No$#)z__-73qnER&Wqv(rT*t{a~y2l=o*M*rd|dC?bZ@lLDxYb}|Ky zEY2c~%|P4bSTm3X$pS&WtPp@yWk6$#yHY~$-UNln*sr?<40?Lwl~$pMU^wkLwwXqS zB;~#%lT9KQ_MHQfldhVdzeMi3Uno+REGDJp+b=1O@!do#nLi5Q9Ri=Cj0s^aqcze) z5Y{tx^0H<`xmYc`@0Kp2`>|11QDB?vN-JiD<`v%Ipxr<_P6tFcPyIu^GEvDYVNCDe z-6+2!TjT|S_d=UOYPf?xk+t;MOzI%_<-gx9@0cIjI6a)?CgEMIYPT4-s9lrP=4tE@ z;ueY6*LP;$&z5)Z7Z2T4H@kzSN`#Qc5ESz=Hf-dchH|ax)4sET~8L4oHk{Czb0W4=R~hKh%hgCERjHk1o(A zMA+rSvR+DjbMk(BH>Z8MZvFOYasK%9aC}aw+uzu_bH)E}g_EMi;>po3-PY{$k$-|Q87s015Ecp9QHpq-~R0n``i8tSjw3CTNcKx(C zyPPNoD@w!X65rDaGAlRp_2N@^xn6w33HqDW(_(%$eR1>a$LpKho3q=iv+F-D&Teo1 z=klzG<%P%c{OMsaAA@A_62l#x5~QP~b8r&&h^UY?QWR@)1aLAw94uVX+OEz^_uuPC zrqC-Ru|p*~t+1sQo(Wl4UPpRFNR92;PC46b{YA5EnZRIi|l= z4u`{~f+tm6XDLS3KVPKC-^5Ajkf|IkNpYeh8dBO|Zwgs?;&L(jhc)-->H%*Bg$R6}T3&X>JR(0AlGU_M;a5!eGh45-6q(pItw8E?J=@Mv$mjth5{)tfmx!t0$F)h|Gj~P29!V&a8uG_9Tf-QK!rIYLfFFL zz_h%9)HF#r{3eDS7S~boumnEPTh$e@dhH-8tfQOKn28#;JA~J~BKJ(KWEa8eBqqjb zP;Lrc;HWc+fKoo!QA|xY3>D=gov=e@q3Q&VXg-*ckG%I{>2L5?MPdqbvc|$=IH1Yp2)XDe>HWg2mC_Iw*U4lYd!09LA&aI*%5q^}_zPz7T0tUPo#L zH`h+=&IM@so5;FS_Z9?vVNv??Oo_+vQP~I6cV!MuwyjO1!?>h^U!f; z8LmOZ_;hOt;kr)Z0K(!1YBOqE)cOjsaQsdnh9Tx)RMshVkPnqu#15i?*n|iYzjJKF zHO(bmVX%+`YM?g*hpOotQ(xr^&NDD|=sqAl+1N?pX=jHM(l0>|;%9(y;HtXnVCu zsQL^{KR&6Von}VCsxPXen)(S-aJPqEa)sT%&{c5*rDzqwz&x&1K7ZO|b@fj1D*t(M(<+uc>R9P_Xh~*f@73+;*)k@tl74NueT$B*FOY zKNz73ko@=2a_o^nS&XU4AV@YI!y%i*$!tuHXr4n7EQ`tK!1!pJdW|6z2oqa15K;)~ zS1Louu`T+enJBBnWK&VA7B_UIEBfNGQXhy`Q@C*Z80M_jM&W0|;vIzxk?l^aBAn!> zmAAT`WVE$BTC9CjX$sVLuX%*WF}LvTheBBpbG}B!l6DhIZ%nA-v5j*GLPNxILA2^n zN-VW;Hlndo;r2zYETT3LM@!E4|r~ov&Wq%0iis*7Q!ma(e zfkdr@uv2mnqa{5ArT&7swp25xP%wemmw0=mR~FI)ymrOaHJ-9pmeB%?7486ZDnf~~ z<0W7xQQT^Nfp~o=^DtZL#qu2 zmfM4jZsWtyDhuadz}Zq3W4CCO=fD4%@xFnDa2S2e*oRG(Ece~ zFEmD>ARYHe^|%t$SmA#l{jw5#f3Z1mVSlt=#|pVe{1qW&qYdV3Qq~}YUfPtr#?d0| z3wuR?O#g!n*N(Hd!@whEADx6)LOT z{=jMS4G5oCEVa44pq#1!YuO2RnR&iMlp~X{Kly_ND(K3BjBU3cLb)vXkz5f4&Bo?P zGi80?LFH9fLB}fMzrsmHG0t&hQr7rjhVILGn9-{EF|^CVo6S{NMR+D89D2gCvBDmR zR#~_s$@|hKpPWcRj*oI)&fXKau|oe~9?Hr{A3F>tWNON6Lv&w0R`>(cEDP(WLa8wJ zz>l7am7vB7{sZZkm0(^Yq`qyQuaxs9I`YybV}(5cor+MBod}`qp%8y4N=*i$!qK7~ zidr85?cCEJ&{6_Mg}VzFA;kLUPSh#_x-rj?G>65sS?ZF}qV1nfSt#%3%jeL-p{5Ks zR^T7ZLs=O<(#;;13-=(iAY)bVLnxO8w>Ng`Wl!F>p=CgG7BtxNw=16k&{*Mr81;$* zT%WTJINVkU!^*I1wAhEGSr*p6S!IRQM16xEUlGEE*#CN7(WQ(!>486uH8G#`umk2Y z<5S1DbPIj7S%uC~;aFh~My)KMxvbhPpO|CT$_L7F34I?c)}CpUh2iJPc-@zlJN?$H zJ?O2ve+FQzcn7Ci7T9Z+XOHg*p(eig3=6 zL-yGW8x<9_R}#HNab8XB*>NNF$#U%} z%dRxa!f?X$7EcY@RRDQm1HC@jkqAqxrm_>pGNT+wZI|z!A0E0bAJA7pru|xFY!HSD zBQ#IiE~zWvB(~il*7L!jh$g6Yw#MTtGs&ACTk3JEHFlNnIGuF%V4R0OdzJ;MGQ20; zW#)NrAI$&LV`5b7K=SxQUmRs-DCQN%<#0LYr4nN}-P=L1{sud+!;l&znsqdK-Q7vG zi$lxEwhvkr;gDk_?Ph17uGxasPh7EU0YDuQ4r5tEEhsfAHeTsp1; z(CLhWP^$U3MYP1VZB|(~97Dv4^+LOyvMc#avN36nLy;XJvh^f7j*Hma z#cvg5-XGnv(DXVoz1r1py{Ob|gRztu@*UFi0BO$^!XKSH-vMj%qP0DIP1_ zK`B-QmGiD>xnLHJwo_4iP&8V=Lr|&+=Jpzc>nzb;a-F7H`_BN37V^+kD+0TXyFea$ z#iw4qS+Bl!Ya1gzd|7Qqi+fm_Wnqs@mhV0<9WAaOl%4F4XQQkV-gd%dBDowj^GG~j zfymn?-15cIk*s+%%3iF7?>X;<)e$Jmtny`z+hzVeZ}%9faweDz8sJ6ua97go?q~#1y z0qOM;vYm}sA>6L}lb5`gVQDy|1ybfd-?Y!wD2gW`mO!iShewHOxw)S27`W1G?Y+44(QV^jn5VpLaf zt)oTP09A}f$EV#K*Jiz4-d#U`+H4ow=kEIZX4^edeh?ljk%T~%P(qI&cnFJpI(d6` zeJi+5R!D`KZ%=32+2wsH=9#_#y~o8iLdUpBS z9BqTy)qOYr8rsyYv@>0N_x|QIEVJgDwJCbs`O5-*VI5W)ZKNj?!{>*r8RFv_&j@wz zw|8@Ao2JIidC8=&O9kgyBGe1cC(1loHtqvA*Tovwg&Ke6zLO`|blcmzZodBhw7vb> zegBERb@NZR-IBlYZ-Ozu8RqKx?d`Jr4>+7m#gklZX1HVI^8Whvr*|K2aSzM%)AA<* zL)90q4*&Q(n{QX^jW3eYHPyWMOB`uWqtVy=Jr#2M+f|W{dT>c zedpZE%X{jKlPTH*qk+;p>Ebiw{%QNL`8K(o+&*^O`_-NM37_}>GxoJjapgL<{GVHO z3rI3A9|@2d?j*ngk~8ys+0}G6&`*Hw>8A5?e*Il*NwVd=cV|x3OlV88EX(qnEPH>M zulvyH;{tjipj0?Zbh)#PRR&`ll@)o(=8m-S=(`qtId zJw~JHV)Xzcx&4k(CTpWY*x)#Pj_Bp*dn0<@qLRw&qEv2srZaS`ZiW>R>65y?EEh>< z($94A_;@>+eonGYUm$4%&f1+!r}#$u9*zG%1E~F)VnMWasCux0i>fWj)^L>>z?3*y ztt4)P>Z#LUjZ=X``{J>PtX#zi-R=G3#9U>4}UcJtM8`rtJ{He%*~cWBXD ztoj@-UBYsw^93{AZtw2q(CxBII@>$_blH74>5gyy?4D*y9iLtP4v7gd>&Vc%$H~20 z3m8q8Pb-w}0F<;`&nSp0*lky^oq3e7S^UR4hUo!YHJKs>NJTEbbdU4r`G}2b`);MZLZ(xT$)aDwNv4pMo z6+$WNGges7FL$!d$!un}X+tE1W}jKlpO!GB4W#9aV%1eEgbLVA9loBw@URnG%G%ss zPpk^_0HPr;`b>jqyHkk4TE@_3!=)^nol7eEC;VEoAm&0;_`Z8wV$vY%2HZ-B=7)uU zIgBpR2&oo9gGc99Ul34(M(!I)S_6B(17D8%Hj1$|Y@BS0v7yj365~)SrBR4gA;3r` zd5j^eNy(%DRT^tBwPotSR)h=F8^Sa_Q$Wn|jj2UNn#^J=3o_sKjtTq_#$)m$(4%b?Ryy~X6Q@5}{ zZenj?=0XC`<|9m+<2aC|Gz*%8DDoZ;oFeG@I zSS3}b2}<^=g`YLp2p2VEk4v4Jua3@7e36xGzgGe@G=#i-UtzNN{pi&%ue&o1*S{aV zIXI-d12G@V^%IeYZ+&<^(G~_Vn_~9E%KM-&I!J6l#6l&&hm$w;M=eR} zjR7>)h62*w%fuJ65xWTojR^wou%Lfoc^W7Zb^XIL3i?d z#i}D1x99nqn|bE$rd#Y-t+gT2ShKcfVdT*KzmT)y2n48Jd~E^W@2`f^rD9F)MMoV2_*b5&pmdR2sY8E*@uA zBWxZQ+R9o|{8-ZsJXEQ1uy|e1@03}J*kDmSRngF`cB?jdnukS;E1AF4A%3*@USSxz z9HzpntX8930c>%xIu|?((Mll6z;xdVGNxGqN07rSn|t(2R*4$2$Jr?U=bQasyYr(D zr$!a#yZOw`L(0i+8?%no%~izp6}C1pxv2p57dM6f*!CdPX;Kzl9barsA|NJ{lIk|_ zriFc}z`qHx3QZrD%gsD?ZyL%=bAFjTE^vYQyOc*L4R=%eB`U_%X{skOY-_&-9?N@q z(%53yTfjrwy*x>0Ub?pMkXY*JzG597t2P4Z7AQuZ%2{nU54l{9WY4&tZfp4B|KP3@ z+QB}+JJ)74pQ)xN^BeNxHeFUu5zP`D*^5#xyw|i!kF3ndM z{8%yW2UIjhd@Kz27KgKr4EC^n>^_`+U@yihiUZ$XH7m~YN>QB6_V$0-o7Al<4TlUC z%*v>gC|uAMLPc|tL@LA@n~Gh`zV#}w-adCrdTP902`>VS=x;pwGE1clG4Ld4Ux|fwUYMa~CUUFQJgRvZ;ncF^6dX!VAC!6YPQ^ODwlZG&jCT#hOMM3R0Q8w&2k13mn#obF5 zhm9jY6P&u;Bi1hNZA!&Qx3+9%126MuZU|k&c@Tp~NqLh1?j*3Cv}`6=rfIP0vJMv` z7Rc#nOW%h~`*DeFa2?OE=$V^y0wc5kWVJ%7_rGh!d5HnYHqaQ3$vG3y4MF#p_{b7d z?ta>xRqTMQ2n#jy_t9&^B`-G5*aHO@%o-XrF-_3bUWTpN0*4z~6xhHwlJ(?_jyG(H zgBJmC*@y@G?Z{|M(J+j3F*>t_r8Od~9X48nZJsu-xuH}-tzx?(t~!OgpFSl*Pt4|< zl8L|Pv$?jVqFl`8lY(7OUkix8-2--aaIwB|0FH0G-1YRZdyNH2hyji`5^K}HR`Ln( z+!XccL)5_MwD`I7fuE+dmuE7=i`-SO|%q z*qsIx`$RJ}Zt>X}V>i$KZ)a6DQ(Cw5`{qnpha|>Ldr_j6du-h9iv0zfe+l21n5U39d|7i%ron)T63I965 z^FDBSV&m6Mcpg)j^}PY4&Kt^Jx|`hIuIFEPAZP+5TI^x%^n-cYLoz~aT$2OYnwWr= zjFwflmmSx039@=wV?84%*-?i^YuuE!HDrL9Ig#-+5xdrqC1Hv-?2J`YZj@0$wm)|G zJ|>`V*tV~im>A0byK-mSRf-K}6*TP2VxzuZWN4{i-nQ?o%X|_{9#`<@H7LlwpW)sZ zaKmv2g{hT|{e(tZFW{1l8k1SH_iD1)eC4?FV=SiV`C6x?!Gvnt&14kYGTAM~D5lLk z%D*(LOZmq+xs%589H_HvUslTi(cGnFCdG;%>*im`|?Z8C+M?@H)n! z>Kbe^Q#g32F!h7wb`6(Lkx5I$%@po1iu3;L`o?@(7suC^-P@z@tIHM8>~OKSJY00aX%B!-j3U#XQWzUnFvdA+e*oQW7SoE5sw{bZcK+M@QjB%d}^&VQ?&*xjXQDys^?6(p@#bmWa-}CJ1g7PH2 zzqt4Vhes7);{x3tkIUufaJxF0f*5|l7p@x<$mwM{1pXio!Wti%YEVlduOXS+*Y9;p zAh#5QwP>hxo;HUHjI_9m69y)*Qh*KPc#{boE08PAC>C)#gV(ZANAh8aX@#1p(>~lb zSv=r~%@;ch-9_o7U1LFEtW+o^og$>4u&2*^N7sLyA2(9|@AB5681}FXujzjuo!w}Y z*!V9kP>z+R^z`X{$G?*e;x(u^3&+DU1IIR{mF^yK>;jFay=HWjBw&D=y3lYU%1I-L zPJ=eb<_nNDlqhJwsC_f1|U0iBBCiKVQ{bfI1>pXgPr5WR%&elBKvcNN5Ww}F#qIIPvT;eE>P0*rP->{) zfK#DP0fF~5+!Wt9bt^K~<*S!qLx+{Y9*9Laj=vBB!9?mwVyDo=&<16U-;{*EY4}{W zFc#Wz2YwL5B$Wh4eUO$un(~k-;l0d`MW&OhCI=);c;>($bRf`3eJU<^zpSwY z9HAs%!;#X}n;^umw(Av6)pz6$Y|fuyv~xI_rr5?})m|0`(MWz8Di5Zj$J(RR?X!SU z4Mg-Y1`R-%ddI6eRE>>N7*Efu3zb#5bjdBassi5q(-)CW$F~UlvT;TgU2Sh; zr@|GA8w3wHW51I)k|HHhL)9N)GiB2!fZxBNEygMaCsFLSugn+Adx5cMm&IP3zbk9b z20$$$pV%G;6@m4XN#H3im^2wndzM_Orxcj8*S1vI(aX@3cZ++(-9jciUz28)UO0dj zVZlr1f}4fdJumXf_UUIG3AEqewj~^jw|g&fMiMxR8nL4NBF5lBFSP^{%2^!VF`V|e z!Of$gtDkXSb77f*gC%Dl+{)&9q{qm?h>E(yhd`dN*$+Q!y}JM$5u|40!Uf2>|`&7u^JxJ7_Nxn=H{MHu$lnU2>y=G6>ad3Z+4vRfq zK*0LG7vQa1-KawMb-DgLhO@4KyCjI;8eI5w7a&&o*w^h~pu@@a7Mpm#rZrZItoI)Z z@k@R`;37FN5$H1D59ppI-$EF>-k~{MZnAJmV(T$&1og%6sHzTz<^vI~7S_9!tY_=qNFZ*NFb(N)9ASE|;xUMoKCg0ovGwyGrD&&bVV zp^naDcUiV8D^c095VxasuUylTPOe7tS*KMD|DjZd>k$xw4r2KV+WTL+@qy)+#P(}j za#6+=T#M9;OIdR3BAyz<6nt-XQOxDV8X4mxj?@?&UOVw-y@C`mUD~A3-clK@Mdl{4 zB`5~n{SL27R0vkddN0JLpt$4X&`PF^e$S^~VB!NIbQS9M2OkT;TOqiFQ7*k8*Fi_| zzz^5rW~(JvXD1r`?J1E_*)@3jd{h=1Wki+Vo909f>QF8A%*ui>0YP2ZwM$ib$QPPk z-w{+RM~pkV<;ul+Se7-8PZNsVXGSAW8x#VgJNu}tIY681$>X%cQzv{SMZF*hlfA+` za3344o|rGOp=XZ`Zb-3@z!>Sl z$B1$S&GWll3$8&3yR=}KKj0S50(iZvtxf&biFGkIE;FeKy6VUpf=EQpD&UcqN;Dcr z#f!Z{RbvG=9TZ(cBlbB@(f>1F!=dZDcVM*5v&sUf&RXi>U029fX^o2S3;8|-*jchT%opva2Kr>uNgp~$0= z#x9TTU4KB;px!OKa5!d6QL>+OZQ-4+;fg6LS?-|~UI=`{DSe}TA7A@jI9jdg`3D;Q z{jG)d!cO&VHbgUN=EI1+TEM&K_u(J-K*QwziIG-nHly~p7Gjc)XA8n+xCSo^vbd3H zIZ-%H!Jb~WUceJpoJ`5`eB9yU$f$W{=GXCiW#KRfmof1UMR^bbX9eoDS|7(y%60cW zUubLFqd0SDUC#(%!1&6mn`D6Yig{ncVKtZgj`u3>ZGmA&ti!5xl^F9{TpmAIN!*P5 z+ODq0^X(X4(lIAH-0vTbj*C;MB-C;=qEnk3(-m-snBggdBlX+BDd(Br@)b4`Z3Rch zUlKH{=aChHjJm4OxoDPY`KKYVOe=A<*-^YWTOjG1_w zj^`>GbLd_Q6G2!E9&ULklRpQKR#0bI2jrN^4Pi!tEIj2RSI*=kC^8*Wp7GTN8bhfU zropfKiVM#QAC=>&_KM*;0e5V$*_0ht-J4`EZBB||jn*M8Dh0Pl<9&>FEaHr5`C540 z`llJMtSH8;LGQCQ?uKP7u7d2t) zPdQ~%5{kl_on=y&ey$S|V;Um#U?11_4}RL$+L*hrb5#!;a-8K__|E!n`s&T$PiRnj zEPpxp_0YRTcewxhmyUNjMk!zI|9sfotA=NtFW_l5E!VBtOTRGu|H=Hz656hf^3-$l ztXuc|`Dj0B@K_?U``R#ITb*OOrHt;pc~O>1fGVSFYfvi>GMw1MgE7d_fE<*DPlwnz zIo64}VB4%;cr-BH%kw1!(v-&V1u^S|c@aYcW#l~ot&@9T!C1a2Cl4b735Fzn8MLrg zEM&NwwwQ1I-XLwl&Y$dBECtR>SHx{hA8ZG0CFM@iFR9d)Dnj>QFqEyyhk2WdG?98| zCv`ti4vVhKp!y>LqRlc*QxKlF>U~lRxyy~=;Y+eHhPgzeGAIs6Id@Yw>UzCS!+P_ z-d<`ABggos9WL=r4&BH!epU94qOl8D<&CK zm>65mM~1gFHjk6Iuf})(q`#__IAWd%`7=YGBNE%*;SzwUz z!4pGZav-53+=L}=3{Ka|bb?c1te*>G1P$0JzB|fZ)~I3A64%`=dPE9P^Nik20C{I>Lru)}4_FlpQn47d`QLVEmHpX5N2;ri3znL*J*nlfYsHPVhdAcaus=#UxLZm=jiJ+q zNC(Q2ssT5a(O}FtnpSP_Ltd&?SW`oiF9#Eh}u%g0Fsk$4k3x~im9RgY9tTZ&xJV{hWih+=3v zhdFReZwY$bNMKifoMokEK?rig81FHOe6WX)!I#4DY%t!O=6t}S_hu~)Q2v`Vz`Z`(AK^@+Any28+YYZs7-!WOxyjB7ov>2yP5-XYtl%L;pbu7Q zwLh9NTS*luU$}~v9xtq~4>8iz@;F4P{Z-&KHc-XRJ;8>hfjB|GH(aOw5u|w02(5c@ z^_Mq$FI~y5FY%cC4IDvxCuik%pj99&`uyhT?fX;HbV)WuG!er?_y%+S@%?+l@K=L+ z`{B~XQ$Z!!5Pdv9L;U*n(fdr=12!2xon4B-F*PT?g; z57=b*cyn9{J<$+&=3IOOYKYH{-ekg(Y=~}tI>qJD+3ESm4^ZUI>4~YZrW>-_Bi)*_$3Tm5w{hzPoC125E23noHB+f<1<5MQJR(ah zsbX!Fyk}Jv(b!J~_w1x1!bnPCjRjP?(%uzRTDO8q#k{!+*V<&2xVBG))yAl>XoOzS*u4w#pJl~2ntrVYIF@I zNLj6Gk;4?15S8FM5nsn3UC|mTYVx|5PMOW#Drs@1W1+mj6jUTR}Mg3)$8cyiAP`@74Di)^wdP9j5ofi~k?>w*$g_eSuZ=lIAkXac>j4K?H0#0N&e|ZI&ezcxo+~RY_ zVFtOygE>y{;Hxozfby^)i?2Y#@N`4u_mc&Q>N5?}I}6foOitiZWVy(d`6>gNB8wcb z(tiG!2TCr2(!Xe68tUi04jq}-#BZ6bL9+0_^YbvQ)|X9u>P9Ia9>_;^3v*^TG6}rG zxNNBu?CWK^>aZ8XCx`^{>xRVog-g7j%+&M|m#Uc^18d>5d01|-5!DkGg3`X@qGn6$ z+0r4QG3ypfJX2IyBL6d8t}Ft~*us7;QVO+p0g?>xic`=c8p;iyQZQ$?SP2O;f5vm& z_S;XB?X*cXWAv9oZ)!c*^W;%-IckC!4R3)d31Z5NZ-E^E%4s$!m}MtGhugs?s0z>@ zGSHD+5J~$MdBEn3tFIrNP46`tN9sDK& zQ}V`A5?za_APUn1k*ZW(`AlQ3jKZlDUuaqg`4m|TO$#ASsaTqq+;|quhxy}P583)Cr19&SFM8uU zOOJjhE%L?aG!}gJ)4}W4Ts2W8ZCKjt{a=3?$1q539CPsIRnBt=9vO=@aM7 z;Oq-ehp1!-tmmv|hdr!+UdR>p(JJ@{D!2yGUCE3~9(GMp@MX8={B zO0mqT1{%f4Ht*K>K1Hi>WMFxlzt@qS`1sB5oINA*6B`(3P9v1%v!se*F{vMbm{JTO zO?Ft-7J(x$b!U#ynA^$gCiP3C9v1fx@ta}|GOMr(MWxn7*{1db*3^IpWQ9uSDj-$F zBdYRp+A1E=N@=X2Dx!0S@>vv`)!@hyeHwh)%9Y)k6iYMac2nA{UxNwG@4m9i+B1TcC6d`UUqOEeg>8Dpl|ZsWX@ zaCVu`V!By5T&aA%vt;FH>HLIu3Ji@AhYc-RZ0O)vq@C#7-G2#@G(Ca)C~S2bH0+j;Ng z`U1nU|Gm!NMKxZqn`90K9M`qtV)6=CbXHr$&;_USi}TAfc704RSTEzVZF)c# zdh#H}l;-oh$eJMOHbHs|iLJJe8sGby`i3%{h&xS`?mmC_$G(5)e1U`dFp1$2*!fSd zL5KG^@Uj!5lXQ*D-mQ%kmsT7x^rVB+iXy|~1=^MeZJ|Ic7?I`Zfs0@tkJpMN#il5# z2~Q^C38x|?AInwE3TEU@DrtwtH}*V~kh>qBDw?%J;BoGXF*Y@!id?8-*@AU0g<_>k zET^a0QrHdR)}RJfC$ko0h^CVb80}*j=J#k2g=kcGbh_v+GH(2VVNm$H#fXSRB4!3T zXU!IAUqR@8{+91T{ zHDZe4YSrXW*cOU%S3?#ihmVLVoIC_)J>XUr`sLOl#w;Z7lP&|4H9`j3dPD~dTs_fu zj~h@}5Kf+Wao&>9JA$LgKTuqwVPldHG#rm_(lT#jZ0cQt>pY<_$=S&cvHk4+C%=y| zK|OKNSpj^y-{tQxF!(SSO3}w3@cs5V0+ttO^D};{z>4QmD4y6=Af2yz?CB}88Rq;v zSuZR*pPns|el_PmWy3{f8`}p$Rn{StFWnS70%cfLduuvYA_wzZ#JGl+M5(M)D0#t^ zkDwTx9?_cFifC0_0R2|=hQ%WlU*R4~hrX`pPPBFmD*jVL27Y70<))Fh<`f@B!@v{) z%fU7tE)l>l;9)`dD=|)uzjTseN5LmW@DIL6<|#44yu*9utSrApjM)=xWasgWf-Om9 z2iU{eWg4fcDO<7I;s?m|4Q(eaC|QU{NCL+_0*eF~b+F#$SyIx&mL1`%WX~0Ap$g^v z>!}o^$#*;~ijrkTE&oXJ7&siD(xYYt zsRyR`xv{Isnqq102;#U935QV<;f=9UX!%;*9hNfa~~iSOyRdDDH-oO|Ga5A*F zVCrp>`fX<_cyP7EKKo30G|x~UagUk6-shp!x12Z3?vOrjPvT7Mke0|j0AwrXUM5Mf zI{=13!J1jG_4ckhFybwF_l?_%e%3q;+NGshA^6X57Nid8La0AruKB`%QA*=*f+Vah zY_@m4ltF2KTo$cW;1Hx(X0X9L1)iog`m{?TLMyC&$++^uLe_oJvDU*dm+d)Nz>G3bUxKkT#VQitbG}l6eD7NOCeOJ%BJ(l_hxn(zlcU7wwJIg^>dtLg=hn94AZs!YZ1f_0v^8cUkAtdd60ozVip(V$4>v?=ZQKTlna%GRsZkn> zuw)w=T$-RS7>O;nQ>+?cnZy2=8Ikip*s66SAAzkGAlH7UQL$ITba^+K@{OTfa1lL? zVk{T+&z4)pgFLKp*ujbC;t?OTG(NInQwC$(`7}i>&2?<%#hx>{!<`)5gAd4wO-SR+c!RfyO}N%hguFu>2#Wa+zwYXb3V{!wutBA(DnqX>@P(Sn_P2N5nZZP7 z28qFdR0_h_s9Fz(=mwA%VGxFyH2L^&$F$$kud`EGsc^=^D?RuV6)2sv1@~FvYAl^| z+$3T3lN3LKpa^OL-OugK_Z%6^m>87U^`*B=tPwfgdHu+Y0`=xxflJPj7H58AMq}D- z5&vK{){g(c2t=(0i_XU?#}#Bt-n5yOgtZM)S zShf(Kxo87A=5@jZh7MA-6Cw4$AHo48r1L0}BRuwB$K*E7SvD_sk?5X_4#e`O!PP+3^Ep zKU0X07d&jF5exoK7zEAwpje;?7#RU7CPHJr>11|W`DnizOf`M|Kg72FFV8a}@5uCP zENE8$H6i?pc@*@KNskxe^Cx(^0*?>!gRKywHv0IAq^w=6F=VlFu^=y$XzA!!nMN=; zti!~qP__-H`C<`eaWBMb2fSvm6&7diHbaFM%~D}3o8i9v`ew7PvB@WkvYWhD)DH;% zyRuhch_3JJp->OUR(L_4pW!b-yKpmzOO@W8-LFCyiT{K{*Lo?I2b&k3PX&fC8u$`1 z0)Gn^4kz^V8bB%3Ldyl)4END(R!`L-)hyCiyX^XPf6ZkFx+xC$+x@h3=3v#*bs^FijIjP!aWv41fze3Q19kkv08x2dWnf%jmw8VB8RtQ; z(|a*Zri{q+wxh#jh?lZQ^NkRs{9NPg$l0P&9?iUCW$i?0{>?RRsz$7Dz{a@R3auG% zS~6LXtp~;sZ9TkX%j0YMF&#JomtkW}-MGr|*wPUDqfxe{X8r$rY7>kl3>Vg;qLTeT zlG1zHO2x^hh4^&T1GbCh0WzR;Nf0@nW>4|Fozy44q}; zSf&+UF%J=SZb8(&F~AnNa`3>h?(5HxHNz3v#{SSkF%*nIOK_Tk>ChBb4y0xi@{w*l zCOJ~J1*#2-Mks4rs+j{vYir{kwrn5SytxV%6W4ux)54A2OpmIKVa!evqmc7WOdK31 zW1{(+mmto&&ua|Ah`uZc4>j}&Ca7@)X)_K0TTW7F&15pZ1a57^hx$4;yL}m)qqB3j zB5MIWPhe&K)GH(Y$6uN;kEQQ?p#^`5M6Xa#3JAs(upQ&_ZheQZrF}g0x3hSeEKVwo zP!6+eEzQ=+^|hA(1pVZ z6|B=9X|E67+ewORFx{S?Nu^xDp%fU?mR|Fb*RqKwN#GMcZ)Urr;aEi zibW_kV4Wm!v~irXXXoj$<xJ?gekANt31y}wFs3K~pKvPBq*Fr{MDy716F%?S2 z)k~L)snAl&2#AGLa4Mq$i!qHGq(d?JDQJyJKP>ARH8Ifw4Nsq(0+%bHhHc6%mH7dx zSXGlVRW9efx3vHO z#5D$?nX~d)@%vb~HZ{Sg+nAYEZW6}d+#WiwW^ z%e%U4<}!JDcZ)xD5$vEoAW>kM+%Vy?xyQsom5Bi=6E4^@6Q+Ai0#ukdpfcft{eEiC zNJjO(Au2KN3UXQt{2u++HST3b1`;#?7TEx(F#;HKImp%kBWnX>_GQ|)u)v&Vrbwq- zO0;QzbXdLU%Zk;dA^CnmaXl64yN(2neTC7)uEcL`p+pMCWn)}wbP$SQ5CqI8NrP)= z@#e(shJrxHA;?~ZL?ON0E(u1cURiY0VHsN9IB^kT+GfBkZo(owq9*ds0I# zQPH+)z9VRXAz%x|3xPesCTMC@^BK=c^fX?fS>pzU_(drd5@i}Bgtb(Q%StsoAwlCZ zH|E%bMJ-6PeJ)0us0DeYNq^B9@>l*IH_=fhK57f*0_n;VGidM|Fu~WiLreNGw-KkAt z*VI3g2QP7sYB{S^QHK;&k#UcjItN*I&u^l1lP{$+dETg;iAKtRxDwhjys=5wQ?Ju` zzp_y!zgO(4N-r3@HWH*~9EjYG+CUMhDY!R9O?%|*i#xLvMw*wp+NwP!Y1$2IvK;sT zhab|m@E#OXSQ6CL1xM5%_w6*(1y6&9YVm;{JO+&2&%(bkg1c!4ei>Fcd&-G3fCn_0 zPAyB;zB2mN*{XN(Kn0=;qbUI5ltZBZ?3GXKJ6*?h{6Ge~K-ZrCa)`%$ zmyh2MUhTi(+>J8|T!K1&nBc!dT=G`OEd*{OC2fXPl4tT*qM_()MU`;@lLavq4a48j za!zG!;E7-MPT*Z;?eK&J*9(k7A_(kCp9~WEZE$Iphw{8V!@!KxbD2i5bpi}NJ;-y` zR2p6=gd9=r0*Xty3|5WkSZ?Y|S94Qmq;tK2e>KeVs-Nf8Xr`*MU}NUuq73tXC(4_3D(iUo4$B z{?0iX$q}UU{POWz~uw#Af$l6l;YC5tRNlfw8?O=P-aGIrEs=0+t zyz(ujEGx9v(hQ`R%%6&QzyH|T`{C48P9ftID}i2UR9=SY<1&S7ic6sw@tJDib=WvVeB3G^ia`ETzgE zhGhqF`PjX3JgmbSJo1u^wlD%VIlDVJ4o&4j+ah}AT@{fKjVmyO9ogbj`VpT!jHdUsSVNfDd!%T61l~<^h6XU{oHE!CfnZp z3*M6SgJYiXmh$pIclj1kCq4?005!q~Sk;{hJ(@z9d3op2Ix$-(v=!4I#1nXNkH=1U z;%zQy!i=QCq&&NwSz1F;(&-{mAovnszAcyF)!HrEGXic(qn4@53dD0ZI(iQl5bZ!G zg$c0VT^^mie}8s*Rk?$1pSQnz5PprQ0Ugx5!6Ys|7m-vZ;*tQyNC!`(qWCd7j?e|(aR(-XBF(=RT#kmq_ zzz@!)1a39e6hcF5LLZx}NquatCi$_sn$pLs`SsNbdO$p6O6smtd4gK&01xtl0hR+t zj>f!+WDgT-A==y;X4Is<;O;||Zx@DyT<;b_jTj}xHo})6N*Y@gOz=vcadjilPgsO` zhV+G54E?s}ErB0g%<$fbUVif!C`DAwzGJROSTbvt;p>_9=6!HP3J@N@`T8CoL`tA% zsBZ{mLkq>r7QsTvyhY6MWVo=;vLeE5aDI-ngmxfYTs6q+Dtxjd zmQX7EcLu?p;$13Op8v*7g{wkL$Y8%dEY^>!B|aj+K?)!6oj=VEellZznoaGH=k^id z>W3RRtwm+YTdZ=+!-4Pd($UMBXIvSiSc?p>cr^N^?9^g{+kolx#7|*3OYyDhi0&-s zn1PthZ@1-4ST;0Hjf*L`YK#_HvikfM=Y&I1CsAERH4ChwKbp_ic5bqi})<=g@~X64$)}MXV_c$Es;af;Q!w z>D(MJ#XS;#-)`oU^%UO@{njb%PiqmyPH11w6ef1!*d5zv?(nFHjbFBvW3+WnlZC$; zUw=BojX081$ieUDaNmufeY|Up*~{F<$cb&D9ytk-wA0zUIKIB@u1~K%ogJUPzc}`t zPY+0y5OjR?{tP}aKJ<{%fqi>)eRh0x3c7$WadLFy4^Jse0R_!9zJ&h%RM{%y1Pr?4 z)2o~7o1>eL*I9rH47#h+PZxijp6FSu$}mGK<@F`1lam+c*ZN3g5%n#;{Fe))oCd4e z@G+$8n6!53a|?xFb1D~4+hqm`bMhsN4E2&#a9+s#eASj!`9O$#o5e2~-Ml2j$=D$*5X zG2P&32;ul9F>YjRH^v}+2oAU^5-u>)xgx?Ur#28u!Y{_>5EyfBo)!K45 z^#u!xspi9x7FW5H>(i@_m(ws_j2T85T{!dW(Exm(`3|vdsMTmwaVcrbZIjPGu0(sF z@;5d=(;%knM-2F-fZD-K!Mq?xp0`X)J~+zl!&9lOTvA;md*wCYTFs&A8p2^QdioGCG7Ee|NG63^ zdX@$?Ui^@x6=jGI1?((iTtqBfN2DWkw_pW3l&PRb#3{ION#aze)f1t+B`MgUBn34h zNx{*FkvpJG4dXp86k89JlB5RQA!tJOU`*EAw2FVu6V=6>46o#SQ<>x}G ziKnDE{9m4aK)e;E+xSvJ1=P2{GfZCCP0Gi|P(Hrpaf>}y7pa;FFND||Wq(i~rNH*# zkc7aw%Agd$f-#Fp$;uGG(SmTylk=uz%?n_CIF%(dfR?USCI~B}Ql6jQTpu4@o_4fZ zY=N=9K0mfa_zqOfs~4E1Py1CdvRG^(ge-|39v!GVKmB*50U+sD*;)|4(dVsLc@a2f z1O^{85y90MS~fdOz_Q?7$$Bo?<{L8w6|W13e4gsyINwpUirlO(aQ|BuU9qAXQi1 zB6gw*C}cad$P7DBC9CO{lvT@;t|*wek|_C#HVZm>gL13cY)C6v2pdtVfyWg~+=y}= z913nq7*iwZ8&x(r{z*m5-BS)hL!A_8ql!Vlm4bRbq9_fu-Gv%w#Co;8OT1b>@ZS5w zotrJ*F8wBVJ;u_D6O64m{o*u6KYs#go+Io;uSlKI=~|O1aK-TN6j%~^O(P|gVyyK_ zc42d>WMX50%Emq(N`^CBQPoj76WG2_?M+}q-PP~8QaUcHR$oc=gb&pcB5eRPChauePws(_@8lB)FG(Z@gQ%*sUNS2|IE3lrrk5)xfx;yP0DBEZT%6>lN6+G48j z>Nv@*OW$TdL(V5p%Jj34GEJjh>0vgWLtC0oCw_KBtc7&M$=Pqkv23IcK@Ll!M_v7O z>AvR{RA}f4L)ZHR?>^Q#w!oB(EuzqaC%^7?g9oQGbp{vOE4&(WX0Xwbg8hEcsZK_!LGGB!gR8Kg2M`BGWm5r4t8NxEA74T4=mN zS~XU9R#=55-Be&vLK4Umsgm~?t4swG8t+tj3*q5coAI$g?2Bb>Wab-vzNTY)bH~XE+LOV*fmLh5 zLsDZ!@*)@ZwT1tVdU))rUX2^%V;(u~Kj|}H&W*tU4p6=2F-EZOum(b3-(29NEdo$h z+x2RR!}1;~A}CB=mS9U6eHR<+3V9QXpQ80%SRTaz*(bI2M3q6&f)-$nXDZw$QV{#D zC^ZS3|8^E&=xXv@#()wZ=`sx4O1fkSBccoqO0~O?29R4uS{)K6=E!H$S@?BoOVaod zENNdG%Vjl)RDM%GFy6QL&n3TL>tu}~qG*$q4BEK0Xo$B*sMsJ1vSE}LAEB*85prCK zFZ_#P#@-HZ^n10LZ?O*5GSV)9`IS6g^$MpIZ*?s_xG60{c&fv#PWy=`ZGLbz=I`iX zlu{ObF3paDkO8Lx{G3paR{CBXPMW}ml6F(+XW|4l_Bktsm~s6y@)0_WX~n)bVt8?M ziaQJZ48}DFQwo+rlB^G8$$-@btsI&y#CVnca-oPFH4Ah1Q!cQ;E{i5L)Ad9sutY`@ z*cfaX-yC?>#V>dh-@ZRPN3_Fl9wTB=m<<0Y2-)QpUss1ES|C?E`8j)=1q_5g#CvWI{oW$pV;F-R; zLigU0vn|5IrYWucbR#JItSj`Md>jsEPUvF;Te|Lm9^N5EFSQ70rU?RDNrSR}#~A z#(L|L5SWyTf`l>OL}8a1;c8aS%G+7-F#q25+lxPKTF_zDa*fAzmDY3Yzu<+c7W<|m ze>!;mx~5+5|N2u+z1sh|m(h~q%FlCF(t|gzQbv9fbMN}#g^)@kQt|u0Vqrscmp7I7Za*a?5&$qn{ zJ~C-L1cULF-U4Ddv8oX@LXFX(ztkODA8Q!f8**gl{)2vjvge=|wkmJ$g7C0FkP$4@sd(OJo&cVHQ0gI`M(6b2Tm7VnM58bQ1=T)IAzW zt?0^A*?;6rVsB$KOs`muvptaaHPAEud?%7J5ouSP?Jjy#2>0i_N9WzLWF}g^Eg#)l@dCaql5vN&vMZ?cCHWp^kjcvHXE3N_Mc|5R+vH?8i=a7U z0W#myNlYVGRk0)Bd#X(#)z_v-O_d+cESJvcsm&O`V2AoX9WPTT zhezqQ(SyQZT(jUhY;28|6&XT<1B;1RJTV~o02tI9H6!S)L<^Q|4K}i*5V}IxhXt*d zTjg#5Jt|rxKF?G`;)>VKCTS-Jx6=Sky76rDhs zO9H>YxcCEKhtwP_6+2+_uzi^=zxw#=K-8o$vkG=|c1Lh#ggh|O`}sPJl{KH{4{I{$ zf>&4|`o8AMaVWLX$Jmjs3bpxJJZ#kSfjYtEgD@5b#TXf@?Uu&~w9?{&c4k72`=+Wz zFb9#Qp?;Qe4D;BSpK@YABBk)?nYKe#KeQKye`M5g3F`s?SyyN1oZv#7VIp6wmXSNdBR)#o94k-@;lxTA$bKAr;LgAvvDR4>`O^$}qJDC-c<(N8aC-#C;vqmq;2Ga~E7 z9FMK{@m70phaY2cYQNcRv7G#d6^(a0Z5MP4Bh}iu9ni8HyQzr2A%*}Lrv^gwtB}?b zu#zV(bA2f+83NWWed~Ef8X(OUw9ZnUkUp?;BwI*wQC(X>*mg}FpjX`Rdz~c`3ZsG7aG@f_;kqM*)Uo)Lqwfe=8&DFR)ERuMdN`_rD;(=3o>7JAv~CyTj2OV+dN7?|_&qGPv7ht`)R-vpL;K~^U}Rgs4}!qX;@?SEmD$^Qg^rTVuv3*zI= z@eL%#=mswy#cvNX3R zgR|k+1<=A>&6<1wY9E+kopWq3n|y|0Hg`Jd1F1`iYIfPYTp+Q?r6zNh4+K-p8f9wT zC;$Q%;Q>2BKmp!*rl5P{;O_X`_zF$!iB*Cj{PF59nstJOXMv?Au#u8UUP_3wp{mK4 zQXZE0gqSpM>G{(HpQTHHg)bKjJ)H=LD_ppVIqP&AnAeF`6JMGWGn=hPFkLe~B;8DS0(+M9&Gc0m} z59e+0-ak$w7Cfgm4jjJNF8n}Ke^e!W$Dq280j}|ehyN*GiIpOf3aM{OfP&DM*S!mZQ2?=ZRaNB+4V5DSz4lVd zrILno9^SUJ+NA-2l+~l35G+{;jfj^x=)XC7`~EcT$9lv&Mwq($D7%%EvCPy7R&$j7 z$|$z@@`Z)*>=-G_?Ag+BvfaUgsJ86Fov5}V)SyoB{sGl8WG-Fk9OV}n=1~N%t`y;_ z=+Y)A!kCEY-d{R2&?f~8=uED~mGe4;Bx-HMZ24AA;e|*6KfMSJ^#WHRYOdH6C?h*k zUIiETq$Z4fg)5gYDhM%6V-*p(aFKZ+J4ssE3F*o1pvz&&W3scrN_vLy(^6HhCeFvy zH>gegR$Elw0U4=OgYraEr2-3$Iv`c3LaLA^ZDmN(8kUo_m0^_7&)p#SJpyK|b}zW~JtL{foW}2g;DFU4iA_XRVGhhi)~aNr7fGaufh(69uP^^NlN+%C z9UYfz3(Ty+GE9NjXE~q73gBNYx}uJetzq-<@`A6XQ^|S+fQ-1CC8UFJ#;_7eRu)f| zazs_76i}&s3n{6#qP|6`eDa=!@_3q7D$eDcU5(TORROsOXd`GF90OI;@_}{Y#8$ya zA8&rYxH`M}i*r-F6UOe#u;7z3I0-HlEOicO6`?@Ps`=Ui?pK;M zvN@~yxjn}AA77T58<~`rH}^86v&$oFdlAj~4v($kbC3e!5yBZZ^N4DL3&cPwmtCgu zdePJyfJU5Zp{1UJhoY?xsCKQN-jCpo(K19bN40{2SKd!Y^-`BdOleu=q$HyD_X^4y=}vegSk;Lg*J3xxR)s? z=;g)xv*W+2@mQMoN{f3&itaN)P>g-e(=z<);}LE*yu;Np`hT6thoj3&4s4mhGvEIl z0PIvueg!&6a4I&N?^#k&F-p4#;y~vb#izU3qBb{v*x*z`sGnN^D!tROB@ZtQ4Q+C_ z*y~#-dTs$7KP(qhm$(nibQkNZ31TCxYK1VMnR1NIV42E03hP+7xh!E{Q4K0A{L+Os zN^TffF$8fCD702q3$wCXnDcCb;;9bR=f_S~V9u|B1-}Mp{MZ4beqJ|orv#9dUajYR z#30iWykjquNQ%UWc+&E=3Tc#r16BfV=^HtjeUW&WiMNrs#XkqvtxrtYMt%>a_DH#4E( z29w-AJ$qwi8>9JTueQNIyhU6%LMb+4gr^0f9W%F4Q*Hdqjj7W9fR%NkAcT7Jf~i`Q zTnR$(FXD-MF!&Mm9(5tAhr-H(B%Z789`%a16Vd9OTa+h|$_xmWY+45M;bSeN%Ke-# zuYv|Adw6~9apCTE6sW?o)MV30NI;gDY1)*CI-d`~iEyrL3QmOq%Zqx^kGgMpjI1<*+O_Ta6qy6l++prp2240&<>D&A_JwN1|VDG zW-&vxx5j(x2m!qL%Nq@g^#%f?sD;aHY7)4HmL^cKOy$x{2da~t6n&wu)z+Dz0EOY8 zQrChs8Q8uxgKnu09)(VeE)6#Rh_LEb*H{^adX6Jl#lHD4h(L>w;@L^83^Npoa*r0F zDh{7H2A?l&i__@%1O)!#@o4<;zQ~CMkyp>N$yy=$y~{9~GE)%GCz~B%mcf7&5HBae zvzNr16u2zZ2Ws|)K+hY+7U);En7pxRos#l?8s<0r#-9Qk9@>m8EBxSO@Xts~EhYsuIZtGLa#XVe#P z-l+12S|f#wCZKS5^%*^Vm1uR&U(%DQo{=tT99(|EZjqiKFpMoTDuDOAu*@sT$`ye#YcU*ySY7du8&nK^q^Dt!oVW~ z`;Lx!{qgP1)#<6N5BfmR4f5t*9+?Tdyt?@FFMFR;_75}iP*8QW-RK`@h6t9`rel+{ zf%GZJkNt6Hi3w{=)#rATv#;h7!|K`7>H^;7%We}&Cg)1yOrd-lon71Iad=xK=yOmX zuaAB^?Jn`e&_#Lv>hv$HP!gEj;X`hLrSg4@)o}n#gN993E^s(*Y83*a=CWEjNV7^> zv4RoSrgm!Z$%dD-{;_rbY>R2_EgmA`4-8~<1BPBX04W0xL!>G9yBZgkgk!)Oc<1Zo z49h_%i45iJH#z3nGVOF!ZeBoYDFLM(u^I?KjhHz?YH zxo8KmXpRQTTz`2OfkD~9y`a6D_t)LK)AWIs44@QJqhgM1EK-`AOQ;kV?rM0L!>Sp0 zG*G~!>8eGF1E(E6yMcEH_+ABm@r!i$RXjcQn-JDJYP!S8#9ND&L&u{AY<%MCwZn&| zDC+<*gl_pcCaY+w6ho4*ay&V~H$|?y^JB#*6@Zaj5S+&_#m)H1%aY$$gE-}~{Cf6+ zb_s&7_^23mP1^#%#c=q#pD-qLxA+o9(6!+DZL!7V)nR9!Ypb*s21Cb#G<^&|Yd;2a z>dAcbyx^=Ye-CHN0b6a`8x`=qJRjgISI>L;VXh8+R!q^MXrh;= zQg8|xjanLLe2T#MG-z{nWh^azdTki*lh#FtV2*Ix5pu!}42y$|s!_EpTbA4@6RHg;>R+VCSr%ey7@JRmv4UVxKZ#D2J4*|I^Q~L#V`ggcqCijORv^;qVLYE$$ngF+Mphc5S zVM9{tqZ}bm;G~l9&Yz9B6KU~gG27&9hC$|rnL*j_L|dv2KNISm^Y>*^45A1k{(Mio+eoy6Cmn@It&0!rE;7BDtq`;TD15$&1I?LwD{4$sbq8|4y^*z&H>~1 z7uXW4ggDUiRGz`Nd1wa?v*`{D)vH1;d_zoXM~7l4J{v%ej@3(AA}(+;1Vmc4@O-;gm8mEs z&|+2+N7sMh#bKRBtR}a3k_ENLu9d-=8nv-fiO$hm+w+EXAB5F?0cAAd?~ndCJ-qdY zq9Wyy&ymzS&6e0Sl$&^bDv(Bb-fcM+qPfd+d$b<2v<$6wpP}}wS(9Db;v(glU$w+6 zhtUAfi{@P0m7ES41dV}CpM7M{)5DE(X&zMMgPT(D>F`svWEBvsC|fH zF{}Ph$7i03G{hU2kAS&2^`HFct!8Sb@rl*tUH29bL4W)}g2{S4 z!82_VfSexfWhEEVQU~OX9rN*9z4Oj&kouNZ$leS02|ks~Yr@}0QKLZ4|IA9(Flu9S zhY)+cUx>*ZaDSQ;2fJ~s3}8INNxWVNr^)Igp6CI+T!s)wGGVe+`E2opkhU3VS!xF< zee?HP4U#}?I<-NidS0%d4%d7xm~B(x038z7hvUmRsOkDmAAXOmZwqDARvB$U0xFUatHzhovD44U(dSMqwhVSBHMF38%kx*XStrjvJz-;#vMk3 z>$rxwU_l3ib`!t0auQ2xjq4A*5vynLz!* zs!NEx9W&Jauu<=QO7ftO;*D59Sbu|Vgw-Z51_Zt@*Z@>g1vPA{h)c{w^!diPqZ(>R zWd^L=W^+6>@c@4w)4=-EEi`DGE{-1W!Q|xu8&^ik@~Mk4Bn`T>2I^iJlUl=>O(x)i z^>St5a}1t(tr%}e@#|$T;>uvhNM}pZcywJ&ICq;=XQPrd;Eydp zq(WhNkm{t;XC(GV7C9BCk)&qhKBqPcQf8HxZ}CwEeOBR&pOYd*Yh92U4@&rop>nSy zR>AS!&6{p@`+0VUMJhHsWacvu@2JUGo~+HsP<6W5g|$OfVxgCA^MoD4bYe50GAoYJ zKJ>sd6<$&7u_BpZP7j&%`G;NPv|yL3=<}M>qAz7aXM)+9vUIB=r#6s1aVul%h}N;C zqRPvFDqqikny7Z}MeZUO8t)eLYHIE<9%Xal?bW$`Kyoyva!Ab)!qDg&n9$4~&(kdE z%_83|&Eb58&f#ckI>Hl;z?d^4(n**jNbn&v@cj4L`Kx-mpciLvw+oyEXq&%%#9@NJ zDBs}hP5XM#043Zl?llTy-+_2`+l*Y}VLXUo?+7|5Z*L zC~U;>0hB&tItd^EN!u}3A9JhM6qgaeWvCnpf&=GXb;vsNTbbG*ZNY{VE#6Kt=; zW8Zi|ke^zw%tXN)8;!juzjuF}yzBn_wR;V5eutU(r&LiUHgbIBf)4T-UTP0*3d1ee z7!XYIOYSX~1_c@R@ES3`u7N+B?@#y_UkryMX7-5IUgM9w-h{39Z|@GD9IXFM!|59?v~+M~c7mq*;uSbS-? zGCfKNc^X2w03hBdG4|UHv77@#VhL%79z8bqdgGg&1@B3H8OUxKX&`XlFJRRefWG%d z`9a+|ara7u^&$Rvv^1db;Owqq+zr=b$JXkBX19-hkky0Lv^Ih+up#9p7hSrSz1I1^ zrPb9SE&vvrhdwt`@Q*00ydUKr$5}qM$atB%F*Yj978|^{hOZ$`Fkbg`P|adC=YD@2 zPrI;&j1Gm+rSFIAOr!jC`qabFf&+wIdwKpJ=dT6+FhK|GBTtX(xbxE?KM-K|C#9A{ zy5kDy_W4lI3gOARf#82bkoD%}KZkFA;;AoZ=0lX6p!CxXp-%g%r8RR*nQ_?PQlKNz zq1yuGbTyAy_w{GU$&hRN_T&wtV&I|wc&Y%<9Vi%qVf4u3=?#uU6L|uT5o*sn$d0K> zo1s3U0x!$>t{u&QkozJ56QR$a)RX^Q&+nmsZ2Z~wkC-lo2rU@P+*>l(b@U+|PU`^= zeT>OVq}}>iYtSW-e^INj&8S|98I=lc!2Dv=u-rH;ag2ZZ%2OPt_~1+AV;biFCDJfP zY}1^W?g?y=82hQUjf2uuq-4~?B}P3=lPfn|%96n?eeDgIoKQT6uZ1jzZ?hh>b--XQ zLm-CS0U_IH0DSxL-4KXqjv9i3BtNQNw4MnfYv|4F@#@y7^ws1 zj{zl}NCTj~05JelUIbkY;3Vg{iu!AknJqYko?MTVh?mm_*`urX+3F#N0rf{b3DKwI z#%u_@8N%#1ctDC>z(}>;y~9ywzo>G}eSkT>{9{OdaWm3Bzab2Dq!w@Aox#a4;QRLN z!6=;H;~5ZNfB1C-cr;?u*Vy?Cv;Q#$ychxUyE$)u8FJu;Dzi1$j&?KHz~8EyHZVU^ z=a800M||$(8>84XRNmfob7n<<#n0*8E%u+DSl(5*Q%^Agy(t+iRr6RnvN_gs%JaDN zl9c%7-k;)=gog(c7zBBmnGF7&ZA~w#gWpsjO&>?R!hN(e98OQfbLjmi8aej+1u&yl z&SQw(Q;+719WoR5PcoB+|Nls4m4Vq_ipxsjZJ)RA*jC{@V3I|0gN&bOr=MPDoEowL zAkr}o8;+0QkI2jf2zE-e3HDA67FAyu(emI`aN+?}e{>DDc ztdgTQpa><#QqC*mt>hn0 z;)8Ac<lRyWc+`kjZ{0daBiu<2gEfi|$|# zBhK*Cb<~v(+3{tfr#+9&#aF+MuP=33*aPME@t)6<{Q5Sj!eX8#-*6DLS>Xx~E-~Bc zx5+kq3<-vdZy3%ee1)bV<-14*+038uX3F0qFDc=8s?7wm<$>PcEmRt4m~+wYQakTH zfTvL<_|U>qb>##wN*HKQ#vGLd-tBN>tjk>E+pt(LHlg`#{9)xhF9u(WBdKU+#Vh*y2tuNo627Pnm7-d#dKh&=oq*@| zGO|#rBSRtxe3&I)Rl!gt)`2*jd1Sm@6l(^rpV49fYu9C8?lbDFa$7)78x zeC@t1*Y@dYIN2WY1l8R)-1dB7BqlzNwztMril-UJ@WFRE>*!sFIIeoJnu%jvY6PHT z`2ZNz`AHX;haj6)J$E$r2w6CfhA4dB5(m=@OibP8cKHqGE&QtGtHbyH_jgX-)Po-H z(TNTKsO5eO;dEUB=ItBYMi<}yMT#_BQsP=EQua$g9vNWtZGq~Wec;{W7WcjTP!2N# zppG8;lvt5GVXDTF5LO@CDT1m}skDHBCwxL@8! z9$?CA#sf@w9l60&f&8g@>A8_|9Ku70h9xUR(ugJ)@W8NB?yR~DRg-wE3G+tIgTRaQ z@kVA~34NHI9>Mvb4-#T|U_5ZH5xgo>Hr?>LBRLb3IhQxuqpup1`uPkSic~}a=G(pn zn7@Nyz_>Wo%bZI!B6Chrwi?;*x z)}68%y@}^}D-!3@kM@k>4gxqy;)->!HfhCMuj@%K&e?GG(4LH^|Ng|aZZXA!0le@w za?2Tutl`z?SQ88|T96H)U$7{VcelQWgC*~m5t!dst{0{{-GJNEQv@fcCwdP2qwdga zV>AMX#3RrUd5DtCBj9qS`t0b9@1e^5-3qc`Nd#KK563HcbSvL=5fh?F%5t~nPEH|_ z$UCH-W6$3)TY+u12tW8%@0i67F1FjO3s;$Cxs0is(Q&qoa4K6HMrmA!1xLotaW z_}CuY8I?VGFm~*;9l<_)yHbfykJvzb^48?$Ol|+|rHkw)%HEI=(!JmY%K^ zpEujk=@o0+IGe_?G|qeHnxAue1r{7SG$1Lnn^ z9Am=EE(|>B6E$fbjc49Ghb9yG)}qczL{*izwll4Lqw~~ZlR9WpubR})P3m=%defwS zQp^@UhpqrMTcUHl9`h8B6AE@Pnd-2?a*pE0b4HBaIF_^HF1~>q<{Zt^)-BJ}senGX z@aFuXNjwoZumNROT2*M7-UreLx0w4`(2%LkVS`}P6hC@uea8a~F}57YX{>PB0 zuvWyr*_~0suqj#rokNn-)9*q7*qXLBwIvG&$a4&Wz zM>j{d+jW`(taQcCm`aY33Lq7e(uG5U@n>>5xcnJJE;$`s63hnIMgtin4$0|JI8<0@ z#>>~sE?#fGRzV1ZB#O+%B2 zlpu&vS`d(-N$5d9B6SeO&?C*zM?i=ajnYCNTuSJnD4}T(&>$cIERklAVklw&g;0ba z=iIMZo#*HK{sVs3bq<${JodfMx#zwo*|W=f-23o3KVo0!dw<*gInlkpdHB>bx6j9K z!&`2)+1_h?e1$Ey-D=a#_WshEUt06yx4Lq9lTEkU`-^L?<+xn_cx3H4BZ>d+O@GYo z&Ew7TroNr}kNeBny!xkEAOC&oKT{KKW@>&)=9||4{gLy3Z2xV!AC>xe%KeD{Ucp^w zmI_mzQhVwe?yp&MuKK^%j@J_Z-PPSc#VdC8sddHc_NG_r{%Puar&j*o)lAJL<$rhN zzjN-#xY?=o{_pq1?fCEU8m4~CfA?hSzqu>T=PfY3rvKhsYI?Qa^!LYCn%kRe=C7F@ znAw4u9hljHnH`wfftekc*@2lInAw4u9hljHnH`wfftekc*@2lInAw4u9hljHnH`wf zftekc*@2lInAw4u9hljHnH`wfftekc*@2lInAw4u9hljHnH`wfftekc*@2lInAw4u z9hljHnH`wfftekc*@2lInAw4u9hljHnH`wfftekc*@2lInAw4u9hljHnH`wfftekc z*@2lInAw4u9hljHnH`wfftekc*@2lInAw5L(nAb~x{FUFbAOEMc%FzpX zAAcRP`SzT5`fI^WeXX(E|L6OUTxS0TypO*!+oE&6e{S#B`u_aKKjMj-4*d8B&gU)j z@%K+Pk67)eDevR2Vz%;}`FXsTHSbS-|I$;v`Mob{eu@3}U&Qm~^)}K!yX(#KKi8Yf zyI4Q|;~(z1@1J|l_YeQJ_Y{A;LVbK`vFZOZg7?>PK8Clqc0Pf7E$80z$$s~C=P7u9 zyTzxkn}+*8a-M;YuXmn>r+dzG@a!L)=i$M1OH5z401sbu?!(hRTylE82#=mydfH3y z{Cm#J@N9ee>G=TOe*V+bUV%3jTw&U)^c9`g;O$kMNAT|-u&tHG~by0zD zrFFL9+sP;Jhi-MRFMpiuZ=m@)+?V&^TgWqSBs;eq==uTtYIzI3*I{mc4Btup!kfu{ zSsudol=t9|{lM*K`mJPVU(J`{2goD%cjY7ak@Eb%lKtc4HTcQ$F8mC6>fg!E`SKEc zw!8_yUOt2`a+}-d+}p|iqk;1({F#dL4t(Lr?Wgxnvh$Mmxd{Kc*3*Dre!S}p;9IMc zoh198Jk`xt;NMWE4L{&CH$Q+tVuz7PME<}>dlJHM3&@E@wvfV|g2XzPt~=Tt0?hCr|$;xt`nP zdH5aj68vs?6@IV00e?i^hW}aKhyP7JhA(!7+n@A@$@RaZ`8<44&6nV-UF|vnJlbkS z_dXB*ygF6*jkmc@2rsEqhp(zm1HOqof_v(;;3dts;k(MaaDNAPUp@F(!6oY0bCbCm!VbZTMUrx6fVpaC3Lv9{j3X-FzRu z&1UZNoFRO;jq8lyw`={L7fioy;$JW4%Wgge|BdF;@WGmgpN4vWFs=(8lufms?hw$;%u2YA9PV*5wtLL@_Ur+O0_*m~7J$Rt| z?ZY=$X9(X`K7rqVuzL>Eb0yDxN6qKp-;n$8z2s&1LGmj6Sa}^D$|Lxh@(%nGc^`h4 zd<4Hk?#-RN-}~iR`0q}1`;&*qpBMS?`17I?{0x2G62Rlni>mOWH6Ox5c?15e)*r#+ z-MjD$v)oHM>tRL@wfl|eY|L% z;NyStyv97i)Zga({@$HWyVrYXo?wdSc)Pda^gpL(1=D|z-{1DV(Y;TW;8*>^c>^BZ z;Jgq2!JW?2^CtV_zq<95;NH-A1HP2J58qhpOwX6>ucY}Be7(32-#qTazadZ0pX?tL z_u=1<`|w8Gho7hYOsA6l3*$a~cHD>G9QWZ}d3u3l|KYd~e>(2NUyl3mcjEqn$^N|h zeTF>Tf7d;?CHQihufjvkH{fe(z76kcz7PMJ=Ev~tdu~1Hg_7&vQ}aIDzh_@>>Z1fd zQS%`@o^QZU(0mL2LgZdAZMgUK&rV;r10U|;ybJgCa^8b?cX!^0mv(hNfM<7cK7>a* zJ0HPAd1~QcdcCRXZ$EyYdeObE)9~S;u9Jc1+4ouhIJZ@Ob?Lc)b20 zJYN3@9qm{uRjOB;aT^($iurQy8A7_^Kzg5eK%i%`=RqPe0;p~ zfPRAWDm?oy_nf!k4_)a#U+Tc`*Zc(Df6w)cizfGHC~v^yf3MMmAODV9PXsS*vC{M_ zvjz9Ibl!%CTRZQ-)0;W(!n;N1J$PU9eYhtdz`ODxJlxpzNAR}h$MBNYGokCgyiX+e z*;hXWkG6H!O~doLZU&x}=ipWKtMK!5UN!h-@(>=MV;vr!V*?(aV-p^qV+4=Su?3IM zu?>&Uu>+6Ku?vsSu?LUOu@8^WaX{BO4&m`Rj^Ob*j^Xh+PT=u5rqaphBtFM9JlM`X zCndT*-w5Dc{c{x_zpfkbp*n5&8+uL#@b1_3+%A?}fA@X&`A;7Hkvi=qlk>~!_jNn) zA5Gl*Oc(AS<*wUZmDBXuV5an;RxOC|4jC{Mxr z@-)0E&%gtD7M?!9T{j004|Sf0d-4LjtNZfd{z0x&gy-cYcw6f!!%Ol2?#mnS><8|- zis0cV-Tt=W@pILON9qjWU3JFrxRciR$De=t|8eWd!o5$q_2l7krv&#ube$^v#dp{B zraqeRQqArE!0?Q&AFnf>FTpoazYO189>5zny6aZpr5l`A;oa+<*Wit-orm!Db7|qFe@ydvcy=z=FTtOW*AEXh-+=!kUOzlLx7H8eP5<6!3=cJ*UM9KzislP&Zywh# z!XtSNK9twt{w&vt;1BD%ZTREzE_@*G!=IH8;V;O?@K@yCvdMiI%hT|;7{5SG8d?@e3f3ubA4B(H* zhw$Kvm8Y*ef`_x6kKw+2LciS2d&?!yG5neH6g<#;8eWoT;KPetCkr3Tb8zosH(!FM zzu%&_ndp5 zPOdZVr{Hlv2ao$@c)b1q9``HoxL=3I{SG`{e-|G2d+@kFg2(;L3dwzl*Pn&Q{Tw{* z7vXWg29MVt!sC7&9`{@DxIchrKXm6iq^I2TQ^+RoH=g(Dns3t8kLa48&^7OU2G`Ym znXdVOuK5mK^If{;Gb<*qTV2TQLl&O>g!3Z2y0G&aJiDOtkgiS(9(M+Gt!D_2*OU4z z*01#x;PHBVy4F*H$Lnd*wVntbucrr(I}>=k9&e?c-$$&+w-}74&dIB z&g<~uyYBh#z#AVp@51BG2p)GbD<{_NARxt6L{SBK9{_1JYR;#{Q&N-?$+Od z$Nermp3khFyl&jj!o4-L|M0jU!sGb?Jnj$S!RNLAYb4hb_kDO<>uJK{egv=PTz>+O z``+i1*Bxp-Wq8~V;PLa;fyezWJf6?2nY?b?&%)#9tp<<#Av~TRz~lZ99zSn|FC^C! z_kDOg--O5g2p&Ig6L{SB^2zJQ^JRG458(0h)`7?UExuh5Jbpf#@VFnrn5)o&zIqG zKY+*2X9phlyYTq=%&eEZZrsnp&Ek0c>Y8;UxUZ< zAw1sC0X&``!sGocZ1DeHj}MRcvk8y;5j@_{2|S+nHcVbO-p?{To)6&hes0sOgJl@Y5Jf08X@qP~A@%#`T?`PpF|L^tq@OVF)@VFnro%}4O@_0Bu+lDrG|u5*nC`b<6Phx&gd&<0{kZsL{2a5FTH*4v(+ffydYF(skVdJigx{JihJ- z9$z=})#QH0*UiGmH?1;#zXf=FT^}A_w+N4~TZ6~f4dG+$XA>S@H-g94ZNcN~4&bGm z-F*$=p1iPSa)07^A0E#);qALzKZ0lF6L>uD6_eNPYrYJR=L7igZg<@dJf82u`}er{ z%vQ0FUQ~@T}$wTmQe;4-mkBY505)Vc-(2y)rsJtyaf;B6ZlZ> zZJ%6c+)2UXPMQ9u+lK(|$t!SQUWbSB4m|sw>v!Spcb)g(C3$*>w4bQM+Uy5 zJP+@#zv}dS86Fgzx8M!Ux8YUIci?Hwci|1qkKoyj+;zwBNIs!&=;kw}VER5%)8Bet zATPn&8|Z%Fd3gkHd|CSd_vAfzzv|`(@T$DFV{)C{!`*yHKg4+*?jNl6z@uZGci<&? z`D@ARHjZ}l0la#o^9nqFg!2%-rM{j?9lo8s1>aTPhVLcs!lPH*^W29YrTGE;SosKk zl{ypnEt>asO72fno`&C`P8J@2U6&lZsQ(>q0seD!itzaB_LSfkYdrz{9(AhlNb@zr z>+lEEX~J(*CxZV%-iH5Poi6+#&G+C>$OrI0t22U+G(U#_OYZHQJjbCrY4`&B=zS8t zlspH2S)Bs>bDHkf(AGmUTZ|b9Bcn$uRI(7KTH>@|^X~4JEdLsD0)oH_z zKe#a6>A-hUrw5;?Gk^~caGfE1A9cp?_to)s38t?fzn?F@f!m)H{1A0A@DJ6=!T0>M zTTdQ-k~%(ou2?@SV1B_uGKauTBKN^LuW-Wq1d^ zkUBm14O)NS@F9E&b;j_HIupZFUr(Oza_VH@52}+jJP%)49UuOTIz_|F@HN$`z~57+ zYIq1=Pn`yQp>Mk9s%dx&?yJ**ub@uX@IHJib%yYj)fpK+f$ykJYS-jBuB}cQzM(t| z-%Xu7d~?kg;M>ZJ@V(V3!!OgZ^@hR{ncr~57K-aex$q) zKS4f#pC%u{57Bie@P_8Sa`L<`kZ0jPljq>q$&2v!zNPm`_-&dG;74nnRruYSufgw^ zH{lPbl-;$#eOR zIw`|5@JO8;{0MdOhWqeq)G5J#pibHF3j7vzYVcR)|FSpr5gOir-=$6j|Gqjc!#nW% z)#<^1qWkI_K7>D_&KUkPbtZB3i(_u<}a?)_&7Uq|yJ_$Kny9?A3C zPM(JECeOpaBQL-YmzUuu$^-bB@(><>{na{rNB#P}2~TMsTJW!Hz74-X*X_a=QKt{T zN%I5v?eY=)lj=<1zt+6BXLA34Cr`tdRVNF7TJt&hYw`j-t4w>pyb8Zj_Z7nL)O;O&pS%gbMV%J>tOMQi)`mZ-P9Od!`2hZ$d;&jVCHH>feKWbw zuW3FF|Ap3>g}<%&9Q<8*0e*)%MfhC$y80!<1NhzQRN)J%Q-d!mufu<(P7}U@<|BAp zua`FbL3O(Db=2v>efa?XusS37HkuzB?(LgA$H&x3!^`Sq49~&;piTk4>@x1xv%cXa z_@C7Y;CpF36?jEngFmTG9e$YR8}Q@gZTPA34!j{Bz%P^!;aAALZw21eNBr+WZj`4C z&%mG8edXZytCNR6BKP61sZ)agMe}9&-{dv;-um@X2!B=c4ftESZUm3N9#ISajyfIq zM4cXdiT&OCVIMxPdca@UP1|@V(?+_jPDIwAZvb?SyU;j5_Ag5Rl58~%X23;(=2efaa5AHZLikKpU5Gl4IBfO|f@?xTukKyOay-M;N4_7A*zg6=Ycy>Yed0h^EygCK= z9qRb-U&%}G)6@yzPiwvce^Fk8H`J-aJ$>HWfG;SI;AgAThJQx$9e7^egP*6)0Pbsk z2rtUV@C(%O_D`PU?wU`*50Yo#m#UM4pQ8CZ{2aLtZ>dv)U#Iyp+}HC{f#0G|4St6@ zA-tka1AezU5&XC6wBQ4I2mTv%dhmZ~z7L;ukbD0b!u#rs;VWo@E6tb;a^s#Xm}YuR;L2rRGq5fA^d%H8t|>uX&T;w&-c39{|}mL3>SW>fsFQ>LR$hSbr%n<6 zwB}3jSL6Zw5Ou2X`44ulml}L=c@w_8Jc8%sZTL~TZWq3x=6mpMWtul=Ev|u z<=(-`^QxNMbg z|IYeTFGsIwcndyOrvtx6*XV`MrtE$t2zphT(@Gks|>h$67sWUKq1m8fN z34H!T-8p*SO`c=yY4{fEWZ_GylQX;k-$9)sd}Vb?h6nK7)TzSPRi|cn9sX@~n(!^v zi41SUtLk*&4gLDGXZQeqtU4ojTb;4t-eJjeJXM`Eysu8i@ErUn>J;E(b$r81@Qc+6 z;JY8{p2LdaHTc!))ZvG!(=a@O-=a<%eu_FB!+Y?1)EU4pR%dAV7~WIIJ3M)gZFN$H zXW&n$lY`%{PTp`I{;WDB_|xi?4X?moR;LD^s1q9Afd5OK2)A~~r z^bH@v7aY6mj^SIYGci1MMDl!>QYQo7Po1pcd3aVGAAW*5MZ?SR)zzuM&sV2vcnDut zod*0ib()5^;G3w^fj_QJ*YG}kTXlx;zpFDcd;;H9oz#)ZbDZ_v^}MN%wBcF!H`U3* zKch~;@FM(Rb;|JcLhkqH1H-HEnmQqT1FffScoTlIIxYA&)M*>uh5tyMKKuxE28NH| z7pOCV=e0lHQOR?RJq^D?oh-bhPR{TG{3dmZ@P_WIWOx9-Q=KaOI(2G>*WnMS(}Y)b zUy+uaQ!9P$Z zfIqMGR1B}d=YPY!&(z`G!tV9nFg$`Uu1*`CQ>SBi55BxQ1GsmXTj$X5F+8V^S4*Db zGU}uZ&%oDGCkOw6I(fr=_*c{^!M9SUYSWp2tQAq z2K+sBnufRFm#fo(m-IUA8s3Lrug(x&RcB=Q1b(|ZsbiAo*ia{JcozO^b@K3zIt9av z@JG}s!w2dFhF9t8gm7;W_r6*;ya|6^ofiDbG|EQCNe_oxO;RX1tH{Jaf;cKZ=GCY7Uq)rvSfjTwA>+r?ZX~H*E zCo;SZUs|0md@FT&h7aIbbw=d@PQ&mBzL`30c&JXt@E&{{bq4Tr)fpN-hVP_~cYN|3uT>{ycm}?^ zIyv~S)X5v}!}nFE1b;}Kvf&l@f$G%Ye^Mtjya7L4oe2J#IxWLH@MG2K!RJ20y)X3* zAHq*oXAECNor&S86O!k9hB_JeD(Ykn&%@7F$A@pMPSNl({33NK@LklY8Xm%DtJ8oV zs!r4J7W_JOI`CuF=^EaL->S|KewsQX!zb{&)JdI~Jje6YNyD#@XW{p$lZW4``GVm^ z_(STH;aznC!>jNo)Cu8_s#7<-34cnR7W`>-+J<-G&#Tji|6QGd;UoB~>P+Ahb-XZn zjf`oFM6bV-^dwWfWNO!5x$Z-CBp;wJa4({R^eYzrw0FuybfPTohEz-%}4Ov zU7~1&G+Dk$p`Rd)fvI>I>z1a7=EAJ`+o8qKdVj}e!Q-mF+2xfU7Z5_C+hfy zm*8uu6Tn;QR1B}dH&CYz|D`$&!z1`+>a^j1RHtKj55A2$1Nf`z3=JQ{cT&eYDS3_` zsFN~01K(Yp9DMPk-1Cz++=uV0P6@t-I%UHv@B`JU!M9W=G`s;nT%8EMr#daeJMd%G z>A??Ir*HTWezH1a_-X1)3{Rb$Jl`|a$-pmBCu?{fezrP3{8n{}hL_ zVE73BraBY&rRsP;2&PXkKF8S8@b}fp!mm>&XLtcV&%fMrQiT6fos!`Jd?9tJ@IR?j zGrSI8LY*f31$83B+wf)8>B8Sur)T&8{#kWK@P%vo{Ks(b)Z{s?u1*^M8Fey-=iqCp zQ=qHk8(xBMpiTfUs#7t%2H#AbI(&C^8iq&kZPaPQzpGBi@E&|8bq4TL)fpN-hVQP9 zcUtlsFH|RGcm}?&Iyv}_>f{ag;RmWyg5Rf3+3*VdaCK_%$JGf9Z@`aLCxQ>vX&K&u zpR7&~{%>{qh7aLqs56GoI@-NXCx)l$$@4v1oeVsqPS)@|{33OH_!{aI4KKrIt5bn* zqE6ND5PqFH4fw9=G!1XTZ&jxQKSG_Z;eGgB>I~thsWUQs0>4k4)DM&Ac%eFJ!?W;* z)G5PnR3|XJ3V%YK5Pr8hb;FzRr_^b|2kNv9@4}x~rw@Nqoq^#a_^awn;0wpU-akFL z|FNgxZ>f`ouc%JW@B;jOb&BvWt5Y&OfY0-9_x@0YZ>dhr@H%`Ub(-*<)QJpl!>gp8W=d0txua=kKYpD~!JDRV+ zyYd=*19j@~p5`0yC*=`*Gj-bVw=~~@zb@~=w^e5Ve^>KE_($?Fd>3`RGn41I(6R10 zPr+A^XW)COlY_6X`8<3Rxex!2IwklHnlHomlvm(Yb!zbMYCeRA@&^29bt3q=ns33c zkayrGsndh6?H9bMkG|nU_!;Vq;eWYe-RaK6@YGqs^!KNxzxBLx)XBi_(E79R`{a4} zCF=O_r?+y?Ptou){3>-S@ZamYRl`I0wdyqBPpQ*{=k(`8TJW3H>A+u6rwjk%E;>i} z&FT!{ud6eHzbT)u;;qF1j!{bUs2p8niR5q`TmW%z=c z58$7WSK)W56T+9#d>y{3yb1r6IxYAgzT(cM4Zr^&_j>8V?^CA_Ut8B5z&DbQ;J;O8 z0{^P!y&osfaXWb${*XFZ_|BTo8D4-ts!kF94RuQJZ_5Mt6Y5mq-_?8#evG^hAE?uW z?{Ter--zHRtJ8)*r%o4sw&r{AxxVlE1Nf`zjNrrP+;cKEJl#m1slk7w z`4C>z&vy;@D(Xb=`1x-c-h*GD>-OPS$cOONbloxhCe2R_PyIA`j%%uuf#0Q0*6=)h z9d&&8AJi!tUWRX|P6htFI#t6%_-5)f;IFIGG`t1hMx74)U3I#K_u)IKGlb7N!M%P* zhEL$TtCKoAd5)h@CvA8ZzOOoY_%iAg3@^eDRHqDIS)IV}D*SMDLU>-Cy5UXuvFfzo zzB+AqQQn20q)s2cyXFV*@5o2+Gt`;D57)eRPVyX2l&9h6sFQ`Cq4^yAe0c$Wi8@92 zY|WS8H^~F|Rq9mXcWJ%`|E;_Zze$}Y{0YrR@W0C2@QylN_^X=l!QYV&;P82$;lcW&|=f2U3wzO3dm@KxnG_!H_B;A?5#hi@z|!Jk$qfN!Ju3Vc_24gR7! zb@;xTZ@>?gNATCxX~U1zdxPCm;AwRtctM?(;T`xA>h$0n zs?#@o2wz5>F?>^XCWfcZPoD3J>SW-%sFO834_{p!AAW#3MZ?SRwbiM>k5#8?cnIG} zod*0gb()5^;9pgz13zD#uHk)nNu445W_3n}PvE<$lWHc<@g8;3hG*g5QYR08P@RI| zMff4=l;Mx56Bu5F*VGB&PpVTlya_)^ofiDB>a-2-!p~Hv4}V>qf#DO_XO;XQS_ z@SW7@89snNuFeR)hdN`!y$h4)__R7{_*vVz-&f4QtLo?AFR4?2e^2wi;U)N3odEvn zYu5LsJ}U4t)vv+dQ>P9;dJorW7#_iAP2A@LZTN+{ZpZK*d{K1<@N3i=8a{?+)bTD# zp5txmqzuo%S5zklzf+yO;XZr~bxQF2)hQcZfv>Ah4gR1yq2UdHtw-&vh8{7rQxhNmu0p6_1jWZ-k3}$d;-5vozx{bM|IMMXW>_V)vq)u|iag#TKd7W`~=+J<-G53AFMU#!l+@Dcn^>P+BQ zspDOmJjdA6@S!?c_$}(>3@^Z6QKtyMPo0wC0sLR;RN;@SQ!~5{|4^MK`~`I)!`txG zyYBs}3x89cp5X)d;_8gxsgqrQY`Aw>@*I~_Ck~-oUQwrGcn`k4Is^ET>I@AZ!^`S;QSux^by9|B;NMgy z2R~b#yx~6lAazRcYt$(lUV$H_P7VGmbwa}%@KBuy{+K!~!#nWP)#<^XQKxVC5Ppt2 zWBBvxObkz5o;=@6)ycsBtxnePJiMij4`1*U_r6htFCj0(uT!T2UrzH?!$Wvmod$eO zb()5^;J;9(1OJLTUBmnEyVV)OcTs0#_ym5RI;o!}&+!m-(uQZ@zf&gV)t!)v3cPixj-6k0!jYP78jvI&JtR@-F;wb^7q@G(Uj^;yFH0Cp$Zs;yM1fI=R`w6#pMD%nqh_jz6VNadt4pbNm@~O0$D0p5rge zgW16p&+%u~sm>0jc#eBNaIe$a>|l!jkJo1hQ#{9?Q>QsQnBqCUpgPg)V2b~bw`T`a zJjY*9r#m~C;yIpCr#Cy8;{W4=*})Xg@sT>C*})Xg@m19s&km;e|G0NW(qB_24PQr{ zjNv)>Se*iVQ+0g9OYncG6Tr7or($>wK2fI*FRRlqJc56qP8)u(IvvA%aPK|$yba*T zsWUWu44Rx;P z5&R`}T84Mv8FhN_x76tyK7=o)&KN%TsqT507@oQ+dA?b7GVmqT$r_%AucVGoSEp!r z8J<(80$*31s^KAg4Rsput<-56-h$`V>A?3;r)zj0zP36;_#x_y44=RY>ZGntp5w{t zqz%u)H&iDNKVO}K;YGNwP8oi^I)UL;_~z<_@UA*_!<+D;IxTo#owng!__pfw;m@fv zFnk0rsWXAUsgBo5o@4B3_|EEN;q#v6Uhg@>3-Gc!MflR{lnf8xd#F=|e_oxM;dOYR zP80qWbt1#t@NcQpg_qRn89snl)EU9Qsm|DN@0#Q}9;8khev~>H!*lSeItBO{>iCA2 z;76zvz$0}khS%UVb?We2)oBaH)ycsZs=L=|-f$m&raC3~XVfVhUV%5%slnG#Cp5ePKS!MizNI=X!#nV%Iz4z< zoxb5i_{Hjs;RmQQF+6o$@_Zw8GVl}B$r_%AU!jfR~_$$ z$X&4^CKTxL)UtOJ!;XSzbzFYqQ?yEC2d<>tZj(1b?9CubHWq1ajQYQyLP@TNt zK73(yO7N4^DH~par`4&!&r>Hfya8WQod|xlIxWLH@QgY=_#Nu>4IjdnQ)dkSojMc4 zQ|;vWX4T2SpI0YqcpkozIzId(b&7_U;W>3G@XQ(RIj_QV@({j;It};+ns36llDFV_ zbvp2UG~YG64_{lIA^b3PMutz|1$9z4C(kidCvA8ZzM(pK_>a^nz?h$3+s53Bp1TU#GfxoSecT4gdV^70(RwoNz z_)Pb@$QfRMm(?l4Kdny5@BqGtI#u}R)u|a?hX?93;a^cFGQ17{mO5SduIls*AHXZ> zjNpf=GdA42HF=H)sgs7Eq)x{09K5Pd0e+4;zTqYK5$Xi+o7AZoUW3=vsl)G9rvZOh z9>I@OrwxBu^Bu!`@KBur{C#zX@CDCuua`0W6m`7YlIQqo&8G~{!0YPd;9pQDZ@3RX zOPvyYBX!D#SKvQYrv~3aozUSnE5PrEjWBBRnObk!` zJbAuXsgr?UqD~fmvpf&KP8}cqfaZ(vC*)=L&FWO(FKWIDpU6Y_?dmk(3;t+5Z|b87 zUryeF-=j_kzLw^@@Gazh_zTp6ZkXgc(*6d z@g;ehu1*&IPtE5HFTh_{rwCv4$L@7ef`3|Gh0l`L;7iJz@Rj5d+?TiE?`WM}_#T?? z!4H-X;1hL5@KZHEhS&Ay%DhhUT;~43?N1thraBq;1@Z#?D!C88RUW{*@(TPBc^&?w zyaE5aybb@CyaS)B;qG?;UsOJXFDv)%NbXxso`Qc-o`Zi`o`-KHFTuB!m*Km~Yw(IZ zgdZi3;HSu2@H6Bc_`-TldhiQ0-#2^+|AabY_!a6*3{Tye-2cVZ$-u8uCkwwro`)~3 zjt~E{=8N!GxYz)#$B7{XUmrvYC|^G*25@)rDy>U7{6X}$|D$@}oN z)fvL~(EJGg9r*;lp*pF%lIM7$=F{-gg3@+(|iGbgS-geUY#=h0nG>SzPt+G zRhOaT&E46=VsUG!uMCF55G$5AHZ*IyUqxHm^u^q zgX(y9C(rRIb<*%-)ycv~>f{VBz)w-92={*K)?YF_fd4?9Dtr-jYKGV0b#iCA2;8&{? zz}M0KR1B}d+v?QezB&!VBX~!hHhdd(I)?Y)U3CWVud6dOd<^fYg3_?t5Yz%2=~<~!{(ZRVOmM4L@9+E_@$#dWH|+ zHFZYt1JxND?)^G>j>oH$h99X;#_$~cBy|e#6V>qzFTqb!CxHJ@or>W#_?ha|;b*JU zFg$|)M4dML5_LL;_u%KLGk{;M&d~5N{33O{`;zB)vpOlmGw?{A9Q-bI@`n5HE7d8% zA5f=kcm;l~IyLyC>V$?j;5Vrg!T+L8%kU2THg$UN=hf*OK7`+)&KUj=btZL~g)9R!i2&PXkKF77xNgJMpKc`L}zL7cw!;A2j)G5Qa zR3|XJ3V&6d5Wbf>b;FzRu{tgIk?OP!@52ABP9J`zIs?N;@b}c2z-O!D{U&*iv8Ul5 zsgs4@sZP%D0({nodOgA)Q>SEj0AE0zDtx3)&G0&WQFWT|kJO0_Z^M^Rrwjkox$b^@ zh7aHwbw=zM?t>_`aI=;fKjf@Kw|a;6K!S1%9Et z2478`I{Y@xH{idPx8V=UJMcft2k>X*L-;@CWB3|cr`JoKi+7%T9#Zhdg3=n zYCaENOYXxrRi^~sT=Ql4F7gU|J9TRC{WKrKzb9|NcTp#T*EQdQUm)+m_f)3`zgF{o z_+9cL{M+h`;SXzm0)IxHdN6su2dk5TzpnW#{3CfDexy1+Jbk|2KjACNEAX}DRrpus z4R~4JgdZU9z>kx6;XjfO;gNglIP(gc>(^eya+#D`&@=E*mV0G zz?YR*;XhC(gs-9bI(#E}6MmLDE%^4DZ^PUA^8j7=x$5-c`>Qj657ZgKo9ay9C#mB- zlsvC<J;HOYQ6-&RUW`ERi_K@Xub!(S3ZDWq0R{YJI#;bPsqK8llObQI%)XR zn$N&rl;_~LsZ)Tzu6ZB+j=TiFTb%&@>?P}ZQy&%hd6&EAyavBtojUwp%{SnGmPhc1 z)oH`M3*2=(@FnFv_#f06z*p7$5WbFl41Y!)?~&v=Zm;>2;TiZ#>g3@2sFQ~uBKP61 zt5bp>r}?ts75Llg)Zpi<6B^!t&-IZzmk557IxWLH@P*as!GEbv-|!)PDRsv1N7R`Z zp89?Ad_S#D2L7}du>ybNDcoeDg4q1*qe;URn-bsF$x)M*;tf^Vcw z2fl_nUBmnEEz}vpzoO2_@Ckf7byANe&#|OV+VCuV7j^RRJ=7@}UWD(dP8oinI)UL; z__x&w;m4>`H@pcySe+L9hw8Kq@4}B%rw?zcGcbGvKVF>)yrquUPo87!Y51w?WZ?_n z>RuN)!wc{qt5bw`w4RdT0sLHbs_7a zCLh4BRA&T#SobxC|0zDl$CBrGojPgwOPbHX-;?LyH>*>CmoIgnxA^cyE^^O934Xge z0sK*2w*p^5of`Zeb?WdhXubhoS02IdQ>P8zT=N~n2k_0b4@3A4>WtwJ>blLN%Lj+z48kDDRpY_NY8m_cmw{NIuX35PRsBP ze56hf{s*nUZ}<@YPj$xdk=8RYJoQBKeBV|l1Ajy7$r_%A|3@7kp8kY;zbYDDhR^cc zd<9-mr)qczUr3z>JW!`;cniL`Ivsdjovz`1_|obO;cazBhEL#Gby9ywp5suRwBcF! zs_Nw7>9pJbg5gE@n(CC{i(b5*H}w%1UWKotP6+q4p1R>p_=f7V;1zY+hIiqcsndry z)EO8)f^V(P1m01{`(yGPV^70(R3{4`s*^Lk057Xkgr^pB=Uy^AfbXqN6`oh8W_TUG zpE^x=S)Iu6HvC|9y6~DhJ;Mj^Bh(qeBX!1xdw)uv!i)_fDby}Skgr#c<@zMAhE-iN=V&Jcd6 zIwQj;@b}b7{Uw;*@6`0So)@Z< z>eLNy!sk<`1^=x&ZNt0p1=Q)opHOFD_z1qRIurOm)bXB7o@4B3_$SoK!solxy)JTw z7vPJlQ>3d?GCY7UrA`(8Idy7=*Wnp;n(z(Pi41SUmsO_=-%*{O;RE=m)fvI}S7&Uv z_f+y6Kch|>e!Myv!*lSJ)G5F(P{%jC1YcF103NARF}w!cwU_W{4RBdhL7QEspCDJJjb3oDZ?}Hb=Aqi2kPVv_u=cSQ-Z&wPTBAZd_#3= z@DJ4q4R63VRwsgIE_3fcEyFwTP1WhaKd(;T@F9E)b;j^b)R`EbdM0_kMRhXpUDU}M zo`-Lvjt~EiIz_|F@a@&9z>iR;YIq3WQJn_-6m^=0x8OUg(}6eD=^EaL@2buae!V&) z!zb|F)JZ*?JjdJANgJMp@2O56{?L`~c`m@8k(c53>$(B_ad{P9(RD-kvzo8NUz0cC z-&LmtpJ={qco%+*I(_&;k=us>d};XzezH0f_{y61{+c|mwd85|nd)TW8*4sicmaN{ zIz{-`)G5IOc>upuohtkw&DY?^$m{T{)oH>{)qG@l8{Sr@3%@{}9{fuA2!6AC48KR7 z9wyK0L3sxLM|lDMoZL6O1iwS~6~OAt6!fOYu?@fJ-;m@k$J(oO}?bJ!Z%km8T@9N~>-_(2_eu%sTKSo}LpDM4x zpVXh53gJK1d<6fy=3DT~G~a{&T;7L2Bp<{7qy7Z`oaQrsOYZYK@+^GrpSkzRJbbKu z_TdX_z6d|>opq;<-7CZ2Ri^@9R-LNhA>5n0Fx_v!S68QLcniLOIvw~1>U0h7!xvX) z2;WAXk>L~gvg)Ls52o)g{{4{M)kzzkg|DPe9)6%Y1;dN*&#P00AFEDacon{`IwAZF zb?SyU;Tx;df?uRg+wd;Ds7@b#ojL=g3=UpBl3UrzI(;SqcZ{du7ld<}Ja@Xh6Y_#W~xe0B9F@FO&z`FnEz&y;837t8bT z2eofL{8r5u;Sb2m@F&!%z@OE86+V`S@MqL%z!$i}y^l5FpOm-Ye^;ji|D5K#@PfP# ze?y%id`HcX;OV8@`@;nOfjX&C^1K3d((ps%S@`_(xPBgfs^$yupUTVdOXUIlT6qZn zg}e^`wY&xYy}S+otGo+eT=&(7k2ODl&!yjQ8NruPX98bb^WMwJ{r{{y4PQ~6EPQRv z=ipzJ7vP^$rwA`=z69T29>Bk(P8EKP=4n)_erNLEeUMs!kXFOU?J- zefa>swK^mC-!wmlza{rxNuJ}^)Jel`z zz5?G(UV|T?P91)b<{O4b@Wa$;!;ey@V|WjKtU3eu3F-_D_g+n&*S7k3EoFEPex~|) z!+m(Db(Y|lsZ%z*0zXxq8hjtEKZNJ?{@;L~rA`DtB>wyXURI|AKUbX|{CeG2-|!*) z5_QJ#yVRM$L#-$ETJjvPP$vU_P@OEirA{7xy*fVp&*~HnFT-zBrvmTmx>dOMN%!+< z2)|362E3s8CcGkV!S7S21Akrj)it~ie@LAnJkoVX@b}_#gg>rM>L1B-?5dN7f9h)Y z{+We8sZJigw&n|l7vXPxD#BefU+HFB)Ef|3dRs!yEA5Xub&_$UE>?4hp#Lzz}J));fL$GW%$;b58yk=tMFsh3E>B8 zz77xdKGuYvtWFF5J$2gfAIiJ%Gt}wB&(ZtzXgYC-MM(ojO(cJlDGCvj$&MUWebRP7}VW<|D(~@VnIM!oR3a z55B2<0KZqA5quZTkKudEy?-Uov8PTN{+q4b{$vc#!5>wp06#+4^$jn07Q$B!SE+4|LmV5tB?(>cE6#Pzk4*pwt9{!lT1bk)9;it%l@P>Q@Z^~2eB=_fXc^ZDLJcQpSufsRc*I{VF z|ESk#3;rv0+VBI_>B5KV^x?l#XJGgU{;E0?_(&aZlH8xz)9|;|$-?Km-aY3z!wc}a z=5@dBE5g(2lnf8x3#(IwFRxC`@H%{Pb(-+i)QJpl!#}A`7ruo$J;Mj^Wz`wM_f}_Y zxc6@I9JA`A;rpwTF+2xfMV$gXRL3{G1Ybj)0A5$8Vt5VyC3WiXpQ_U^Jc1Y0X~Qp5 zr(<{zzL7cu_|57J4IjfdRmXcTd5#aLlQKL5FRGJ+|3#g=;XZtObxQDms8cq)0^eDk z8hoxB-1|mocmuwhIuU#+by|jZ;DI_l_-g9(4IjeyQ)dicU!95JsrQrTd!RZQ_*Uv< z4bQ`?>iF>8)hQZYh99L)1%9wPRl`I0aq4v7C#uthpDORePf}+Hzd-XN!zb_`sFV62 zx&N1`lQujHKV6+X{2Fx%@SEjDctf2s{0_|r@O$M|cvGDa{-EaT@W>jbKU6PPtx#?I$8Jvn$N)(lNaD!b&Bw% zHD7{%MjpU>>Qv#YX}$*klDrP@tJ8#Up!o>Cxx5V@sMCdSr}-XySNQ-wRA&U=NAqL& zfpYJ|}EQ-J?a^FI7+c?mvICxBm~`3k%xufe_f3f|O59e%6k z8}MJsBX~-kHvB=&ci@l9d+@Y61NaKJx!2JU{**dnct#!XqvSchp!pR1AMy-5t4v+zUZd3aeJA70aZ5q^@q3=h<) zz|Yit6@H;SgjdvQz+0Mc!f%$h;8k@x@H;i%h5u6Chu72@!hfy#k>L|~s7`9GjP0s1w2?{da^g!_}?QN-i2SGP9OeP-PgeI5&TAV zCh&i%J;Jg>;K=jWOxAYsZ)i2@ zzo||E{!`8S@T=q{_y`K5v2lP4f--+wus$pgL{3{(ql4@K4Ko z@Ws^`z`vyVq2XirGU|Ag3>CXg+Va4_{rK5_}tV%7$0q>!?$M zcg|UV`gIx_-hgkcP6XdU>uDL@fp4Ww55Ai^eZzrG zhivAa!;#?=cvGF!e93c+bltS!S@`AZa-2-!hfqyAO5sD1H(t~$JLp@N9uULv@<)jn#<^Z^IWzxu2K2@UN@WGkgGFQk@a}V0FfZ zd#U6(uAojDeu_F7!*lS@sZ)Sos*Z1X3BHax0sIbiDu&nKzB+aIAJl0W9>KR!rwt#e z(}8~^@4>&W&H(;N{d?pgd`hujC!cSFa3~#A3F+8WmDZ(A7yTlsw0wI%&hR@L#Btho_cx`&=-*2)|pMGCZ$NV0ab&|Iu~t;rHxw z-Nz?6ETxQ1ENt62wnTi0ZH1UnE$1O^iyS67EQHySR*n*?nQD>I#?9uF4aPZ z*^Z0EIIk2&*w%Jx686#-_kI1|ulMh|*7Lgj<(kKSf8X<&&%EX{>-+tFzCUkKpAtS- zpVfEpHGHQ&8+fTc&3Et?{$BOz;7`-Kw}(GdeuO_y9$n@1e!Wnhz<*CZfxk>Xga45{ zgTGo{!2eRdguhw7hQD22!`~-w;UAOl;GdQs;9rst-@&8rJDs-=>AuA9Z>Z1sJNN|t zarK$Pub|&|r0{d(8T?}P$>9^#FTR5>;e-0D;I~wt>N|K1|C;(V@H?o__B;3vewq60 z;dfP^{yX>pzuc8=J&C^m^gi}_9!Kym%47I#&$T{d_)+xv*#{@_o^@8W7Svi^g0?p{3fdJ;I--p_-$1mU+r}K(RDR`_+5Sc z@Lcr;{JuVZc&qvb{sEnmjs&C*g z_wmD%>udb*SNZs_emeeA^$9$>rqu=bBW|Ev!F%;7;Qw+XtFPdFV&kmgsm|NLFIJxp z9^Fva3qPtpzQ*bG=Bf|y_{O>}c(3{#UTT~L{QBxs!OI)jI2(9SeFu+jtm}f`RrT=? zoL*OQ6RQvK3;ep^rRod#qkR1Ei6*e>NXE!jmyXHK7)66w)zYn?q)uR=XW$;!rLD+U%|V3nXl>hGvB~l_20wm z`&#`0p5N0vy6)+HPws9$qTj_lfxrKc^*(~X>6h*IanZS_{l9Q8t1sXm{B_&!(ZfF> zFRpjmr@pz}-wOVH_qP5GJi3L|ckrP40bZ&;I`8znxsGG_kEu_9*FS9MP3bz$;P+CW zCA@jn&CfhhTX^?M^8udR(#{)S|8)FM^Krs!)o1YMtGSO({KaX$o@x#+w+4W}dkE(tFAO76tt$-KulK$6Lzk)Y^WnRI9`fTABJllRh z*uoPX5Aagg72V+UJ|;Sj;a9ki&F2(ezfso<@72Gg>$rknP5m2q8EpPrc&hpie#bwv z_2CGwF0yfk8=hWobZb3F@K*gZ__O2%yuOX~Dd{?{;BWs^8|M~Yyv4>jz>^=b{_%}Y z$A8dx0zA5{)o1Yhep)B#s;}TrR(%6+Ro}r&)erFGb{hYUPsd-Wegdy`ynrX)eTy^e zRRM3lX!F*T%kbJch7Td974x2lhS@O1ol zR(*gcchLCZ_fY*3UaEct@8u1=zLWKD={K|Sb?}!y$mVT;M?YqL;>qcCU8MQ|FIAtx zU#qv-%mb)KSn-1&*O!841dhy z%@cV4Df@mlz;{}2Q~2}LCxc&4=gr}j>I?V{RbRp%qWTJcr{2a{!*8lS4g4OeZ{a_r z`VM{@c@IBdKEUrPkHYEv-$Ne5FVuJv_)n`oz~}N5es_KD%HUU0eGY%9ynsJeUc!G} zHyjFW?`R7jR$qmhg|M zzJ!16leWIC;Ga=_1^=>q4L{0jxaW2Q_k1>R&;J&F_PK`pbGn0H?g{qZ>EOPO?cu)8 z_i$g&5Adt0{{Z*(>IlD?p5N$4PIK$)^9X)@^^f7cP6l|c_kIR{nEK4&=l{Fi_X6Ik zPYJJeT)|(W{#$tZ-M6&gaNPFvdi(eN{27no=ReWzR|-!$tIy!KQ+)wX?xoK^@W-mY zftRZ9;Dzc3c(3~ScBj|%9MuPSes6uwguhDl3%IWv1^qmm&n3K*m+)|Xt6#wrc?BQT zXAQ6AHN2JY>FVFZOZfqw%ctj`&S#d`_)~Z+pTP(9Dd6doELRo0l{fJ8$yztyxqP4( zRv+K~bo}{+<^f*HGx{%DeL;VUc?GXuWZuA&-!$*wy?mhmmet2ojK4Au^cS0F^xrox z=r1*|;0t*JFXRV!`wh#(05AUA{0JXZKmO6v>xxvL!86s*;iN7wEd+3%@RS`XF5w{8#+C?tFS(t?C2(g+6|GI=B8gy!HD9e}!KcyjGtE z{yM)dc(3{a{uaM3J>UNGqU6Cg&H&&0b-`=Z7w|9m_~Ge8bYI|?s(ug8{>RqIvF6Fg z8NO*ghY#{KJeTj`^<~y4{&C!2jWfWnUE6b!!IPi0>nh;4Rec37Ro}qxq52NqtA2n# zR`u~+Psg7=RQC~Hzf$9;tG<9g&&Ll>9;W*U|05qiyjJ}H|0^H=-A>0JJzV35zgzVg zJXd`I|G4Vc@Lu&Bc$(XJJ9sG{;9vLg-~Dv_z3Kz}@tXe`JnC+B=KGoqUcKLZ4zJ&B zzJM41Y`%nd?=e5Z2la`5;&lAw&gw_-T;rU;ef$CL zoXOPykAKbl2+yBtKKiNC`AME@K8APl2|W5$tDnL{X}*MK&oN)Yi)Wj!;pwx?Yk05m zZ{XF1R^Pz==NKJ4d9~wx=)d%>kRG-4%BA>y>x3~Ta_`6kKz^AHT z!9Sq-3SOvw10OxZe%{-_8`baN|EB&Oe6RWg{IjYb;FGCc@8}+<^Z8}f$MB`F1H8Jk^*O@(A2T1_^Yng|@)%y+(dx(WM4rI=J6Qb$UdiY5hgf|M z?=LW4z+3qW9{r5fZ{hvJ%v*T!Q1kJ+Lui>$L18?7G^&LEYhRwqO zzjG*Ti2lx|J zKZn<l5gzpTZ;6r||MJ>obD~c?S361-#aA0S~vinmu3eSYE<=c?EB8ZGATIPky(} z&kjDw_wZiF2Y7UO>ofZ4)B6~79K)ljjb{w+Zf~Bz2h~sESJin_c&6hy{9M&9;9kFk zw;E3gujLzfc7a`g1F!F3*R_R*`%0?q{2;3f@aQhqX9^DwG*97;&bxpI^)KLw`Y++(XRLn-Z*<-b zJX8M$o}|`i3lA5Vx9~>iJ-`d~AKF5*Bj~j&d$G% z$MB%~1n&K(@J#h7-0SD?LiIV^>zD9K^(EZv*L2m_bRBQuo$6b$dhqFe@%k8EX*^?iA)mq1hgjbX-apC4 zKZh6c93IOT@cN0?r+{bj6+F^-DtP}i>$8T(@*19MJR5j1fJ`72LG)3WN`1ZfJfhB`CP%h{~BKFdTV$o z-@)^rwY+uk=mnZLc)QZP!Lw(YAK>*f%m;X;c|O9UU$^>5>l2YCUnG(Ssts`?V{ z^RR+vs^7rR`990@79Ks!?)wg&$Pe(KJ_FqQjP!M$hneap@LWEHXF8t4OVuyne%=CJ zX&#pFLSDf=hc(>ic>|BtX9tfSu5})s{*C2r5AXikyocBF13btFc==b>XQcD{{7=5$ z?t2XPbzlO|bsXT$8?FBoUddBB5*R`VSxPo_oZ{u0R zOZf)A(Rp|9=n=Z_@a&V;e-F>)J-m<~;OSef&j3&4Bc0#x`@OHK`wnk)Jb|Y=4)APm z=bgfvkDAZmPuF=Da6fMW_xV}EeSS)~&(8|p^fsOfUdcD`PR9*A`IPn9!Uy%)!Jn(^ z-NP&S0iNc1&%*Q1+If%gR6f(!`ThMP_0Qn7ju+p-3wUy|op%Y3R;Q;sf8U6g}dXnonhQ~Lt@r>ckjm;ByET6!GJiv4L6kgxd`ls+x zK7;4-44$a}0{&UePXYJ&S-}S#SMdIaZJcX(EwAC(&8>a|Pvs3fmv7;*yoCq(4qo2E z&fCFLjdKqlRNuo(^*_R+t6ScpN1f)X*86M%PjwvN;kGu;DLj_X;MdT37w|^M1$wNvMI=_!qX7wX@xS#n1-sm{MWA&fHhq?7h;eOs3ywiCXbR8G) z=mFM$2~XrD+|Rp$5BIS?Yj|``yI(cD)A1IbsJ?}J{T`mGzK0JwKEiX=j~;uv?s||bR5Imr&ymcJbkKp0x#tgcqI?;T0Vt0@)X|6=kRE3^R|GOIxgVp z(`@`pcqCuJZ?66u_@LtkUO&hBZ{dl&g_kd~`W<|Dp?L?7RKJJU&$jv=o&@VPy>qxt83fyHG!w{ zDP6}ic&_>dyw`C7FMmt-3!ckMxL@xI?$=wv{d(7M&s7cgTy5adi*1|@-1D}Dd)`{O z=WPe~ymfHT+W}r^o(FjC_xlN_&wHxl7(V>2UDp_1$P;+{GOM4!gX#nQ6;?lm4}WMr zga4|oYYs1Uynt6aUcrA$eb(?=zJYuH4j$Du&ON;UKjsH``U^Ji1HAiFt3SdUd8DuN z=dpXG)sNu4JchUO8T>zWy$g7);{qQ3%+9-n$MO}tkXP_hzJXt+@$BHm6K&o)c>O9H z&mJD+Jv^2l;Qsk!fcxi@BiuiqL>iahmqh(1@Jh!4-fwLDQ+O#);g#lXM%U+}4DREf z!+rcYyi@-rJid;t|0O)r=ZQ7^2CA>&UcZCKPtyH`r?1ofg(vbJ-oDoA5AgiY%?EfZ zKf=RbSbd~%`Tfn+e*}-@V|b}~n7}g~2Y93Fn!+pj9R6bUU%*Qp7x3_UyRIdCQ2!Nt zdR@Ek8+fbZ23~Eg{}x`zckrK5{{uXIverrZ8?FBlp2#D8o!_tY%~n5xpIs;6zD|ze z{hO>$0`GKP6L=#J@KWQM!dunP;J>H&$>9DTS-@)@7x4V=Z2U`jDlg%^d<7pg{tE8v z`5IoUegl8mxt6O2?(dx)JSwz4z=w~$9o(Pm4(`wO9$u(_50B&rxIfne+@I?s+@I@_uG{nTXwMHk zRsJUMT*m?4{*%qm6kf|yxIfo3c%}Lb?$7m{{vPE7{z+X|0rz!j1@ClR!Ltuo|24dM zzj+P!_x=X%&qV|G=VA-@=c0vo@3r&p;Qn0f;e+O(hx>Ce`bB#VJP)moV|e(mop%hc z{?$Bz_a8H#z@vXL5A?nH6kdJAJcWl3na|*@JcIZ0IlPlE;64upy!p7DcL}fMCA@s9 z)vw_GIlqGY=j1iqKPT7lR{eMIE1YNVg*`lairw!6+&>SG^xr)XvHFbR-e(4npKARx zxaVgMFFs}Slf#GJd;$0T6m;ch3HSVzaL>;Q?)j>z+mpHL;PT;AI1AMr#<{zHQXYio@3%FnJ23{|<-ol4F+IhF|a0l}i z?)QBM_xs+#qgz^^J-oVwc@OvdKEPA;Il}W`eIi|-&wn~GkKsNKV|aget54uzWo|jl+gtq{-kfiq!+o9?aG&P_UTZyB!rR+f|B|ly4ZKvYws6n+4(@q7z-#px z;NEBSE0)Kz_e;kyUGqPNXYvG|`~8Af@&GU7Gx*MMA!<27CH#~SYM#|_-yk6XHqTX^~)8|Mz5$q(@42KM>t2>18<=$WTENpw7cr|L6< zd;J1l>$rgD8s`#T%r*b;O7$yvP<;iD5@*eK* zsRP{KQv+Sk`wdt?sJA7=BG z!-ISQ_xDIa_n+6n{XJ5`yPvc3uHeHX%`15J2=g`E-y=0VRi6ev=y(ecKX3h8cp~4y zeZB4AzTWQPsrvMAf4>~yzTO_;7b*|YvrpFtf4@xNxsC%o(|D%vN}j@V`3&C6Gk7as zz)Ow4fcx{lf`{kWbyjr!{$dSpA7}TmhNtok-1FSfmFF$o^W4JoN7;FIaQ|G?!Na4i zeh>FNAK*R@13dZ#>vMz;PcV-(f4(kxZbxv>Z49rq?v3G|+XU{pox*F~_Z05AUBF8n z7x4H=c3n&O@I>$rgj_20t#!uq%H=oig*@czl>9lVtv;9t6tjdOrU zkI-{oo<8r5j$^p5^J94NTpLdUZ=Yj6f%|h2=z1=uaDOgRc>GJ&e+KWLYM#+QWIs=v z!~MBfz$rkvuhjj82l)oxs{ali zJ7`%L&_37cQ`XAt##xuYx)gR%x>PNb6&(APXe&D|Ua{|wG z9N^VEZ2VJrAy47)JFR{OFSI{AgZpzahsWx_fTuUJ>nh;B|8oWJbX>u+f3b0{;l)3j z*YNUP<{Nku`U0Du0$yGI8utI|0Z+c$yo8_qeiMH7`%Spd z&l(>7)8?m!`}dm-JUUwa7G7Lx-ok73@8CWUdwBf4cD+5k9GM^B#g)uQtJC*XsdK|GV8B?tizt zfcxL=7I6Q&-4$K)S;2GNmo+?<*KpqtwxR3$)&}mm-NJnxZsEQkYzL2(&jY;Gbq(-d zxjMp2d8DuN^~#^e5!|207#@FJIfVOlC2)TpXYio)XAVER{=j=3ui%;bRB-?M_YJ&I zeFOLXV>`O)JGhVY0B=-3`i;})I?-`VznZNBV|WppPvE`!&*&P*3f}6tqU*eCcqgyn zy?g^N&arVe@Jzmi59+gn$G5QeQ3pT!zJ{kS)cYDXK-I1GP>4>Io#KW9Nwz`0$#}r z_}P7Ta9o|tTx3=pY!;{;XC-6q~6L={P@IpR?=kgic$C<&~+uC^M@J61){r$dx`}@6s`+Zr` z)xU&S@)f+4S8#v7Z{VHo;}-6}huXnYy;lzK=(qK`2%cSX?K9t}AK~@Ee59}Q_fh;< z`#cuI6CF?Bsp@BNug~C-&O3)^pR@5S;H8cWc=rvfU&0&t3jP?4a|7@Hz~-%ir*FRA znR(m7qrWt7;r;(L-@&`rn|JW4G2g>Wc@J;?*6I)N{&nU9ynT!Lk$#bRRGqF5U28sq z5AQIK;q}|i$MEcJ<_SE%_IYRKb3(tSd4QMSV?KrFS1?cE?f=+$XYlM#u6yRZ8N7L< z)z9JK=gf0>{Rr~~JbAcz0q?J5<6Oe)hgy9JZy#d5f~OBQui)*2%-8Vr0`nT)KG1vv zPk-9Hfw%WJ-@?<(yoI;-HQ&M0``*HK= zcTV$P-^F|ckM3+9!}B|tkKyed%oF%9HJ`wX+nWdYa69uUytu7-3LkD`K7$vxHqYSY zt<2}}=$7U=yu5|^0v_GmynvTCGhf1^iFpYxZ)(1RM>jFA;K_~5*YNZP<~6*yzWD}T zU(dXOC+C`P;q`UQTX=G9^BugtmU#yc*EHY5+iRHj@bv2D2Y7om^8p^m=0|w`{pQh& zPxIeg#e4*hzt=p57gshP!-p%GC-CBm<`Z~xdGi1tE@wW4hwm~^;mx~W6=397ov3U!RK5M>%hfkY#@cdKedwBIp^B&%Q-24C^{?&Yd7aub}!iT+i z^t-3|FFtBMg7+UbkKx&e%*XKd1Lg@leZTnx-oDQ~z|;4dPvPx*%u{&!Pv$dt`!4eg z9(Lw)c>NCZ93H*hd;!niYF@zWi_Dks;UCRQc<~SBEBNqt<`uknv-uhxy~(_WS6lN9 zJo#Jm244NO`4%3%!MueRe`&sh_lvc=a3R6}(-Uui?r6GOyv~^UXK# z{(0sNJbkYD7G9R-ExdiU`3@dE%e;e^&oJM^qofcH-`AK>XPnIGZxQ_Q2^ zKh1yii{>MEUYN)5_DSYrc=AN^1YSPDd;;$uXCC13!h8x(A7h@vi$|Hy;N>IDGkBGo z&*AmM&2xD4F!KdG|5@__-agoT3GW|dUc#db%vbQ_f#wywet`KJp4{KOhS&Eq-@v>3 zm^bj~-sW3)xTkpwuV&^u`0$hF9X$I9^F4gHn|Tkf?rMI3CqHgJz?-|6AK~ep&7+r` z=D)d<`3Roe(L9D%KWaXPhpBl2@6I=$!28>p2l#Ls^C>*s+B}8Vw=$o>!!6A-cy$Z& zIXt{r`I#zz{~5J zH}L2>=396%HgDnawaj<$<_F9>cybN%Jv=?fyoa~3`2n6@)qH@r-)DY=hpU)J|NAum z?f00E;Ni;VF}%5w`4~Q2!90Oimp7llyUUpec=}!DQ+W4n`*~&xPrqe8gV*2G&p+Ym zW#)5u_YLzLo*&H@@cQfK1w4Gsd#OHILS( z`HwzkK7!|a^BCTK#C#0TK5U-AhYy-h;ME7r13Z4e`4rx~&pd@E?=_#noA;P!@bsU| z=kV@b<~h9BnJ?h=JIo7s|2Fd_JbJ5n2~RIFU%}gdG_T;{AI#VA_V3JVc=l%V4ZMA$ zc?0kN)_e<3{>Hq8hc}q-;Kg5>ckrPx-^26QoA>bcwdMzS@)za($#XN;K7n;xDp)k+j&6CXM z@bEkk|T~m1TFzs`IXOA$G|$x3*y;}tyB_$zp$@vrF`{|4^;8@T_wWLvoZyJS1K_vzrB z#&dwjPq6(_1H9a5J$?DA(BuqUgys&M`cZPvDh~1H91ZhbcUjr|?3#n!)4C*}sdG!IOnP z&%k@t=kVmQ`aA>geVu_vSG4mk;bmlA!jrFD?aY&~qJPzV4NoVE0#y#Ju)4(hF7GB6(xc@r?J9zaZ>)*i(`5xZLd-(7K z>vMqTsvqF(g;sxrH@{#W>ArbRBKZhjYo25Hp!x*vd6>ZC7uk6OJd#i0{_iTx;NCxj z4==R-3wTo4dvFO)Utqai!D}6F;Hmm-;a-1$r&~S0@bZniFYx5$x-a@Vzc1z1d<6IB zB8CUe=NMl9uJuXaiRvft;&-e*!1LcUpTYe)jP2S*!2iz4{;E z(L1bufG6@JJe5apwEO0{&E+F_DUac`d<<{p3A~q2;L$s6`~jZGr|?vs!gKiyUdl6g zEuX_%c@FR83wX4%@fYw!zJ#ap5}wOf@KRpEYxx@9%4>Kp-@v1H+4viHBHzMOc?-|w zJ9sJY;I(`YZ{q{hWGLfJo;zl zAD+m!@KoNybNLQl$~$;1-@{vZ5AWp%c=TT7AD+mM@KheX8Tprw;H5l<*YYvEl_&6C zK7mK?Q~u$JdPvW{`V~BtSMXfE zhL`dhUduP|R^GsS`4%3%->$2LC-NOUm3Q!5zK56c9$w22@J>F!qYv0PkMJOm{to$< zkKmO&hPU!De2^#bd5`cQkNzI{myh6;JchUOF?^6G@Z?`?JQH{(5Aaexg*WmP-pgn3_+xh7 z44%s8@Is!$Yxx4+$qRV&uXf%gJjhFUE?>bbc?ECfYxp3q;mN<*csB4%-oOj_7GB9) zcq8AzJ9!5mDhaT{k35Ap*%lMnDheuP)@=pRn=-^fSsP9DPt`4}F5!p5J#gM0$d zpU6k> zR35`~`50cx6L=$^z|@&Vq-kMLd|U38lNK|X><^5`wdzkCFb{zLhP$MP{e zktgsVpTJXjfM@b4JeQ~NLOz3+@(fRet@^~0p7`v@LnFh75SHs;L(37 z|L|Boh9~j_9^?~vDi82XK85G<6kf<@@KT<^EBPE=%X4@mU%*>=0q^8XcrP#EgM0;# zzM}lYWBD4M$ZL3zZ{VrCfoJk9JeRldLcW8S@(y0f_wZWY!yEYl-pU7fCqKe_dGt2q zUp|6I|E2uHWBC}K$P;*wPvEIMz%%(2p375sA)moZc?PfKb9gP!;f;I&Z{-ENlP}@D zyo3+(6+HT?@(+*YYj`5B;X%HEr}74#$+z%a-ogv{4qnPTcqQM%Yk3cEIXuX7cq(7O zGkF2e)je2|Setc(3zL;koKlcp;y` z2ldI|(G~3HDsyE^S1Cp^*eZ``VL;Heh;tZJv>*R1H6zA@KSz+SMuncr}-ar-VwZ3eGG5pV|eln zyI%>sRs96s$pgHXPvL_+g%>*S3|`7JcqO01Yk3ZDnazI;kL6={sqrN6p!x~CQhk7Ds-MDZ)u-@AK7*I)lff(b9Nwx=4)5d( zcrP#Do%%1~y}X1E@)bP#rt%MuN|KU z-@|M5>EVt10B_|3yptc{na&%%>ootld<2jFNBM^rsvpBkc>=HG6L>8T@J2p`xAGL; z$!G9hp1}wC93G7<4>>%RFW`y1fCu>!p2|yjCSSpGc?B=zYj`QI;gx&?ujLKAk#FJo zw=54WypZqUrM!bz@;$tk_wYu3fVc92uJIq?ojiK?Y5sfp2tLSTcywjU$rv8X6L=z@ zz=J%%Q~4C0$y0doZM!cscqz}|m3$7*)jx+9@&&w<7w}5HgxB&CK4?5Ecof+@SMXTA zhBxY8!&~_Vo~lm+&*WQpE^pz5de4BQvTtIJb?%K1fI$Re9(EP@LcsNypYe}r96XI@;SVg=kP|pfVc7j-pQBn zUS7fn`3fFsA5jI5ZTX-RF;iY^BujC!Pmha(>yoa~)1H6+D@Lqm|5Avux z%}JzvQzN+V`-+)66L=;M@LWEH z7xENd%4hIOp22JR9Nx%tcq?DPJ9z=` z;I(`XZ{#_=l`r6(yny%eC47*VaNqZ}g8RO&3hw*9*6^TxP&GW2Z{V4{f#>oqypXr> zQoe&%@(y0h_wYvE!&~_Q-pL1eFF(QudGs&HzxI8N;IZ!qgD3JaJjfGxDxbhJd4T8g zDZG%U@KQd5SMm&A%jfV$p2J)D0^Z3BcrRbV2YCsPw6AFekL49Sk+0!FUc*!Q2A;_q zcrM?<3waAKyp=C+NZRF$MOoE$k*^7 zui>eD1JC3QJeP0bg}jBA@*TXAcko)ihd1&b-pUW~PCmeU`4K+Iqkl#IwI68&kL58u zk&od)p1@Q21fIzQJeN=5g*=6q@)^96XYg7+hd1&Z-pUv7PF}!!`4T?JOL(OHR4aHa zui%M%4flOtHQe`oZQ#D|tAYEzuPxm7eRc5Y@i#cLqiYYZA7|dfJNW_LUTXUc2YC9N zsMNR0*};Z0+R3qdzh);IVuO&mL;`w}dBOwfnJxSGvCyyj1@+yp=a_ z&)XL6d28XGw;envR~_7QxQBb*dU&M#9N?a}0q%J_!aZ-%$B}2{Z3Oqc#c_wws6l|3-`S3;GVY*?s?n8J#RhS*S7=Q^ESXeZ%4T2E&9Z1o;`0PxaTc~ zd)~%y&szfbyiMSqw*dFNP2rxm6z+MO!98yo-19bvd)^9ob&0L3OL%dqc?pkIzk>TZ zR>3`QYq;mFhI`&NaL-!2Bt-?09BczZPO;mMcG4{*=h z0QbBd;hwkXlRtOn^N9aFh39Pq_q@e$&)XQ@eAdR9z>}}p`6h7BTY!7srf|<&2KT(p z;hwh~?s;3lJ#Piv^R|S0-b%RVZ3XwdRdCPS8t!?k;hwh*-1FAJJ#SmM=dFc%-ga=$ zTL<^N?ctuc9`1QNz&&pR-1ByXd)}h{G|!&55!~|@!#!_fxaTdvJ#SOE=PiYM-ez#m zTL$;M&EcN69PW8rz&&pT-1D}Cd)`X8=WPY|yj5_|+Zyh9tKpuv4cznAz&&qUxaX~f zd){_%&szugyzSwhw;o>W`-KDC^ESXeZ%4T2E&kMLo;`14xaTc_d)_8+&s%_d-llNR zTMGBQÐ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 Xi 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