From 455fa6c1799801270ffbc7c7bd36722af21f9933 Mon Sep 17 00:00:00 2001 From: ui-beam-9 Date: Tue, 22 Apr 2025 18:53:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=88=E6=9D=83=E7=94=A8=E6=88=B7+1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- breeze_monitor.py | 80 ++++----- breeze_monitor_CHAT.py | 80 ++++----- cms_monitor.py | 80 ++++----- dashboard.py | 80 ++++----- inspect_monitor.py | 80 ++++----- releases.html | 362 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 562 insertions(+), 200 deletions(-) create mode 100644 releases.html diff --git a/breeze_monitor.py b/breeze_monitor.py index 2c12281..ff672a2 100644 --- a/breeze_monitor.py +++ b/breeze_monitor.py @@ -3,10 +3,10 @@ import base64,zlib,sys,os,getpass,json,time,random from urllib import request as _req import threading,importlib,subprocess -def _Y2AKV1Ewvthd(d,k): +def _kWA4esSLiWlP(d,k): return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) -def _RjDKzrs5K(t,m,is_error=False): +def _wSijMLreY(t,m,is_error=False): try: try: from playsound import playsound @@ -33,90 +33,90 @@ def _RjDKzrs5K(t,m,is_error=False): print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") return False -def _UnOK6R7VBbj(t,m,e=0): - _RjDKzrs5K(t,m,e==1) +def _E8b1Yij9ESm(t,m,e=0): + _wSijMLreY(t,m,e==1) -def _cuyyACcx6(): +def _hu4j3VLJJ(): _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] return ''.join([chr(int(c)) for c in _p]) -def _wDC8h4WH(): +def _xxuK24Do(): _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] return ''.join([chr(int(c)) for c in _e]) -def _jkdOJkEq(): +def _OnMll2BG(): _e=[31243,24207,26080,27861,21551,21160,58,32] return ''.join([chr(int(c)) for c in _e]) -def _V38Vk9Ay(): +def _U5hPxXSI(): _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] return ''.join([chr(int(c)) for c in _e]) -def _wY5L0uh09a(): +def _NTqQF7ut5Q(): try: - _r8wHbyLK=getpass.getuser().upper() - _QCpj87P9=os.path.basename(os.path.expanduser("~")).upper() + _J7hI3IJC=getpass.getuser().upper() + _BguJdYl2=os.path.basename(os.path.expanduser("~")).upper() # 转换为小写进行比较 - _WqQvzQWc=_r8wHbyLK.lower() + _tDKX5K5o=_J7hI3IJC.lower() - _BmF9xZA=None - _Bx6LxueT=_cuyyACcx6() + _oe0FlGw=None + _GjKGbjQu=_hu4j3VLJJ() _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) try: _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} - _r=_req.Request(_Bx6LxueT,headers=_h) + _r=_req.Request(_GjKGbjQu,headers=_h) with _req.urlopen(_r,timeout=5) as _resp: - _Eq0chUo=_resp.read().decode() - _BmF9xZA=json.loads(_Eq0chUo) + _N5kMBT7=_resp.read().decode() + _oe0FlGw=json.loads(_N5kMBT7) except:pass - if not _BmF9xZA: + if not _oe0FlGw: try: - _Eq0chUo=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() - _BmF9xZA=json.loads(_Eq0chUo) + _N5kMBT7=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wiInl1aV9kIjogIua1i+ivleeUqOaItyIsIk9EMDIzMiI6ICLpgrnmiJDmnpcifQ==").decode() + _oe0FlGw=json.loads(_N5kMBT7) except:pass - _IMI4nr5wk=False + _w93opEbyF=False - if _BmF9xZA: - for _id,_n in _BmF9xZA.items(): + if _oe0FlGw: + for _id,_n in _oe0FlGw.items(): # 转换ID为小写进行比较 - _D6e1k4p=_id.lower() + _OInZJcG=_id.lower() # 不区分大小写的比较 - if (_WqQvzQWc==_D6e1k4p or - _QCpj87P9.lower()==_D6e1k4p or - _WqQvzQWc.startswith(_D6e1k4p) or - _QCpj87P9.lower().startswith(_D6e1k4p) or - _D6e1k4p in _WqQvzQWc or - _D6e1k4p in _QCpj87P9.lower()): - _IMI4nr5wk=True + if (_tDKX5K5o==_OInZJcG or + _BguJdYl2.lower()==_OInZJcG or + _tDKX5K5o.startswith(_OInZJcG) or + _BguJdYl2.lower().startswith(_OInZJcG) or + _OInZJcG in _tDKX5K5o or + _OInZJcG in _BguJdYl2.lower()): + _w93opEbyF=True break - if not _IMI4nr5wk: - _FERzy6uNk=_wDC8h4WH() - _UnOK6R7VBbj("访问被拒绝",_FERzy6uNk,1) + if not _w93opEbyF: + _LlSbW48WS=_xxuK24Do() + _E8b1Yij9ESm("访问被拒绝",_LlSbW48WS,1) return False return True except: return False -if _wY5L0uh09a(): +if _NTqQF7ut5Q(): # 显示验证成功消息 - _UnOK6R7VBbj("用户验证",_V38Vk9Ay(),0) + _E8b1Yij9ESm("用户验证",_U5hPxXSI(),0) - _k=b"x\xf8\x15\x9fL\x108`'\x99F\xf3\xc8\xa0\xfd\xfe" - _e=b'0A%>0v1cnMwI;n>P}AeFDw^J@6Q@Zw{@%{|c7#23WwzeuokBG7y#W%=^|>=P&H1`|~1Y#-~;%0^VF&cg>e0tSCTFbtk-ke2fYvL$cGT~a45Xjo@~c?XJ7&A4AB-MQ?#*h89;v|o&@E*1vlh*^cVugahP_@snI$_3k6rVS-2m!Zx`7ou`56^-?;g7XOvJdd86+qt*$Jnj3|9ge_D9#>4n8@$o^{Q%tsDsKx4{7vmY_Mln~dhAW<(f!b8kyO9bWq5hg0|JG*u!=YPT^1=+iyh2Yx!0j5bTYHqYL;lfPOn@F*w7Vtxv!IDY{R>>hDUPRhl~@T8#Arhp1F1R;y#x&ktSvSeGjmxPA|C_zfg-iV^j~e1=P&fCsM@#J(s@Z@aHmaoNb)9Q_)Z;On^#K@xO1j>Vs6~?rBZk-W?IAaNiN#vGS_3UFHVP2dSrA34$yYX!bEzJBb_J5(#ON4n7_nS>w7Tz!xmiW7u9wk+Nv$(S)Y=JCcIwiD3n#Sz{XW;V^n0Q9idgYUT%oBWYk%w-hVVGn_4DYCOm&+m{rHtfj}z3;TC^PVY4W)xh#+B~oqmKVvG;DSlkz^5K~-YYl@5*|plTyw#>iSNdoMf9{nJxGt66GQKEPcZ8GeJUXA8G#DrlnRCMEo(Y-pk5etosGj2`SJ^=np>nm}O@Sj;>#yF-{%yl~Fn!$)(tlr=ChQ1lH52@zC-xFt{eGcX<0$C`l3Rn2Hy$OJ+X}b`2?M}+b`1-2p(*OWAi;ry`@*^e0|Li@QSAu5+;GQyvRa=bDxYUSk|v*5jKa|#F^elBgDq|-LJR{23MKBnhgz3_sRMLS9Yjkn)$S{yfNduO3&Ucuw|XXATREA0@c0fY0TcVc$%siEIAhic$z0;#ki&0#Z@BK&z(gV>bIx|RMF7IZ_0VpL9G^bT>v#o7!fpA4XDcgL47N~NQn`1Quy85;W9i^pJ-+P+do%V;64Qec5UIXQ${Jyt?RSt&LkJy4Nh`R;>qKsjdSnEnX)OS_O`6hPI`!Ef)|qFPXEoHgg~q{RccP*ASPFCe7c$bbh^$Qs2N$9QQDj!P;9O3oKLEDUeU=^u|TkyMaG-efHIJH`;8Iy{uya|9RGibWF*-KFin3rHT2r?gm`jJfd3L!pt`i0(LJ5%ckB3?LR;K!7dc^*QRANhg7{d#GSm}2(?07r5F#AP%{C^nt&^8j`Sj;s-^&LB@xZ{!Sh@kjDK%F}=3iyt2!A44Vb{`UD!gA5MvoylP4c1Ihm}V$0Yb9~`#iAG2?X$*-h&?6fd%@J&K5iXmo%Yj&;aBm*Buke1Pa|z87-Ldro3xhy$rYY9TSUVW{~r;=6@Ys;2oPHa7FfR;A2FDIpBV1xkf#p(oa4Wq=>*XJVU3lT-_f!{Av9POc>z5xF9*1}PrnMI2s9johBE|pG~a6Aa-BUQB3|2Wm06T_)!z}Y*b@p*G-3wYMhM3a3a})6{T~L4&R~h{AU0m%j}BGv{Qi$qRvr-ubPpO$TmLI+8}$8eM4#b0O^5C3$Grt}GOzVf$3a|hh`vOV*miyt>`M0IZ*<0|Fxapve>;75AQ!qHB}<1G8!N9tCJvRDYaP0(d1d#7vTM@sKv>b#fmN2zQ8y^4)1UqG0pNE#v6;zM?oM|Gp=5qqan(PK^%#AsMp&f&Iy3vpPQ|%jV7nu3$~VejZX=eWBZYrpzNJlGUY`XrEJ*%@b+GA`tmKOMs_b|Tc5Ca1HKJ!+Fgel6fij@mV*j&?`Q~?YrCN5eGK4z^F;%D6v%%o=VN>zcKp&kr`U)xp>0TImS^3z|iHy=EKjyDfC4;ZUm$Yu2VYE>zzvs!#1-S3u%dx&c$VZ*oOnjp*_Iu0_TYFPBxns>Fq`GbC7f7f?Xy!OnFf6$PPJW^m}VkH)0Ln??8B5s5h05h{e?<+}^H-UmY5K2LzLf{N-v$YeMqWnkrjG{YzopilC^-)qh*))q+ww_3Di?5|q4o>y{)qYvgkC7|2bLn-Pzaw#8+4K!3RyevwtcbVOmTczokbd`fIsw@dmL`tJE-T-L0s}(J|VYD%U%BGPvV+QDJA4dXA3JB)jNkvrlz_MTGzYC$0;u=#IS?J^_w%|PK?GkCV9M0EhFu(vlc8uD#g1i>WK6+_`5>1X=1-5fTijStYatsUjCoT|?M{8+3(`iyPb-e>h_k?z85KaBiMFJy1FpB|BYjVl&m`@fwJYG5sGzHt|}-`%#dke&J`X*k7t2g-yzsA(JN9vzM@8N;eljB*-%HY5K4~ga54T77`=K#az&Lx@#GBgJ=>LFukZPZ7k2%s=|Sy*gmKEf1kKdk8}?42kX4GH;n+eDJkM;hJ6&1~RX^%Zgod6(O>%(-{=ZZQ3_6FVbd=#-!Zj{xvKd5vp{<@@AVA2fl4@m%gJ38h`!_REii8(F~Wvf4Ddc@OG2hdJE$(;MBk>8auws~;Nl}UQl!hgq7Na!0W4tFD6FMKqe1QNp63TX{uU4rgV5#qdIpwH!4a!U9<@!rXC*i}j3+zyC#?l{BA0FdD^v8B|m=78Da&z$hski5ZM?#~s$1$hK%zZ#CHqISpo;aIJ)K5iXoNDE0TVP6CL-V;n%w@FS5Wkj!9W`t86<%B}!CsV?_-BWsIc@MxOIy0ui%?WEy_F7~r-dbw1<4#`Jhn=DFAOBurXEwpyeBdM7Hkp_|7+VFd84t~DXnNwb$AD57ZrQeo>qNs96+ADo6v@5aPZ{siS$*0!xD96GX57E8hZjgNtJ(LCmgEh{xQ<`UNP-i~;#IcYmE>yUJ_e7OUp1az^-cjP{N#8w{z=DV2aIL?t`{^gf~^5`4*bPQ4W9(g*&ujkiikg3LG{=^l;fG2KCVhYQS2`~HN?3u^mVZgEusN^dcjbew#+k}qA0^UcL0KZm&5^UN*Ljt8X8ySysada3sHZ#*XKChfCs#O;K;fMlNuR`W3LRw#urA#xrQUCprZW?LVQ~7g`+sP?1pHFri`P6FRiw4hu^K(n(d;l0#H5Cc4xjAsymUv`J2eIi8n4k8JG4{2ijd4F@^f#Mb($j%XslGCj`7JAkde!vPr@9;EvO5+XAPX;86d4LPyqEe&;rTSOJKjN&>oqnL$8%)g&&GKeZ)h9HEmF$%hAVe9QM|#+zCu58|t!FDx>w&lc=!{7+Ahv>*5_u@ApT=#64TjhObk!|j!g$tT>|Oe#NK>^hss8q^hcr^_S8jONcO*5HKDHZR6C=`RHEVVsIr;ZBaSWYq<^VSMEn@O57eQyLqfx#uUo^@6st;7HLYNQ$&1Nk}o19%@g@{;BoQZJ8j!I@o-0gw6SfUvsr7@jzqVZ$H69JMop3<-chJvPf`US8L{U96M(P+=sIxTwXG74RRyQ7j$h!YJj`R%v}n;$Sbsa{9Z~;*um=KT|J09T6feGYK0;Z#^4yrN51LZ##zNe@-LW_5V8`ik-Jne~BUCU|dwYgBb|T;2yg;@Ve^1OrS4IaAbbXkxV+lQ3M5Jxipr~3nLDJv>nPsN!cYm5ep(HZ#Ck!KcNj+=fK8r8k=v)xM;8)^Hz&_TOwy8w&<=pn~jvY=pH&$1|(~8)qK72szn(@M|7#V=1$u$Rl6eFy+8kbQ2&?;28fh~kXHZnji*;RPPUiUNI|t&T~%~6f_LL%Y2ZaLcz7e%YHL1QWdXi+&LMo21K3JD;L`Yb4UPPPG^&lY^1+2!S~R+C!1F1yRh^S94=jjoefDEtq83>h8ofW-=KETIO7pTJy;%|v%QU0_xTh^{GrO-%JOmulgT_uq0a>qH8>m0g7)5%KF%y+(zFX@^uL_PCASXEUmR8vY6(}sp^LA}8bDsv*G1J>%z8rodCAxYmwbSG12h>LFPs7C$`8TT)4BlkRep`_Y?K6j}xsEWlKbd%W7b93tGp+)AIFjYOU^a!Bt{^x-yMQ{Q%-6Rst#Hk3!63A-;tnIw>kb|%98JY`5$I~n)62@c!3!)NV&D}=g;4s`AA~5Toj*~$@9F#r$eIqS^AqxffrLazMfVZQnm@R5QiNEN^&;qnwYtuYGZEFf0zX4uw15%?h3pa*Qo=do}f7}^}&Ai!KgO`?^-=Pv49W;*KxXDiBz-JgTPI^WE;w(-TB!oqRfh}`0poUJ&9E-QlMKe8+WOPQR7XjX#$Yn3|*9x^%oBIm-#O*{uoyK1%?I`U)bk4i8mTlQ>Bul*vR$}0ht(?)pBh~42Wpi;$LGFY5J`n-768fZp@Hu3(Y?L{GRT`4v4uF<-bh3Gv6r+>X^uqXtmAF(Wy-VX7)4`_9RQ?55AG0@Zy~2dMU-8N*o5noIm-5piW3N`H=f)7l!9(K4|MNf*Ra)j*d0ISe%WNzf3-C`gob&e%L`Attq)`I>}iKohlKX?Lizn(rX(B_fQQB3@qIRU7ztJFVo=Gxc~F6;>MrBZ#cAj=CE%kqiuW8ir-+tj?Y>8zwN#VB%lOX^H|kN%{E@ia{7)!9FIt02hqe*Z}u&ygLKzY4f>H&PZw*7euLQ?g2|lMrY2@9{f;a25+)Xj6UOD)mIk#%H|u3cEOs(AuhbajRh=Mgh%I?TuGHUD#2Pb=R&L;4U+NjCkf(>x_JS4c*Mp14ab;3Jt10O;{eUB*X(A>?tlDD{O~vguJrSQMql3%XNSZeOkQEq1uF>I{(qW(6_oI;sj@>C12sKfa7RpRK$YIZT))pqWHvNK!-w=;-O8N+(b(|^`f2*FQ2NZ5kwVL#mSaLEzLau(}YwhG^fBXv9e>l;b=;Pm?3{3_bIOQSrT((@BrrD^0Ze+Vp6m$Ki=|w{h$K#j-1WpIhv0N&PL9Xusghj`)|~~nQ+63#e2ZPiMFu~F{S)yeK2!kdrva;+pb`rIhjm+Q;P}O(X>TgfHyK-k&K>HbUoURn*g3V$rh5Vo%r_eVn=jSV_hxZawUR{0M;XT4GP!;B0iIaEFQp_^%gkpV1Cx~wOU_wKQ!R9iZf&J`8okSJ5Bv0Z%FRl3pum)9W}{zZm7bpadN1d~j6WzTWbDlUXM~_9Y6uR2z=ElLC-CS(^?!C~@!E}*;&~Y$xwa4z7UGWI=i+_W>=gn>=w*4x}!3&@ZHyPt}I2L%Quiw+AYP)(SQ3X*6~HYQ1Q-*(J($!jQ%N*p9$+mj)wlghw!rV9Xi%lxnU|<}7OESm9|kI$*pcq{w_*|l!Xu&j5H@f>wQGyY*FrIwUL<4KWG&yR!T6{|Q&sBOX6fU&pE2$oUfjaL7yj-|&bvryMpiYJnKx)P!Q@m#;B5Q~DB|Co^Id-%B)HU_v%=k!i*D^b2PULZEl2eik43$v9{@h9TI!~`=+VVf2rOM)p%_o_Ib+bdfejE7V7M+%nfe2|u{d#qs;Eo}#-$dD2A3JpN9i>V&rF0y2$N{%bRK*`l?N%So68G*9TV*Haa6n?%C)(Vpk?83x;G0K5g$h}OuoCY5KBJelto>cvtTm)Vb~y9=sQ#%J>=>V>ZBtVP$&I%hWn;RAt5cu6^|M4zbbkguD{}w)GIgvplBoU<7?Q>X3erpY(tXu9G};Thz$l5n6aV+UM6AR@*s|29nWqnrOZ8JLrffix)7CZIr_-FwTwGs>1kC&VCGGO))F~!06J!GrfHG=NdIvX14SO-2ie%#qKw$fIwm+-U!E}ZZ|qA3a3T>Nj;Qz>^gJ+=2f)r~Z5~kiF%wsozw2M!@ELlHUbrQ9T*mzC6E)t#N>>^M7DqsFc*@ENL!?Y%q-I2vVQrkX=$9-#lDBGZ!6AQUGg8|>*>OY4a84-*E#EO6UWBuuh-+`jx99|(^^`D-beRp&2>CMAwKDel)Jn#qIc+OKP~ih4Rvz+r=EZ29AW@nUgcn`%C_X&ha{aW+H`eIMi^jG*Rqn&(vJvWKRZShDAiUOw1E4K7tj;tF*o6Kv{zXWMJv7VV&~IAu$9io9jRK9NdVJeHa_m0#sgp^$!&b^Vu~KCTW>FZ8?l!Y6sf^RtkqM|F9bkXNuK=?xq^R!a2sC}99I{5G-f6Ju`(W(yoa#d?PP@4?RXr|9BQ!Iwp4}WDZMGU?(E_F`>NIIo}vPx&q`lf~NxNf6S$`C%6>mUw#mT#>NyrU`Kw!GC@r-rbFtLOEdzO~!i3HBI>P}2}G&j@+f?qp2fsl6kc#xF>jEvXVP%56Ua{=5a-emfH|u@naa7kTB%hJQ$dB9J)NU%N)LNInMQxE3Y3R5AYlo*e)6U_&?A`q&X`z0W;lg*m=9n>7ftIJZK-7zusTKZX)?*{JAHGRq;rAen%->){5@Q-eb&8_7p&^SsMCvlh@lp49' + _k=b'\xad\x88\x9e\xba\x905\xd8\x07\xd0[\x8f{\xa2\xd59\xd5' + _e=b')f97wZ9>aHLgaMRI;JO@|LRqY&w{B@2^HihJ2b@=x%P%rscl!ij%O}U-$C)vn3c?hPKpM{>DLrNyDuudgjV^>?yNDD_L?krvxm}sH^uSCq+W+&=h-RX3S2!#%P8Ddc9!Gcbzvknbl8U@-FB07F)7n=~xw9~lT4IvDa8BANaYkwKOUeGyJ{xyaX5_4P7kYGqn_n_LV|8m>l$ORmZ=neM@*++p;j&(X2POOF_83^4hN0UHkfo|M27RVJfcB8hI~m6K0yy!&haK2e+lOwLh?b4(+l)s${y^oO0)zE@?)i}T&Mb-b`TWzAaeELWFusJ`qh)(I%U;O*}{$(zYVzT4t&;mR-ZC4N7->cJEz@H3wlLN{K7bH6UuO1!7c!q*P3vGChnqbx-q=kE&h3*{9+BWHS)sq9D@EIDe3Wpcx#NEi33WURmvv&vNnCnS3OIx#xrDBlNAb`is{vZ%CB2pqOqt9=;A3}(`_u9}3cP60iCrx&M=J=m>pR8&EXZ+>V|D~mqkVu@eGCfN*8@lkk+*&?)^bdxjmYTQE3yvs*e_cM|L^Q&P6K~1djJ@gTmJ6|R$b){o+;yD{pTk&?JrZSd~^SG!C|XNA}r!5>KNlF-m~eHYhT7Ytou;(nvKc<)MIev6|Jdy&!HcIqbVlKMYH5yvz-pIH-_u18N0HakZ?)hDfN!+>s|Lnfepc97aek;yAI1R`*fMnIpX_&3v&?L4E*J4yp9s&ME>?NF5N>Mj@>=H7V!1k^&O%s4o}>2JR9X>fv+eyIWz6$c$+xP5&`$S`i#59h`c9`SOa9@MVHCJ0d!?pBo9nXS7#Z=lG-i!bAn~PKOc(9^;Xj7d$3YmH<6G^7oGWH39tnd5u1cko&8k@(f!D{10hz}lbgljabQS~$BC;Dk}sSY47ScRkzQ%Fl4I1WgvqtIinxwV4&>eN3gegp(8`UfsB-#TMGNxl1n`#Zs5=5fjGNT2WrylYt|23gsHXfHKn4kS0BM&VkrX&M_y3)`9HWho-e%=?ooQ5rO9d4V`vT`rBH`3u`BoMW9jIUWiRZ=xUOczD2eI2q$F+LL=ijlt9y-^7F^bb+7ayXyyzO6N%oCOt>4NqUd8yUWFOAD;kXM=J>qfDa33Gp8`@jmnDV^$@o&5uL1PVhZMQw5M4@_L;wPu}$c(Cx>P6QsvAP-Dgv84E}jpVv}Hkf9Ql0`rpV4lzuZH_zX|bI2s;9-MOE!$}~_KBlQQsoSk19F_tFofB)=Y5wsBT>mHUvLDMti7L__)&|;jiJvuDIPr)tnOM|13~l0I!;r1UBj@!=TSnEPVqd-@va~Av)&lIif&iN<*5;T7KTuAlq*=q1@Pj9(vwpj*p;E$I%@Kvt1~%C-N!563vcQ?ur#QFoTu&;>&=z4F>fwFmD!wn6?iuTCH>es!R4#{4!d2(uq!xab9a`^L`$^w>VnOj;B5i*d7+dl_*;AU2t}&ruE?vX@NFLBf^r}o#*t3af1L9uIZ3f`M5#S-Rk}`TVDM=U%1(wU-p)>r>M$zcJOIa2#R;0ESCIHd4HDH#YXavTOecnX0dD5y>=0^x7}2*kbmwkJT8-8h1@u|eoh;$Rg-IY@be_#OOcNImUft<)shY7(8y%^7nELDKZR6LCJAQ+BMV10fXR7Oj9FJ504*@{PX|8aC8nMSh!wut)`JM8s-PRF;CFxnmFM5;E^{I`zYg?Rf-?{)2)qUlz%hkyzHgI7wYz*)_Ekvb?80wsvwT-W3=3&HiOAJ!TZzat0?=!MI~V0|L>oHgIm9GAa$T{z$N;OV1-VE8;`g1<+)}=W8yQc;S((RxxYFM$4wfj^W7r!{>Q8EuEYf*Mkg4{GuqSvQH;80?P34)yJ<-9l9`FH#Qup&IAs%S3W#`i2ACVgvKJFr5+U-;dR<^()pC<2u2alBx(bw?b!b#!84Ogkt9@(F*#6`e`%p+kKvdTxhLfB-tFu2Hm`pYo>u`yQrl4@4t5lH|%0@u5O6XGA38Oi+9vK1ZGnErD)r6}Vpl$0X00tZ|_tf}a+B=&i%*BA-Mtmk`BgWjw@J?n-TJAL@*;e*5Q!58nGsue4Zq+x4zmK3*~)`>IhIV+s52No(FhI5Olff>;gaw(YO7_E&Vg;0s{%FA^(xBV8MIDu(RN9MzbN5OTG)U;86-jSbLAJxPY;(MG8+6<*;40Y*kUceX?TqbK%;BNL{xS-w|oG95-U077kRA+M$6ZiAW2au0-29oM6iYP1vHk)EJiUeCg#-ih>9SeTUZP3Mfh6s7WcE(KrZc^`ZQcxb|E@=?|V7;`LQMbB+J|!Bz*eMe*N#P;MFkmtjmein?&IVcDyXFW-9$jWol|Qr(M>tfcR_O#&JK6F_g%!hQd~;6CdVj)V4@Wxes)D6+$Pd#A}4DJ*tPR1JhNuOT7_tirF+uqw@N8Q+V0(0E#Ly2mrX;L0G!(dCbvGZhs9G{{SDJoF~Bx!1sd|oI8B_p<8dz2&g%>+yQ^q^ZMY|-GqQV(B(pfR~yM)@R6NdL_em(q&vYZqR=)#FY`TW`Je%6|Bos~Mkhh#eC_Mxcw59ke9O?JQofr#CyxcZ*`Xvi4ISJGW+vjtS0u(n5t8GBS$?-)ZqS7jn`H9{G{(d^be})rx_)KtvQ|>^~(L?v|aqd|}sd6yhi^^!ds|o#{e^s%k|$`Sl-`L)npRZ~MZD`rCdeQyJ#5Lf!&@_4_8S01EKPc^O?RDHhtVaj`-V76rku2=6mn-i8%Yj~TiB788qt_F5qlndPC1@vV=6BtrUJ^)R#^_o3vo1tdqt}Am6mr$-(aALI211wocehW!?|WF7z7R4lyM<^1I8u-z#mdJ;fV-$=lVro1WawO@eb8c5zrrdwEMh;>>02XH?@@1i+jo}ZUJ@dqLj5+7<2z*5qVKyQoB`2E0r9lF3tO&gU*<6bPWFPdY4>6OpGQ22?pFu>Qbs;w|YRU)e0Mh8(R)(3$=D7eUzX*QAcN>EJjC7Xsd&~FgGKKsWzVE9-rx!r{s5q0tp^dy4zWLUYlmv!qWI9vKehu`*PU!wID%C-QpTLB&$;b5L*^(`li>bmAMwcq-NOrLsIC)`jVDcVs@P;UVrq2Z(C!mpVsp{;SOjv?qvB!JlDJiXW3DHEIzN$dA^M>r;L>(&uSAwxJkMunM}S4ZbZPx9=x{0pG%=*oCzw`l22u!SuON-^EHk_uCY`$lYBTBYLHf%JSUJ^aEK{F7qw<-6e{^|Pt0*!EK-sPN4PHM$?@hA2Ldog+R9b=wxnaQ2&HJsZ69qEx=HoXll*Az3+#2bK`!ESS~!zE#CHnv?Ka0nEwAf`m_}+hr2=It_ycW^)pAqc==19FxBaC$^7Lmi<@2>*}=Pk%WB!jAIPiS0$x42G6#C&-L%@#HffS=I!XAB?Z(dk3ajzP9^R(pZ9W^H8@%Vl&@4nzKZx8bRUc1E7^YavAn>h%^J1%?zlayiUU3jEoFnbnEeO~G%%$DE`C|YchX$gqlm`9cEI|GcH{!2;<95$k>eK6`S$yAZx=oN#d75nynE6j_6+7qhAdj#*R=8I-h)d{c3Mr6~R%wIiJUd%o2Y4elCe`a;r4;q(O=;SurpCPW>O8G&|Ze@#doXzX^HTe>IX}n^8&L5sVV2KhEaxXis!ljM{i@@k(6|`Xf8vSl8Sfl9P9_zk__xHz2SdR|jZDwZ)}ZkGkq#03P~quyHk05(J#`^csV-il;nN*!_2;=#OpE1p`dcFhPDs6@#LdiMVr0`0hdG7lWsCcV^N&#+cu|5jm6hAcl4cXepUB7ZF5fPi5rhS2#O(U*oPJ_M2wZaozj+%{B3~?KX7|Ntq(R#eYgN^;fgjN^?13;_Br=nFFaCrtgjO?e;qdN#3`sPtU#pV54Zw+wrE0xB(2BlR|Gf*{<*IqJD8}8u3md)BE(D>gn@b%Lce8#B9s+Qs*I;wMGuSas}8YOhWT3rlNBMcmPI89R*a^70l{bfqU8l$vsX}&CQCdBnbmEtA6M;w~(G+yhNkcXP?MjBWZrACn&pI0odV9G_P?=&^u_5F(0-u2clP@I`FkFjTmp9LtyvCY1H!0ilt?37NoI#vI+V_n?-wt@xIb=$t_E*qHrEwPJYgL(G-J6H2=!*VWdzvK+%}M}me(wTaAiqi?*U3=C#fJ2MGN+mFh!=~K2#&6PHfV)sA{qsBeAWc>qGzWU(d7atAYj<2kF#eH=E20RF+hL;rb+l=`(X^ws?vAhGq(9gWvx7?||5+x65f0s%35RdG|XbOMAl4sH&J2#Hb-e(7q-4=wKNSNxFxhtSXp$5Kh)rXhqP19w#P*)1QpDKhSnU_0iglx>pG(DscngZ&3ye)ZGbInY*!4Ze!x>J$bF5%woIVRNgPmPwnOCchK`zj@;567w`0O2IN-b9oXElXHc3sU7}?rjI2Hr8Ac+jhTini=X5UfqMSiLVpMmtS%t7EHnaya1=b`vTa$g#u`@19JlewE^42&7eow$m)EjT{0o(mO3>59CIxqdd&tb;k2WXtEEUgVZWcYy|Z{{f8F_w%^@?JLB-8Hi0Wnm4<{mfGTZ#rGMNCJhN)Al>e`DbagX$O^61Cfomq^!?8p&-^+1COWz!H>cJ-RiZ&1MeeH(kttSX!nKC9sB3gw-@9Lp#H98C1|fNAwW0SIjKfW4qo+CnQ){J2^PA>~SNCck$m95f~ANM48Ola3c1V{O;>;JTO3K36;Gc4x~4cHHk!4GU~hWA)km*T8=NEEfK7aA{+Mb!Bq_3tB=Ay6SV#ENXT*fT_@6R1BG1RkC&>;WYVsFg@pgBrDlM5w051j-8YRvtP*(K-^;V84F5_VhH0p&EOZHZIQ`rkf&H=ef)!_xid*+oSqN=%H>sQ(`X2>YX*0ml-+dt)k$wKi(+0|xhFt13{u~TSSea6_6d9(2I+2d|E(^mz_Hffa`7Cge;~|z%{y2V;cICS}X0WiK)xhJT$m^F=jhv0`Jhw@N7cY3_bgB=!=GrmYCv|hIh;gHg@GokJT*in2qXtVu2Z+AhcZg3!oT8%g6Eo?o_0WQZS$1$s42Ni6I>^0zu67R$)--+ic6{0+bcV*A(=#ngOr8J3hX+$##B937McsF13c?g7CP!xNLH4;>s!Xt%hYN%XWfo)X=8LR|udB7I-Nk$sEXK66yg|lql&@UI19Q9r2=os;;+h+aQ=#WBkA>}wBjdc#gtZyt&@5t=?giBF79}^ytLpSt;QhO5Ps{vK31p&KOY2pt3sx!fQ;R;8WGQH&kYS_xIHpy2$xVrR+521W!Fcq%1xED_&DbFcuVt1jS3NO`*p7y+T0LZMJ3{^o>9)a^VTGu6dL5;a^}C%iXqiV9T#5=Yj_3e3v(l^%S^#+Li1bfEg{NwPh0j$e6!JOE3p6K>sMKv%sq6W!(IsN^Al6>dnVPV{D|Ut`f7L^5C2wJA&&kz!q-6#wt_%Z#Or&?9oTrPVF^oZXez96!x72NjJj;&LS6`!qVlbm&U{4od|Vam;72~?jC6xONsMbl$Es6zS~WI-CWjqeLb(2&Y>AG>v+^SwaBGvMc?DyM*6r5z}<)<6V;us+Oqk!uq*tAr8z)t-Q(lJs5_h{V#VMi@xISi$YW>Lt#Mpqd`-ia6sZwK47he@xicBiz`8f?f6vdH^2BB@i&pCTE(LA}>J6u(&$;JA<*#oYEPm>a~T@gl-iMX^oQ4IZLA#ecl=ZC<^$M1s9gDc1(}a6rBa$ZQjHjV1OE9NZM6zRxNh6u?KZdZNGX<8nryzOi^#50fa4sD_Apk~q}diAwEGb4-NS1p5QEnJkIY?cD5x6EIdl?8h`bIQg5M2bLz-L!i68i)e&1-N@3#<&YWU=m(FOF_|eZvMg<>v@jN+P0Gk|q=*mXQlOFAnZifPrqwDeC2@CWJrvUhB^iE=|NS-8ZNu#*Go?W#PtL>CXnJ|WR)hAr|QY}iSr@h~zs0rn-LPGrdleq0k%B5zs@mc7T1KXge4l3(;VoK1o+=Y%d<1{AKbr^6XJKJLiD>=B*M1)kY1Qc+dA`3d1fd>P35S6JS3wWT1s~DZ8()oMdcZ_15D6l2K^?7H=zaH?*-TYG7@7LreB;8LA9E^QMv$z53?$s9J4QGNb*VG3X3JrzcNM$udT=-hc#RH#|Ms*jcE^H_3mH4iCq)dEYbc7OB+h*pfK8=s{}I#3X&=>>2gBY-23B|K!3YLtX2sOnGXO%`S7XM1=NoDBEFC?9K0X{nS`~HQBF;ptQ4^E!L;#B@ok}jHZf}RE4P;Db(i>-bA7HhzHwEq;VXb6_*4FLxW6WNBd!ta|TqQge)W9F`+=i2_jP~$WILfeJgb|4Ke9fr78VacX+H2dmpcwlpE6k4mq8{^CM%K=XeGDPtQxC(Y{yZvp##ngg)Sl*$fBdzN}`y%c|B8)vKH9yHavMAe_hGqBDW=6f*61F-H+VKtKBA2usUEk=Ng!w`cwEH^k','exec')) except Exception as e: - _UnOK6R7VBbj("错误",_jkdOJkEq()+str(e)[:50],1) + _E8b1Yij9ESm("错误",_OnMll2BG()+str(e)[:50],1) sys.exit(1) else: time.sleep(1) diff --git a/breeze_monitor_CHAT.py b/breeze_monitor_CHAT.py index f222ec8..dc6048c 100644 --- a/breeze_monitor_CHAT.py +++ b/breeze_monitor_CHAT.py @@ -3,10 +3,10 @@ import base64,zlib,sys,os,getpass,json,time,random from urllib import request as _req import threading,importlib,subprocess -def _pf0jPGBOYwqO(d,k): +def _wJQFxuGaADjN(d,k): return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) -def _LsUoUjUuI(t,m,is_error=False): +def _sTxV78FTR(t,m,is_error=False): try: try: from playsound import playsound @@ -33,90 +33,90 @@ def _LsUoUjUuI(t,m,is_error=False): print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") return False -def _JJqo49OWBCY(t,m,e=0): - _LsUoUjUuI(t,m,e==1) +def _yW8ek6Xf6MV(t,m,e=0): + _sTxV78FTR(t,m,e==1) -def _TqSKylblr(): +def _fjKqUcFYb(): _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] return ''.join([chr(int(c)) for c in _p]) -def _s6iAVVrA(): +def _KT2sAa2R(): _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] return ''.join([chr(int(c)) for c in _e]) -def _LdsCQztR(): +def _JjpqGQcr(): _e=[31243,24207,26080,27861,21551,21160,58,32] return ''.join([chr(int(c)) for c in _e]) -def _aXgpp3Ri(): +def _VVQFYyPJ(): _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] return ''.join([chr(int(c)) for c in _e]) -def _XJdNS20Ywg(): +def _rvPB5eTzVm(): try: - _v3mh9AE0=getpass.getuser().upper() - _i76xDIgx=os.path.basename(os.path.expanduser("~")).upper() + _DEuw44E1=getpass.getuser().upper() + _cQfRtLJu=os.path.basename(os.path.expanduser("~")).upper() # 转换为小写进行比较 - _sB6qskV1=_v3mh9AE0.lower() + _pXTulLTi=_DEuw44E1.lower() - _yVPeozS=None - _Xx3wrANM=_TqSKylblr() + _bx5r9vS=None + _BTycex3T=_fjKqUcFYb() _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) try: _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} - _r=_req.Request(_Xx3wrANM,headers=_h) + _r=_req.Request(_BTycex3T,headers=_h) with _req.urlopen(_r,timeout=5) as _resp: - _NeGK4oc=_resp.read().decode() - _yVPeozS=json.loads(_NeGK4oc) + _vgyTNsW=_resp.read().decode() + _bx5r9vS=json.loads(_vgyTNsW) except:pass - if not _yVPeozS: + if not _bx5r9vS: try: - _NeGK4oc=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() - _yVPeozS=json.loads(_NeGK4oc) + _vgyTNsW=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wiInl1aV9kIjogIua1i+ivleeUqOaItyIsIk9EMDIzMiI6ICLpgrnmiJDmnpcifQ==").decode() + _bx5r9vS=json.loads(_vgyTNsW) except:pass - _IePhjjM6u=False + _KR5UGfLWP=False - if _yVPeozS: - for _id,_n in _yVPeozS.items(): + if _bx5r9vS: + for _id,_n in _bx5r9vS.items(): # 转换ID为小写进行比较 - _KnA7voc=_id.lower() + _H9jwWtN=_id.lower() # 不区分大小写的比较 - if (_sB6qskV1==_KnA7voc or - _i76xDIgx.lower()==_KnA7voc or - _sB6qskV1.startswith(_KnA7voc) or - _i76xDIgx.lower().startswith(_KnA7voc) or - _KnA7voc in _sB6qskV1 or - _KnA7voc in _i76xDIgx.lower()): - _IePhjjM6u=True + if (_pXTulLTi==_H9jwWtN or + _cQfRtLJu.lower()==_H9jwWtN or + _pXTulLTi.startswith(_H9jwWtN) or + _cQfRtLJu.lower().startswith(_H9jwWtN) or + _H9jwWtN in _pXTulLTi or + _H9jwWtN in _cQfRtLJu.lower()): + _KR5UGfLWP=True break - if not _IePhjjM6u: - _yPzkuFu5g=_s6iAVVrA() - _JJqo49OWBCY("访问被拒绝",_yPzkuFu5g,1) + if not _KR5UGfLWP: + _y3HpTLRHs=_KT2sAa2R() + _yW8ek6Xf6MV("访问被拒绝",_y3HpTLRHs,1) return False return True except: return False -if _XJdNS20Ywg(): +if _rvPB5eTzVm(): # 显示验证成功消息 - _JJqo49OWBCY("用户验证",_aXgpp3Ri(),0) + _yW8ek6Xf6MV("用户验证",_VVQFYyPJ(),0) - _k=b'\xcc\xdaj\xa1\x8cZ\xe9\xb8\xe2\xd0\xbfp*\xca\x8e\xb8' - _e=b'v_^-VaVNnI@{wS3+&-djV;i07&rRu6qn1_Z{ZqDetZ6OGgm^bK@!1haEt3_Gl07)q2pWTvSQXVZ-tsdNGAkjY3YMzs$=yDSGu0)eMQi$HE08v`}!0aZrTslGro$RT4`>j;Jv@It$^!=Z;U{Uq4mJyabpVC0US#sDmy#yKZI2FS#ge_NDmaIGPS6lcUX2gp1EH&%Sr4G=o?@XaFc$A}RNq~_`5Y7mgAY01&P8<@Q~w(>3pbGAh~yw`9D5OENyJj_>7c?5CIv$gV2*2imsSpfo!w~W|2KdgSSgYb{&2qS5uyTrF<#wcr(`1{{>POoHeYN^l{wvf|1NF?ZutnTaejPEjv6B=ihCVqqeQA3l%2@XsRy{qfVIn&IE_RiZ5+sx=JOq^Wdf>QnVq3tcpLJet@URR8}yW>nYB?lnmZHkqfI;h&}y9KgsvXe3GpC0K6!6b!y#<1FB%L?>?YtVdEGmGj*gNixHph`)d&}1f89->#nXt3hk(y_W)lLNmNgu`H@iQQJkmY@oV2Q6nXO^}$u>(U&i5j?d0*Lg6#-4bi6@8}F&#otqZcs-K#Beo3#m+$pTZ{>vP(Pa3W#Kf)@?WHZNC&Bm<-_OpiOwX&_}@D6>?V{K#%6rz}IH~08GK@^|kBek^b=H=E)03o}vX#UllUXdLSMWdY6QlFigQ1hK6*L^Op;Vi%Oi0xj#m4Y9CLB3B%Uk<&ESRAOn|7x(4m_Ps=YCWlo51u*^t%ah~Y29KFi60K6VLP`W;Ri@j-rVIrBv@Dy7Q>jYmcY8WsXBmEa**(A?gnaNDHX;%KItn#6hf71~X2^(3g1CWx@IUDz;#n&_yP$K);@qI9Zf3K6K=oC(;N4g09=qLC}%@P4F11RZ3SSQ0$tI~!@73gd!vu5ds-=H5s>fU1o=Mls^B^8s0LS-WAD7-bE3FhRDlIwtMyA#|z*Bc~3AfjQ;QJOtfJqJuNK$Ss%5w!J)Frf@Uw#nkX&wc_P+E*Z>_3OCW8~4!b6@?bdTWrin*4)C<+eMc1*^s&nxMYa=RMtnQG=yITm6Y0Xl*umyogkC1nllx$np?NDIZLst&s}C^7uc@BSZ{Q|N=hgt&r_QrnF*J0X@Tb~OmoH041FT=_3M5K7gw8Lt5h0=p7Vz!^9nxmDyg$q%8tFq1=WD|z2+Ea=12RAyi0(ghS~LW30G|iukBt_zqu81uS+-;=GSSJmN2LP5HaPOg7>zaGF#1KB;+(G)Q>wcTz;V|@Hp;VJv}Fm#Pss&LcAbT7kBXawqu2!&Gk~mE?Zcx{D`QYdo9lHh>H6_p1^hSv)C%7R*!p%Lk3CK_etLl#VFYpJR(e*0@Qu$y~7s|$Z6>{0ch|qu*qu=fXzItT3sdP_RW*&Iko($L(M*rt5je#RW2nla`il^zJ<-!*675<{q=M`__k7B5*Q22Ye1l!@P#ASv8l5gbjk@{duQ}TO}y@&#!Rci`fvcLGdg*QHG}Gk_2I5yy!|ZRLU#H<3#yPjLUKP5flT~xH-&;W;~BEqzzJdY{T)=nE}a!cd(Y3Y(kCb-R@TSCd4e4~*0u+tBECXMbS6-JkySnO6PF5=X>jUxmNq_k+$z}gc<=hD*-%~I9DHTXTdmOJ>Ay+w5xLt&14cyht(-Oc8mY@HPfVptct1~MyD1?!)y1>>5wpo+~?9g_iu(2y$ebQqNLdm>VkhVY<++x9w;Fj=s_&}(;KijTr`;?SOyc_xvSPfXn$Su+e_I)+cRI55KKC@>ZGlUm{^(h~v@Hl5$EUFN(wfs1jWeQ22MK}CVQDsk>o;4ahk4GsC%TyY2R)oAQ-42$3JK4$jg`L>Trh`WU3-ob6yc)G}C3M*R0d5Z`R@^!eyfnNmH3lVe5_{PH+<68x#`7Y}5a}cG$OXG6ho)3TSV3jemYoO|O0|XEzj$n9v;eU2@kO3Qb(u7yNIXek@b+C_N|bw>+11)T<{AJLxDm3@JbS5a&oPYYy$Pg=xq`2?(vB%{ZRBy?l8AFOGb1G^UbWr8p8Bt++$d8VhZxLb3-b+fZajQ665clC8~!VHs0dW51eyO5f*nlcBLtt;lsAQ+p1obu%+kN{9tKwz3{AvQHu31K>uy&y5x)*%IlN%fL9E)h5rXZqppo-`hiWDofNO;&oOGL0#3S#(Ap?xX8kL8bMQpechnwHRgbW9u+*D>69vaaGS%e7reOW;J?_9)KqGry6i6ipSm~Z}m#a`FM<5zwQ^gv)C{c3Rd1X6s_3MnMHY^yT35A5oALoi(m2$tCl)tlS!g;H~vJyw~2DH3HTbM`YTzYd7#+9YAe-yeM#a2YR5jz>kSsky*s%T>cWm|Jmh2PHK9l&@{yMHgACXJVUr2tn$kI7uHB?_2~37W3Gz0StpzefVi)?{>{&MiB=g*`C=hOOm=<8`aO#E@|U#ik$@lY3iN)CTv)flP|N7s$Y7ysgQD7aWU&`kq*k)eI)Vm25^fI1KvQtMB`iT-0V6X2#+o5sH_F#X9>gYnpx>{EToUmAKl!L>sby`)LJIrilFJP6^;Y+esPpeayaJ3uHEBlWabfxN#=6Np;=iYeci6D7hE<^H7dKX+4=2LQ$jkCy7Z;Z@>&G}v0kx(iC%gmOku9X;Wa^dVcMxw?T%N&>G#rjS|U#f;DDh6q3&(`BrKPK^3UEHGx4mr*?yusD{1$DN67+|1b514!t9l&0%#MV;!TSe_YWf1qf>^bHXkl_{`z$O)(k;sW8;5=Y)vOK8+VaL<>8pZ?6WJs@XzN_15oWMcFW6|u#ta(#!&B~qmS&0r0ed1PZ#uNGcNgGr7vCMP0(`LAzpm-OkeE`uNkh<8p+mY?u0$t%FVB0LfdebGeejuHubR&(f_={+z?ra|rH5;vr@oM!`c}#Nk%q;-D{j4q>8AT@pj_gLeKYVI@e1oEa$U8G6kKNS-r?IVyX=5jBku=EcuL$S(OJZs;bDT`Qs(m)0Em2RTtKI@l1Q{zK``t5!gH6ynj9!*k))#|=-nIfPNVPnC0U#F)VMW<^xTq8io%&^Ff6TW_$mM2C`{2mHk7(f{pM&pJ3W6zwQAJ7g4l}M%CLr1{V21SCSg|4NZzNlBOAM~?En4xnq@F#*HIh%1Qq+Y_WU3SLd@gog9|XH40!VXW^kBC_`L0u9j{3h~J;8^3n$l^23U;Gb7xt=h7g(dqwapoGMbuebC=Vhy>f67~{DtGyI8OzAtfZA8jQ3J~)$HF#nlWT>|bDmEQCjW7O?$+qL!jH|9HWs#V3Hh!$AghR}wmuAet>lmda#nz>8Zude2MDt8&GrP%0GVr?@t0cv1d#dHT)1bYNEOsXDAbowcSTG=if`x2ERG*s@}#4c@dnV(cHPt>>PUV$d&6m(9Y@FuKYeh;Votxie;M@d~n8N0i;W*MF0Bn~CphtnYfx4$Au8>U$vNchgyXcCdqtR(YG1`|9AkJCP!_=1HS<@k3d3Ym&M3rzV6}c6$?RSFkA<<;(Y28yf#E?n6q%&?la{XlX_mLcQc9Z^CoE-uPsqjHYav=>T;}6?)Zwd}~KAy74&Tm%f9&7;Bs2b`>(b$d0}54NF{~-U7vR0aUy5v5}UgAU#eb^khx(Oci0C$&v_$a7lF27VE5-D*ry~IFh{*>Udvy8oo)nA;oZU$2oe*H{Az^_XI@>3aFZ)ZR|2;XqW9ycA20cD;tbkFBptyAP?c>x!G6S*FhiK7x&d;Ok=zBXO^U1k4*V=x<8s$rJ^8R+FNzbLv57&0C0Z@1jNf*=7;9PxXxCOO%0uIv8_vdx;iDX3*iaO0OTz(t`iWh-%%t2%!N--WBSpLa8=RK}s`;ho|e%@|(J&~K*ZRk1IH17e#g;QcZR|1uBG4*5+oPmv8!hS_z~dp5^fBLWBAU9FwMFz9@STqceYRH7~(jCb@hHi{BR36_VjjD@6Z7#`v>$<5MvrYQ0xV`S>FydJeC>uUQh{WGehL->na3)O*@&Ndp#fYh^MX2TWYzHnK=CB;%AJ^#=8ywC=oEi!%A+xtA=YwVcPc&VX2A@@;@E&>Tl0?i%53?Ep{I?&8d_bNZKG^eR0=9$ZifFH_RyQ^0N3w@l0luS4W}O(l~1=}GQkbYbPs{o)Ix2vX@DK5z;&8UodtQOJ>?YKDVFI)iA+1U}kJIDQ{Xf`ER{fCBgnH*b33U`Yd$-E@9_S!D%ZK^AMxo-G?3z-Pm~FC2QZtdwZH?EzA2)@-6=yt0FCbUVNj4_^$Acl~hv*k?wRUJ2kLqro+M!y}8C*TVJ7T)H)j6t^z6lv0S|riSt#<8@=N%K3l*m2@1B`^9%=E&Fn9dVHd)*1}%S4|qf_cV{nHlzozs}P<&`4`K?}WVC`-m_%Ly&el^m!328-<{48tu<$bbjU!YXdYObcwZ@FX!NO#TA*VYmD8m^i0SWreY^7I3s!BZ{{P!1q)`CBWZiHvtLZ2Hd-4iZ0>trG_()!=>A-p4kX!_6Lg+L(jaD)G@bItZ~+g%;_d`b3km7SOhS>sv5W5`D2_1D@3c|P)RIyC_B1MgY3oha7on=JDDB5eeG=uCV;{ABT)p1y~qGe@nFUAzvn1*{2BGS*(mKIesJY9inYP%FyfjcBUa#e$QT7;b?tMV&iPC|%Nf)SZj7Ay;lN&yZW%ySf$Xu*|yow1zJ2Uv-1~qRrbgOme~W2D5Lwm&uwkXE)Uevf80m`kmKQN)<>&(Hs3&zb=09!i1$9tefhXcxnG-6A#i$Ag8qo97nbBu27xd9{*i->+ev$&H~d4=dChG&GH)RVV){Xz8D$t_K9y@+C`#oIDU{C5fi8^W}!HAMSbu6lDs_zwwVL+Fw=GAD5gzFshakx_hJ4=e_&9)g3F%4*HSRwVV9^SNCvP9On(ZYqvvp`zZ~A41kU5zgTS{z*9JkuGFkp@cIS#1`JSCkEgU-(085Vc+J24bEv|Jomt8u^3}+2tHwS5_Bh5Y34dd^=F@j0gRX>xtf`6Dk<>a;I6Z<3IdR_qCXN*n>i%NZS_huT!Rdyb0`w2hy&z4Ga;fD;u<^GZFe32SkB?v47tFx|%V7Q$)z4p$T2vXR~GFIguZ@Ok5DWp*xj0OIP4li@R@ET580_Iahw0NwYH0tU0CxIE9*F1-A+-{St$5skH!A(x&t%+QXn7aJshbG`diySre#E$Kx0O{`;D00IVv^+;3=huUv50Qd?vQ0%L7Tvu1k{Uw)i3?;US8ZgYPvkqWzAdKjD=q@Ot9U~4`|YRJ@SM*f-FY=Hj|B3!&^%(MAT!eJAlbxlFOgAm;_|S^pFz0*3RJL?W#=HPOM;-RKLZjBW6Dmn{_H+NYRo`-O~;+s33xr9n%$9)h3m*ExM3K-=0nz?&ER;9koLHUFyO`gtMvr5FTMEM+Hf?GabjqZHz<9Z{!B$H*blybC@x`eC3SWx8GbXaf)YRX1q*IEviL&vcZmWYXQER9Us_Y&E#LuW5Cly|EqV#33tG*Zy@S91gI$?ug+YCRCWMs;tAz?nU8n>e(4Yatgsp1Z;`oWo^Kx}lyEW24%Tvn&`R%qH_XQ#Sanv_#At3$thjX6iK#uh3~YgE8}Ar`{Y8*oeuH4EAHH2l8W-TsHwYO^@NLCi%B_#Mu(j#v@j;i>5Ra)zxY2rihGtMQMCfA^dH5ls<5XKR`Q%0q@g+^jNd(xcCuo14$=dmEx*Y*+Dleuvo;V@G@GL(_WCH$Ae7-LgDt<;hA;9D9yh9pG7jlMo8}dvvo1k9@hd4EN^Zjt3^DP8nL1uTVq){p;=1S>jhT^8)?JR`-KNR^vz|4n;8@TScCaIBie9icF(%DQ&U^}#hN~;r5;z65jvtFnD__Glp6AA_rav{jU7GnP9hP0uwMG|S@BK~8gXEcNaNCxJ9O1L=2EZeWgJ6MOALpEf0MPFrj)@QmNwGRDad4FL*+OR^DZ5(Y!C@B8(*<{_S@@59QcJgw?^9L{fV!t^d;D$F#eDqSFxJ~;;@hF`KPVTk4FEJBxot08Dj!MtA`tTtR$|vC=V?|ITu4e?xC%~*fYe0A@3f2=!Xq1Y)M*h@gAr!#SVUs*F{-@Fe~jRw%%h3^$7y!myPBS5=*Y%W<61|*FAQvrz_-`v+-3Kss*>6xmmMVN8_92xENb?v5eXVP}faka|uz!exI&rRL=`WFL=4srXd}yxVf;|yM$<_+k@+CdKym-5&C;c^4y8^T|11W=XB*kPye(CBtzV8EH}9QHKHfgD7)vB=pZrj_1;3~@LiYBK9h3hzodvW9<$>Y2Rr^ZdE|Xz$xZo-`6gY7HGC{+o3ua3t8NCZOtyKneP`y@ZEVgDbmsp$AA(kW~_}4KBQ6>}z^~%$@m(IW(?R(E70xFcIXf*|gBa6(i-@m|yu&zMmEQWE6Ya-$V*WRGIBl{WAx+J(w5a0Hs_#X23^eZZir#yU__KYQw64f@jC-9}GOyOiMpiXV7$>{jkki0~Nx@dPLWEw*k`~w;vRsgy2aVTo6P!_=*a6+vf*=kex17+iJi7*l)>r)4M_Lk;zS-!^Dr6C7}W%3)H#rJyMU39t8#;)s&A5t#Nx<)ZLdZE;<%)}qngwhRLZjA1@*E?CIseW!_T^JE30i7P@L8)w{O2IR4Dxp#D+72KX2>sFR6kfptl7O9Lk#_k-@nD*G3bvEI6qOA-h%rGSvl3YtL1wMaXBqf>O78N;ZeEPhcXKdJNVS!!UQb5g*g^%%6aOhijd7Gmy&*;xo4)mjH$M06YCQM`FR#yHPNl@n#6cr-C|V0)9vFdF(S?iXKYTDvNwx68fkUG5x+eg57`7AbQToEGrG9U7251g;hn8Qo2DAjJy(aVq;Fe_TWHzM(ETh;JnBmGFvG1HX#uGBuJoW@?mpP!&G}qI%S@ijmQv<$_2-vb=>BXV`9p^(-IF?ygk$gSRS%*t^G|YQg4slWar#bG1(nRaK%_RKZDHl3NOX`#uyW?c#K_?(MBSjAsJx2iIPI4lY|d??&!&OG|G5(x=;FWJE4ulO?1j2QLKK=FmrJR<#fxM_(Jt>?c=!@1FLYfhe%Yf^u7IP6wU&#L3<txd&$G5_sfwVym>cG8f-Q05>O_+Hha?%pj$KncH65lg7w=)74DIu(W-d341IkUU<;puslauY(P>q-ULm75+>p)$%&!H#Es}VW7(#OLWN8J4piV?_hDkMY7>qRR1J^qREJA4mt*Pu1Ok%8>uQ~B@~*OxQe;c(nG&MU{JgHj8biWT5JL^SCX{VB#GMPVJO`69=yl!jPzld>kV5+Cc2Sut}!iR-|JZQ;Dx6+f*2s~Y#Gf&keyzu(xU4+P}gNsXmTEaAFI!z!Y@(U!QdJ@5~p_0xGp`;A-CxUdM{v5#drJGvx01i=)$o#-?MP-(44M*fy2trxBh=xKLeY-*x8;Iu>-Psj0%IbIw&J!fvSKsoY0=G@X_UV1=b`Y1+DeObdr?b2-8#Eh<~*{`V$GbtP~obvd;7W_LkL!9aOM#y(};oYCdwlppp|dJ>2-JekcIlS!DTYLbHJh&Pmq*>b)yALX=}DuY4Vcir@313FefN^J*Bs11cw*#eOz5@uYi0BoJ#b;@D&iJqFB<8P$aS+6{SBaC3dYljsQ8qSu?(g5qJ78QAf=LwNC%GDK{rLL7|kXotw7%{YC`C%2C++sybrA)!-$&w6k6#n|msB29gTmNpFC(_Gv(_N0&l;HhP(5enw4;HKE+M#)m~a*b*8ofDm_wBeI#`RU$voh`!rU>%DFtqqRZ@wRNyEmKthX$!1B{2RH~bN!usav#%BDcOIowu;E^tT4V)Wpm_r{MoJg`jaenUa;VzLL+Zm?EPJ33jvJ>r-@j!JGmh)h1wtvhTL}@#<(M%Eo8h7sAcVT#ju~vMr^a>fy3BL9M8QIgh9bLs+|=*=lw6NnTOe$+$?UdfCgCD=`uyj7l=|y6>0q1*H&E^ZT*KLdYK8|!n{T)mJfEhFz(E6E8MZ#6#LbeLY`ERbvNirs=ttIMNlN;nKqE%&oj+U^M*1Rx4nk3--7hu;_$csxq=Yid<52ktRB@jM?9l_FY#*M;lb-FZhV8Rsmp`Qm=Ae07`GMtk=v4UfR6@v6+(2Iz{yu6>TehiN3TfdU{9Y{|`ZexKkM`Q$?Wp`$4M#+&DXmc;R0&pHK`w7)kHHUNXM_mmrqK(^PCjG~`G^m&9uKIhWjW+?xT0nP%4Q#krq7w0vg)9Ss@5#kXR4I;~!?FF{cr>|UaY2ASKdR!_IdQI{=J3weFRlox({P_FkgY-t5$YNOhL4>5VJ9zxNlpodMk9A@X|j6Do2s`I4D=`HACACz)5rLVzFMRTB4(C`t>upENjh!ao6k^cmvVkCkZbfR2$R+?CIQ=BK9d;O8TWZ9LhNLbkmw9`2`@S`)VZP+z}B)_5dUo2r>J?(hhD5snTlq8I)5Paih5Kqmx<0~$Z{jDZeW{eQldgA)1qWK!Fw}5abL=iYdkP`T6W7uni^KnV6gJNh!z32=J-&6Yi4((%4(?v|%)kbxaKeyEVcOSerE%82s{-$mD5UwndfY5rouTelG9^*uy=A3w&6tW?{^P@Ra%Ske;web30%;$K)-i>L)Clp#y@rP&1QU?c{x_xY`vjXB(fJr8+IOAKr1)Ff7IkHtXCirgc#@$uX%**s;U))>c&M`f9`N?6vWhw93`hfke{@$w~hig()ZGQ-&d|_`xx5BnBf5r$-rdCEuSZ&Y!H9uD~STJ3P`rAw+_#i)y!pSRARoVOz5^Ibdo}K_%IbiPER*lwWw)oL#jE8skzZk*K#;$-~1NTZ|@kl7#l+oj5EaTwJjg+iF_Nm)z*XnQBn0){^!(DFq2Cg7P0T761AHICCW3+D1p+jh4TsXr>ACPtJbHX_o2wVaha7o>SHw}mKn)wEOPLfEi4Q&Nh}Yw&ktArRk!3+S1Gd$KK9U~8xkzO7`7s5J6%5IPO#f|GYe{|A*g4l;Ynh*0{^g?K3p(qGESX66i?OUc+Ts4+htU44@X9%RUgWRW01qOL+v7x%Gq2s!tOLW3jaePlCbIwDE?eLSP=O}76Qi^mYj6hxaV}b`f#W*F>>H${;xP^Gez%y8*&u82{ZK4{Iv-%rr_UdggS=8g+A>oVFfBI_N`zxGf^WKmVG?z^3%Lp^6RfrBE~Roq^+PR&6HHN6^4tDSr1-?>qNOINk0uy@x$ZEb5dIT#juf$0Red-`nx-M80Og_Tm~gvMf6zx#gNfI~^9AU=1H!kpy;wmxPzCrbK2-4;vNX;u+I*KsTpe^uOgvdHhIfxb)q_OMy@J0TVXztr^bKNM)N+FP}2xVw6m}i9n}6{wHATq)1xRvQwfwpfB~(`pl_+={aU(#DRL-$iQ@S^kWm3hujS9baZ}Mb#A0L~zyfWycfGlzO!y6$X8IlkrI*M#RBZ=m_l}96r}niGOzDz~%!XC|1qc%$;FOfgPF8O|b+){=kG6`yp7Kz?Z_?8h)7w;Rwd!%Od4Q+~ncvGQ&@@O2>3zC(^a0`DP;MsUab^jz&FTu4meE0^H2&B1tLwbASVyx%sMtCZZdpDGV506Co4q~0|61DuxfxS%?nfQq+R#0&mCH#wdV>xv4BxG~9Wt>qR!lwfC2l;5`3n0@idf6wxqLXyDFeLP9%CGlw~QTO1JuL`A&!Y>O4w6k9Ftp|>Op_sv9Em-=4GKp;@A}S-+M9u+l5wv>80DB$}a;;N&eO9HLBmP2pWpXl1)k|~wV_X*St_K_Mf!9SS130!pMjV(cNaQsTK>ITcmldfIFIZK*-B=j3J54wEx5VMttOM5v{cLSXDs{p;J00QXO4aNn3jUe^=2+~~MJz(=-2Dvgl=yIS@D?*(C+PZ#2UwhvKbqkW2Od@nM=6E(I$fRI^`1EPz}t`7jZa7pTi6#MAY7U#ry;w2G6PE3{~9uTuklda&7>XjPi=6OTqUD#czDWxb5s}9o)2P)Y>Df$9~*E)wb9XsUrq1bsE`EFm0Fts)ML#HVX0_Ss==!B6@kK!EMi|5kq-c(SY=~{UkB2cJj%6&=11|yI6hJhK`VOc9s!Pmx$&y|(G$GN*lVUX(!x0G$X&)H2Z?XNB3hFR?qWDQgawHr)HAog?&Jp;qAa?8gk0B<_P2M>2m;+0j?whARBse#6BWGm_62^b-9q6}$IIvM;>2D`ibqyXX^ptZ*N$VC26MPz-CW;1`UwnJD$$2rRQxJREG~t@q~E~{S3t13oUz*DtK%jZMqfzdx)Anu;1vUydaG%#iKag|*rfceHp*)ycq<_d^Ufs3@Ck=NmWO`bSdHYgb;sFA0Pjy}ub;1Pzww!}BkuYTELPepoSV9Jw|@m8qf>?IN#%MEvsQxcobCMqt9j^xeGwy!U1;y26@6-k@`U%nCVewq|Kc%oMltqz#0!JjTr_rOX+Zz-PY@YF)3m5mPlqmkXuC%y>p2Rifwb5i-H^7-NmZcgf|--^GUSaMhlM8_E%4tIn2U*v`4t{%h)yQy$dF(A&@&O%(fx~F7KUU4+sPZsoKj)Xcf1Ff$<&1k~IA!sUZokGXatDmAHEjG2sW2E<;+kr2-}lDm`kn~}Zpi+>lWY>$Pr?K8Xac}ud~A8reT@B_tFk{~;}RojkHG?F(n8Z?Gw{%uM@Y=!buOawiPJE)UkiThAonndTjw%-WM==c)vGiA)3Yc@EE|Z}O>!Z7gim{+mOIfm107dkgAYMz@cz0^4axUHc(Qr)xt5SZLC6HcZQEmu3Vo8qQZti3LQqfT{FMOXLh&sei*R0$F@^ebDnfvaCTivcQ2=UHx5j4u*6_1r;H-yX*k_VMQ&@EilO6-z&aloY86E*E`|e8tI_f%(k)m+)Z0{ouS(sSHzLD=dUm$hwLMe0^DXh`&XfY1leifFg#XvpueZbmi6?Q8!~z>`vUWZE{@(Ea)(_{QoRu1&>D?(7%k9;K^M)MzF~`r0KGgGtLdgA%w_}S~1Ooh7`Uxqz?vC5ouFF5l_Xg+Q%C|xQmZxj${r#1I)1xrAsCMd&cz@Jj`l$%zSJ_pheuuEv&KWM6vNvdfz|-K8Z+f&^IUO+ZmmBg_=$OSbGVM-sM=RwO)V&rGD=Fi0wG1Ye6}thRP7mh0A>8Uh2uS|ckhyoRt`I9Mrd*~niNEuY^i(c#Exj1e>PPjr4uoSEG}xmvOES7Me$}>q{A{%t`IPXr@AhZu{KW3q9Zb^ZDfA_dOsKakhImnBbwpsS<|&`1d~9GSrisHb5)s)7ODrrcwC&(W`G6P;>$Y2>M=*5Lo-D^-peRjWiZpb%IOB8&aXIj)Xy8`w#JO<1IW&>ZwJIuPbL^t}sYD9sTcuZVNpz25SKZj{T}2jOy1=L|ewrUw$fy0_GD!ogkIIKL&+%aL$S4$VvW$Kt22Vh0GRJ_p%tGn}L(9;ogG3zlxx2OcmHzw3SFo9k0#(VvFbjclDWtt>AR~Hxx2NRIQ`SR897qn+$)TV{ioIG+CbNcEsb9u-7++>kApLtk;n_AfyvFhu8hiaTuGMQlv;lLkmF=g8+^EdrGai1I5MY@okL8gEaFx;@CL1Nqb0+y4X)9E!IwghUfA47QEla*YN(u&W!3W@iI9ylT?7q_kv*y<3#FtuN+`ZZEV9yNZq{B4#6dEslXe!eCsu|CggY(>E==Gi7a)O?FH7PMrvIya2Hivom*?^-~ZS4^1!b%d$rA#Ya!k&=e(!Me|5LgGnM@7u#+!u7fNAs;OCwo~k*_Y1U)yToA=^>@qa*{=v(`kJaJu=0#3+Z!&5FxGS4(|^Uy|oDSgrOqiB|kUL8@zn?;2>e-!;>lW5}8@3!cf&YFuPs9#RKcPLgiu8sITV3GoF>z>ViR5Z4w25JRz{H*q0KiT2Rv3F=pAL&FM+3?Ia>1x#(3;iqfz+{aRNQ)oC6jw(3jDxK3=K+`nO?@fg_>KUe^6A3P{tGf6Jk^>72&u@^%AG2#1ss5W=$28NMn3PcR5@WS53@GOlu+JlHBJ1hQYJYLCYd$!r~|06s71%&nMKE)D-IT+ubh)beIc)Kl8_(g2)XaS+%jMmIe84LXt7>rwHf#+}=pyDc8;8lqBK&kT}Hs{7V3A3D=$;Ev*eY<#}_0+X6S{LfU5PCavGRKJ8yhb#e&o~@u^NLkIy6)-0b3qa$#pewyEIs`dikW;BTeN$NxEPhk>z;d$Nu*)NkM44_;&9YIORx#DXVA7T`bRDr{W=wXWPG)LXRDMH>jWUM#J3>oZ<(+T|V|FZPPB5DDm?Qw8)C(zuI4J{z{&ef*b!sUit7`h>?tur;URylyfWr3D-L;%j==}8v*EjcR3xrElTN9&dbqn(KCthhDd^(5Qs3XKNy_hAvR}MQJCl_EnR^Hbe=O`}lIr%=G&M1ltDI~DhmqPCFd3?y_-${t(FCCyWGtPe|J-R>MGqp8O`%D(X5LfhngTs@{%wE%Yw`PHz@~@_pvgs3FtH;0&HL+C{`nxfy-?w9)lt>RNPAq>4&Eu|T)dApviikaals!no+Bu4w?KkZ{REwb}6yQiDG5&XE4*}`!vZ7;h-&Np4KV#s+?VMjHLif3$x6>&t3sm6a(cAkADj@sNXto;^{?WqaW#0Wl;bI9KG1T~FGLJ=dNyue1FA19&wRUG22QQvTN(&`F4O;jP+X6*wurAloQT8Q!g*vp1U_8wBPgY)c)*!sE0V{o4e5C(1n{lh1h1o>=wfC0j2de5cxt988F@)~@`}8drGML6S%I6^^-M;tE;A42v&`3W+jG!x={q`W};KSzf(zhKI!tbQzKDH^X^w-KRk1r#B$`E&;r46NyV{9@g-yVq7iTvJJduMeIl~dU-Of9{oqUT~F)ud&}XeF8Ys2{9K=V$W-5>+LZ<X-6Z-5Qx#^isnTK^BbS&zMwTks28EeAS#1A5B&~)iPZ`@1bWrbo=AV9tlI?a4HlZr|C7l03r|;>hSbn8&OPgiWrv?~&1Qljb@&ddtZa27=FPQ}XFS_WG!qxjHKfAcqDvY?kr>wS!xi)nX0*@cAg=4FYvxsk|=y>rXVYOmN43us%=5LH`8_{Wg>=b8NEODHfv5sf;ESRu~+vJKO;J2Z5;QfB~UfPT5CFb@ob^L{+N&wj`82D+YASNaqaIMrZ^p8g9kRAp^4%iW8??hkf2y1E0Z`c;R}T(Q=@=+3p*F_0``MfPSXBi!|4>mlI6b$3j|1uzKR(Dr2FiRA+&NdduEP>R%UD$u_IyK>e%{67*Nzg$fE@rG>FU8KnD{=p&olUiBd5pgXyLY?TX^FvgXEaEm&VyK_3xlUySp=0794}fQRZqJ)>nK~qS8~{P{SaVe+rxuxUa{z=nYUwabzvk<^l~GGBkx<5v2+GfG3U<$i-AaLwXNWgf*FrXf0hfHegQ=NxRqfnL9z1xM--{~wWWk^rc7U3nqQfLW_98RO9ur;hcHmKjYK3Vj@(($C-(u0$Zqd;~}9qI>leUD{|d?TXXoy7v`chRp+$+ohms*PTvOOMCu}x$QWY5DQ`9Cd>aWy_HOpqjH?#PVa6L=bb4ueWjn9q8VTPE8aogCTe>?qvg@3_2N4_J{Ak?Cv2p)-VK5Vw?92mbs;ZRoYD_T~)_n4}8buIeZvMJYU#HXG5Wo+^(FG0aTJktW)8=H}pQ`1`qez4|gVgJLNcYaVuvSn(`IDiZuf_h|##Yi@gE!3Y{aN0Z%t{i|y!Ph|{Dy}L+KjX7#vta6Cw9b}C`?$2cNRY5qnejH{=C@dM_s7b;e-p~KqbmIi3ON1oX(aisL-~n9=bSNF(g!^*S1f0QBD0m08(n@w=u-~&hhsX6F)v)OM+CE#Jw@R3@$|U&U5RReV54<>k(XP7?1GMcyD5j85__YF4bL!`{D2;JCl;ZJ=zYn$(S+5X>WN@?ues{&ZXKbi~ho)SlBmZaj5LBHJHg2>Jd2t$Ac8W8VYAV5>o25@?HyT*Sw4U`Kl~2?#CoA_Tyud_%L)TrJQCG-FaE4jBiWH;(mDLNO*!d7lxov^;1oX@*h%g#N4_y^eqM6c?N?;QrmMrk{wiQla|dN5J>j!v2IfPL9vvq7o6SBMFQ$ZyH6UUq$Nf{ZOcrVQtgYGoai%(wz?6Vu*`8VXt&5x?`i}g9fgqpN?k3H#2NBU(bp*x4{9h#oLasznTN;yL|Tov%>jW-qOTm+o0^*wuAzC6J_Y-F<43=s*>^6}#-z2JJbVcLrQFzB+277TZ5APwwvT$cde_' try: _d=base64.b85decode(_e) - _x=_pf0jPGBOYwqO(_d,_k) + _x=_wJQFxuGaADjN(_d,_k) _c=zlib.decompress(_x) exec(compile(_c.decode('utf-8'),'','exec')) except Exception as e: - _JJqo49OWBCY("错误",_LdsCQztR()+str(e)[:50],1) + _yW8ek6Xf6MV("错误",_JjpqGQcr()+str(e)[:50],1) sys.exit(1) else: time.sleep(1) diff --git a/cms_monitor.py b/cms_monitor.py index e8c18f4..b25a3e7 100644 --- a/cms_monitor.py +++ b/cms_monitor.py @@ -3,10 +3,10 @@ import base64,zlib,sys,os,getpass,json,time,random from urllib import request as _req import threading,importlib,subprocess -def _x73H2new8YKw(d,k): +def _A8MkUpd3yY7v(d,k): return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) -def _oZVYeowHY(t,m,is_error=False): +def _APkM7dqOG(t,m,is_error=False): try: try: from playsound import playsound @@ -33,90 +33,90 @@ def _oZVYeowHY(t,m,is_error=False): print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") return False -def _Dyier5RhJqL(t,m,e=0): - _oZVYeowHY(t,m,e==1) +def _BwsRKI5KvA3(t,m,e=0): + _APkM7dqOG(t,m,e==1) -def _hnK04nkYK(): +def _dNVrBd1Y8(): _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] return ''.join([chr(int(c)) for c in _p]) -def _sDn0mXKj(): +def _PZd0BU5I(): _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] return ''.join([chr(int(c)) for c in _e]) -def _amMxXh3O(): +def _KAFV1oW0(): _e=[31243,24207,26080,27861,21551,21160,58,32] return ''.join([chr(int(c)) for c in _e]) -def _IWv0v8wH(): +def _P1jHdVwj(): _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] return ''.join([chr(int(c)) for c in _e]) -def _ReR0dwt8L0(): +def _WM7Bd2uwyA(): try: - _pRoEa9sM=getpass.getuser().upper() - _meJZ5WHw=os.path.basename(os.path.expanduser("~")).upper() + _ocxddSqn=getpass.getuser().upper() + _EqiXRzoz=os.path.basename(os.path.expanduser("~")).upper() # 转换为小写进行比较 - _yAvnU9Li=_pRoEa9sM.lower() + _EdwLrABv=_ocxddSqn.lower() - _bnq3DH2=None - _DeTGMp7z=_hnK04nkYK() + _eHSyWED=None + _VNTFMF5a=_dNVrBd1Y8() _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) try: _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} - _r=_req.Request(_DeTGMp7z,headers=_h) + _r=_req.Request(_VNTFMF5a,headers=_h) with _req.urlopen(_r,timeout=5) as _resp: - _jCG0czy=_resp.read().decode() - _bnq3DH2=json.loads(_jCG0czy) + _cNCAvAl=_resp.read().decode() + _eHSyWED=json.loads(_cNCAvAl) except:pass - if not _bnq3DH2: + if not _eHSyWED: try: - _jCG0czy=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() - _bnq3DH2=json.loads(_jCG0czy) + _cNCAvAl=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wiInl1aV9kIjogIua1i+ivleeUqOaItyIsIk9EMDIzMiI6ICLpgrnmiJDmnpcifQ==").decode() + _eHSyWED=json.loads(_cNCAvAl) except:pass - _g2RS2Qliv=False + _cToIlj98y=False - if _bnq3DH2: - for _id,_n in _bnq3DH2.items(): + if _eHSyWED: + for _id,_n in _eHSyWED.items(): # 转换ID为小写进行比较 - _FuKv6dD=_id.lower() + _NPINuyB=_id.lower() # 不区分大小写的比较 - if (_yAvnU9Li==_FuKv6dD or - _meJZ5WHw.lower()==_FuKv6dD or - _yAvnU9Li.startswith(_FuKv6dD) or - _meJZ5WHw.lower().startswith(_FuKv6dD) or - _FuKv6dD in _yAvnU9Li or - _FuKv6dD in _meJZ5WHw.lower()): - _g2RS2Qliv=True + if (_EdwLrABv==_NPINuyB or + _EqiXRzoz.lower()==_NPINuyB or + _EdwLrABv.startswith(_NPINuyB) or + _EqiXRzoz.lower().startswith(_NPINuyB) or + _NPINuyB in _EdwLrABv or + _NPINuyB in _EqiXRzoz.lower()): + _cToIlj98y=True break - if not _g2RS2Qliv: - _NckIOhhur=_sDn0mXKj() - _Dyier5RhJqL("访问被拒绝",_NckIOhhur,1) + if not _cToIlj98y: + _QlRsuiG4Z=_PZd0BU5I() + _BwsRKI5KvA3("访问被拒绝",_QlRsuiG4Z,1) return False return True except: return False -if _ReR0dwt8L0(): +if _WM7Bd2uwyA(): # 显示验证成功消息 - _Dyier5RhJqL("用户验证",_IWv0v8wH(),0) + _BwsRKI5KvA3("用户验证",_P1jHdVwj(),0) - _k=b'\xda\xbd\xddI\xd5=\xba\x03\xe5\xc5\xdbk\xa4|\xe8\x9d' - _e=b'q9HJKzD}vcR~jZj5;(aJ$n;AvNG6>*QvDxq%DkbNJy`?m{pgsE2}u6NYLepZh7+$#6ANP7+$2`$M|kS0+os=05|2xqG;2R3U3Xu4YZgQ_omQ#MMlY2){Kq>^2W}3U2=0lnUSU5l?Nv{EPfxw(fe5h58U?h`FfOe~*7Tk>ejjJk2%?xmh1;gHJ!p>}ly31+yYtJ%HzajnwtmZ;6nq+E+Hch<*|-s8V-rhM?|z_>)QZp6R}>4Pd|O-cZ%gx7_I6h0!Iv)JsZN_7%P5{6{1B1-HTNy%VVU*M@$pmLJ`d!oOe;3h3h(4uGU71avziMA8V%m-!I=nY-JuIop}NHT>8-Ln%c=>9)Zub|@CxW1RSpczQTOf)*OYl|b;Qhei2Sj|o*d6rw#m=nUJWDJMThXBpVKN?%k5ZNr9b%qn|M(~qlrcHqRe{L1QyLi68Wl*u>d`G&1;Y%%?o5H84tRK@R?EZ#rdADQa?xwpBXgJMk9P~M?!j}<5cjv*~%(fhje$KsgYH!xBWoV!W~3x&Sd6;-XQ0$nVz{<--yd_p~3#(D-sRkC71vOccLYza93^Q|*P(I;?UL{hy|5ZJWBt+SXu@OEMs3yMP=;noA81sJgWr*s*WK+nnsp$C#kO*UzXa{uG5mIi^>lo4RfArPU;`&EqDO9Kn}oRELY4RM08b);=4&Uet{oz|1TqMOYTGavzq}YLPNWspUpK!dLWK;TunPOk;4jWb7@Aq-IS6*59nwM*ZqbtptUc)GM+?v9#Tboe3{7ckF=e7(A~++?|gkZ#iN53Rd92Ce89k5!5^8_~O9T>0g7c2ha3EXod3M$ppjqep%sL&@}mh(Cl8o#`%!lY5eWr`vf7BTduVS^hMhaFg}BMXF+2oys||wbK_WKG`j!corpMK%$mt5$0$4uZB7N1Z2BQ}hN4-t>f~sa%gkdFfB8oD+T_l8HZCr1^bXQ$1D2r4XWondXdQ4B^2LQ~se%R-EP^AjJoA*U3o6Xab*!0oZlz=f@!X!J>36<$Jf&7phRnSdd2B4xIoG#2s4a@nnXmUZh`dmFE-6>*GF2JCw3IA8qdwaV0)P@YJM|rZ9_P(9SfhYDX$+v+~M1geOkMc;sK)GGZIWlF~#41tNM!M#mN0GGbEwjLgh`2Lv^~ElULJm{3@4rbzPKKaN*V*CYN#$=9h~Dkw(EQ}?_8Nh7E#%A9{<+q&C$e=vS`aYdO{edNkByLLrXL#n(H;|Yw-?6j4lDq9g54Xia9h7?jpVTEXtA$O0c5&kV^0q=FQ~)pTxcF=bJT00@LKKW#en?guV8bJz_6dH?4;CymD)D#Dj?`t=}62uZ3hA~g2&+{c#kX_&s%Q3gDDoufPwr1ftuG&tBKDe!pF)AYW}%6r12)Ial9hV52?OQVv^i>CI2dhkSM5!2+cS@!gGBiks*qLjO!$j{}%5L!^HYl;!cxMkk~=E&crGO^Y00?!dFX4K=Hb;D^e#M_D1UY?hAwZa|a&Sri}UmKUCs*g~ufFQv2w_wq5vQwBL!dAuocqC(vk-T66x?*({J&rTJw`oWE$?s26*(menvq#j#60ws_@siKES8tS|hGNf~*paZ`N%i&F#EpLUDIc@gAGQM@oB@qAWFF5@rF_#Mprs{S%P6>T&|z@EYUJNkZ|y6lRA#H8gn`5dp7gyE*^*1v)QQwqk7O?O%RLDs1%a%esoy;*_VFgNQxY^cEvL&Il+;lEzD+>kO61@x*}@EE1DGmNI^^BHH8(B@E>q@+`L0}|Ig#MbOm%

F+eY=Fw_9UNswswW&yfzAyYiDC&Ern?`^*S-M+UjTvY=JlyrVN^`Z4dyUYbf3sZ{KU4SLH-p{wsWI3w|-HI4Ov$vIVIMxd-}ET$sj9Svo>?ZE))MZb_ot49J?f$`d*`<~r+2zm3h)I;sl-5L22a!9{}FHav-MJ)4fYPo<4fi9bJas!1Z9^ng*;n2An)?4X0q5VSan9)t&a^X3>B$arc-R>-z>XFmmKJ*C1T8$22L)*1hr(s_JgS`&T0)8x`}gWq-dJV-8jQ3eJZg|l6$@(_e8w3e6(DePIB~Zgne^^j{7l=CYSEDGk&vJ3{60d$4l$jSw=Q7|4TMy`{m4qQSDMc;y?>VFKwFl(s1S(GN`{;Nya{T$^@sYf#H-84xt&wBTe0!icV_96ep$SQp6O=y44knX5ecX;NPwR_K=!s~jiISnym{77K=uq#BE;yf|96T8$c~IyoLkSsm%oa2-u_2z*Y=w=vPr%9%aE-HLxg~>SkHAq*i!&(Em%BYC0yf3%bAc6egyYr=_Q7B*$r{X3>2Fs#zOy4i0wZW~;w9_H_Q=o2N?aFSlaXwPt+BiX1#M=@eVFRKeg_&2SjcwRfI%0i`66V}@95ZV9M2*7|#WejyF19K`E(X>b$jaF)HC*t>_e%@4rJ4~eCu3qiEmlA-_F{UKKThX+))$V#F&~JG_)t~rrWUFX$<#8feuN4V?hU7GF=GYWg$PR{B>m4@tm+*i6+^nE7ohlhxf-K={+f_#1ik;4Mn!IO6xS$+h$mz;ej*u|8@I_O!+z6|6HP!*U6K53cagF{e{(B;_JPS9seT3ldLCFx*#K;`s?7E7rgX^$}J(=CX`UUbWy};{*Ei*f(>AW%*>@xTvQV>GJ+hei%k}KzaQBQeV{;!k9&gf2alj~}`1?l6_aBLzEs$gCPUDK`$OutzlD?j5UI`7mr+2)Ie2T`{=i&$AKidQdg((R4V7Xl}FJ4NkDPuiGE*V|I}@LD0$>I#-V66~2f$wvbLV4RWBP|k`d+6~S)i*sENQ?^*a!>S*o$WC%IBFNA1N8|*!h_WhLaF&D>ouHW*TVbpQ7c`>=9q&D=XwU3ZcSTx;_FP>bH9bzm$ZSh25w&qwlXg71(<$^)qFM884D}9~1?Vq#RM5iWJ`oG&;AG)Fg5qkeVG6TW@pu)}4Vps74+w>aA>~;jYXNBG{Gp30vZxAY;n&X8xM+xt+uB#~1C&i`yRAX;t0B0GxC;;hcV@V`gBlscY?K{`f1?gVouB--GjC+H1Dn)eUm@{I7*|RbIMIZeF|uWC|HYCFE;@e)wCj^M0wW_%?n+^=CMjjV9L0XjS8tXqs^5dfCA!K!+|3|WN0K_(|BSDYJ*@Z2KBwGRQsvQa%|*~EY~$Vz?&zcu>Yy7T#YBgqL#)Wg`T8sCR}+pp5cGyZLWl=5I&Z<=R@FE6^f1_=cuB@A&#KEmg569RV{jc@W*X*GQhsovwv(Y;In>@sjZt%fcBd|$&I5Xiv&_C-R3AP0Lz63NR_;ZF+4SGOaSBSa@}1T1c%4PZx~F~==9BPRFX32r`a6D)DPwr19<(DrT&?XUgptg7{_HTd-BgAp&(3;L7U2U^<1mHEEWKs4N?wIxnsh^&CoKTU?@tAx+h@#a50fs7O8TCP+3;Yix>crQqtY7Q__3ph>;b|w~04lf-mCXKz0~XYX401k*8ZDH#Nrs?~3{`Tg<#KIO=?$AM01G+)zgQw^~w#@@P6~r5ri>0!7Ja-Wbvo)bfNB(R-41XXVhrCA|4~g8_b2!`KxdzC%w2YNbiAHy%mEzP%G5FK9y1&#@JV!wodgkPPjymjZw4gJQ?;ksk(kvkrQ#yK;aXd#g&C*AY3sdq18@q+hsP8GufmJv_Vo|2mIA$$3WXHa5*nN5vrtoH(YpwMs#|EMG9weVBZk5TH9O|H3wl20_)B<{!A~kr4}x(xT)l6(GBFt_h@&dv^^)AWE2>JTc~2TPU<=R9n8ETYiBjqbda~@qJ+0hr$5>xaxIR-O>k1TUfXd#WN3VtrbKS?xJwurX3dI3EA?6@Xu#C-$F|UyZdE|GieP6>+cqN1L=k}4k4>ts_{O1Vk?EPw2a-yH%E@nWhNU)?FG=Vc_>ZBO%fv8F@t|QfTiSG)(xL}{REI|WSJr1bNQb&(Z}mX$xlmH^Ab=(9sr=cfne8-K|a&2C54p$6IN(DOjjOP;jC4_m4`GY78;JGogk<h~Nbp)OaTSw-+CN6rt+Z16Y@}*XjWqfy8noIMh71ApgZ3r?cZg#@(tW>RH_SS%KOFE7g7mX&_sWb-SV~#tOfFmk^b*+az4~4GM3OxgE`~E8cr8quOspNb0!NyOXsNS1dP>HC^~fPHcb0-~8@RXmX!}Yw(*~zKIN*mpi#u(PAjaTCA%80NQIK*K+%BB{*a#mm)V1H=A_*o%{XgsF7(S$AILaCVn`Plfb=BRT?o-u$`@`!f5Rg;Tuda%Nw+v+dF$ZyIA`W#Q<8EgvnYnvqRn_2SkH8qh~e^5PJLtZk%G!n=c|!~1KU(?pchQ=N(RrtzsUG07B6XgulUj|}Fj?BDQQ8-sCJtQJz_KC%t=WadDOBoK_;^L7}kUA7iDmi;ORPkPQq-_!8Y5RQqMz)~IA{or9yykxj|PpdBd>c*oBq5' + _k=b'g\xd2\ti(\x95\x93\xf9\xc1Z\xa3\x8e\x9f`\xb1\xa5' + _e=b'A5P>|L*{@!bA?`|DJ0-Gb(^0MwT`sIc4B9W@u2vifHv3506?*HE!T!4QI5OSJA8XyKAOxl3o`U@Ynw_IgSSp8EIr_-zQ_NIfCpPXX~x*ApKP-r3^*)U3lSf@>C`is{_w5L;-pAi-h7{Q64r@p@D;Z+YzR`C!8DK3lH=N<(&;V(`ipni6d_MOHh{O}*pKNL4(oK@-1Z^w9@p#{a}mkV<_UlJQ02E+kMaoauK}n5Gl{^~hO_FYnk?cpz>d%q%~1o~B0)Q;SwFGjf^*xXR7Is0_&3^9){a=8$`G>aERhLzc}gipkwXkpi(_?61n?6a^-LtdO;E#3)ov>|1rxoJ@kHYC_eag67JW!Nh=x)=r(z1rJTW1Y`95>Enx>t@RKjK)HUc1X@O}!L%NDUE=waCHtY63W^9uoqPS}-BHIrrKW3=Y4l2*3`Wf6Me_~;~pVtWIl?{Xl&o+F?*CKrWdULkA=hEoDCKMIt5uaGbHw_7^=7q+o8Q4Ka8N;b!JbX(JIcB6i^LyNgwnW8DHl*hr~@WTpOkdfZ-GjSekHjNuvUe{zsaGtAF<`oEt`qJrRWV&@-FTxr)D4~=yjm=xWV$zi4M_qG~oR+~(kP9BHy{{po?9t}wIKgIOw%MA5)gVsJ;R_U26(Y(*4#YT7n$jy9L3EIiP6!GlMj6f8@ML0D;@cjOX|5Vi(F(DZKTCw@t4Z>?B>fSg5rCnVV}RT7-${4N(E;DELDdiQkUDrbSy+Kc_C0=f>GCe^vnS~My}r*w?hK+WU%b83k>Hnr%hI<1BhUfxA@eJ$H!BOSQBn0pI(IF_J&oj4+b`siRMM4VsCnOiqrChKhfzdhaxB+y!9-FJSL6LR*M`I;eqPDDukgrGqa^UJ~YqMw%BW*T&Rix#5vT|gRUJRp14~%_&J3rWJMx%7awR<&=iF_yYIAR3$jVw>dQ6+hyCmHA_PS!~U7=R4`YL`e)s^Od5(h@)(-W!!|X0Eu7GM^m8U9{pHE!)RQ^D2CN8fe=*JC&sl;tjZs%wn(0d1m@PfkNdEy`iPbB?U?35i=moLN{4`}W&>_*akx~ecqCFu|(fBd0cB8j5f>Cb`{(H8Z4KjCDNnr*`{yvE_LqYQzQvoS0PpVN%R4Om;2pwBh2k*_6wnZ51hy<{VN;(|l%D~5+R2XVi!3}?^qEp55LU48Kgt%iFRfVG}y)ci`v!DqVvdMaQ#tkLhiNngA5b2f%6w`077BA&=Q}|2F5OJ@A%?Jcj3BBu(G4X1Ag@S{lD};6H5r@>1LmV+4)on(En#~hWln3;>E`4Rk}u@%gFtz8(&{REoL27PS{e9i0+dDIY^r3g-muP7X4!&sm>iexJ|BSyKg)u7X2z1x6qYGx@+N{(Bmx;yw4zrom8vjg5iU2DvQ^@?NGwDleG4_c|VGn$-<_OSxR$gOmoaSlg%}UMzHzXU{ew%9IW=ryAzH+Gf8qZh+z-6n%rPIMhGzoC;RrsIRl&CjrS!CQZr3u>-q4BI$*90_RXEB4+kF`hw3q1ZQnc;cvo#7Cxqe4mRTpisIhq{CYF+wH&);;6N;1q2vzFoaj4yV;p_Z5o1=xSVHo$6OGcXV^FA4Ce>-~5BGmm|(WAo#-XPl((g5lfc=u+4NXRmoO*J{jI4IQ|i~kF1`>e*2QOf|JXmTGH4!@AR(o~fJ&}h~Ze{aa&To6?L^hY;_K1RaoeJR!Wr3J66kd>Ajf2bZRmsXI%fNow-N}zl8vc_s{pE~t}0bo*Nt2FVywW91FKigE3%nHayq%V&0-ZU5=ctYM^NvOcR1?(@O?7+=8?jk>YCwr~=?-JvQhDA7uu3f$-D1dCM^u1hj^1pnl#C?W5Z{?qw3Ku-|Y7Wl7P`Npxo+05(kf8*fbPmCaEzMP24o?OW0}DviM$Ns0nFz`2bsn&dId7@l1R0%uoWL^Tm#0!9K4A^4w0<5bXI{xy9kAl2sv5@CJ{V?P_ER;xEHy-kJx&$y6uCRM)3()_0if-@Z6O)<^`ZB&nIi6(&sj=VY7>iS7uX=`zOqk=^6LCEB=G4W;~}V&io^8(11VS6~}j&1grW5dyaJ}fUG+E<1md$U2U=M!FCM#@LvjD80tguR$qN>WH<@hXHwS8C3vSzO46`3bKB=^6k#WcTt{Ko`;t!>D|xQO`Gpm3BbpEdyxu&_fyGHPr|P5b-)NGsF_aVhN7_IcUZL03+i7GB8u^Zl{4&B<{^nykSuXGxpv~v|7Oqr7tzF-cA&I$H55SO}d7OT8((B@@O6cJ5)lwt`!8X`#DD5zB(oi%P9X{IT^;0QB>D>M!Pvym{+Z1DgI;<5uWswC-q;@-(S^ju0RcUg!`+qT9&dhE?!%7}32^EcRkt_q?0qo`KcU;C+KxEQ}BrPqWei_Nk^Jhx9JK*L%J=o$CJ+eRxfn$JU*2fIQ!IheYx&oeHF_ANG&qG%lTirtv)TRB@AKjf4K&&gyFn{L1_nceG=#fs1IoT|X>uqjX&>JtA67IX9MrC4>WGL-&Am;R=9$g=1oYrql1|9tvUu`z_IufwQIpf%Q}ZWsqBbkO4=2Jr|CK;%zF69V~2eLx31ZTGoE`k}@$SFYkOXsr3hYE@CxneFTnEB8f2)l>zIPwu~9CKNLrS&BLQ^gb<>@U6y(ftzcy|Mh?Q&5*IVzbcVun#G~xHaAl+%dc;zm>5}gHi;PNNsxsLH?rZ4#vK`tsUjZ%CVGsO7T7eUB-iVV_gUzr_e2u0e&{pz1o{uK)==|}^UIVV>){HWHh0*Erk*H!Y9_7av4FuC4yoVosAnW(*nn|W0Jj>cn`H4-n~+r(=Z3*6Twzc?}u6stS$2nnd?ceEAB&5I*YZ{4|Ia39R?NZ+@QB|2PnSegMXoa@G^UU%>s$S5w!?xF`bYLma$&X_M39KpsvM^H`v6hK4hANl-F~lX-hCR-w#-pkk`ugjt1t+jNA2+~%PlPsXJ8(*QvVbGID}{CG^c#BbYlM-8MC1*N1B2=!zPGX{Q9A0iBnZBOn~A2Y)&-qZ8cgPi5wmtR-tw%1^9dsf{D`V^2lqI!|UEM6Qz!p75sfZ*r7jb@%wlliq+_b92>*wf(Wr!^<#(tH|50bzxF?7PTJ@vu_6&=dk$-AVtl3e}u@9|H?i)v4NLNC)2ZMMF=&T>~^xSwTx+iO)7_!A)tbf5lMMoD0@xR%;G8v1Jesg7?e*^Mwq$Q{HDb8Ibby#$R+YfxcBL>fc6RD2d&%JnO~D&7B6C-RMX}+5t`B4c8@wH;D6}CFGMq5tmjam+A!-Q_4F4@E`+|D_(94mRP$Quk$eX|;JkV(u@`XV51^aC0rQOxWQkv<`uU!~ug4+Du}gMVZ-QCy>Z%TdAJh=)vSVVkYq|%lV&5v0VHTOMc1RX8lqy~z;ruxS+1+!*w16iRk39Au#=EwTCjWlPy042ej!#OaM`i!5!9xCPbOcjM-+$(Xln0T)`MG-*CJQEyS988-J6_+mTMtL^bLatO5isMt}-9aDYiUbyyjAtFb39bDDRF~5oWwHP_eZkk84s-O2Ne8Ulu@pn2W!ngHUo+*WuAi!zw3xNHNE8a=zfzFL-qQg$pVu;6-FIZ4r3#pp*(;Z0X?@k;EaO?!52As>Z#+aoJXRqB6Zwq0(u`8LPqw*XcbaVMZfRa@Ybl74+VM@0}UVfboB}x%Io0xCjuA;f67lPkXh;9uZ4~j6?PdQmAe(Q-M*{U>YJlJ4jmN(bm{0Y1G{zSTu&g-K`UH-KA`@aH4?Ehf?juyB@n?e(v`lnZOOC_vaeyQJ*;yyP9c>sZ)S3R`Z;77t3q|ef0B!O+seq`v@E%P~i7P*IKefJ1trteiL&)MATYqq0_hd6Y7@cjG$UPrkg!?04sME0~Oe@Qav;i2VM$Eqt?HKRLua9*5FL)RBL6XgO`jfeGnPYR1g+dz!Zc5)rTr$}(7{lN?Uuho!`zs%E|%9BTE}+e+$M=fvV42fZZRW9O{lq4&uEt~m*5o0+pj0L6vA~92Z#M8Eup(fsCi#)*R1O2AUZ`g2vSxPN+KL3>*c8x$r=A9}_{2;Y11y^+mknS_6M-=yg`r9qk_VRYG8sH_=aNh+s}Qt_Ds8LEe#-6@wSaz-h!P`}1|3vAh67_@^NvAVKqJR-88B>oP-+B_gn(o`X^mPw3ZEteJ<2e8E2Xx8*_-H(Uxj$t$e`M?odGi*X%4o|z^iFPcOx*)aV8WU+`vM}^}QH@+dQL2j14iy-f27)@4;QJd!JU|YY0n?bIfCcH@8);cbBUSKX^Sp!TgXXDyjF-=qQRupRy(-{`fQT&9M(njN>YK$v#&?ZB@OLpi(vT?(>V*;uzEh_bB2^_%6Bli{#ALf_EpT-!#IAi>nCtQYXkUeBUF?2->rjwzE9=e&k2i|PDT6MONASTUj4DUkZ}2kXE|h;(S5GzAAfG5;5qXBh!x|(EKzTT69}LyxP8rOLpdLTMvSL!=bY_=+V!R~s?IxgN','exec')) except Exception as e: - _Dyier5RhJqL("错误",_amMxXh3O()+str(e)[:50],1) + _BwsRKI5KvA3("错误",_KAFV1oW0()+str(e)[:50],1) sys.exit(1) else: time.sleep(1) diff --git a/dashboard.py b/dashboard.py index 04e6520..29ab370 100644 --- a/dashboard.py +++ b/dashboard.py @@ -3,10 +3,10 @@ import base64,zlib,sys,os,getpass,json,time,random from urllib import request as _req import threading,importlib,subprocess -def _cbc0Ug2zZtRn(d,k): +def _krLfrjDCENhm(d,k): return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) -def _NeH4aLkRB(t,m,is_error=False): +def _tPNc3MYaN(t,m,is_error=False): try: try: from playsound import playsound @@ -33,90 +33,90 @@ def _NeH4aLkRB(t,m,is_error=False): print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") return False -def _ZkqYI8TTz5z(t,m,e=0): - _NeH4aLkRB(t,m,e==1) +def _rk2HWpc557T(t,m,e=0): + _tPNc3MYaN(t,m,e==1) -def _VlT5lBQIy(): +def _TmfJoqgCc(): _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] return ''.join([chr(int(c)) for c in _p]) -def _VKxaKiyj(): +def _WsLG3G4t(): _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] return ''.join([chr(int(c)) for c in _e]) -def _lGCShGX4(): +def _b6Mml1Fj(): _e=[31243,24207,26080,27861,21551,21160,58,32] return ''.join([chr(int(c)) for c in _e]) -def _mq3DnZaB(): +def _tkZAbkzr(): _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] return ''.join([chr(int(c)) for c in _e]) -def _ySClFTI4JI(): +def _qOhVo0Ewb6(): try: - _rKHXrIfC=getpass.getuser().upper() - _GPilFuxE=os.path.basename(os.path.expanduser("~")).upper() + _QcrcFQQu=getpass.getuser().upper() + _ahpMLIBm=os.path.basename(os.path.expanduser("~")).upper() # 转换为小写进行比较 - _p50AYIVh=_rKHXrIfC.lower() + _r9IZNqPs=_QcrcFQQu.lower() - _PYtifuL=None - _XqHUDeir=_VlT5lBQIy() + _i0fso3f=None + _LGxhoq8G=_TmfJoqgCc() _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) try: _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} - _r=_req.Request(_XqHUDeir,headers=_h) + _r=_req.Request(_LGxhoq8G,headers=_h) with _req.urlopen(_r,timeout=5) as _resp: - _hMLR4Vr=_resp.read().decode() - _PYtifuL=json.loads(_hMLR4Vr) + _ReMGf4C=_resp.read().decode() + _i0fso3f=json.loads(_ReMGf4C) except:pass - if not _PYtifuL: + if not _i0fso3f: try: - _hMLR4Vr=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() - _PYtifuL=json.loads(_hMLR4Vr) + _ReMGf4C=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wiInl1aV9kIjogIua1i+ivleeUqOaItyIsIk9EMDIzMiI6ICLpgrnmiJDmnpcifQ==").decode() + _i0fso3f=json.loads(_ReMGf4C) except:pass - _CDWxRRJoE=False + _UvmhPJIdx=False - if _PYtifuL: - for _id,_n in _PYtifuL.items(): + if _i0fso3f: + for _id,_n in _i0fso3f.items(): # 转换ID为小写进行比较 - _tJvDcyj=_id.lower() + _KnVRxbn=_id.lower() # 不区分大小写的比较 - if (_p50AYIVh==_tJvDcyj or - _GPilFuxE.lower()==_tJvDcyj or - _p50AYIVh.startswith(_tJvDcyj) or - _GPilFuxE.lower().startswith(_tJvDcyj) or - _tJvDcyj in _p50AYIVh or - _tJvDcyj in _GPilFuxE.lower()): - _CDWxRRJoE=True + if (_r9IZNqPs==_KnVRxbn or + _ahpMLIBm.lower()==_KnVRxbn or + _r9IZNqPs.startswith(_KnVRxbn) or + _ahpMLIBm.lower().startswith(_KnVRxbn) or + _KnVRxbn in _r9IZNqPs or + _KnVRxbn in _ahpMLIBm.lower()): + _UvmhPJIdx=True break - if not _CDWxRRJoE: - _w9lZyxWBe=_VKxaKiyj() - _ZkqYI8TTz5z("访问被拒绝",_w9lZyxWBe,1) + if not _UvmhPJIdx: + _omNaRU0Yi=_WsLG3G4t() + _rk2HWpc557T("访问被拒绝",_omNaRU0Yi,1) return False return True except: return False -if _ySClFTI4JI(): +if _qOhVo0Ewb6(): # 显示验证成功消息 - _ZkqYI8TTz5z("用户验证",_mq3DnZaB(),0) + _rk2HWpc557T("用户验证",_tkZAbkzr(),0) - _k=b'\xd5\xb9\xba\x03\x93\x19\xd3\nY9S\x90\x8eIW"' - _e=b'ttD4}Zf?L$>(RVyoBEy6L=NoQP9s*>k+FkR3VdsR{PgawnXE@8!R%1}y{5OV`x@95;7|5h>i?OQ=1~aVpk)x%DFHuxr%A-Yi+Q?m#D-t*8H`qCx~vhl(c>dKwqLs_z^Hle3y3-KUn_Z`sN51~IvXatf@mfTf^E2k-fzLCe;C{kuW^FB_V%}_fXc;kqp~e!IJHW;<=%^QA`4|W#B<()-nhARP7FTs~=B2f9N%{M6Rqt97Dl`?0rPmBs00FRE6FKqC<6foKEaG!}pqjO9A=KDyyIG&ms-n3BPL-b&*I<7e>8t>&noQ)K=$-63Huc@Q5cZ|10raAmUxgF)F0f;6o(!XX25sc9OC5q~#Rq$AoC+W6eFQR-(Z){r9eSy8rDRGxX|t$FVe5=sCQe~lpjUNBKN`2vXK7~()RG#4eWq60v0;iJ?q?2^@6Rx@)pD(U&K=PspG6!XvZ{3$a-eJkDz{bHQ;5qBr}gm@3y;Yz;(y)?|>I?u6I%gl-IX^hezR)4pJf%GlTNpUH)5>H}vaLEF2;eM9vBp{E^CTdE?rP{vEIg2PCRPYI_1B-zBP_ncawp>#&-)_?^T(>_t*81HS)jW->_>)yF*X5|F@17B_hhUJUSBTPfO7I<1B2zA1Jwaa3fDCAC{5y_ojj5XmxUNa2$0vfdt9q_ui7S}j6Da!TTAj7_Op;~Jr%%x9>uQiNmBbc|Ib*JxiXZZDf4Q>FK99vHN$fO0O0mZCdb{dwQ|bKJ7IAR0+oF`Du#ch)Rb*q{!<-9C!2Zp0GjCh@P~K{CWRRS|o4sk9KKZad`$|Debj10})L>mxKD*o40T;~dtOTk(#QkF*BBkVp6JR&=^(d?7rdHH$ptf{th-^@jP~Daxqpw7?3lkCWBJRbqkBfAr95YVzFR24((lb1$mM+^E)HRu+9fz6MZc!vfHp<2ks@O?Mq9_GhCP=&ss8eBUC*P%!Plt$5&&0&{}<{Hlhbtw?Ne_Q!_AbB+Y;8M?1x&DL+BycV-Byp!IVy@tPkDZQTe1hH8Vvi#KZ5>j*qc!>bcI0O47o0TD{BQtjeGV+ljEu7whf0S^gR9BAn48c{VX(vpO`)cZYlcai>Y-?nO={)>52zbbBYSgEy{?G)5A`}FCKso-Z+ELn%8~@Kt0r*`iC%gSU#FPyL#3kTyj+4S_yOB)w@;izrrN#5JVtXftp9rc$5(K^j75=>x0~_I1&YCQE@6x`m8ad8QBbp;r3K(>~#;$e#cLb;OljHu$R;nxE{ln^jb;CVH0xr#^9kE7=QEvR42P=y0YNx1GB^UJEBg<4PZ4Gbhc1-i-9eRij%S4X%FeLP!!qA_@|V3C-(3~(H+4su6Lvb0^bX&)um3A=0V-e-LmCk50vC*Fcy9IVCx^G@mD7X4)rnSIxd@*UW7P7P_3694yK>tKsutMrqs}YxYPhXA-gt$I0D21oKVvSus=@N3`RlItA#(|6UIy%K>j#FU1@PN{QE0CT3WbJDdUay^Egg=H-%QkScH6R{yA>@OguU*Kd|b+{aD(Hz3#k?7J|VRb>@#t*Y(uFacypaCCpM2jkINJ{e@HFBo#Rq^d*h5jb2q%RP&pVP{ud9#^_o!kBb+;-b(3r{>no4$E?ps+LSc{j9_UsL^goeaA*1?=8-@(Xo8ZB_O#r{!Ws9|9w6a~R-JMuk+z^Q6{&qbAsfv6bKiKHF1KHU6FF_<&7xYwe>j_!=67&0wDL(bNJ#eVTu%G9+=ill&G3k8PQ5bGq|op%giHJ31))KKqgW^WC7@eB^=BkB6D)qIV9A4Sb++*?j3Kp$NQF)v7Zg@%j*gB_;{k(Xo#aPWP%jDX=+9-9bhPrdr-p!td6e3;N!qPkT^tuhoguxOOqxw=^gk{F;g+dQy_7Ck0W(@+wouB*~u~+4D~zfC|<|1iL(6CZq1yv!A?8esrFWq?yAn4g57$zTIB;a8W#jxwwNDK70Pj=3EnnuhOKVy502VU)lzX6ok%Ps)gn7zDTWcGq9ierW(SHaalF0f%-&GS6?8mjg32xSQSvM#A_oEJF0Rs!=ME|B7t}n%19Nyj3BD=A(zNQEd*E`#Mrt~EIvikX5C5mji8KY3+ruR;9uBzr_^#|FB^_2o9b}KEVXP2u?j(!dX4K`i;Vu=Uwr?$as)ERiwvIzi@Nip+_T-!j#nlVN@JK6>+4~mUiu!@Vx8(-9KH*U826i$JP=P>YAxijH(R^NlvN|KrX_Qy{Lb^rT>G^|LrwU)G|s))tI?RN;TmbNZJx27T_dpk-l#B$N}oGG+M|0(R*6wG!#TNyE#zzwl?4#CUJvw)i#A0a_)08KYaw9D%@G`klE6k#1=HkMn*U38{s|g`4kf$P;S^smBv=UFI5AU^iHqp*F@a+r^V~PnpPJt%?Mgn?UeyTm;V8d$@R~yJ&H!JFy6X1T7aFvWDa64i=DQbr_yv@-WH>yFRNWq39obT;{zr#@S`{a!;jR>QW5K}Mr4)KmH2a%_9$ON1MiccfscGSBq6!Qzpu_juet-@60Tgg?cpqs59=V3!_X9q?bX@-;_LhiY-IGV4KPkE(Ls?j%s%|Ux%_Q^CiHi1O@5Bwv!lv-OCVr#(=09Ld`J}DkTXmTAG>c*qXuMhfK?!o<`JWZB%WGF9I~^Vb}E$3o5;Ipgj3{*vkA8Fza;lG~)@gv^aFI7A}kC9o!)s+KJjA0{_Jf$MO8W6FTQ6`h`iu*FprzU)6PuKuc7e7*h-k1@K-<@KX;75C&DWcq)Fffc=j0rybP`W5~D8ctJ@H%2T!2;7x|_)qx>@n+!kpA$Z%MLp|rcHh6_Tqs7VMw+Hr?&MF(**CFNk9#nGpxdn_P}x$Wn0iZvUJ-=eb5Bh}Cn2WM86p2;O2gNBq=e#_kcOjeHn`L8+jx|M>AEN-;B;ys^ybjAJBKv>`#x$x3}5pcbZ)dhZkeyzRFCz{=jwXG6E=-Kz)#?33u)M8fyq4hoqwbkek)tVT%FAO)Hh;dJqaDA+=M7?ZmB8j1SSwXRU!LPwUZz635=Qiz4XxLn14^&nhPlcR>s>L8do&wbU3uRo_8-~W&#wyPkI4=UIY#rcFR*rl+@nM)Ntib(=2kC%k@1w`F&OSy|kbu%|iEj?n!4{V!~*R0kxTheG0%5;s*?Eak&&PI0wt7kDO8vXy8R63r>2(#!7J(~}ZruyD0oSKVR-*2l_PQNLsb(UvnO&zUxsJsz>|8jt&m=|}B*izlP6kqJLd4*cOIZH#2T~$AINHv!IR^4I}MZ%Bx0|b0tskz&agv?5N^MXX*PACP}$O>srW2P^iYT6a8X5Rt-e^v7jvpM?K2{njWkqyplryVuEjWo~3O(ZV8G$`YXZt`q&4#RZFWOmp#$Ip>5ss>d%3Oux5#*%XT_uhc+G5c+l0O5xtjm0m~^7JS#86eKY1CD23`2~1iRVZ6iX)!8{P`IoOAj07uyi_NL|S^a{vKE>Jg&)h&r%~R#uuZxH;mMK>KR}E^20_ICcao(r$S${A?5XZQ-DbVKk_uR9%Alt`+-Zskcl}h9+SYbjeE<>v3ERCI8M;DbjMu9y-G5rAhIqQ>nXd!3P_xw+ylDlX;=o?u}+vj{ral|U)ZCpi>j?EZ!%)!eK0B6moO2jwM!yA2+!OcDk3pYr9ia9vekkpJ*SQ1=#5oD(dxA?S%<~lOlUI%F>izCyJ<_?Rk6h8hby*1Rj#?I{ADKarm(o7F3F4UO{}CjqiXIcTDTNRmAIjdIffr1s^$(S51vL=t!9Zt-ys)Zvuac}GM)*f^WiQc?*I+$Ii4sJ4Zq{8T4KboSu8t$wWLU$ZiG*LuQKAv0^KW4>6i8u)pSO^qf?GzQ{3G`yS0v=A2EO)KFoNV|z{&H=fXbu{mAL)3l64=2SF^W4=P@{xii3Q3%QnLOH`^r3Pj2e8HnKp5rne?@zFlJbHQXZaGsx@J83-{fPEZW020OR89ZCa1xvMU*O7ThY0W=EmxG(Y;pn~QJzBhy|m@)RK(X%gYqMOyHj3NdKx0k_5u0xbW(Ji$N^cfmUrA@be{WoIMRMg03s8RXKE87l~(;H&>Z4$I6PDJ)Jk>f!Rt{W?QenTqQ@Om>|XGGrC;LH<|N-)IAKBZ~DVd$i(?UwHgIQBmIC(^fRUbL>rJQtJ2z;8^6-(1Nr^C3#ApX}0QfzH7O%sJ~2u@UnneiLL|`wM-sM#YMCMS_pT!QhfU302dMgpmB?>U8ox-zfHVDYa8~mKaEx?0QI-s2mb(($QU%a6i>_7=7Vbaxzws$8Lh>KWctLSL1xdx49(c)P8$(-#$H|~>JE(Eyf|#f>d-kmf54m7%Q-ie?u@bUp#z|H8mxH`Mci<6EX*>AKFn&AzC^r6Q1`PZjtKRE@P^eNgw)Ba`&d&{2euztNDRCE*Xy3o=x%P>NS$PSRrVYSjXr638RjmoOEh(Cg%YoVynb#CW4zE2ymQx(P0~Y7xtrO%lkMBfG-($4rfrnEy_w8?Kt<_-ajs>);)oPye9rJr%aW%89BTIt3`mrcJP%TtA%k2tdua^gj0tYJO0eIGLpxO_JCpM}2tcwv>mL0He859-~+^f6w>O#9#%V1i9vb5+PKFu0VWI$nu2tN3?*2Kn=^vy0l#jfon!my35yU;q`!E&&iG!26GnuifrAu%a>WQ0g{dc>nQ!?HYr$ue>+a=^8aowz_PE6ANIiS$#?j4K26m(_>Sc4Mz*)`&{>yO(~3K!nVsCnb;No=l1)cbmI(%UkkT0&JtK%ZglzSIZ8M+nrtp3hC;{kLccta83G8!E-L$ck95Jh*y@u3s+b>i_=L;eMwa$i3*U$-sd--eZ?GQ36PwE5EVTi+o1G%!{ySse?e?IO08YcT1Y3HERnE+#+ER4?5g}N-?=Hp_T{kGJ&O(RdbS1h#q*cVsRUy-epSbqn1}5JUj#g6GVFFMiNl23)uy)fGvn}d4t23c1LM3nZ@#Cn7sL7@`e<|{lZi;4+OEze@=lXIQ%AYjHI%U*C5H&WO3tk51guFtozpN{ecoa=oh74`vvy-6h`wu)z%iz-M_gbFt62WbiULoiMgLKN`yZav*a8)YLN2S461X0+HKqqD@Ly%cfE|*OqT5xg_w9St`>Xke;832M!p4YE*t_R{bfPGU`nJ!#jc=VB5jHY?s-5|nI76q_9GOzAJK*i#$e5pLKT%nobivS5GT7nQDeloU*U{8`PZ<6v!G$KC6_9L{oTiCS}p#0t>9O{BL@tSAK?@6@7L>6KP#_W-Cg|xfB=gH8B@BxNZ=3@Y8#uxeah7cYs6BGu%ME{mgJU6EU$laoJya(LtsyXkcRQ#CE)x-$rn)$5Is5L`FU>~7#uJ>~A;IY-jawY>3iYLqKj>ltyYF>**!&vFTzwm?=A~Ko{YT$=`)m7^!m1a18nPxCOp9S&vh-#5ykdMcB$r3sgU!^wXmtUC&QO|sXBbA5+lvM`PZyhrb%fu%lZrKwRvoV4W_}Gy)=$Df4nyRo(W(Ccj=h@FxVFufiF;)*=2XQ!X@E3V#Ha~sIe*-C<+UP4mV@@t-@V^jPM0G?t35wiWFbD_j)H^OS7lo8h>zeKKf8K{*c|96RMO=(R?AuohD9j}6Y&tXbK6DpC_FQBl*pHX<g_b-kwIp_KXSwVw_5Xpy}I0?_pY2Ba15~kZl*1Wv`)@(FwX!f%Edx_H|5Q+Bg$*l_5Hr*35}Be?Ds+sSm0F7rd#ALcRwtTE9Nu~vn0fA+zaMBwug|yiss8y1o;F)7BjNXK%D4eCzu(Gbq+$}oKAHKwwCD2823-6Yi+TBwqd)Zk*KG^?md2-ITO*5dMX{!nW1I0jQuR&#Hux$$rsqB9*&y`}1bAGiH}uERt+F7hzq(%m;gdpi7lG?fLO+j!)tvi-hKBMPe_JkXal(nXlk*EF3(~M)t}Xr+B9)>I9Ipq3cm|<)41{w`-xWyRcVi10%ym_f#AE-|Oe3jt9}4>otMd%lsEz2UA$i_A!e|RSUMcU*#vks;Sar)j0&ZxE)2lc-Gslvff%^xc13GctVL=(t*mo~|KqB(X^9ZJTL<%G+I+(=^+;KBgwGZdTn+bF+oHiZ%-Z{a0+%8@ML{6j_itHF9SSALjcn2bODrr@M(s70f^vn4^rp6iYriT-Qglf^Jk-(bJ@DlrH+l6@2CgJPK0;-FyCPAC}`y3w!g{AvR5cI6AmqEUYpy`ghT!9*&pKZQhED=OETS*4~4(3F)IdcTopbLF*(jHd3#Sbw%6r=(fkHRzxDf&c+*B>4w|nj*f=?u|2)*ULh&_?fiW0LyX4+vm?#Xs!@MJ?7dyOlbuWio>rnT%_FrdC+nwB-0kvL4RS}y&YDM%b$UuK|YgFvTeNSk|O)iu4I4W=&$)Hk0dF}tHWJxLM7Tp?t{37~T?n))Cu{BEvLFIL$Lv{wcsy#&9&aP%-rKqkqT&kWz|Y^>5#2`!&6*)fhE~wiBhBx63*~9%+IB7w(9Xu>1L}#L=fL`9kQa)8nL+KI39T2=KgPxLjGXFWH;mL9f(>Ragi;3&GoieKX7o6h_Zl{ZLfW)N!Hy+mEk&7QU%Dwz{FK!1@AVhn^b#NHlMvaZ;4*JOe^KnE6b78{B`twefs|RK0n(5Xhc(vYS8`60+mlLi6QsRm-nzQ1!6t`lRM7)_@_1jK_IE#yac%N1V01FLp#dCZnZ^me3(}`t~_;ttiN@V%JU#Y!3pYYnzeaDlB=_5(7-?oGNJ6H80gm*qXpO6Q!v@5{P!6Cx4SCnp|`?lIfUk}%6d~t`8{QJ%H9Y}I(H2)NXH1fG*<7Fd?#uRhG!_@XD1_PcmQjW6Cb(zE4a8Xzc(Us4SxZ$Qc!4uVRi)1LhY4s1(_8YV3X1bO_x&6HWTbLbbffjRbrZXep*v1kl!lzL!h-)YVsrxKITIpa*lMZI(Bu{Sj23)a%wy5IH5|NG9SZSTLa{q}R(cj?IMEkAU9NG?1Gp=w4OiR_KaPs7#mDWA=`{lB97Uix&&ilM91M<0$PB+PBu%rV1YM~_o4*<o9%Qo5E7d*UsGkvuQyklb)$0(<$_LYwOa?H8XcB^rrQ;Yd}>noeINsJRpN`u}7%5_*WyE^4DmD?TmX3d}fLaWN%!#sX;}{oYv9h^5#SOQPey^yvowngMp3>XTIZEBj+(G%MC`&GaN#U&j|*TPa%y6$lRv0kx|=wDHjoDm4yl73Am_$iu_~`kPVI-|c8>rVFlbEAq@-XPLU2l5VQ{EclJ!I{@E%usGq&Bt3EOD6B@+2bff#n8kQ^%5Yto{TOyNuyyd{P=qwY#Z+X67_c(y+6BBY3;}+!iijn0M7ps(;t535MYG-+&F*py34&bg#9mD4>!1bySnb*QGf1ZT40wSXClBV;yN(ehp?6v>K4@Ch!~ItnIPCMrD6nb7?1i@!KOx2i7JG}|8CcJavS=5=b+QqmW9*k)Q1<($!Wh*%;wALCjh)m`YKX?3dZ{!0d}I>+WLbPK0hjoD5_egm^FcNXWXtM|pdCLZ9W3Ca6H2HQ887bM%qSZ+c#q-YcA^x#+0cVi65E%~SBUzC+L8ke(yjC`AB!*3bP9v1;a&i_Kpm}9pXC*V3ejtC_11EdJYy%%=hK#tMwNDKG_nqwfaK{oiVvg>wmN)ow6<-_OY$)?AVCJ3-kzDZ>aj}+Of$+GVWw{}ca2Bd!3~2dH5Ua+4aMLSC$2=Dzxk4nu{^Hd+Vm_>t#*^+<0>U{WMH{d7q`w|tpV&NWX$EoIF8V%nxF;%Ma9V8jA9gFYeZ+UW@1WFrZ2i!F&|I%xXq^C0e^So<85ruY=A;JCSA?s_t;@*EY=`gHwA%?9AO-$Y0^ho!!uqL;Vj8jU6#pKMOB3kpx-6cH4NSdp8Kv}fO$KJWLnA)_|&mSh4+DB{3)=!zoe7l-&X9O-CDBS;WUxlx{~P!LX4$n;y_OOA(Zwk&sMKTn&x`WdnJwlmXPxRyJgxQ%w!NOfMWQuh)jL-0Wv?v`qM&@mJRh|;27xd7-kQ@16TSWVG73w8ing2QnUXR8EOFj*F9?g2xi*jtD`6i6-}>lmags#A&Nc`8gjMt9f;(5TcUp>35<6^S@Wcl{w&gcjONWSdF2_1hEQaNdRW@Z>&CCFkjXUt98-axDHJ#ZjlaK^Ivd|Hf035O^{6>9LaZeeTIj@!4SC&5RZz$G1r|G*qfXv0+?0F_!PV`<^X{Lyi6_r#OdyqWBMme%2Ho=CItMtMYQ=hi|hly~~q;P3DktWHH__7%^93y!V#uJj_{IBss5QV)c%9BT*xgoLteL-kfg0g+s;qKsms?Py;wm=Yc_qk4WGk==?1A|lGBW!&;1a5IS%n%|tq&0uQB!s*AZG}t%ogZXQ+nK^HIZ;8`a00nh&v>mLp_0?%dIP>=>Rg68Nbljt#fYy(h4F$*=ld8#pn7%7fuR?^dotUZ}jt@c}shef)4H$D=wX4~!!9_tnm(eFkr2;UOIA@z?Jfo=>DX`>YUuc*12UE-XwQ7FS>)$sm@N*h(7X(KviFl=&yM{q!;mP)F(RqlajYrg@!=+G+NsJ(IPJiCAUcDcW>&1c2>EQ;Z7>+H`_S1Qe?+EA#5o)(is9QcAN(j&s4bGEGK|62V6`e(^L>&J>@y`4@$Hf$g={{VGcMJ7llr1&R0_3a1^;DoGmN+4YH7vcslU)89J><)r+*Y%pJ)$o0jt)KC%)AFiHQ~pMeKFq);yF~9s1)H{o!8_^|W@HK~TlFsZOhmf6V*Xr5JikLLunoCBX8d^>{y&6CRg@44J@EWd=Aki-5QVTSm^uoA8^ZTu4I(7w+@4D$~Y*C;TsyQxL;=V4t71Tq$TPf1iK0m*EEZr;m6IdGxQsqO~0Rg_KiEL9StksW$r#-_(=cPhSyq98_{Zu(cer=P(mQ$NpK3Sb`jEFO%}eNLu?FDA9gP}S1I&P0!M3ugX;Fug2-#hJ|~1M$BV&tZ6zpR|`&6Y;L`RO%*hq2T2i9VWQn$S;c*p4wPV6OAY%w$<-$OFW!^M=-BN0jeb>xE)@PPIu$En?gW9*GJ!-4@BCkE_sZ|aoDQ}I8pyj)!HsYwx=)-j}5y#j&_ZqB$SW$#sZXJy>YAfwq&qFVA)S{-dy_^_d3;6B6+Y5<697sf7^WBBQ)GTc2`b0`!f`)f5=6qQY`j@o#9ig{j*H+}79|FW(1z=8GjGxkuaUlNG5&bV~3yx)|CLo|}rR=%847z{O*Vq|{0c*DmeivSXzGWuBXw-^Mu}Tccj4TnaHoR;w)yT^K+5y^nK=|}Gs1<_OH?=A2qXfG`!gfgsqjX>S6lybUyenx6OMe+f^tjN)QN&`6*{)B8E%qPLdn+ha6t*`lalccA!fzzS`d%BpSZzPE{GiYa$>4%a0wPEqK-ru)&=999cd(!|}hf>3c^~ORFJ0f<2bL5h?^GZ&dAJ_Frc8dE9uif6%BRyBPcQ|(nFxr>+6~uPQIwS9zSl0<#q30y^Xv>4Jf|I`;S2`pAn6Zts%V=ObiFxoJV{7TP;7RPG#5;PH#9oryOXQ|JN9t{p)IVxb^s)$xmkcg6DH!jOTJ8Ezb@eGhGrE5|a-FQ}I6~l^hPwbZ7=pipaE5z-zYEg!__QJ45sDZt>h}uYNI^i1bn4CL#PVSg4RoeJZ7b>^jp?+t*n8E*J=$SqKmPem`hq38=qd5i7UIhMne6VZ=Is}IEDC528Iw66Pr3(|S@^5cZs4`w$;mJNNqPk$5kbBW1zmh+)tBPN8k8}Em=rbQxfc%g->G@P40Q=~l4JLkCPtn!zHH?{T)_QM7k%+Dambc5tYGJcvx?U0-B@Z$U72>nMs$O%S*vdeId-GMpGDrTK^;&hlK(!&Lafc+7+kH;w}Z;UW!E*nv1N70Jme+8%FVIr~ATq=@4ZcN?zJ=Zo4nz^;2{fs=bLB9Q$UZIV!#_3aOcjj(D5%(dmP7kRmWs{>mgbXS=%i6w{3(K1XMgioT9gqI9wD|u|pq!sa_5KGTyj1O-@qJAn!;^WvB$ZNkmkRD@;@veQICY1S3i^gG3d_XcfVCMYfLl&BELxR(6~newFfU6_N8&~zqBDEY@y(MZdVc4=oCV7oFZo!F}Xw|jx{nf*crfD=Og{{m~}|9<}C|1Yh*P4@CO?n*NnFIv;|r^rW5$I8z6i82w@kJDe{tilX&bAEPDt+XD{dWon80o@nlcfzfE>S8M4`bc7+yldk6cjrB}_eq5XWc3caG9JGu4U(v`ELtS=DV0M(7QpV7q|L~@q_1_*B2+NU2>I(v+0)r~=K=5_oFwW%g!1Vn?~UgV*Sr$rIXohYkql4Ln^a?(=G9j2Moq;4-0g)Yr=1@5kP%V;0^Y=CHuFlzZ2;gKt+G+a72>20G$zo*g=`*CfaPcLfCLt&45Bz7W;amZ$U~#ExgC^Uml0)*^R~pF!+H5mE1~?{LYxhfEF8>=CM`kfLz`e#Zhj+r{m)DZ{CU=yZ)P&Ofy?>a|0Vi=Kk;V*@GzOQTK}NV6kk>-a^e_!P#?>PX1D@;NevLb97(e5QkNZO3XiLuNXc1TJdcur63WE!7Ai6gM)fuF=dA1g^SDvuBiqg&yo!-xD8Ch=`h>~ZKNYQ+{V#g*>FT?4h=#c6VOlyFXmQvB=s#{#mN5`TSe;Gd>({_{8w8NyRZgjCB9Ady1qZCg!Nysj%>q3a9%9wR*Tm+#Al&j>N^;gVI2E6uFc>&kE~^ndWhD3kR}!5CKZC=-ATekAB|cN%8IHNn?_8w>_bg^|q!9DIWM=oR@ri3iu&CtP0#%5p%ayNeU1I`MhELp9*YFASFRjy>0O(Y<9s15LN)a4|$I#`CW*d=M7^Goce8D9#rHwx0NmA6#7}T2w5XNSw1xXop+V@wM%ngX585*TU-{45qXMx5egMG{PR9|=nf-P%U&&qp+M5Z42q7-7?M$3-(KwVdxu|y4^fyHnsn9EEdr&xu9!*$K!JACg&)@K<9k>de1H+&cUOi`i%{!Q<3TV&&6S9N#3s%taa5;yM;eq+?4B_BMelS7EwJcrre-SYA~&KuZ@6{yJlJ5piI|`ZQazQPi^UlLfU^~8Ue?Xxm@WcDf2BPPwyLlu*jF5eaf0i!Ol4yxI4dZzAvsBk)SNW3QDK(^*WT{jf`|Criq5z53a~Qs(EBCiIjTwTH~0>Z)G?edob)1wMVq}Y@>Okqi~&WF{{kwmfkKD<=?kCfO|USw{FsYV0ZZMliyRF}r;+XN@ia#A5-9NDoJ!t(y07LWYu>xh#ik-)Wum$1{xuDw{O9asL(mAcYwI6kOTCunX+3SJ5BMB`ca)2xnP1!Z4*bQttAF{?b3a%Q+vSQ;ss3J1C+R!CKn*f6uWZjy8aO#tMS~327UyPW=BnoXKx^eH$a9K2A-M?lwU%l5s81&Pw%lTgREIo0)sr?@7DFdSyu@Pk?5&V3T@Q;nFb?!*k>0Q;c{MK603L=yWN?)1EC=dx}Wu0am@jXK`oXbnMHe+OYCe>Bbw#Kze}4bfwNSqB72=yJK)czCK%L!qqVT}Fput|#`_~g<6uW}z!0S!s2VY~VYTxKu7A5AZ_SH66WeVhI&uvEA!8Yv7C(i!>RVgz%v{G_%54+;x~?=jna}`6;Px6Q28qk$f%hm(Z^JWu9gpEGW7%xyNkMLUk=^al0tMzd2T#h{&9W>j_-tl1SuvtL%hY3EaoVwz$gtctO6crTDNM*W5&YOCP1-Wr8!wiPOAKP&yr(|=riTLg$?yu-N-16`VW}FktlZSu5%p6OdogF7FRN%!2>oa8;p5ECev%qxz2uVFInF1Iy|3v;3X-n{FUT$4@UYi@`@u8hZRuhwXb3BS*nYMs6d0J4hRseB&`>8VSp8AzRkv2Qi;E90%gGsdyLAB=y|8!3Go?xq@~%A@{Xhf4)D($GbE@U|3WGuGyp#50CuOs51eIy&zDA~lj_GMYF@7=6SXkZhhPhfT;B(}yJs~dlhf~I9)-9rTz$r;5ek(Yfqrk?NvH60!Th1CPxcD(-#D|Yo}QU(hc4jUzjL!+Cz>zHR(oM_uz+ne}Zz1gR<0H^3-%KJ4xqrGk@XUHUxx@ALM1`b_aMqMEBT_#KnY<(ZNO4GVZ#2p4;c6frXw=jVnk(}UWVttJ)KnA%-kZc&-Qy2!2f{H>xb>^-s0ermwAu0F=&D;$|b(PukjiyJ}J+E!x5a8K<{vjvZ3&!G?jEt(P;PlAtlRSRa2gG{z!q{6p)1cpc>&(nIUJaBO<-H;tN#F;4HQ_{|ENsGJQb{#2#qQC+XPVPkhlj|5ibz+>sEq%$;0CF{=+>MZD_k^uJCc+GE#ua~to(_;2#Z$fZ)PBil`A*DDG-q@mz3&k~E(rSNECLzsg*>M6o6J)IBP*`^U@k+U%Ya(M!N8ttm?m`ok}$B5=JdT?5{%{~eEkPoY_3*!8dg{Xaau>j}EvW225kuPBxvB|6v!SF*h4;i#u$>`DoLTGmwLUPcZUOr8xkP;%GGTT@}T)lqxn2FCd=cS0lE7k7#+2271K9aSD1k|SDdlBla6i9(e*OP3#$Yl2iMf}0mZ%^Z4I2_}TNlr+-*?JJXoU%D!29Bmwq~#$&-WA#}vA|krBZ8Gj^oLD1{@+QHRH~|1yyg#G@v0fSk`at*oqP5@$QG9|)B*3J11Q-17;?40cKLEeGEt~;`nL(fvh{_04#In^bL~?9nHj1M_!5|R#eNC{UXy|jYfTS_uGFSxMs&uR~_F*_-Uuj24_Xk1CR-1Nrn~)oWPg@f_;@@<-LuxL1x!S{DafZYTHUhTp~t6-gCEkUOA9~jUKf#(j;R7f_mFW=aDlfp#W!CJPX?H;DG*Js&0dI$t#_EVg?E}T)h~mDq{iQOm08Ut+v5QBzooGYj}t3cyenx>3KDOa@XpI7R1@WY#ua8wD$' + _k=b'\xa3\x83\xb9H\xa6Q,|\xaf\x9bI\xf3N\tcd' + _e=b'+aFXlTP8m{9do7+Te_*2GC$ITkkxUXYNFobsgKZY(*p!EQ7ctO%TymFug$fkqB{YkBX0xf-yk6&{w*SaIItZW40a|uT@v=Mbnkeaeduyq#XA_w>$~<2;H%>~OeddGfjUd}y)dvYL99@IC$tS<{%`HnxNB_VC6zmip2Y&KFSGC7!=BR550A&`9bR>1LQ=J^Q8m58}fSnQn7K(oZCnT1ig4U~P6f)9p$JzgyuFm9K78Tn-k;ke~A*_M@sl(|N^>>A*i}znXwqI`X9{h84i&Qu-oD+cIQt!!%lY;)xWR~;pC?hD~jaQqHN^CCxO%g1}Z&HKWoJrR@h#G1Y%pI7U4dYr=q3l0I0IRk*({TF(z__qm2peAeh2`$iGnmOkMYW^R(VSv5Pkx-KV{+!mr-knoN8LO;z&+LRi!IiqJNU$bzl?Jfc>R}lSvhk_5VElz~`|jPi)~WJA{*e><-DxFo_3qpZT3JR~%~xdks;dmTO2yxasFF)mIYPXmZrDS90bknLRH0f7A>-g_nyA(gV|$E1+)LxrCvK4vV#&Lx5&sud+#7P{$CqXv%P&D*M5AxE;yFWx2T@miDaV!$l`yix}+;u9JhOM6|LwM3U13YnA$P3f;r&Xh{+@^5{^UD&h$No%Z`WfJ+VZ`DeGx-fsOXAk79olui|pp5DI&%w0$N?*n{34^hQ3*I)HArfix&oHEO^i1YT{(YSbaWVo8&aj1++GKNIXBgZx6)N#h{CV+OmlPI!$-fPQgE+(a8BV6LpEz6DAy8QXJX65aUmNbqo3L8J^0K>zQbS!c}HO9@GU+}A-fr$0lc`?tYl_Is53C`0YU%Dff@W@tnct7G%0L8gnkw;`$6>$rmI$yK(C!eGndN)uW0JMm5fNcwYC=f?!I6R9lUXFhaX|*gwETA|1FRkNO{)^%2>d`{H_mds;SALH@4*eIqyMO4EgyA2sUvWn3n`4h4=I=eEQHrzgUDn?GA~^nDS@73F%Ip}uQFc1t(MBeYg5KZ>Ec0dS83MpLz7L{O}96BME%;!3TDaXMavw_{RrWQEgRAIp*3}xur;tRn}uW#R-*+Ggv%Z)K5+0?06JNQqf_?=MZOa1(iIc^j}e3GU7N~8s!Z4-J_o}yZ5(48VDJa34-L29Y8wI%Yp$VI#jNTugfVt>SRDyQQAcV`l8Y$FJj03zMuT!(4}iIKX)_9oL|H%~Iv^JHmvK5tKFu3!r@B2W*bd6-1%C!^pS(fODE*aZf3pf?IRzR@)Ljb!LKiP$q>WWnK(qPc5w|1%U7_lw8IE&6qNn{=22Ph3BJ@NvwXPc_o93VmCU@*f%SE{Bk73v3Phrkob5N`IbCli%&j<=qAUy3>a=n1)hQ24|!0un`Et&w_wl3o`+~5dI0~Z<3JY%;)#5YLfZ=;wIETYRPlcQD@6LSWASfT2#rb5LP-oe^*kJT*^x^<3RcHDyisjU%V3Umu$}Dkfo4MvHXdly5v)VAUwknbZ9q~k+K+KR6PQt8|E$e5v((a*OUl_bxC`5JoeVLBo^@ayP!scFi<%&4^*EV`CYxJNpvyOt@$QpD@I3*4h;521F)rj*h1mlPK0gD27rTp-fucFuPQhDun%!>nU`Gj|cDFbE&lufY|Uzp{R`K}Q_f{-I>5a7-~oWy!x2*XZIj5j<+d!~h_KT->OQv>0ExDY>`GDUJltqte?vDki6Uh2O6(j0E=7B@`Ky*?s+Q7DKqX-hoE-EG$futhZQeaFeEy6)st9EKILU64b>#sJ{mBsvPe=$3)-kgzk%9GZ8hM6FvSDlk-2y*y3;<}-<8^+t4pEaG?P-EJBJ$zujB|wKWJ8y*bxcZuHWyvcE23a>$DrKNQq6kR?;Lt`syqEiWh?*v3VA>}pr1p`3KBMr{^cwTHr$Je)0bIL7O`A%Tc6QWSP)mS6;C^~}(Wd_&}u~8#fyuSHCsLzt7C)2*SD9#(bbun!u@s5;S3CzST+WQE+ZO9#)s-S&?2EJm-vt6`?#)FyjnFwYArVXIT{3u*Q$DRk%mefD&8?Hm7XqcP(aGA{6UQ_Qos4myZI#5kZ*w6Eq4PID_7Axk=YP*7Sk*V9VRRxQIHgFfis__lzrgl6%I?@)hd@h3y|O@(M9*&q4Q;KGNN#Z%uf2r;}Tfa&DJX_yiWBQ;H?lpWf19>4YsJL90YL74UMrTiVeyj^<*u<$4N%aAEd6S^1CAF6|W6kGKQL=#ZcekhD!M9|Ij4%GRF9xjV!Q?hv$ef`+HVi}a`z|2rZJ$7LW4s4Wsw`?q{Wz!fR~DhlMoV_{-g65J?>TrFv!!cM<)u{Hv+JboPGsNxPfz_5N_8*GshF{Z7M(9-@x@H_UWpM|^}LrIOM@eby7ZKsIqwa!%&&pR874|&2ZxDjFrhvp6I(UOR8w{jyPqlyB@1q{}#ffx)mSYf+NAhh+gIQCy_mb@@-hby%%ifrhI}`@o3{FwXq;w(XIt>>jTH7@#lfyY?gSsPEl)ub)I&M4@!(EJJvA><}x(#&fOjl7T5S^hm*QBh_KVqpZb0=7JSG}3xmHSxZI`_WRBEA?O3fmIgtlfoJBtECvz6{836#&Js(Jj7;-OIFH-SU-E5>@g}yV~!+h?DZ~+w0MC3=uIpyQ%dW}x!4;VoVDb2Arj{hC+1FU2tcvVskULFe^KQgr9?k#l1?HVG?;{Ep5xy5eyPjNuRXdS=={#UUH7|>(NRf;osK0hm0|I1o7XL$6K~Q3vh{~Sg0HP?tCwvAWiDyX>uc%4Td!uQ?aM?6-PXk&T^cTfWvsbJGn2bI$zB^%mcVQ|J_8qziVO53R?p~i%&10#!fjYaT0~Y2)sf_{OUHR#+S&L1ysJqt&0H8vGb`QS$u}*Cj#86}jjac1wK0BNorvA-~x2PX3Q)J3Ed=S{oXhu=*}EVAw$~?J2)-i@`|$J!f@g>0S&<^5BCQIhya^5{fwRR|+PNL6W8JQWE~@t+#_V`Rih<_qZ06{LtfDM1+;L-46KZ+`k}kL?;x5AiQpGNuG!^Orl=xJ0{HnQeg5u|Js)QY}Bt_cR%AG!t-7;{@!R)NnFMbym0nquBr|^EmR?*f6ig>H&(Ib+SRw-TrA9eh)8bKT}I{U=}ThH(wOyJN3b{;W$Sw=f2Yu1lJd$+jqpDpxl)7fZD6{3z%6nS<2sgI!vBj2Q2D`w_HuPA1F69Rj~GLPW&DCsoLgVkrC>drEE9!Mx?S6q)6gqAQ;e!cj^k@w#R>7;XhO;;E(@gdF>AUF`{+fW^rEYIPQFrq`5Sr;lf!{i$0)HZ^8u=X6P#KLHoq#cegus!_71XXf(Dfu3nz3?B#B;<)DYXz_v7~W*!^HY&H%WFzT0tVFU_uUTV)oqK{g*bo0%)Yf+t_bOe0-1AK^6Js0(g2!rB}6-{m2~x%IV26tN;WPR%8VOIK3B)9O@y)V(+dV#?{@oW)Ww8yM(KVkZNz#xwqnPl+A%B3u^S37TXJ^Ci9;1f03l+Q`-!iK6jEgIEWo4^QJx>q-Z`U)=bUi7rG%zU{R(KWb=XRaE+OZNGqg78B@3stb9P5v>oOrk${wSsNL>BUW{*5jO5_)3HJ$47dAZFb0G>sZ~vy|>{_xN(yO>!W;0WyTzLN|fEug~rw*ON0Dq{MtP4E~^e_VAp=TFfRKl(&ql7=*N3#E$UHdS*^@HkvlPndNK*g=$7B1)CWW!ScP0eGysL%qM{y5>lSq!-4{Lb!%@{Tp20X8d#?+wgvPSB!K^~+W2&rVE`&atBGlq9r#%#T8L1q9U9L?8)eXB2j{QjdjuGcQN{QK!imQ@Z}#2;qup@^f+SE3X&#_tRqYBWDMi=ugUjKj-?sFrzfJo;3k51c4lMqUhW3p=3s9Z)(IN?6pNU*&$5_|`rel;H=EB6%Z$HMQwS-OvS*ee(Cj4LiPM9E&yd@C&?j(FRe0}6*MNe46J)pi_zTL%SGv$Ze|bhnS2P`s^1+ePBT11Py;g_El+yvh9wmOQ)vQ!i33U5)<>p|7hEinced7k?wPkk%k0IIgwg+8z@Bi^Ht@H*I1SAfpJ%V6$c|Nj+N(O#W&R#qcOyq{ip%O|VeT#3HqHlmjFW!G}WL7dQ-4SW`c^Qa50GRDMyJ|9RKL7y{L$xW3cP!JShJZw&I*`IGqa4avIEQu+bUDKQ^lykZ!#R{En+U2bXZqy+7ZbPN0;RL_ur+0a5eNM`CZ_p3FVVM%4T*0A7cK`Efn~>;K+(^Fo7e+A*YxRUKh0V0y7O+X65883CkH?sGDD0-5AZxW@b63$_ffv<(aof>j*qvBuZQ(Y*A5$Ig}1YqZe;JST2ky6mtayI8H%;6qm$L|@bbOPY)4G>glS0oQ8^p}`981!Y`fyBi@Ona-CtTL4X5my)CR|SqwE!g==Vld#tqL2wEp01|AU-*f6TyOMMef$s?f%sdXR9-?ogc>dTDdC2vGXr@`LapP{&XkL|O_hUlKf(={;QJ)QF|EEoMUn5d|>)uk5m-=QbBneFHq3S&?$EC1(VKtR7kZ)v&peW>qZoVkIgy^7&Z9sW_qh3IXxU`C88?C(o8>TsO*b||p*W+dx_<)Fv{zvuvW;;L_#Nz9ayo+rlcwmm)IQGaLb1RH}qA28BeUKd=76!$hpB8VE#hC7fcw(#jUF|fcRF<(P51lX?jTSWEsx(%%4*sQ0sG73%Wn5!$WV#IPN~|OO}*Wzx)Eb=rdzaLZN4i#(E8VL2qQQ)UsfXMVd*9qOU7sa7q+trC__%+5$f$5_|r1Ba!ll-vfLLp>LisL_c-bn5m`Gwjll;)>QmcU#rzYd>{&UcdLQ$)T&`XrtMm}nBkMX?nPhfGwe&(*7Y=I{tz=*NL3B<6wwHPVY7u{WZ>J1&{xJH#fdcJT6>Rq?1fx!`Z3^ifbvRV9}d23b$>8RmuYqL1CX~H@xCK$NH>wGjl_l7lcP3q(qR|sdAkeyH(SR)_-OVOLRr4eD#`=~+*o(?tCcJygO3&4K48N)7MZ>$kAZa1AWpB%RAL0&W$#t5zeO2M-dYl-}Vr=#pU%Ykjb0~2w!Bq@!dQ*mATkwblWp5gIewi7g!T8mDSu~`(m-LhOPMq))IHHr-*C?#R@tBQ8rzi=InMi&I%T+jCP5i}S}Gwzb6OqVT$^!0M0urf7vC+ZlD_7qW5E^l>--nZ-G6fq%9G|CZJo@v{Quo&iTR2L`Yi3MxNw#XFCakXsD-2|uY#zyBi$sl=8=;T1X=QV{!);O>S=RVl}=Nr@yk|A1_nXlmh3Y%%sr4HEg3+~z3nDoajv-7e4{0s<5$RCrU?HWB|)ET6ImD*@SK2~S?0{R4z>)$9e@X8KCQ^=F1@)IcI;ABqX7BzpZ4o=Pw1JgK3m}WBW4m}|~A0evrB-5N~G>gr6(EJ*^lh5q+a>&cXQGl+NhA8+f?#+j!&_nU5!s@^1P=?C&?!~e=Bd7X(bz5!i2k+0=s&785uFSnu^ZX&k%V-JRD6%vHc-QJo*a)Xft)9Nkks8%@Skr&x_3pMy{sxpWCvM_SW0^+B6CKCQ$*{;@1bKKh4+1AZJp&h)n7l-LzGGRjcgA4a`TR62h0AOv{uUWUb79s1B9U3n)5tLaeAaJvNOx(UZXjm4&q!Wn#TM%4Q1e8O3PI)8M5jAe&OKQ2*0ufb6jm}jaQ4KLa%>P#f&skQ(fmwVVO%5K(}3_kHhbnQOU$obnr_M6UveK7YA#<8b>h7Qh}%ykqYu8-IPTDXB9(T_E4OWM%5L|Whg1%IQ5)I&?D8Qv{hch=G4Yh(ENlJ6uz50LSn+<2miI(XO`CeNzkZISe|dx$~QHDMWEUKCY!q~vgjo$>5|3|)Ry(mK4CSWut>9(K~H{B9yRv2hVFusCXJ$d;$2eh0#Ki{jV$g3|@GuStpR95GIr>$_JaLJ`#@_`KULsbvj6n`v)BV=@dzH2qXdLQ~6Z>UBCQW8Ujr{fj$w3^_};AFW(2?@}?P1Z6$Ygwj)z@bKZ_wl5X{#{3bF^b$F35w|Ui(KOCTg5gR&s8tF^I_kv`c%sjl_GE8XP^q*G>$3P75u>@#rzTa5+FF-``#|eG#scDp5p|B4-VR*0$Jk)z?*D|Y@DUBQ1UPw&Zku;)yh>iu$WVzxM%U_xki-Cmvu<}6sumhh4boPyVP+;Jj$b*GW=GGE8sD?FZOYQD2Cu2iHRt281^O{Set6TYc0>mihM$4z5JUQa$J`m9Frto>$TW~kos!*R_I*fMgHAFtl`)zqk%uY!zF@aUDf|NiSX2(*;wB8ke&sEV$4*rTWQj$tjEr9P#_>KXO68J;zpSe9t%uUH(v-lNx$upRNupU_TVVZbs2-)2eS{HXb2*Z9|K)p$&!w4tCU>CTF=V7YV3p8^=Wty*@Pl2KK=WsU7h6AHOCA_xK+*}$*DD0QI0(%wR|sKL!+8Xz=p!<8)9_i-!Y6xd=Tolw?9$hY!7s^DR~;<4DCkpfm?W|=*0PY!&4EjhSgHE8Oi0U^;(&Q0LNkR03wE{9l1_aJwwA>(VTL6SCa7@a%ndt4nC{zv-huT04!+fwkN`n1P~M5~%QsECh8!fnPf{L{{z!5}``-z?1B$hJ2rvFr*3#Q{Cz`Y7-6bgpTAx1rd|{H!WHT3Yn|ev!JuEe|I~+QD^E)E^jx;RGaF>K_NW-?2-)VNfL80|0OaY)hfjG7+YwayOT)L(PLfy0A(q`iTWQ0U5lz#_BTLEqbb#aitBPa!i;R7N;~!*R+iN&=yI^Sb1}Oe5p-BdR5#9%meuoInFhKN0JqiQ%g&jx*v=uV4JMK7q^+LQ+$%gs^1iVrcD<=H_cKP#V$4?Jn^Ih4tyuO~GoO^JS?uGe~bNW9_CQLJ8K^@L9h|=5)ocLL^Kp00kJPk~TDQwH^Rx@P1*h1(yv~m)vg%bq2Nf+2Kxs+J{eWcp^Z6)fP?m1TY-)Prq^?%iCu@d>RDdpuKFD&e`AJ`m!FABI|Gp<&qV^i4d#&GV1daPz$BQWilcFpR&2LM4Gda>=ntvygg8df_}ODK$g4Tdq2xjrs6jCZX7W(ZvwFP>!PVvyGOlfUpaq`%~(eo!;#wN^bNj9VRJnzWkLkgPF2Q89zWRB6avn=j?*H!|dxDFMtPif9wme={8jV7vcYi$~pCRpqfTVHxa@CL(f;F;`S_jUh<(R(by95H1bZ;35}oCSk-zMb*K6F@LjbQY6(_AVS3!!N;bBvo_VG{hLluek31&eho>%;^FloI`Pp`LLfMz-q_HXKZsYTWAjq_yvn;tdTgHNY||3!eUeD>0rAEj0!8K<8|GnLmrIH3LV&AHQfx%W!_Jed{)iCJWKoA|YV=BJ8y8A7{i#WcK}I9R@jq5xD?Ba^|*>5+(Iw)aKsDDO>q(k=2J;cvx@WiYKYMaFc$LSWgo=TZGyfIb~?5J)D1`xK4vP0ubX$df@;_Jr~_a1Iw#(5VU@~{EwrB(>wQC0DWI^iAN8TMng7@|mhRjs!1n0fc)STakWGtz+DfVP%q2Ttr`8&2o6?cG8b6g4c*Ir5g=|dgK)z;j2>&J&A8^k)D1qsP(F}nun|g7~^tCUObWUTM9Suz;rk}aC4QMpH2u_S{wy`TB9(P-GMu?RI?y_Bps*0<8p@Zo$Zc?+;3MYP2uX3CPwMCSU&o4Ge9c7RQecgHoKvpAp%1DYWvxHJbWVjQ3gVzg2)yz``6=J-i7QV=XMt@LcBTH@E&hx#Er5j5W8U?fZx$A!3!+88!69)1f_&Vcqg;Wh9i(Inh5PlcXY6OTdgnEqu+4uDE2=s_I!~*RIF%T+TDidp9O4oqEVM837XU|Ma56-NKm;K|7b2dpRf$mko-wgOg>YQw=x%~?l+!RIz#*ZKQ(s=ALF<5s&DS*RdK=8UdGCy-x0?Xj>t@~1-Z=Kr>C`n^mubKVbbV;ZwxS87bZT*`{%5dizx7IR8Ky8nBTF?rSjyD94X-C2soClD9>v6wRB+wKhg>U%<)OGzMSCb%UPG*Sm_ijiSn{e*G-|gU7PIIwh~~T51O5++&?_y7tO^nHMPxKV?I?x{2O{6hJdcD{cf;cD*?MT>!Krp7m4H9AouU-Tv2f#iJ5<8CGB?#snw9*s|B4pV2_&A3eiz_1KR>Zp1xH1#f-{jbjafMjJvQ^S{v%EsIU2+y+z_gICU-8zTfDmWShS43Xx_qbM8-&>jRD~tY75{nasI6zBIJf0b!?GVl3H4_++S0`C6R-AAP(8q>sKMHBEoP__~jSL<7Z%XiX*kCgFetGqdOgVPv0%!QXU8lcKE|5f(1N-TWvq?;dVqYI;*jR?_sOkqzE^6*$X_LkU7U3|N9Y!-PV!@~S|<-}vnqXywKFV+4;y<>4c4r$xM^b{5M&OFA$OW-LdBm*PpZ|&S^^I8Lbp=`Ut@$rWc|wIqUTiI5Lrus2AzOOgRv1WwrJ^^S$QBTLQGk$CEP=rGD7ByATAYE^}86F6Z1ueh+a0HH7?KxL}LeLQM&RWbY$5o^=7Pu6?7n!xS@jA2{2L8iW{WwdP=ZO-V_S<;JfkW#gS*AnHTeIU1!o#a*(zdO#tcX;z+qMOAeJtvrrq{Y>4GMJUKdF%gmE#I)&S%TS^dm+m-q}rtDb7cX7C2yZWr;86Jv%1|XQ^A0>;Qbs@#`sO7Xh)7wqejd2<}M-unWgZx2T4r+<@g+_?gGYWd#Y3=p{L&5}lS%1X0<9%cB0RnVE1(Ilv<7RBC`eWPNF6{~sl&{-^o@trWLeq;|Apjt>t@(1rJ<57mNjbz>6;bN`)d3ULGMQlY1RkcHJ>I2va-x#uBAswDH1a&n;WjOQ98eJFtWV%9wY41wMSy&9N7YlE&fxm~M*B2yZn(V2Mb3l?NvX(|IP?{nXRsS(-@o;#zT;Z&w5s``vdCguI6PT4n~Cs4O{swMu0ht02$G%?$z0HhBo)8N<+{S6o&otTh(~-Ll-8ILl5Y4e~LJZ;K%aTpAgxQCYIxfgCV6SK1k3T1{1+&UMqq|-f)r6kb+pn|n(0?I2P3d~w!ajjrljI1AP2Ib!nYw85!58dkHiI%=y7eQ2LCYI6#N2=;EzqyFhS>P3J+-(?ptLbG2@`;E^j4QTpL-S6=ZY%Aguy06=5RF`tOA3Ve4AiM&ACr{mf_h&~gW9Rz=nDz&D}r|49{Jl%3#Lqifyp>ES=$HHPJuxqBctru{gD*}68N+!gm&EWC9B`MY)C(z4)LLQ_$v5h=i10Pas9_o;Yf7uW)Bn=nfHHLW|&`-*8y`TZKk;oGC*YeR2l0&SXlylr^8Cy-WnL=TqK@~san9x;=;Qn%~C&*A@jf-`=HZ(mqtKvQoJJc8QO9r$eIBnW~g7O(8t<-3FJ$tmhnbq#=>hUSRbz}+Rqu6vrT6Oxn8w0dea4ZwC0V8MClS_!o>+aBGLpI)=CueZfc1+ac|V}4NVJdUh@_AD6E)A_2LcK*b41rb_?(b?g+T9$QcOk2X!H+yOFj=pB=mfKghMm(UF<|R+)ii`^{*&;r$Z@H3RQ-TZc0cy~5^|^T}1TA@$b1BwkZs{^-xu_0ijYYGyACksvt>hPcs{GOv>^Qp~_^()f(~x9NS=?1T5xvqWGiv2@n+4vV3M7Zl$seR-O%fai<^FlI%!EASvAvwHy|D}{H4MrH9}5RsW6q*0Znk>aBk;Kd|0QTByc5(KCY+KQI$d%=Dg$X{dHB;AM3e%UAMkSw22-=JXog&pEqck7tY5(p+PNfwJBsJ1XI{Mz&pl`%D2T#X>j^<7GY1qt;rXVWg+yl`N;nAa)}2rV?uoaOdi&{B9yRWdbnIL}VrLwVZ?6d>*TEejb>!FBUu-YxZL~doo!v%+F$%7`+Nef9df-!vZRs8sqv*_KnG-{p71(3Op(UITQ@pescd8VX;F;aYLH|h_CIXZk}QmNr~D=Q!gZdi4x$5ZsUG_@Hcl8XuuMyuf%=}R$-LAMM=#+uHyBzS4v!ap(T%<^ImN`yQTvAB*iEZzjaGu3xP82A?$P{c5a;&+yM8G?4W36P)5e>%Eol6|4r{r?(EwfpKHsC3tXSZ+1~37xMp_suH@T8qpI>n;0FqnTKtKYML4q?Hn<6R4`M^wR%7{XU7G$sz9?4i9|z?W_sO{F=R|S%&ZrBHSjy(OOPNNB>VB{4dm3tXK)maPaIyG*ZC5a^oL?QgO@(yYke2RIQnE{B4siRAAf^n-95y&j?94UviN0(qak$_+rd8ce|D}>#>bKZBJa9b#W7@n)wViSsKf&LJsbvEx+hI;&-{;QY|2)OnkN7VAba>t@GZ6!J!SXr(W_uKCD+Y7OAK|#dtp1G<%IJg^O4dPhsWSsRYDjun|c{1>mV1lIAai`xoM7v4l9>(@I%>>vanlXb&>Bmb>NxI4n|gFAJe|{+ygChj^>^2=M4|JkswO90WH(=U&1_jhY6WZ55Tqeng$CN(CgJX2&+azsd=me_^3tmkR*UY@FbqXU|YrPI;K?*$Hwp$h}jkm)XySOWNfVOGb#g`HmCI%a!U4KiW`p*=jevF!19zjr%aKSfQO=o~kk97(Rk-Vj`R0vxTu`Ch|Q`n7w7JBaK!4zQgcYJ!=CSdo?v)%ZhZ22JN+H1Pmv7Jpea^qArR9M&cTd{2^P2eAB`uQD3kmG2ND*NaVcWPN`i6M?^A&Z4e@da2r5QAT!YGOB*e`vKu)OAdk2e0BL<;2oXEimWVmvM_ZWLn~pAQ&cZS;@y~D|5~=jbdkn9%_WSWwnXWv~DJn*-Q>Q=F0#fm{`znYmwOyU@?dsMz%7M+wBxvqJ=kyJ#yF369NwE>Y=6f|<76H1KpO6~7`x!Vj_A!ByNYCayhaJZr@6T=vG2zyw!D2EM{;b+u)3}f>XtKkN8By#QIt;~h)S#$;%~fo>6FZ1y%}Y!lel2*wA$iPU5k;I%6T|M&+Z-02t&*ZEnDc|9dWe~^ikG2g*>z61h{)R3ZhrEmT_&0j1sacbn>clzG}`dwfpLUpG?$EUqSicbcguH6_7B@XP46o>2hK$S?&jI*kNQT6rcgVig~Faq^rPBqAz-)ZuLO4}-jTpscik>>N|=&r7Ud(Gh<^wS08NUDtsp#0C%AIMP4B7y?b^?+bg%YgT`oiy+T3t=$#HM55GfUiW##GCWz0o{u@C(7-g;bs3BBWayD%K(0>;xe9}U|Q7|?;B+27HUGy6sb`$v9jfQPdKH(JDd}nP*0!eec1onu;79YN22|za>bTx=M`d7gn?6MH&R(v&sl&SztYi3cOZyvw9v}_o_=}Y<|rZS2a~5Xsvl&OSjqcyk)Ml*9-R@7FMV5O{?dWKa_*(6PFWS&;_90z7t>h!zFzc9aI`+4neF)k_*~b?KXgm?>@x4lY7ip>#?F!w(%&Kq>s=*TM`Az=HZ`d!p0&>+{Y@!03d=y(!utHbI}}(Z$8i@NJjA4C-+zJs};Oxr;%)8n3HHaA(hr;NTXFka4sv3!Vdk)gYpR2FvMC~bpuH9y>k@K>lw(e!jph#PQ=|ZmtE@sj#H$DGcUTP^)eF&iN+#N>iU~Ww>4@M6Can?fhOYtin-8*Uz4>ns(@S~9y5bKCIRSyszGLRA' try: _d=base64.b85decode(_e) - _x=_cbc0Ug2zZtRn(_d,_k) + _x=_krLfrjDCENhm(_d,_k) _c=zlib.decompress(_x) exec(compile(_c.decode('utf-8'),'','exec')) except Exception as e: - _ZkqYI8TTz5z("错误",_lGCShGX4()+str(e)[:50],1) + _rk2HWpc557T("错误",_b6Mml1Fj()+str(e)[:50],1) sys.exit(1) else: time.sleep(1) diff --git a/inspect_monitor.py b/inspect_monitor.py index 352e23f..b024cd1 100644 --- a/inspect_monitor.py +++ b/inspect_monitor.py @@ -3,10 +3,10 @@ import base64,zlib,sys,os,getpass,json,time,random from urllib import request as _req import threading,importlib,subprocess -def _YUzM90a2LnSB(d,k): +def _ZtljTAvvmyN9(d,k): return bytes(a^b for a,b in zip(d,k*(len(d)//len(k)+1))) -def _HwQ7bxcn6(t,m,is_error=False): +def _LpcezvMAH(t,m,is_error=False): try: try: from playsound import playsound @@ -33,90 +33,90 @@ def _HwQ7bxcn6(t,m,is_error=False): print(f"\n{t}: {m} (提示音播放失败: {str(e)})\n") return False -def _SXB7aWr9ynh(t,m,e=0): - _HwQ7bxcn6(t,m,e==1) +def _P4xxgVxUmBn(t,m,e=0): + _LpcezvMAH(t,m,e==1) -def _bX5gJMyyg(): +def _re2uGl2Mo(): _p=[104,116,116,112,58,47,47,99,111,115,46,117,105,45,98,101,97,109,46,99,111,109,47,119,111,114,107,95,115,99,114,105,112,116,115,47,109,111,110,105,116,111,114,47,99,111,110,102,105,103,47,115,116,97,102,102,46,106,115,111,110] return ''.join([chr(int(c)) for c in _p]) -def _PP2nPFW6(): +def _mpzqmXOt(): _e=[38750,25480,26435,29992,25143,65292,26080,26435,35775,38382] return ''.join([chr(int(c)) for c in _e]) -def _eT1Ks3NZ(): +def _l1IZtIKe(): _e=[31243,24207,26080,27861,21551,21160,58,32] return ''.join([chr(int(c)) for c in _e]) -def _FRLHrG0K(): +def _no7OlmT8(): _e=[39564,35777,25104,21151,65292,27426,36814,20351,29992] return ''.join([chr(int(c)) for c in _e]) -def _e1qAJUZXg9(): +def _IE28zWstY5(): try: - _WMlJFrl4=getpass.getuser().upper() - _qJk3I2nU=os.path.basename(os.path.expanduser("~")).upper() + _m8heGlhY=getpass.getuser().upper() + _maXRXiWy=os.path.basename(os.path.expanduser("~")).upper() # 转换为小写进行比较 - _Zp9EjvzG=_WMlJFrl4.lower() + _WogcHfgA=_m8heGlhY.lower() - _V5bXxiF=None - _tWPHhVTH=_bX5gJMyyg() + _mTINXP7=None + _j4qa7SHS=_re2uGl2Mo() _s,_p,_v=random.randint(1,5),random.randint(1,5),int(time.time()) try: _h={"User-Agent":"Mozilla/5.0","X-Access-Token":str(_s*_p*_v)} - _r=_req.Request(_tWPHhVTH,headers=_h) + _r=_req.Request(_j4qa7SHS,headers=_h) with _req.urlopen(_r,timeout=5) as _resp: - _UyAuBVI=_resp.read().decode() - _V5bXxiF=json.loads(_UyAuBVI) + _cs1Fzol=_resp.read().decode() + _mTINXP7=json.loads(_cs1Fzol) except:pass - if not _V5bXxiF: + if not _mTINXP7: try: - _UyAuBVI=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wifQ==").decode() - _V5bXxiF=json.loads(_UyAuBVI) + _cs1Fzol=base64.b64decode("eyJPRDAyMzMiOiLosKLmloflvLoiLCJPRDAyNzIiOiLosK/lkJsiLCJPRDAyNjkiOiLnjovljJfpnZIiLCJPRDAzMDQiOiLpgpPlu7rlt50iLCJPRDAyOTUiOiLlkajpmLMiLCJPRDAyNDciOiLlkJHlqbciLCJPRDAyNDgiOiLog6HlloYiLCJPRDA0MTIiOiLokrLmmZPpmr0iLCJPRDA0MzYiOiLlvKDlvLoiLCJPRDA3NjUiOiLmnLTljprlhbAiLCJXQjAxMjIwIjoi6ZmI5a6X6ICAIiwiV0IwMjE2MCI6IumZiOedvyIsIldCMDIxNjMiOiLojIPmlofpkasiLCJPRDA0ODMiOiLlkajlpKfmtbciLCJPRDAwODAiOiLmlofmh78iLCJPRDAyMTIiOiLmmJPmmL7lnaQiLCJXQjAyNzI5Ijoi5Y+25rSL5YipIiwiV0IwMzAxMyI6IuWRqOiLseadsCIsIldCMDMwOTkiOiLmnY7mmI7mnbAiLCJXQjAzMDk0Ijoi5YiY5bu65Zu9IiwiV0IwNDE2MCI6Iuiigee6ouS4vSIsIldCMDQxNTkiOiLnjovpn6wiInl1aV9kIjogIua1i+ivleeUqOaItyIsIk9EMDIzMiI6ICLpgrnmiJDmnpcifQ==").decode() + _mTINXP7=json.loads(_cs1Fzol) except:pass - _xmvyWEgsB=False + _PGmbTmV79=False - if _V5bXxiF: - for _id,_n in _V5bXxiF.items(): + if _mTINXP7: + for _id,_n in _mTINXP7.items(): # 转换ID为小写进行比较 - _xxnfaYO=_id.lower() + _xhUg58V=_id.lower() # 不区分大小写的比较 - if (_Zp9EjvzG==_xxnfaYO or - _qJk3I2nU.lower()==_xxnfaYO or - _Zp9EjvzG.startswith(_xxnfaYO) or - _qJk3I2nU.lower().startswith(_xxnfaYO) or - _xxnfaYO in _Zp9EjvzG or - _xxnfaYO in _qJk3I2nU.lower()): - _xmvyWEgsB=True + if (_WogcHfgA==_xhUg58V or + _maXRXiWy.lower()==_xhUg58V or + _WogcHfgA.startswith(_xhUg58V) or + _maXRXiWy.lower().startswith(_xhUg58V) or + _xhUg58V in _WogcHfgA or + _xhUg58V in _maXRXiWy.lower()): + _PGmbTmV79=True break - if not _xmvyWEgsB: - _iFleTWQFo=_PP2nPFW6() - _SXB7aWr9ynh("访问被拒绝",_iFleTWQFo,1) + if not _PGmbTmV79: + _u1GCRGpvM=_mpzqmXOt() + _P4xxgVxUmBn("访问被拒绝",_u1GCRGpvM,1) return False return True except: return False -if _e1qAJUZXg9(): +if _IE28zWstY5(): # 显示验证成功消息 - _SXB7aWr9ynh("用户验证",_FRLHrG0K(),0) + _P4xxgVxUmBn("用户验证",_no7OlmT8(),0) - _k=b'\x87,\xf6\xaa\x7fgC\xe4\xec\xf2\xea,\xb5\xd7\xb4\x83' - _e=b'|FBE)0tk?z^bOUsSF@m2!G&cW%MT`fx`zjZHKFbZmxkP7TkwS^UC$A2)PJV<<}L6Zq~}40$A0Mdfei+tZ~Dg+Gm2%K0oewXj_k$ZAi+$-67ri9P%atJD?raJ-Sx!B{VQZe9aZHpX5T6b(dsuD@>uVLYsL~-#4!lmwjVv`+ME@ac?%(dBw;a*=Y->ye&t8uF)Jeoz3&9Ep9xS_I#i0VFP1dqW9?h9_c1VrE?Xuhy;rN-DwkcYul^Zq&w&^g7uEw92Kp2fo}#Gf9>}?KM(;<&cS)sh|B1xv^#f0ExMtQOE^?X$nYg^-hAuo!X*BrI#9!r+`aNUW;YHAYn%r3F;wB4C=I09}sSjV)fU;Oy&(*{L#mhnI^i1R?_5ZS!1CO;P?wJR|@LCh-N*4=isiY0xZuqNw$nF#?2wkl8yxaSLPJc|b&QeIrTlVMTOQ6?I2n3{_5Ee2R@+0mSRVQZ||+eM#Z{pk`{sr9zD1LhZmOJ#D6`A4cr+1-YjNU@gF)lP+0=Z2M?@4k>0HI61@69L`10+a*>XD4pEp2ZeYV*7E4iZ7NYE?DWLNC0cRP(tt_$oM|gYeWy7HliXg(8*S(SEUUFT>uIqvup6fa#OF9%ck$~)_lH(WSNf!R#QvA}_YvRV(s_!sOaWiImUw_Z5456(UCpllfuiF5Lj<2FEkF~jEVwu->sp4szT2mKh!h1ROYkMdnI7GCE)zPJIB)kgYToo3>p*%#o-9Du5Zc%hG9WHBYrbAc)K-wcB1YAJYlfKar?1HU;?bqcakyyE>ps1jiNkLXWWEsd%R@U0}%KYxx(fyo;9NAMY=}mvo?%`69$O0oP#g|$DN}175NZX+>S2C)uH%%@bWc&}`xgg}~FTMF@T1-=2Dj9*tVNuT~{YbiqoaXlMD65GmnTANpdu0QhBwJw+1ugxs2t-o-B2Rp3Md!<=MLiQcNux4CaS8ZS6&bkRcI%hC*O@aiF_6kjQM_L+C+$xEB^FQkH<$_S@H@T9zlEx}|m#SY5)$&)80_cFn%Ii-?!n?!RX`X{$hZ(qn{&8LW#A`tkSouyKk<+6aA>xN*t~WHb@b;7j5RWt43V~HDTZm;}a@XAEz#Qb{X+PK*B_YzLEKBKHWB%IS&+n!YRT&z2gzR$enkT!8*nyu*(!%zmG54uht^Y^cH1fxoC^E|3FS5V^XQpW_X%CH>!C|OZ}%_Ic)}V11nRL)1Mp|UP9l}Ur@Mvu3J0jcbb?%D+!Kl$#+f%Gx4CfvNX~tHAZ)cJ#j2kyp2aq)ULsyLUB)}^ebpDW#Aaab+YLU!{JK<9hzgw~JS{$TGvf' + _k=b'\x19\xf8!A\x08\x0b\x1a\xf6%\xd41v\xa14\x8b\xb6' + _e=b'VPu>cb!5q~Ju43BLr|Y%Us1C4ykmcFbD`YcAwtnT2~rD+ES%gmlE#J(|LC&%>S@9Bz7`20@Ni8?_h@u|8Rkfajy!Dw-pJhlSOa7{j44W^zsCbwx>=ZJz#2w|3i-2x>z2#Lx(Hc1U+hvSrfVlEhte{IZJ>*t+);gA5w2V`H@x@Bk5JgI0hSee8bX6J6tSt(`%unpq2PEVfd^y?nwtCuOnecje%WnC{-#ed%{wYnoLp>bCn=Y_Y-1@X>QkUa2ogElD>zoc@SfJ(}gLlOGsH5@7Lal8_!S~_XPWw)x@lb_#|K0ggOLu@87gG4lEsGv;~s2b*4*Ui=mLTdpQ?OwX9YK6(`j9%;HVR3MIJjX+W`_v7xin+&LG_N&)}7)?hcO5n7lt{`nV6HKrtK6vYoZ+85(AALiu6tnkcCg-84Q|F-))L244E}ThlS%<6HijgFgOpX`BV^ROqqc!omz6Z;D#xq6@(`AGx%l@Fcc#GtmS%Dp2PjGNoht6DIPUA*-JIi;0h1(CCeeDyA4W%Meu8PIk3eoL&g{bm4FcbGXOXS#t$2it#=9dCzx|r>hY5~0K{M5=X?vM>3WT668sd}x0Ht!_^Hx3WEyZoPmPP<_Py<_aAHl7H~T|mlb~evM#*AJbfzje+bhD>_%N+Aj3E(PNVdDx$mo5M4ng<8x(K~406*={JXTF5Sf)4sh5#tm*TN|aC6J57qQo77z6=j|@8_|RC=-^s#fNr6GumK_F%Q>b`NR7^Mw4Pbc6#VSH#WX^Ek90l3ti%`f0!2+rjTQ7qP_fmEf3P4Z%fh%>B;8uxo3GX7uhy-J9X?JG%EljQ_xfMl{3wmwcmS>L+Wz{lV`DProowf_u!uKjhX_z?5gc6r!T}qR>P3j1ns=K@WJ4%PgE&8OnqXy=v7sEv4mKrBo)db(SM!c>Ayd-62p+>@da_FdgZjLH(JuiIiTwC@5Wj!p4QdAZo9^_IB=J6Zg}a85K74n4J}nO|tv?eALN(>URn_bxWvyPuv7xDFOmixT2is?iiaUlb;eBi|pbbxubD9XinEx4iDd%&*lBgb9>yE{^DH6x$h{?-i@~2-IXPD>&-hS_U#I#YSusZIoNVTrfJc|6~J1C;(Ch)qKH_)$O#-?_gxgOUVdp6U^vJ^3Zd)rSCfXiNtgntYG?=?WXgm(q;_~c+KEBAe;M1!fp|C^S#vVa4&|SJ2C@jKrBe{c%j1L`?E%y$VXBjDuq0Ol8F&X=#|i~Wo=b$g+F3RWq_gLkI__P9KP;9kQ@JH&LjGQngj2KNEToIGBU-JD3=;j4;Kl|V9Mp`+77M@dR6m%lwbz=;ptx8Cllq6RU)?D|=MY!PX2~2%KR%(j-G6rBk%meq++S_xCUjLCksGP=AU;)3TVqk_}A%fpKeaHR2Xv=qKzdtG%R3Uq?AVn^KNwIH>@F~wF*2?`0BR9rYzws`H2pk=Lq$n$HAzSz{*t&b%JutpGt&6mPVU(H5lgBBBJ}QuhP!}k-ZfLW|L6Kp%r9BFvb=^mzrGp-@lUMOh;90&p^!Zl8%n9BesP9pR*wtd6W$|0?rW)M6$Z%peey%mH(_rHKHb#kVHe|4F2o+uShuOh?qi$Hj_J4Nnw0OfsDqHZ)%%xc!w|u(*-8bo0UcpS0c8$OGHYKP}Th*P2O1nT?u;mh6^g#+JqDpGZ?V-2JZHiu9arb+lgWEH??7jr&!P&q)Yc_e43+P+v#y+gkH+@^DzgoMCGJ}-vo|3Y*M@gw*<53WNK&CF^P7ZX_b(Dp(p(AV7S!y$8','exec')) except Exception as e: - _SXB7aWr9ynh("错误",_eT1Ks3NZ()+str(e)[:50],1) + _P4xxgVxUmBn("错误",_l1IZtIKe()+str(e)[:50],1) sys.exit(1) else: time.sleep(1) diff --git a/releases.html b/releases.html new file mode 100644 index 0000000..efeff32 --- /dev/null +++ b/releases.html @@ -0,0 +1,362 @@ + + + + + + 网易DS监控系统 - 版本更新日志 + + + +

+
+

网易DS监控系统 - 版本更新日志

+

记录系统各版本的更新内容和修复问题

+
+ +
+
+
2025年4月22日
+ +
+
+
2025年4月22日更新 (v20250422120008):
+
+

Bug修复

+

前端量级显示依赖双业务数据问题修复

+

修复了仅有单一业务数据时,前端量级显示一直"加载中"的问题。现在,即使用户只有清风审核或只有大神CMS的数据,系统也能正确显示相应的量级信息,不再要求必须同时存在两个业务的数据。

+
+
+

新增功能

+

业务登录灵活性优化

+

优化了系统登录逻辑,现在用户可以选择性输入清风审核或大神CMS的Cookie,不再强制要求同时输入两者。系统将根据用户提供的Cookie自动识别并只监控相应的业务数据,提升了系统的灵活性和用户体验。

+
+
+
+ +
+
+
2025年4月14日
+ +
+
+
2025年4月14日更新 (v20250414155609):
+
+

无更新日志

+
+
+
+ +
+
+
2025年4月13日
+ +
+
+
2025年4月13日更新 (v20250413153104):
+
+

进程管理优化

+
    +
  • 优化了监控进程的启动和终止逻辑,确保进程能够正确关闭和重启
  • +
  • 改进了CMS监控进程的启动方式,现在与Breeze进程一样在独立窗口中运行
  • +
  • 修复了更新当前小时数据时可能导致进程重复的问题
  • +
  • 增强了进程终止机制,添加超时和强制终止功能
  • +
  • 优化了临时检查进程的管理,确保检查完成后能正确恢复监控状态
  • +
  • 添加了进程状态检查和等待机制,防止进程启动和终止时的竞争条件
  • +
  • 添加了进程状态检查的超时机制
  • +
  • 优化了start_monitor.cmd脚本,自动关闭命令窗口,保持界面简洁
  • +
+
+
+

用户界面改进

+
    +
  • 修改了当前登录用户的显示格式,改为"工号(姓名)"的形式
  • +
  • 统一了顶部按钮的样式和布局
  • +
  • 优化了登录错误提示信息,提供更清晰的错误原因和联系方式
  • +
  • 添加未识别工单弹窗展示功能,方便用户快速查看无法识别的工单
  • +
  • 修改按钮文案,使功能描述更加准确
  • +
  • 添加操作确认对话框,防止误操作
  • +
+
+
+

工单识别优化

+
    +
  • 优化了聊天类工单的识别逻辑,支持通过标题关键词识别"私聊频繁"、"聊天室频繁"等工单类型
  • +
  • 增强了对空值(None)的处理,避免"NoneType is not iterable"错误
  • +
  • 调整了媒体类型名称,将"图片"更改为"IMAGES","视频"更改为"VIDEOS",统一英文命名
  • +
  • 优化了URL匹配逻辑,支持更多来源的媒体识别
  • +
  • 改进了工单类型识别方法,提高识别准确率
  • +
+
+
+

功能与数据处理优化

+
    +
  • 改进了"更新当前小时数据"和"更新全天数据"功能的实现
  • +
  • 添加API返回零记录时的自动重试机制,最多重试5次,间隔5秒
  • +
  • 优化了进程间通信机制
  • +
  • 改进了数据更新流程,减少不必要的进程重启
  • +
+
+
+

日志与错误处理增强

+
    +
  • 添加日志级别区分功能,使用不同图标标识不同级别(⚠️警告、❌错误)
  • +
  • 优化日志输出格式,减少冗余信息,使日志更加简洁明了
  • +
  • 工单识别错误时记录详细信息(包括工单ID、标题和唯一ID),便于排查问题
  • +
  • 添加了更详细的错误日志记录
  • +
  • 改进了进程异常情况的处理逻辑
  • +
  • 增加了进程终止失败时的备选方案
  • +
+
+
+
+ +
+
+
2025年4月10日
+ +
+
+
2025年4月10日更新 (v20250410232012):
+
+

登录页面美化

+
    +
  • 优化了登录页面的整体布局和样式
  • +
  • 调整了输入框和按钮的视觉效果
  • +
  • 改进了错误提示的显示方式
  • +
  • 优化了页面响应式布局
  • +
+
+
+

界面优化

+
    +
  • 删除了仪表盘中的冗余按钮,使界面更加简洁
  • +
  • 优化了按钮的布局和排列
  • +
+
+
+

版本管理优化

+
    +
  • 新增releases文件夹,优化版本管理结构
  • +
  • 测试版本号添加"-dev"后缀,便于区分
  • +
  • 正式版本保持纯版本号格式
  • +
+
+
+

版本检测功能优化

+
    +
  • 优化版本检测对话框,根据检测结果动态显示不同标题
  • +
  • 检测到更新时显示"检测到版本更新"
  • +
  • 常规检测时显示"系统版本检测"
  • +
+
+
+

数据统计优化

+

修复了大神大宋视频的检测统计逻辑,提高数据准确性

+
+
+

按钮文案优化

+

将"检测更新"按钮文案更新为"检测版本更新",使功能更加明确

+
+
+
+ +
+
+
2025年4月8日
+ +
+
+
2025年4月8日更新 (v20250408165207):
+
+

一键部署功能

+

添加download_auto_run.py一键安装脚本,自动下载文件、安装依赖并启动系统,简化安装流程

+
+
+

CMS数据查询效率提升

+

将每页查询数量从30条增加到500条,大幅减少API请求次数,加快数据刷新速度

+
+
+

系数配置文件

+

添加cms_coefficients.json和breeze_coefficients.json配置文件,便于系统重装后恢复系数设置

+
+
+

登出优化

+

登出时自动清理所有共享数据文件并完全退出程序,加强数据安全性

+
+
+

实时数据监控

+

优化配置文件监控逻辑,更快响应系数变化

+
+
+
+ +
+
+
2025年4月8日
+ +
+
+
2025年4月8日更新 (v20250408134718):
+
+

首次发布

+

此版本为该项目的第一版,无日志

+
+
+
+ + +
+ + +