From b72f99b4f8d607ec313707b158036d5e8cc75dc0 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Fri, 28 Aug 2026 22:56:35 +0800 Subject: [PATCH] feat dev --- api/__pycache__/QMT_API.cpython-311.pyc | Bin 115856 -> 137287 bytes py-client/__pycache__/main.cpython-311.pyc | Bin 6151 -> 8277 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 7650 -> 7740 bytes .../grid_take_profit.cpython-311.pyc | Bin 5131 -> 5120 bytes .../libs/__pycache__/signal.cpython-311.pyc | Bin 3346 -> 3402 bytes .../sdk/__pycache__/client.cpython-311.pyc | Bin 5675 -> 7011 bytes .../sdk/__pycache__/models.cpython-311.pyc | Bin 8956 -> 9314 bytes .../sdk/__pycache__/trade.cpython-311.pyc | Bin 10098 -> 10468 bytes .../trend/__pycache__/boot.cpython-311.pyc | Bin 9042 -> 10007 bytes .../trend/__pycache__/open.cpython-311.pyc | Bin 4982 -> 4988 bytes .../trend/__pycache__/order.cpython-311.pyc | Bin 9829 -> 11414 bytes .../__pycache__/positions.cpython-311.pyc | Bin 7782 -> 8937 bytes .../trend/__pycache__/runtime.cpython-311.pyc | Bin 2057 -> 2191 bytes .../trend/__pycache__/state.cpython-311.pyc | Bin 8725 -> 12180 bytes .../trend/__pycache__/watch.cpython-311.pyc | Bin 3219 -> 3275 bytes .../__pycache__/test_trend.cpython-311.pyc | Bin 0 -> 11738 bytes scripts/run.bat | 20 -- todo.md | 204 ++++++++++++++++++ 18 files changed, 204 insertions(+), 20 deletions(-) create mode 100644 py-client/tests/__pycache__/test_trend.cpython-311.pyc delete mode 100644 scripts/run.bat create mode 100644 todo.md diff --git a/api/__pycache__/QMT_API.cpython-311.pyc b/api/__pycache__/QMT_API.cpython-311.pyc index 6264d8dd238f1f860297c7920635612c9ce79162..44f772270aa5147e3982fcf07102f21e42c7ebde 100644 GIT binary patch literal 137287 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 literal 115856 zcmeEv349yJb@$+2f*?Q=JS9q^ZbAojkP;6`wk1*$se?L5U6f=P(@q(-S+Fp)M={bJM#VB zEU?%UB4pXQv|f)0yq(4F%zOX$=FOWo&*bG<5kly%w|}kw->)F_Pw*jin3I2ethXa{ z0g;H*`A{eSudY*vKkGa7_+LY(fkdRGAX^Y zT#qPS|15#7>z|$ao6MI!g$|Jg5!6{h7DiC#9P$@rQAF1{mn@E;&Us`>1a(&G5jFp5 zgwS)TTcFMbWN8F-F4Uv#h%AdBvYaBGHX!tzA$3XTB21eVLF8;|k&Lz&(<&l}oTH#E z!L+#%M9x#tmSS3E1d;O+N$V_H=NkuC*o z1*R>FAac2awi44;L=d@BL952J>IfoNDQK%OZFK~ZYZSEAn6@^8$QlK04W`vb5V=l4 zTZ?JyBZ#b1&}uNPK7z;w1+5m-8Y76@prEb8w2cu&Zc@f!FJgT5=#k6A)L>^brwqe@s5k$HbwC$L7M+A``1+4|sx*~||R?u28jf^0Y zQqXo_T2BO#y$ae+OzVpv(yO5D!nFPfB2Or2yD`ldLF9mf)`n^R2qFUt+8#_Bj3Dw( z1#K^;(Gf%j6|{Yr7K$KpNI~0=X(uCyJf)zuW7=>8k*5{34oo`}LF8Qu+5t=pM-Vxp zpdG}tyCaDFoPu@;)6PZ^`FREHFs9uTLF5+{v?G`ni6HWe3R)+oeJO&-FDqzAF)bQF zg2=BbXvZ<_-UuSUrl8%9X`o{k{$83pYGrj17s`K*HG!?bTk5c!;f zHh^i*M-cgfg67AxZ$%LKZ3QiWY4HdmUsTWrG3})YBL7%HyA#u1jv(?C1&zkEKZzjn zRRt}GX%i7dzNVmsFzxjSBEO@c4Pn|F5k!7hK|6_Qe;PsLn+n<~OuH08Ukn1d%^d&_0K0Oazgvf_4_u-isjeuNAbi$SVrkIZXQ?g2u|R=Cs4u$-!yOT*z9g@-G8R2x$)SY10i=XM0-M1 z?`b#b33(Fv;#wU?_HIp>f}ue7i9`+%I`-_`+Lmza+uhN1`iRGWit>^He{X^S+TK0; zI})Zft5?^rcj*!)A9a%QB`n>2UOyG2x`mMzLU^?6KnQ*OB?P109Hd8K6xMlBSpTH% z>$-Nd5QS1h8HCUxM6VbzgoIHkLNU?b>4VgTQNJ(-3LB*39vwP@NHk)&+d!iBDz{!2%*Kn$`9jT`04raD^I@o;mc1oRxS>@jES7B!`;*%ZhEsX(A!JV z2@?g)ogmz9zh{7QyIsbFv1iENoiKXn-eAIf;uQW@M+J=tp~}k2%3s<&gWgrRdH1$f z51vls1U)^JyW8XQ(Q^<&Fy0J$5JG3swBBecnshj$q0tV;v1sfd<5&bIvFPelZqYQ- zn?%JFVZYCI&c+lk8*hGo_rw~O*u)W=7-AE?K{WZ_)vH&pPMh?mqN`W01`82F_gJjx zoOLrYoS(nJ@Ey};WRUa`JT8k>gwPU2Ba}q#85>~^YhB7&momns^df|iIwQOxFaijW zlo3dsv}@_2Fp7y-C4ER;8B!Jrqfp8bhLD`0=92md3ZoeGiQvS`b1Y`yY4VH}s+~I=%#g6_4lr9 zM=l+`447G;u=II?o=}M9KN}MI>eUI|iG=QC5G1cM*}1>8Zp4oq7#O_eOhtb%;P-U- zsOpWrK)1&iyrnu#t%Z(nz}(L`j_~JO9hdf9){W|(svBQ3?qwI&a|`R4qFYBdUub=x z_5PjbcaH9y@CaAq?su8!6$l~xR7oy`2S}K_A!;D#(j^Qu6%vaek$NZ^o}e0@;*O*Y zTF>5vVQ9)?j|N9u(=s?`(ouNdUFYul%E-MV3{e5>x$vP7YpLKY6(FOXx=H*Bm)n1I zIG_N?rxH!Jze5$(|h10dOg0R_d^8M#tMm^jiH$ z>ZDiGx_irVB+wQ{VHvcI82tGQCEUCS(FRaK_pVQ=oKQ}hjl%}%Zv;(YLs%EqZ$t>) zy9b`%rEg2<+%8kXKziwfH5l^Hq2MWRs4rpZr9zmCiU1x6&?mqkE@Q$F=;}|HfEG*` zK}{tLCp|tvA@TT`6X@!9<7?OKTR0YC3m0*Pi=s`@rmItqGJHk4 zn6wo|Tc!=VoZ_ojuU>JKjv0U3|Lm?{0Yd28`J0jcEo9xC zXL`$~+ni^T2r_g%?*2yH{bCzJT|~n&M$loPcvjcu(kF5^ALwXtZ#}$q_uh_#!9$Y3 z_}#vsnDH(CfZH<^>Z7+Jgmyy9mE)G1GCIDz=bk;IO{}quGnO&NG7-b3dmW*aviW!$ zeqsuNufJ1I>LRGq0D#wNBn=VNX(Ejg)M+M75!7iR%@Nc|kd_GQ%pq-LPDIyfC9M(E znM>xjBUfG`cZ(-TC2d1V0}1-<5&Uyu)Gs`YSe2jD(T!o$pL#fvQKgQ)atRsHg>@l3 z*})$tpi>ZC7!oER5F+)YL8>$E(eZ{^J8~J@&R7nw>mW@HdT8p5Q`Dx_$uIXokGJu%lIytlmZxSj zxht656_Z6}=XY^MRqq$Ac&}*1_z||Kjw`B*Zk==#J!(34cl7S5l6f%$vv?<4vWqL( z#pLgrwjkR|CU?a@IOas}R^pn_Z)=nN78CkSe2@wg3#Nat<~w6+3iv~mKeV#r^dNO+ zo+mw;SOw_4p|ZQrLkFqQrlC;J%6gYBVGU9tH{WE>>S%aNG3PshnzTfcR|U_^6StAd z1&81!VCtSllZ5R)$2rHCovCVNi5(oVgGrtI>kG_>5LVE+prHFQzJ3U^8GodiS28Bh zk-Cd|QvbY+^`zjNY&2t=OHYGQp2!V`JfWeWyE{Nq+g!SYjq(SFXv*ygc6+@pW5V3y z^?QST2_v**!bA=Y3wj66K!AJwh|R+F~f4_cLTDp7(PoeufM=l|P4K zT3RUC3=B4mpYWI$B=FEL7<282-prdXxgsV?Dw0(85KTMXTy;WG~L%XNo_ z!9)ncMC4gC>2Pw6d7NW8LoENKk44`OU6$kN?hXw3L#@rqhw*fGOCQG5-3_QLdl(l( zxRehA?StD0`b4XZf_ksav=xm@MWCB*RVfFi+So|%fR{0L1<2F%5%|;O3wX$&{GDhD z#t-@828Jp<@KUZ+3*Q^&9F?G1OD3Jg(bg%4^WHOKi!QF%mrhFGDLJ>h*< zXOz9L%t+#8i02et!bDSpzSAx}mV|_5&~qBUhG+ysgJ_>A5WfMga{^ug*pY_}>pAOa z9ZSsSh}lf)#Lt{C+&K{HhKEfZVAbP}y39Yg{_JY8B`?-@VGW0ZbW|Z8n}l^w8xeX= z7>f+*U7x)G>Vt+xRxR(mKL$rsa+$0t9czxJ|Ljx-(Y$?YN zxNwpXlpw&v6FNOeC5V*MM+!zZ@!igpiF-p#@k6J8@;i$rbDd1?>?vo(kLRq7H^18Q zQp<}wUf%IN+vPsid5Ci!Vw}gBqsJNB@hL~ykISp$##f1#h!?FdTfe*Oauw5YjCCC6 z9LE_)H{2(1DmJB(-VJ1XCERL083n_0&i&aozHoSZe6aa2V^ zqnqzN6+IPeW{4{Mx@|5U4R)BzMngzJ!s>Pp1jr#D<#s1*Zugx-9v|;wqW6Ld>44%G z6ab*Ox3TzR3BvC|gW>xu!Z*h@KD`~TgaYmm{3d?Jv&sL!*R)$VjYOqQXWFTQL6}gQ zjiyStBw5&WrWHU>7G|Ak8GK9@W`k+vG!hD{&V)yF$--ban>oWbZx6eV@iUW)bxNHv347%=ife{JrXnL8tGb$C_r5C(DPLHsl> z1K(k|6Yqllktt0Y^!=GKwO6R_r9x2U<0Q8cHVlj{W8`CfkMup|@TaW3@ikC<4v2TBF2-MF z-I%kIOw-{VpgO$WC)&MdRELAV2JW|qyaSXwf?vyW1mME)YsMSlpjz6yo5O$APF zTs#VY+?%=>f0cEs7AF~|$usB;d3?ViZEES}A4k%n;2c&*{BqTofcE?&CCj&tg&rGz zWccAT7te6>)-cYsEK$P|HB9Qv(DJxu4Qjd}LAdnbJKB>6l5;kz?q$uh=n6g1+Zwg&F4sD%`eMsu- z9WmoG#1q8h)+ep+SJu5(S;tm3aFq>=vymk>aKr{Cb!O;G=t5jPqu!Srp)chH-%Pp#7I2$qAhT^XnXwn8{Q#~Y^$9@bjLC>z9JCTfF|kikIHdRQ7yN+AdEhXL0p}@> zus&=c4HxxN$FDH;z#G^wL+sM?e{X`n&Ah7zkJw=%1-lOtcHkRqr{iEG>{xi#m~>`= z&yT+Y@P=&i*EkpmhRzhro4gvn{x)0=jwbBSy6^P4(_gvk-n*j4$)d6gEf2Je9UWi5 z7OmupRz`EC?4@JI$B0LWhpiW_T-lm<18d*J**8TENluKF$D0^uJ>#rri3W~nU{WW~ zcuJqd^YC)AF)}b9F21E^?;A~x;GvQiJSRfctU1xKXOQwYdqSBR@#W8i5hc!NMX-TZ zSWLD|mdFVVQhsnFQ!bN?)e?EYWdfb|UV$r7%2K%J&J@X-4l~rNaB;HTvY;yzf%WyV71e34HgEWvv`MiA?#YAyi=>xN$Ndx1|B8>a!=P=1% z29x|>fAz|J-}vB_&wq6Gkq_^A{DX_n^Ar9_6inp$Ji(CrByL}qMaH5$8ajYaMVH|@ z{>U=dCPp8%Ny6q|OW+4UCM7KZVDWyQj>i&AMr%Uh-@W^|NQ|Egl-&i6Kv~n&}JO zk0;yyJu9{r&)A1`>L!&^MN3uYh&}{UeaS-$31tdfP|2!Ts?E&W3Oix)`blc|qhI~% zSHE)UY3Q4T1)QBBPj8Y@69%t8B-h=TTf028J9({GdDF1w6W>Zjck@77qUaaQxjz8b zAeEd8Fof-f^d+$B`1xEOz48IQuzy^_5d736&j#XYb392@qI_!@5U|kZb(jfc zom<1&YdL$Z(6ytjV?oBbkR=vz1VowhXR=?_rYpV&{R#!6)~|ZgVwlO37ks}$t*rYs zubt`+1?Y^>vrCt0Tqo_uPcS0T8c8Vh;-HQ+%9z9u)(7*&aHU*we~&aSRAclYeVcv( zut4KVmpzOa!zd;K$n+7`hm8J}*G3)t$iXtmv zsY4}ysY_443)pAI;k9_ zD=GNMRUQBfC7gl5?|tCOKTv|-WI^$TvIok>s$yH%f~8!+(x`dLSuz^BF#N!9%sRfA zEv@ECtC`Z8_U05arg^W}!OtH*-x+)$^gtpC^AiT-e!ZN`NL19`5QdF0o{%hz*2t=3IsWSG* zE}v8-UI6%kJ1+qE9?Efha*!qKIL!S22uuT0@bXc+v-Cp!1NCD&#`UaoIp+GeI-XEsS#uOEhsr6O%fVhLf5E z0H)*OU(_X_8B2g#$x8s#&sqYC4pH9TzEG>b6^1BkFb}AN$8W@^2lLv7lfs`RRtH*k zwN&MZU9hSqkVwI#4=|U)M$&juw)`gPhBdV%a`31Q!XJ1cfCvVcfu4eHgufH!Q@Cw4 zJhM*Vc>W6Dc6>9XnIqgy+sr9f>q5-#zW_#p*h4wsE8VmzU&$DK{Y1{C2G+itv+qu` zdig~8 zzL0m&=cQDK41!VfJ3fh!uyqIgxIF|0cIjzIJeIHy2rZ<+x~0Insrv5pHij%y=?~1E7TvYo zXe3*-oGV(+=C9!LS18*7PQsj#sF@$PJggg*r?g~F^;iN-a;kWg9h3<|ZfXHb~+ z+7;llO{m!mzc&bK35IBx4#V2trKhI>JPBBO4cQ`_q8j}$zqx8e9jM5u3sh~L>q44vK7&Na{B-9)+&gkhB zDK%w&M3clHqBU`nBdsM*xH)2$tU$jGPh;2^HigYkn-O{rG!{NaESmmC%jb<`ZrI}0 z`3h=YK6d%(HZtz5I@Pv2JJ?I$< zQe+43Gl3`>kjZlhi&dnSpr zXEI^-QU2agAHQ#v> z^I9`$kp={em^H5@$Q;?VmKi~rmCTjalf5-@BcP15h0S40n0Pt|q349;93wg5oU{2M z$XAs-l(~fOf!RNhc*Q|FLXcV}d4y$^_>(aD1AZ!D!b_iN2w&)+C!}!r;p6vy@P#jm;Si&y%gWEwKzK55Ph)gU$C%-H zYCdwEheYhi23*8RUtHESIMO;W4#4wG>)|g06!<|gMw;Lw#z=tp6h=xWbxITxia~NA zfCN|`3Xm)tD|)Q#k+N77TfUqtU(Ob+;0jhm%~M(gHD92LgIt&}N+WDp1;n|<=Eau? zFq*}j`nHK}mv%6F4>O&&Gk5ebeM8KtFl!&->?79*6dB$2XiKd9;oTQ^GtOl!v794d ztvr8bz*iVv<6?o@z`+I!IF$tttxz>_Uk>EW8wB}t0wA$N5=meOQF!uy}zQ8FS zssQzQyuv622+D(&3`IZq%ClEqe2B+V-l&`zielG<2u0o0@XUY|!)F>z@zY^6%?zYv zD)NY-v<9HmdPAU80Ld1%U?o?uGCD(a&48O}l&xaRHgIJdqIoilbY1-9#K}u1FP~wK zb~98z<2%jT&v5oLpAL-XfXaemE&KsqAs!>)tE@57v2DobgNPlqF|XiQfnWM;@lg?* zqLQKMlbKmk6K=#1Hprr3jHF3=4VHfO=oR%T8*>|Pc;JMJ;@}jRbqvbI_)7FkKYjkZ zSd3F+!?YcQ?VPk7grlH)hI~F8q^0!hV6#VS;<8BA^;i^}Koq~MHuTf5YGxXgvO2zm zwKs6~hNxlEQ3w;Ao3!FkM{B;~xYrTI|79>Iu-6BQE%40prEG+$3`T46f)^F2m9?li z@zT_79+-&EoD|^ivWh#^oQqT>(E2QwgAD4tC_{uPzlcM$BqU+!;aeu78xj@PdkT!ECOlE2R`UD@RkP>6-5#$W)|SBpRz|q~U7ty`!VDsBxTIKcmJXpr z-hjvJ7p4g_F{0!`%!tV)O1#$&?xu;GWh(uEIr9*3rkX!o8S5c4AZp|NtbH?Q-<i+49JZg=VViy%i9ZqpPmr@h2r1SFivuxvME5>8&qTLI$0RS4@&7H8AA1pA2Nq`|*3Hh>XFL0iT8jA|MC`=$TbdzNl3( z2akXyt!C0+Q|T-pKf>DUID4JISJy~8pc>+`9@q+sF#M4Yae=S0=b0@xc?Mjk5H-!` zu}B!ZuE8@vzXs2US{3um7on>fq2RLtsYTvz1Tqv6X}`i(S@&zfu7JO{Z>Y=TS6vP* zmP z4hlZv6>Rw`u6z|+u$n7a9W|?)8ayn~#SvXh>dYX1o8i5oxL3`VH=DZg!WXrYSJ_ZCYcVbD2n?=S&5s}hK2m)( z05CJQ=g<7M3af0=Btu+}S#hl-lu#_#;tf2K*0)KTl3XUXW-UuRZ2r8Fw1mxAYzZ<) zLu{>WG)#pgav)<7PGpoY_u*cX&&{R<7xw$&1^3F=K7ZxOXFj~=@t;gcWjC25Bt4-c z$ZnzpOq39?2tSr~Cw~q{`&s1TyAwD#Jq3$p7^bF@_PI!iD>T>+i}D5Fe?A4b#F;(= zQLbW(YPh1B=nPHwDUj|T&##*(xm1362Xpuiw$#IwdRTiGXYbM!>u#ojWC@BRC?<7g z5bIWG6ezx-Ce{{Hj}BHVtChT1L)EOs+PMes#n+6J-mCdO1=rB;!L(4q8o;d~UgEP4 zh7dk@HS;OkhFHn) zwisxB-XKeBlwv`neDJj=KKRO4fBN+=OQXhB6bYZXg?IcUdmk@S;zu#tf%{aAy)qSE z!P4_hsPfpSZ|-fHIC<$bv;PQN+R2r6vi75#{b*Y3WcFSs({Pj}j&Z~>CUs^|3@{;v zi)Yn@&ulu5?LD=U7e1(;weZ=uhI(KFqKrBLLb+x>Cew6-D(1kXp#s;RurKQ{0HfF6 z6Hw;s!>J{xP>&nPJS%F={5z%XhI#O1=(ht(9#k1wOxa5xwZ*)weKluao#vnN>q`>R z37iAPAFI!)LXrrhYRPjBRJ}gV2@Iah$T`1LsUD5qz~ISDToV{PIRmaqw;AS|H-Kwq zp5sxSYcgaCRdwy$0UQIxci@k-%MQNEniEP}{lO4DG(h=7Hw{eKicvBDNblEarlKu^ zAr)-h%(ozKf@Wr;3XKNG{PYg+lbRiQO>c1BL^*43;_OXgKeft%nnGCMG@;!zufGFVc|V5zUm_q#=ycdujNejBSa$AwTKE z+kCods)rvRz|cU0zcAP($I!SY&b5ubN8(&YcS09wg#^!1?EuVZ95C8(6$?yQgS3Dx zTgR2HQ$)wtP0V5K+d2Do0sCNy=2&ZNE#q9m5=%K^DU&)e^Qh}pm{`TdUjy*T!+njW zD!@H?!80RN&6*jDwt4*?f4A48$%}%ocF^!?8S$D1|7RI{p{IRe1Kl4s(tTkQ-J|(T zDzO-nI1H^Aj%zLt5>NMBXRHQZ^7FI>q347E{t?3eqIeT%&F8a9eaq5MBRMm=N3OJ% z^wWq{^S5n^SeRVRYx5M>+BB~l03E^`QKdh? zd>h_64@c4D;MJ{=k}tWxSn5v?4a>4AJV%HB$n*I9fgyi4>=`GSvP&lm|M2A}uAF;Z zGGCV?Pdb`jzkyd^^`vlyM{MlUNiSu!i#-3Q00M`h!22zohQDB*h<_OXbG^a4pFnn%!%pB9Rj)k0K zVbnO8TR4rZIeog(Q~bZN_58o%B>(T^thtX>JyI3h6ko~Cx{aH4TXg4Cv9Ka#d`oh^ zv3NCCygIrK7M9>N0}t=GxPz-`n5et7{qjNPz!BzX57Xyo3j8&**74Zk zM-InMuyfXObJnuOHC%B`bla2`VX}Mm#4Nn4{WsR6<9 z@jYzOMy_aMbgSZ-)?ZqGxsf^KW;{J?VJ}zM8*NHPCysZI2P8{u8RxP~+nL?HOj93A zcsat$q|OZbatIg$iob;pl*cO;nEG|oNWJ8hCREK@X%_IyW3;R{Kmt6w`6r+G?B55hNoe41P8*GbksvgRz8ebcx&9pdmG)ex z5%J0&#IC$BDnZ0#%9FJ7I*o`pRG42Nlr~`bMg8JA(Db5y0p>EzftD!P5<}b1Kr&ue z+O+A}&*f}+HCJBE7Odh5R*9GJ%Lu9A)`{`8Y;iSLTpbm{7h7XA>s-b;mqiIhTykm! zK5IY1*^dbJ@r?lh99jg$v>E_dFaW5RJODt|tN|du#T#tb%x3a?H5JNlRtmePrd$Q* zQZk}3gu~3==MB1p$+Q-V(Hp*l*66KR-u9Tu{}1&3bvdon;^wcfBJ8tPi#mdFc=o;oPm-~&62JU*XWdu$Yi4eatEFZk|;T3L5@0q+Zg!Jt}C3#KfXK%dSGuIAwV6FPrpRCHzcqxUdSxae2i#M2B6R#zzzhm}5Z^pa~*fW&02jFj5#l@!#(8|nE46~$Q6{If2 zQlYdx@tw77&)MqzfSG#^u!5Qes`L%X6i5BU64|==v7UHMykTNNwmUCA27C!cg&rXq zVkdZ}gRin?ItMSrt(gNfe%B{KaV%z%({PNZ-g{DGV3XXf6S5S$y~#k14j7lHOn4T_ z8W*$BVql@`n&w;`Una|W9b1-ts^KSreV|wb?2``afUmM=pDn?Gy|lMmbq-y~NylWB zlTOoCP>BrFyjGUQXhgd8g+UxeCY?N>^GIU^g$>QJXvz_zzd#(u4^y6U%VNYRxk77_ zNU>Nz>a-d$&FC%``H}r_NHg7OJ&W}kcacs{X-vk* z7CH-gFJMD^) zZUoz}J1{VK%b6;fKw`+L-U#{9eZgC*(^swq7=mRUXAx7dhCj#dd}#5Q?*6LtRl--i zYDuPq4$JRtpJJ(AzuUNf=4b>0pAuX^|*DnJ^6kETqz(VuQ32RMmVa zz6}^8Ti>126&!HmO1!?#70nhs2iLy?mgtr%1tp_lrnD+{XELAkmZ_3d^62C7&1}Vbu3|k~Qpc6lMRTW| zskxwK;~utrHCMixb*|x@Yof$dekw=Fsc{`!vWzQP#^x{Q@|QgXOfz~T%QfyIPpc||y!1g5*SL#iM$eLSjk`$I&~+!~ z$GNQK30F1L5orx;t;@@8<8keIkP-kl8j=ZPbW08DG1l@>mqt10rqsL>##J>mH3OO^ z?Ndn(X#q-k82wZDNsOiGAHXoGnM1ljEM!={+zQgIlJisrLZ?bov()~0H#?`1o72da zZs1BcL~UYBY)U57FKOUP8lt(GNFuoG=BKe)XAS49i4tN=Y+{{NoU@8`xHyMPiiz@C zQcQG>H^#%4jxzg?Gwxo-JHP}^vG!rkKAZ-{=COsN8(3l5OCz(hYM>IC7uK2zw+n0gh4qf2HMv5vo`jXpdkKC>+6bJCbL@NsMx8vB^Tp?{ zT#Soz!1D7sij9lYGv>+V{@tEr{17be;*CLZk{^f`mp>bXv-6LF!3%78!3GprfW>lI z!1%Qr1QGUkl_dd4<5zlPOTj8ke>JoG_Cm#N$-o?|I8Srt&92tO8z;_yS$32;-phFX ztUbWl1J_K+44a3r#C(pJ&!o-_xbzk@Ar!mRa4FZcU>Ye49+#k2*0@xhoPg@0_6-Hp zgYcpMaf}V*68X$0CX7|ie&s)7RvA8N}raqGOKh z?AMW&u!$rzwj9rCbi)1oNWt09G^9Yofv0bSnN+vW6AZb#JhV8NfPNnu1xGHc z#|{+9-xHz+2BAyqaF@zP5!I}H6=z>1pbN}LYUbn{fi5^D^g{*w^<#J*C<1EASr0k+ zlm*|9P%G0!l>vfw)rYGvJtrLDpCq2M6pCn*x|?5-C4A3XL|$m>&k-Qk(j_=Azqm@zb)|<5>Ab zQ??6k{~j0+in{>nAqz3jUGP=b+*Q;XY^PuY2~E}#%y-x$;4?ShmCF~k+^H%FeZ}rZ z@m!&%X)YM=;)9=aB25=%vynPPqILv(s({e(MmY{i03LN2_;2BF%%fhvJBS-vnN+|5 z?1^b2-jrD2_y>f0^P^)`3%p#dJ2BTrfNSqoS}N%wZF(#$7~tt8GOE1&sAGIq{NTh9 z*=owzvWW)f;1R~z$v8V%;wVQPWl|?*RrU3h{{);2#TVdFt2-1^;WGCVOpL>%o#If=Kx9Z)sWz?^IhN#`3WQ}ThBAy< z@nkG%)({L!Tf&C17Tiq!p#k1p$6SmDut_obXXth;CT5xn4*7&_GNg8V!tM=Xhm{z> zB|?I4G!r2yQ|WUoBVPx``;t;drb=gx)jn4LNPVm=-o(zX=VsTlr43wZL)12NS+S4X z;yn{y*51O|TLkkXwrk?_b&O46&u3hG4RpYd1RVh1XDtJBwo{>2KRFZ((Wl!y1Js_L zYb%4Fd}^!RH342F$TSncKW#whIT+62W5lSnPM22(q)~&5O>GIAH`zFV6cXNrg)BVp z=B2K|sTq|RKa0=&!8bC##vSMp!@YQa4B@ss(t~j)Umm$2W1nGe9s_RfS8}s30Up=0 zr8Qh>P1L3i?>{bE8{c)w#oBjq_FYnrJ$gIibTdvjOWeT`cQC0l1G@hkG!+yV)X?2z z^5|fH47HL+cc_{*XXo$r1cL!uBeiK>$}#y1Je`~a&WIGhNDirsZ$t*}q^?}JS`Oed zQUi+I!?L>=!aCBJ{*4*#lCIcYU3OP#ytIzAq<=wnrCItGB%yhwMS7)%^19Zni*$k) zmJ`lsk~b9@MCOJyw>^;d`9J%fn^c75jCt_3=fcwDou^ zaUlv7rhW&ZMTow2#2P9}e-ndv7sWw3{AXF6!`O_-A06H884zN^meGoXolO zbmfhEu1rke-3kB0ju1+I`{auszWh{Ur7MqLx1P2OV9Gp^Biw`re8B!bJi1F5f+3oQ zMy4TcVIqeb?xt|aC!Ug$geKu9{7>OAErT>aIRkD%>!hBQ10}c0YIKLs^sOD zzMZ*)VtVgnf~VdO-t}JaE;cyA1xMJjyScKvqpg#+{QGvC+c7z7;pD8!$@00AtLm9K z+aGO@l|Ov@#oNbjpYTrSn9A(a$W&(k88YQLeh$U7w7B{oHk4mJjr2Ji)5Vmn@O@jw zd$tN@PAzL&$Jy2~wspz98XI3(827xmrr5$+3h|o1mM0HY(7e*_l?6j<&9O*(;%OT~ z&jCo|V??j13>{&;OcBbm6!>+Zn$+iRR1~3M28ysy+Dba9B6N~P5=AI;)MzL|!`%jv zA}nqbDS@jX{?Hcmf5BgPqiaDGz^In?gs5ITSmMV6SUdb*P)E5#L5ki3CTA;|unQmd zdT7r8KUektbO=4G=QSfJlp#=29$#<3Eod^4BE;06e(S;qfBcZDI!xH5RYmF%t3w=C z25Vh-kEb5Si-Jz1VWle8hLWV#X*H*^9HLwes<4iG9k3Gi^f-&A^?5m4bW$Z(wgksY zjFp{lWAhhs`3s+FA20fL**DAL%O^sttC@2(vx~QKi?=4%?A~uZZyjrnm0sNaLd|&S z+r!@+o**tQU{`JBR&8aMZ{wD4!=bceb>|1z{6$>;qNlpY7mW`;U(GIQ;FdI`R{qW% zFJ$vqaQQ1<=#DRXwd$p+iH(;F*tI*kwL97BU0n69)P-}#^?V@ic*nO7fAcW2e%oa| zyK*PDa;NBlewJq`xBnbj%I(qC>3oz|06H(`y4=b%lHXl8;eD<8jp~VN<|xUOQcNku z+Il!!50g5tPC3dzuR%`4bSctrHLR_cv(+-T+N6HF?YoAF&99l?Ff;RSW9Hw+7H;MW zH#4@)DgCxZCn&hBQp}0~b>_Dax^ALItyad-$iTN{7i3Mcg4ONLwX-msgVi8&V ziB)3B%vEAuFeTY|D4FN;4tPU*l6n65g(n3AUjOESz>q(*H>n`yY36Yx2WUqcR@4v8 zf^iny)-Ba=V&w?eeDLt=AAaGxnN(zv+HI~=QPOz;m@0a4t|qu)<@hdCJDXIF_M8^E za$NCQE5}hcm%sR_;CSt~>%Una-*agnyL>yhd^@|eg$YFMYUW}Et|iN z%U_q$ma}7BY`%-jcO`GoIzh9`w{Xk1h?S*-0A)#FWm$N=%CZG3%Ty^+mJO_}k+U^2 zw#KBg-1gn>OY>jrd83D!zm1u{jV;{H6>ev2+f&N2MWifOZe4@Ex5m1y(eS+ujoa24 z{(PNjTcd`ubbzvi;xE*crNaczre5;O5~^mcEc3AuxhoJ--DVa1F<3{!Lj4QZIUJM@ z0i{??>eHG)iZq%it5_BzTLGy)jJ(EhZic?Unc=w^q348fGaP&-ng~lD5Kk^`8!|_I zdSD?6!N5FuV85PT?CFaM-bL{tPvEITq0%%RhKOQ6pL}?wF`Uugtrrbv^4fTZo6#2t z1rw%V=(LYYn0IaN*xKH~4`r~=4j?yS#g0EWT=}d4k4q9}PdBWM#`hS4H%wn5f?pcx z5lXq`W`mGOeRKS{0}n%R6qd@k0}n`^6^G$r_ZqN@Gz_m;E)Ez~|2qie&+#0`wB90j ztJz9MLu1>|kKlp9$>&$FOX|2KbrVHzmc3qfY3b#9wxNS-=t!?-=^ek5owJ6UvxY5Q z%ayK;H^18QQp<}wUfyxZ_Cv~ zoEg@spqPMZ;v*{*19yA!NTQes*ECjD%jO$&CFiy&&`a){|T`tAr*dYmae z&f0G0Y_~J1Gc!c3W^HRY+Zx8UCJTt7=jo9~xX%LUNhtmq{-}fkwx`8kWsNgV-1d7Z zx|{N=X2-gTGzcNchRPo|kw(K_vJCP(q>VOtJg}s$!*~N(AtYaGA&v{!{DvV;nF`lq z%=u5iod47`i;}a0FBFf5;;qkrj&fnU~L8s{MZb+x2fXzS9Vxvj>CD9t=8rM4?M$hgDRr~9J2=}NOzO-GJ8M~64QH!iY&ACqc9uX7KmkD?BG`eivWA^f+yNaP zx|a&wG;(G*<2R#Vj^95cCy^8K&`Bdk)6^;CQ6_{rPHgeOP(Vr3f}!dg3PTkdQh=ez zU_dDNOHC-6I~IypxH&DCyYtG990+b$b_MEsCo_8n$AyV#a)uBCfw-lAB? zGl!ozJl-3>lU>}vEpA}vHFEPBCz{`EdA;Se9dGR5EB(OwE*_+HU@+>yVAPQYBc^UA zbFh;++Ql90W=ct>lw@rbXQPNf z(-cBC@#qr`x)Qm7M=3K$6OoD}sFS)JTSefUSEFj7Qq2uTrMa5YfN{x@8J8+!MX}x| z=e%NylM|b`^{wpc9o*_2mz#go^1~M9z%l0b9(GqRx2tz*{*qYenc*jf<5D5+iS|AZP2Kcmr$%7nLoqf} z_2)>hQZbNz*L~UMAZ8(LEVA)vle`RL5JcUIzg1vQGN`m382?ob!TVyg6R>d>dP}fvZwFgv#fRg&rGzWO&>XFJR}@aPw-|@>;IE zHcr0U_fp@B{V(@lTJ-&@x2xV-_6~-fHViv$7tLq|VH!vxc>;OS4QKxv@P-uvzf?I}8?-`_2ljHw( zIE7%bRPxZAdb_s!`6lq_5Q4O6{E^ipn%RTn7PNtf=o&ih4h&L$9(2H&p87@vIDE9i z#m7E;`I(=*7Qgbvr>?wl_9x$YP#)jD>Bd9RELB;+XygJk`Y!>EY_VTi{Jp@+J4h%;-FdXd= z!O@w^&CI^T@9t(wJDJi>)^?P$9c5By3XD>r01!jhA`S>x$=a$pTQy^=PU6vw0s=Ca zL5!*S={xsl)-$ z8-bHG2XRh7t8QR6cZl?y?g4J&p$vjRRET0!gULAws=fBdKl#psRrsHCE;+hwx$)?> z=o$ipac&(*@c$KXZm%r<$~G@%j2(J1?}cEzc7k~M7IxJZZq=4c&EIc%yXEpB=HTsY zvzu#nPgO3CkT7rJ!@;=Yz>U9A>u-|N0S|E->PdYJib z%=|XCa1U3whq3KR1wZYD;HL~&cN=sJ6t(JD2hTvLmOR!$)lZCdM{Z&r@3^{Yu3fje zHgl{yoeAp%;>@t_gRyZ1*0p^4SSJ@4jCGq~_|ybHu08#}4aiX31{XKOCp`TQUu7-E zB}oKsr+mJfgRL1&aNUepRG)#rhV{(VJDTS6!;R+`={<;2IC4 z^JpI$_plYKxr*e%-+1k-^)J=G*!XheMCi@o*N0y_^Trt%Z0*E0$WCm7>`dDr@w+Z} zF#C_Zdz>jf%9I{uZO1sMCPp4|oTrDL|6$ej&v&8Z1roe3^PZd|9;5*F!u!7-ZnDK^e4HkK}hRNdcv8wa8 zN4HHC&Kc|BeV&i^KiU7viu772ws0p`xHH<6%=|MRWER{ObH!W}#N};FX**Ne&e}RS zTL+UmQ)3Fv^aqMH1~W>3z^{YaT(h|jy;WyzLWZ|>jaxPt-ritpLK^F!4necwLfzR3 zPe`bi{Fnr)W(@%Odp$!z>ZbgQreTHbXuqlQ&kGn{nGV8FcY@Tz(x^e`OLd`t^ zzo;(s)^xS3WS++RXQ)Ycv7D)}aDNUQ4Koq$im`)yTA)4B;54vnk$GrAjDAI4cgfapRfxPzRFrS3-(jNp@Eyy`P(m@u=o!$2@j}?=TE=$ z%um1bg1UI-it61U`7BZJ6&BF10?Qr;meuBOyp;zO=cN1%UuDhT_T~T%!&KWnKrlV| z6z@4mvZXCj-!DmOKuV`;@X~r!vlDV&lLpO1D5A-GybM(*&Q7g9DMrc+I~|g2tY#w3 zA#f5W5BUbY8fKvGZk@;sw6tLjfSt`hdGqlr_q}@M)t5ee=IJZ<-JeY4m9Pv@!Jwy? z!m&SOz>Q-L<>nw?C3%NbR!bs5q^_TV@#oU>JJ#S;^3cMS;+@f)(oV*lb^%nuH6hY`wT)zP;COvho*B{3Vnq(kV;D)r{Z?5ws6_EW$L$z8B3 z_VDMp=g}jvJ0CuF@tE)xW&oFwU;B+$eB-PXgZyqHZSXws){^IW9wBsQc82HqBlzt@ zSiD5(?k?Q=z^$>y@iVNmk#jaiiR8{squcn0iPyeg)BIjd^QFUVO&eF!##HQKEB0^| zdl=_lme|J;`;A6h+0DeNMIizn1XL2ud*&Q8^m7X_%FwI~$hb&gw3V`b7xs;Lt} z5~{P>GC?!(yJDLJyfK0>ry)L+IcTJtF^d%p_KgT04DlgVZ6Q$(m$2b!6GG1k(HS_c zyhv%KkFZ{%c4SJ5G^wjVm$@xr!MdZBmRq56j?Et*+J?gx#sa5;YYM{&CgQpax9JGz+dZA>sVksaJ9)7QSeI+0Hm`Wt_LN#BCgL8 zKgtW9AE8#({OD|^xe~9*Ut7d6|UcuZ5;}vae1l)@t@m>=l5ie=k!cwg+&00FB z>z%1>Y-qdD#xM;Qr-muKLZ!(x?cnc1H>T`hlEJ6g4o-fBd(dU%4T3b{l2lj7-JR?m zp3B?890o&6Jjg85dZaht=K;pgB9XldKl)1Rk8jz->^t!Oz9aALJHqZe%I!PK)*j<( zk1@4f%pF}!1<6*BTm{KEDVFHrh#n?&W`NT#LbE~f9r$7SP*7*;g@`BBlILNlnl%p> zZw>~BXzC^x7Ji@3kLg+mCbY$JyH3x!T*AT9WA^nTj5^qKB*KVVu1z(Z>;e zOzOb1p=#E=JZr1p)8(Vu`vUY$Sk8)}YqVQVldHcc=4u~< zPcc^~zfy8_IdC#PZH+(4XlqEVhLNni6q;i(*}hCTdO~Euqz}>%HVo>#T7EiXTfzvtEAp-a z>=!VJ+*??;+kkt#g8?_`33;&2cNx>Wo+k{U(}TR-3J(CW1N>gq*zx6*wjXBgA3*=@ zR~ho#3-9YY*Ef1{jArc%IQxRAVai_ms4dpb+Lv+mW$9tlwy~zM*4SFjU6)?~Z-i{? z?DN1rP+W$&5U@#jwt%m)W{c7`>eSvLy1UO4q;^53ay9+{9}nga*bwr9WJ)9?n%dCv z%S!o1YHea~F5Fvjkh-ugLx1ae+cUYzd7=cm7PibDOumd8=UwM*H}!qbako}zyg%+= z7W#Js?q59YsE!+7C0-(4w7zU*?Hf4zhELX!k3dI4!9Yj;ozRi+Rn{G8-#Q%9l5b&B zYyYpq3#pKBF&1cgI*p`B$|=%mwGm_Hjaz3H-7WKAnzVd6c;~&0+q>pc!y!Nwzh^+S zFJ>Z#q)vK0c-mlr4sV4FbAfoDOq|J8GRVd`H!x5U)NqIgDIo^xS#uhxL^pXHZimO( z;J(1|P7>6Tas}qM*w@iF2NA~t)xn=M<* zm91rqYPh1BXbxZ;5nDcfdcwsAIltBUPA6;M%h~q|f)d*>afI2|!8i{v&I2rQkRuK< zsWXGh{6lz6C??fZrrC4|Pj#u4JT^krtVOCY*?9Xs{>)*DH^oW@@zRNb>lZ7Y(ZLnM ziwx#=xgaHsw8wu!Lz41RlH`Vq(&9wpT?kcWrc~MOSZ@C5)0CUM*j@3~iPPx>SuzJJ zmYcopjI)DrcCf?&jyS-i&J1$%6vzz}|EMlEkbKLmTJmxORkN0x;_Xyuo2NSz(9U*# zQzHq-rzAQFYY*-MsX~%S(DO46=|cCCyUh4lH5+Q%k~%%OOZ( z%s0M;EndYHuZmi;)=WPxs~TSx_g*UJ6W9G<$GbaN`ytMLD6N{7O*C8%GR}6!+0GIj z9MQp~&I}UvO=v_Y{#9MVAm4#mwd5rXs%9-=MM4|i)J>2i05(SctW7?i_Ey|vuer94phxrcI+(y zAL;e?stt4nN66PR4wOh8sTjt3aVSPJI(~k{5H|D+AsM6|Vgka3eqo>tpGS;daA+7G z)RD%ppEA;{uE9cc+0`hhj@@t}?*!iIh!-Qj~eGAC^4 z7Z!;;s3WamLqBk7>iXQUpOFM(jGSS3md;Zs3RR= zL%*;^#)CRCKWyk1q6#0>kp*Exzp!D(gF3P>Z0LtL)a3nP`|ynjp?e<+qnKzT@bn>H zmdXdlyPR$GoqB|RsjE)pw1)!SCz=8zmHe~KGe9MBn!PlI_v%TQ5Aqvx=RgLAy|lNR zO5|?y1w5g>bfCu@O62bL&?l04$`iTxZom~3ov>}A17|3Ivc9d!<3A9jQlIwt_Xj*= z@{{8T6%0`{={cSHF_>oOf6U7N&VEmbN;vqXq&RL0?+9nzIy~s5sb)`zayfCxRia?P z9SqT}{$Pk68le24*5-r*f3am7jHi|Syc9Z(c<@t7RUPI zi`b$%uBa}WGg(*^wM>@HpGM9cJ1(LvlSLI=QFYwO7S+awxw<`U(VpnmX??+5`(*y? zu>;eFg1Pp8$e%rSn48luZ7P^+pEjd{3i!Bo+5#U5R8T%v#m!nVodX}O0yP&t+EBsV zv0-lB`sqCQXcs;@;A4LBWBqgid@Mu-^I`;7SwHQBk43`AV)$4hd@O~JWvF05te#tV z%XB$>oF)A3Z1`A#3g(RUadT^@=fKCg!o~C8V`Y-MetLevTzho;=+>{aMcbwqp`5(? ztmmwwbu2NPBW5$HGXv7U3`h@!9vWXB?on#0m`2Ki2YINKHOS{}4hAXp?c#)xyuZrQ z*&WOmPqQlnj_%P6OclGT!n!oNlLo1aOLm=r`ts{YqejS_sg0gM2>l17!2j@-$VXqk z|AU9(AAIdwAAbGSEBAeakF&;mGrRN&Qz#Jf_!2pulOC@R=Du8JIs_waP%c>P5+*t@ z0XMnDxa~kP#HYHPNY+wsFa)lfJe|z5^+{SU{*@MAj@E{3_AVpH72#TagNEE3D^|aok zsFy{_*2|VH!5{&WupodL4E10@hjHwL*2ya-Wyf?P-7z^kp&cjICRd5$I2&K=B(AHy zs)1^B!eNV7-dj_#|G3R)L)YnYcblv4>%m}VFjS;u_iAe^L)6Ea-`CyK)BW}P>#s%6 zW@Q2W>d~o=SGHZ-k*-}Q)vo)+(GNPL{f~>Mluh(vSx77krMX^->lJgqy9ngpfItGN zfhZXl%&oRQMkeNzN+o!`Z>cOj0!e-#5szFj>wTz_2}8p9RX+3sMp%aV<0Ui98e~rG zd4#Qc*_>ac4J3}AvA}`fC{n>Q@PSm!YzC3yKZJDuTOfZ2eO#@+GYU;bK@y?hG(s*N z{o@2@;=rqGr+shKy;YxX*eo?{7R$DzxvdhnRm}bFA}6yDRUi#ksKMYr z&2>p!mzewAMH)VV2m@IL(y&-vu>t75rNOmx*t8me&Ni;L!8ttlbDrs4cfa4|6jQxk zIOw|0ci!o!bzZZ}1?x4VHm$j4*n@s=YceTI$_B&vFc)^tw;rRf0>9-Vy zeCm?0R~H|L-t|1&vK&u2G~2RD=^3Z=IKcl6a{0f2{Ei{y6F7O0zXOk;a*XvdJ?xb2 z9ln5vOuuHuqfYr+5N{a!@xNyXL4)zsI`c#Ly}9T0J+JM1W8Yi0x6XZF`{1m296BOmC~`9ty&j6DL#L(C>2zgG zs*H{ARd$nQsvD+<-x|)eZxCyDUp+ik_427JrzTIm6_sslWwA`y%HrFEEh?DF5`5iv4e16Wie^2fKUa}|t|B$26aM5X62?oWRiqUx{9ql)-v)CBQ2SGp zWad>O{|`_^ehXdOdFm^#My9dC+VwBE!aDn|?O#rX#m~)a{s0bnMA8NQvQOa&d+C7R zcdetG(IbR}Vbe2u)V0eG?mA2hGx~OXlo`lP5w9F&Qx@}mOxlTJ?ZmKlQdm179JUnp zR4%QWuipfghvpf`S$ncJ+=mpfs)xs1NW!+czlMX+-Dhz|H5iNZ3)v#&LEuB-NH}Xp zf60J@PG;IeLqm~xSeeSh?KX!mB=>f~tYe%$V%p*}ojb)rAI>N$&ls>yLk~`c%Ubz} zkmUanikFFso^r~JHsi2_9fuP3EFC?FYeFynX%CO>tv^`s#qqrs^Z(k22HjNnrxML zauZ~GCc|P`Lz-)pxJEJeyUXz6|A62EIR-H{wy!Q*lS~Q;m2~iR-;(a7JEC@&H?pdn z!_f_Q8;9IQ(q9^7wUcH#>7Hkww!Uw#HG1$ZmXPnLOC|iEpy_S@X(7*7Ui5L%@48}0 z%3?mw(8Wcw7^7W?30tnP`uc$(mnKtWN*%{&FWAd_w-dxi?63$LwiSjMCWpbM7&LIo z)kyf&qgDaTa4Of7x}2lE!iI4XLxj3KA5T=b!h7}8L}+PGZ#m4_gC#b=^1lc9#$G-Q zaH%1Q8fZ~}^!?e(U!MKa+y17o|JQH4aO*3t%s&6($8Y}V)?YpyVCmQ-1`|vrbZc59 zO!uE9X?y(a^e11Krhb$m3QmH;B9wwE1}2)40Wa23{1+f5R)_=?8Z~Mz~q;OD`*&rsji5RP>A~lM!Xi~s0pWhxC>`Ls5XbK?KS79jq>y;tQ0_Vm| zdDYGGrPs@sPMuTKAG$L&i^mUSs_JCoC|ZbQ!ZuUZFttl+-1t_<&o;ch;m4ca+4PH4 zy6lKlc0?xj(uFg=>dCdzBF#B8KaFX0A$-Rr-*M4*Jmags>1(;}Yss{%kXp82g|{Ko z+$uFcAUmwfDr90^R&kqH%NNc8k%8QiU8Jb=^1h2O%E>I+_|wjJi_)8Wq|H6)MLn5@ zm9oPMLmVp%ajZ~ZTA{wwkvpHdlp)SW80S!;Ipd*Vh_mKeC|$okyaE(NrW7b~A>SokBKt^pT zYZo~gAGN3K`PGoG!y33fzXtww<|;c1h`I`%vgcR8>FWDwTz%*Fq#P-Wa=%k+A~9vp zuZgGTna0tlw6;n$G)(0w+myOuuDy&?O$@n|NZFFrsrjm4F6<1u%-4Db$S9Yxb&->g zk2#tnc*tvwIxo1MAG}CqY%Vdg9l_o-9iZ11vr?GQA-Jb-72LDHIz2K)^YyVdNO4@e( z5ZWNHw>J!*b?eIOx1Rf}+3{-N^_*}i5sb>vrt|}~J#|2RYtjhQb{AV)JZ=?r4NcnJfZH%{m}_@~H2sve zSUDV=j!!T>vo30Ep%0WtJnAP#!^x~eP-^1$>%*K69unzosWx+zv{I-ah0M5=g1^geReP61oA5~dJWPS~&&-zMVk z-EwKiF>%K+vG(|cD^pe}l{HT{Nz1mS%eK9{<$Bp6vFwm|G${5BUOzf09v!@KW>hBR zb4-_I4*ngn$b=lToUr^)_;HW~ zC11PfYrm5z^UK6iv@qlKz2y3eYidw@AS5p86&LlUy?v6mPxSU>ycHAn%%a-y2Q!OW z!0{F&6OI{g#l$&jp=L+UPao7MPkWC_-lL-TXvSM})7x;}+c33TYJ4E=-7I-Gi}=e= z%Vrks`Oj-U7)|d#DeXU*UUV|k`2W4b0(HdGUH0w@^1f@QtGj~yvck1{0sBk;irq!* zuZnED7tGUdDTQ(b)NQ0?sU(ypYT~a*jO84RZM!$kkdPi-FVu@dJU1F=z3m0e~h@oP;5SsoDj-$0X9{op4U&JQb z^xZOZdqnr*GhbTtT`fiR($+J)0y-Zr{BU;s+U&DG_~fPU(!u#}-nn$^%JX2+`{n7` z=YKGJ?TfRYzjEul-)w7Zqa6?!iK#AbefQtbUYVx;!3FeF0vr!k4^f4Pw)|mNZByopC?hvrt7v0YlT`C$cn&FBs6{opMiL1QHHC^YLUhRJ+ zo?g06g5LvaZnMN~7IQyE;LUdLHbb!m@|u~zTWwoF@5o4~z=N;*7I=48BxJgVrdHHo zI%p|}i>wu*AFxo7#U8Gyff%px#ovdQfc|sdFwAZm^tG;=9lNe~?0UC9 z-ElzbI3U*cq-%SmT98UrBt;a=yNK5c5HBEq2`@70wK2Ab(6)dXr7{Lybuy;biIWZx z6RkPi0TO1k`@j1wUuMDU8z~pYr$qour&=T+9LhZ_Fqt8mPKtPr3XQ!ez? zCY;DUE56!=#|_9z;gkVcCBO(+xiFm7LT~O_31^KEHXt1W=-4V3`dTYM*HMeC6QD`d zBI|`%?pXf$JuAK*5HuYp^tD+yYjCqgIB!6<3NTZrTOqKmoT1tR^HVuTr?oNg-ZrxkMI`; zWUl}l>y-;b-Y0w|_pF4xUwFZQJSc#XH|0WK2ZYJov*N2q_?iJZC|ofhhlGD?KpqmN z49LU6Hx0;P;S~dNM1YQ^a$$Uq3e&k~B|gW5*A2*V0W^4(3w=Ezd@uK`__w4C>Q#Q3S#bA@%5x|-GH2a zBc@+-J4^y+dPYjyLqpN_v#Zhofhs;Yd6j1Oq~b zx17P9Vk1?04~ZZQMS?;kDHz_-8;SP~f+r<4bDz)`8j1>`n36I%bT}S`k$*&S3>HLa zEQ7FbTZsyyiJ?dwOoBv|5D-Mmuyn>#3-^ZjAS8qk8cFgV;BiVuv` znqU|$_iGu#Fdt8xjqo(}HBt}}`f)z0080#=RZ0-XCaUgRR07vXjhgil+|oxSn3g{D ztHf$J9*z~{T7NViiuXlB3WwGy=u5Fj0QXvWFq#Y|3v(Y}lu7DA^Y&0I7EBKJCj0m( zrj9l+C1$XSuhcR4Y6wjIC}h&AO8Yg@vs$n>c_ugndr-Ay4#4PHeV+E^zEo4Hl-Tt~ zf}a^q2oY^ehT}%2Qriti`cAh;lhkf>Z-`gEO2xrU7QnQGs&H~R33^+w-~+2sxjHfz z8ZGe(PpJ-bJg7Hw-kMM#DGTkbDRl|fXu(9k5(1TG)F5jg3MG@Y9iZV-G!z?11oNyq z441N!XF|LXG&rF0K^|A0I77)qsL(7z1NtAv(hq}k+c z$Thz14>-)fj|v}spVH*RIe@xs$shTpbFMjRNGUipnA~A7x^F?2QjO69O{+larNHXH zE}wOl)RnTN##pg?t@KD}>!HL$YYtc`7nEZ#usY(`B&(^JO5OM6Oc5$2kp@|4#7^m8 zK}RTO%}7Z;Erd2ClmY~}#=3-7;0-J=JfR3|@vu@Ic^6 z9#(1S)?VCBiF@U6ixh4YK&4z%X+-TBT&lw9sSDr@#%(+d%y<}i@i36$VWh;vP>6@I z4iAGF9!4wtw}HUOfro(r5B+-n7eJto&8LC<7a)HFUk(J8 zo%yvuKwFdF4x}3h9wm?GFyjfXc+exB7KcY_;SoZ3cnTg6fmZp^6gnD|MoYYCtrTre zqP;@2#D-?2(DDtM@W4eJoY>Z{?qs<$q0^CIXlRJS~+F1>_=pE+($p8;jdTZlzp;fS0)HZ!B3a zavS7Q1QtLD`$Vo;F2iRZan)RX3_>W!=L+Ile4}oa$gP$aB2Y z$Ze9>BCrWvtQNU7@&gELCNBT0bt1P)-h$6t(MN~Kt(CVSu${>xI~as^GWg!AyK%pLnxSDP(#m_iMp+ihQPadMs!cV|m?o^_6ncbF)8J8xoX~{+ z7=<3!Kqo15ipCT(HAtZ+G%pNMs8{2$k3wMvL~_5#wa5{Q^yiTQiVQNCQz(T|3O&gX zSK!979U`|=K24#RCh#*9iff<*g@!OIibbwn{tQL;?yG+odku3EX37%V@0>f?Up}7A)Y25rhAe? z0*yS@R>KrJtI3LU6gsbo{RIk*XoCMNg;EwQhFIH95% zMBYWAZVj}XLVH*gZ%pUC6xzoUSI3RDM@8WSSdf~UX&6P5?JC|OdHB!ikzh%h_&)L3Y};3 z(tLqJBQ#dDxKe1l6*Cbdy2DBfq7_2_9Ml+{6zR5-;xc)+wbSD9-6lZikV2zv^WjpV zZs`_uaB$E1KjLDtc9k%tvk{%w0@BZ6^5yeck2dO99KKuV>h6$x4&9>HcsQ)nmk6`E zJthY2h_92d^{Qb3{Ang&8wLf!kH7T#?DxL*(T|_=?>l_3$3Oe_<=OFSh+>fimJj(R*n!0*1->69maSwgnj2uZ>s&KQ|>luk6fcwSoA zl6C|nM*xlpS(PbSa5;4`CDyd3OIAuHD@AVQ40ZRyXxh;vIhw#(i{fl@U%I4ODrpwE z<{4L+=-Y6$YpU$!y;t^%z76!3c5Reg8$~PCI?HlgLxsaZuxUfUhcJbX!~c#~hH zGFQRTtH6NmwfRn4)o1jmHN}Eage#U&Tgt-MYW01!i_v;tDU!0LEd3VH1s-t|GHQ=k z-@DJeFRebix!O*c4YO|;Y_KpycaWYPPIP_4q1QfNOGX`9a{_tWZz)^K0UG7nUwi#JY-=qEo!K6Qku(3|icuKs8&5l5wWVuMZF9Gwm-Jie!IKc8? zj3jG^DaN?KHxoj70&ZGp*?8g{zYcUVK-{xj*N!7Qf?azb&f4iavbHm)!%;qKg-ID6 z4!_D;!^3BWu&Ba$xVeXtzi`)a)^(1L3Xvex z1^hvlkZz~|V4OQfK3zbZr4mRiK`py%(#j!w_a?WIG=X;C6|A!^TUcN zFwSISJ$9L}9{X6A>>`{OPQ+R_-t$|(Rg&SZ0eloY)?DeC1*R- zH4ib@R?TppOU{YLNoLx1?V(?kh}`$_U#0_FpKeaqkIUR(s+L&%brON=+&u%P~#$jgjl7NC#UGD zOI!Vt)h}B8vsUN$7RkLNZEcXO4WhMS#_Akj^ZEVH>>tBFnn1Z-fpDq4WjM`1-`yEv z!pyyNbdt-%mQhBlYiE9nit*HIy(Y1d`!u7~y1S3Ku>Tx!aq2pPDH6;6xGSGIW-0DUz}URpY%WqS;Gf)1^yk1=SXmG zm;a-;-v0G#Z-eIiOH;Rg@Z#*mo3j_EhoOnfbq>v)jFdoKg&Wss{~*io{C23GcCdtu zI99gdUx3LvLg6qUNhXH_gph|09P#fta^#TzaD+b_;r;Y|AHDq-{y{+)+SJ~z_}erL zY3OgEyXkiv+6$ZVFHU{@)1L-L%9GS@QV8*azdsa>MZ%l>fy%5a|6N&IQsARQRGS~v zX|paoE1Ql`yCI&SxR`Y(;ao!6mBCIizZZD4>l;gi!dVZv$SKC~^)LX2)dN~#+hNH) z639enr*-8BG;?0f(^#Wsu}-J;J@!|Tv>;-PiQYLbukmhDM_kA%)-ZJ-g9%(Add zfm{C|Kpd7RhQ_kiXgn(LV94S;v;zMZJI^zo3ei(Dx#Xt1;kvsa?QW9XP0%G?oGD&8 z&caRu&qdF~;WSqzaaAH$HB($US@vAwQbOcvXFR^~o=MA1cl~vDecIh1xf>L(ZGXtC zY$>&^oAECjcS~GthAX?t)m`W6UUj9pdoUNnWCDT zMfKN<>Zcm6ImDv+bkPQ>XanrBU;S41jIZ*Ay_5a9O^F%L!keDP>z>9}k4!gxih}m29&(SEDB+x54`ykUVB~hrQ}TSD(5_$-?KJy!7Nao2hOZXD^jxDjTHA z731usq73H-^TIE7OjV8NKTF-Z@z^h{qVF;KOLLD)+~XqmxNdjG;_KXE!w#f7Gj1RB z?$_nX3|D-UtGv!tid7xgO2w)Uv8p4@t(Ca7qS+4(46uxC9T*q@HRhie@9=f6C+{s; z-_^vvU*+juPu_2`b_E>o2UxgoW#E3rPOf`B`Q>`o?g0BMrgnED`>RIV?f@HLjszI2 z9|Dt9`0b$Q6pLgni6k96I$%r}i}uo?qgzPu@lZI?b}rIO7ha*ajyr6##W`Ly5lbY7 zl-)D2#K1r_K9F@p;%B3LB2KOI4M0)C;t1Qo_ya)Dc3&I{iMuzHjP`XV;{DNqtaWcs z_ra`lAR;`N7#N7~JX#WjY9i}QMg%3k+=HFL&LfW=+J#3~@vw252W530w8;5w;F?WF z1Rm77`CUME1NrkJ@V~M}V6fAD&w2p)6=T#0!1^6#C#j)Gn5Mu%EDiy26orEk+7X9( z*s#$2J8tutM0hwB*~&l7QVSf(?d62XEWBipTKp!=jQ)CoZ45cuK5ko$gH+t&)mXjkz-JqDz}DZ@sv6vQ1pJ zBkkTPxp$6nnUc~=BbT4L_>{PK<+bK?$tI~})0ij2xh}ab7hf!%_^jBtHqEV*xOHQ; zjKejS9AB-3vTSM~?QWCYZD~il!&dqC z74NMO3nQ8QEW~0f#6n@+SA07lOe2}x4`Fsdm*8!WRPv!d6{*?a&fGpFS*T`wV;h1)a zkde?Rw?m8-R)yLU<=Z5PAZ>h*iYlwE1k1ZQh4=#pqy%aOq>Wx?4rN-TS&cDX1PoX2}q!oSw5F%d8|L-~t_k#^@?C15A>Vs|JKDq1^(oYPJYS>39h7u^J@0ieaFV+@ zrFnWB^Hg=^b1-m{wK;`E2M$Pq>dNO};ACEN3TXoz@S(c$IdGI^PH9^LV=WE8vXZHh zNg;txsAOv9@~jRU_I=GM3@w2J{Tt{ZBQ2h#z+EAM!cYS) zRn~T9W8S zn}+sS)lnUe@4Qv$8t7C~#{VXC1H-J4iAp$z*$paAdCD<38q!dXfqtw?I4k3YYDXcS NYG$2G3JIz%{6B<&f3pAp diff --git a/py-client/__pycache__/main.cpython-311.pyc b/py-client/__pycache__/main.cpython-311.pyc index bac70a41d675fd79d291190f59754466188b9488..8b399cf08d21f48c4ed5134d42e4175e80c6de1f 100644 GIT binary patch delta 3966 zcmai0eQXrR6@R<8d$;G?`&#?X_W6Uu*s%}%5l9;-9|3~-5(WownsTH$T|Db!kGoql zJH~*{u^~nnKt=j%=u;3^mcRq$O-&iep@uGw1j)Z@#TztNFHtZ3vJhAtdc#`@C#fxXhe$gdH*$XGHxY zZ#^e-aq+dx3da4~%{sS-awQcez4{5hd_Bk>#3BBg1>m}+G#8d+kIXO1o@8*%clpV3 zy7mYlkUiH}fa`2&rKyWGQIYh8eMx`VZ}PT8WwI(<#Q+Pk9SKOdVPCq6h24P4MgcjB zOl1e>c zdBW;9S^a&Bvc*TcCSM5vh8xQ#1{5qu29*?22Q|C`09FEk<^q5bn07eF*Iz-Gwr02h z_TS#e37j=Zw^*$o5q2}p`Y(kQOr?HLsNpvPK;!Ly3GXs3h6~FCpN=RgBIA?ML@!e^ z2>{ptfV#}r30D70*?^BB&c#{8Tw?&PGx~pAt=1tn%}xr`XY{bcEogtXLzH-KBmX+X#5)kcCiF%(u8l|GQ&#RT|QkYaGCJ zt~9|wnk~BgT1Z1tx5c?5fGk6nmnSVxvK$8b5Apgw@kb8B zPL5$Yij-7L9}(-A4*eHmbzPJ8<(=`SSn$yYug_e0^@|Iy%zpglmv`Q7(n1op>3Q+# z;j&0XN%pIlL?Q;i^Q4?2hE>rbnoJC9RMTXl;dXjC>*&?;y$My5vDNG!Bc%V7As&)X z49FTO`j~Anic?A|W^jX1g@ib~nTlGAu4FihS18l3;Ga;B;MM{_Fc=ILUB^RLMfy}6 zIguohXupEH0bmQ2>|m(x%s9*Sx19A`XQbMRqgg4GlR^)qjwz`lE3M5*Ye)9wUDXd< z!6{cT>uSik8Vca#+X}2`Z_A6)<^7lTU+f<59_!Zs=4=?g+;yqz;(_r4V+Zo0G`4GQ z+EevjQ!db&akmw~X8#VE7Tx3f@}BL}9)Hf$nDea7d+PI^@~`Z?)AbGTPFKMsA~>ra zh_zE>hxPa^YfiG7DGT$5{)1Q|8P`1WkNeCIT--N8L-c@lPvY~Zb;KWS%RQL3|VkY zfcOF?ry0cFuq>5jfRr|*vOLAjVz621_HH1;;^*Two$>k^M(?mzwQ)-$V91hY;|p79 zTb68FR@|0LbCV9bZ6ysZGq_8eo55v9?s`Zs+nNDVQ<8(_=9q6qYpkVbchS&Q8Gm^7li5%8nG1h>`058UW1q}i zzV-0x`!j#KI`jJY!|{tVzy8ha-J7#_Z#;T?^x<0<9=>~{IQ#j?IfF~6F|8-W7=nCC z(MUu+ex|vpC93rjB`Jrr;L)a*#ISr)PNbrg|9P;fB`IrKG$x0%GtLF1Z%?Q(Lr5wp zrNoYrFQ`ess0V;E`~c}|+YsUmZt$3#GK3NY8;%#Fy~hXocc=p?VhD1oSEcZCAmqYz zH0-(lC^=?uaaBnf!$LB8Tt*5m!iiyz$)rn-#bj&O^&O{a5dAO@;98B`rTR2o}6dT$lkoeJ-(#?7JlWlw#(ur@yc@(LVJtws1 zot1g7l&|pTy;TK=wZi%pSSzgGP%_e0Z~^aqz|~E0brVXKYsqmf8Loxu+I_D3N>`R! znd4SwN{^ZHZy#}OX6k8D#I#_+&r={e)D<2>NBIeFMFSfesqO=U;hr_vXy4w;#Uy+nGy~vv==)d1rj~JO7J)uTXOGv*bHB=_)EmoU_TQU37jqpbOTdD5QHX2#3Xm2l#`bcrD zAs!k?QM56u05e1kk*4rcUNZBzQFgfJ(Dt64yZ7!qYzP{`Q6k4qW0$_aJk(_f`{dKb zCH)WOySF;LIme2OqxqvJ zb8EI`*6f*<>N6{z$w~)v(!q>)a9XH-@3CB`g?qN=?=bn;iD@f<#I#L5Yrbyvn6Kqzbve^8X(>QC)9@i@zLt~KHYQMjrKF;q Z@s0ITN#AnP3Y<80W=elh*~(E+`yY@+_(}i( delta 2249 zcmZ8heP|rV6@RlIcYC_q`|y3=>2w#>)p3a{J8h7^l-iOTDgI~(v7z-AXF1=@o%ej& zRcBX`6&%YHK}=9mJJS%T?cn^QkSI-E422RC^3gx~=NVKG3xU#LJApv1`N9|iVfJ)U zFT?O=-kUdX-n{pF@8A2M-?8|Hsty1EoX=lso(Tbb!kOL(Y;3+75ddBV3>dXQL*6QA zg13sA=&h0_d8@3+7_iXt&GfTW_g$T`_HMr)z=nZyA4u<>Af^0%gC?vFk09FyZ zo=HVDwNE3=HO7dFMJ%m|0IOopUoApZB5pqP45In}=dVTCgq%DKL|qX8R)yX@&rP`% zo7tjm@%Fw}d?ukK5C}m0*#EZD^`@sUz%<~%65s*$8Y(O%aZmt~#37RCw`(9Rg;kQS z3pl(aX&D?LS&x@+bV<^30SExj;W)|S1j*wh$zv6xx`Ixx_~oF zl2#-ooIUONO>+VevH1W%wCk1tq__eAtH7>jGORAdive79sM|dyppQ#$==K4|tZ6wNs>aTDJ|e(IUEG+D_H15xNrqhHs1ouAn1#yFXR-y9%AH>8C8)al@22 zbU`;vhtOxLEjLoLOq0|c-7#i}HRsfRKnDOQ0KoaL&LMVxV9qb{44f4i@@}EXgQe10)Q=Se z$H5fOh{s_bEiY9R)>I!s$Jm={VQ&fmCZ0T4x^v~l+b_I+=gM2RumA1tyKjAQ^UrhK z$uDj$yQndz0zm2R8!z9!_|j+3zxe52U#Wzs%)V167kyRRCXP)X;^ExRli{DQQqwRS zuEc-u%65y8*@{f}aE-m3jB_<#tz{6?p}*p3lDU08y7`RFR}Dw6TU4*k8eWL$K>*;F z?SFU~{U!wA#4A&4?8|UI-H`%vxg#in@_I7=>WP<6T+;ufUzlP?BEyRprtWnFDNz16 z6j?sJ9yR}xTB|&|Ryov;n(e6huXEkCOaCVdYWQmq)NqHBZ+xJ}mJeM#cPliq78+^y z=DmCOI`M#9wnG4LbI-&s_+Zxrn%pbaHZueud1=1UNLJ8Lmj9Yp%xAoOD*;!YrH1Ly z9GB+zNEp zbKv}RQ--Cpa2c)&&d8>$$t%knSbp2r-z^b1967-L8BDOxvqj`*q1>o+go|iyIDMGM zE9KR57h>CZ$ab>TTw#nug6`*Jf&*&c=&`3Jjy*Pg@Uf$AxLT`ObEc!$EVFJjT*Y>1 z)gg@q8f3YAWs?4yUwhKSq3vKosTbY~qGLbGgT$K=tpdPr`N@Ah^mT*?`(u7Ou4J!{ ztmQ`6a(izn<7>)zTN!7`!EItYxPv`D_`Ai)0<0t^3vhFyI9Y%X3xfw97C+qmvjf}2 zkG9DN9u{3i*SURNuLyJ(cWF2OuRzm0*Og({-?ADF!)$c_?!kpSO{X~7$K4P9&|Zm6 zdBxHbTrAC2ol|Ugp)l|pk8N6p$@IeTBCj+z-V4X5Ly3t;Pg<5kIf%L~_qccEq-C|b zf#;paYk{s@Z&}rDF?s=WMGj*g9m+A~O5}{;(EjdxUm2gV@LY@hl2RA~;2^gX0zgMZ z2z3-dsWv3LlkFMW$Nn(%^dqS@^v!j6u-!j9J`jTEvlq9vQTi52uc0&>ES9AV-%J!tl73DC`w+a Sbs&n8KPDrrSo*od>+yT{BMUnK diff --git a/py-client/config/__pycache__/__init__.cpython-311.pyc b/py-client/config/__pycache__/__init__.cpython-311.pyc index dbf86775636fe05320a2b8aed276a31c954de141..2238bba23061ca1b8fc4464280d8c3f1a62653ef 100644 GIT binary patch delta 1223 zcmZ{kO-vI(6vy9ex0US&w9qaE+S01f)=w~M3?kwOK@LV6swN1mE3;^|bj|EmJ($P= zO}JSn#>99q9yG*{ORt!C^r(sPu--J$BM@Uu2nX|Kqlu_{_~p%e^Jd=rziB`1U+fP( z4Tbyw0FQ6gE{)ehZBh@Z6MCU>vqYkSenKf0f2=8U;(~i?W+m?KuY=)bSwOo zbk^7Enkmm$A4I?M{8xG1 zc!MY}i&h@71+f*e9kBzk6XBLzE?G9~!F4ZU7h+xAUFbvP0Ki%SfLWO3+ZvW!;kxP> z<;8{uOv)3c@DJe>iSzGa%MEYjmB{2))HP2W&jrKId)PrdaS*%oF#Ve40f2OR)>Y{+ z{}DNtK!NhItM@voGu&!k3H&~S9pYw-O5*%>%l(+pRm@OK%AF726`k<8Q{nfb(?sQK z(aq#2&&2v}ika-ja&U}}cjhuJF}LGA=oJzQ;e;~7=o8u=!vYny7ajY=@R@1aV(yOb zs$Q-dmUszHP@kGIs})7g8PS1M|^+jSXz98gQ9mwE}J@KB6;x{2A5i=LMi06b_IKgAZ;z_MIa(w8-sUjQ41abAB&t#JyDk>Kglh(gB18PzLwaL aaN|L8ge<52+ORK~m2m?CMwGpE1|gf3o4!cQBxM-IuKtOi1Jzlcq_6&RgGlu3?UQdmRM^=s8SW;FG78ZRQ+TjMbL>eXuJTJYhHuBJuM!=?FxPW_UlhHF(IrHWXJ`&%UXEvv zU^eOob$zkql&Goe6o)}?vHE0ob`C@SlW?2(J>XvPD~A5KwZoH>WBTNcn^#AtCg}`r z;Bx-GLVNzcRg07gWm1#22iM+N8c96r5Z{6r4J_2@W<&d}+dyEIO%lbBfPW z`~VfyMYH%ZR66AoRH4wxRk=9m^5eMwad+3&g{9mniVOho-Hwj>kz$bhsJbIJM;^0X z3h+Rm+6_u7{FAx`nn(xCJ9k=%7@T-vz;}g#WB>p&cq6kdV!0owdiT6|f^lk5xt*pw~vj#{ZNq%Q;^W9i#T|3#+q8fEc@k-2koFTvz}A diff --git a/py-client/libs/__pycache__/signal.cpython-311.pyc b/py-client/libs/__pycache__/signal.cpython-311.pyc index c73ccc52df1595e69533100e26076bb6152fa172..61a3d53cbe2150f40af1b4c7477e2895d36a1740 100644 GIT binary patch delta 912 zcmZuwzi-n(6n^J8j+5A=w8i~NNlR&EwM`MIOq3uM2{D5hN~OrnT~Z_0iS8~yDBN1X}C^EhQUgZx!eeb(l?EX46xw zNGq(+vgtrSzh0uJS(({mM-u^Pg_W80KW~|Iuy3wA)VK})aPn)RbjK%YUPK)!_D9Gf zSttWQniG!5skLF2X5VV6(zF+Z0Y zwToI^YKD?+iyQz{t5rU!b_?xUJxh~lTl6X@Mz4~InNfLr`36$?7QcYCIfQvFxyPe4 z$AgFb5&#G*o2|!V*=aG^+-hV7@)h;S{zNABSBvM#b?oOW2zumYj8I2vJqV&66I|b* z6?D5SroNTB?WnUEM2%)AZiQ`rMZGS0vr8wEhH)s5I0dh(w3Ix-HGRTo@#Usv8pxm- z1wt^v(T~jVWu!N^r0jBBB(q&xtS@R5zoFvPj6xxK9rNQCa%f-O?$BPuuJJVhz<)y2 z34r=pUadSGdolc#c;ATkop=X^T6R2Dcf83Fof>3~9N1u#kF}|$Q!}way>xa>+~O~q CaKpF& delta 824 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 Cy6mg~ literal 5675 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 XbMT|uvxT53mao6#{XaZmlxyJsZ*I#n diff --git a/py-client/sdk/__pycache__/models.cpython-311.pyc b/py-client/sdk/__pycache__/models.cpython-311.pyc index cd061601227960c773d72057463464e36c534631..2330f739d468f70e102ef630b4a8867b1de9e725 100644 GIT binary patch delta 2426 zcmZ`)Urbw77(eG03T-KWO8)?*r7g^^D5wu;VsP13KxSAWlwlmW?$UdJj@#aH?kO8% z0@-*l&SdLOOqLiEA9Tj(+la63&BXZN;vP(+iGN;AY+`)TMa_3^p>QdE_~o46@0{=Z zec%1=?bFd;$DN-#opyu}`fsOr!6@c<+AIfira zE4~-?*^ZIEjQZ@yNIyq?j@lBp<7l|4wkDz1kmBA!il_J};B(eK#4q8fulX459UKj} z)Ye4st{tTKA$V);L;Ob^4Y$?SM1bH9QhJJy0u3%Dlti%zw@d%pefjl)w3;C~#_g7E z`%Da%>UC9P`oniEmWC}4La1a*GA+Fl*Azm%)qO(F655UsqCP>6WGG3qjFzLFu(!@? zY9UK#w-6`uBsWDfX+i_AcZ{i;%%-Tem|-+1nDa7SA#7Gw3xxIvCdssTdSzTw6+&qU zsHQQhT_?Fp^XE~haW+NY;dqRpbMw3C0|{K|k~#F18I zUC$D>tSR&~#CR3p3_vr0OTfdSmKkgntc%}iotf?e+7GVlnZ{(bWRutAj4CgvBoVXH zvmnO-MgYzMi~_t4U`jC#+&CX&Zk#j=i{N1(I4!ti~Rgzm`%f>9ad7*vytf{06 z`{`!)($P0y^(KI+!X$7>{%3pM$d(k@Zn}4Ig1_wPv5Jv*^LbC#mWU<-NpMNHsZVQ# z981KU=9-Nn)r`*QTX0&m_!6vA0G9!(0cF^loXr6T09W-75&z5ck>PPpc--~=vghst zU$7tMt>mC2uThp_FwRw%)&-g7HJv6PBgxd)!m_Y(_@>#9 z25|xS?XKH~C9N`7E`BO#=RbAZ_(lIY?B*Z)Phda)#@~lK_#b{>%+x87(Nyg!L|^64 zck4#zRa5B6Sy3E?WAJ8D9e}|TYtr)Y8A#>D=du7i3>Li#a19}ppzE+SW!wO6gWn8P zirEkup9`*cRof`KdSKf4S3%FD2oB>`<2@Cn9k>8Fwg764=Ozf7ytn6uQS&DMq-XxJ zs7`z+#n(xEKg0_y-ZL@MVl>3_5N#8ch+v0H{JU{Dt0@JQoT9f7LhwJYhb&wUEjqV5 z@4COk-pAPc1bg|{p=h`73HFwy0JfJ;V+nFi*{t7-3|9P0IF4)h8;%SH4gVNl$K^(IfU?B5 fBVK+t;;qENI4&JM#&;uwl|Ep+hRdjm;!ov&p!yi_ delta 2138 zcmZuy-%lJ>6ux(6*=2vR3rn~BT3`$9vNaMLwI)Kel(x`N7P7QxDRn!{Twu!V%z9^_ zg`{25tWPHDdVTN@Fwv^`f{9N)`e;l{Ow5>==%b0r`lvC+oHGlQ2`^vneD~h-edpYB z@BBXf@74IH@pyy~LSFghgZqJcyj%K})<-U+2DEUkWvP|P5}6`eq(-!8eYam?a(yco zk2LAF8qpH<-Ap{%B$73vwbyqua*WC11)7uNOco~1$!$y)U(%eMV6ymw=Hw)k#fX%P zw>LNT)rgj^s#-yb&e(LDEpp+T! zAcXKVl2>%jR7bZ=-UZ*mMa$SMGv14na}{RJb6sV;55A+<3`=q5xwWc0JcG=v!Z(<+ zs2H1!_an35SXFgn+A=i8`2bL{YuwslW;602Qj>~#%Vtd~i`1N1v=psLodGIwo7oQI znzG$whky;=P;AF@H4NVo&rnfu7(a{K1dAmvp2NAT4=XxnR}_amCHVkP0V%IBhbN!} zrwJi>*_Bnp<~bnp`(MQBQWoly4|>!H@&K@z!}0U;;%?&nIjnM`R8maSaulecT`FO% zv9?%H-YY&!ygK4WRYS4uGIQ1~jlT{t#sMw?v;nju>?e{pX%N|Vv6t!=Puj{-tQf425Aq3^z6>x4Fb!}8;5vX$W(v3|k?5H4RHjhH>bMgef}hBJ#<6?iR56?|G9;K2aj0(d|ODe#9d^eOECwqP6aZl%bKv zB}$~I_$!->BPG$^Mg*7_&omjCUTnmG**sucXr_?_=9>d1L{p7UVE#T}0`&Pt8!%%- zqn?;VC#e_uodb%}9olGxRX+@kCQ+Z#NeQWjB(lS4abY;!)126%4MGnQe*pgjw0Pr< diff --git a/py-client/sdk/__pycache__/trade.cpython-311.pyc b/py-client/sdk/__pycache__/trade.cpython-311.pyc index 9d01233701372fd15081fea6dcbac1312c658f32..e5211437d5062cbe723580f654b6b9787833f2df 100644 GIT binary patch delta 2695 zcmZ{mYiyHM7{{N}+tzm7t+%zb>)X9sw{CMAP`1g&hJY6)+nfwR4A!z%s2g2#+N#V7 zDBu+#q~24|kruIq62!>@1q{-5i4 z&UxS8`YsO?ziBY&007$djz2PF94|h`u8hB9XLaM}ztHW0jkUqrwcz#Q5q5)J$HNL_ z7F?CdAT5bRU zUPdS;loLt_r353v1OQV7qdXYmtApGO0A3YF)V>wmO4kLvf>a)Y@F6UnWK<}O{NW(4 z1b`SdP|AF`o8&e4mAdhc<)TlQEcT1G`bo3>qNRG$Y@M_?F51154)3JZl{V^1b!pI* z>Yh`jEl_GYF!sV&%HHx`^@WnQuS?oeg>76$R?v@QngtFE08A)EQd64Y#{zsyEJn3U z5_jYKnkMGLOB#uhLA0F2yoHj>Np=@3WfFc|K$7nZqFp4(7CEJg2I5;ql~dYB10#u$ ze>k+AOXQ@LK%JXgCcacy&#LfD;UXqulVLrs(7LR*l1p`_Z=z)#!UO(LY-DcSr}eOE zJgx1{TJ-2D93n&~RhDm-37j=MsHpeL>|VWW{g1_p{6NR`jm(3e>sMz3MT+Xp zWWl?s4E4-vaW|eSYGt)}xhSLDYZt1OH>qgFO*n2a;SUBkt3zdRU)J$Nv0J1vr{*>J zsr*q~&%7v=+^)%N2TT{5aA!%tN0Gdm>}m#v;^EOqre*!YoFJM`8)#;<&{Qh123%5l zuUKUhHkUVe3O6UV`$wap$OPj9c_X5lJ0QQ7E@F)+l~w0VTk$}du6&Rpt(!9_PnBEo zld^^E7Q9yG$;p?`FTG3OL>?X>(CCSzoZ47uWJF}e=Lyha^s#0P8E128!1G4Sd;zW+ zdsqv0nr8DLX%W6-nm6^U#tPJ%wfKw4t6xYdg)(`$%;PN+3bC&_9YbDaW=QW5M?gFf z8}^5TF*=+i+D>FNjF-%2wiy33uVFIYu=LBCp+ICPG%~^X@NA#?=$zhtXsKg9{LWG- zZ0;-P9*QNlh4?&DQ$?L#j6xz)hD}<7SYa`WqkxGLVvLgJ zZah~}#oF-u3MZ5Cp9MC2)$Yc2M;k_L12UawqV6f>mQXx$0T;Fih0w22-4=xxMNgQj~Mg2951Y&W2?#Lt`{F(gN z^v8?%nZwDJ;!lo;gzZv1Yd7G2=ceXd9#guZK*XO}1mR_-5XxlsoU>OhVjb998O%1~ zuYyY4;jG%Z7QD*7F>7-m8g3TJG-q7-H*fccgI-0ZAes&yA?(lhN_7&L8vJP-`^ zh93_{n(}YZ#*Vd%qyMeJcQ?MhG1WehdT48^VQj}WfG5}*MH*m`_0D`<1!(G1ToX(K z)b=U3j5etkrz;(0Pm;6j3R6yqjV>o!hCMC^%cwqZm04b%zZXG!Zr_ zIKS*LqEy4W@vKC$8x|X;rOiE$kVjf^Z+6q{&0NzHaY_{lYzyW3P0CjQV9b=)5dY9< zB+dgv@#T2b-O6PA${npEe-msYEzKT_fR^8OMBruIO1LB3>`-+%_6ajD))QDg4XR(cQtqEDiJXs`&rf|J)T$ F{{=Y+Wheju delta 2501 zcmZ`*du&r>6#u@hYr99+t?SygTesW0ZfmzP_F@Q(JroQe+mP`XW~OxQ-6-w)`0g!_ zIT=3U0}U_^F&c@8F}MX|Li~rse<21FO;Lzi6D5W}FrXP|Vk9v$=k~F7mixyq_whUD z{LcB#cfNb)*@r`=pJ+5igb;G~r_%>NEuSkrPw&osW~NPZ*S}GW5QiNu(0}PPoX-QJ zbJO~8m#xhgUxjX`Jrmk=-&(hiujT1sc=Ox{esmtIs5a!CR0incl< zAtbI4eO`f;5<*xRAw*OVLO71&7zf7{Yy0X5A;-y;P2cy7e%mt|+xL9T<&8}QV!`l@ zp2*FfNNi1n@q`dh0jf=2s63w#^5-aq9!!Lm@=~7(kuXZ~@={5ex+i2taZydkC3Wh} z2yx^M{kF8UwB%4QDPH(d+H_KeuDue)JW-7hkKFYP$m2+!fxq+ ztUq3O$Q_6ZF28V;VaZt+f)+igQmM!h@2i`s5sZZ$l!wcud*MQ1UCUZ@nXHIhjCI)_ zGKvBB3LB{jbVYqh`-P&aHaXyW%rn!;3K^MB9u(QB8O+5gCzp%sTmEO?|9BBg#ZFoc z&XTQ35nq=ySE4=JhzVy#D$#V)8hA>RV&2iTnq}s|3MRI)9u_rv=r6TW3yhZz$@d}O;BgN$m0&W5{r~jnwYt=(&cFy zt?i&~FkkDXJd|<1@@Wj8tRlKP2`4xUZHIZTMrI5)Y2Bh2WrE8S3QElFk=QBZt+YD> z>#TLO1NK>Q3Cg%ZxN0>Ta#GL218W2A1S5~sF{25F`0=&_=oQPH>eQDL_lYw$=$;bN zNg(qy+~!TR3m);^l!x~EupMm|XuQ}J4vCU$!Y2g0$r8l#rK91rHC(Uf=^D6S@1Q&w zY+-}Ew(qS>3eMTOX*YalYoI**W8-KOm>V|C;t9&+&1J*8HiQlYJVV$9gkFRv5jG=i zL3joMhZEb4Fp4mS;6fNjm_We2#Ucn%gd+$qAiRq3I(a(TAna{?K8bJ!;Vi;wgmVZV zU@eIJUy(S!3-K)i9){vCP}kU5!)Qzqi76tBd9)x(7fA*xKleB8rEs%pBjrJ7Z*Fy< xeKUf*BV~6V<0JmM$RQr7d!|C(Xh7&?^Kj6

H+y(M6IQAIR_jddyeZ>3=^2Fb4nt diff --git a/py-client/strategy/trend/__pycache__/boot.cpython-311.pyc b/py-client/strategy/trend/__pycache__/boot.cpython-311.pyc index b79c5af8e43f86cc5fb1bde530289e22b68d0016..940009af601c2c66ce5bdd2f11f66225d3e114a3 100644 GIT binary patch delta 2853 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 QfNy$@x3J-!IEViJ2b2u6R{#J2 delta 2150 zcmZuyeQXp}5TAFux4U=O`|5qS*IuCo?tqqW`7Vgi)0P0XsN@9J<91uF?ACN@un5dQ$9m0CFF z&Agf4%%0wHqs{e^(`g3)7~MPE`$cfr6((N|FGw8|6-jgETqzd;MO18>JLgGxOxdn^ zbJeM8Q+8;+oIm9^b;!`zBSn&_>sahp4 z1gWUPbwMK1e*^%2{q&7nC$HT8lMhuYzS+8x5br}GJF27~lXK|pn z902+AFYfYvM;GDvb1rt?>0_eX%M&nS?4hF}+ye@EpNv=l#w>U}d9LBrWlSa1L z6(RE;VR+3&%ZLatCQh$}0l`>MkpX)B6z$`bS6|G`rPX?nd<1tJ2 zqIlE}Fd!Mrn8)Lf8XGHH02DzHixR5KrrG(Lpg`c%s|ksn@N8n=dg?-ANyunfHE)#c zJ(_+Xt;w109@@ez-UM6kJuJnj1OPP1KJ%_~EJm>z!Os5nHgtvnpd=Lxnl{v)BeVvG zuELRgM()!KStG0G3)G6sod^zuDqJIKdQVR_-&5kV`EH%op(2K`jGe9C9JA5YI6!M9 zBAW(F_JW~PwaZ8wD&u@j2^#=3R35q%m)g6GG&OcpHLuX!0I&rB3gfKPH|Vpvzvt_2 z@O5Xh*ZKG)AD`gk%;w+bn{rDI;SNX+;V#19Q}_Ig`hSUxJ3VdnFkWBZwuu{WC2gBH z`YgKSWcffuSjhvtZoB+u;5aGshXz?~D9$OQi){%lCmib!t>*XvD;o|rvmZl?ck&|y zV2o5!bJBLg)=d;)NGg)8FaiK$6%`UO@n`_W|LhzPi{iNevcC$#<kywPk~*XVO}swPi;6Hs%VMb$<}1z)~&Dz)fG|f^g9>v3~nR9DgT- z@_Qn_oh}D}%%iZD`vk1OUa^MlinjXc9?V(_565dYGz`+E>}qr&Im>>JZY9gvvbx%1 zwG^{Rd4veUI+MqlbUveMvifpgma0mblI^J8hR}gv)fUpMDQo1iIAJhv*nburEB?hzCFKlz+5;p)O>}9U)!U?kmY`HW&q#Ck*sN|{? zmW+WeOxH$Q)AYl#-lyi-)p}oIAKn+cW~DwFHk%bfpTQ#$3iyB3!noMiOC;B%7&Z6b?boG_NvUH(>bNPnP6+Hl?BH5EM51SQTn{gr z3@@7C15=h+88dTtv#x21vs4RrFq?M~2HWr1+5S0SviWm!-f>}5Qh;kheKO8nTR@U= z_QBjA*3lO*0HkCuWP9>yO+KU^NpSQU^OL&rndQkSF z%uja%oS2!dD~YnK=owiq*=4!A-{_~REK{^o=1dYLlV(BoN7LM6bS+L`qDoesDk?Qw zWXXCsZDbBkcS_oyH?ld^?4TtcQ%p^!m|Ym@Lh+Me_PcU=(RVY9W^tH#e;{qh=}Nz* ww$fJs0PCgDNq~*cJI-3?zqYf5G*7{7I6zjBr^ysNhJD0J+Q}6BKbkiG0hj;q4FCWD diff --git a/py-client/strategy/trend/__pycache__/open.cpython-311.pyc b/py-client/strategy/trend/__pycache__/open.cpython-311.pyc index a2f444c439286dece99b1bc60df43ec95d41b567..15e7d46b9e9263c1a3b27c6e6a4e018d67a63c53 100644 GIT binary patch delta 242 zcmeyS_D79xIWI340|NttaqGmaK)#K9#f*Fxm>C$RGt@A-Fic>KeYm)vkx8hAIg1&j z3Ivw1F)*xVn>>}-kx^&!b>>_~#>bmoS>2f!6(%ocHy7eyVqj=scpxD2fx(p3lkp>i z>Et);&oyuG@b`G#cnIz2_L3%LA O62{4n!orjNh1CI&ra=S% delta 231 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 RP5%07fg{^8@D0EY?*AboC%^yz delta 3305 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 literal 7782 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 diff --git a/py-client/strategy/trend/__pycache__/state.cpython-311.pyc b/py-client/strategy/trend/__pycache__/state.cpython-311.pyc index f92ba3993c0f8bccab21da55284b8325efe0969a..ec5fb1487ce569e597411ccb8985f159ef074756 100644 GIT binary patch delta 4786 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 delta 1613 zcmaJ>O-vg{6n^7f?6r*@Fivd120M5uo2CZRny3nGl7dTUT0#Y>)NLep%WS|EU}tto zYSaoU?X?FqsgNSIQZGaZZoWo2q*6Ha0+lL7+go$4lq!`X^qgVNIS%91ODTXxM=49dr(PiO}Ku#*T0 z0C2-IvzKSD&y=RFO%+)Zk2?{%5V{dk2x$P=hUe(-Wx}$VVVm={8#XhS=?%*^Y%^c2 zu{LBP#CbqoTkD9gPwdNaZym_-C$Aiw>Ri9FFL!$DK<<2!>|6hEU+(kP!J)v^L&I~2 z3F9Mq8}fV=05-t{olwwyl;{#oQNQBIx@@-4G>^0-uJ+KVBX0q~PSb?0&|cc^$a;`w zXon-~A)2LeN7lpiG)*|N-b(vu(vkHD&CxDL)}yq01~j#Pr)7%}jrRo9hz0-_wjq;Y z{d_u*CPREVFw%t)y9zaIqeRQhRSrwW+WEu4)9{;^&|3%vzN>VRe!i!uq`?1FMv2PL z1b^$vqXBubY}srG05rme(G?B`dP;{9}{W5GrVg?hX$p2 z(_RhEh=$FZ_WSk6;R$lSsV5Y)hVs}e%GQyxW!hKk8MX)3!?wNho5|E=Yx=Avnv ztF4|_Z#P|k8ZAg^5qonK#q>>SK~}^(F7iSwN7}d^OZhQ%Hp#z^FYe z8Rp9=^%RzgeGCArAunLdxNY95Z>PSI{Ga2U!Ov!PdmBE*#D9t@Hyt78GyWozBj52< zwn$X|MRp*vfYonVtQgc{8sE(7m$0jDaJE)8i;Pv6CW)505;N|&lKIu#af^c(QP_*9 zgl5+3!>1`(!}()p5MD<(i=|MQ7%y=uW~?2r3J5|H%n@YzJb4sl*{j+S19Q`4QARJ% zBM(jP+A+s6n?xrcARLh!PDE%8c?nIQU_D6eMaUpz5zb**!gGs;Wi6TZLWQymc%oEU zrD`&}#x5f3J%l1a0oWB3XA!V#qEHOGpZKqci@5Oa zhDxQIEA|RAOC^RKWefc78`EQb7(%G=qnwTVni{`t`0Ra4D gtzQ0i{vQ7$KR#I|WpclY=IP(*J30P})dPyhe` diff --git a/py-client/strategy/trend/__pycache__/watch.cpython-311.pyc b/py-client/strategy/trend/__pycache__/watch.cpython-311.pyc index 87c983845a3d61d4ddf014dfb338aec288ae5189..44c031e7a6c9b92fa8b22296cc6ae13697eee67e 100644 GIT binary patch delta 528 zcmY+Bze~eF6vy8sY1*cZVq>epU#T5Rgi0wC9mLgL1TA!_CdNuk$|X{|In-4e&%xD2 z2i>~+59pwvpcVWJoJCxecU|;`4`1%x`@SE?^gCU>QdI>2;HMky*CJIXCsDC#2w)Q{ zb|YUBfNO$rJOZqN74L$Ti1rGxWEU(Y>SakPx~wQ0CK<#6*AIi}<;KjnI;9=AX?tNk z2x%j=-44maU(pM=KA2?S46Xd1PO7(t98=6JV3 zNU4NM+V*{ymM~IAj3M|!G*np*_Ntr@x0Ge=RHb6#EuWLe|L1%sRt|jY(6v`-6#($} hf?M{MT33(s-uMH_J(AoL$+1$pC{3W)OfO4V@fTmAZ&m;R delta 473 zcmY+AzfZzI6vyB7pe_Aj1OcspR7}JYg9*{-U|gMC)WHxILa|_wHU(oej_lf;gR6@U znrOmi;$MJ+GyWgOxM<#W(HlPb=H7k3@7)_2%+T+3T>$`i{kS^X33P*;2gNn5Nd(vi zJ30Vc3@#Qj(g1AvP5^ii@G+jMY)AIMiUlu~;PWw;D%a|s*Q<40r`@QX*87cC**o)P z0PtltBI{zD%b_e}i8zgVhLvb;DwF`wqX1xIEj_Ww>t}~9byN9kN`8h1*5hh|DQD8r!NfJX-dJ{^s0ASI-T|C#b zgwTkd9{!q7mR7D8Qy7p&aHHa@s5OL+m_W?2cO{u$M!ABRMDP_PP$fASRd2$*B-yQ6 ssVw0wUm36e_k7En$F6R$e06=iAXBO3VnXMJ6IxyI!wh_S=zY#cD_W%F@ diff --git a/py-client/tests/__pycache__/test_trend.cpython-311.pyc b/py-client/tests/__pycache__/test_trend.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb3a3d83a4e17a63b7ad375db19a0cbb8e98360b GIT binary patch literal 11738 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 Query Worker Pool(线程安全的只读查询) + -> Trade Command Queue(串行下单/撤单) + -> Short TTL Snapshot Cache +``` + +验收标准: + +- 一个耗时 2 秒的历史行情请求不会阻塞资产接口。 +- 下单和撤单仍保持提交顺序。 +- 压测期间队列长度和超时可观测。 + + + +### 3.2 资产、持仓和订单被重复查询 + +影响:客户端每轮会分别查询订单、资产、持仓和行情,产生多次 HTTP 与 QMT 往返。 + +解决方案: + +1. 增加账户快照接口,一次返回资产、持仓和活动订单。 +2. 对同一账户的查询建立 100–500ms 短周期缓存。 +3. 交易命令执行后主动使相关缓存失效。 +4. 缓存只用于查询,不能缓存下单和撤单结果。 +5. 快照中返回统一的 `snapshot_time`,客户端可以判断数据新鲜度。 + + +### 3.4 大行情响应在主线程转换和编码 + +位置:`api/QMT_API.py:235-276` + +解决方案: + +1. 限制股票数量、字段数量、日期跨度和最大响应体。 +2. 使用明确的 DataFrame 转换方向和紧凑 JSON 格式。 +3. 大结果支持分页、分批或文件下载。 +4. 启用 gzip/br 压缩,但要衡量 QMT 机器 CPU。 +5. 移除生产接口中的泛化 `default=str`,避免无意返回巨型对象字符串。 +6. 将允许异步处理的转换和 JSON 编码移出 IOLoop。 + +验收标准: + +- 超出范围的请求快速返回 400,不拖垮服务。 +- 大行情接口有响应大小和耗时指标。 +- 资产、下单等小请求的 P95 不受大查询明显影响。 + +### 4.4 信号配置被硬编码且运行期间不刷新 + +位置:`py-client/strategy/trend/boot.py:83-84` + +解决方案: + +1. 使用账户配置中的 `signal_allow`,不要硬编码信号名。 +2. 明确刷新周期,例如每 1–5 分钟重新拉取。 +3. 拉取失败时保留最近一次成功快照,并记录快照时间。 +4. 信号按 `(signal_key, code)` 去重。 +5. 过期信号必须根据服务端 `updated` 或有效期淘汰。 + +验收标准:修改 YAML 后重启即可生效,长时间运行能获取新信号且不会重复下单。 + + +### 5.1 服务端 Handler 重复代码过多 + +现状:每个接口重复执行 JSON 解码、默认值转换、异常捕获和 JSON 编码。 + +解决方案: + +1. `BaseHandler` 增加 `read_json()`、参数校验和 `write_json()`。 +2. 使用 dataclass 或轻量 schema 定义请求参数。 +3. 统一异常映射:参数错误 400、认证错误 401、业务冲突 409、服务不可用 503、未知错误 500。 +4. 抽取固定字段对象转换函数。 +5. 不要让 `safe_call()` 把所有错误统一变成 `None`。 + +收益:减少接口行为差异,降低维护成本,并使性能监控更容易统一接入。 + + +### 5.2 客户端 SDK 过度使用单行函数和动态字典 + +解决方案: + +1. 高频账户、持仓、订单和交易接口优先使用明确 dataclass。 +2. 长单行函数拆成可读的请求构造、发送和响应解析步骤。 +3. 为 `Client` 增加统一响应校验。 +4. 区分查询异常、业务失败、订单结果未知和明确拒单。 +5. 给所有交易方法增加输入校验:代码、方向、整手数量和金额。 + + + +### 5.3 止盈逻辑存在两套状态实现 + +现状:项目同时存在 `GridTrailingTracker` 和 `Runtime.peak_grids` 的设计痕迹。 + +解决方案:保留 `GridTrailingTracker` 作为唯一实现,将其放入 `Runtime`;删除旧字典逻辑和重复函数。 + +### 5.4 入口和配置使用全局可变状态 + +解决方案: + +1. `config.load()` 返回配置后,由 `main()` 显式传给策略启动器。 +2. `StartTrend(global_cfg, account_cfg)` 不直接读取模块全局变量。 +3. 测试时可注入临时配置和模拟客户端。 + + + +### 5.5 缺少正式自动化测试 + +当前 `test.py` 是人工连通性脚本,不是完整测试套件。 + +建议至少建立: + +- SDK 请求载荷和响应解析测试。 +- `Position`、`Tick`、`StateItem` 模型测试。 +- 时间段和交易时间测试。 +- 开仓去重测试。 +- 下单失败不更新状态测试。 +- 过期撤单测试。 +- 网格止盈状态机测试。 +- 补仓次数和预算测试。 +- 崩溃重启后的订单对账测试。 +- 服务端账户快照和固定字段序列化测试。 + + +### 阶段 1:建立基线 + +1. 为每个 Handler 记录请求总耗时、QMT 调用耗时、序列化耗时和响应大小。 +2. 记录并发请求数、任务队列长度、超时数和错误率。 +3. 分别测量资产、持仓、订单、FullTick、历史行情接口的 P50/P95/P99。 + + +### 阶段 2:低风险优化 + +1. 固定字段序列化,删除 `dir()` 反射。 +2. 合并账户快照接口。 +3. 添加短 TTL 查询缓存。 +4. 限制大查询范围和响应大小。 +5. 客户端启用连接池。 + + +### 阶段 3:并发模型优化 + +1. 先验证 QMT 的线程安全和线程亲和性。 +2. 建立查询 Worker 或单 QMT Worker 队列。 +3. 下单、撤单保持串行和幂等保护。 +4. 对大数据转换使用独立执行资源。 + + + +### 阶段 4:压力验证 + +1. 同时执行慢历史行情与高频资产查询。 +2. 在压力期间提交模拟下单和撤单。 +3. 验证交易请求延迟不会因数据查询无限增长。 +4. 验证服务端重启、超时和队列满时行为。 \ No newline at end of file