F+}s7-!RAPfV;*7O|wt@ zrZPP+T<-D>2Wj6(q-N~4u5gND$qwWjFp8H}#(#Zh_!_g1(9w@(oJP*~)`HREbRhb1 z^nHoX;~pIvn*5ii^q1qQpXLV2b!=Q6!@M=hb?ilzW^3;s3OVYi)m==ao>l%FhtUw1 zr^=m$np>}M-F}*$D#&VcDGqNr_t5pNTKzA%@^#r#___JS@-c8%f%t&q@Ub#S6;12o zsV#cOB4LXUtGZ}F_3+a18@cX_P4W)Lq!i<3GLKtK=&wL8>Blh?@nPrQP&yU2ozQ;y zXlBBejbe{mXKn?6;^QY+8Pzg8?zPXnnRMD>0~>o^(! AR*<* zdeHXCS;;0us^b0lFU}XJFm1Mi66SEn3D_3!q?tN;N(Y7U>gY(C6z-s`xJWfbIPOB; z5=^-UFhj1|WL|f%{H>uvP4QXjFiRC`k_~Yp?x `GlyxFd?qnwnxqJzT0K6bwb0Amrs-YS|d-vzG>G-N-r-)JJV$ptz)C>bY&V3>nA0 zh{Q|yD-<>Y<%T4Z8)}D$yNMI#&j(P(dyU^+6tX`Zd@AD znF(gCg49mWW@UN>c2(!HFtDvduyr|@RV8qJYbwFFuk5YQ=mGWrrZPLpDfuz;0OOY| za-onTFV4CzK+hV~uFeoQI3 mG}1p#3N{oG=n#XgOc0?`PAxXgZ{PB%iwm~jsyjb!hxo3=9s633GH z^$_RJ`jZ-7LxoYe3%t3Tx{)0t+wl*jwSI|?@e0zMd4%N~zi<5IyY`xg7 {FB}SZ!qb&ha21*r-UD7l@VN9`nW#1NA#2tQ8%Q6?Dsg!;%@aPi-UMu(R2_ z=GHyCg)q=XqntT(Lg3*$A=1iR^Z(gpF!L BA7E4%!-F-Dq2%Bo^alXk Owh?-+)Yxi2FyE<>Zg&?|K9>Fw0s%jm2= 5QPa&cMn?!$cJ7lULP2^a^)MxpX&mR}KPnW7! zWOzFeZWfYEvJ?KAL>X@xP+)n`t+u`oND+(0?Q)BZ$)#IcD9dSkH)zx6*`uzB)P&u_ z!`v%gsO6|%{21+ihMor@ucOcdL(c-2o1B*2=7)?NKpqoL)f(^U48O#y5F@>OenW%& z }ZXwo4-(N zkyzY2K4dO;i{^YRGdEWfi8S!COyEf5O?3?S6F#Ng0DtURQXNPz_m _w46?TmX2QnA*bA4Vi>1g$wp4vpVnJ(bfTNHvbf0rgwFQ zf utOK{oI)-mF zcg86eav1qVgRv^~8mLxDo_v$e=56?ep}6(EFJ9y~fw{fVpD@wr@lkje#~6oqZ@Y01 z8$W-Umz1lCaQD?O8a1Df_k*ot@ilggkB#y}9__TA?wc}@Dks06N{s76X(Z%qTcBMH z!O_&vEmAc35@nAL()y+hE!~Qbz+RSAXR(()18gGGwjzbR6uJ+8DvCR(a5J=qo)& hKb8uHM(&%C^20&Omrct;jGFtqtDu3SO z$5+S$c$osmBYyNmZ*GmV8HzP`d}Bj`jWgxfj6FVT=vdGlzRfcr7k*MPIquTPL6uwh z`74XK)5dHK5kJtc|JfA6tc|YBHi|0n$1L!U`et0oQ7wP-VqL3tQO>bp115=asz#{B z4A5$@6p3u+!O`e{g^nhVObn0MB?k|qaMb4fOEb0wHhHte2nIiPCpJ_?Y2*Lv>8qmZ zTAFV6#@*fBJ;=r#f)gBqOR(S)oQ=B^Ah>&Qm*B3!-QC^g@}G0QJH~unFTJX}YtEWg zow&@V8~lUpS3@Zccis`4;<6i10=nh#!H8ZphX__3t~cKm5?C5FZDdR2!d=O|$5NMQ zjlFs25Y((zc$*eL 9a%Im;; zV2JR8_{VP(KX9$Nv 0|CUuO$D08haWT1>j{fB@ac3WM^vtE^<#EBDHvf z+uWk2?}hsBdX&iTe{2+WI=TdvZAY2Sg&MDPbgkZZ!~|7V=?X(%qI;0Ic|BsxPpm;6 zL!_T!`l6#B*hA}8vI%+mO|Qx^8MFY~-GCn65x0QJ+4!(eIV^-;=ol`u^FaKb!MbIb zRqlhm-0xP}-8C6M7^+*s)K%BqRZcwRY&6*16}fmt1AE&@Y3?9m1BcTXhY4(*x1#Q; z iA2 z3dH~<*zoxTS#kY|B*_6L eI8@t5)MRsIa z?ZIz5I8Rq7Pe&+ETU n7pL$ZOW7b3ci%2Y0sn{Lz{PRGhUwrO zLfiNKEaR2608}1BeYP`F``Z(5rZ%k>wk2=0fC@W%pSBQzHUH@F9_f#bDF{X_gZ`A7 z!U&$>BKLb&y-==l`_eULdfY=PhM<~nbL)kWNLCG#uV$YUJ`2uy*uwk#g*DkE9iy^U zJT-^ZMIHN!EfU4RAm;c$xwmEM>DQg_@Jb9A&u6*^f27M2Uq~qb266|*kr se7V5a_sni|}quS6_?5N8v5!)wbVTYo^?CndUgcml3J-@oG^^*z5oWEs95 zP$G5_;Y>O}pOKVbRgFw-o9ZWRm>swVe*_aJ*rxV;0&@EXPB2S!04O8`ObR$J0&^tY zhW6B=R<*w%+5Neub$h$*2;08>M3mW%%14sDyeE5(L;$7UEfy)tn6w+}a1XPb@b$uT zBKtl@eN1arA5o;7{wqwwGf#Kfq6v(syGTd?%7R8Cu)J)n43Af%FP(r-ihd5leVhy1 z;B{oQoyLH^5^@rELOGeIx7Nd+UC31#T40x Ar-8wVlcQB4F@&av_-K1Gah zXtu^~gLgU6pFKJpgk>ry(7WjuH;1ak?C6cfkq_H6jsV4}i%Lxze$fOnCf2W|tqBaA z4#;I7+ayBG>hyT4gKN2z7=K$7e*WipY4sVK(ZwF}QS2$93Gf@ (qBt7!L zQvdl=01>XaBZnicvlw0iSb@dgj{PK%boalTXHjX)$=F~Ikx#~J_lX$Z^n?@>7-8&v zM>J6Bh20IgyecQ)eh19-dBqoMdgr^K(@Obh%);DwfEw`#a1j*4!b3&f>qDblR|yts zD1Wlnp)fx SWD8}0Ltb%jeamy%cwr# zi${gO8v&vuKgXctPh$%VYZLN_EaNOR<7 ragJ - R$fx9c_D)srTWPF)kt8|w!(%!Yl?7ZhzQ0&oFBrkE&Pgj( zy0ZTHn)koEv_swok|=j;1)~wObf~Bp&OZrO5 5`J-?~N17&4h%tb`% zAQV~P X5}`%=W7OX z2q@Pk|B~;QhF|n>V!^9aQwLLv!2VQW3cFVE`qPRF?HPj&D>BNeTPqAxeTPIuiA0U4 z$y^W`I>q1PSNvkS(g~})4f(^t&CIw>Nz@;2f{B3``{b&IumJ)C-pSGOGZ!Nxg&-@} z{C^3>>&Q$rn*Vaz#biQ2!rb~PA~mt `WG`a#2vT_vHyMxZvm;s!!*xBrnSU29lo7#e{oV~ z&~yDUnJM#ixN^(OGi3KA^wR!#z!^Y;Aecce?$G8FY^J*LcB1mQbJ$aXag5jf#{pHg z2QeRlpwLu~qMyrBhYnme%v~W ! zP4xQH50M+C6uZ5BYb+q3mgpc%@5sWWk8|}L*v}gW7L2#aJ}f PhI}>?Y;`pws2|Wsq zH6OBQ)dEK7NOam{J&m+<+kE<@`2I|*_2&g?zmhI`fDkSV?9gAsrUp+TrK1-;j~7F` z@^;|a 6d;#@;hH4 lHrjYgoiMm-fv; zkt<#x ;>_3`C&_}^rw%Rh3=7_42{H=%#pN*=#D$?ff{ILNFusdNWD3jtlj2Y8q zb3SIbG1;PGYr!FE48G!Tcf7)l7 c+M_>cJgb2a-?z{*BGeW7_9@SZmTs+4yBOfCw38uvwCs{a6Vnb zu2| Rc2H{rNKevMA9k1%?S?%VBJ%Af8*F(1o{|=p8dz0lV!If=$mw=vI%*k!| zt3yb)S|>}@iPf>>WfhfSCQ_9k8a6aE=3wmJW84z+SBu%XGAP2vzs)Ev8H|=WqX6V; zK(CyKBATl%qxs5|4>MGvtdmS;eFhy^!4#f%p&B+D?evXcOX7rGRM-&W=abq(;b}~R zur+zXQ%lo8oABD3Q`q4DSl0W?%}6w)%%!o?(oGx17fKZALQydkylxGPpif&5sU^&J z-K|7fB4$Asz>yYXUFK}qp!8LrYJdmCreSg~qL!uz4koiY^g>gXy-+a?u9RO8d+&Gw z9LX5^a?Ck+8r5%IKvdX+bYv4@!~>ex-0(BPaGcgtmAc|LT|xJW&fZmcw?{a>+GiO$ z^H_|UoW0gdMYQy(NiK(d0DM{@95YTo#XS`IlqyyTlgulCsX^N%G)Is$ACNNZ&a06a zf-`JgEfXC9AGEktttB7rsx3sUMMX<3KqJm7KxgA+uTOzUM+yha9Y3Ke6xe$CYb-&{ zDlH0~Br|E<8|dX4aoL>pznoCm`gQLyw$NIIbt#UcoUaC?ckt`vh8JzS^jox8DqZon zRQ9%L6uotDl|QVwrC$Y-4qRI&hp|M?6X35&8+~hXH-;$4Nn_SB(?_32TQ)Li*2%NC ziQ_mNdwxNP->CH+eXerF`0?ly(?k~V7&ua+#SxB>xJbkk;TcLY-kJ7wQm{FMQvbeB zOcbc#e-=kT6aN<}FgvZm9S0BO5UpT(noX?Kz+By{2ur=(B^oD(W+W%to5`?ynwT1M zxmlCb{v*JDvga^P=CIEG*NszQ=+|lOp-X;?ucnJ4y>?M{Lq|j7wx6H3+@waLHx?x0 zpZ{Y_Z!0#;=@Ts4aUZ#z<-(b^LyQbL-f~Mw(9@+!3b8#;W=fSVDLcyi#sClA2m&8l zC%DG{Gk`DP0BH(2J0JjyayA?Zk|C4RI8YUp+Pz!)h8^D7p)wFo1eU4IUy*R9mDNv4 zUtG8eLf99=-2 9D2HVS${daxkDq&Fy)dbIO6uWhVQ(u70C07HwBo-@` z)9^Y7$ve>Z^R;X`bE`_#v_cQWq@m;63TM>AI8A*&e{ZAuRZK+Hun;dJ!!3icn*onQ z3B}~i0AgJm4@>*!ILJKBYIa>BG%WfmCN$^suBX{6NR#W`R!B>YWkQ)oi(G{RD@iTD znMeZIg?85R3&D=0OzH{mqP^Zzow;B9V9j6lEe{|Jq3uzQP3{Z!ZsB-+Zmq}U@iEqw zfJkigp(t7~CavrC9!{`Z{1;Zc#wn*Hb3MpzyoS8`kY4s@pGUGK2Mkgb!#A$*=q|p~ zDF}tQf2Fe`jGJ9CX>AbDm-`;}o#d|(JeLla+i*bcucqyt1qp_V=y?IUF-nO0Shis< z%ueb_#Tt*-Bf1*v)R3U6`$8<~zQ=x_Ha9F@^c3O*!Xt>mP8IRCwuHp?1KRZt(T>&2 zZI5frMG@qZiT_B_yY)G(lK1bG1;Gj6>-}oaGd h7RX%8=zpIouKvY2phZOq42@YD($NYKM8z`%kluSS9k zkcm_eG%iP%bp{nt=d!W=P1WPqRY2z(o{V+UfP# yjK7@;H^+z1#ZSpMl! zhlqGea>SkXk0|$XHu$!@>Is{Ed~W-RVVS0hUNo{kCsp! G1s*67Bm7=jde@!!X_*n zYN7;9jHl;!bPC@^S~>>8fiY7U#U|U6jeOmb?ow^-g)GGNj#v>7LyzyQh6z*AHa2n% zO@t$?{z+n^amnr5iBS82%yY#nAbK}XFaL}MVF8-)&ZuY00bgsmtn1hRaYEKVS-Gx? zgjq24-M99+7Wh*SZ^Vl^E$0)j@IF4AY;~m41G6gLN-^2Ha5|cXyvw`Q_-47Ez_kU0 zjF4V{Lzu2Dl_yG6Id=o{nK^`Q qWDUZUE9&NK_Xd$$nB4OuctAtaW3X=j%`TP@Mi_Bwk zbl!<7dB52ejX)%#G5tMSD2)ALKR*v|WhNtcvgL4d)Rdb|H33(!nW#dLX?#0s`$WIm ze;t;$oaVfrg|fxC$Vmv{I&qoSvm{9$u5vgl8eDc|OYX)@zzhxjBt27Hqhn^R23(b* zUg4b8hpy7#M%oQpqE=l^3B>dt&dzh-IY9}BCaQ<*hQvI}qeCeM638~=Y^pHsC=c?) z__F`W(^iIG-jQsEEi~IdNwk1er%`Jke3GGFj$q0YM*TbSpDu>mQlRHHQ0s(s>ln7D zox_cyja@ZdVv4Pw@*29`k7$40Ssakjo?+?QHBl?%9(-MvY^Y6!7=VIU^*tM1L@e8p z 8 ztCHlDi~&JvaRcNk;}**gUzK7{=%AF=fK-Z5SNGVcBOp|nJ1&`nWJJD%RgqV0T+aN8 zCt|O*Wz{2|>jQZxdiiYF3Xg4aKSj|X{2Wkwab{c+6XLFBMZ)Q#i#Eu289EQKQHuFH zS7tbjDVJ!%C2KD{US;^Y?~8+B9`l_P-#^Jcf1|;T#$DfwvGwg@H>3&)s+9-L-WSwL z_{fNO$zx7t*RWu1UjkzZWPBT!gJHyJLB^3;Y;K*-VYF|P-FUtD#wyroQu>VO&E`D^ z&^z4H;-A%w=EDr*a6ZFzN=cx(gvhScyk{xoK(e&Tp;__ep#Po1FuD%V@-?ZpGWry> zXuISmaRYq&2?!u2#B0N(*v=>=7=l4ZC_U9Ft*YD3&d2-8L__#zN{A%RA)h~ CaR6K!+h sdX6ZE` 7|rT1L+!0 zm!VA-mO>&{Ey@O0?n}Tx8Hx1UCmGpgT5FI9{e2|9gKMovl5*(ysf%`s_#wBmdfP{_ zV$m8((#7 SB zA>u9e>`9^y5m`Nwm$tcOVT~tlyLuxBIgLWL*vjhlwO-%-|D4|7xgHbW%4;Fn4G}d@ z*3#L<*Gr5t<8Hh4(mZiohEJ|;5pucGxhA%=2+|Ls3vfJ!+H1TZ^n{wg z>=??6jeHO+wKbx{cGbyJx~&8@I0 $;TN4=+=mg!EH=N7( 9PB;OB^Ia*h7X0~6cerEY0e>b3b7E|hW!M4dS+zB}~U5R*#9Dji#; z()6>7fg^7wgB+c@O`4tf^5f@l;>fN1Z1V#PdHnqzl3$Db?e#Z BBt|D#t&t-rLP zH|k;aN2mC~087Emt$m=tnl{al5wMccf{ |ba-Rl21DpJCQY z9}VTRG1zcA9kx(J6EGu!c3TPmYl~3TU^Wqvb*}ne<-Q(=;7<&Z^w9>>2;>8A-@Wy* z%v%;??-6<@@}F*F(O+XzAliIMD|Hn^_#bhQb;Ra<*F!y&(?*#A1sj!Qf^-Bry}L$0 zj)dZ?cH+%y?x`}df+A1g5f{MqXS_)+JnuGE`cHYT2uz+BIN8glP>tVo#_6Iu4-7x; zN|=2-WB(H~T9+OR&s#L|IOSJV7Al?YQ>bWr4GLSg-1f6MU7YGt`He!?`AF&nD0Fl& zA!&Z2>2Eh}h-oKPR iA6y*!Y39B=m)p4)%H2GP_^Y|e@0XMQqtAB z#AoCSZ3&>~ KTs5Bvr1fVxdfE{}-`)=Iq7EGtPwASt W}WV>985h z;S^Ptr0gGyL$=JWMO5`O{&!3^id<_&cw_VHZ2gk>Db@4De>I+Dm&o;rB*7!Q*xSOG zyHB2vAo{rRQ62+1{SG41ZrQu_SY&oGkh6_#61T>P~(VCs$T>Y60~C`qj*cp&<#T z+pf@}`0B=BT)ClJAQ3u1rQG4$?2QH4ckFO0^t-f=G%zg`N*SsO=a?3lZM@$;OpiL5 zlL!sGZmC8s$YC~7RMyg33?N$~76$+HOPWnbiW)(my8VSyK0f*TjYXZuND2VJD*nGW z0_@VB$l!HW5IOkvcT}YNCh(2YXY@oBWWm%wX6d;k@$M`URhalOB4Z h<*F<5eaA(6AR zo_s548o-;WrM2 kh^C7W}#BL|`17jRD<^;SZ-%PYguH-yiw2VXtMz3qh6On-~YURty$SFwnge1fJ zV1OoVNqqgn3~}9XfZp=iGJ5T}9jXNM4j~>wjUxSQuOz(wZ#b};@f&2UUN~w^Kj1fz zk2Uq5Ti6oP4Pjao0UkzZQ%_l}TN`2V?;HY3$L8ukohUAf0E4`h!J%E6ns|0+qFP;u zp0`FoR%Cl4$jua2f1~*O!tWIBXLKxD-wI9;fdxd2E)(=os3&<)-a@bZcj1$*HyiyW z@-^0JN3R@aKG+zNmMqfEUIJsy(#BJm3D>wJiIbo(j1f8cI$-jYNZ3t*M=X={lJ!OT zABzZ2&LmlLbWSBG{8k=u=|l8O#O |*;pad$0XaCXeo}7aTfrzv=Ykcq zk+3Rxi~z3=U9M74RtRfC-Zs0yw>!yjrtF72JebJlH7wUxqR4M`!nv=mAC`*$V{b;! zk_k{P*MT6ngBB`&+fZNDT&b@}N^+*FoG}2{`9Ok!zFL1Z3c3Dv{JhyMnN`dg_aB*< zJ8wfj;gz?yo#8A5H4xYqs1&ED;M79YdHP}cfOpJkk*O$jQng|~Emi-Pq^Ozt+RmPM z0!!wyu1^}6Ld*YvQu$aL3}>R1UiF_XfeG6`Bn@2Hw2#BT#jFzcMJD>kHEFaaaeZ=B zw#A#;`|_o(DI>vUDleCP|Ib4-$85(SX8m^FIcZ3KBZ71iEyNq!-VL7H(V!NAc^|DW zZgOIhx@lSKxn1Z=W_lqW;>j_d@^2e`SSv4Iasb|_4(fhpg|U-(`|I8R*5LA~{?_T$ zLIsi?x8v!RhkxxY>Z*~aVO35UrhXaMCE)Au7EV%$-d2`blNG-jEDSZHUB|NzlafIp zKn8#pVK&Nyq>p 1~(IkD7xzR?r^aznZZVb*?<4Holdon3|`(m6#1M8<|st*`WiF{TJzZ~QFpadB6 zd9}&CEDO3tL8=$uT>6Zu=wlF{K1A1@rWVvQO3H?)Au+$fNeDC?+QF;nFz0X=o6J1? zOZf~Qeme Z`e_B|3+cYryp2cnHSu3z1@e(`j1 zg}sejKY@f<-Lq_kY$F9+7x0P~D|hY9$m9oWoI}BV0>?XKQECE6Xe3bA7NG>}2~Zoc zQ$Hr+TXIlMl)@>hT9^^pvN2xbh5`O_ME!4be+3yY|87Mhjq!PcuU+aqqjip|82e98 z+CQ5KBU>ID+zEcCA3A?WRd8hZ^)&=%yl(BIw^%~$)rVAJg;`?WV)M#E@(&M}+Sp$^ z9&tqMl;iztWjQQV&dL2v>fDyK*izIXPfnS)h)d-Vul7O|`@eH4!^m#(yMjYS3__>+ z*AaMmHokSQt%Ni`S}i6fUPdQgUc|iDfLbkDTKPjw fmm-#mpC*lI$S)k089d7_jXXM4<0I4{szUVIS=>e|U6OaL8k5kO{SwkcXaMN4E zB_YZISQL4(*a*r`bYZQNMVl)fty+{S;owFu47HF}roGdTAhw=$&(vv~8MnM^2Z>^G z#j^}!?q+R`=|YgPz-m?aIVmIIxA^S=fHkV($P&1RgG1WdVwBV%rU=jG72^7)02Z2Q zUiwmUwQZZaH<4g_NiDh=Y(w`$k^EAe{YOk)DB1!u;x5Zk_TS 3gL73J87A8xW+IxZ*rn07mWsU zqp0FsRM+y@1tt~CdVq3;&sd-?C?X2aW5z`{@6e#xEVnZ-^L!FoTSS^RBC`9JucxuU zwTq~b1YGf!8vBlm%GgQmmrwrr{kiVZR&k{70Y)f1=!`Dn{<(;!;GE~5Qt9jU0!qA@ z{jICr O4=7iP>#%YEVnBmpaI4px+@3 z9O-$?l!JaEDIP6 iG>t$)dggf!iL%|tM@5TK^@iJ~X?rcSXvt6FwiDrsE znh`+zwMg+dno+83T6OTlETVATJ5=XREF|Qt!HLMzG9a-+S(9>aR5$tMKGvQsLg6hr zsi2~|KsZE)?9!OMz1R`$iCP~u=c;&%XcOJYE@T{GN&&|gkC!Ak+({s3kDbKc)s(bk zqBnRYfvEphTIzCO32MvYUbAJr^goBmgl@+syh8wShq;2sTDg7H^}3N&hi~H5ew27l zQi+L~Y;ZvE219fki gGiov+#3OhW_mj8< zdnGT<`zg<^>kkXJhi_o#07u4YjC_?W4ivs}iv2}E)^g5+(0pE0gr!|J%cy)#EMKA2 ztmyAu@nEkRVC3F?i9zr%#S;A(0|wLHV=FDpsScJ_m#@lwU9<=~n5L7JUOV7JJqC zxq7(hA;yxX*qYn`r69*{$zsW5w*V(W&hP@UZMaPBzZlkx4cxL955o<}%K!wv8Hf4Z`PNr%hj_~-6Z zg )O)^@2YBx^*Ti9wV6%@|re}pedu-qTD8z&jf^SkR@aG!)U2;nrOkwNLf&-Wa zcOL;lL^(wv@}BA(EL74!QEW`}JRnUl%&Bo~h+FJilp5VUia15S->Tb@lPI#<(+iD8 z&ZJ1KeAd*b<>Oxx`~a2FMh~ef 26unnc#y zex;IgB)BS1b^ouMWK@F41 E$9X-QYHc-dFa zNqm{`%_We@eSdR2wQ!`nBQ?Ya5IN((7Jka?Ma0by@;FzVdRVIcQ8IH6+oGeYh`y38 z77P>7NA@xDD?M+hZnQ=#BpkCO*PfpI|C*G9$9yE+6(xFIWb^MJPwr9fzK)f^S(6~3 zH6!rI!cr%itWL+Xrfg})qN9Wp*y JPs5mQ?Mlnsd{ULWD zZqFF5L0}3Qeqri1hx~#t`{^_4*{xj@L^PR4iuBjvPdcg206!=Lvj=hNxumkVQ1p_K z%^G-_=x>$N3DYL*$W+~;M17v__tACN4YwoLMQ^ex*02R1Q>(*z_@$+RoG<)ab0`~e zHe=jvq%+HUXMbLQ9Iu gOO6}swg5CW)B8u@;C2*L!y8!j{d|i{7qF2L36d{* zjD7r*P5y3WcTmpg+4SeqXP4n`+x~$`2ncLgY nWMs(C5GR#QsbLA2ohgyEKm)3T=Fp|g#{>JpU!j=pf1LGGn^V(ts=9FD z l1uSO*CP_cuL#A*|9 z f``K?h zvdB_ATYt8!v_yA!%clk(Ak)<1&tG30KH^2j-XTXEbHu!bhPX3`M8Q*k?W$0#HQy9r zM%QPqQxgwGMT}kPOL!IgA|;6aeE7-I#zsAqva;QshsZtU3+-L{{anY$K{FXf^Mkg! z ` nFh0aDByr<;e3mLr*ODYw9#7vCJWql6+zTz2@MoeAK8|PA{FY5XNr$k? zBB$V@DptRavTml=wW$If%jR8C_FNNIHdvVC?5~)p=!J}4(%Rk3HVa&l%Xlx+wsBi- zkYzeP3cnE09rf@F`tTbFY?NU g?N}rR$;e#x3CeZtV- G=dVDD(svp&)oARQ z%O3*~*OEuts(wGUcKBfX-nR&5D#>wHw#~6Bnj4gciD5Hm5EJnc<<&~um-gD3NrH-K z06Mz0>%w1D8*Nan-*P_K)CauKvtHc8lEvQpD9ip>vli)kKgP7bz@ vap*t{n} zYiUe60)F43uJwD|_=c?78MM9R0282?FZofaL~-dR`#mVeqaiiWc<`@kJqaSA#CQN9tja%&Q{+vrCAi0%Nry=79=Q9VB& zzKZCvD$lPE47QGU;Xa>sRNVF9j=Bg|cjyxBJNm}GKCaD9obLVC{qy|(`!(SFQO@>R zFZ%6m==`$zb^Gp)a9=a)tsi7!q?dJc$Yt*nRh vt6@LTsEZqPs<{ISzJq&+4{kfne@oCo5Pwwlzc(>u>;vJqOB-Y;yMU zwbLssyynPJw=f89?)e(FR2I2#hLGn%f#Q`0FnRtSu^zGZ4(TqJW7$QV+4k|yDL_V2 LQKCZ3(EtAd>8at~ literal 0 HcmV?d00001 diff --git a/src/assets/site/refund_reason.png b/src/assets/site/refund_reason.png new file mode 100644 index 0000000000000000000000000000000000000000..cba1abaf90e5cd024f1c0417a9020ca145a1301c GIT binary patch literal 424 zcmV;Z0ayNsP) Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0X<1XK~zXfy_2m@ z#6T2 4FbU BuP%S*5{t*t)NDVqS%X~=rPN()gTDQ@^cOH+6T^4mgP&D zrki4GXw*4S@X^Q?Y(o3+6U->KD_hYw)ZjCUCpz8{KS-#-jPPy}+$Z$ym);S}l&mSz zOH6B6sbf~^TCA1Mq0DcLE+|cBRyv2a!5T^@SLj)+6CTbM$4TX8SVQwXKaAt}R;&}g z-RHQk+>GU2A0}(^FO0}nO8t4JuF!)p3?HO+!cOio*OAyMu23`2*Q#_wryF#7BzDR| zW@>$=yqYt#-XuDW z*4`?8o&hW#b=U}*l7OQ{FKyZHusx}48b SUH$R^0000 \ No newline at end of file diff --git a/src/components/GuipSelect.vue b/src/components/GuipSelect.vue index bb02428..2cf7da9 100644 --- a/src/components/GuipSelect.vue +++ b/src/components/GuipSelect.vue @@ -60,10 +60,12 @@ export default { computed: { processedOptions() { // 处理options为空的情况 + // let options = [1,5,3] || []; + let newOptions = null let options = this.options || []; // 如果是 [1,12,22] 格式 - if (Array.isArray(options) && options.every(item => typeof item !== 'object')) { - return options.map((item, index) => ({ + if (Array.isArray(options) && options.length > 0 && options.every(item => typeof item !== 'object')) { + newOptions = options.map((item, index) => ({ [this.valueKey]: index, [this.labelKey]: item })); @@ -76,19 +78,18 @@ export default { [this.labelKey]: options[key] })); } - // 当extraItem存在且不是空对象时,添加到options数组开头 if (this.extraItem && Object.keys(this.extraItem).length > 0) { - return [ + newOptions = [ { [this.labelKey]: this.extraItem.label || '', [this.valueKey]: this.extraItem.value || '', disabled: this.extraItem.disabled || false }, - ...options + ...newOptions ]; } - return options; + return newOptions; } }, watch: { diff --git a/src/components/super/DateSelect.vue b/src/components/super/DateSelect.vue index 9292fd3..39c91e1 100644 --- a/src/components/super/DateSelect.vue +++ b/src/components/super/DateSelect.vue @@ -11,7 +11,7 @@ - +@@ -62,6 +62,10 @@ onlyYear:{ type:Boolean, default:false + }, + onlyMonth:{ + type:Boolean, + default:false } }, data() { diff --git a/src/router/index.js b/src/router/index.js index 41170a2..fbb5d0b 100755 --- a/src/router/index.js +++ b/src/router/index.js @@ -10,7 +10,7 @@ const whiteSecondSider = [ const blackSliderList = [ '/franchise', '/agreement', '/customizeDoc', '/agent/siteAdd', '/agent/siteServiceList', '/agent/siteTemplate','/agent/siteAddFinally','/agent/siteServiceAdd', '/agent/supplyList', '/agent/domainList','/agent/siteAddChooseService' - , '/agent/noticeList' + , '/agent/noticeList' , '/agent/expenseDetails', '/agent/siteRank', '/agent/serviceRank', '/agent/payoffDetails' ]; // 一级路由 let first_child_router = [] @@ -321,6 +321,68 @@ const routes = [{ hideBreadcrumb: true // 一级页面不显示面包屑 } }, + { + path: '/agent/expenseStatistics', + name: '收支统计', + component: () => import( /* webpackChunkName: "expenseStatistics" */ '../views/agent/expenseStatistics.vue'), + meta: { + hideBreadcrumb: true // 一级页面不显示面包屑 + } + }, + { + path: '/agent/expenseDetails', + name: '站点月详情', + component: () => import( /* webpackChunkName: "expenseDetails" */ '../views/agent/expenseDetails.vue'), + meta: { + breadcrumbParent: '收支统计' // 手动指定父级 + } + }, + { + path: '/agent/siteRank', + name: '站点排行', + component: () => import( /* webpackChunkName: "expenseDetails" */ '../views/agent/expenseDetails.vue'), + props: { + rankFlag: 'site' + }, + meta: { + breadcrumbParent: '收支统计' // 手动指定父级 + } + }, + { + path: '/agent/serviceRank', + name: '服务排行', + component: () => import( /* webpackChunkName: "expenseDetails" */ '../views/agent/expenseDetails.vue'), + props: { + rankFlag: 'chktype' + }, + meta: { + breadcrumbParent: '收支统计' // 手动指定父级 + } + }, + { + path: '/agent/recharge', + name: '账号充值', + component: () => import( /* webpackChunkName: "recharge" */ '../views/agent/recharge.vue'), + meta: { + hideBreadcrumb: true // 一级页面不显示面包屑 + } + }, + { + path: '/agent/payoff', + name: '代收款结算', + component: () => import( /* webpackChunkName: "payoff" */ '../views/agent/payoff.vue'), + meta: { + hideBreadcrumb: true // 一级页面不显示面包屑 + } + }, + { + path: '/agent/payoffDetails', + name: '核算订单记录', + component: () => import( /* webpackChunkName: "payoff" */ '../views/agent/payoffDetails.vue'), + meta: { + breadcrumbParent: '代收款结算' // 一级页面不显示面包屑 + } + }, // -----------------分隔符----------- @@ -361,7 +423,7 @@ const routes = [{ props: { pageTitle: '产品 - 毛利润排行', rank_type: 1, - type: 'ver_type' + type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 @@ -374,7 +436,7 @@ const routes = [{ props: { pageTitle: '产品 - 订单数排行', rank_type: 2, - type: 'ver_type' + type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 @@ -387,7 +449,7 @@ const routes = [{ props: { pageTitle: '产品 - 退单数排行', rank_type: 3, - type: 'ver_type' + type: 'check_type' }, meta: { hideBreadcrumb: true // 一级页面不显示面包屑 diff --git a/src/views/agent/expenseDetails.vue b/src/views/agent/expenseDetails.vue new file mode 100644 index 0000000..8c72c79 --- /dev/null +++ b/src/views/agent/expenseDetails.vue @@ -0,0 +1,405 @@ + +++ + + \ No newline at end of file diff --git a/src/views/agent/expenseStatistics.vue b/src/views/agent/expenseStatistics.vue new file mode 100644 index 0000000..f771de9 --- /dev/null +++ b/src/views/agent/expenseStatistics.vue @@ -0,0 +1,505 @@ + ++++++ {{ name }} 月详情 +++ {{ item }} +++ ++ + + ++ ++ + + + + + + + ++ {{ nameList[scope.row.id] }} ++ ++ + + + ++ {{ nameList[scope.row.id] }} ++ ++ + ++ {{ scope.row.profit ? scope.row.profit : '-' }} ++ ++ + ++ {{ scope.row.income ? scope.row.income : '-' }} ++ ++ + ++ {{ scope.row.cost ? scope.row.cost : '-' }} ++ ++ + + ++ {{ scope.row.check_num ? scope.row.check_num : '-' }} ++ ++ + + ++ {{ scope.row.pay_type[col.id].income }}/ + {{ scope.row.pay_type[col.id].cost }}/ + {{ scope.row.pay_type[col.id].check_num }} ++-+ +++ + + \ No newline at end of file diff --git a/src/views/agent/payoff.vue b/src/views/agent/payoff.vue new file mode 100644 index 0000000..46140ba --- /dev/null +++ b/src/views/agent/payoff.vue @@ -0,0 +1,391 @@ + +收支统计
++++++ ++ + + + + +++ ++ ++++++++ 亏损 + 盈利 ++
+ 月利润 +
+ {{monthTotal.profit}}元 +++++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].profit }}元 + +++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].profit }}元 + ++++++++ ++ 月收入 +
+ {{this.monthTotal.income}}元 +++++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].income }}元 + +++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].income }}元 + ++++++++ ++ 月支出 +
+ {{this.monthTotal.cost}}元 +++++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].cost }}元 + +++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].cost }}元 + ++++++++ ++ 月单量 +
+ {{this.monthTotal.check_num}}元 +++++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].check_num }}单 + +++ + {{ col.name }}:{{ monthTotal.pay_type[col.id].check_num }}单 + +++ ++ ++ + + ++ {{ nameList[scope.row.id] }} ++ ++ + ++ {{ nameList[scope.row.id] }} ++ ++ + ++ {{ scope.row.profit ? scope.row.profit : '-' }} ++ ++ + ++ {{ scope.row.income ? scope.row.income : '-' }} ++ ++ + ++ {{ scope.row.cost ? scope.row.cost : '-' }} ++ ++ + + ++ {{ scope.row.check_num ? scope.row.check_num : '-' }} ++ ++ + + ++ {{ scope.row.pay_type[col.id].income }}/ + {{ scope.row.pay_type[col.id].cost }}/ + {{ scope.row.pay_type[col.id].check_num }} ++-+ ++ + + NO.1 {{topList[scope.row.id]}} + + ++ + 暂无排行 + + + + + NO.1 {{topList[scope.row.id]}} + + ++ + 暂无排行 + + + + +详情 + +++ + + \ No newline at end of file diff --git a/src/views/agent/payoffDetails.vue b/src/views/agent/payoffDetails.vue new file mode 100644 index 0000000..9f4bb10 --- /dev/null +++ b/src/views/agent/payoffDetails.vue @@ -0,0 +1,92 @@ + +代收款结算
++++++ ++ + + +++++ ++++ 支付宝收款 +
+ ++ +++收款支付宝账号:{{payoffInfo.openid}}+收款人真实姓名:{{payoffInfo.realname}}++ 已配置 ++修改账号 +++++设置收款账号,开启平台代收款,平台收取5%服务费++ 未设置 ++立即设置 ++++ ++ + ++ + {{scope.row.tid}} + - + + ++ + {{scope.row.pay_tid}} + - + + ++ + + + + ++ {{scope.row.date_range_str}} + + ++ + + +++ +{{scope.row.status}}++ ++ +
++ ++
{{ scope.row.remark }}
++++ ++ + ++ + + + ++ +
+ + + + + +{{scope.row.status}}+ ++ + +查看 + ++ ++ ++ + +使用平台“支付宝支付”,平台收取5%的服务费+使用平台“支付宝支付”,真实姓名必须和支付宝账号实名认证姓名统一+ ++ + + ++ + + \ No newline at end of file diff --git a/src/views/agent/recharge.vue b/src/views/agent/recharge.vue new file mode 100644 index 0000000..6e48849 --- /dev/null +++ b/src/views/agent/recharge.vue @@ -0,0 +1,605 @@ + ++++++ 核算订单记录 ++++检测站点:{{info.short_name}}+支付方式:+核算金额:{{info.money}}+账单生成时间:{{info.ctime}}++ ++ ++ + + + + + + + + ++ + + \ No newline at end of file余额管理
++++++ ++ + + ++++++ +充值选择+{{prompt}}++ ++ ++ +++ ++
{{item.name}}+当前余额{{item.remain_money}}元+++ +++充值卡面值++++
+++ 充{{key}}元送{{value}}元 +++++ ++跳转淘宝购买 +
{{links_desc}}+ +
+ +++ ++ 现在充值 +++充值流程:
+1.填写订单编号
+2.点击【现在充值】按钮
+3.到淘宝确认收货
+4.点击弹层中已【确认收货】按钮
++ ++ + ++ + + 充值金额 + 总计 {{ total_money }} + + ++ + + + + + + +确认收货 +----+ ++ + + + + + {{tid2refunds[scope.row.tid].prod_desc}} + --- + + ++ + {{tid2refunds[scope.row.tid].before_status}} + --- + + ++ + {{tid2refunds[scope.row.tid].total_money}} + --- + + ++ + {{tid2refunds[scope.row.tid].refund_money}} + --- + + ++ + ++ --- + +
+ + {{tid2refunds[scope.row.tid].refund_time}} + --- + + ++ + ++ + --- + ++
+ + + + +查看 + --- + ++ ++ +++交易单号+{{refund_detail.pay_tid}}+商户单号+{{refund_detail.tid}}+ +订单金额+{{refund_detail.total_money}}+实收金额+{{refund_detail.money}}+ +退款金额+{{refund_detail.refund_money}}+退款状态+{{refund_detail.refund_status}}+ +退款方式+原路返回+收款账户+{{refund_detail.refund_recv_account}}++ ++ 充值暂未成功
+
+ 请到淘宝确认收货后,再点击下面的已确认收货按钮 ++ +若充值未到账,可能是未成功确认收货。
+++前往充值列表查看
++