PDJc;FEUI#y{kHk?g2cPUvAkPt9rv}r4$(M@XCF`ZV{)McVWK#T+R_z
z+4*}()CtbTm$0u%0i~&WaVBOLGE&RZ!8RztSy-UxR+t@`H2x`9QS8l#ob{J4j=Ekj
zPKIyV=@~2)J(c;wo<Mk}k>Mdj#isK@oz6Z&V9hhxDkuL)Co*vO
zZRQpAGs1$%_op$OK5`h5MO@HgCroc&17bU|)`pYgL+P;)HnM-XfrcAeLD%1umwM)R
zd?3LRA>+h2VJT933x=A9+Hd2`_TH2!cnYqP7C)cQ?GXH!m63PvU0D>*Vjc&eyQ64;-RJD(YiIvH2ywJN8-bs!Hp(p>Q&H7CWWBgmw^B)&hR{Wr3Yh^%3^3{LpQidn!6o_4
z_yn3`-S}`;hf=O^5sxC+&?3SUiP1TiHVVMXjnwG>6(#
z^1I19M^+Z6@_2`ACZD#U-){fBf3@0B9=N_bvd7;1c8DfR_SM=JLH2dwRb;R_Q1ps=
z*Wt7W`E+Owl~>#G5QbQ^>mA_+zW9wy2fY!lmubaMhazkl#c3O}_j*&e55;gJ4BP
zUvz9IY~Dv_kh&xOk4Z=+8IgH*{)K=05m
zHXXB~hD&%$H~nbjhuvtG7B<%lgx&3tW|IHeZ;bcM_>-Ip47g3t&I`{8n_bS@VMC7t
zCmm278NUpqY3aDSPcQ$gzQqGlTt2mmqlaZ&?ElY((?u0GUT5Ad9STxEoU}mm**Xxv
z=M`?Bd8NV8B(jqAcLu$FdfvbgU*e0hRUKjKQTI|wE;>obkp=AXZh
zwR5kd4$q-Zyja-lHHYV%IhrYK;icoT=Qa8vOg35*+V08t1`c_824*z%PbwplNM330
zdR1GB+p?Y2qQ=Bx6o&+|)mY;ho)~EP;|98H8DCxeye#k2=QuZ)r|I4^YT12ZKC&PjW@Xx&xu8eaTlQo*o;=)~AWdOqze*GXyw>_*eZCdt}Lh^B)M&
z;?qaD7iV
z$c@m`OI(4KpVb
z-CkVG&e-{+qm|rzvduH1U}&DO-=S&G&s%+N4?ZI{n-Nn@+&X%G^cR|TKH7RHVNi3i
z>8;J~I=JB6APF*lP?zR;4Ow{=$icJE{&m<|rUcXy1S0ZXVxgXXNg1+Yi$b_a&4bP5
zuoZ6nj=j;V!-M+|dp94<+EAR^Z#WIwPa?>b9%#ZsP>Ki_om
z%)(+I3-oRG;?GBkdMD8ES64K~GISftECNssX#8laEU<6z%hPws^s{-RhBZrv1s4h&%eC8{tPy5aw!KBdlx*Ow`+D{3X$=Wsvbj_
zIHH9IL-4K+QOKUwih}%7T*}Z8jyz^F!ulHUY$N&7@~>sUL9M7qJQpTy_=yw+1%E+!
zPH|Fovdj_v5QLEQAA+SSKv57~RdL7bWgqlrc*(W~NhdFN+3VjGh$e{3yO4*!6Vx~N
z4ComDWfEI|pjN)m({#U0$$F6}Jat6XA#-#>a&&SrD@K`<0nC~zDO)LU;?$=1ZX~i6Y{i2wJD02K;p_5_Scjx
zD5R|KUD`pw;0MrHd)Bq3^!Du4ucD{1B*uX%Cc!5zSkfFao}|8jXMLdhKxsc(&Qu>wUG*;5g1rOhSyOoPrd1cN?nA28@ULQgZfab+
z`_Q}E;xeQAZUzHC-{3;*?COth`TX;1YU=YB6k&XjacL}BdnrXq`qiOgi`N;1qTje^v%qdHq
zss2d!KkJQt9pg794AKAwfiz?5lL(B~R)W@6)WM_PL%KJ(3Ks6NQ-T2Q!IBOvLA(@O
zn0*7@uYl@MmruuKr(Vg+xq(31+;ok8kSuZvthy&w;wnARW|6}7!oaiPec)~fwIQ6q
z!L}AMB^mh)pV4X_>0DRUhz*O_U1lvPSqRe2<_1Ir23!~XtCL~1F_22TY?O>n%!FRl
z3?Z=ttyfJf2}zYl#ISNoQe0wRRC5cTb~?`P)IOpc8`1)pyoY(VDfs%lq44H1gdP9sgu1<1^gp1CLyK718mG
z{C8~jpIxb+xfF}E{Z)`0jghi1@}5MVV@XIb_^OGH0U#cl?e3d$lPHo~sn=bs=
zn*1g!hR}gtIX0ybNuqh17+-}HU4gZ3*cuvVtkf{0}`!Py3PMt%WOU+-dhZeeXWKPziIH?r2PNG@Uma)5{%0fQ>vn-%s98O7l21>GuuJ
z&*Gt41`i2gaVmr>Y!2G6IW6hpV`+I58D%qdBwTKA*CoFMqIO2D@>(Py0|4P(;oXph
z^GeTF=4?v3itwK$GmayIa$P7gY;sN8P;OvAYeA>>_P;EY6R2HDLhqcp*e9+JpspIP
zKXo*?pfcFr4~qCv>zdeTKs)tUpI*m6
zH|husH^$FvpA|}YGs!k?{B`HE3tOmkHfw0|39-}~=2ZO`?n-`fRF
zy?U7pDSR86SL?f}+pwVREz_E6OLm!5%oR;DoK~H_2=%q-VhdsxRyK@-@Wu@?dvni7
zaDE9`=C645ts?zIY?Aq9_mBo!B303!Sa}(|!FQyjwt#l8E
z_W?Vv_SU`a)aWK#3G?5@wg1#q&&`4kTUifGO^`gS)!Il~TF3}Kh)sNJLjgNM0S4)*
z$M3?(pU-Y$rS#>#slVxEwC;VEPbN@uC{}Sl35OtpytN*6E6p=FV<(+gT_Tt-fq8Pp
z^?5(1-LaoeJB?-7opZEM)kTkOI(+A-WXgDIJ^84s{esTOF)$DE#q(+@D+6(4unlak
zEe}@liNb-Fm!AtOT+*2;ez66z>w_;c<27zFWPXa4~
zc?EGvo_8(v#K4Hi2yE|6sj`413h6`2gnK>)$%O|U>5`m_Oa%746|gWHjQ~)fl>03l
z4yE05tNWjz0d$R<>$GJSvI%W6ewMgnJUfV{a8KIkOHnTXt2SHrM9*T>H*T6pV(68H
z`~STR{xsbp4)gm{igE4V3Rsm}Br~bxjpP2^W@9*Jf{D2gx<|Sr4BP
z0>`5Qa0U2s0-&OXTs;@7DflZRoPbnv6cHnyCeL!YLrME63Dup4Z`s*S`4j
zC`meS-;+QpWC8~3W?%pj%m(J(%E5%j<`U&DQZeDDx<&8}5SLPxlHd8s2Cl2`&fmz`
zQeG5aEK6o@fI`Dhb~#_Z#tp3vT9Azn|&3${)wLTUd+JCH~r$Ba`MtM(o|_|O^kQu
zb3iKMA(rU#NEOgX(wGoo-kvCM=t|f)Yi($D#)8Z5DizZ}{FE;gx!wi$oz-w8IV8Ld
z92)P85qeEQ1g+#&wFNbr&22K~VGkrB2RQWSk)1{~9?6B@((2;aY49RfK=*?9hjDhS
zq0tQ_f_HSyr+1#d3N_N8kNG@Dc8~x4EU@@jvbR^r>>)sv3*8}mJ}*@kQ*r|;@BaOV
zc)5+ABry^yqMoe2Tm|j>l3k{I?uTtJO#wYdgM<4a;RF)qfwNcxo{h!U*UhAf9pz0Nz0q+;HC61DWvr`mGL;BXpH~clF0N9E|M~%-q+ocV
zD#l7v@9~>blz3!HhI{-)fLcDRZ2?*})~JcQu;>~zR{%8Dyf^>(?1~sb4~qdT@m~zQ
zHzr!kQss%7%wGPU)IV+KU(OR>$}J!)#<=`7_dn
z6)GoKAxq*Y4xf(lR^0g{+MIK(sgkVy;LSsU_is~aT_{*DXyY(c)?PVQwd?#~3Mko}
zMmKrtS*X#`7=*Sf$4$YT|IYgyzIwg&(s9?-bjORWz0k8TDhEgoCZW&ricGE;zX}44
zs!CfLQ&_~LMrDYfbnV9$FvC6W&3uICZPcGji%*U|*o?1iXg;1gtb
z$}kiEqra)H@W{e&VYM8cvln!jvnMzE@XjDFLfJ2%lSI2Qj+;wjUCg=~Tz-1eA(SNk
z!J-&!HraTRaHnCcI~%=#E4KraJ;!jJ=G^d`V$>(W!u3ZYd~>0ox1lQe?!dC)ut_S&
z{gmtpj3wc0v783rljP(xCqcT6oYvc^Q>%vmqO=s19(M2X;<8@S%~O6)?2%4x4?OGi
zikzpAr!qP_EYsC780SU(Q)V)|XmomGNu|07y6DquRC#*j4xgbnp
zf8LRRJw!!Zr84sQVQUr_rEWJGPKV}oOY>OURbxx3YyB^i|6Y&c^k^M)bW)}CehC3H
z2;67sg~B1SbA`I+?%i%PuSDIwpIp}1nFJt>LcRr|Jv+@1l|5O@0?>YoTvh!yU!6CM
zmL&ro3#Y)b*oNMJHiUN+eU4F~MP*)_Ikt*dCl4jVAH174K+YHayey@H!!g&o#^%+j
zGap^+W<)^9Y8f8rV!AMRfyX=6QTbz+g_VxadYqr;=~@XPaOh{_RvJ8K>uaRay}l0h
zq)7(4IPb!1sI!?s}kCS#Zr#G>6CM$xbNdpv~IV@c@X`pQ^ftuOS~bhiJzfWP>1Z|Pbw
z$G?<>P7j~`v~>!3JZju=Exn{sV~(IM`%;Uu;i)c|8z1>N^H#9GfGWCq#TK0`JPNHs
z#vFadcy-8$Ni6SUuP$%U(VxCvf$jE@QeJn5rnep0|CYjKulLVteKs@yp)%chA6~jxNaH-Ddu=c5BvmJxWP1edt`6V
zW7OZ-^~Z_vjSB8;jrQ2f28`tc!HA5>DK{>FWVtrGFz`beX4Kw>vPR22;-fD(4sTiE
z-}Fq*mlXrF2GNA}Rk{@4bwv1zT8hLynRr=mEO8Cr?P`_Psr-;N!3Bvub3xl8pK0Y4
zz*mKR?$qjP+SyK_sQ~q@f9CXmm~S>2ll6tmgbPW4$WfH#!ZQzF7^5d}sKQ+f1<-wp$HH
z+}3_i6ySZ=ij*?acf{D&GO+sVQ9{^OYHg!2qr9K)m-hxx03(irHuTgX#Z0WRNdq()%okOIq`p+L35Y=dB3fRf}X
z^1qC|(fBTn)2bA(^Fn33^~cb|{bIDgzl=6xpauzTvT=2-F`=pd@OCAV>*jC_NiqH?
zbLo(ESIK=vBiF3d_*Rv8XWdQgf&4G7WFtk#+T>az7Z?VHW
z6Fd3Q`stdl3e#F2d~RK^=}S&UQFSg#4O8Rq$o3jb60qb=WyyR(E;*Wi%k|IX|QiJ1T?-$jcB*{?iAo$4Q{EpkM1;b!Dk`odEO~
zT^YxIA>nZ^#(Oq7kLZx9aG1Vl+~K37L<|-Y+qBeD^!3Sjh1b>NrTUH1i3B7%8osXD
zKuldv4iRlIufCd9MLe*rU?=a9bo4o%{#DO$Yx-~W9~M?4!AmAK+Nc7Tzdo__ASN94
z8Cm%k+V70|De5CTfG;BqexzLHatyiD=5xi4@155Rz@y!kXjw9f+ez!1N|n9$;Jc~!
z4VXPSMBe@HZxmZSoeo#UKa@%jbj?9Xu+>45TajM>t(r6P
zz*mje>`hcNS1iStknJL{IXCBa{+`JSC1eJ{hSXHo??-eHCkLo3Mc*uBWdOJU$1Y?D
zn-UeQb3w4Nla3C&jh0_VgT*gPOyvb=9@iz37}pbPD>BtPib#x6+4D%FA{S5VE>xB@
zReyHU@s8fqfhsC2u?I6@s2frt>EN7C?1feiB2aWw%(ur=MpLQgx1eqHB=T_
z#$tS?u|-zKBjLs*-EA+2Sd+?c|2O6iaWy=5PkoyFIFH))4TPCkNtE0OEsjI<4;V9q
zBX+%6i~XalCgA;jjE+4izLC1Ocyo;!)^|7z;`Dj+e*&($~D0D9c7{LOds
zUreQF5aH%~y>LaYmPL)a{NI0m=IR!|OIPOm%_XkuudW+`*mA)_8S;U83)?s1!b2KXM#a>darz3PDkg0N
z)^>%VTX_hGrMrdtna0EW1L3(bI-1u+08HYX=fSHUIjFlgWXyt++NR>wbd+t+z7rOQ
zVM6>!2X~bVat@O46Tk7bx0OYh)O#QcsBm!KwF74AV3M
z2{rikg;e9;KC0FnC^&SkExIGhtS`FK38)v_3C5t{m8V9M|DXz+;=sp&Y5|XVLK<7_
z;k@$?Ul`-T{Of_yp(3N-^sZB3sVgUNO}PecS%qxSz%;Kt*iMvbZ|bnIa^M9t^1n1Q
zeZX`H&{P0~LM||U_Nb(&I9OQ4h%OuI=hOxI_fQhZ58_HgZe6U00o
z+DQflN_rCt!OwyA)}>_cpI76Rl3IiQSkzq6W+|8o@Kzw`Yuel}QiQqM=abo%(TAJ2
zx$|kY<3`CVlvtL{%^M1Qi>mt>Rw5$fU3>nslr#Z|sNtur)aSQe`KN7=VG$d;J88D_rLi?p_FiXUWWncsE@921RCZ50>MZ`g4Jp4&Mx|mxWK#=D`tlO;597!@6_ruBISEh-l^WR!F+(bG
zk7Rd{;LXNmHru&jJO{SPYqRV+gs^Zp-r7gb`Qx_Yno)n!yy^}2>?{6(`9MKXG80D+
z`lt@WaEDvIgw2GB($M5kvHnbsA6(};O)RqffhjH%tcq%rZTeEvznG1+n-_fA-@@#q}X*W#6|Dl-}g^MAk>?h|Wjf8FfS
zt@-12Iqn8Ygv`i2g4mXzhdy_*Vgs&)&3}%HK0-Wz8wQwXOk@;IFCaLMcKBUN7#@(4
zH4D35zWQ`;A>pC*>^zc|7$rCN7Q#X0`yg~*frML9ohpX^d~m7G;&`I0t6@Ohck4po
zaPV%62}0zvGF{6go9HL^qO#_}U0J{-b}koSECmyML&H*9fE9OE1{usjNtzIda&tBk
z&H;lFpLe24JD~`(`+-rS39L-L4+Ecxf;#AL#`>80fYB|$As8%>Xg|MD<=fi3K%#A%
z+dS~N(PFLVb~WfJ)$(Sf1@Z;HSaQ*E`A8N)U(mqVoi>Mgr7ZoDV^!Y#(j~0ir4i0Y
zck#Mx&d82|EVt#A9dlKEftZjYdEh=*##2Q%UyR3m{bVuRWQh5b*~r<+}nhn*nc5bq8iVPV*rLJ85J&g6xR&
z!z5Vf){Bwa&e05rgd|rNP6T{T{P^C*U^CiJT9F=8F>$7t8DVkIa7iGiHjJv0_(!H8
zIUJ&8@8$0dasdbwmc!N<%{8Dzq?UK?Es^VcH7aY`wQ%L)v%kaYSKJAa=lot^3@5`E
z_&U7?&a&|};iZxIc>f`Lu2c5abaZWGZ}@-={8mTBNtSe3FeNZ$Lc7JQL`4{l0DO(&
z+Djnb$-#muM~Y>96Uv?I0?tr=YcTQgVPNL!oc?|hVmR2$1_bw?jPhm}%;-qK3pX1;
zkI!iBq|p)}?;=gmCcb-;97`TrZU!HSfV=h6JMYf_};{
zrgU-U$P%5*W>gbE&dBv2$avH1<;G{oVi8uiyc6$LZ{&EPgHJP2%P^CF^ZBJdDO{b@
zG3rbw$#N@|tm}w3#2z*o~&VwJ$K<1rgBS|En8912*(u_b-+kUQF0yG6D)rqoZ
z9=TFa%YJ^Z-J6i^iu8
zedhAeuFd;~|P@GlT2uxC5fS-M*`^qK;l*UqHF$`5A@$>c=4i9_^
z7=KWEodFZw*(Wjda)$-1v&W30g%7M9B-*4U+60jiPB6Ip!2LQ0qxY
z4rKH|=0TpxYpp)fNNEkK-i$8Qp~}Jph0gaQ!R2B?7j@FJ;__mW0u&&p`Dq_;g@Bsv
zmv3VUjT3~0M&Xv2cra5W9G>a7$a#wFp+xe|&W-!Rr6xl`$w3-ZUX-3H@4`C92>I1P
z4A3Ad$5EG3u93Y``7Z*i@o_defGBn{^y4z_xMI&?mnu#&1ZA1B}==c)nY2m*DvrCJ-ndG+;OZU9Hgs7R^9kOq@~p-5y^
z%C3;wroM61`Sw_f&t-N(sA`IFIGr~>b#;Nv8-2n+SFbBfYy(Ul=sQi{Zhp^
z-I{(faF+`pB3)KTd7GNPxYMBy0C@$@{qTHY+Z((Fj(Vm)$YPLry#EgS%@Y<^J*iGB
zd!uHWgcfEm>Ll$MjPt;TeSrPe)*Zk+`kVu-2hCC8PZHwZi~r-wv*a?yxF+UJ8LLXj
zKKqAtxT>v^C?S_(ZSEBPVEVz#<@1*s&d#`PE2xAE%Gtawe|v?TLc-hz`iM;XG}%I=
zxHbou1_;3@LU!e}e&QF!AWPK@9VNr)e&O*s;4O7N2aa4Si$$i+G~1$|Wh*Tr?bcG9K(z>n1ka(v^%jtt_#ab;uJB{96)2A24nJg?bxPk}!{RTHxxrk20gN2%w;l
zoxA|Hvj2qZ_x1qTaJ$AVI@Iw|t5wW$R7OCI^pDf1rQw>qXyabDfnhr(twtT+`s{73
zkU(DStJsTYkrESZX)2@Cec7|G3ZZ~DDEAU}iUmzPWaVmKsmStG)&7KPCrO0^>Tn9&l-ndugP`>fuLegX2Kg^Ys-G89>irYUI;z
zd?1u9tv&KOZ5dQ5qI}Et00YkXmw-PGxEyo-I~SaK%P&FloSDjXbA1>U_*kcqn7N6R
z>2je`re5AND}qHeJP8;}uk(}v9*1fZezaY_!=xX4ZXml|r091fM>3HC!~c|Myt8L9
z%IuVkD{=NGmC^#B;96-s5%H$hE1$lyO%Lyfe6hX7b2gv0H1j~sI4&O2=RYD%=-!HZ
zX}dNB46MW6=P4xD0xoG3(73a*NjZh4`7AK8(xKQ?M3}OkmAqsxzPzsRZ=bx4M1s5^
zHyaukr8&reG*me6daS|CMJI+TBbIINgX58ki79c
zcP3Emg-m>o2V*CE_KG9vIgK1GmJhL!7{v5Z=j*~GlDwu+;TD-aj)r$M_PdqE-EJQO
zvjBCrKXkN!!gf@n`rCIBKO7XV;J(Y7ilrvXG}rxG=qMgN3RO!R5CfVC1Mg?KWKths
z$l5`X3RL=)DLwH=7f*J?m#6iM_e1eZPSLJ=!|$wm>FSXD>uBKo90_zJ?c3u0q7g
zpc+zc(~wp`>K`iw_tTz1pXdCNT`T@RZyy1HywJOW=cw75hJt&p=?#!S_CsmVV@hDYa7*iA0B
ze3#VHp>{H4hSD+T^ErV?k|;0%k^(c`wa}CC&wmT|wMO&6^xSXberWr|!vtcQ(U@je
zzhFL|t$$%~f8rva;>J4fXA5wBT0Ay=ckLZPjU{TP+khM6N2AcH
zZ>8h*i%|JlL^Qj>O!^hs{fdnM1G@E?3fM{)!hQ2^8bB%KGEi$w2TsPO%0l?wy^=9~
z@gjQi49ndG)P3dLBHeGnkC?ze1Ey1&Vb{Gojx6rMyz#J=1SQ%w|BUtMZn%GK)H1C?
zd)=9QUH$gw_{ju1?mHLz!?N(0#L649OI;6QCCOUu`~2Oq`>n2R@5GYVif?N!n;pMH
z>}rtW0AU1?As;mNdb}&gP*2g%y8DyGRNIf<)BVus`VVQX$D+W;3_y@juJpLG32m4c+g|B}&
znd>_7o;#f?JBmvn|AerRnP^@anS>S=nsVr{-L
zqr|_Wp)9U0ZcR`cUyzb(YBoVs8u0HEYC9v7^}fe00##wdH*nwq{VhaXn44!O6jmmM
z9|s9kwcxAZM=K`;r8Jt`{9{Sj;_(=sZ4-zj6ria954N%RtCYHNZV@4Hm&fJzg^N)C
zn2jx{1WTf@ggX4Q{J4qmSaAN{L{rHxZO)f9XXPqQx;VOKl$ptNbjRsot+d}yec7H@
z>3>-lw|%&|LxE`|r|QmNW+oy)@&p-^yt4M%`Na3H&cSt}MjV?_2#&o*21pIXUiBg_9v2R0V~H*4Bjj@L`~e~5HM(he&C_)~eeFG(IIF}d`2fH61|vcDABN;rGY
zgX&urSrIReGbqQ5Z>B&Dn1KJhR~e!UQ^~bz8!L=>X&j=m9xBJ$&ZHx$KTG&aSAer(
z{hx@yLNbfX>3o>9!Y<2u<9kJOWJjCTu)Y>i6TRnp2n7K~W4AlP1E1&+u$6FrnlB2e
zP$s2EIp-qP-UD}nXnT@Nm4bk)P+|*W<|_g5-(oLeWShS#Je;UoPzd&&zAehFth=4E
zF}X5pLeIl~=>gl9Hm6J=$>QQBi2fY=xp&_EZ@eUh__Cx3JRFli>tmN`oA4_S^wy-sL;Q6q{t#q{~uh)
z_Y3ejR3j65MFj#n1jCMb5(QoS+=1cN_0G-y^ZdAcy=K**J^tTN!&O?LosZdux`2ZP
zm9%LalR9v80^>hxYmEgu8^(}7b&{yVp=~@X&Fa~+hT@Q7=)yjYMD?^C;NlLTLm`L0
znV&`~yCJaRh;kR-z+;((R=>G*8>
z=4h9D<=Hh>EF0{EFKpzkEM4)#a47RUdGC&X1k70e{8P?~5>xTFuFsD5V7?!1h3UiL
zD0)V1-&_M3flQJ2mjY~VQ!a_6=y_t&Lhs5rfY%G~tPWK5%}T)iJmC5c!AoAGW94+IFl@q2FGfT2K%80v`e!^p}i_<-6Qk957+L?acl|
zm(HU1$oEE1zb74kwo8_Stm`Usp}*0b>kKh><|!+FIE@xhyjz0@bD=PG@ZC_gC3YJw=zP9a_chn8O18sr1mnCZk)c<-q>$oVpwrdX!
zf^s;qr$EJmn
zXSjJ3zbp>A#dqg4`49yp1bRDmUS(ByqhCLb!qU-9ER*yCd#;or6}G
zN@3r?TiuAQR6Zpa`+SSL``6UXHr>dia+*cnd=M7qvc0W8YlG2q8SkAdWv4BH?o+kj
z{2HO@SS`zkhlowFL4L-9`m@&|kK4B+#&Oy!X>$jz+oC@}2iqIe`1COYC
zf^Z0C=@8LrlEdx4UHj;V(-BVAY{2B0`8s8}#*|OVCx~#vHEd_0g2kXmaV}$6c6yLA
zJ(h&t>|HoNJt?ps41m4i#f+_;msG!waK~diaQ5*ncw?lbieS#5$6`VW6u05@!t+RA
zDZ&JC{#sEMQBx07@ZU#JaX8cF<}&PPG<$Ucw=Z}upsXk;N0=j=t*!TD0$~8fLlh3v
zbveVP*95oa&Od^l+g0hMOnb8qZfZSQQ;4)@z10undvVxT`Mq?s+E`VLb)IcO6m&f!
z+mO_85gk_g6?rr-fKN0X;RtanZ~ObrIAv9Y@geSI>&EDIQvj;imfb1KjqJNVg1g8?l@?<)kpO$?IOu1Y8TZ^HK8>B^
zx)vAmT)s4+?{uJB=&%cc9KvyJJH(h1+x&ibJWP1XlGpyw1JQ17^?VcwHd9ByKXH
z2EB9?KGAVTk-k$t11qydJ;!JiH64^-Ag$oNc9mdCZDwu3AO$DQp~KpbE+Ho540s&c
zzzFz2NPZVp>?g{y*REwx_#pFB+h*pac4-EFW3I6LjC9o*2@+r`{q2bO-O?r;Ek6*9
zR(lfF43+=#o>jJAU6{?F)AWmn^3crGgbyI^f5CJz$xQ>!&Dw@bn`7Mv%%90D$}OK4
zMmFj0&kmYqgl5MBvuR{4&BqrB65liuWP75Bii0@B^PT6iwxH1+&`$1668YSG`T&a~
zAbpD_(_gb6mwkjU^Z`7u`O1Mn@Cxa$aPq53Yo-yK@DIec?E$#gRlm(N*--zae;s4
z3>+=jQD^odOj#kfso5(K-6fXOl$w%U`u&VLhUp2{%4#lRbffSuANi&^UI&W`jrB74
zP4F5%vAfrw^efcVIfA1JFIZD=gO(DPawguW2`qd-<(H)lFKc^MRoX&ty%r}qjq^L#
zIv33{8|^zSu_)I&Qm8!^8ho>7sEJ1SF#QC3T%IlR2QT50&vzw&_xmJktcFXf0$-J${AX)d;Q>r~VB
zLB55L95;Pbpm@vg2eOayHR<4+xmR3+%o&oKJVM(*pSSTs!misQJ8^u8ja8UARDhmU
zLa?`UIe)V_C2fuFUiA0zr6XL^{MuM;zSP1+zIJHe8;OMktB_EKZxv=F=;wsAzO&y*
zEF1?7;A=#S7M~yw;Wdi^d&js4p4l9eS;wkMNy&MH?u|zZrAo^q(@DQHJn*W})D`KH
zNqUrm38~&arjX$#Y0>n}!V~Ma0(tqqV;_k^;EXo7M)a8}0Z8QaB&U}%o$nT};KxFv
z39u9oA5!EVI!lk~-@jy&O-IS#pZrKw`118dxI;z6>wr$UDg-K?DUq0PZB9&ga#-(T
z{|dB}n+qQa!AXVQC)!lH=7-8BaoXL5rxLVi?m+j)KkL9Mbq`;IPp03W4G*j$;)=)c
zEQ0L~=5~TX_F-wi;ce0fmd+dW4847)&z^9Ydq!E=XI@Vx8gID7He+X*E(b*sLR_{D
zv&@W?0tAqT!2o#e&O`qIWa))wBbtozH_FY=X$ynRku?0ege;m@^XOlzSvhcrZd~7k
zo%d#VLmH+7Y+Ss59tet2;`BJRu&gx6%E!QnVE=*<)D>X-X+Ua_rR22>T?Ce&qbJMk
zTS{aB$n|&EPO?7;DsHiP@Q_^dZ=dxoJ#e@Z*zHx4H2Z<~tc)rj?O1zI&I-=eZmlSP
z|!*~VhBX2kOFNf7WeYiTyd!z&vsjX{>5nPzm$c9w&9ZR4zc
zT0L8z71_R1?FlW402X!=m%|+vkgmP1W^SzYsD4w;$OT9DxGA_doNQ{H)D*125?e*B
z8O^l^BWM{4a@M8;D0?dC*nM^h-$)cc@eqlt9I|T6xfZqDwtgf6bsmMt0}IecWjiM<
zJz<9`E`PKSq?v(gIxqvg_Y=}8yo0_AGqYTLbqRjc7Rc1(%|4CM!n9)>66i`?OLiP@tu8T
z31rm1aKh8SX(1T{Mo?(uudK^Pt(
z3x(_b0}AR_Iv)tkA*UBGKsA|hJf%be*B)np=|-N)(dQxL6B@%zsMj5zPlt!R!pLd_
zSx$d}1R7KAQ*Z(j!;WM4p66P+tuXXMcG1iVJE|MuKbdJ+B*a+!rXIrSd(9@&f~25jAvE>{I@OtSxu{syJwS1?r{v
zFWsGqqi#ZFfdqZTgxEox-VN{1FT4`WZAlu?7m4z1OqOejPGj%=MPrhqynr=^#=!|q
z7-e1!gV)}<&^F&2!oA_@GX)4bUp9CUVH+y}M~cg6eFB*v?pC|Luc1q^la+*SZi0hShG@r=u76?x7TC-@Uh$1+PKzo%AM#;SWx
z&VQuM%r*kcpV&67@fgUK0CV|xL&H3M)-_Gxw#qy;$jUO{k5;6&>^YN}+Uar-PoR}V
zHEx-0D(x|X=x?by@QIr`%AG80wZt{C`7?h`NL+Qv@y*GKNQB$dxg0f^OM`1BvI#0K&%v8uUC#UJd!q4rh^3ZeSV_kpBoyT+9
zmjHK?7n~?>^hp%YuCyyprzc=#Ipt
z{vs5O1Ori6V`UO5sBQ=&E1MoV}qxpID3{lQwY1J{4Vzm91}
zc_<-@ivNqjQmn9-DO_pySn&p?X&I)S7LaJ!OV9o)l3s&z4v~=25FPa5S2jfwO*Lkk
zN2l$);#NjWqc*Ve6Dve3?n*!BX|p`?)`%#HI5ylj8bIbSeW;^H49(K`E^t}*)zonM
zWF}-_cjRN6?{MX{{;IV#oH%N}dsL$lLpQ#7#l_neZoQx0K8aMvIj>FCt%8_|^oBE1
z+Pr$kCeFT*ebLl0%&Ym%+569U3H$HMW+Q*c3dnU`oMpS{IknLRJ`){i{DVwKn%dEu
zl-V_!DrTu`y
zlQK8H+F0YC%4l9eWTkXfVi{DWLIgs2;UMg${>d<+GvvGG8qDOC&@t|;Ftz}Jatkg?
zz>D=ox&XD`z8hMwR*cpS!~)NgktWq`R;p|h=+n(t;;O|QmPXU9p+)9Y26A-npVegk
z38^H&FQ%K^_E|UOSJ_fGo$Rjs^~_{`n-L}hLeEFO#Ir@(wU4ckqzQmi4;S9Cz4)br+TnsXE*YCSMZ0HqCxl>jBO
zN<#qmIWHv5dG?K+(31C*R#f^usc`+7#D5+}XeSV6wtynua5=xr7w`N5HGh}u{^+xR
zn+n8E{vMwUE19(;jNLsdFKe6ibcT!oA$a8#d`NS9&kO(+
z0d!T=bcUlP^}4)2JmSC<9C&3vxyCj+`w>^UMU4)^rsPa@Wq4}tpq&LKB9iunI9Be0
z`pPefeitB$;`&dp#q}mjmf;@b;&yS~>w2g+ZQ<5iC{$(XzFDCHj?WFDv}IzClbX9P
zI2!9*`~sax5u)-P{_4#yd0*p)g6agQtk9Amv$!Z;P+cBdw(tcmYv8soTy9WsRrONe
zUiBm5RYh~KkOwBGVD>Cw*3rT&0797F9LQeKzQe0CAv+T3k4^hzo-bSFU~=xEKfAv-
zt=DG0uiNa{>kFLlg@2h4rr;<9FNwVcFAbiRimv
zAh^Q-eo!=vtb<3|aMO?q9e%8Oklc(zI}&HICliEXlcpc1)u2&@K+wRJ1GM~aWuDe@
z(R>&`jKq}qf#r=Oq#J~@9%{sBU3xxw7MaGMjPJCUKZZB4`AJMKf08)E#-i}gBqzW7
zR+!)>TNk0a)4mz!z;f|&j|mi`(2pcbbtHw&F2Kc>OgJlZTs#CWn4pr=^r
zr(|tUimCQzM|T;Ce~bbhZc1KZanm(t48(#>VP3-rdiJJ{s06R)wF46HYuy_kG1eE+4LLd>o(R43i&($lwu|l*ED+)HJi`Nj
zL&`@#sAm~w#YgL`v*uQPgI)EwE3>8af7tx>p#&tacnNOp^~ws!H5Xd^f7DiG`QLJZw_y%2ox
zM_eoJipNYz7hD$yE0HIlPkX6WR%>u(<=C^E^NWK0lIUVJ^vY$v
z?7P~lbF{Lh33N+?^}R5^?1-Zd`Yl>ghB(pvYj$Eogazn10;+gdLsyYo&ai?BKOw6G
zD+s>7AheSimajmI24xv2wf3KVbhbDh+g9o~RumPmYJI`^13BGBL^KT^4EIQ(o7o*r
zWv0UqR8ISBk-nc4odSAz!EP4L%l`H|RfL(d!NYmw$~^46Gx>T_Qn`8W=h+K`6szHB$O+
zcCw);YT&*Wh_4byA(i|nHxY9%VYp@<3+4N0D&u02hch~letj1u`H$)$J
z+;|O^d7P%qKhfEa{45Y!Z6@CXDb(I3cfT)KUFHR8{LKJ480t51xK2@I(U@Cw4eUlh*6M9uO5EY$TVEdyz+CmENs!
zmGL@H?PEsR((f)*JQTtY#o$QIH{tvBfFG!lt7DxKh4x!k{Q+r?5&qMPHy<3a}kn0uVTb!2+@`N)XJZnF6OlAQJ7antXVs!60hYw4SVlk
z)6)3k;sI0i4dCr`T%ON+9{g2jBG4VC@*fO!F|TUih8TO#>_iNwP6W}#6?s21$?J+{kCLtI*qj0c
z0Wii&SxXeXo|Yyt0K!R2qdpv%yN?1dw{5Uxz?yHo92cUUOB0e^o1lUkm>7R7LkZNP
zhy_kUg4uQMHYW6Xvj{62O?YNM15
z9%O~v_Ip7E!|<=;Vju156b6O@Oo)GW7sxjqLxOb`JMVYPpCUntu|tepIfV54+5<$9^=q^4bp03%ClvLwQBFu3pQ
z+dfkSz7Mo5yL2$h*&mzgEmzQP@u>FVrF)ELism;9y}s$rxj6a$sDI@mE9a>fN-xRrmZ2uP#szM;;-d0P(o`X$L;}XlJrRKx27eZm9o+(!+T?(d)cV~n
zoe3knrPt}g$@S0GJFiMpkz~`DKYtUZ#RQyLxC2Oz`lIMRy()-he80}R9`oTI$G>Uk
zq`BqM!sS;f(hUaQn_gI+r{nfqQ~iK6DKNFG6Wds1r>mOY|EwRW%RTh7D8@BSF2{-`
zUk30q{ZV07WgY?6TXh5bdo~eZHwCo5Vjqk=0L^l8DTlhnLL*G25~+yYUp>RNlD$C-
zy}Ntfhs-ZLIR;u6pJ)(3>li+Xb5DuuI~J8gMkc9^vG*wEqv@LR_1Q+4HHD3I7ZP))
z8%qIsKNm`bv^U3A@WKb$8;oH|>O8>txS1TlI!m(^=>@ByI-x<4{rT@2>6>Drr-*^$
z0r{ydk#z1Z%>V;ouQMVBOR`lA)SfOiSOyttQhk7#y
zBf|;zO6%rEgKiIWi?-D7RdiPk4G66k~AVnfwc6)!;3!-+cWb%=~vbMB49C4$IPrP{4rCUv-@Sj
zKklvNmEJ)D<+?GVh_sQS#T{0{ulIo5cIeyXp&~1uB1G4LEBtK(!N=r+p@h96=fhtE
zFn{+ZgeG8!8BplI&l^s}86lh018kGt({eirKm3+}|r&$bqv
zcczp-+A0F$0xU4UQhu`g_W6mi_E~LWleshiR|vV@l62hPrz}o2ZmF#tzfeTI&goJP
zM1K|ll|F|TZFixLUxT-u@hx(d0(dNsDlZ1grEBV+niYeB(UlDwU0oIKU_x@dPQDrUh)|*PyjPiy^Mx~
zRM86G^BHIr<>uwX#cWVxV{u@Ur*0n5;x(WorWvJ){rlF-=PtQJNlP&e-I4(%O6(hP
z0n~lkMry^)4D~R%1arXBp{*h5hIBDmAMh<
z64~#phI(ro)cPz5;^$u8_+EP#r*KGX@|&Si`H99%5s%+w1~EX#OEGm;lEnPkjTH!I#8XMS4w6CK?|NB7zee
z&nE?oA_bi^Li0ZXVp!E9+ffL)NL`ZeXKZ}0FAHi-pYMLI4Gvaa6FVB-xR+g&tB(w1
zhVOP;bbP=2?&Ce*#J}P{oLHxjOcdxZfi2GA@Gs{~=CRBXWfd_5%|r$MR}UQ-9tQ=~
z4IF5kfxzm}t7z|MKaylQ4i*sL^8b)rwY`*X3%+Y6uz0jiq74N1Rg7W1ClFWp&AL6%
z`r@W56zjBxS!5t<^u)}#TU-b*HR*b1uciULpvm3m3+3U181DXJ3K{*WqfEAVu-Tly
z%=^Xr!9MA37upy&b@YL8rx5H}f?4N@C2!A(rK@kPcK_<@1E)YV26z;JK(aX3@kLYD
zaOY-s4;-*JWEf0^7F&zd*O`o@hMxf}jD`M=fPhjin`9^(qm6PP@U~
zu}P9_;eW5gTCtqluK21OI^P)f{tu@$3wiYd81kWxFw1Bimu6r~#c}AsNQZK`4QxpGWjx0#l4N
zqvN{1?SG(}Jgz2}0g>M1H^$s!Y2DngG&E?p!Jc762c8?EK)4o;-Qb7k5*F3uIWIW}
zLxZD$ZOif+cD#sA0&(mX=s$u#+B$8CxQ1xA_2uv}u5ZaQ09fpJ%|qn>W!uyG@v^Vn
z5Ka)Y5!7@ZsFU;qrbE&N(!l5re234!o
zo#9(=OZS1l`E$0o&AF}C`_@Q;LS{z5?*Zgg7=rgIWkTnYy35EdRwVNlL1f_q!NA5V
zB5#3is?A0~C}zN+=y!Eiy45P!4jk6Qx@NgvvvGn=dH$!~=wQ`7F#xEF*ED&C>YD0@
z(~tv{=(rIB;M$HOk57{y7YWWPYBqn#R>1-RsMg+$+CC_}IVR42Me+_H-@fEmi+d>Ssk|I-F
zP8!5bxS%ttZqHcImY$6?5uoQ}e%BWnb;yC5*GT((MO32KmJx1!S|1c$&8r3v?b)aPy%lj|egDNFB1_|WCXU*j5CktrPD
zfCacFWWNPO?^Fas9oAiMPKmSmYqGc_{%3)wczelc=zU`gLmz@f)cc%{!);1M{A=8A
zc&XrN!oX_KU9Nz!QYwtCbD~=RXdxhH2HMfP?O*7ciKr
zp@wn?gUE_R1~JUr+~9XvZ&0ACp#
zt<3ac*e6?Hf3aw*?s8LrVV&PPrGr`v@ICmzNSVaj@2(#^EKtsVqcOY2+*NP)WNdLf
z?TCQLM*D>7)W!f8=-dDB&M^2|pCQ-Q+21-qp4CCtrl!4k2wymhw^A^$KbDtS-gRaW3
zgQ^s?r-1BKSKbIj;v(yJra*D*kE3v{LfkP;|fx43;kPcF?)+1$|c{+~OU$%4A~sMoaE5DN{+Sh9yT
z>UC#{yNSHz#fTo1Z<^X-@SVwxU=aD?(J#T5#6qnoF&iW}h#<@>NrT-`$02kBK7a(T
z#y>+r=+S}#nlOMx?g75nCM5&6Q+l@YxBfb6lro8f#D29_kt8cD!0?wOQI*toQ&)xAowCCIi0k7Y9LId7MzfH~4Wb^ho8hqgCi$YuUS>u=ABv~*a;Lt=
zn8X|_SrJKJoPj(eHsFLpo&sL!CxRPmzRW}{sb~BfK&~Tte~uDbhXe=xN*eJ?=0n_A
zyg8R$;@aUI2J_>x#YwLPZ-t#;uXq<6X`p~c*hU5RQ2dTK?Wz3w7a-eJDEXz@!$I~!
z0uHolv6|tv`2OT%(8=$f;RY!qRBprjbKg<&@doZJ2in5PQj!h^WCU#T-y8zSf3Rs+
zj!6v`-u3sEo5>b*+G>c#$zY0#_Lz3DQ8G&;+ia#M36V|J7>;X-&L!erW>63fV`taD
zuEMnIY&v-t#6b417rk-B2TzX2!afeJ@__swQHHk?mVTcx{1bP~#S0hi5h>Ww2!{c>
zbe|!yE1dFIPf{JVTLf;+xOvAa8C;v-yuRG^)J+=|VbdWvIOh8?;)qc_7yT4Z+L9q2
z*9aj+`}-M73hSHG9GMOXqLa!T_s{VM(P?!93&FBdE$qn%h+x1-AKlQiK$a9P!dKN#
z7owE7Jm^ofZ-ZqGeM^f2hyu$YM8>r2FNY+o;nP&FUdboVh9j&=oq8d*2OKoEzx73s
zdy@2~=}ogRMr22zFrw+r2-U9DBb5wrq`vm1eZYViObgr?3!?_?;Sz0p62_d_PA$+yu@7)^4Ly6eM;fV4Hj)=Z&M-@_tW|jf97&dEF$?#t5
zqgKEs_8Up-E18{8!i
zK}cP4wc=FZLK-+fBp=dl3h@#_cM32{s^K9TcW10LPX|cZ(xs~9s{K;6W@(OpA%@cC
zXE`J{M?zWmu}tOrDJnJU4j2lnq1zWFo`EddyXf8l{(V1aQnj>7?%cDv{doeWgwWg2
zzBv)+;!sX}EyHA^dBGk_*De{5gOJm`?bX%Y-)8VnI)Q`~!q_xIq!I^LwyZ&2MsQQC
z5=14R+_KAes<_@6DE2xr?v{?r!opnXS39I*=yV%}c%A*4cU`|^;XtJ|EOn=rI;3@P
zwO{(0*9cqXxRX7BGa+Y;^uP!Vjq@S%#B$ZqVj49UMLBgvTpQR}7#dqlJ~md28FPYH8u-~au_H><-n!jZkA|u~FyVt6lg9o!-8>7J0xd@kQn=>Hni8p6q#gE!XBu%l
zI9y2RRucAGZ-Z;kbRpi`f}x}C(=qhSkkG|}mY(M#@aZZ{L&$!#AG_YmtOnR@sKh)I
z8Rzmx%{{#JEs^a+i00M`8T{c1UgX9&RxP~I%SWsc>Vh&{CYMQ6^)NGpGRZ~7l2=kK
zW;5}7q<9S1~(Xm#jRO4%9D!swrCi-7<>t+G%vd;^7{87ND{C=HSN4TkUPRcr9@^
zS1z168_PQa_F=j|5;BD74Xs%441o_3gU*P>0d+K$^v<$5Sir}nhusJz
zi4;fN9P6n{_d_%PmZAz`6KJE6uLcLZWeb6^Sf6=B+XJ5ukxXp*3sq!v1hiGBSKS}n
zq?CQ5cg(vscCK7fFoip-DDbI#7_JP*O(pYps9q#4{HSV>F_TKvhymHdP-Z^s)>iI_
zMYP}Fys~{V3B}7dxhS$&Qh#T{$oT&lv&y4{;?7?_$zL()3z#8w=}`rGs~`ssYi&?r
z2LwXVWvMZD7%9c2HZ8R`RTDk&=_#Z#@vu#{t@bGDKGJ`c7O6OqRI#o@h>-T*oXYZa
z%R9Vcd)*oUXQ!a2l{&=vl}E+d3+u|bhGTG_ea-P!O~Q}vD{jV}Sjk*&;ZU7Btmt!fojoxrL8JKpm#l@$
z<-Erd!;eNKtl`X;{cKb|Cp6AKWggeCHUqA48?)>f(&83ZI&Ixpvn^?8#2~IDh;mPP
zt}My9%j2@`;WCTUpZZn4RaGE@+ok@3JTHp>;PgVCBl-=vmgavK%DLV=!D*JiKFR-H
S{R&)h2a%OhlB^Op3i>|@-&%G6
diff --git a/linker.updater/linker.updater.csproj b/linker.updater/linker.updater.csproj
deleted file mode 100644
index 8851a610..00000000
--- a/linker.updater/linker.updater.csproj
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- Exe
- net8.0
- enable
- disable
- true
- true
- Debug;Release
- Linux
- false
- true
- true
- 1.1.1
- snltty
- snltty
- snltty
- snltty
- https://github.com/snltty/linker
- https://github.com/snltty/linker
- snltty updater
- 1.1.1.3
- 1.1.1.3
- favicon.ico
- app.manifest
-
-
-
-
- full
- true
-
-
- none
- false
- True
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/linker.web/src/apis/updater.js b/linker.web/src/apis/updater.js
index 4e8e7088..55ceab68 100644
--- a/linker.web/src/apis/updater.js
+++ b/linker.web/src/apis/updater.js
@@ -3,4 +3,10 @@ import { sendWebsocketMsg } from './request'
export const getUpdater = () => {
return sendWebsocketMsg('updaterclient/get');
+}
+export const confirm = (machineId) => {
+ return sendWebsocketMsg('updaterclient/confirm', machineId);
+}
+export const exit = (machineId) => {
+ return sendWebsocketMsg('updaterclient/exit', machineId);
}
\ No newline at end of file
diff --git a/linker.web/src/components/install/Index.vue b/linker.web/src/components/install/Index.vue
index 940496de..3ef7e4d2 100644
--- a/linker.web/src/components/install/Index.vue
+++ b/linker.web/src/components/install/Index.vue
@@ -50,9 +50,9 @@ export default {
steps:['选择模式','服务端','客户端','完成']
});
- watch(() => globalData.value.configed, (val) => {
+ watch(() => globalData.value.config.configed, (val) => {
if (val) {
- state.show = globalData.value.connected && globalData.value.configed && globalData.value.config.Common.Install == false;
+ state.show = globalData.value.api.connected && globalData.value.config.configed && globalData.value.config.Common.Install == false;
}
});
diff --git a/linker.web/src/components/status/Api.vue b/linker.web/src/components/status/Api.vue
index c994de5b..109e05ed 100644
--- a/linker.web/src/components/status/Api.vue
+++ b/linker.web/src/components/status/Api.vue
@@ -1,6 +1,6 @@
-
+
@@ -32,29 +32,28 @@ import { initWebsocket, subWebsocketState,closeWebsocket } from '../../apis/requ
import { getSignInfo } from '../../apis/signin'
import { getConfig } from '../../apis/config'
import {Tools} from '@element-plus/icons-vue'
-import { getUpdater } from '@/apis/updater';
export default {
components:{Tools},
setup(props) {
const globalData = injectGlobalData();
- const connected = computed(()=>globalData.value.connected);
+ const connected = computed(()=>globalData.value.api.connected);
const router = useRouter();
const route = useRoute();
const defaultInfo = {api:`${window.location.hostname}:1803`,psd:'snltty'};
- const handleResetConnect = () => {
- localStorage.setItem('api-cache', '');
- router.push({name:route.name});
- window.location.reload();
- }
const queryCache = JSON.parse(localStorage.getItem('api-cache') || JSON.stringify(defaultInfo));
const state = reactive({
api:queryCache.api,
psd:queryCache.psd,
showPort: false
});
- const showPort = computed(() => globalData.value.connected == false && state.showPort);
+ const showPort = computed(() => globalData.value.api.connected == false && state.showPort);
+ const handleResetConnect = () => {
+ localStorage.setItem('api-cache', '');
+ router.push({name:route.name});
+ window.location.reload();
+ }
const handleConnect = () => {
queryCache.api = state.api;
queryCache.psd = state.psd;
@@ -78,7 +77,7 @@ export default {
globalData.value.config.Client = res.Client;
globalData.value.config.Server = res.Server;
globalData.value.config.Running = res.Running;
- globalData.value.configed = true;
+ globalData.value.config.configed = true;
setTimeout(()=>{
_getConfig();
},1000);
@@ -102,21 +101,12 @@ export default {
},1000);
});
}
- const _getUpdater = ()=>{
- getUpdater().then((res)=>{
- if(res){
- globalData.value.updater.Version = res.Version;
- globalData.value.updater.Msg = res.Msg;
- }
- }).catch((err)=>{});
- }
onMounted(() => {
- setTimeout(() => { state.showPort = true; }, 100);
+ setTimeout(() => { state.showPort = true; }, 500);
subWebsocketState((state) => { if (state) {
_getConfig();
_getSignInfoInfo();
- _getUpdater();
}});
router.isReady().then(()=>{
state.api = route.query.api ?`${window.location.hostname}:${route.query.api}` : state.api;
diff --git a/linker.web/src/components/status/Server.vue b/linker.web/src/components/status/Server.vue
index ccbf4e5f..92ea0ea8 100644
--- a/linker.web/src/components/status/Server.vue
+++ b/linker.web/src/components/status/Server.vue
@@ -63,7 +63,6 @@ export default {
state.loading = false;
state.show = false;
ElMessage.success('已操作');
- globalData.value.updateFlag = Date.now();
}).catch((err) => {
state.loading = false;
ElMessage.success('操作失败!');
diff --git a/linker.web/src/provide.js b/linker.web/src/provide.js
index bb7115e4..f8e5a2b6 100644
--- a/linker.web/src/provide.js
+++ b/linker.web/src/provide.js
@@ -1,22 +1,19 @@
import { subWebsocketState } from "@/apis/request";
-import { computed, inject, provide, ref } from "vue";
+import { inject, provide, ref } from "vue";
const globalDataSymbol = Symbol();
export const provideGlobalData = () => {
const globalData = ref({
//已连接
- connected: false,
- updateFlag: false,
+ api: { connected: false },
height: 0,
- config: { Common: {}, Client: {}, Server: {}, Running: {} },
- configed: false,
+ config: { Common: {}, Client: {}, Server: {}, Running: {}, configed: false },
signin: { Connected: false, Connecting: false, Version: 'v1.0.0.0' },
- bufferSize: ['1KB', '2KB', '4KB', '8KB', '16KB', '32KB', '64KB', '128KB', '256KB', '512KB', '1024KB'],
- updater: { Msg: '', Version: '' }
+ bufferSize: ['1KB', '2KB', '4KB', '8KB', '16KB', '32KB', '64KB', '128KB', '256KB', '512KB', '1024KB']
});
subWebsocketState((state) => {
- globalData.value.connected = state;
+ globalData.value.api.connected = state;
});
provide(globalDataSymbol, globalData);
diff --git a/linker.web/src/views/devices/Device.vue b/linker.web/src/views/devices/Device.vue
index 2a0977e1..d2216949 100644
--- a/linker.web/src/views/devices/Device.vue
+++ b/linker.web/src/views/devices/Device.vue
@@ -18,16 +18,29 @@
{{ scope.row.IP }}
-
-
- {{scope.row.Version}}
-
-
- {{scope.row.Version}}
-
-
- {{scope.row.Version}}
-
+
+
+ {{scope.row.Version}}
+
+
+
+
+
+
+
+
+
+ 0%
+ {{parseInt(updater.list[scope.row.MachineId].Current/updater.list[scope.row.MachineId].Length*100)}}%
+
+
+
+
+
+
+
+
+
@@ -37,51 +50,124 @@