From 5d6ae859967b856864cb19ed9d47deb5b933e140 Mon Sep 17 00:00:00 2001 From: liyi Date: Mon, 9 Jun 2025 11:46:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E9=94=81=E5=B1=8F?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=BC=80=E5=90=AF=E7=9A=84=E5=BC=95=E5=AF=BC?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/guide/1.png | Bin 0 -> 12086 bytes images/guide/2.png | Bin 0 -> 23662 bytes images/guide/3.png | Bin 0 -> 10252 bytes images/guide/4.png | Bin 0 -> 9454 bytes lib/appRouters.dart | 7 ++ .../guide/permission_guidance_logic.dart | 3 + .../views/guide/permission_guidance_page.dart | 109 ++++++++++++++++++ .../guide/permission_guidance_state.dart | 3 + .../image_transmission_page.dart | 18 +++ .../image_transmission_state.dart | 4 + .../native/talk_view_native_decode_page.dart | 28 ++++- .../native/talk_view_native_decode_state.dart | 4 + .../views/talkView/talk_view_page.dart | 19 +++ .../views/talkView/talk_view_state.dart | 4 + 14 files changed, 195 insertions(+), 4 deletions(-) create mode 100644 images/guide/1.png create mode 100644 images/guide/2.png create mode 100644 images/guide/3.png create mode 100644 images/guide/4.png create mode 100644 lib/talk/starChart/views/guide/permission_guidance_logic.dart create mode 100644 lib/talk/starChart/views/guide/permission_guidance_page.dart create mode 100644 lib/talk/starChart/views/guide/permission_guidance_state.dart diff --git a/images/guide/1.png b/images/guide/1.png new file mode 100644 index 0000000000000000000000000000000000000000..66d037f7ab4a637f0a7df3483a525d72e2332e72 GIT binary patch literal 12086 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

bPOA`Qjs^ z_|!FRbIH|Q2B1G8%3D_Y4x0X+2-0jc+{<$p+VLq6e*5|?s)38qsMdjPxj9BMl?<5* zPka+4HCtr+qS`+eM*E5`sf#5!zQQ}%=fVIHN_q<(^74^m5YL=frVJR*iQLz z(l7Mes8wVg&VL6ayG-mS^E2P(K9J6MeGQhVwRw_?oj6jY6DP|b%<$ivR|fsr;52;BB{?MwF~b1pf1I-~M_tWjef{L`Ct_%SJ9)H6_eqe%d4gQ80uv>Tcu z1cajVmZ`%@0lb0eG-J!Ym4^ojl6+m^96bV-2_YG1;zx%saQ5aWk&&+!&m%v1aZPk1 z;@+Nsbz&h_ljDuw0fmGfJ19uKW!#;4Tb28(^{qQY@;G8bYlvr=s3(&Bi%ZFo{!9u8 zC(z{^#+8!SA>1G^N!ZA_?-$Q}(th-8y6YvqK;^sAf$}px8ey#<%)gmt@1bAVG?@_& zt;v9lv6X_ho&q?|jC%#9{%Lqw50rbpM2gZ)jKN6C;{^NDaiN=$djq!7ki@ygAj)Nl zQ_4h)nbkxIvG#q>VwxF(Hz*AGk?MZz&(VCg4#&Wc7`)l`16wxU=bakKZO?;tx5Ld_ z2_wI6Cc+iMH}Od9R8&B+*&Mf3^6!dyl5+N(0_q3bU5Aag$f){tgH0vSCgSMj&xF*# zGjsMP=ciz`N`mx3Xt$_PfcA5gKq)u}8g@5?je`pYssa30jtt4zxq#Sg=z_oWU-QQ5 znYbG@iOOC5q+T=|*-yM^VZUws``*MQkDW91#nX~gvDV9u>2?7SnS`!A90a}&3U zL%yndnR*jXz=z9?TsKo_I%>Q=d5148?eUE)*YB7h!3(UivATyMfDh0`5upCQ``8WD zBRL5z+ajAr!L~Ia0JQUiiQSE}up_S7{rCbrp873>k+sd|F5N3s!ZR<&FmCsLE$6t& z=}=snR?|}E%qDXH&}b&}0$%Er4g%xPOEcat&Ps1A6e@WonD70CuHOJ@U_ohhmlK$f zW~nD_G+txz@Dz~}o|PB8Wt+gceTDZRa{RF>wT9J<^eWo4{Zc0Uq2*d(kE1_JRQV2QsO3eEx6786@QOa`Fp=|75j zYQNN#*7^NXpDPwijbjK(KCkh&;!yW0+M+v;?pa-^N7xyFmu_3j zAivR0`AlX9aeJnA?nOWk``qz^xCxQ|1(rT70LI--FXT{_Wr8U*Q$}sVrHUk&+?q*h z;}o~*y+QoUad6kovy9L*0kH6vkc`oDbXnlhny&s@LswR0nmixre1KW>d!raHl0>V7 z{8FN>$}B1Ot)W@|B4PPRh$}32*7y_AA2Y%9U2AeRvo(Ws$gQApWc%`inS0@Po)9|X zX>%iCN3qvQlU`J00n6(v8fymm5S{42nMT+3R6(kC>&7LbNJu=)^)1|I*vnDCh|iU4 ztpzvlRz^kY)O+}fhwI%jl{6;C4XK*ZOBb%sn9Y-htY0C|LjJ=yuzYm|jJ zU7POJysIwYEQH(;CP+tI*)}0k_NCCyJ^bL`7NU1KbOb59NhdKpPd_+%D5fI)H;{$u zZ;HOWj*aPltx#FrX; zDCB5doEp0;b6X+5xcwB8KNQw`1 zJ&WkD{}lu(e;-CA;1lNYnB%mpQAZjyfRLUw&PsRK-&N_z{$F$DgRS1~4X6=4%gKKE z$za<3$zy}`6XEo5$!dWe?nR}li9r!j_yIZq( zaMw4Z&Y2SD8ruOjv--r?EDX)4Fy;emG|b{%91Mlhs17^~G$!De(CUydv{Yqc0aeG` zOuw_S{03vmYw7)=X05+-s#f;%DFJQhLd}THMB(F>+LMt;h$;~%t+9~FwLa?q6Z<#~ z!vU<*d5-xHq?)DU{7NUxkbA;*}4*Pi*k+$C7M!>_jzqi<73^d zuccZ&<3||hH|NL_8vme}!t1Aof(PtIevAoKJk&RfCWguy)yuoStcKvj{VB@%k8vCv zSkkb(V-L{K*b$>-IsQ9MBTYo)zyCtz--;Wf{QPZ1#_=0A z$wa7qn-H5uh2c(yUq*qmK1cz0mDd4Acb@nc2~^fOpU_sclX8lg_f>a-X03`zUBdo6 zdQP#rZ-$t;n+1BLmLfltWbu(UNfo+Gy>(!WwkFszCT@-$>kLMDhj#D&&&`%w#3@m^ z$$5s{dUM$=YjgAHs;4mqRPzTZrk`TPKDA>SdVRyNRm6G`<+~hx~v>soj0Z6m%w(3;kr5Cvxw;rB=t-wqNaaU>rxN;6+Yi zZ{)|Z;bZD9rBVL^frhP3cd0%S6ad~&Gxu`t5VUSI1mh-PXl&(EOLFEzD}n{~R>jD1 zEj6JF`TvA{+XUfQhMrr%eIsBsN>5#|(ifX(nU&_+Sy+mQH@4wuE^h=JhJqM42uus? z-dMVLySq(qN%?$S!nBCMTn*kw4_c)+N#*XDB?H#_?y$eEp3p-_+W;)>`f`>pUXR$H{K#l~=z2gI)OKO)>&%Txk#4fijmJt^Ig-QS zU?O?pb=obE`^yPcih89MZSqXs^8H41+#i2q3&*t8yFMe_iw0IVL6+ZQF4Wz^&2PlW zl2c)pXTzF+)WOF?Oarv|vL2fYD<{{VYo+=U`ZE-m7g1pM0+y(1n7iRjGp-w4eF7Tb z==kmGY6>@K<@IIV#K_Q4kIP2%g#4=Uvb+^lAARWMDBx=%{A}UlOdtFMJqT>(mUo&8 z;_eyAJZu7njbzRP9!ezUN(?whMtfmo+a;{H-iJ1dR=5;uyI~a8VZ`uv4e>D|j)gfM z1a@OTBaO=F!d5=zxkA#N4uvTBfk2+g*R!;-MxjKqBAH8->lgl8_(mGf8oB4F;07%! zvlMRrDh;+HMwMa5?< zC2_Lv!RZJ4>_sr@S5mB{(@YH+Jx~JBcEG={RAsFEXE-v3kPVCz59kOhdEMqz-95ln z$$SAQyO*4?>dH7t$L!$gWA0A3!!($qmT?{0{$4A64^kp{XX16}K{TD^OSZGOos~t8mt9fQ z_Ec5fK#VEW(t}Qg{-TZ>5?b_}SYCi+#%1^_bOD z?g{|>^erJ@x%hn%ZGk#T1t7g2$kUfq(Gio?1F0uOynLCu39|`6x4zLS(b;h;IIF`) zP~{*NCWabcHMvnyNU+Wey`y}-DlTeUPdwhHp(p-Oi<};+f{oiqdSWc1X4oAcA4?NA znYXB}cJ0%inOX*9bbHpZ=(V$BMA#7pS&&kM{b_Rd>eL*`7|cLj2@BFUnpt@B#O!vM zy=gv86$G$6R~1#lD6$_-$n3Qr`5r`37nS{2&ty6G^zu>|uR;)n;)}lGAwW<(J`(SP zhgJA0eE`leZ5=mBGLzTX65(54SEp0pc2Qu2u~q4EFd%=yU}|bfGY5^9-+K3MiQL@{ z1mx#O(9muIa97@B``dOwx#(0;Xbh@}8|Nm)M<2=OyJ;=xfcuwHAnCrFp&P<;BiC<4 z(@7Unph`gk(P!mY9@y{CIPq7w+lnMph-4tF9xb-`$}L$v3oR-(AMUdXSKAue^lnyI%O*T&faJvg^ID zd9PEDXqnb~yDfamq?A}J4_2ahfSoyd=)pvwe-0cSu6YO*R|L&NzUwJSq37H3y zBV66+wp}7|g(~ExtoL^6)wa=>JNVDj%;rPZ#?=ee1XyqWK8FgN=AHni_4s%eqaw-OFMiVQ zf?*$lqyhBu(Cu%DDOD+des8unuJ+^OPf8pMOc3v<<6`m6*0;OgX=q5BIWChh(f--Z z`K?H)SuC4$hi0-c6nzarxRL_wU2!1G*Zb62jIFcA1RSgwHBPXNGd_P##~!_6*U{go zTo)1?4Rzh?_N}CFwaXbTNllYIs`DqBK6n!)h{4WTAxh5@NckZ`!IAO(%Rt-&CV^RR zS!X`qeQf^f!>Rxt%^4?{P2}vP9;psl5&v3};S|x{CMl(TTbh_z0uu?wdB=8G);DWC zNwgYnm~9&_$bouHWa@6gHO%IduJ-;fCx@K0DQp9bJ*s4@6pHPyY_Iyn8r!r(?sh|o zEMvvxjP$tpYgq=%QJg>Nzt#`WC5yx6SNZgtt4o+0EZ&rG_}k1PR6&zlw!Gj{EFF7q zdANOp&&+x;5Ul$JsF7m#lafUq?&)?&q1qW#^L42IjcYuXZ(prT6F`_Vd?7zt_T`LH ziQ%SWA^q;$ILWt#aM#{xcSE%Idc=!D$(krwV_d*J&i3Oo)N4DZPnk|EnI4Bb(R?p# zKYFKcYm~&;mCkF6F3MAW*mo!IuBQd{d~}&inTVrDch_!x83{2d4m|!Py+l3{O-;MZeDB#DgzX;sjEyUm4#^;}X?x<9m z2L08%8ZiwsdxhD_))nrNSUs3&eq3cU>)O!zY{gf1uvRXH!}Zus>L^1Hs4S6!C_||f z&)NB*FJFhIKN+X|9h4T9rr2JkPL?+se?5>}>%s$zt^IDy-a`4+LlgPRwE)zieydp8 zqUw^3w`Nu8>Vl10F;+8;#^i2-VsH|zs-1yby&?E61VXkEeXkq0Rr1rlpMy5ra>M|! zFQ&Y^Aj_WX)VM*?`$-tZ*gbn>S8)|kiPLiQMW~VtXL;b`nu#z&@4?s8i>a&IDuXv0 z(4k^UyUJs5T9iNlZq!bt(?@#$bc%yfQhSqKmBtqghDh8;Dii60#lio4VIo}HZcpd+ z`D=#@|3ss#-wnO|VP25>p^T5x0s7%=B34HlX!Oa(x?xI~ z?KA-qh#j25^z)ehU<9F|OGvnFNfXy!RAjU8SfqK4ZR%T7Z(K>6<}9=iLB)?rOe*6x zjep!3&>nIxd;2m3;oLl&$32Gn1@ml9z z`FMz$`?FyfI|!|%s8{R^$=vA~ks4D}9jp_SI$4fv(^rxup2-ob1*zvv*b3wpPl$HO zzPaAAulIeE6(J`KoqsPYLz`r4;@DtgkW6yNcGrGxAs4?knHfOd1qk^?k<#Sj-hcf7#jE3 zAennml3eQ^06i{ndhND=W3XaC6-3AykfVbLLv{Z+-qn>4w2<372xD~Hd)Jwd7RI6% zH1A_|tuFZQmK^A{iMW{mv>#NuyBIltn0ClNdaJmrXfY534oxPWwYTB%b23I5&uvfd zad-KUzf2N~q&qYi!svVZl?8kWL+{)8H(=1JqE~vkCbHD>Hjrf68F!*2fn}F+SWpbH zPshMgyQ9fw(GcWz%#oCKW&{C1j=S07&Nvo@W6nqE) zRM5cLk35jy@Q?}mbC&^tUwm6tMkb%SubThT{vR7$N}}Gai)8hraqEbQlB&g+CEPc@ZbwFeHrii0+=Hb+5WY?t<4Np!HR2llHwCK6y3-uG4r*fZw*4Ij|E?MT^dpS z6Reb-(}!PP%@e-+9SC|9a;zxSs$yeX=E`}V71RRIYMs62U3r^2!d#A`a2|we8*GH1 zr-yM?OccbNqe!ABE`N<7J#G?F){58uIiUjb4E}Ax+f@TADc_ImgBRAo7#a3c2jH=h z0pd?s_Al*TG!#qg#HSdDJU>Z5F+Gs(0=Fq*^OGE z7G^Tjy!^8;S0r}b|LU-r-)khpiX+K9WK`I|(#289+8LVS)n;k-g z`xm#oSMp3|tTywi@wwb@bc(0-l@saGyiX4AHrnd&WxBhhxYMYwYAmR7;|CXp=P*fQ z|GqAhDPIV0T__aj_j$+TaEw%KL>cNe`ymm`6>RCEeYFClcAjO;9o`pW&|)=E4GS_8 znlPHa(S}mBQ>NP3eqx}}#Aec4Fg*|I3uu6dIlCq9XD96Dlhy5Y{>wCp$( zOoEFty45u~G(;$mWoX<@{V^KXh*WRE1%!J4iggE8ocBhLSHdgOAr~93=76WVN=|L8 zCcE_%W*2Tv=r5pkJ~9$KulOz{Hh!|+!c_Llg?A#6CmTAr5<_4~P~E_*b>I6o{C5WG z{6^;)9Z=iAL3F9+GYG<(4JkQ=;T(jHfw`DJi*m8vVOO0%sp;fxmhM==6G)+~%^jHk zJ}#0C)1c&G_XTfia5mdw(PIou$7Uba*{iuV*yi}i+|4-<1kg%4!pC{K84x$Xf85h?wmAd5@>7MBxVqY9Gx+FcT`E2m0O(A5wz^OFv+K{R`jkWj@? zKT=aF${M!JhgPw6CSchZ|| zDX`RCN}|FtYk2sV-O>~oy&2rT5Tg9+|3K}xKZl{LNd5U4NCYs%08nGVB;TUEAW+&V z?=aaP@KNml?C6L@J-O{V^$RFEa&j7RKz;Qco3p!1qLJ&x3;LVgOa9q|mAuYKk)l~x z6&K6>C$9zrOkhdOdDcQ6t@IM;q}VBSpfVx%$epKJQGPwE*1gV^FMw#Aw7q3g2P7&f z)2mS?7+YLTT=oytpfmL|V-1C}O@nr0_ zZig8Kh>{)kaXB7sHvklie=%0T+- z8a?JW1h}~33nxwMVM+EFyeg(Uu$Xn5sOgxz#}kjgF`aGIodEPnb`$^4$t+W}OY)Qb zn`S_vmJ!q0RdE+X40}cN z1CB+~&p&sn{26UFIKU?Fy2t*5$=6NW)}!=uJtIk}2RKx9-Sx|EK?t^wZx%X!pnIpX zcuYr!6p=)ws9NQHD3J&Ze~!Bq&-uRu>zwqFZ{Ljg#3hyA^~9X~D@@aLR-WS{I6p)P z&w+2u9x^!vWGdzqv@KPfD5WC_iNWmqd zAv(7pa1Ye8)=N%Nc}Rp^JZ1z=%eO zV`>fkPf?yzByU~|Q@jPn%5l>y3c&D#c5?>5KlgdeK~??n_@|1h)$ZNh0|HTA3iQr*XX^i2j}v~FYgUv=m*^NsQTYwOhY!9~K;Nl{~1 zq@Cu~HwvDXZb1v!tfZrQ@kkKKRQFuTZdhsg=y!!yUIKv!!0S2}9CN{NNvD!o70}6V zDR!Omg==a=W}_`~mz7J>Cfz+m zi=_Dm+SsPny(9%m@fqk?ZyqR#gWl}0|8yTgWDASLU0KoX`U*w}gpMC&ndIF)9LO$k zzRq4+AZIHkZi;}{j7bE78r~!%@WrbUap(Ls{xNb41yeQ&%w5T8K;+7C!Kd-RSnFZW zhgF`ATc2Jz*FtfIrO+ZJCM`^~Vs*Yx3%XErM}`hJ52{u9T8QzV*>8D)jOV`1bA4wD zOO#?q)K= zhfVTPlJVH#`*ft|w2dnKLgl-sW7k**yq-O8Ni9M!Tu7y9>mO1qVfE(W{Su}%Ts|mE z>XBcAIQTP{FDJ@ChG_i8k!ptFr+7hqHp>pd8t{aEyqH#|PhF~A$XCSgDLbHE%b*vA zU8tuj=^Rt4RFXhJEej(Aib#LkVC|gB^cVLsE2}}?2LL&4o6KG=+Llvsox{s!qdalc zCyw^H`n=cSGIZFTLx{baoWoY%XEYL7IxQk~^(y79&!>+T+IkKi!+O3H)Iq^g!>lJu z`dN6-PIi@#&!q1(-G1x?s9n|F9HCZy^$id$SOsh~%m=SYsM&29ndRo_CTRKL+_$xi zxyHM_bQ#T5+pWOJ@ExM{Ky}Fh;-;eL1jo60A1+_BHz4s~40k8^1fGr;+@0bFq)6;h z@;wj)NzEqpb;4w9)-G%Kt(}A K9wuuV@?QXcz1{>VnT?UsBAP`)G>)`J09^BpCb@uyTcVBk* zr5?IY_c?XCZ=LE}w<1-QWzjzpeFOji=<;&XY5)Kb1OUKoBE$c;fFEjf2HV-$F*i3iH8s7ty*)iW zwX(9ZwY5b;LVAV4E-x>Qjg22+Fol3;80^W>(b3)A{rdX){QMjSdy$9SxwyD|{P^(- z22%{Uxqo;uFfdqKTl*UL+}+)Mbad3v(D2RwVRCY6Zf@@V6?SlNaQ+VK=;*+~!Fh+> zczJmZ3=GHyywA+cWM^lmrluw&Bs@IBZtk8oHa0LYFk~SQi;IhTdV24$=d!Z0y}iBG z*4C=3s+EmuOuqT+3|9O6XesuINN=izZ&^{M^Z(z5u zhne|9{gAEMBbZj`o1*)yiZ@Im;QbwTX8Utm-EXp>s3trzO)m6(arsCp^vED^p|G@F z+6%V3f0N&Rx^fE3X}*mrJy==WH3^@pwO71KohD6;@ld5+EGyiD^-r7X%$CoYt6T(aa0JIt9r6tromroZtZ9Yp7 z3|x7om}F)82y&mG+x%_a$W95O^ zs!+T23+_y@Bzw3)YKznRSw%Sq97>}aA;x4VFlq zowDKMk)3+ijtw5!B2y4Tf%Y#;*A#14KTvl)9?90$9UZDxg}0*YX4|Y?^;KF0kCVDD z)=$~DxY0oi5kKNX_+@^R)v9Di0?VVrOE}F4Ivy6vfAg(XDnpe(;INh@2dOTr4|XY~ zgIHa-`~?Dw%geN#(IadCX3U!_OPkQsd;D_#Y zJCZhTM($n5&))^oCd_A#jt*91!J*y){xupP=!rgn;w5A+{1;|hdwVZC0L@@0f_O)? zGuolCxa|B^<-8Jl@7;dR?jsT|)U+utn&Odoo(+Zj3okIxcEb7Fjw{gSJBa>x`qs#} zVy@GyI20}E$&pY>(#4Q%?1XXhhj5CA$gA5-F0|<1+!2}dCAnj-D_lbS1ll|gFXX;YP7AM~b@1MtisI%>Fao9|^L} zB3wA!S<~t{$1G9Hp!XH3A{+F)XEfl^{%1A&H)#>lBtg)stHPh-4c(xb%iZk*V!H6n z<8M|=KAN(u89DA4E4xK?glOK}NU!(3XLeKOz=g)C(uwdQ^XjX=V%-~zNAw;wu=^M4@1ctPQG z8K>HY*4-|0@s7ULz5JTz^9RS(-caLcNfIVDC*hyL6Fu$hIh)Sm;;P{<2wQ2K6oh(X zY7C(e?HO7roMp;kis32R(9iLdE~7}~;OEZ+OvO@Qy+8XZ0zb~LsY&F9ny2r?j&e_Q zX6qxdPU=(S5X5CDzJGz2KsL-la|t!>A*Zxf*cF(jRzkKa&t~|oB`oRNQKo_br5ic^ zC4~irjzXhW4_|c=KL9c3f2W{LIEV{4|HT>5!Yb`T4_3ew%S1faxu4lA6mhkbfH+XBqVO~T0WEV{U<)^Q^(p5yq5E*1Kg1x>o*54?M$AEL zp;;Qz?5e@m>@yPRSNJ)b=Um9Vap{qg8NS&MH}D>1I=)NZ3TdzNQ4a5k{fJ|4Qh_vK z+aG!S4q;WOx0%ZimX~dUWD;oAPpD9hPOJ8^#zsc|!K7X3Lu0Ikd(Ij7Wh$jMf~>4Vh&(Ye>x~;1_ zds04h(;-!NFtjbj^uy)HJhJ7)xL2dCveNLDA15!KRhoIpAoBQ5+sU>-VZ!uXGF29j zME%K6ut}#s5hnD`10=}*(^_Rzg-%LbY?WjGL{QFcIXX}`w}u&1|b$8<<9>BO$d_f5UYANn%4sk!CQ zxH7ZH(ei$JN~BYp|IvFia>%ZkcLExHTCyiHJ(AePOEH`MqRkFQu*Zg3{$WaXM{bl_PlF!-qNEv`Jtpi2RG?#`l~ z*0$l`7jIUg5wD_zI4pmlA5uBHc{qx#=@U>$fbZD)O>&^l}O)Bw~?jsDtu=?&LCwJfHLG0_9Q$-T7&)xAfikTEkSOI zGzBX%W~a;X6GWXV4&Jk_!$tHkB9Y9`3F`PMdc$Dy7ZfI+ck(}IvvL*TZ+WNpGwXcU z&O`1Ih=GN9r7Us$AZaQ~zfoP4j1yPW+eW>_2!ciFIg!xBu`EXLfoOhJkWdB<89OBC z)YaA0C|d0i%k7}bC1(l>NY)J7xyOpf9Q5*xx*Cv~yEm12P=gC}!xA-W%04pzS`pP0 zJ_;6;QDOxq9=N13g1ywsxUQq1UrOhu_rTrOs%m&18isDgJzj~3%w$(J{!nk_2VVFOec_W|yZ@4TD`)?~)jnG*ojo<9Z0A;<(X~6)!6e(VAQt!)^ZHOxTyl)@wXXMjW9C+myE6}|b%tS?~iMue@Fb#h=u#|`pL z*S&sS5^(!HX*Bk4)v3v0rw#PX`J5MNHuE6>U7aB@W^s01Euy59;EMzN)olK={Zv)!1`HM|F6Y zF17G~v5#k0)7g_BVqyZweZln&3JaHJ9v3Da4((+|kg;sIbvi(W&&!$qjIwt-HdbAH zRXv9+CaR4U^Yit??n-5E_tv)I=EAn;o_+xA@@50Jn5zKt8(B{sY*6ZVdOg`YI#>{0 zP(I~5O5?GckLNi{s|U{(u-2XU#kiX=OX)5dvNGnaA{H z5>oZ%K!Febg%>~n1-lpPryiY5u_HI;V`7tPrO_$VDC!}s!+62R6pc2`q^&Uuc{-HT zl=rF?cF%)gT5gQZ-o z1~1R8o_}pP9C#$e!YX9M#KI^&*Gw%3T$=tRRc#82h`oHNpLlikEeL-;%Xn~`^0*#Vo5c;Zcb^xiM8jasa-QYrhQ`vR~!Fs>oFbY z8)e>}*8&!;T#ZmPfqVQXk+nW)Unad-Y-$A) zT*jse=WP~}E1Oi`EmH_ul}infhaYb98N-@{+VoRr9que~gQN1OEGBy@Ker&}XQ-&mclQ}B6Qr}a&!zW}lXg&TWi8VTFi`8Fm1di2yy z9BWEBKMQQbqkVW| zqEHns+|>}r>6neB(P9Pxmzx2mUTlS8UWz5FdIBa#(KJ~pPp;iPZ#LCI;pgkEEnKvf zXgCD$835@S{wSQys`*wUdk4H_0YN|z&)cMqqPExFaRIl*ScX^5f-au=KI4mqjYRj3 zhh5Y05l!XM%W`L6Zuu9t*dw0EC(ycP{wWAG`CvEWxhJf)QqJeig+Z~|dons$``W1> zzA+nws8?;#s}Wn&{x0|jZtwUf#?~EF1e57y55&NXD%#SzTQ>5qea7LH4MS`25=2Rd z(Jsseh^JWUx9x&LoU2eq*$%WxdI=% zR)4#_)wz?n1%OvmE0F5#BlimZgha+idf6@CdG##)f|mfICFViZvet1q2b~98VCkbi z`1ATMb$DuMioQG^XL5^*@R?Oo_0kWiG4B>cc0l8;%Dy=fogP%Bxlg0{?J_xZ3M*xVa zTL^2;0Sp1MNiiV}cBD@@U5r;g5E`5CkQt?T3RJ`p&d8h%jn$x}Em?bQ4wv3Q{l?R_ zvl4|Ad|j86%#cRRPT0^IrdWV%ss7p?*(Jv*JQwoXn#NXlx39Dt_~8go0!a0h_xG5p zWd?B5upVU%z4Y(#cnj3)6+z{Pmjwq-BmyuBj+X;vE~wTY1uU9fX%RxcJ6BX1W=|j) zR7RWwfgamQ9^1{7DF=U~L>3_%w<({!gJc2!5J8Ub2)<(4!iD`UWg^h~WO=Q9ia3RK zeRnrEAM=FmmbQW8Zdvl98m|{*?#P|4fMF zsarIwWl&ZLJ_-4BDZ>#d4gv?{w03lE=VkDi;UAokk0#mZH|8lJO~+jOL{$ zqvF}^+}gA)2Wl@I{4)7??2?CS9*G|y-u<-D*|xPzQ~52+b32sX1+_GJa!FKHu;aS@ zB`d|l&t6~IT3>rWs4*B4SPy3i;X!BwqLR&wkJHg5imb^C`I^VYiu?nXKKiM6}`;y-RHZ$V7kck5JE zw4Gw^0+k@+kW5-OITPb7dO!i43V({cYp76Zd1#1lplNHuLpW3U7eUTFJj}!$4-b}YwPnl_#B-$K@YGw5>i)N(ZIDzk-o10%A&U?gh-p14B z4zWX9Wz!`^l!Fe3%RTB(`~b&T(lW+j-VM_}HBKOpRS{@A6#gaE)VlRMr)O=1@L!jqAv2a`FL{^F=Y+Pzk*ode#?Q1r zwEy_n23qkxu>x@5@Wg%W>Ky*=aG{OV zv@X@w^bi$uoDXre$hsywJFLqSZJcCVuU zG;n$*@aA2hyeP|v0aOxII%5sK>NAfNYcjh}Pqn@Ore@54Z0cnc#xh^}84` z2z)vDyFV#Nqz;r`w_qi?T&A>q!b5pBM|b9y7I$x*a4)1J=Tk55lS!A~zMS8# z{AottZbrWd#j29;|9TsVc_kXcS1dHT3^S}H7u1x+52g$7eK7B#7_lwh+Hqd_LijGC zE@(H?@jh4A5?vq*f)k?Q_byEgNKC{#3QVT**R@`{Hov&|5VNCNgKfNs2O&4_q~r<< zvGzVh*BvG2i~hofSRgg9Y(rMlaN^HKPkGKOZ)H)kj(SLv6Qug|M)NK@FI^xJh|rAU z`TqskjMbP%`uztu$@#95b5j#B(LQG8EnI>nTVTVq(7T<5qEJB zW|tv*quPYp6a@_PhkSo5yq8I1Cd)fapb`{4^ zG<|H=o1;k|izi+HeBWSkHosV;92HJ7bCDZO%Jf*Tk&%sCNNO9bgguV@h{7LZ$;##6 zwCi}^{#ohsSemTA?)=8BC_h*BCy=grE^{l{!w~~{7j+xU@=q(!acC%+a+gzl-%xu; z;==QA=xSu~YQe6_X#mI~Vzl0dj^7^OW_BJ)pJj0SXyWtnCrFH%74+X9rkjVrzI2(7 zgU-irI}Nq#D5X_u#1W$@mF$~T;>VsB{)kF8mxAT|h>(4i3 zV<{vtwrfleO{VM=s5y21325on+G-{{QTsXP(?KVQfG1Z~%?qYxs#=rf2Uw{d6s=Qm z$IyH-;8^>^kKG&!i^ti5M!k&mG!P?V9r~j;;z-v`reRTcekU`UB;0rFn1<@o((>}p zTGRlE)H4!>^m8xq;dGbd_V7z@qpOlRd_(dNtb_iZTd5Ct1^(G_J1SI{%(DR;Vzdq~ zC9z`y2>iHvjEhJnr%@~Gi#LYH`gV&K-^^uKRXY^!GRi>Yk|!wanUz)f$~y+$CX?Jp z7pU(f9~hdR%W3IZQh)yg9SsUImrV|SX4Z9X+_|cCKQB@Ad8^f5DtSm#Mnz4S(6tbC z8FyCv%VN+`vse4#E_!Xae3E^emWL*0zOKWl7ynP?C{c{Wpna108gJiU$9X?pCZOAf zktGG5?q3LFp8yWlH^8TuUm4Ua1PCl?0{2^K%RzF^*bG!k_C4;wT>yKf)gI_Lfq>YT zB8l0P>q*TGe(oh3`QiP+rT4c^vbX78TF{%X*RlSnj#2lbA$kZhgjxcCLSqp0{l}r9 zfEKS-L6}XcVV0&~nk#?h-dS90ard(sEY0FV;S(Z&C!mpQ0Z?SHVdOx+ zM1SX8w^&#_z%|-^2`=4B=a)ii&OpEoN78&co9U;g0S``eR6h=@FzfEyf<9ieRrj6BxS@=Y`!`8PN_5+kBZHFU}HNFMtxxf@3POS^b^{b+3|H4TPI8`B7L zqDrQSkNKA9ecDD(#--X7EA7vRtY))=REw-@>*=1eL3Y`ZGoT8wP>Z4PjH-r4!#u~} zUa$`T$R{N@3^EE&0sb*swCKKtU-$Mih~8hdsXFO$>XX#^2r0iUAeprMC2TpWFHHpC zy0_IXBPKW2x57wB@tCxTNkuE^&;%Vi-R~1U3_N#2huiMvXD%i>Zq`<92q6F3k9)48 z!1qSaC>Zb*uDQA#U%v~}Kjuwm8M>OTSw46>T4v73N4Nn*~PXXwFf4xFib68 zglhmt+WgtV1vPdN0|g`o!?c+2DU4#mdtly*Y>wkg7KIbXK#(B{E7K+fIjD>B7m^zo zogfVLObRjuxCR!-%CA}e;z5uDwEPIpMCx){RNXJP9Tw~?wiMt*S5cDL2h@Bp-`GPd z@sTMe>@tjP?Y=IB_W0|cc%xPB-yxpHm7h@Tn{oUV?Sl7=G^t`Ii?zAC^7QkI*t0P- zoRGsZ6wgP8V~P;4_AXlnm7JNG=}$?oNu$%tkznK$k>XBAy>|%xa(uKb(HFFcxhC#1 z{VyYVg=3P4`_{FhiWkzH9n4)MuhJFd&WbM}8~W@GS>j51{0r}%<{;qH1sEkTNpwq0 zOmhp>q$3AQz$091T}6+Tc6XO{JI>{NELrGp9dp;AAR?7nLZJ97iN)_oV8o2Ox3qUk zp`#O*Fx!LU{9~eW`1=H5wErb%zSoy+DQj;R z8_n@F5#{>^Yd^afUYh&5-}mcM1U#o19xA`zpX}14d?{v0(Xxi>XPv+pC+EgpSmVBc z_$TYdul3fxEWi!BxZUWX()|BB8v8wHNpvwa1d3D5==_sS0e6MKuM}NKK&8ue8cIU- z^^BQL=fvU=IVXf5mT`8tE)~H=Z3%g2blGY*SEhKOUoHUJLCNPHAEw~M#BNC+%f0QE zo^6HGFbb#b@fjyGEbSTv#J?X@7~l?ch#QUIES$;8ce!6{Mxk0CZz9zHV!5^tdihHz zgTMua@iLV{cikRou3%M$KM%f=6C>h|VIrA`xI6ZVdi}^l>l&JO#=9Y%&XPr^cY@6B{!GqPck!tz;|LKWofz-orWVs|9Lw9Q|)v} zrd=YkqduW4UL7R1m6dWKYiePmzH}PnWd35s!_u2IZ?1gV^q%{?S$(`Mmql9xRok&(a@>L%Of0H7(MkvSZ?2*aI)hu;NILdU zv_h2!d#&mYW(OZSuV%^`*;kQ9qP}^%fL(S{66ZF%N2gE?kHZEAeg+G>M_;COh{lg? znQx|RHo6$Y`TLt;`NSZ)<8?6GA(P(iuYfIBv?^uGJMWh4tT`W65pcoI!(|Up@^wFM zR=vuO?d|wZ*NV0okn?sT$7A&8ay7W3`qAsER!>^7-wz;ooVi-SVnJI7xSPJI^b%}B z9P`wCf4$WhkNU7cU&`mubVPTk`fI>=dU$Yta?Qtj9a?Z5wHYaWxL;%#1iyo!4UZ2{ zlgNMks~o%=3@A%4`4`9b=#@sPEV^{wq&1Y1eVJ_oe%OPd|fLLwPytKo}X zxXazdC$fQh$%S*A>@){$ew*aI12HW&OW3`m4|^@{BCiaj3Bp18j{?ZG zMMHrCz$RFoPUZOC$8+~1h*KOZN?baKl_X?L91Dl0Tkg})zHi&&EV)$PbnJtO^AmP2 zDwy2ci~DWjZcer`RcxoW4NMz$EQefttb&Bf{|$M|nhMB25EAOBcW)5Q_+io3^u{8h zWFa}t$?)yiS-BN3FDZ=x>{!x}D=tYL*Ck*h`>k2JqChwfX!wI-{GYDSN^Y2?3LIv( zWEBx{_HYsJbmt>nEnqiwmxr)?+Es(hX}F=O zi)$Tml#C=hZKTVAK%u83eR#lp=UL>aMWhHb5G(vsq&h(r-TdN5WJWkuYio2Lc%uL< zxI2Gj^EC5jOt`SH4z+S#0CH~)>$n&P77|5^{3D@O;io=xctQwJ2k~dTvxxKc3IDx8 z2a5;&V!$Nzq@K@=eDy~NlU&hZpzQvEsBUUDb0BFlKwj`e;ra+Si)3Jvm3gvFHIBD5!EAby`khg>T36R^s=#43&VtA;z&aicQZuj9Yn z4zFaDiFmxfGwu5L8|G90=%{TeRIgB|twyxrV!;B%1B51kb&N=bU(RC4g&>~H6wFmTN!|(-VU1NSAyE*AigOb#%`MKD2H3Ade z-p-2LbPHt^h^`A6_?&_;g+@PaE+>)Hg~=VFi;lgNz?c+)2y$Y9_Y)`900d zq`n?CysI=h`iImb=(P3n3bQfvtBKIwL21nhuf;hvydkA+(j8HuHXU_lumBGTWK&oA z6Ychnk~U|_(B`uVr+V1bD{_9y$ue8SjN@4=u`K|NT6I_et)7;?{4>DrC*7)_I0Pm5 zuTCE?z?8p-B*psh0-1xw7*|NL(l_AX_4ReGqQa!Y}k{^!@JmR z-@&A4bH%ax$8JW0g|w^kvaO~DdW2?Z7bS?_#)MtyMBFmCRLO=FLBnF{iQxfJ4dpg4RA`PSvrqTtH+Z4<43hxaSw zBTiS3SrHxb>IZvOq|I+IqCdRH{r1Cx7MoU(hC+oA{gn2X=FpAFrAiU zG?SPYfMYoJWtZuvI2Ig23V}z}lyD$rNq?wJZEo>`euzIf-fzZ}%PLDh(4p{x+W+4>PBvt5 zTgXnFqV_+}0M&~fptoenSCt=+gl>E5nyK(+1F^hL?hFcIV~#~QHD)anguY^uamsu< zUUY0bcy`D&SZv)`q#F@{>~yYYt-5%|nun3;t6Z_Qe*H-{ub?!C1*+h*K2@wvWcyq^ zF#g$XfPl57oDNI{#o!w5;TkqX42#B3uw$o7>8hzli2rSC>H?vWu0@N?&53})U3uGv ztbE-S|K#%}`wK~6@`hd(Z~K9NLSNLUfXpZ7LNVq0Vsx6+0&rz0hpTh`0le^*a~lR1xFu3e{cEne`ROuz$bri^>dfuZPGT%gOT3_Ujd9ptS1k@pfKl zxL8{so{TH)Omog<_bWC>hZ%q{kG*}l*i43 z54$_J8ny4t=I-8127ZT*&er8L6I3EnVJ|XC&$i}&u^;K*v^tvAvHBZQ|_jY zxwd)z&{!eCu10D@Cq}@RaCUC|Qx^66-v)LSN=Q4=k@Qm?dB8%skmB^b)cTT$eki*p zaFZUWb#Jd<`RcsRW&2tWIA!@m@i)t#wW5xb?#gl;u?YdF{c2J$|v`K z3Ynmu^cmp5f8td3_+UnT8t>$D4+optWn8SE^n|omf8vF^*LP3DmY4P|NGE=WJc;C~ z5AxgfYPR<1MLU=QOEsO5a|l%YCVKh}9h}|g1y#VTrP78Uhl|!O6ZfDbm<8=bhn?Ef> zSqula71BMAxlt5=Ygd`C-a{u-_Lh^42@Y?E9wHUDfrKULqV?9Z)WIz1I#sdPY03Hh zOJ+whvIGDDO96oG%X!q-5z}P9($o4dr{UzP!JSI5om1@70U3D+TR6v9X{g z2w>P3ui!@fX`PyeGDMY>;i*)vFSnT(!y+TuW$VNZPBRqbsQvT}L-XG~Z9#rrc}*5m zJuSRzI|p>q&#O~RAxsR!ea&Xhoq*f{f=_FGgRFhl`s*o)D zHlf>$eHh-Ebq*L6;s3#Ue3EzO8v3y1LVsr#-8F7~B-$X($|b$u#S+<5x^R|*RSTe4M0xY+Ah z3v}z*+LL1XB@i;duNkC-bliD}OC2)dRt5Le?>Be1mv&P1lao*k*4yX5F?HyXIoCb= zW>5yxSs>n7<-`8Eb`_n=&`n{&b#GIOMgu#?#qG>sb0|Frw@f=PtX$)geiB$Yv? zOfqX+6lIYR&yV`;%5rEN^wDLw;n;psE7+36Q>x2fw8h%yMaLkhei`?sU)gs$81Svi z9$5AB^u2*{w>Hwi-OHG4Kzh1m@SgoHh$UE=j{K~0so}&&qhS@7@|Cm7ar)V;B|Wea zW}_D(EnR;j-c`Xt_g_&)mIR zWjxV*tig|7+SIFt`S%Cl{amHJUDe}z61)_rKg?J%rnUD_7w%#` z2(aQ)2mgDx{9>3t)DL;gJ9l}L9`9kn_;p^-cY)h$QWPy#^b*eBt(*Arni;UTPTm0h zr(yNOjN_(&8R7B$kDZGckCj!7^ zNy`Ca8_ov$s^3qN{*+K01c+Tb`XRWz)?LXX8mIeo6$Yf` z0hsi~oTtC7qL)h2S$Orz+~W`D6Wwcg8X7Mj956FGZmroR^$|aJ4yt_q7qf}~U<2V% zQ~XB3aXp-%%jo9qKU@p199Y?;&)4_6w9rc4*qr=n$wc_Vc1Crs!~wX_*w$NmE#jTa?`YICor)jYnP zv@fD~l5O7IcxgS6p|UsvJPS;QbIoqL=dpg%{`D9u;56S_ygCNfv%q~F&J4N;zrTIz z9EneAAtL#L)Fpw9+4dXPGYj7I;X49Dw&r3HC*i!^S`)UVUP~>cP7|_DuQmQmMe}9TmHc1T zv}^h+S}W%biO~5oa6PjQZpDK40(_!|hYVQn#E&|PEo$?OJnA_dzt|HJ6cj=KKg6jg zdCvP^^Z5C^GRsmb-RHe&^N~E(Y>Zgb_+)!})@D2%=QU*=XV$vimdv_c9m`=iVXNW# zsrVE3nRuJOvc96nMC_u?vs<|Y4fHMabbR3}pYR9m3BwgA z+UxViotE!6Iysi3sN2pUI|3&&w5?2%xk0l;D`Zp7G|T!vWnhNj?Mw8ylEdZ!GJxHg zNqA-_qRv@=^;GGxtB%tU?O?m>j@yds&Nnx9gBABIsbQ$u;%Dxl%wX{6`+;i3k#*X{ z47?u1@R+)@?tQDS38nna+mGtK+m3ECRvF*KeD~jpCzczY)7b(Z`$5T-t(C5zDjTL# zV{awa)BGwEh#x1BpW8xn1b9~6>9C7yg#e?#V>Z`WhE(lg>V&;qt9m1F#r?(~DeLAn zcrZY-1aC8H5nE+jv#%kVVP1>(1Lq5zxO=sowYyGptKatx1zjnxGgBr!18L~Qe2YcH zX@ha&r3kl9lu4(^gKf$3RiBWXnSXt_FXb=W0vE=r{NN^P{8l)Wd3tF43c@ zD5t~SRFOBcjbO9z;O+pjb7W$t4;Tvu){s9tmsj{8#(`D@7hpB}N zyQQ1oMIEaFV6!7={hl9+55+YM<6bTxOm3U*XvNKg*@57#6aHW2p|2 z&4!bMGyX3eo!sY9^lae9@VtzMvaD9K#uc`gl$dz%AUz!&bg9I`IM;$#r%EvxeGwl> z)Z^C0Rw!XK`5F9z7kW}Jyy3Vd=rHC2zIs2%X5lCGVex=`s}woEV|B=SJ2om+U+8%& zkGkv)p-dOEu9vBDklCLHR$+e7wUTM;$g7R635kd@ee_mnaM_QD-WH z3d_XWI`=Y}F|W?4(8(-0T--32dIM1*LxW5YCskr|+)}j2cP|ewj4U};n9~#=v zWFsKduGEAQHvUk8Gxo~aB}z}*6W{mLwxcubUZ0{4v}KV{UAl7ae=Ls}MjwhEaIzmW7` zV8>&zVNG;nspS35q~<{9ylJZ-v?-T2;&q#spV3&=a?`_L&aeSC8ah(a;q+||LwI6? zD!}g>IQ@p1X+hI@$HpSVZEfb}18viJ;|||RSLnlhLBLL_5EHY5?^#TGk{-<5C(Z!r zz3c9`NOtl1^9jq|e~cr0>&`VX{&^`X{J0*R0+65%2fKp7^y-^Juw~EZD2{RRqW9e{ zj%2lCj}7sZWPrltICj5SF_Fc=!+Te~^`Jw5i$y)W>;-HL{^C`u(Gi3|jhJe}2cc6G zhkZ0;^iRhFVoAV%W#Ik2(MVke{pLpNB4o>i^eg&YDPXfm&qMqK;Dj>!HMQ&Hob>2O z4CYH)?Bojx!TGvkcC+4WC?%X$Qu51mwMz-{t;(N>*R1>ZUmGe+l5x5qWkZVn5)*(# zq*g{R}77nDESNqi1JJF8{x=unG3{L9nxU9!ky^bc@anVkDJf!J}&Fay_Skz%|c zNZ{JEho|`ySI$);SJW!v_j!cqOq(3Wb1xNzI(Us&9I z{clB30Xq+o>#nwwWmaLbrd~o;17Fy#OQpZh?($PtOxdK_dg=CAh5p`-v%%_1-mywEut@K*Gs5jHAO{tK5voC#dt)g>e zKc0xE;+q#Re2mTmexS!>{2ek6+=|ace>FWR3@SsRgb$te0)d6ko4*!z>vrno29hf^ zT}2$UL|R@>>S^4~XJ-4c1{@U>94EVviDAwJa5xrWq3dgR`1IlBobB_tSE@~;AGF~D%L)Tg% zUpKw+J2-y9q4cuG3fdjhq=Lgim`~bEymQ;(@9@NROxXV!R;`y8`}S2BK~gtnH#%f9 z?%YhYTLe{3K;tXW45cUA-Z1UwS*Pv=j~OFEFIf|LyWCN|$9BG)e`7N{7Em723ru-= z@yT3dj zE@Id94qm-&D{SZM=rU`C%bqg}6w%D%cW3rN)$PxGecBi-)GeoeNV8WZ$2lrIu7AP! zI7{u(BUQ`JS5|wr4vwFiy<1I9VkCp}D%e$cmq6M#Eqq+-FIUY*Eq*G=x{RIqyqd?T z?$PUc^C9?IS*KN_0-~f67i=S?7^jm7f8QjUUx-<@{pA-ye z;m*BBxYRBt7@+9;-%`;|+#YNiaXLw40Q7-)>+9-pQLKerH~!03qaJqxg3dUOtWBD2 z`YaNJQzkTP+_hDuPq0ObxS_*Iz4$pO>!A(F!a$BuNd~>;rR1oYzxaOg*M$xtDka*c)Wuh?Zn{4cR~bc5IUL?os}ekpVJMejZ<(S=yD(i^ zaOcS+^nYAc6S*^OCNnwo^PN+kN$HwbR*-*!p8(Oc(`5>-RtNuamry3zIdXPv+NQ~p z&jK4DfmQAS-*4hBsX;jHb>?`DB<=l+%}B{UdZslt9z4%I=y=pcrX^N4NV?y3BwXX^ z$Kmr_-otD|VjPWPrhO$#Wx*R+yr4}$SE(_2<1{(Ae;5Er>`6cwVf#sc3)w%~W=o2G z8JEo6JaPj0#4ZQZAHNw|g zN3wV|UWxqKcz;G$N;lP!L0l-3hnk_TAA2nkj!x&SJ??sLN23__dwE*l_!XX2ZNSyL z)ZU?f5tE+#y^}aA^SS{&a7SA6+1rkfK@(0ZA}7!4imum~+=-OPiVqhus^OfwGYe-1 z!jQ=&EKr{EK9hCrn#3TMIJkf?nEyzT?8smPO22{Y@#2IJlD);_*mlsgx5RJjtM~;O zUZijoJ^pw3B+$Je**fj1k2hw#^=xZ1fBa9;qXT>eF91ea+$gV?R2@3l2RUkf3V*#{uI59 zCmYt4hNi(gqF-cJ9ttDM-@@QkNSg5)?Op}oh-AUvtkBsH zi~#oohxifkmbLWVl`Rji1jR0oJ1HIA4$rSgwKCn7QUD!n&ZZ8n)wZh_iYTaq3JkU( z+%`v6#JtcoUnAcl7TRSo0~`)7Xyd7~C!2eWE*cf0wpeQGpQ&5R%M8!jE;W>$A@>p< zSu#}N!8)P?t=^dy{lYZ)N^oV=jl@gRoTVUdsxKE@%vl%*Hu37-A(S5WN;W*L1SPuC zk$$9DCGG6cb0~~WzrqK>+7Pwh53k}nn(4=xqh9|cds4Coa(Z1~tC(_yqe47b(toO3 zvSuhsc9xq~6>7){5H{K?H+h)>NkpU{)RN>OTB-|pE-)%4J&Y9Ei`0lWKDc=pSLMe@ zgc(SU{{BTPu!~p7Eq?;5p z`FPD>vCXQw4Lbg%#v0zAT(;J&;&Y&4;=3BY{$`a>&Wod&N!vH7nXWI&7BNe=jf!F^ z@|Ms|pOE9aUx;;5cDaFOE9jm!$~VI_3$0ZsPM0mijT7m_LQZ!TUTei#=_VGD-Y%E+ znHv?bSlq9DGL^*zfxnp!dDoGTu-#)z3kbW28_ARXB;#i4oedAX-%@?uU`h1|jt0$O zYghDI7Wg*ZD{VZ}ATnkMS^btgAz*&F&FF0weEQ?;4kPAjK&|K@<>T!S1MtdD4zN^z ztj}$C=A+HLydT*J_q|UmbPQw9Y)}}2F0s>^!!KD=SACtEUtV&aBO5;;+?#Km=OjQV zDJ=Tx_m^3o%j9})nANl6_@UQFjRT%<$A{@?+z6c)H6fp&&yTW$Hb?%&hxPClHl);UMeTx{)=Ijb}wXFaA6z^?6hkN_&ggN%yedpU2xb_2u z+hOHm%-Pc1fs3Xv5H7V9+!hEqSqsjW)n+vIa#~$%@zedG&6twU5$1_PYJa%F@zLi( zkg3+jU1*_=%SB(hQFiYX)oa(GDgLLYvMHW3P+gWGOfX9EO06h^ljf5M$J&CMug7gd za_zyn(j{-xKU?nIWorp%832pGC$b#wotN(Y%=YvmltezKKYH8`Z!6mQ7XNKu!$9@- zWAkLThkbLAM89xI({ciYje~u#q%+^&^bl(r%kEVFG zm*!AnSiS9JTA8^#_|Fk5j?=OXtjOiD78xdu2dFEqYn8J%y$763;%gBHuKc95vOaz{ zSw3J`cL%*(*Hs)>4Pix#p0s`>*jlNI%vf9U8jtZzR9fnCM9HWmZ{xFW#M}#1_$2^P zj4|=q{$g87Ytr;(DfM1Pm{p*CGquUgEyBEf`=~v^St0-5jOapxFXNusICcARf4j>} z$+Efk*lvW|_VWGuQ+(=mgGxgYOHS_7+hpneQdt$jN+b5QLEE%UF#gGO&(Zuck{tiG z;v!#rgHplEGyhF|A8$qEFV4?Lj(&F~ZK5gYO)bVJDeXvU7it#tM}ckFMZ+!4%~UdtR7^lmEH-h=DuC%nI;dp_qmK07 znKJ3~-?`*#!$|$}#KHW0`XBxz&Awndl!gogZTwO&JoB*Xvs1_xPq|E z>#a?ScRho6e(j1?EK~G^PeMu!N>y4?mroJWzK#PGc7C4iD@)Wu{08^TZ-Y+SD>%j4 z(iCh945vlFfXw3iTsFwvjCy&EGFkq2fT*`*DkmPjVMJGr;6k$5?Q;0}3k2M5KPNCoI@#a~Nqc$Jaz+q0MRNV$O9 z-+yS)w~2)zYYa=$w2@I(qLRLMop|7b(3+O4QnKG{K|a(n9{2k3In<@C<7M0RC_8Fv z2R~;UkCd46NBJ{Sdt*ZiYm-w3xgfTZ9>=pVh-3HOD+N{&X6U6hI-xfkMgd0XO%XD1 z-Jju(R&vdyP0FWHkZ!Z#2@T*54SSeFyz1|+%=^7$P=tkDh6Y*y3|h%LqUi7vN@QYJ z2s^7EO8!=uRu|NX!^z8citdWXWH{XHzd~=t-fx=Hk_%~Ev3uZqRk2rSHgE>|fb|Ee zTlw4su4%h6anpIeJNoeKvCvv1cz)^~HC z3YfX9L%zslz>zsX17?{}^b$L$Yib$sq*i%vZS3P<1{?}pFP6X-q}bFIkFaR#Tw41{ z9Dfe(c9+&|&o-Cxi0OQg%wcJ`_1E2tupDy3TXlhB|1afdz>Q21&cmpOLcm9x?&%ru zf83})j57Rx6ypED=hfEPytue;fi}sv>Cc$&{zV|^?AEqoq;xh!+;+ocZM7{&7UWja%4T_AZL{R;EiiLHFhoR;oc_@^jU!m`|Tyy%JevWW;R`OHB!IdI?Iv_Z`L zRDt_3fUsBsj~nl=Y&ljjcm6i9zw3F-s{Kn45#0iP!*j9+fafDwVz}Qa_FI2+0EC1r zcRR!Nl%?SWR9QA(d!$}@DDu%cIDEEqu50|E;LX0+=c?W^HjTlAEG=weX2p~$V<_(2 z_ON~4UQ~ z%d~9X=6-CAt^)pi_~9c8PP@gY9|3aS$e`PWIylvt`pf0BNTwi?1h-Aa*~6=7=rzp% z@*U_d62#ksz-!Zq1`z}#6SfiWvXKQ)&B@U3vekk4=49;AdUfD##7BGd{|K~zWBKtW zSQ1E-lK?(r$RiH|ru#nM!h!KKno58Z8Rba7`_|)JL@XK=$CZ;oC{x?z{x2h)>WU1Tm>bFCn=Brh}G2qEGM1rEH4^jcGL->ZB{F74;=`YK1)TaQ7I_4 zmh|oKlM<3}sODHy{X*f{l|&AUNOZ3*)8+;c_br(*cw*IF1EE}o%H_7`K(>vJQkddX znin5;wtLr(w;#0K_bXsmf)0RPLLqMS9@%p0GZl(s$ZQse01zZVe$-=WPhCocIb@vx zV9aPq{Zo2d-nNT9$#%BTWq#Sx@-IwHa~IMsUXQI8nbwcN&7PYG$eVZL+kULl#VZ~a z7{2JigL&^NR;|cH1cki{QS%S`)rQ`?r}hNlVtqlf&otKgY1v;r260soyT5c#^fbi# zWY#T1nP!5pVA4n<9T6*@tfqPG(+PE|95~HoPUX}nLyRB%iajEVJk|rWWkQXdtwOC} zObAOLHtX57x(V3S5%*6~K7?IA~9zOOzK+zs#YXl6QxqGuXUOZfyITfspw z8ToVl)rVbs?rCqG@}*uizHEa;)!|817@*((2&MCFB&M??wuXV(R5z(=dgD#?D?|!N z13*3h)Ao4pE~q`dQfKWxT5&7>%Q~Z7;A`en~ zDlA*I8s>}@{e@qAj`_;ZEgr^X+oym1%kOzm=i&DU*iY&o0dj=;*2ir z@}q69A6cE){q_#B3>bK@rG}5(O*pptt6(cgFTV#MsD}1@)L;eMLGfuv4mGwuZ*>z; z4{pIX$ZyHmIgT*ERA>8zhGLS0)POVSs*%%+%I2@A0vYGIX?j5}pd%6?zin_9EQ-TD zSDLAG8A6RC8OY5nYDR51sD`iTwp#>;9oB6uNj{r{O4_8V|!vG#pMWD)(#2{)M z>hjXn;r$D1aQ_3VAMJ(Ni5_%18<BrL_|PLHdt zVbgwwAvEykf-EhO&vnG&W``dQg9frSCSH?5rpI=QS=iKoW2!_044d-miJFj@D3KY> zpjnk*vm~VFP-6Z@fY))yms-iSCQp4bQ{0kOJIdC)tm@pD43Tl-1>!}cidh{C&!Y`(D>rD)3K*z<)Ce z{(Ku+G3cE@3BZ%qz!##6)GO{2kP8hB>gt!FjPI3Os=Z=yvcqv+U(4Jc>4uQJJ0#-9 z(A5kdOCP$0mso9BX@kLQd5xIoBjc9`>Ku$#{4RO&MKevHHHFc){er0r%+v% zjDBH1W#T@SbEG{^_f{t(*eoO8R{PzX8D2zKFy?%hNLN1QXz_j|5xgebrvq=fop z@;JfKbR0`9nuoK2jHx$tdL7iC{?zksG=7Ui>i+ZtoA`;RP6OKUnz^Iy7-wkM|IdVRLiK6#7pySw~-FE`;0;$NrYbsrcQ zKw3?I*IzZ>4wz@sCrc0Q2{1wDmYG&yk(@SC~ANmS<%q_auPBU?FeQPrI*xaK8XXsx4ST`cs& zN>IE2)x!s|^`KfIpV2De5X{2G-`PP=JqsG^@pWe{!c`;su;~N&4q1gJqFgBu%he;| zztRAYy_5LD(BCq+-F7E3Vey>~8s6pjN^%N{U|vDGc=@KwTg=70sRR=|3Qp{s%{uFhzt=8FNl{hvLB&yX zYIw`L4PP*A!>qp`g2<(s{5MCWFc0K1EV|I;9?(N9Vw+7Z;^w$~#h@P%p;B@~|4)|# zl2=QU(NSH?Cx3JK18%U$Hpw_}DsSzVNGru|SE|VV1`zXMNt~gQLy{3&I>1BI*#z8k zI7OC2+ZWX?QT(+u0V%KNIJ|@h+ax5v4&?vZ%hV4ks9-+t?u6Sxgy$=-v)!k60q891vctp26qFvFI+>g+idQQu7 zOlg37V0vaI!_9N+m#&dkgC(gvIFMU3fQS$Pi?VoOiO*i#N*+=anOc#VZ6w(9qeb>} zT{{1SCcfLc>thBVkuvA9r2^}H9A=c?UIBjYUL!~=^f;S#(kP;XX=_@8Rtx0OM9qoC zoT;|P85)VH=(7uw;w5k1LBcqvQ9P)Y#W z&9{5owzD!9%9+hFAEYD2b6;rxcFXdq<$!FFw{5=FP;H}brU!MKPri3zG?z-$YqJWQ znGVtA6SN!l>bk$+Jgcj+zAw<6(5&qC4g5I!z%l*?4KcHU@EuGiq{D8>V&Cbj z#5T%l+8jlDdaBV|Fl2x=gQ?{rNa7TrviM)HrW_U|kXlN;3`PQ* z3Y^TL2%3dTj{8r0~ANY6Rh!$RP7 zOAz%*#AGg*+;17SnkudumMpa^=Ib?gb@3?-=F2kn#>`p#>=F80hKOZ96#iD~Fw|J0 zYz_xf^7n~WrzOOjSk=mi>R39gm!SFC4O3vvkT_;$bI2(fN6=z)Yxz#dL-4O{OD5`5%t_|VnM@{=iPP3pBE+Y`2LJ$sD#{AF000{B-%7*9_=lJe zxpM&k7yxZ`J;nI=_3p+uPeuPfz#v_n4TN z4-XHhM-&bY&d$!x*4Eb9*%|8L-_^(S^K&E;iHC=WLfxO8o*o_^5)u+_Y;0s@Wm#ES zot&H;A0KyjcNY~E-JnojUS5uljwsYcPEO9)*jR3EZc9r`MMcFE3bnMfl%Adrg+fV5 zN%QmbZEbBkIy%05`O?(XWMN@3Jv}WfEPRhbsf66x+uPI7(4?fKI5|1}GvS|EfB*iC zj*fP9b^Y__4+{&6TF7-zPfuA{SwKL5udgoy0|ONmRaI40L_|beTU&8)aadTGqN1W& z$ngW}es6CtI5^nU)Rc{lO*!OgVq!v4Qj(XKmy?t85`|I^zF%2cX=rH3&d!#Vl@%2g zRSCVAot+&X9O4t*sqLph81Kb%GDp z*4Fy^`s(WH^!4>WeE6WOtgIe{QVxB%M%~%i*qotIY9W_!IJ~Q?3kU?Nsi__Rb0z8q z^>~kZxJ99Eo=`Um5vMBQCu(5_|Go@~LhU}HP`CedPIW>z-@SXs&CR|2^pCw%3B6PZ zKLAF+{r&x2TwF9YHB}-}ilHdQ@Z0tEbp!&jxVV^@nAkjy(g}Q0h`3Y^JJ$={)7I9$ zd_b)oqyDU-)Wc8;A@@pQml}bm%Kj${3k!z+kkGt|U3N;?826@=1=xs?sL zG>ke|4cgcB-wG?*bWdH-_kk-#-|Ix&YWv?R2Ht1{TqIT#-)J5cvr4lbAvD;zNi89?5kelI^6$3C1r-re1wW;X4*WsDbg-P8?TUS1zP zqIUCIcbt$pWu5r3qy17Ht)V9xg0^5*$ss>nxrO2$d%j`!~V`dLRw>U>a@pm{>H#!IwC z>`-Q!+TiURxuuB?TmM2|58n?FhF^cwlUvt+4r60Dx(gqg@W`Z$$h<({I!bG$-zKVh?{pVd)4cT z0?UYK2;CsV^MrfZ5OugqZushrqo~vGU~c(w!QK4`-T^?bXPb1V=CXt~R7eGBGk*C- zU13rSG))u#mTl+ZnYXS{NL#)j$eh2dY~rhTsaYPLS53vGzuJUQVcmd1+F=ZYTh>4= zZ7%48BNv8lvkO1w4kd)`M+rehgFxx&ezR$WF}kZGDD39i^fieQ)(Ww5hR5tQq{3rs zlg3&sR{<_mpDR6AOf zzY5_tsuH{Li#?@*%%ZHIHCk34Voz}=6_T!+Tjjj|!t#aeZ<;S^v|^MMr!5+Fotum7 zL&SC75$eb51+8cJJ_nTmeh-KdI$4{l%szmqW(9{61oOUKb-N!eMz|^x2t@?v*_CmW z&{tYVdFVHr=OZ~20EFMhut5ZQSbXnf1W%eU1Z*CYz?P>QeK zUW9~Vp+b2tklYu53d!CSF4mpTk&av?Y{nEq0tyv&%!uaTtvf>u8lTNWeo*2s)N|tn z5pT#sP3tdfJ9-J`4EBgJ<<OE|&{WEVP2T8?P7Sxf>Znr-=x-XZJvlY}N{u*sW` zrZ^am91^y|PI3v|q#QvoqH0%LQTwIwu_k4jUt*t(6M1G?!EH7)@4qp$eCNf6l8i0Y zn14lzwj>77c&Ld2FEBlnl}9qrN7Tu^9@+b6e8v9!KFoQq`q95AYfHcoq5n2>E(NPw zZY_AydQw}6jHzf;tRXp$R8idubZFDiA&e=9R8$DV9mkjf_FA@Z$%8!bb}{D^&`uJh znU=7%YZb~sZbxm0)!VNKo^vm^Yg;z2BrF}fKhAiKE$2EiURPGctmJ>)K zNToWxwWIz1b47ftsfGLBJ!r5}zGfOnTndM>@u*Gu6bn5sP<8j)_bBj=@#&j-fo#8| zrcXx<&wH;TiG|bSG1jftGHC?NMB$Ttof4sc4%25t+(N#vZGnPTFGGf5&^EB*8HD@T zI900A15y7D(+%(^9bseR3_mzBZRum)cf;e(UCmpSKlzRs!!{{C84B=jSWfA$o(Mf~LpW3iaE)hluo8#j1L^)1pnAUEZ- zSD5J1_k-^~jBJW_Y^;`qf%_Qm-zP&5&4_)SfUIhhwP3ykd$D60;?8067Pq6TO8xR) z#-MnjgQe!H4V{3i8HA5#tSzP`i5l>Q$gt)3*@|L0mos14FKR2jO?st*8WBIsm0w)8 z@FPP~b8fz4Ryv6w0KoM zTwOxSXT1_+0Cp3GF0{f=4s@ZqIp}26)1lobwoN7%9PCtF#upw_t-@NPdryqK-}B;M zm}0DQE;l~bne+(3u4F`~wCkk!c=8+r70j7J_hpT(+=K)g(7!8W28bkxOX$8n^UL8I zHF4N1(dW90lV#W26}At9#S)qE?v4Zn9UnMxL_-g}Mk7C4iayuowN}PS5>riFZUxT_ zD4=OS@9OYlq|nPT@1o3Gct=qkMqw4I(0`G7ByYR(%#;gTl-Kq`R{BNd{iC_Bw8iff z@ozj3+O7jH#YQ@SmkxVfiCT0XAvQ-}7Pkfl`xr1$x9Fvu(FjUgQ&QS1LZUPiDnr2P z3CwHy*7DS~+@B~OnE)5fT6tM^+iozJO8#E`z&HSTmH6t=QzPnbO#om&WKv3pS;&cg zFoH*gZ%=_`1UO?_SkS;0AdqiVI2Q8^+SH+>;US9;ILXMJmhgA#SK3L&I4Pc}8)G{v&e@ zWHhD17e2iiDw_iO_WY$NX$bH|?m*0tx1*lYZscdQ5}GA-D&E@}LB$uPGC4DQl|>t~ zl}zZPRktIysP}N#r&^|1(8QYn%J0s2Q4|yCLX&E3NzBGnz~V zrj0eYZ5zCQV8n>SETfz8L3cBx1o;_%nw^3&!f6lIJ>Irh?h)qa=;Lz!dw5fNcS~*9b(k`>(cpnKq_t_yk!6U=1AU|7nM_D=tVfrFT(-zRq56a{?L0 z7lcUA+PnYM?T-`ird8&D3l;V=h`Dz-lxn0X;)r zMjNk$F+;2fc4sd>-r&@T1md;^gXS$p&_TA``%U{=C%K{m0W(QVBk$p5xOjjGY)YQw z${g9MQUFFJ=9`S~oH?c~2K@37;fC*PSiEf51vs24rN$J@cy})MUp?Z0$6v5Td*(^q zpF9?!Pp5V9>aaCgtZnnb(1n7N`}B2G3jq^zJHscl@L-zSJj`7^Vxx?l6!PqkXhY^N z{L9t;LPmV;u9M@6k@2#hHN~3_Cjcni6=Lke$qdWpC4^~ke;1>F3NtR9t$n`k6@r-Dw#KuLpiCRu{6^B?vZ-m396o0yXbR zIi)3fDGm?5xB|+1W{tu6yN}(Dmzh3S$?p(cjjwjvJ6#_&0rT@re%`|_owxB{)CLA~ zRBm!7-|w&UdDxBu`6ahL;n7H+80hL>I<*k z%^{tjbiS!u?_tV^kaaTReqhh-R8CdiLBm%_VfJkLjsCo?Bqi$HUy$%OX;)zTRjmwW za7cG8$z_L#XexsLwir|P^OXJuDCFwVgeo^JrYS;McLst^W%bm^!5yi~{>QUGVjEt6 zs$I{hQhy{}sQbH5rr+&Ip7{kaw^&D~TJ=qbXo%qI>~Gi`-2Y0?Okkh5u}?kw*hADf zh!hfQszz*EH{{;lngLZ@Ped0A+LQC6TvV)*>6)rAFbZPoS>=Eoa!A&~$!*J9^CqoF z17J*7h|PkM>>6@481JkG@*r?xiP-^}Kl=v#)Uki~XCSb%xgh$u_*!j#Q7IYUJZQ5T<%v$pxNV%i1a+aN}kR+7^3|D{i2j}W&x3q?XXiX%LXD3(f=y*Ftfp^=n@pD0l|IY5 z2%d@TnvLO!@u=NNOE<+wD`wT2zUazMF%jDB@ND- z4G&*5nhCf}>KCUmmA*+x^}8(X(OnQW4vAd5Pa3NTlxoUA=thrfkyjkC9VlJo4Em=g zz?H-h?$}58s&Xm4#?B#a@;q+G9HL>>98J4ytm(^YwHy)eXU1B@-+>eZ_S6jp)35GS zn$N}xL9@4brD-a&OWbN2E#?NTlO3p*_VkAV*Pr9l3c9ZYiU=7hcPDiA*yGrcX1_mq z+!~;C#NR|D!LRkPJT)cBcoQtUq;hYl>BubL!;36IZke(&T<_kUhmKw}P<4|HZr>*@ z)`vl99#iiOFIh78X~ML;y>m+aRcj8aM>b+W#Y~I$Le$6~;hG7maK~XaSR1odyVSev zFz7~kvvK;-c*_K(OzYdrsZ7j{9NG_sB*JkwPtmH|33m$#azNJ2CU@Lg6_nAO;!_Y% zZC~?jxHoI)o1t{UD^*-mP0_VNo*&~9r8+G7E3t~B`ZHGhXSM~;ZiD-jD5s6;>B!5E zeMjffpi>4vcw~R+{@{KpLr+OgS9r5OSn(Yo#eFio<0>i^Ko|m);K^GnaqJ}hrul4Q z_R&F|ef_GKoW4P8efoS(lfCpz!TAlDbR?<#>kd^iU0BDH#iw~7uBQv9`{#mVxK|#^ z_v5>C3r`A39xx}X-{a3GB;-|-(2exIm@dQC{l87sYWe)?Now*E#vBWKqV3ozjY?k* zhGQTXnhzai;6zTHrTmQ zNSePBDwf52XCqcHXmytT7QC}fRmC6g1GKTBljFZe3mbH-|60Rivr^C3vw5$tKKRxm zOiZE$5cRr_oTdk+e>ggRS~@Oy_ERErvLOxh8f!9ZK_b%k>=4 zGd>EyomWu5+#9O=T%X%7SBr_<%#Lkhp+Edy@JyUDYB0w$Vp;K_8W@%VS=T?4YJQ#& zN~|AC17@Qw-jT&9-J3YLc$W0`)m*(lPQk>shs>+4L`hC5yXC>{IeEMm&q|Iu_syjU z8~f3nqvQ|vn^{fMBHtkWkqc8qN@O*{TrfrqPcF<-_d|P0+#&5H`tfFRPlf8}1#xsO z*)BcL`Y=fNnx1ULhwXufp?{rT48YQ;{RDMOXTEgx@yzgOP~ophwisH;lFtWn z=3OIF5g5ZSys)G@pRaHZY`dFmi{AlOf5SIJFVTk&hs zc3H?-<0gKrvPnB>2Ske-VlvWTX-fWw(ebVQOT+2yDSh-`>|JwtrL`^{H;3AmrDNAk zh2B-qJEZ~d%tB~hRCD0v%e+9K{c6l){DCE_4L@=&1nxj^`1zN* zu+)}F0NcpxvdWd~)y@E)xggQbGu3G{o2*cG4@>*4V5h574QdnV9Gn9(<>`!iL3RDm z9Z~s9PS|gMo?U*PJkgrjvv>B#HAl2l6Phn1x4U(T>OB)gZRs3Bxo)MXZ=C~RL2hpi zI|{>&Jsfq%ZgcnVTrtdFVL;>uySS;pw!YB;Hq&{nJf7|!J*aD(XzY|pA|bJ`)#02c zahD*|l;&N3$@sUHL~3<C zYp&>RQJLgg4Ia~~mAw2h*UOhWK$QJV6Q1Co_SfdLuTj-7d`9Zk-e-%mQqJhGB(oMG zI5J%(Tlw(Y=wrZTU!Nk23{|6)KA;N35f3>Zh>1aP@{Buk^6-S5li;5-Gd6e4KFk4} zjY0`NjB~dGTRrWoDh~UjA`mC!EP>t0W9E5@tYOb)QFEwja1&vjtLucP1!a8jikE$` zm$P$l@K_15+I#Is)!+X5^US>X!sk@@Q40%lH-+T}ffmg)rWnP<-pw`hH2q!fmg`5q zS1J~M6Y0^}vf@_Cl2nTzj?{jO;b@y*Ko{jTlq2EBk$;J5tp^>}vU}7-pWfW{d>qQCHReUG6PqEAC{x)kWijrg|TC-GzRO)Q#_`MzrqAF5XA? z+u{4$2QxJ%$<37%HYd>w>oN|T2?(duo;PeiVzq}nFm#C0urmi8`EH|{5s;H28T3Te z>O;DiGB)|?oncre@nN8;G1)Lecjif^3 z^SIlDz5Z@r-1l5*W`>NOJgE+5d-%H6>ft%d*9n=_8Yd+J*(1F5Yw@}k)i|!H{i3^W z#>#pwm%j64+G(L#_kgLkAw@W=K;cX3WfrE(zMYSedWosFY_S8MYQaQrh;bYG@4Qe7 zeNmj=b&x}ElSg+;r&q55_%SK${AZdzhpT7~Qh&H9&8VrXk-fdWw{dZL`+*z1KS_B1 zNmn|fN`_q>*Q5HL&0JP)V3tN{yJt!42n#+T=YceZk*PTz)R#{`@<|l zGIQn7K%*f?=o)@FKrRpXh3XyT*__vbt=CzWw)EqJ?Jh{fCGW}=OPqg{Bhf3Y8%h)8 z{&v{HOrVGWae7pNDVt@f*#>z`?!6{>`tv`JiKo8RyuKEaKWKDX!QVobEYwky{9jXi zc{6wwBnst!GWnjYQOT>5QpR;ha1@mgR<3-RfkIbeLAH4?gWgs{WJhhwaZ9bpMp&f1 z{U-t09TirTR+-9lN6`7W%VM^7nM?}gMF}{J5yY?jui*l5ym^-vqvI80Bbx;+>~vNk&fRx&CUSf9B2D^h@#-438!r zN^IDQiTV4L&+@j_c1Vbh2}D@evqT`@cF(Gn{Qw&p8p?^VK1R3d*w%;@!Dy0FEeqE* z_}D3Jm{Sd99?mSK#3AZUDo7MJN(HLGCF+jsy~^4091z=YDbFs&wRmb5J5F~O9xKLK zh1e~=RKo)!F`BJa$2&#zxm_ysxh?W>EXHrG5>ayQ$;QPM?x0o6{R zxv=}akI2w_3E_12F}hg&5OT(NA0G1kwq~LzX6!kRscJ=`n>cQCjgS(H9HY^@5a$|j zeZxHKhi`A`kH=QFG}^^`fzb&Y`dUV4JZSufDP<7G zJeCn%a{YOK+21cIVUYAU%*a3i1~d#>8!$-er{f%5;WR!0wX$&dJ@621+&n^qI-REr#T)RV|e`a4^vr$bu+%vx!qW6 zjXETdoBCj}{M(#YE=CtR0f|g=CLx_U7Is&40gfKcITL$U#v*-JN~XEnr~9+YwZ#5g zA18BrWF6n54b#%YOVGYxqqz3;%VM2tO(DBTb#XH^j1veKxYAZRBPmzxQacv9>_80z zwZtak+PA2s^|-WtWeN#l1A4uy3f$?^ABRH ze{(>#@*?3Y%;u)d%OMR_4?3YpercfueVS78sJ(%O8^OHQ|(?g1BYJx^wU)gSNn)vIzwNZklLBFFm zzrueh?Ev;+1zv@B7p%|jr!~SB&`QYj3UuD*LA{xFqV$>~nFj>*oMk^ewKOSpI`tih z>S>dKZWF}EDVm~ZnG=+|)6MDhPz&QWGTW%YI~hA!AI4MvUmEIcbos*uK$j)Kw4me> zZAGCB>;xzjWMAxs6AB#$n!`!Fqd@ZWl-`6EzD{Jms+$*NW{wHWFm$eD zq&QU=z!-Zc8=+l;MWV_i_Cxu~XI{vj!kY1brRiTWUIB~9`GRH^18ZX15sL*?X`ZnA zjKFaoR=ltPZlT(+57A6nVIHzKw7*5K`wJu=iJ?@^alDLael3L7b*;bE%s{5iSQzHH zn(8AV)53hxDC(GjmQ1^u;K=Mx$}UFS1}GrjZC5*Q?^OY=5Um8Ssjb3Wr*KJ8+7J;4}|^EfWYGjDkhaU-i|~yX)P@nGSyPI2BO6x*OAMf zX=PtuNZ#2L;8~ts*3)y*?AsSveDNI=)wM$vCzBg-W7##L0CeYPTon?rh{gLl zEy!k8PgM4qABaPA+?>gj*NDH-s(1fw>)&uhd*Z)}Y%QWeN4O*t)Z22WzPW?rxy~}} z7>bV{rWqOgj7QpK&cS}lX)YhU&ZP6#`g4k_bJ@m26!g@rc3iRX@_+n^{bmeM55C92&vBXo(j+Dy|T5xgJvKU7|WNG@~`fjSB|G zQ<%Ct4uB54S6Q2{Zin*AbgBoeBk_p;hg-gn;nz~D@DE5W&R{S%1k>E&kK21exF zDJ$&7y*8;OPI2JQxwy~gtEW71pN^iY#uURAVGZp8>#V!+lcV+3=T1IQVv1`b;wpXa z*&|2W=61x2OSjq7kJrPAC9@7G6|d8*Sgd~{`HEgV6SPCS>4QDhwWXpL@zaFb0Jx+> zy)`Rp<1+kH9k1vvxkPp#SMM~r>pI;{XJ%ctcMczV188YXYq#ofdcnPz1DLGhUznI0 zID}qmdN|VCJoLrm1w3q2jR&vjL|^3SYmZx>VHMlYo8pnO3i)6vPAK@((vD_F8U1$W zSWq25` z<*TIy+gAAPqdu|!Pp=U6&drmb364jDs_0=kWms7XxA8jyUR1jm_o$jPT2r65lZ+tn)Yk_CK2d11cPiIiX7w$xf*ATD zApMl@vH^L|g}@)t=sVxVG+W-`W!xtwHHB6WECZ zZtQ;H2NDd*zWNQuPA6`qV4s;AQo$|7<`{+Kc{e>EeTu2+Mu3A~o;7#c`wBbqR!e$Jc33EFsiy3>7e z4UAh0e&8g}@AtM_bTKKp5!B8$mytHXpXUqMq6!_&=Qw*~Sb5F^UF|o>5F+udSocLFjYxl z2ahha{2-cdEF1%0QD7jk@H=d;7AnXxT>7B5skE!9XfvnPS={mp$Pb_Q4Rkq-{R+i~ ze9R<(FQb+|D%otgWDtB{x~qOmPGr^ZSr$`D$eZ=b|B;G)O9!Aj?$?(Sn`!$0JIJS^ LsHp&vGY|hi&FGH= literal 0 HcmV?d00001 diff --git a/images/guide/4.png b/images/guide/4.png new file mode 100644 index 0000000000000000000000000000000000000000..e30e0064264e0e72c1f7afb8c7daf32e8955d0da GIT binary patch literal 9454 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 literal 0 HcmV?d00001 diff --git a/lib/appRouters.dart b/lib/appRouters.dart index 0a06445a..495b54c7 100755 --- a/lib/appRouters.dart +++ b/lib/appRouters.dart @@ -60,6 +60,7 @@ import 'package:star_lock/mine/mineSet/transferSmartLock/transferSmartLockList/t import 'package:star_lock/mine/valueAddedServices/advancedFeaturesWeb/advancedFeaturesWeb_page.dart'; import 'package:star_lock/mine/valueAddedServices/advancedFunctionRecord/advancedFunctionRecord_page.dart'; import 'package:star_lock/mine/valueAddedServices/valueAddedServicesRecord/value_added_services_record_page.dart'; +import 'package:star_lock/talk/starChart/views/guide/permission_guidance_page.dart'; import 'package:star_lock/talk/starChart/views/native/talk_view_native_decode_page.dart'; import 'package:star_lock/talk/starChart/views/talkView/talk_view_page.dart'; import 'package:star_lock/talk/starChart/webView/h264_web_view.dart'; @@ -518,6 +519,8 @@ abstract class Routers { static const String h264WebView = '/h264WebView'; //星图对讲页面 static const String imageTransmissionView = '/imageTransmissionView'; //星图对讲页面(图传) + static const String permissionGuidancePage = + '/permissionGuidancePage'; // 锁屏权限通知引导页面 } abstract class AppRouters { @@ -1194,6 +1197,10 @@ abstract class AppRouters { GetPage( name: Routers.imageTransmissionView, page: () => ImageTransmissionPage()), + + GetPage( + name: Routers.permissionGuidancePage, + page: () => PermissionGuidancePage()), // 插件播放页面 // GetPage(name: Routers.h264WebView, page: () => H264WebView()), // webview播放页面 ]; diff --git a/lib/talk/starChart/views/guide/permission_guidance_logic.dart b/lib/talk/starChart/views/guide/permission_guidance_logic.dart new file mode 100644 index 00000000..d111726c --- /dev/null +++ b/lib/talk/starChart/views/guide/permission_guidance_logic.dart @@ -0,0 +1,3 @@ +import 'package:star_lock/tools/baseGetXController.dart'; + +class PermissionGuidanceLogic extends BaseGetXController {} diff --git a/lib/talk/starChart/views/guide/permission_guidance_page.dart b/lib/talk/starChart/views/guide/permission_guidance_page.dart new file mode 100644 index 00000000..08850eab --- /dev/null +++ b/lib/talk/starChart/views/guide/permission_guidance_page.dart @@ -0,0 +1,109 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_colors.dart'; +import 'package:star_lock/tools/titleAppBar.dart'; + +class PermissionGuidancePage extends StatefulWidget { + const PermissionGuidancePage({Key? key}) : super(key: key); + + @override + State createState() => _PermissionGuidancePageState(); +} + +class _PermissionGuidancePageState extends State { + final PageController _pageController = PageController(); + int _currentPage = 0; + + final List> _stepsData = [ + { + 'image': 'images/guide/1.png', + 'text': '步骤1:打开应用信息,点击通知管理选项', + }, + { + 'image': 'images/guide/2.png', + 'text': '步骤2:下滑点击呼叫提醒的通知选项', + }, + { + 'image': 'images/guide/3.png', + 'text': '步骤3:选择在锁定屏幕上的选项设置', + }, + { + 'image': 'images/guide/4.png', + 'text': '步骤4:设置为显示通知及其内容', + }, + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: TitleAppBar( + barTitle: '锁屏通知开启方式'.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + backAction: () { + Get.back(); + }, + ), + body: Column( + children: [ + Expanded( + child: PageView.builder( + controller: _pageController, + onPageChanged: (index) { + setState(() { + _currentPage = index; + }); + }, + itemCount: _stepsData.length, + itemBuilder: (context, index) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + _stepsData[index]['image']!, + width: 1.sw, + height: 0.55.sh, + fit: BoxFit.contain, + ), + SizedBox(height: 32.h), + Text( + _stepsData[index]['text']!, + style: TextStyle(fontSize: 28.sp), + textAlign: TextAlign.center, + ), + ], + ); + }, + ), + ), + SizedBox(height: 16), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(_stepsData.length, (index) { + return Container( + margin: EdgeInsets.symmetric(horizontal: 4), + width: 10, + height: 10, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: _currentPage == index + ? AppColors.mainColor + : Colors.grey[300], + ), + ); + }), + ), + SizedBox(height: 24), + ], + ), + ); + } + + @override + void dispose() { + _pageController.dispose(); + super.dispose(); + } +} diff --git a/lib/talk/starChart/views/guide/permission_guidance_state.dart b/lib/talk/starChart/views/guide/permission_guidance_state.dart new file mode 100644 index 00000000..953f842d --- /dev/null +++ b/lib/talk/starChart/views/guide/permission_guidance_state.dart @@ -0,0 +1,3 @@ +class PermissionGuidanceState { + +} diff --git a/lib/talk/starChart/views/imageTransmission/image_transmission_page.dart b/lib/talk/starChart/views/imageTransmission/image_transmission_page.dart index 60b023bd..a7d1109e 100644 --- a/lib/talk/starChart/views/imageTransmission/image_transmission_page.dart +++ b/lib/talk/starChart/views/imageTransmission/image_transmission_page.dart @@ -1,6 +1,9 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/appRouters.dart'; import 'package:star_lock/app_settings/app_colors.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/talk/starChart/constant/talk_status.dart'; @@ -64,6 +67,21 @@ class _ImageTransmissionPageState extends State backAction: () { logic.udpHangUpAction(); }, + actionsList: [ + Visibility( + visible: state.currentLanguage == 'zh_CN' && Platform.isAndroid, + child: IconButton( + icon: Icon( + Icons.notification_add_sharp, + size: 32.w, + color: Colors.white, + ), + onPressed: () { + Get.toNamed(Routers.permissionGuidancePage); + }, + ), + ) + ], ), body: Obx(() => Column( children: [ diff --git a/lib/talk/starChart/views/imageTransmission/image_transmission_state.dart b/lib/talk/starChart/views/imageTransmission/image_transmission_state.dart index a7cd0efc..20d48e3e 100644 --- a/lib/talk/starChart/views/imageTransmission/image_transmission_state.dart +++ b/lib/talk/starChart/views/imageTransmission/image_transmission_state.dart @@ -13,6 +13,7 @@ import 'package:star_lock/talk/starChart/constant/talk_status.dart'; import 'package:star_lock/talk/starChart/handle/other/talk_data_repository.dart'; import 'package:star_lock/talk/starChart/proto/talk_data.pb.dart'; import 'package:star_lock/talk/starChart/status/star_chart_talk_status.dart'; +import 'package:star_lock/translations/current_locale_tool.dart'; import '../../../../tools/storage.dart'; @@ -91,4 +92,7 @@ class ImageTransmissionState{ RxBool hasAudioData = false.obs; // 是否有音频数据 RxInt lastAudioTimestamp = 0.obs; // 最后接收到的音频数据的时间戳 Rx currentImage = Rx(null); + + RxString currentLanguage = + CurrentLocaleTool.getCurrentLocaleString().obs; // 当前选择语言 } \ No newline at end of file diff --git a/lib/talk/starChart/views/native/talk_view_native_decode_page.dart b/lib/talk/starChart/views/native/talk_view_native_decode_page.dart index f4a7eb13..84c29c3d 100644 --- a/lib/talk/starChart/views/native/talk_view_native_decode_page.dart +++ b/lib/talk/starChart/views/native/talk_view_native_decode_page.dart @@ -9,6 +9,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; +import 'package:star_lock/appRouters.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/talk/starChart/constant/talk_status.dart'; @@ -332,9 +333,10 @@ class _TalkViewNativeDecodePageState extends State color: state.currentQuality.value == q ? AppColors.mainColor : Colors.black, - fontWeight: state.currentQuality.value == q - ? FontWeight.bold - : FontWeight.normal, + fontWeight: + state.currentQuality.value == q + ? FontWeight.bold + : FontWeight.normal, fontSize: 28.sp, ), ), @@ -350,9 +352,27 @@ class _TalkViewNativeDecodePageState extends State ); }, child: Container( - child: Icon(Icons.high_quality_outlined, color: Colors.white, size: 38.w), + child: Icon(Icons.high_quality_outlined, + color: Colors.white, size: 38.w), ), ), + Visibility( + visible: state.currentLanguage == 'zh_CN' && Platform.isAndroid, + child: SizedBox(width: 38.w), + ), + Visibility( + visible: state.currentLanguage == 'zh_CN' && Platform.isAndroid, + child: IconButton( + icon: Icon( + Icons.notification_add_sharp, + size: 32.w, + color: Colors.white, + ), + onPressed: () { + Get.toNamed(Routers.permissionGuidancePage); + }, + ), + ) ]); } diff --git a/lib/talk/starChart/views/native/talk_view_native_decode_state.dart b/lib/talk/starChart/views/native/talk_view_native_decode_state.dart index 8d176500..c9be5f57 100644 --- a/lib/talk/starChart/views/native/talk_view_native_decode_state.dart +++ b/lib/talk/starChart/views/native/talk_view_native_decode_state.dart @@ -15,6 +15,7 @@ import 'package:star_lock/talk/starChart/handle/other/packet_loss_statistics.dar import 'package:star_lock/talk/starChart/handle/other/talk_data_repository.dart'; import 'package:star_lock/talk/starChart/proto/talk_data.pb.dart'; import 'package:star_lock/talk/starChart/status/star_chart_talk_status.dart'; +import 'package:star_lock/translations/current_locale_tool.dart'; import 'package:video_decode_plugin/video_decode_plugin.dart'; import '../../../../tools/storage.dart'; @@ -120,4 +121,7 @@ class TalkViewNativeDecodeState { // 当前清晰度选项,初始为'高清' RxString currentQuality = '高清'.obs; // 可选:高清、标清、流畅 + + RxString currentLanguage = + CurrentLocaleTool.getCurrentLocaleString().obs; // 当前选择语言 } diff --git a/lib/talk/starChart/views/talkView/talk_view_page.dart b/lib/talk/starChart/views/talkView/talk_view_page.dart index 7abb28b1..05680e88 100644 --- a/lib/talk/starChart/views/talkView/talk_view_page.dart +++ b/lib/talk/starChart/views/talkView/talk_view_page.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'dart:math'; import 'package:flutter/material.dart'; @@ -7,6 +8,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; +import 'package:star_lock/appRouters.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/talk/call/callTalk.dart'; import 'package:star_lock/talk/starChart/constant/talk_status.dart'; @@ -405,6 +407,23 @@ class _TalkViewPageState extends State image: const AssetImage('images/main/icon_lockDetail_rectangle.png'), ), ), + Visibility( + visible: state.currentLanguage == 'zh_CN' && Platform.isAndroid, + child: SizedBox(width: 38.w), + ), + Visibility( + visible: state.currentLanguage == 'zh_CN' && Platform.isAndroid, + child: IconButton( + icon: Icon( + Icons.notification_add_sharp, + size: 32.w, + color: Colors.white, + ), + onPressed: () { + Get.toNamed(Routers.permissionGuidancePage); + }, + ), + ) ]); } diff --git a/lib/talk/starChart/views/talkView/talk_view_state.dart b/lib/talk/starChart/views/talkView/talk_view_state.dart index 02f83efb..7cd7039f 100644 --- a/lib/talk/starChart/views/talkView/talk_view_state.dart +++ b/lib/talk/starChart/views/talkView/talk_view_state.dart @@ -13,6 +13,7 @@ import 'package:star_lock/talk/starChart/constant/talk_status.dart'; import 'package:star_lock/talk/starChart/handle/other/talk_data_repository.dart'; import 'package:star_lock/talk/starChart/proto/talk_data.pb.dart'; import 'package:star_lock/talk/starChart/status/star_chart_talk_status.dart'; +import 'package:star_lock/translations/current_locale_tool.dart'; import '../../../../tools/storage.dart'; @@ -91,4 +92,7 @@ class TalkViewState { RxBool hasAudioData = false.obs; // 是否有音频数据 RxInt lastAudioTimestamp = 0.obs; // 最后接收到的音频数据的时间戳 Rx currentImage = Rx(null); + + RxString currentLanguage = + CurrentLocaleTool.getCurrentLocaleString().obs; // 当前选择语言 } From 500f705fc50598f90a65480c56b5a3118a474d00 Mon Sep 17 00:00:00 2001 From: liyi Date: Mon, 9 Jun 2025 11:47:51 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E8=B0=83=E6=95=B4=E5=9C=A8=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E9=99=90=E6=97=B6=E6=8C=87=E7=BA=B9=E6=97=B6=E4=B8=AD?= =?UTF-8?q?=E7=94=9F=E6=95=88=E6=97=B6=E9=97=B4=E7=9A=84=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E5=99=A8=E6=9C=80=E5=B0=8F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E4=B8=BA=E5=BD=93=E5=89=8D=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addFingerprintType_page.dart | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart index ce684a51..e8804ac8 100755 --- a/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart +++ b/lib/main/lockDetail/fingerprint/addFingerprintSelectType/addFingerprintType_page.dart @@ -128,6 +128,15 @@ class _AddFingerprintTypePageState extends State // 限时顶部选择日期 Widget keyTimeLimitWidget() { + // 获取当前时间 + DateTime now = DateTime.now(); + + // 获取各个部分 + int year = now.year; + int month = now.month; + int day = now.day; + int hour = now.hour; + int minute = now.minute; return Column( children: [ Obx(() => CommonItem( @@ -139,6 +148,13 @@ class _AddFingerprintTypePageState extends State final PDuration selectDate = PDuration.parse( DateTime.tryParse(state.timeLimitBeginTime.value)); Pickers.showDatePicker(context, + minDate: PDuration( + year: year, + month: month, + day: day, + hour: hour, + minute: minute, + ), selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) { state.timeLimitBeginTime.value = @@ -153,6 +169,13 @@ class _AddFingerprintTypePageState extends State final PDuration selectDate = PDuration.parse( DateTime.tryParse(state.timeLimitEndTime.value)); Pickers.showDatePicker(context, + minDate: PDuration( + year: year, + month: month, + day: day, + hour: hour, + minute: minute, + ), selectDate: selectDate, mode: DateMode.YMDHM, onConfirm: (PDuration p) { state.timeLimitEndTime.value =