From e3991665d6de9bea73701311c74809966c45e2c6 Mon Sep 17 00:00:00 2001 From: Matt McClaskey Date: Fri, 24 Jun 2022 04:58:34 -0400 Subject: [PATCH] Feature/kasm 2634 UI updates (#30) * KASM-2634 control panel UI updates * add kasm splash background * WIP minor tweaks * WIP fix disabled settings, add more idle timout options Co-authored-by: matt --- app/images/splash.jpg | Bin 0 -> 95489 bytes app/styles/base.css | 227 +++++++------ app/ui.js | 199 +++++++----- vnc.html | 720 ++++++++++++++++++++++++------------------ 4 files changed, 657 insertions(+), 489 deletions(-) create mode 100644 app/images/splash.jpg diff --git a/app/images/splash.jpg b/app/images/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a600b5a9bd68e2f8a22c9bb41109465352dc15b6 GIT binary patch literal 95489 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 z
Lgq(VkIT8nRqDieH%NW5ZT8K7vsuD3bupGA@s8dy_Q`38JWwaQacsOE(szq*R zE?Hg-59FrW-*+X~B4sABLGZlRXF8$Wf-_CH=r1{1XEr1_&wAveHAq3GnV|gkZ8ib8 zBn&9k$r;cH@2EWy-AC7(0vFn7!?&j3??u z3W}Ch)0~lOx*9BOVDDsaC4iB{`Ntfu5?ZUOE;pxtX>f9NdtuN{c4jIT=v|2W*c!achM45(e{-U4j*V{oO{ z2KULkcd%n37uDCLIoArNJ+}Y`1xMV3vYc%W>$?S#xIE#NRrfTp5N= zN{+Ey*)rV%Qf>iNw}6)3MT3MJ$&>}?A0w)Z;+sLLXU$>#YWtKatx$z^vs*yZ_6x~~ z8_D8EtlcdjZQnR-V>&ym4Mw(6xwVcAai8w~ea+K&>C?JdTv2@%N#f^a9O02;JVF|&6Ka3-*#p#E?nmhH#@UT!VzK+_hHCS& z?B1sRXVCnD!CTLY%+q3ZSkn{|=i}tJ?-0rXcO_CZVM-S9PxOO0MI*x~F2lDvYATWWcRbhFmhw^S`bk8ZR? z9Y3`k2`L#Ksjzv~K>t{YLL*Zr;{6H9b1?_SsCIt+H}(^OnCe^}e$rVdP9J(7a)rkH zJBvF(g`J+kvLY)>wkP>)$CggPk(!SVr#xsvcm(1Ti?|{8?-G>Q(@mjXW@}YgjXwL} z)4i;9vTNe4=Pj5=%0mk$C7o$e*C4S=*#U20Z@REmT1P3xSvT3mY8&ID9=K&&^_U8b zH4t(C=cW=1JMF)|-{rm#5=0SF+7IW5+1rHQg)fC;cKlDw)rwd{ZviW|=BHVgDViWk zPP4hiy<31W4raaa+_Qi7;YZOepu;tR_-Y2`M%2bU2X7Zvz z>BO11tx#@NT=YHSv&%|`zvpH&9d9<`_~Ge|P7X!n!UEx=VDT5wU}5>}H%Zh{%Q1?22$ zT`F7^HQxfb)7Av2>i5DHj|H~73oLPluI9*e{Hm-Odu+ZA6Z!d3zOL-j_q@U8#&?>$ zS(i)8cz=3MY{s@?FGZ6)Jfudt0sLnsUy!`Xb67`)S#9Q-f$-CmA?$cX&{GF?t}z+; zs#D=t*Hq&tr;>yDY=tcO>K)Ggjo*w)%S zy{_LEtjEIns8ti>p{Se@2JsAALE=wf^8YCMJQ2N~$ICaAK}Eu_#Gm9-3-SQrzl_NCZ&;(ZHq|mXMN|QGP}+ zM3H5mPMx&gN0l#VCt{#%zi=2G)> z`js;f-LX-j+CJKNB!uMIl9Pag6N~L6i4!3XM$XW5$j3ibr|f+CSh!ea>H)SOV4cn2 z`^nXTUo-X;hf&X)E*4S|5QL*>20kBdS!wi8D-l3OsC!6ML=Bd10SG9LjzeDQQ!A~} znu2kF6_wLZgD;Bgc}A?`#7k^d6)!{}h|7q1SSHm&`Gb_17Pi4?Lf!E`hXP#L{X>hzz6C)>dV!683^rLH?He!x@LW20K?D zzHQ?DoZk~`>y+~fHJqz_AU#f==p*Z9V#_yW#J0oOS%q#H{-Ao=SFY>oo07HyIb%l!FW zBekz9SQDl10@mz#_HO~i#25)=xGv$%OfI_Ky!qFT>_oRkQOfM8XCM2DoC_=Lsv-y$ zW;PN0Pf_K&)vq14*^u52`mxW>;mh0~P#dR~+A&W`)-I1Dj@_rjiv9B&hj6cYQjnq$ z`7<=JgRVbNu&ULCdQQICn%U}YRlkjG+vzf|!DhYU)|4GelKz3ql#Ydi7IWW49W#rx zar0Z_i2iXcl0z5b>*aYk(NqKYvg~z^W!>~}0PIv(?a+Zs&Qs*{0E;t%f)nHCUgx)f z1h#)U`SJDX4obmD-u;Sl{Yd9{B((;3fHD#V#Q@(m`EXOO(>pp=+=yvBRdIAClgOyX zJ*?u2t>i)Fgx1^YSQ?yygmZKQ!#YIHiW;8$AO3Ln^uda5%2`arzDP$hcQI>wa(AKe zwuH(Cf&7e;&1c#%;O>2=6N4?b*C)Q9Oi}CqF z(Lup$3#!kf!K>Yt>zLPq??@qYo$36MIG~PmksuggV;c=Vjs%4uxb9c-@x}JyQ>R9^ z69`d9;#MX;H?V>lZLL`?_*p}roTeIlL;x|2L@{y+DaNf*D=BkRUz9Pzt-5dLF7LfL zcW-3T&rEdNVSG_x(@|?Gdae^K-d+dPnNZ8cH#-jvrhC6<_%X){s@kNFVIYT>FO z$YrJ&^Q-+$#D@jOXU_fpI+HO02O)YV*F*+S)u?#Y@CT`8gXikmzfN!IInNOKvU;@> z#FN-%)zmXPFn{pBmbzn2+Ia zbSkpTMefapsQEup`{Vh2uCc>SzHvM;Szv#yP^?+{ejOch)TftwNSCX{R!YGD=qV10 zd)J7np4Sr`UYi^6$Ygn5Ij_!cHu+#%);or8ady!%$HaobU*t8bMvvxn|M8}W8{gZS zl!fMotN{CjBiLwyN49UG!K`XVTpTKmgmhDhfRmP3Pp=e=(!U!{s$KJ`Dvx4OQ>R7> zO^sHHBM0IL#VQ&M?|vy7LPx*!eTwywj_#p>o|ekzxvYBIV+*4<`QVrNk)_?AMa7YB zLP6S#v_h`l#`$`A1Mbka-257bq=KRwjlP}>MQDm&=hakQZZDJPDC-m5y0jmd2Z4S& zp%WuGVw&58^~06zWDMrS>vV2K_PyoUpt*CF$DOcGMU!Q*;=Y`5jqh*fOvEPRY0ZK^7}$^3>KJIdA~6`XVQA zVP(9a=4p{lF*ude#}L?ncD3DCVvX&!waYqv)P7QF?T2-5+&j5APPw++uz7!esd0WH z-ee$OOm?K02vxBunJQ~$xvByX}T;QO6c9U_reRV*E#km@!65$c)kPjgQ+kUV`d z$@OR%`J-RoEpsbmO~4o@ddw7k65OidOGNnGc?0;V`vTeMY4Ot-#9YBGU~m8T^xLgV zi|&i7uD4HQvB@S6hnLR^L#~dwhhoexTX#z4+X>PZa*sBGe3l^F)&C;Di}hpB6w7|plk$?~P+D*`|E8a~)W8%YwZ#nZP; zc@681GU4S=doaQK-n&r}`QE26tAJR%VsM?3nxBz=S0OMW!2r}{%fNum6vzaDBBEwK z>Gd>k1k_Edg)}CfFGR@4`+d7GG3N3~fBmE6<7K>JTgFn)rzT{#s1ieJs+oHOcY_m! zh7wx>PVl0yTV8=a!eLT<62fp2oQf+R_b8nl#fktUhW>Jdw8>~@{8S%=cqZ@*HOKwm#v_VWK z^SoB6BhxC>A(X_iE3}HJ*$1^GJ!lAP@WktjTfkdS^O|Bn)D#bXi_ZN~wZ|g^It>Ii zkGE8GF{dwrECPd-U5>Y0`rZxiKzARTMC?PynruY{lw&%!y$`S<@*eBIP8v^t-?R!e z>AKl1H{Ma4%Qnk5D9|8NdK}jve$eIwE@-v#@&X)EO1JScPw6|!_$ z6x{XNwkZg7A>ZdUVYLfbdo_OL+uuLi4N3O3P8{&b{o&}!3q>yI6v9qe@b#?`;J}&Ln34SMu2p3;_*bdWX*mZr<*8_mVGF`D0 zWu3fpH^$m^$Th2EH(pF5yqzICl+(~-@VuPhb>X{d=7%0Lg$;{QLVQ~Frs9LKwFc9> zzMlRGjVZccW0016-I{y96;?v|P7-iyxBFQs*PqXH}-(Q7Y(jcTD-ZGPq!V8D(e zYD6X*Lc(HpT18IR_vaRhRg=HL794RxGLjkf(1}9dE>e=DT}>$w#EhnGDP1H|Er~4q zLZ*}iBEc7pu8y$PmkZPWV<4+=)BEvUVJXab5XYpFgcY+L6hEn$`813_%svx}_}FDO znj-*h78cTJ@b%c%0Q1NA$?{4!GCc3gA>`|=(R5Wt)6~f+GT}DI3XaHD8Snt?T^m$v zd(S1|RlrThS<16tJ2)o-b0RPBFK@bVwUqNB&{EQ6KMs@5YPE~}t9&KFHE`T3H*gns z1IDk1%zzj)kg+q=1#lm%d`8a9S|Fv@)qPb3oz|S4vg5sHUBC^o>KM;@SKY?ksSAQzcr8xiGl-F>wQ#}b94NHE6wCJ{H5;U6u5i1RVSrRsL#(t zsL!5G~ZfkT;+ zaE>)^&W@86!CQcNZ6d#uXnSaqez^E|3}ag2j#!&SuGvZZBhMr9y`EE$ntWYORbnWa zdtk0{8K*r zLCiYEBUt7a;*FY58kk##WA-VFejVawSaGWx>_#qRFm(_$-PNePC%Bs?`&Guu?!_31 z=lHeYQ9xL|twjZn2?rGHKe8otl!dKWt3#zXfeToO^(LUnMxA=O+`!b|9T zj$TIFU|d)p?J-f*TZ7nN=+V8&AOw=s62)oPJ4t_cPWK+3N=y!IPfF#Nsv~prkh&3| zb8D7b=v#SJuN7FY{B(?~Mf5@D8VD0Znic-mIC_taCT<#Vyr=b;K>SM**Mi3E{2>BD z@-AL=bjnHX+I&QOFsvhO==Y;zX$$kFEsN)KllN%~933MU)>08%hGvG*rQ-U`Xo()& zqS++YP|}a&LDEvs(5R%-`YLlXXs9FZ_ts!~<^S>859KfsIo-#GEi6kLpHj}c0M2sAb9@3-WGVM2J2FpPM=> z(heSHlZunF75|NVKqh~WMf3cf%qTcH5KU8!bM;^69BdVTH`u%dU~y_cTZ2jPk3PrJ z{+go(O8V_xbFRsWAIEITF?V}r-We5wGH_YXbz_Vf!JMCSNKSm^nzwgf7@zn++pA3a zntX-DVvy@ng_I2L)8%izOlChISA0@NB{u1BCCL3Q(+Ap*^#L>bLY$4llk$xsnfAudlhKG1-?(P6I+d)&ohjWl z=OX?A-3sXLYcIKHQra5aC>lB%KHMuHQqIHK_QBcsT-oit>pdG)#ZQ|;*bP(WhZ z*yDW|Nfh1mjtV= zAXC`dz6@IY7D$=%{o}DOyKzO5+?~VX`%_%#;aUt6DI{GgLV>-I>(6XPm1fOiUQUYv zNISGhgz#gKy!Fvz@)o}rLwf1-%PF1Y4k4}KZ(P)So8?)Ii;J@m@aVX?-w#Jx8xh< z>({htxGf`R_baLl^9Hit)QGwfxFRi}ds8Oudd#WIT-AyOF#e>z*u8l8Tzp^hYc9rB z$zFb+2o(m!>}39EIv()iho(Jljp&jXLltMYX}vZ{v@@~q4nO$NF0za+7H6}h@nN+} z_(4V-7dLMZ{_iV7sA~6oZUGB7hp$DrZ9$>ljeEFAk2cs-1IzvK`GC+_oEw(3bqh!y z+KU!Q_ZqqBNE8?Ub9600yfxj=v2jd9TQ$PKY8Ayr>x6EOgq@=bCi)HWzG79xF2mXs z9OYC7iJmIViR@E#99?oVh*iv}6Z2(@ zl8P*xoclv`1ikoC|0~Oii5;kq$Djp8w_owS5Lb+A9h2+4cDi#@AB2LhW0R6{jglY{ z5jXC1>Cpi&(_u46gJl@Y|xQ4GXLQuBCd7K)?g zv#R+I;sA`ux%k}ur9;qtEtd%_Rt@KDR zF2o8n1h-y!?Fz2cw<2&YM~L$Cv+diwxh!X+d>!b3@d^%Nr^R08i82;pHk^}PA35B8 zS93=QuP@3b@Z_=-7Y$cB9Kv1@aP?8?=e5IJm@Y#>+|>r%2l$|LD2K79*K}We`O}X_ z;LYpOsdd)tV0*E}qrI!Z^U-=g`7927C`4Rf$kqt0JbV39Dqj00ZO6Ei`wN?f3&?XQ zB#gwn*@34L(IIg6?Wh&3n#E|6GYVn9<|)R&)sG-M1JCGxxK4 zjTyW+=>3b_;pg=#3<@uu;`3kqHfiM75@KY$pO(5iq9;_gHM?`vdX&Jj`K~M2b7wT? zQ6x>Rk~V|dRE8qZtZ<68hx9Xxzp<+MEWgA6&8Ri=QEk(kZ!DKC)s2$UD#>%0%pALHQLIb(Ps`-hb^O5P=4#qynAvHk z&Rc`UJJ(AJ`S$0bmYJJj*yAo|HS6rHFL8^9-e6Pk1uADW9n=%&oZ3T`%Smk%|8xK; zm|3SRKyV*zjMEGqNPVAuUfd+Bn)2zmsiJ|dtbS&^hK*U4e+X7`D_+N!4@4C*u(!{EHa4(DDPv#TDp39i`4~mN8tX!b&(}fBH~xd* z;nj6@@_|hOlfx0A@;Urd*J?e@=Qd>5((xwo(|Q_w5!{lFa!hK95jA)R=8q<}sxamX zqpxffkEByyfOB!7eN_Z-3s+M zY^7^CyswXWgF|jn^%Rw2v@_u{V2BXjU=6IFD9O9Cf|i1% zpsIz`UmhN{^BaBxg=W;eu69qXA5c&~I$+VwEP6K4YUJ07(3vQ+8IP+v`q{ldR7BlYJe#i(2w)Qdv{{U%@k_y?fXtMz)U|zf6-?a}@SQ zTZ2RWmNRAbT!)OrA%lHA>R?0qm^@UcCA_FbH`J;3G{t23jpuPeK$@WhF)aguxc_w? zo~+n-MYhOQa_CKZ#c<>JkXGBT0)?oz^Gqwdyd)ZuoCP{|29Jig_}`^0`bdiC$_5Um zUad3F>wp}3Ie%}PTEzhAQyO6f!0mG@{#{MUvNi1qek#yZ}I$Lb0lqxUEqH7zLRLeD(sic*!}JajDjjxzzc zFpNhC(#TFRYdm$ov+5w{fQ>q@`txI0p*MH(^&nO?xLTV$;1pPM&wY7>%-*vIrH#&^3ykM51zjr*E9HKc3w2InT#Y6LA}V zl&V-Q8V5H*bTPg`?_XPn{}XJ|*qzKLHfYhDoS367#)BEZmWP_Mqgh&9=fGOR_}uoy8Lf$+rf^O=m9C>d0a zpIaLbky!*`N%@1>SK)KH5Py8pN1pVAq)w&Xx&iQG8yw$n!8NJbaG$N@&im}R1Q$gVoRkPj<)ozhJc$>-K~L*%Tstk56PK=&l6oAp z-87dZF$v6NNFeS>VtDpqXnFyGx%22OJG;P>+Y}cR;5lf)ZCW3)|MmVXrapo#c-~aY z&Pgn*R%|m5!O}q)Vw|#I(io;D{|`l2(tAr01A$5z9y^=r@wIx! z<@pyQJ<&^X#uo+8@-zkyp`-d47FGj!q9Rn1Dt>byyk#$*85eBv`m%BCbo!;3ap~(5Cmc5eeSNBr3`}iQCz`&Pg6^k1#o<$5HS?ea z@7?F2*|Mn@watB{&M(`(h^^rQf+uS!7M)y%Pp?7G?6*2%4zwD}fA4L|{?kFTHbW1; z1*Cu3^2zfB8~@frhlQ$Ll)=~I@PxA=jkEO+(7E=>mXX%W7Ba_;ES1kKcI-|kJKMJ)`(ZCr_e>1ag&O%x|OTFQGM$wBpWmkE!Sx;&F-vK zStAXMdla!V%In*m7xxa`(_$dVtD4~nX@|F~pzd4hGAAxHXhKZ6r;zNwF?5eq!Ie#! zXl8f>k*Ml|P&TL2kugu;aSt$zaO|PRn0Q-Q)$aiimDXic=_d?`66o6@NoF#Tjo#@s zWtEzmg;|rSVU2rE#v~IA=GBxUL2gqF6$8nM&70))Yl<^xw)>1eP+K+R$z^4G2XUR+ zb0Me9D!#bxUb=;)vB-E`-I^ly{a=^t)FKbBgMt*yVpv{08LXZ=9c=vCsj%1av-KJD zQh%mLw!ePkq0CKNk$VGntXLD|(jh&dFxm?078yIe1q^PSdha^qXKOSzJXsz|xAXQ4 z`O)dXXj(Lj>&T#yR%u@%j5gk@&!+djIU|fU3`*1?TGg~56<5YXlN5z?U60=ExXDyahCxv{J(Og?*q5Jae(+zc7Zfh;n zky(QOIEg6C#(EA&;8+&o8sXBCJwGSS+9?)^zJ}*QI|OWR?7`d>bEEm1`ns+LrGja% zIZ9{O5uRK+F>l&lav{EOVrU~>;1mOyHOjC*DoP13HF`9xELZTeCi9eD5?F2z;foJp zMgf(rHR~P{yCCM|Z8dR1oZOPdo=b0YN1YMPW(WcMI*fS2U0XJ#NQj8??Zhi{=;?lN zn2XNRO*i(qQWfz^mrJTjSOs~@i}w|gb~LG4RjT}%PgH+`CO8pB7pdBazp5~h zhwvb?l$*_t<~&uoqzt~Pe{q_s!$c}sV|S27I~(P%*E_aPzyuUM@Znb{vWuzO_I|kJ zzm;yTU~+7cxj84y$6`c~D`hKHy|Z{C*&+F$wD!{`hF+C-cd~YWK&rKVJ$e7Q?(wwD z>nPuy%a*ODy6j_;qpCXB`x;`;>^oHHxQr?s*eqY~xpPq|W3$KER(lfkhUo$l3}R8*7|Z8Ru^ zY@TLK(rLE&)XwCre37Yb)S{@5!7EFf1h@0=M%b?by)2xj3F~NPD)&ok|3-{ptavMo z&@*}b(#M-=n+7cCCEWh!tEu|FqAFf{tOmBeRz^!;`{`pROZ*?Iz^`JA1d19mMnfm^3E~ESpDFlviU8sBAH4Jk7q>qY;{zN zny(5t=;8V?DCMXK0NZB2J3v0atSTOI818zbYr zKd^ksn4GQ z5HVb%c!kuwIo?B%`nse7#ZmDU((?}NSn-vTAR-P)j2eH%Zv-K;OPbV}zmE+q_BSIB zx##rD8|d$4dMzz)G-x^38}Yuiigv@)!=L&2PT#rFY?BOySsmSIA^58hG>daK;_W_x z@b?HV0|xRI&OF*TraEid;4osaHD9m+9D!9ek@6WTY*L)m%wYBqp|7^7Acw!O!Ch{G-OX5j(+Z4^9Hc29N}2=Qz7|e z1$Far)@i$v0p)uAM)9w4oLEV9*bSv;RRI@s8$U3($$YdkgxGFEvR}#xu z9*dRDe&3j$?ygn;rJbX9=^*$)%nM#EWg!$TkY@KT9W31V$mpxU8zQd5XEJk2{Q=&3 z%*7lTG8C9yMxUkP&&x4+?cX;-_J^>s!A3k}(63#tR-7|06TrqTR1e!Xj+_$=1!XbtS{w(3e7e#w=lfj7^q}^F3|I_7O5g z6P_J4R-4V@o|}!_6dZ{R*ASW0prEbe+EvLfvx~xU1|DWWe+7EGn_m&tpCyT%6Yh+U za_~3cG(AVTe>%<+@(eFfN{!}oX2#lgUY8^l6*$K~iBMZ1wb+ABSpv;mxtZRW4popZ(Gi=mU&thSno*23GSoBFD7ZC$InLDaSKK#ol$ZP3 z$9}wZNMBWVW~sGe(p5mUn$50oICpW%{RA+-3w-k&+)Dfv6U`&IqG9@(cHB;0&|32y znj3-4et$!~TQ3HA_FIV!@q7c~4^?~|DQ2y4?;){9YJ3Z@A`yIS80GRs(?Y}anApuu z3{fLd!AGny3Qkmd{46cark570N<&Li^EqESouMAik)%!z?2k10j1#e7_db04wMKVe z>V(b+6%n7woJre&-%g{TPAO+uwzDy&@BzzyRHYMUrqC!HBK(@k1=v-X#{S9;SmFQd?9c~5M+ff8q3vnA6wmp<;3x^n6nPKmx(wQ$+*dsa1! z9dCr!dI@!sQu1N!)fW6vbh}Zu)f0~j@YP8r-%}P!EDZ=WJB_Nv5t)blv%scXx99Kc z6ZV#ks=LlTXY%qmZRpJc%1X~Pl{)XvAR|L{|5@8uHHmf&DG4bCZ*jDqdGF*h_q6%! zsX~&>xs-wuoqdXKa<$+#Z~4aKJ-otxJ<2^g zbUoP-3#oP@(I6$K1=7+dQ;;dDKUb#@s#I+NS%CFl`J7GYJOzi;F&Bal2d|FxZUIkX zp4>Cbb{Bpn+1oc@_QuC~bt?RBg!7|0Sc8k1;5!Tnfy5N<6EgfH7(}XujUVTVDZj9z zF=o2$Hk9kc z)3t&ptB$4-eKtc3P}ozHq`v*%w-Aaa)DCuN9ya^&oXC;5PwGGpB_pX zQD0$pYM+2aCn4mu0(u7;BG0w4aTVBd5vKFD0&4(HIEie=@GEYbZX^34r_C5gSaXFe zoU)YH7T(TDE|D{Wq;5W`;B{gy%N_;SD%on-oG39H)SjqTPzo+gOfsN1HeZD|-zQ-R zfoO6+*iKT}u0%LSk6svfqouZfMGGnEsg_$)m?E=zz->y^f*)0|#W+<8>URD-AgDPO zk~*+Ilp=+S9-An=FRnh}w-AR5l$)>3Ar~Kf%b~VnwR9u9>|QzydM7t{9il!L8us+& z9a~`AcKQ9un9$j9aVKk%iNHcq`Qtl_wM3!EG<`k@y`}L&GouYhkZCna}fy zIhHFn1BF>qc?*=2z7>ex>P*o_F_us5h$w1GaH{MBO z-KWrJas4cki&dDOiyGELDG~Rr9l2A@Z&Ml8{0dJ!tw zZk$|&=bYh}7K1PhM|nzBNV^u8F1II`z43IKtogK1CON|6^R*sx1RXN+XvS?tkpf17 zvfn0#rbv|CMLO#R*ITla_AV9euUx2QXQ?aysl+JXb<#CpHOM$>nt3e@8`h=WDK+Ei zD0Zx4>B{C4>?Va4L>-%2`B!sTeokfKEe03cB&RK(IvC`&%vQq zN$p5u#}nAo<>#K~fq!V!LhR;tq%7%NTiw82&ljuiuGdMtM}Il0Tph&)eItIksS&v3V`e`}bkYF9eKC_=@6;(+vP+Ddfy}?_{ybW|tBp{C8MF-Q#ZGY~el%(8 zGaZOfb{j`8&$`C2<3uW%y%%pqsPsNnc`>%12pE+~h2Q^F8hVtKU1VeQpe*D6W9huZ z+1~&6e@;t{qDDCOUNKtKOqJRZGqECCMa(ElsZpc$CRXg)JF!EpDmAJ$L9528JxZ&# z;(Xuz{C-#ahs4!O|M1T1^}O%QpYAvN5COxpaq`-K@;ZeLLax47byCty8SF&8zFon#Dcd^OwC?Vi&!e|_ZN4ux@vbhJ;sdsADvt9N?_R9z8)LCP;u$h%zpRtIHAOI4g*S}Rvuyv<&|%fN5X4pGxoXeb4!G}SOC z5uMG#Yh5jE@^34^GwV(~Os+m(VdFVfU9P)4l3An=TWTvw%SWPu^efHuA`|8{7o5Qz z2-yRRJf-(R{x)O%U7S@Y?xFPlnCy|*yLM`O1P#rXYO)k9yuA}cC= zPZXP=6?&*#i3z2eklD7oR5_|JwDk5;#kU(Kv2E@Sp(K*tIy%oNeeTN1a~K`>T4E5p zx$p}1p*xQCRWb&-xZszPxOjkS=m1^-Z;%$3c?ixAmzk;}P6#>8*IHb-> znlJZE4M)ccPQi0ekHS-rI1=*MlV#xm4^l3~94tgNeaYz_U#t9dER zjL2i;-+e)%Ti;bk-Y=VKtQtSf&T&qW@*$9U-nQcl^mtvF+^DD5S=0I)6V9-!h9-28 z{>Klb#@k+UaV8~c7TW70+dDbEJeQ@+O%Zp^BE(Os!`3T%Gd&~R5(L`Ls-L?h@FDw{ zNw!9E5#p@czZPt%ud4H4?@pdai!4bf=EFJAlorpU42|u4)6r^P3A$em$Robkw>W){l~vmkks`J~#Ifm#HnRBs zuHc75+IA1~;q~d|D>=;X(MHpnu+ow1HkS*7R z#zA8JfX!T_T_#U2{ajJT*HOFJvP`m|R7PFR5btgItaP0T6GTeAZ?EYDT;y<2|_hKbGSi{pD6!RJr%7wDosi5woYf)0&fFq{# zs?X1V5Fu76HCrrKWd23*lQ0}enKtCIk=(cQqQ;0%PS9p6_0d4_a;i1b~p~ zpG5IG)z<6I%A_>iwZM5_-YJpTTk5Z|x@1D42l@>dArMWNyLv2{5>~BHPfhD)6?Gq0 z-3F3g;x&|Bh=cwwbCH@TgEzFdDA{Vy+1Z`Gw|e&}{`1M|Xd8OHg3Cg^QmIxw(V(4@ z`R|!`{_M4m6Gkc$6L`5UL+T^j)t{^IB)RcjNY(W0`OxNftCa5X{5s)l-$VBY_+iZi zVT3fYbA;JSPND(VC1g9O8p|R&bdnN%w}N}=NbrRjQ2+yQV02kNLF@6uMFlG01paf{ zdF+EAVcWUE>3r2hA5P#II=B$Xe9#2&!~^QvqH^vxq_@OD#4VG?phv|didMgp-4ACo z?3dRSdJ+LiD$AcpL1}~>n$b`FRJ^AYqcp-#LG^oXHs+!QpCXkp8t5~Orx|l-M;i$x z{baDoRa?P-57nUklqKpuu1ie9N%D;l+L-MqVl{fUek=u_+=X{}vY$9W!z)Y4Ub@@? zxpP>>zhi9ZXsVt<6SPIPVXL}*IhKfKox#&*-$)Y~ zE%oGjQ(sfGxm1&FdK8(soG5|jHk^dw! zR8WL)v(F@UUC2c!1)3pMNe?Uk9ljSQLlXxdu8GE@E98a-bG#>3Z)@iW7-x%?@wQaa zs!?fTfKe#jq!Ne|g)zl}p%QsLhJ_K%5n+ssNC9IYL6Hb&50e8TN84dcF+hSAfQdEf zu_j~~Y9wD+7JxwmL3>7OqyRs)T}nDD6VO6|xZ)|Xq{D9; zSW)_LP@7AFtyJR7N4E=q&S^Sql){y?2qK=W8kxXV-$M!(*-Fu?=Mp#G%M37TL&TEr|eun4{DN0_{v$4p9gVMK)Kw3}O(< z(p`~F9LNMLEu~kroeyJSE1_R_bFj|93>9|^k<64(f2bJq5&mdr_J&ZK@ve7(e~wYp zj@jd5^zh7ub)8YcDf-9WDZzL1C}V8e9w12sMGtsC{)sE`Mqf|J#=5G`?jZ8EwGE%^jkYY%-Lh1P z6=PyT%I4DZ2S)(mkYIi16^qi--J#i?(__vq4lk7?|Bqyg#RFv$x)~WL`*klKmz$Ad2Y`vbL$AwwFr>Ts#b4Q?w$`P zWgY69dGf}Bk!LuU8FI9%bG76PjnUs4CBMs^zFeEHy}S$n3=iYxeIGUC2q+>PjEt9< zvKgaw(`ICTeJ#Vn(vX391o2ct&8PS1B6Enm)n8oFH*4oHN^e!3U3%!^-Z=Ky?hpF# z_F~K)mbpR}5X!KJ-BNNLV3)n~e1qcD4zJltSHZrU8%&;}C(W`lM$c&70;ilbRvNfJ z&6Ko|P_@~+H`?t??ed{K+bPi|e0;QU8op{ieryjFRFEFXl~IvN!vMXE zF%BtN35N000}*gZ+-GU9=ARfHz*+wJCFYG9(qq>kOzLgK=m{yA7z>&zIHvbdk>AS! zGH>-00QN!O1CuhF>KU&}5~&%@fwak8xD)FD20xMIc^PjMHG2X@A>|mQD0cx9QV~q`J(_$_)8U#RcmhrytVKW4MsgJ_Jh}kL}%jzjIn`vnBZ2gY|JZSO44(_I6ZTo6mU_PRZq${Ob4X%7ri>7sO;r1whco zg5}iIGIQCizKw_|A})QDALYJ7|~5<6Z#Ge$0#=1aB~Eqxc(9o0Y=ayc5oPIZJSNmKu>GQex6PwTh?>HqtOL zGs0X5hX`)FDV}er)E#zrumXE&UUL9ET=`X^-+B05MaPFjdvx{BNa_lSE_#`=&poMH z)L@6EjlEo?=f2u0eHh0$b825QPbX?$O(nJW>wO4Cf`&b4tsZU4N5a5T2o(IXWoL=t z1w=-iw%#pT&k;}^y;U4^^Ciliw?b5!%?u-x9(HM2_Mlkd>O0_jfF1Mn$Rt2j>>4TN z#8@jqC4lw2M-KqlPTqh33m-aC{N3_6#PyJSF?w|LP$V7Tkzn=OdbFB{mEcReDVcDl zvw>#jh&RqrK*^9^mxjhmghfFo2rv5vt>=-W>uW&q-0oS5Cb&aL?DrI`eqw>XUcCW^ z5_oRX`YJ5Lmjze)PfYW_>eS}cFF_`mPm4o7UVf|Ue=)opoE5TA(eu_l_=(c`ZykUn z<+S)=Fh0-*yinCw&n-xJF}~aWqcWJqv+Z0*x&6vvQ#dD2Q>hLo?w4te)&BPnF(vEY zwWJdR;4!xX%a~s07Vv4>$X|wGI>YX-iDr+G)rrpGbS)9_j~m?#;eEoPZvs|FpruCQ zqtn9%nMRxq(<3XHoB`diTtg!dg!FX5^Bm>SLz@HH;V_#UkyR3t2?>Jp4eQ_l`*j+L6 z=u6Y9WxRi2X6BRR=n(D}q&4@$a&56>1tZ>2?i*1aypeUhxif|)z=2TCmd*3)TJZ4l z<)z1nr-C~K+dO0lmX{R6>lZMBr*}~tqfayk3*=-mU5>Zl4qPAkKlbhmR;J!j397gu zGjv+Tj>V85e<}s4QHv?@RxWUcd{*6N8b1o7NAiHXZ|0Xv6iQRS8LUiILPN8%vZLxu3?tmbhPC};y67M(n?fH5R_=^rcR|P zC|Dt-4mXkqbJfpQv~En2))RB}i~1M2B>4JGv-p~z&Sgq}E-`#@CS%{Hm^OwCkslCA zi!$Eg%tAmD5v`h`IZ&BGHxJ3z;#0h4fd$z_go&l3n=yWIkp$IS9fm24AH-SLRlJ7? z)LL69p8xJPcS!kmDY2>;G81IfY4aTF+6DhYAnJgq> z4SR|Cpmyl`iOTMm4#6L6=xdGALyz)zrgt3YQmzc9Dqc?(z`T(4eS0LR<`N9~ON)Nt zlaJDE>9vZ-(!tm-Wo*X~r@Zj}4+sm1>(=e$^B>y*@zUx{-RB)%9v ziLaHu{Olfl*Z(Ty$q8TExu(PM6W?onqN?I%risF*`h^tg0a>st=pE2B;7cZCatmn9 z0E`=j{{1?7VZwViaAtMO_|G#@`-*#zbeIBI@Yv1 z_sTIwk(@vnjXR8YvSIA+we6|d?6Xm6jQ~wI5u>Jf*&tDF-Ca5!^icJ{ zZE*ZTzfN04{4pj`Pi(PHOfPCD_#`oPt#$(DIo3 zl@VJuB5DN9e1oqyHKLnsXEzWHIG0lIeQ&P&HCB(!32w|qK<^B}px8$aBUe?Up~h6@ zx7sI-$@7nqBZ7gxK4#9qxdW405gYc0JEdjWKIM4*8f03PWTioMuN)L}8-tw@CNTij zJRBOPmR~m*5w{=A4K|B#w{ZSgssSWt?}`2LdPzIO?}&d^q#7?#25)sy&JuR)HjV1q z+AG9ck7rp~sLcl$TAnwC1n4dxK=IVdmJNjsvA8&kl^E+lOR!h`%4Z$TXH_nNMJ>KY!`>S$wnn4mBoyh94}CkcldU>e?1<#M_4B994dZ z^v6klJlTpnZ{`CPE#h*6kB~cp5+280t2(L2o^vb#+*a*MiW!IO>ZtUHu;`Iz{38*9 z=~Z?|h*_L-(M*0Kg?SJ#?L`Ax+T}A8A~IE08#}sHa<^P0U1iTDWn8re5Fv~&mC#lN z1y9d53-)*_l-V54T+jN>7A{?ZdV}uW=#Bo`G~ghdUoY6ZQyJ*|n||RE{pP9VG0#Z| zrF*dFuu8c{US^1d0>8J0noUBM^n;c9xL#Q}6(s`{$>*GGB`5L{=1{)CM-XdrX?zkjlEFV_?4c9DO$s-MZ0o98+fPWe}8w6x(t`9y6@1mU8kWJULf9? zIE#vk{?pfEYIlD9GJAH%5gk@Xu?sWs=Qf|-vd|m4e=%-YXo$1+WFhnM? znTU--I+~T)y|VK7BqyPM4@-)xrYA2N3KL^FX)`6OU;i3*&Tg2G9tNm>fI8 z^YMxbYuuAEZ6uIuAy(+vb8$7)XvFHMt4-p_*nlP(E^M=6Fuk|p?;t2{@rNF$AS&A|#X56|o91ODJ!}fqcEhd{=dzCC0}-sM(GnZjK$L zSAM_0%-x&143L?NhpYp*5NHZ91WZ7hu5)P{5`4zr8rFG^d650<37;++aB@NbBu8R# zBR~^c?XncuHPTe4V?TX>-$nh(2?xd!qv?WQd~JWOYuCAp!Gp(9o9okWLYf4)_3DAmP0n9C$2>~+R%yrVSY0IOC+P~K&0&o3FMB3dbxbND zjGw3s=su$uo681d6Sc7s^s9OriD^|($!fK}L{~%v!&kkhfRQ8j>O&t#+;#E&n6Vo& zAUPYM8}dI97FfK!N&9;vp8GL7^+KbhJduOeb^1E~N?|X$n!lANj2o%iZlyL1|7=Ig z(^cqkehA4k)ZgWVbkUUyU%mkh>)mm$(o{b}sG74Vwl5MyTUaZ~@hBn^MCB|N3KT5? z5*UE?B|>FDOs_u*Ilp?BTeUdN^Ym#iDLM0;~=3fSgb8L4Ly$vtX75!hPf^+r{leRe^@4b z-i=asO(tfuHrN~};7nib+f!b=Nz2rlOH11@;&SjCz1n>W3tK3REL6k7n#BR`krDyH z+RNwY*wQQgIBnfVef2*)g9#yXV+s%2u%bq;E?xM(2}-LJ1%_Xdv{1TnS5#EleU@^G zPZ^_i|GLc`bK#!fA6dEC@ABZ7SX7Wh8qCh%(Uak2GO2(P6TIJnaVsstD-Sj2v$DlV za&Y-7S~yr&!YX3tQIno)oSNtsrhJB_RE|;vr0GIMMH~Tj<5PC2xb%IaM{`KElDP*Y zk^2!C?4*4o0tOtD0%U4*`0sp&q8MP%Mu45C(u-Nsfw3D*SNTVJ%If`tcmrfy6d3mZ zhk8L!y|$(tV~clL6%?4XW5B~t6Z56qR?$u93x*_wmGX?c)K(;LM$=hV*)M zfDUrlprIU~?*|8}!47EE7R)(sW^Ov5L#hVlJ#F`S=<8LcqICLfV~1ol;BpZTNW1&n z-i?EncB-#fPtrA^tqO{O;KC;&;gI=*&fM3&jugVA~MOgBJ_kgNk!% zkkl_zBtYV#@1ajU3j-H^sgkab;XBZj(jb@2=f?umR2Zu+8U@Pc1yVoVfWIR5YPgS5 zQ=h4xUVO?N++`T&swNpgCI+v*jiRzB^vl-p#Sm@07Gcj1_AmlT1_TxcrwQ|A|A`{E z0NV3Mf|0a0Bry*PLN(ltUDY84dhuh*DoY7ylkO|eagcY8>l2|_8KPLPJ;vKEV&USJ zB$=Du>+kt6wu}r<*9igZu!!slf%}E}6%)p|GBSg?KVS7zsf4xY<16)SvKh8*Wke?W znTwVI9eCV2`G7d;dF3>SAC7ltB}@zYHB(qsqNA>Y#NPPN|MGQno!;uzybUmp?O)~Q z7&zc#mDlpETX4uN%fn08GX7`Hcs&!G3w0k}FK_@8|16E?(}3h3%}q^B5yY~|8_o)X zw2nF;?Xx|sC0&6S08I<~v82wBUF0G;1=AKo$n5|?>&U>*fc{B_i?7Na^XTG30a!r0O*tM}dCL`kPP;^A#rE|rtcsEtqXcal)5 zt_g<_aJTW$*E-#(N16uZ!NnO9e5^T6?+e>+QC^pPdF}1WXVME>KSG*0;5oVG z&kV}p3RUTJvqLki^H}GZTqaD)9AmCoY}f*Y8R7%*|B(GXW`6scLF0veQx^<8n2jYr zso~=YdiKqY7~0Y=(PouF+YoYPFupVYf*P&?jjJ|WmVAPiGYNu~t2b$|v7tb_S z>o@UL)K}h6p`feEc+ZJ0BIK9YiyidXe!xPds}(iopZ4QCYz^vlduu2S~ zOEdq=kw%8g`!f2n0v)Eb4*4tzY)hS%m}Ppj+4ik_2DF2vd8u8XD()l-emT5e%0DHc z27P5>+St+nKJ_ZS6qY<{%VRnr^rYSkXGs@*`turum86I;K}sHKd6Z^bTCc+_6)ARP z(mo|U*dcZ5^8)BrdV8|9`k1`^JPe!q<@3Z4+BVi}qyAq6wP{nS1gNInMI4lPU|+U~ zkeNwiY_{rZYmbEOwm$z$$Nmga=&A-%rCaj z*`zxbCa0hOAl+WfQYIn1{cj(k2Var8nJlwhbA?5&6Z}6eH@a>v_7hlP`Q)^1YG3%C zERag>_|$2D7i)LRh#(Luo%I$X zHX{uZbATBzHGPfi48xGtL>FP82mVC$wni!`MiMoLSC}LqENDi4OBLAhBeFH@Z>=dN zm$lWURlfW8@cRB(Q~15gtvB82+j$n;-H(UPluhcC?Pzd0y&m3N(uboh;)hdPZ|Z`N$af z#r^rPKo@6ZWK_Y@7Pwq`vA1pBR(X1IE&VsQifVq<68ct|k(Th0XQM_l7}`pDO}29w+4 zR=ZKj*4bY!7y~qX*48tYkxAaj!vz?a?_BmH_g|P)7fxRcol7}gtrgT zL5N+lrPw%4T*MrJrcy_-Ek#nObooww7@cEeY+W2aQaQjpwY)->b}sd+E0eqQO%pq1 z%U_Xx2G;aG)_R^Q#=h2i68;8#{u(I1_{tY5w$yW}BmQcKWDXmRqVjWDn$~)XIZf*r z%igbNu|FI4iHgTkMu+{M+F_fxR(2A@QS=KJx_8f}vZlCZE4juc$&#V+4!tarQ~51* zy(*^<)uK{+*f-?UiOq?J3S6FuVFlnb_y%1l&+8 zra3)K?6Jmk#B47Ix%g;}XHnV<=?6BE7({v_0;>Vs6=ipi{C-rmPE>AQJWV=x=(k{_ zc&RcQpvW0_4cnu#TP#oo%a{gw1Rv zTjiIDV~#XfzPWFR4gB|)@#SUjKtT9ve@;VEAc9(}O6d(>WyTe6g|g>xLg-0(+4yR- z#Yu>cfZz4z&v-8XEBtlmqEX52ipSMpn-f>tm5`@JK*JNempwEfBA9cakoYsw4%@I5 zdD3XYf^F8Yk4goK8+7DcXj6G3H!!q08te#C8Q{^#D73rwL5W2gGGUkr^PLIZ33YEa zGJ|>D7jtpbu^ZEx_**1uK@;B8SSit(8*u|j$ujaAP-8zV?7bd>9JrO4Iy^M0*k1ds zvU!-zp8xqh{#POV==Af$#OL6lLEyQiPNY zTkbCBKHbgSR(YsZK@O;Plu$D$C5lY^29YlKxum%eQXB&uP*kBr@BbJ0 z)X?6()xXv77}tDrW3*cjV{G`$+grNSoaCm-2&s~nD|ZpT?HmD2AjR`UdgxX}W9ll! z0YLt-JwMH{OjscP?tlE$Dql7-)6S;wV{_hvo=$CTQ zjHPG|r>=A^cWOV|(y9*gK*|1yyi{=L#|7KIDq10uE#12#bsR<;s84bRlR*-|Kp3C= zu1+T+gTEORmfr*GF9i-i+67%!dzN}LoCmx7Qb+}K17ZiAB&rFAE@S; zg^Qd9ebZhw!`xwj{bSwY1BBThawaeJ1^b{#JL9XPGgo;bAMW*BH=tYp*yxMa$rj}M z{i=x3q|4)b2jiC#Ei5rURCf!bjn$`ht-$GFEHPg|(fo|&U}`wEC4Uu-AYPVT4OZU` z_&8GTry{Wk`;Yy%AI0-#LwhA*68!s!4uV?jc;(JyUXmn6n1C@W^vnWN-BMdXf$ob5 z*I1gqcXL+UaR8-NIRbTs3E5;DHZmZLvk(l>ue?Pd)tv3!y6c1g{dL~-MCnTPxc|P) zl?XFG<6Q;%7@)t!1bIX21X?E>x&sj%eIUesO`=YlOF zHnW9386!CN8k^r2td?72#k1`YqF!F zeC-3FmNd-f!#pa)>H>QSO!IS_cl7S+j+_LNwVCth3?CEENJ~ zHMR{L1sSjdHF3?*jg%Fe2a?9xH{BgHElEWLe9L)+uZu$I4gd6#{##VEZS#qCXc21> zZH5{q?w?gF8lG?p&Y&8WqCtU;cM5oqsZZugzvmtM$7ZdxJo-v_7KoI|YsC+7JX>*hrQfKJ zL{q-1VR|^TfyI@oEqy;$Nw2A4)u@Ak$7u`XpJ6P>jik}V*2`JfviY7YpDdfoAR9oR z7XMVfMKL2G!Wnp71D*TEuFm2OG+3P%XbRhmGFu*_TqwUuwBF-~Ri{Y|;7GfI|Y3r#q%TvFG*(<~HgvWLa-=eA?(L zN&Jcbm4yFAchg0MV!6}WbgOE!|F3>U19?|`dzOnh3w8jTQ7Y)d9*^)(YiPUfoFi5<@Vu+wbPoU&eN*fl5Etiyn-9#41Wt{ zFw(Y#Y7s6db&f=dYoZBcfGiM8CMYU7{8RkZpqZu64cEZ0|NV92;GjKWCg*y#MC_&) zm$X3$hrapph`_+R{z|%SQJkqHP>6ZRr}3w!Tn30FL#Wzjb#>JMw=em42i63XyXw--|K$ZWeeYb%-D zIv|sC%OG~&^vKnWD$52xd-+ZM&mGp;a$9_#J|JYv zwpK+5=c5%z@hp6lA7Q7)4MduypbwjgL`basmb)!Y{pAiDBAL+WiEI=rTFe@*BA{%W zO>fPW_Bfi(cJXmnV=|=1OGm9^l66xgaEoBh%jUZAN}i5cQV z9a(w)DKM>IaN!L4j(z(|o%Wx*twyt|NqI->H4n9WEx{zjkb{tDlyu>nCVs=Wc{v(R ze0nOB&kUjHA=*4(##gLTNxzs`iwD9e6;j%2z(p#_X#)+H59t0z#SJxl_8IX73^+45 zN<#r^RDGEMJC$P}@Y#<5?SQGAsGrRBGB$#CXI*v5A6^D{7(}@i9kUgv4oEolSw9R; zb^YLw+i!mMI8rFBQnK- zIq5Ap$cfTQo_?Kzacv-v4qidwV^qPkFpvjpNRK>V)z$;`EPPR1Joh+93_$9tPM=M# zeMf(y_2;YGHn24WDwzy$`n6n73%Bp>*WPPQ6>n7~0QR|i#pLn9^8P9JrZjNKl-8O* zVSK@SD~HyOaeiN@RY{|mMEafVZ~-%?oDa>7G!wCCpy6CD>r_Z=8#ABXc}|4WkxZ0*kGpzWpfuPhT_?&WG}qlJC?C-MUaF=6H-&adtzG zR#$v_t9NgNg|l``{5un|3ekV+k5VfvY^Hl#&8gB<0Ze{(coJi|R3BU`xu!m$6X360 zS`+64Ad5G3`@6^aP9N8uQ^SaSL>YdA(6Z|UsM#9Kl3y^kEquD$&oBm7S zLj2iDlhbv?8kJKuNw>g+hfTOdY7H>uv&V(6?UK*&JLt^1Z_>GA(qCKQVpNAhN;Isj zQ>;J9D=4CW|dY3s>*+OBld?tz|w$eEwEim>vN-v z?0`eo&en^HW|VRR7TfT)T4P00SC8k?1z^NamY@NczeX7QQlLOyU6z>ZX8Xh5|Vx!lYtdCyX;ns8Tu*lMzO{5Rjluk;sh}cQsk7 zBg)aDY5F-i{7itJAQmq@{Hx#ywH?}DF4okSI4R09rR@5&v<$uCjeshiFRGafmD6p) z8P%ihBhhVub&0RE=XNA#1eT$-g!U_3`=>mCSe|UCs#f5eNOK*WA>LPjT!uNgi$yR} z2IHLhM~aYN(@mORHB;X}&by+DtMAC2jJ)58mRsAq!LRTr?-fSzAkM!-otRdafDM%h~CY=EO?Di&E$K8H0K4sRyp+ z5d_IfH36tLJ&d0crcOC`e+Rp2T{VI8m|~O@QIW@eDq-u+1$gv`Jh^1Bk6mxcW zDd$B~u^Zzx7q2bn2MOrgi374QqqwanuOX1xee_VcT)G?8O&C!RCnhn5qfs z&V$V#?DrU)X6(*a&&+`=tK8|zn-o0S$(mdiU%r;*WDPhaH9`Ma;K zh#cEk$rsk;q*pk$9fz&YTo@)<=hwAe@y{8C=y3;EOdJCX%kKXu&#&0!yw5Nt2l!VR6G&NAbVeI`C^#M;pZ7{U4D;Rp?ECJ-CM%Sx<+!;4R)4a zq;)fCZ&=IXJ~1t67syt+Q9r1dAzQd8dOTiDg`!kB7Bv?*U98f2b)BnlH|E@T{F~3l zWnlhDZTRmc}>FV>f4X=G^GIL zV1fNx9xx5loR}3ROnr=osRp6npju572o6UuQVz4r#PA(LUBXCzGRC)V7g$s*CXesT zXS{P)KIeh__m{FBzG}TZ>>8vI>qL*|1LpmcCYaww4&|)i+JnVB46W)EHP8tDCIvb? z!iUrVl^xPjj0jfr%X00HfhuIRAAgbN>O&)Cej{S-nt4C!8P}6=MxoVjO*D2Ij*HAh?u zdECpvY|DmaiVp{lZDtAeojS9Yr83L0T9VrO!XHi6h@ih+fg(4>Y&MHBJOx96tQjUS zl65>scBfvHYb1xR@r0;Uq$N{G=9?~+e7^Prm1`7P|^9BSbE1V_|T0p;D=u~j+ zkdoxo-XHGqzOhz@8XL+O(w>!SE#t$(TeF!RZm=Khp3P4bRBp2!nUL15QvmPO|K=O< z;jM?AMk&?P+(20jO!_zKmt6BKIcw9J3&o3#@UPa|`9|rlTt80H=bG?BoNnd&mHNos ztop^#(%?cT{x^lmx_r&3L3w8}^Xq827}t9)hj7x(s=oK64Ec&tgUY@hWWG<&T{o%@ zRXwj2(q`y4f=t`y)QG|+e7lYG!uZ?CB~?bthZ>xc=gOG)ScmQG{u%y7=gP_N08g4c zuN1Uox@fc;%lF_TSvB|7dEA|qNl0P-jPrwy+rFOAds0#9N5w<9ZJJK0VqfMWG8NJ2 zyL@)$x9ulm!#FD=ZQlBLt_GYg61+FsRKSz66Xp#<2V~-Jdzr&BY@&UjYfZ3_5UVSR zudpWv2a>m>$r8ZY?4i%_uxaB5VKPYg-EXBG3y5@}Dmx2oK14kk6BR8F3wbp~`M45j zn7YS30Z74m9g?&SFz@{#@9jKyNp#8R2zeL_kYzO=b#_>xmbpdqV)%~pz`9=7j)cp- z=Z8EfL!IqgoB?gzEEAphi#q*8%h`~P&VYR7PSuEAdF1ejDWDsg{`Q!n93Dm5`E(7? zUw+}cRbMf89A}a?!kQ^cunB>x9f01Shco6q!#hjI-UZGLhRg!xS=J06TA{^)Z_c{^ zMn(M_JtA1I{%ev>lhb|e_)-GzaeT*B9`C-wLcT$H0FdlH0S{@CmsFWXATMT;*sgAF zaz=ml3xW6))Lp;zfduIT>1p;|iS9v#QCayNN{go<^k~2|5^sIHv}rAxDdx&b{3ukY zor0}9{Dn25y@4VFnmq&=?!@XJx7&_cyIKGT+s{p_-*Y9Z5Y_YSceJlas)tT>xx3<@ z^b78(%F%J}y_v27$uK8bzY($Q_g!_>W&%$}*oY1zq#OL|iqrVbB}Q8D-+qW_Gd;ZU zL`iEH1J1oMH_+IQlGb*t(U#6`XVuRS0KA)968?u*gqzEQj8bjyQcCW))ReOSEzC?_ zSZpa1%lpP&6gcK00XZ7Zn==jJYFBEX>xxz>X^b7bnt7tJYTc5J z`Q1)by2;qM6o?!M70F4Yoqf^t$Gra)q|KFYp>s#zPDy+N1w7yNpXJ2KJom$wZb=A)TKuh8P{GkIZF?VB_xVw} znv-#nGMQ+^C^56N4Hl6dT zhO%$7A0Ljp%HQ|*0jx@e3(FTxbcF!=3g?1q7q?7AS0RL4b0`h%nt^~3Jxt^u`xz_a zTUIlyo6If1K?>y)EsFr?YXlWJTR4*Re8;w8Wx*$76kLx*{Mir14rC?B!JtI{IlL`B zuY0O zs*(QVvmmtA$~~Uy?K;&Churg->>p_b#4e{>XAz30mq3_-9XvcMZmgz90DkBii$1VX z%P$o-#EGGP(sL(fs$hWf>F!&;E1-oE_JYje)-6V_1-V#L_vUtDPX&kHu$YOhGN4>o`tUJR1Wq6}1KpF9P;CH}S6 zx4ZoZT|Tbx<$h-YmC${ssowirqSv@=VKcFTfGlp*%trFH5%ie2?N@X$I5D?GtUE8e zcvJj*r}-?_Yv{Nn3g|Ir)uk4`uL}rvFmuWKW^J$I!CIBW?qN~kz8uZhu^uXpRhC2d92nNG1VvRF_%0sOm1G)GENuR4 z-97;1M2=-{I$`gguh!v4rM25fW1>DD>e0#fMF$j|rYv5Xlz`kx__iP?y^f0R#~}lC zzzsvCv9pN4J#leM7{FJj>D~ou*eZLr6oWZJd?ps+V3zY598e%JaG~pqo^iRmIs--> zX*kV*eXV2uKxIo^N4}8 zDTNdVZ{n)=#}xpLOWp+*x;Y34l@}xVqS8|A`_`j7*&e_60DmH+(LKgNX%;8^K|@u@ zgt0RxY`~Hm6d6CbdtW(sZcuJJ_q-i_%&P28jPD0NU~9C=pIv~x(33sy(37_hRf^O< zA5H9|C*Kpd%2p)#?2b}ff@C>!j-D&&l!W?)=s{A6TS;5ThBP_Tj14Zg`_(g6#>*q~ zD}4j~>U3_*mBb>O|J~n^U453UE2fS6F$}NaxH9UM^MAlT6B?KHMsdwmLTBFuu?jd< zyzZwI30(6O2Zf8D-#jst;MqMIe=?tbUIMhN1@Po!e)3f90Qy@W&(1wul59zvL5cUB zRJBd3^b!PB9Zo$_PqKRo(JE2%*cg4oyi!)5Yzf%miTrIC#cj|1P1G(CMRvfaLwj?q zl->sjJsbD~s^BNZyz>-unW4euzQ}-&!m1l(Q=1W%cJ#DR{1fT-Ckst3o`V6+ zV`bX~0j?9rsRlqNxcPcoQZ}<1pH^XEIa0;JqNFHo{uQny)6*uz-!?!fl@T~qWBIYC zDeyOt;Xy`Hl`bU};W$!P8wp>}Sj|lEdcT}ge z(@bNa!d=chi+5DhOX8E))zbz$!@Ku1n3Jw5jcp|Ih5z2w&@bO}aXBlTO1fgdsZBJ_ z^OV~(m9)RwL1`7f3iL0l?GlK6u^mvZGoSV{UJn{@-5e=UjD<by6ifV;&@+55Ym^B%|sSm6JJHPlOYTc&2X`EKE zM@v?k$&)ouMh$F5;s6Se$)(g0VWTceQg$>ku55gQa;zp@AJih~foUwTegeqt0dpC< zM)FBhw8;oi3&K*G(P%Nr<*`Ho`;@H@Y*E^0*CTKINCGot#t3FnvTg)2bw|8FRKaZk<3X!#K5<9F0ROjt@M`#4;#I4oal>9GQ}D2N_gV+x6QeWY~~ z#HNzE65kH#D`TW;1FCcYuPS*}qTSnTO<0-~ApNm<9ZmNo6xj*vF|#*AOUyvw$(@PM z8or2Gs9HP96M`8(CI0>h@AfBK?!r^FL{&=46sD_N8tYT{r9l7e9R)=9A?m)pqkMhC z+6RFL7^Um9)g=~uU^HU|ep292&@jf=l|uu|VwD4dO|?AD5UalN zuMx3a-Q3;4<}io(O6=!6%yWd@u2osJg5nSbu-@zi?;&4UgE)f26xi-wDIZH)-RC_f zP_YzB)3wdy#bMN;n*$Uvwp4Ke{cfNfxYE!1{GJDg~VdJ4dW9@}<=!sr8VMO(Y34K8ur0Pa*k*7FaP>RbkVS4!h8 z`2To%7jUNg|9|{Wjtem(gp7@iDd!wY%~&&sW>~C~^I@cjbnZ6iW5b-~FmsqgAv&Mr ze9BpO(upYC=@xZYclG%{*Y|(@uIg6zC3Jc1^?p7dN49#qc z6Ek$nPc|gL(AMrKg9S$GsoXy6|JtJ?toKiqd@gV}-!5BTwVs$$bAo;wDoXQDjQQ~2 zwx^H^v_pP+*KEJw-8ui~x5TQ5fi1<`v#WNa%SRod%h3&pvupFHPQkS|0o5zx3rhN% z1xp$aub7-pv$-ZQEI0gPX)q~kR;BxEL1O(^+S0;^FDC)j>_hc})^$7;eVyi0{#dmT z5%xxsAqSod&+NPizQ8|GTB9xAoa$*nIbQhbD9}-x&ZYIL61jE${TMby(Y&^2Vce=|ws054 zb3pg*sW#t4FWrCm6=os1F_ey;vbAZi{jPKLr+7S1K_n$To1PK?9RhKei*4_&w&h4^}P=xK&5o{185I{oqWfPLx{Y#Z_L{To#j{vmbiDGHxE7dR1Q0 zZ_b{zIQ3wg3GUT3@zY-x=Kda7&iCoea;IV91Y}`GtBe*>ncwJWK!HYG33pk@T{GwF zyDQ_(bbw<5&kp=Jyz2~(x%BaJ6x8y`eV!=;e3rnYWugcaqkDd66f=! zVZ(#reI&xJuW|Z$hqsIuMP0Gvo62s>PW@*&X!+at&Vt3})gi+d4~^3Hwo=#Dh*lRa zpewG~v=*Ppo;_Asu_}7&CJQrTLU+=^t3y?#$J+HOtE`b!3SsuXwc zg-g*MrHE;FtSJ&9bWf{FNm;6OxDw>jQQ(Wl!@>Z^vjE(6l`^7iZYl&hQTR~))j=e1 z+a=qn9(YGAfsv^_L#tm;BsHFIm-4UT{jRU|NX!Nt3G*>II6`c5u>mTM@WLT&bo0rIf__cp5e^<W zjB-m^Nn>FBn2uSu#*^+SiCvj6W)(L5yRzqnQRcTP1$#7#M5T%$u-%mp8>^VgApZu z?i89MM%c!nPnSabXvVjcbGmojYoxCd`(n5^0(MBBnhqSB6R6t8wxVRjlnPzZ;}v-= z6Wvysx3*$aoAOXhxM)2H*`%Q4>?(--O=e2am5_Z>h=~MW3Lokp0pn>y$2woVM0X>k>s0O&_(tFt8RU$2moD6^I^*{z~mBTeb>1leOIO zZ~oEYYpVlW>C07+V$cU2=Te$eT1ZKhB-K>*7F0s>w?yb^PODDyqi7-f+zW8(bZ`DN zCtB)0)p0TQr%%y)KOn26{9J@t@S&_MJ~(3>?uG;#RW{Z-asOoK@cZnCx0m8&9O0Y$ z$>!zyqMpL6YFK3NYR3|UeQI3YQD)jTfBNovb?DZ2Qwo3d4soaG1WJ5wHOOlFa zmn6iAxI$2$iwm!9!=NS?;wUQX$JL^1kC&F7PmWIEA^V(6^PrPvsn5|4BW(DIziDO%_ql)l7D8#ES{P-D%`rm;x&HaU9xf&CggZ703_4eg*bl5Ywi7M_Cd zS9N)PT?#LQ)l5Wqg5F?a%dUUWw-2rT)e(V*{?>LmI%lLMCyOjD>0J@l8Zm5=HL0&P zEO=K;_zH=+pJx~mx$&A+6LLw(=y+8;IK$X*o&WC-uI*zr_}kP{pK2ehcS2>XcSbvc zg^aNh8d{`Yz-4Ke&Nh}^RPVLsRB*_#D*GZ)0iIh=u@hT0mPx1pZONSSl{^LA?-Oy7 zOvJV`qJd)4ahY@it@km89iXj9sI^$IU6nauA6WaU%^9&ZEZg?KG^g2gVcbuM^5aQ? z=XG4&vrrXm`E@W30DVVMxh=Y~oXeSWDUYT8Orl zZ>u2F4U6F4P>G+4ARk2s{W#kM zBFxpq{nTJ>8foid*g2Y+~M$Kr4)4Y%|$g8lBKmn_u0ChU*+ zl9O~t-1rCG#Y?rCFT2;a{ptl=<@WrW^U5=e!`faaWggx8xo9-eJ23oale*#3?26|- z!C*z~@Ta(xXZCk9z9yu6{>nB#?!GTVVncpUfhV*EDim9cWTR&2Ph8WG^R?A>YszCW zfwpS5EY|epYECu02v$*_j?27oXfr_5JBK0}>d0#is3vcQEH;u|HZLO@r*K2E59Eyp z$2bEWD8L`{y8puWc|UsF-ubpYE(}#Kwxb{4PpDJoqXg{LeYe902q0- zEH6%I-tfi+S_j_Rhf2gKF{E2&>*v8UkPjX1Lx~&Sq zCxvY;NB-Hc?(nqt^Rwk!?ejqsZMw~k`0qJ~1hPNy^9`(HFK z&X~`TMjk%6u!tgN@YMNW&`SIM%CB(n$ zEibiKP8xlR-Vy@)DpK+!+8$c2=#mr|g>Q4$ejaeLO57)Mv32>|tIVJ(mtxF+$;;zw zm-i-|Enod;Q@iKxU0lLLkV1uicm5!EMW*X4V)B}6=t&b!pw8sRmM4|njeDoEo+@1s zpWQ)Ob>qKi6!?w{HkP#>j8AZhtKBm;zF~mgRODl{HwG1PclgFbFV81?{{z6Y=VhKr zp3Of^mKyVF8^7=m#Fgzq6&E?(i7)*T{iQOt_ruitH1uko zJ4xUaHsySgOmJGc7ZYqUKaO z!ZX+=_=c{bU`3?%5g#SE|1nQ8a!uUsc6WvIBd7w;=^{FOb?UfYxk3?$Xe2>L z!_<=W!6wE@V&otgsmV?kNQU1pi;aOTR8jtZV-&?$3QguCvv&1jKr^*BFBXR+ZZF}5 zPbDaAFbWcH=qU_x7ps+2YE@ULAY5Dbauz1Z}H}DhvRxH_bBu1d?YTr0srPI`!=Y z)ZmnFt%S}{1Uwl4=JB;n6}N3et6$8IaroC#tNYfn{(#TAT(vvZn^Wm79Vf7Ru@TMA z!l=^%7yG?$aJ`m9ls4)r-TqZQIf?9XRgdsir?WQNPdQn z#NAqdWj5>RpA3aBRt~+$k^2&rgWGq!4%?9 z8*pLE#N_PB3~|IkC2p&W^0W2EAd&k9j4A( z4_8)ng1J~^x0&!Qm++E9nl&rWi>lHerIN2m9^k3}HI^r7Yg(h3>TBGsPp@im8~ikK zzE9=}=b1xqDO1X{>NclciOvkRb#XG=D0cVL?qJ{M@0U+TzdwSCjtKJl6hk4%dqDR! zWQvO!da;Y}{hO>mvkUeEcrS78QVl1ojCfE$lKzg^^@OeSZcO_~?92y=ON#F`W+&eJ zf{Y~1CTnFOh)A|Ss|@bMjyof~r{xU}ZMn*;BzMskhfR=c2P`w<_kM}A6=EtNG4F(z z3gHS+UfC#$>jH7W!0%zdUFPALj?)cCQ)GYciehFm8e02>Td5Zf+HR1N5t_Sq_I+ch zZ`HB=Fg9>{I`i;8N2lyU*I;P<^mf%;j@-C#!AF~Q%7}bue{*Wjj>i{Fd@~pc$K9+% z+pHmskI_5j9n&S1BPZEPpm@kj|)JJ*Dx(C(+^iq@)TJ-;$L!fs?h92zf&}PTV!JzB3 z-HRkc%xkOI)BJZ6i)SdTsQIjG_wy;%Y+0kp{cZaFgFRDT9d#md(RM^t=tfc=p>yoz z9s|%JC22ZFM|uVux|M1Xb33+gIi>FF8KM%P>>mz|+0-QYoJM;?OLG^o*`}&9*W*pc zB10FGBg4$n-=6F8EdB5`^@M+W%8IsXXA}8#rLJot_K9lee2xso+>kxUKk+Pwy3IV4 zq+?{Cgc^X+!m;+ZB3M<0m;xhysv8&1pd~Q{F4m)Rq(-8n7y)+8erahy5sh|$Q&_pX ziVUR>8FqM^Oqs6t8Gp6DrU%(un!WFAEFMMdRj1Gbj;c(@(fMo8)i3+^vk`FZ!r}bKO`O; zKXyh6*0KN<(Mb`FF-3tW=YqcqRU{6H+Gt4VdTI_WETVH(_s%m>*)k%hIXqjwFosTe znt2J>S`?Vnd4(n-DP%8Kt-?)a0&#D^S2&j*d+j^0&z)!$NjB13ETsn4$(mDZ0i zBVefRturv@fu9{IYphq5>q}|O+xRnp`hpPIMdmFn3qpqM*erWjG`T7lMh=C-Crbs> zFR&W^3f+9rtTRP%I29-pR@jlMeD&ugOXbUgp1U;lym8SC5_(`Lvkn+0vE%SVps5suR@&_22T)6Ap@4 zc}ffD*;G#UvuZ5ijZ~N1WR*c4r*!H>VshkM=RsL>)ySs$N&+^O-eC(nEWl`Z zAO4*gxg}vTUA1Hk9MIo+aaC+(BM6vtg5&C))QPG<-F}z!>sh$F;RriFnQz5bC?IMA zaM*ZK%u-a@Ow^19M_icSSkfN;_x(lR%)84&!T(g&v!7glyLyLsW>w5mcRfzwm4vvL zD<_87{$kU{d>hRc{%+_p@pcU-L>(yI8hgQlaL)dYa7e0lno?D?+qWB)VLJi zQc-T#igLtYHG**kQ0)VkDmI%6XrJON5k_$G2+dIsgUnLzr6Kzp#gNi*M7sEyWfeLE z4pg*AybIo~PB`c2+EafuzQuOL%P9-e6X8(u)s6&vFa!Ks9PFGa7A<<61^vydh8|+o zE>~!9(Q=}Gq2!mHas6a@P6I?+3%V(*Xp)8EZGoG3`s1gV0tHH|u@&SMHIr zzT^4BuRh0+DKx-06g3lswmT`XS-eSEcAEb5`9#E$_Q#&-j)yz_j(=*f3zpZ}Ygb|y zte!3VPDy=A#B_6nzU+H*{5NWiI?WpDRh#5>6~ZITw9NkeyKrN;k-T+{!d2sU&N`fl zBFPup0vXSuO>~xR4t?9>w2(>kpi=n+xdNd*mMlyR8AMgdUzJs1f4=9X;LjzU)?bFrr=wdwCmz=~-o^}4q1Hy!qH)P+G!`0rVGyK-SbuGy|Ex{W z;`*-!)UJJQ`n(4@6uofk?zg194RR~VF?TWHsgZqOGK?j5BwJirojbD1xAaqukhKf- z%-8+kKSu~5?|-A}AD9YtcZ8`#yO7unbR#}&k(8sOh=H>N4zyisEjRIIj67OBrui72YT}XwSJo{VfSY%k6eAfT| z$YUn^wr(k?(iin_kB!f*&UpbHkYe|J#34`$%y*(7-r*^0gSizMZKAPL^}55;-J$z( zReVc8-eX}lq;w*B6TMxk7Ejp$II=|Uhhg-eEQK3H6-2jJbrwcn{uNSh^|9BaU;6br z3>*Y=>ntZ8&Ap`(uS_Ny`}^_v}yY#MwC=<(sm}fUH z_M|9x*I-DXTlyPgjPKot_pYZZ**0HTAX2iy%A*bIsB6BBj!Aq!1ByIO^XE+8v@O`5 zwTavLbDzS*9HjK-FWc-sx@yq#q`~ZANMOE3paCOw)9g4x?L6g}kN$gETrD82R&cCyEr$f^JeDX^RzA%%42^@H!{ok{Pd&8E6D$`RRLRTAHyzRb-OosB)op2me^bcuk{WiW05JFCv|VbOqey{RN~bul_s<9a*txJNnko?B{$XL}Z+D zf1BU-MP1GFYpXKUxrs%MtjwI6T}iYVTdV&_PSGd3-mEP;KDpyJ)penau6%DcBXl7a zhs9Mq8Su1zs63tmnw;6po#)kLkIL65o?b{c%4UP{gr?)Kzw#jo&CxRuphO<1a z57AXWCiBKdrNnl%s~ocd0;IY;J?{zXt*gtSXDsa0>v(o_dhOvKgFPdb7tT+m z4ODM)i(6{!Rz0}!5a_VNi3nP|{TzKsQDa5*&4-QW{~7g@M>^4ISC{{G;Y&SRGw8d$lO&?pl3ys4+b} zpodWpr!56^-w&b04K;*#&fTkJeoWkRclAR^|KwsGWesiD(%_&-m&}IT&#o*7quhA5 zbON%U4IYZ3-;**lj%Z-?)d%!Ay&*IFP`g&%2n^5tY~m&&ktVm5XfGyK?d~LM0r0iU zw)}*FLTrHzv# z%t%ZD~Wbh-t zk}Zd?nE@s?Q?8xnf1~8nzMPq>UQw@t!=n~Bf4O+)G!}e&_JK5bWcQ(?8X?7fujV!w zj?5xYS0~98Y68<@=r+^d{;nrEM2{$Y(_a11sSEcmQ9_H>bd3(Py#Q+_tAY^f|H`V{ zselx7f%k?$eJ?79SEq>+hVTnlq(QL}^qrQ%Z`!$hjfO0B|}ndr6og zn|=>w*^CYcPeU8cDlN!gPE-ZWHG(0@fXP9s(-eU0$T<0lj%n50KJ|_;F1=kf9ma}e z7Xqit&@`Jv5+y}Y29279P=JPkIgEO6!bnq3nIN-GN4vrwlA>3;JNjZ6MpD(d7AT zW^8~66M@6E4q+ZO_t#XgfISO1U&< zz`jDTSlY#*iJdJ@&Ohi+Z!Sg-Y)`cL`pYvaOmt` zVSinCGhQ@%&nt@Behh?y03wYYRiXwbouYcz>@b{gun|=m&CZ9FodA(ZKHwGxUEf{Uu==It z+_=i1MTCp)+gboW+Q@88hPp5(!(vXc+hyRa(LjJ~nB6W-SCSP^24?&GV}O61l%oA> z3`XN<;eF678u-J zVDEtUK$vOfY{0-$Zkqz|k(1<7;OXkyDcGv@p?Ray(sWq^i^=$wV|#hAI$}t@G^bjQ zbFVw}PSPCpWnqyAwGqZcGyx>10kAF!*R4(1oC=KP=|J;}Rum=<%vx+=SW*U!Hl3U8 zPk~5<1V_w|ceaT{{O*9Lw%+icr*CUaZs*DuI#Tw!gV=8|nQgdl^p{m(fxk+>W1 zD(5{z-w)<9-!)tl(K)oT&DHpdvNM&@7f`ayFt?nlM}d*c!HE%fpQ?3k^ zT%#M|ZZR6`O@Eh9*3PBfQo5U%5^2Ss=8hD_f!@K5l@^-pEO3Tqa$A;`0)2C;!POA) z99tRrTCE)7=2SEuMqjyJo~jnY(?CikD*l)0%wmUNbYQ&fvS-v4i^{Lhq5}T+$6tmj zRfHqEUC+$66%UmEow(5+IA3`o-%B5N5Uw3>!{Ri;Z|-;bxz+4d(c7;r)8`Gz`!zN7WyxBSk$B%jmCVk@B6`zEq~$Hr3wwI z27q1-;j}12HiOF%LL0IRy((rv--kB-c+oI6 zDjpD2;pv*x?1zI>Xv_^Kf-J#oZ@>0!I7{%fl3F0*^hU5EEZb&SC+yy^L1hb7o?5k>?tObS{C&?B94|Y=a!(pYx+{pV ziQV3H*j(XPgmMy{Nf2e9$@4%zttdP09`mN4=cM2I*|QNZ>b}-Jjx9jB`@^Mb(a*1T zM@rrAHBDaqQ17X+=j!66ABp?Kk5*cIzqI{5}jAr`SGN^mZxP@F`k zX%zoQ^9g}RrxO+J5H}q={_!h4YEdo2X#9rd@v)M>SrYUD3m|v@-;emQ#0qo%4G6au zrL%}UyeZUn)9iJElO2X8%~a+3C8-YH@jT58;=W5)ez{Lsel~1BGpBEM`;f`veA=MZ zKrLBSMyW@T^(EHts`{~?i)sDkpd)}y=e*E*DlcYu==-fqE1w6ULlZrW(0jGy0aw6g zyoI_LyqFPWy1`C@=9M&Xo9G>&#M z=~dY{NO@N*f9wqZ|ELn|@&vkah!Mp{M^y&ZrHwP%QH(L9kIKG=H5=a>C!eQfAAVq0 znn5RVle475Pw!MTTN#~7Uy*z+3GXH?KM0H!?biu<#uk7nC6CN}+Nhb%+tsU$CRMYG z0#fV(6I2w$0cAAh?qVW(jJ=vZMmD9hP5Wl5RL)bnw-QMk4#sGv$Kgu%q<4G74Vx!0 zEH5GnRv5JdLx`B43u4DlR(LM_eCxUIa$zi)ZghCeFeO-D+^fzQIH^(~ZBuY}qE;9D zb{_~keeAY}ABWOR8U`Hy<$^JJ!n5MySpR?bbxcxMbfg*kGXn~o$FzfYsHNljf*ilUL9sFfrl4|^G?1|c8q+av>OZQT*V$_Vku4#3}Y=wL$gn3zW`)m zDk-C1ZTZz~o1)p?%|mLt$Dq7sO_C}kM82Iytphwd{{&x+$57vqJ3j{g7)i2e6#XM zwZ^&^FMem|YhP@gG9SM5Eg z9}i2mclB??vLqSbLK4TOg4%|q&$B)fQkvg=Pu@0WP1N$F#KwHN2$b8yVzcU@ZwYb_ z`JoQOJCcocZ%r_#q|1J`(1A53b()s6T>QsB?7E&nA+OBSXmev;qLXsz0={#_tomq% zEhM_{otIE(Nv6w6XvU=s>D8TZC%G5YpLn<_~jEpVVqMqj0b4Da$} zxf4twR?#<0%+w2>;A~}LaP=lbH&I)7zFz`xQydF>yY}8`Q7keRqyP0gOhq8XGTERa zx{AwI)EuGp`oy3QV&t#DJP4JXfM`yLa)R}hMyg|XJ%N*zrj_kYn?~TXS+3aZdsLz` zP6zQJw&9qihbo5$hRs&GOM>b|>M=1tt=dLlZ2De^$uugG2H7qx6|1XgK>Gr-VG_W| z$Ix(&%>EQE;Fm(-zR#AIf4TnekKA(qv;FBTdh^q1`(435y+n`M2{WkaDB-FCaUS~W z;a>c2+=z-J*D98_?%({W;LZ0Q{wwpg_9Gaazk)l;cq^j{(R1jm$)$>Y%YUS`5YpZOO5YGJ{BETtz|=Kffq8$H~NLJvB~gHe%;ma5wMmFOH20>+VEtz6Qo)^9ca)xY1AFIW)iL3JH1r%QR`75PPygAz4(NUEO9)p zL>#z4BG2q`q?pYaK9dMXHmy%AaNj(Sp$ zVAF>41%g-%pr3@=EO!d-)OC@q&PaNiQ~fqmJg1VbNGLf^shf*LUEm{a6TP(2PZ!so z9^5kC0aAh(o83<=dr zo-(JD@#dBCwmGagz{HQCiVs24t3_NbA-nisBgqwpL@0PgCVQtkdmeO62DKIZw0a>g zCctXO^N@y#l6+A9;blPXCyJ4`AGRs@`R4Ya>mAxZ)~n}9jb0&phR4!W-kwfK?Wx_f zd8pVvp)UKGwq~V5Z50j_f|edEi_b>mKL~eD(mEU<{|>l!w*Y<=)r9ADBl3y*06qN|yV| zE=e^cbNTZANrR}icy0fxH5gGrqpiY{b^^3s1{J`*P;r~qG%_#<45p>v(f6_c_zRy{7IO#^hRKUH+%b|?x2#%m4&V+Q(3jg%ug+gG->1rC+mK2+gP zw0QEkLv2z7jg4vJs*gzxp}vD0S>4gLU-q-TA*q&+mG`g0C6fy9F?T`;s5|K)!#4Rl zj?X(kDY@%5EcY_rmmj#+RWxJq*?8kbg>U-m1)q{Ygh%Q=5apq4_6*N?jtr}pehJC# z&{FrMt4g~AOrpA@#mu(Xx$mcJM>*zZi(So>=erXL3+&6-9D-l6ZVgj!+f z+A(VXWs?mv?`hY?Xag9peT7p8G9Rk2Yo8nCO2@s>mb}rrW6Nx%St30Ft~6R+A;Y?0 zh+!h83n#mR(;SeiqLiq1exy$0nAowImdXy6=yK8H@>(hMzSIDsW;V=t03=e}6CfSu zxT_R*_fb;5)Q90W;T9L07oW8pa<^X7%iuwjLO8@*2~YOpjKHDn;RaH zw8y{NNB{Wvb@p^~W@6UlM$K&5RPh`tdT+Lj4nG>-M!b9MtmER>Vz0Vcm4L>5w{w#M zf;SB+J;&cz$#O=CPiuz@cJi??NF&P-*0^~2jcMl_ImgfbH&q?&p&OrF!Q2F^@f%$bJ|vf1^*z?id&kH~lvOm>C5hBX*-*y^BEosMVUzoz
    t;_8zVC}xo5Eczv`!-)lVtXOOLfa$k*0bDTMM1mdY&cswWi7kPKBf#pwSycJ@fih zY(nhnyr$wlGTm}ej~cUcz2j$7w;G58r58nZnR9Z^R^%xmJnBgGSc2R=;wB|-eXVvf zx{eO*q-1_`BVr7!)udDsGyjCGCm*AnmmDoglq1;@r8Qwf8->fyueZP-hfx*fLKK;1 zdIF$!tU|46(FQw9PI-y=h)y|ZC6FiRF5uLsFbM4qn!T<9RIUg#1*S-hdDE=g((9G% ztry&a@-CMl`DD|{sKw%d)FtFQSeapCW%>gqoFkG(v}2?Co7aLpHs6HH)74NP83FaQ z0g9e^O?3B7Ms4YfyC{qu#zVS^Ak8R|P&n1(f$C48cEKtAdFk;8V~2?fpZiRW$(B#$ zI_mf%FnYi*wko#x`_E1{d!PUW@)du7+23`<& zrSwbr@o$F7zm#Il&~{Z)J%)WY+n%_(m7Uoz7CJLglcg59KXB+W?}BT+=Ag85G8aV) zu`3T&r?Q}B0~sbUC3np3y#^i@5YuY@#N}hYQ%_Sm`x`dcEj1gSbSQxe0H@JobiXdl z-T&HA;9%rT|lA(k70!kJ56!WL%FX=oCpw~=G?+mDvzDSU>nEenr)R2I1nbIR8rSn3C~Vw z&EV7%JrhhESkMRN8iLDnz}pGM3UEg{AZk&@Qd+eJWRJ`mAqL%_0*;T#@|Hs3Dw`5a z2fkX*Hb(Hcx!MEWyp>tk9Ah!WFhDfKXf=o7dIjS8TcUVSf{z~QZZkP)%6+dC(zYbJ)GId~FLu`7;-*sf@oV*o!XGXK#zhDD=B^NC<tO44XnBpJ%bLT3j6l5Mks&0o-ElqQyfonPpyoQX#RxGYa`l`G02qU_OP zMMR$J#8!-r%_P+mtq(%Ocx5yoEY#oWTzD6IWw{?vlP45Ku1NN26{N>DvMfJa9hvDk zSwrC6RDi+CZ|~Au+fUa8X&xmihUI?L$SEP|re;-uIpF0wXj%YZ9RY;%!g?`->^#*l z=dt?!0oWC8gpzikd_goxOtCeCQBRBj01Rh@!iP`Q=je=`VaeoW1Mju{b!U?hblxVH zBeZ!ywInu9oaW}A0Ny&`;lq0;quHR=R069MZ>woil$-x`DV0$736f&PU5urDlK7%T zSGJ1Lj+fBcO3IgqKH~A;hbu*^P#nfN0NFTXcuSmk#ES)(w+{3x9Dns*?cW51u-pNc z<&=PuPVj?u({+}(-uB0U4VHpPIIVG`(rls{pgHJwbX^$NgTH7X;yFgb%_DE0Vc?oa46h!w(9X?l;14nkSg|t9V39LV;v!VOm=^J~S zkx6)j3FzPY{>=*mzcsGQZvtC9aP~QM+uGoJhGl?a3F8^p`~#J1dHhMW@%m4tbM3nw zYqsydeRm+ysdwm4u8>7ZfD17z}r9Z%zSk7g7)>JO8d18CA{#x$7_v`|} zfQj-8A~y>-a%TBpYx0F{pjx3 zw0~*@nFBfp)RN97QD6yxRkFju8x9kJo;N`4Jnv{a?_!wj;=Ml>skSYU+-G_oADj zswJaEZC&izqZ(4O%O^76E)W!Tr_>mkTIYz$7Hhc;707Iivve^_%tj%|ggr zjgCqVxZj@6NaYdB0XY_J133a;7;VLlHIO)7HE`JNxj}l*p0V?1Z{Ce)-?z;iBB`t! zmFkAbfBho)ZVf8-u)#Z(SM=a7d z<{wbcyq9~}@~U3Rw||@7t2LC!U~XqM`W{Nt6&ZEREoQdQ^LYA%Z!OvFumo%dVc#GK z{|xENC+Hmx6hLy@0Ss<;IXI!rZ6S%7j)ZZWg!Uf5GQ^R-t;%?Kz&QgEVSu{zqq~hK z=gVyXoCChx^zwE%f8Ti9%&AQH2jSU+m{yV)o=GpU50QKpLZIWS2Z$k(I{*X|ZUH(# zU!8KYo80&!SQTOO>GugbHr?59o>pzkR}r0vYaz}&a!T>6sHRLms>HV^DJ59PbaqDc zwGs|Qcs{{Vm0=fPi3GY3bjUR-U16;X69eOG87yLp<26T(op56xwp?%1M@T>TToGX6 z+56(2awVSQgJh@keTN(|6A7vuy8;x;Yj>AGiBJubnUHjl_GfZ@hsH6jThN{ZrrC-Q zbVRWCJe~SEzN-#_Ia*WFu7#f9hbUb+-6pOU+50Wmcd)NJf^2V+5OX{$4qaj>k6=gS zRG*M*(>(GZXoJMd6FAjwj}!|$;3BQk2`YO8+8TcwclBKSWw39+w@IQfu%W9unyF8e zTHhRURexmCCw7_T%4$8w^q=*+Gx6eH*J4PI`hf~o+=nA^zI$@7+1~znB(v;Q&l~Hj zWo4h|Us&&O+sM!o^V4;jJ;uPsg-7!lcS@1>qn@p`5P1e>g0HJS80@B(W7Dir7oZL8Ly7?C8Sz^bHmnI z#K}vDapdjqUBQ;!1X+K#I6wc_(FpXDhEU|Y%hN^;vUa|Ys$VDexg1etSGu?bY`_0^&Sf|4se~krtNIU7*S249IzyW!94~s8Q#}x|o#BE# zGlRPG)2I9+gYL;v6RXu5V%2Nw>*(OAMc>j5!v`GBkIG~NjfVGa&E2iVy{(wxduUEp zLaVRywxaN>t&z`Bop8)^KVf+uA`EX`chU8i8+FV#^7AZRO}8+&kM}Q1cQp@@gBQiQ z`#P;#CH)~KNss%l(uvn@N4r(Gf)$5=T9JI_p3vgPP->yWXDcZJTk`FbN=n{UKEU4s zV>~_5tJ&#Ka>WmtDM;!L%9X%|G4)LZ`{A;dadB9JYI%U#d61Wc~caN$=jF{ z5C=$mcv?aU$b`&ih@KwPA=;c~dV|lU;j|%no$vXM9YP3R$hAHE$&s#yyoR! z%uQW$9|@BNA{T$t7R~n)T=3@JR&mo zKwOV`rP;x*LZUIp{s#{Ct_xP;OYdHKSv`FdjGKG<_YVrK_}lt!KJN7Af`M(1>8od| zS+{;PhT>N9d#cEnS5~H~@+t}b)GiQ^oo>;q$`(p-{PjpEjcfej)1l8VKbg3?jsJZ; z3gSr^x7Kg@bGh(x{ktP#o6C9IjW;{BQwCG7&YtkS6cbU^>QXVdX#J8V zm7QC!{HoE8Dmu2;v2N^%J*(4nJoIwVbdLU)3&ABvP4)e+G~i03yOdf;6j#Q=pzQIo z)b(-S23F(s0uqLbALtB;3;$Ovu?>rBzj-RUJYe9C=P6s;ENbM1dq&KZ=!XU9m$ezH z|NFxt)s6G_7w^v1cRyapKiqo$Qc3&PcURh7_9q)g+|tF=qfWY=Iu?RY4|QOo=e4*W z*49LiC!>AGN=hxRS6jYI#NR)uc>B=F_FY|3xhmW4%h=t0Im@lT#ZstS-k+@DT6%k` z;#NGYC;%2KJMV=t{v`%z z@$nDm6#4bHLIA+VElIxB;y&QG{bH%Q>{t7+CtZ2x@U;TGC;x1FKzFvWqtyhJ+?prY z)Y3<-d4oy{3z3n#;qKyWrf~gKh|7M%360Vb(!=+UCCZA>6v}#H;?G%FeY|gcW<53z zQ%+z{(j(6#mak{vW0W{eg;bbmuH2t;#5;n5;&i-br8cN>@O2?piLuNw03!c5^8B(k zMg%5;aYNHe7M7%Yc@g+!IwnpysP3ZZ@Npcf1cS{^ICgM?*PJT`W@HdOpeQCA41yW& zHW*+&8}Gap+}dj-V|(@IuIS4zpO<-@4==!UIufJ$y6vsnL^7O2+id&&qP8BG;}KH+ z*;~?6BU<&^49&^kzEmj)461!ydoqt1U*8^G&wN5??R%wI5&!K+J;REbp2ew*+}uc8 zTrXU%ubFr{w}@>1zW?&^7?W%HvX<^$zUjAa26v@6-FUCBSOR4n;jz!q=^2+S(@-(2 zDCti|U0z)}_q+l>Mt$e&TvAHZ8`m71QFAS{GHM?D(x{|IQpv4RUh>nHD&RAl-3P+6 z?~uPuyk9)KP~}}3qAGo6QpafF81wnu2Zk0cm~`W5WpyvhSwMK~&sV1ha%_{o@rRWD zR5iFi8E-3PoRvk-d%?v^f@N1rn6Y(v&hEE7MIp+KCpn-pj&sE5{LNj0mBc#{YzrqD z+-r)7qO-8%Ru{JM@51;1+fR`UwQuMCIZ-9Ku?!5T(SV zg*=Jur1!Gm*Iy^4Q7d?tBi@fX9Af;dK)wwy(CEfm@u zhA}osTxS57Zh*mI5 zHJLBI-JuL!{p&`_Qi?xZ>s?vy#wg=HBpFFh^r8v-`U133#{KcFl51$PM;t1kCnZSo z2NMP#<%+CSC7u9?T?JuW@C0|J1hG@;T)Bg|ZLCU<)GH(u5FrWrti{50C;>x#Hz4WRQFOb@DA)qcR zwS#as>G`2<6TcU1&9Vd=CNClvC3E`;kJ+oZOmC^wF_(7DS9%~Fu)vp4nxg1s*a-%f zz85XN|J>I2>*Vsl{qLuL;$NXKk7jyp9;{!M*_e6L(BqQ8%251`zFG{67%E=$_}puV zRgoSa%<$jbEjRnO+T<*y^ZHh2!KN^H#aZGYi;BIZ1qu*vg;fzC=?iYL0i+0T-!Mjcfj zP1?xy>AcNQ3&M4!cxvAvVt5}9tHRz3?EjHx59IyL84C6M!q4YE#Z)OL{3CL!mQ zg;E_$!--8l%ad>&$-uM;EceJKiX}FyELuWyYmZIw&589SuS3O3H;k{p?`+`C2Tt)A zPf9i^<;4Eifv7#k*qECGpC(kK9n@pgHPINd8u-um-k>s)kAzKS&wEDbiyGvl98JbY zCN@FIxR|u*fRw(BFT*eaWaF|DIJ{70&d%SF+z|`RPL5a}GDc#fjP40r_<%k#n8rNz z=q8YggJfK;DSKYjz-NMZuT}l zl&DM8p*c`%!64is9hXM0<3;C$Ac;aU5P(Y*obrrdEn&MaoG|zD^nS%umsD~q&XLY` z5)HLIIb7Dp;D?ICA<<_$n@0QY$kP=BPP@~z6}TDPjs&IduxF5b-lqq zyx&-_d7^*F^zv8@p`+t92Mtyte@cH@ihTB;s2;;0&Rf*%BY?D}9R;&uV z1ou}-_-muv`);&`Jl|V9Q@vi0vJl%b zyli_{^&h8`*5w_{roS7VZ><-n5$j#en1ut|E|4311Dx>!Q#7&?2Qu%8kN|zR2%L?! zBe`>@Mq2oNJN0v}Tltf$&45M6Ge_u+B;Dk3g*z65nyuv5$wXdmDv2yPmP>e9p%&hn zh&Y#!k>TyxhCP!36F@%Ug7!q{Mh8nHzSXOODc+&Wo;PK&6CpCF8zGJ!XWuCQGIoedD(A$9a0i-L9nF6(N z%B@vl-_dK#k+3Dlx~c4%#$qbNGyy;~*jiP=tnN;K5LST7Ku@5WtMpZEySWWQQ$-r3 z4$R6;pac2;NILJhq__W%H`LrY&>U&v1jSNvr7awYI8szXY`7B~<;t{;BNw@loP`Q* z$^n|%(!|^mqUEZ4wM^}1*Q?#M+xQ*6zeoMigVHRH=X1{M{dzrLZ6sGmlxCGqhVYK3 zBk(xlM)aTPPNpw-zEfm|*8WYY=)dz@u=(?{>!6fQW@orPFkx#}ubB%=Mv9f1` zc#Go?{K8*RL7!EvX-g&kk|q4QIMr)TgB44Td9tVZl}74bix*%nzjiztm43nNRBzxl zsrZKL{(Zg=G^BJt>`?D}ulY-vjRqwUm+RoB;u5T)=m7n!>OK+EVk9LeYvZas@#Tph zPcv12Z@Yc0Y4hvO`U}9Z?u96E%)^4o?8vjZQz^_Rr460;&KP`PU$r^GsSY>C+*6XT zSIL{EVuk5>By;%HW8WMs$FC^on5{5nTU`2ul;+9mqHJ^Y>eU~_JM+)lz2+Xft605z zl+tZ!HH-rY*sA`xeeU?CovL|{9#z_;|K7H5IoSJriuY1lRw>iH>z|UKUhAq5xA%DF zx43_E*}*ZjXa9tqH~nWtGWJJcz-q&V&_WdqWSaMoPiWcwh}P^kklU#AVYKY`w%VPA z{Ukdw14bB3!%$rg~rY3CcMf zVcg5w7utcHr($`F{T;?c5_~i#T-_>iB6Vfo+ebP3ukoftt>LIs3 z|M2OGIpjn(2w-7s_LN!Fc7CPWl$TklX@XOOx|@to?G-0I6Dzel)6J{_VRD4Bn%{M` zH1i+u!3^)heb0BAI<~{5UkLV;y7=4LkGrfc^bs$d7r;HR%|T!aR`^lCHiLHw=)6=o z0rZzxiygY+(${nqiUG%Nu$#N!O>MNiR72rI_40LTZOj9Zl%k3VG#e5Mn4}g(Bm;8aI8X-*}6a2**VH_UzOt_{x|rRG!qrBxZ!)HC!ml6h_=`U zYeWG`T>_Ujfp_uRn`mR4eSD!yg)p5n?sCYE>>#h{SJico+1zwxq^hn%9autc&>)tK zvXV;sNlH>)(-jP}0{A>C7vo`Ei@i~3GF8ZdaW|9`IIy{^VsAgY%k+O(!!55m<~cQI zbYRrTLUyZ$!%>6~^Zm~FuSsqeo6GoAJS0DJ+1uVKCE8rFm7aqZ%2}Gbuq+Iz_NJ@` za_B}D<>|Dtf&;O*n8JIy>0k1_Gzi0W5* zxPI=FL-BO!E8xTc8=#E%fee;iWE3=8@}xJ(4X4G^ZLT(b)BFsu!=8kJ%;w$5ya^D9 zh!lXeHp#$S(Hg@h3+aC?yFyqRrB0A~4R5*~;*Ai5FMe~Xxm1XJ@!2Aoi!+RTy?!svdF=n?x!B&^gTpk z@_O3%j%tPrSh*QX)YrLRj zgjsprO#WA_0@&CYx-TC{O@gkLh`eii4uO}@@DxYnd%?qH(Nul+@&UsmTuw>nnW;>0u7h8U{o7fHgA(cA5>%; zv>D6h^_*amAV4%fYjurIGN=N>JXwV)PI>`oHdGb)P$oA2%PpI({ra9WmV&RkER>#I zGGL3HLp7o-ypHV*U^G8#;=s^rPmi|&k^aIeL9lRep2Uis#h(tM*QThZrG4iUmo zhi!!eUX6Hh*&)d_g9upGhasjS@`bE z+~n?csh8FO&Qm9S3Ub%Uqi@Sr|Hj`9dtKc8*UQ|G=Sz#R^`~E$nddy@9wIzA@i@-H z{0^^4&25o)t9x-w77zQ*XXhSEYvTDEc^|EdiOgEM#OYCb$8c;@EW2Pey-|GE+t1y$ zG{`CiT^WXpl3=@cy-ELTIo!STF|=!=I2bcKRKiIgXotp`J^`BwCYsZRXS{(%VM`h@ z345yO{rT-2s<7^81coTw`!Ls8V(1O-=U>y_Vfd0YOT)2z|Bc!%Bj=rUb8tKx8u>Ph zka`qI!1ES0&@h2(*ksqMKR6Q zBIj8p=&;0`VjvmY~^53X}zb>~EU$pFs*&oK&81z2TvbL$2TpS3a!YJ3jvpo&Zi zLsU0u5gpJEJia>tQFWjJNGRWdmH1KxQ0k<3Czd@vM;Z5@`&!DT*BPFAS(#-juE}sE zNI{)E9BQ2{My^{OG|_T?xE6nf$q>z|MQU-_uHEdF*x*gTcslX*SwdJ>e#fZT`k5!y z$N2V4=Y%Dbi!F3ZRUaOfcG&&*HvaRvBJXYnUVDG+!PBm8=EuL|0*^_%eehB&Q;trF zWTLOt5QM^8F*e148p0X4rA~8M0tQzY*@OynxEWS6msNu8EvmA{Bcl3MQz1<2QGZuB zgf&$EtXH$azUKrxFdBr*bhtRMJ*8Gv^Z;22AbKYmIR!b`iBxz9D_BGGLA~+R_|AC^ zY@YW+ra8+5!paFh`Y$%or`8meiPP|K3(Ulmo;{i!2$tSk$!x-@N=DMa*kD-XyfWVR zSxyfzW5v}?94)Xbsa5$^ACe>^X}3{zh@!?qfP)0^8mPGhGCzd$hy(4yonTJ~6Sx3Y zkN}yY1hQu>Ohllo7|Io|&@OttHr}ZehzVlRr7}F44Z!fZEA-0ZQ}yfRB%uH#Ow0f? zM}-t|3!<^?p5L!GH_uGy4Hh%16TWJB>`=b3a&ytkP+YZIpY6zz3($YYm=}u82I=yV zz%oz_Sh_EGfB}D#tsDI$O$I5hdQ*K@@(t?e*)7sIYav0sadFbDDG@2{dc5eS_sx)g zx0g$XpT&vbU>VH>M^ZTt`xY*x^qJGWN@B@?C$YRWUPyz@xr@DJyUUoiV%u5Trf8Q= z8L4M6QhC1K`m;Z!tewb<+9$P^=2QOD3Jz$+i|=erL`quj>3-?J?@;*J_V#~z-!krOHF z$XI>H#Qfg2-FRnXtX|*LcD46P*9Sxu8yd{7;(_A0;VudQM%nHH+`1KJ=EFCI=IXzHW-vRBN74P|;5hWB4t#h3Xl;-V|cr{N4sIcG+;s ztKHcaEJ{)2PcyqVq7>X@A5rp!;LgQJxS$`mTM;ufl;MB!6Dc5l6dpN6lq2L(%Z5?) z(zutNwWg~_xjWCn(T#&rVgGp3zp2z6%B9@!CNSTd$M+cQ-)h59=wp)wtD|~u zee}^uiUp1ysaLFHLxCDbpjy30ad$4lWofml7gBRX{=Jt1J;_`HxT-?_1}m58C3jj^ zGKkp{jLJdj(we}~4TSXc63Ag0U)#XHCiBXm{5LUY0Z?&w> zIZ6pIwzL$N{*{fDAxZ)}6(|T+W~46J76X*1fYKit+QD;lC-SRMQhbKt&c4*I`|Jl( zv~jPiPp@hD-1bGCN9h|2#n{ru{L13NVkuitFKizw)7Jo(;(JW-tMLraINL#~n@(Uh zhLe2F5Z(DL&j7OTE1$g{t@fc96X2U%N`5=eGY^n}{g+`XTmXf0Nyx^{9$nmn&0g*JTL1_g&gWU0)2vcKky2 zoKx1QaGtbKny7p&cX1pteX~XwuLz5pSSt5GWU*D-Z_W_8Psh0c&ox2hOs1E4+e{Ua zW)#Is%QEY$1)3G6)sv%j{}xp{uTJKzWL&5EOwU_N#8U-flC#Os2{K>_Npq2^31V#E z&cX`lqs-(nddyZ^qj$bWP{=J_nXBS;X5!_3goCMsMNWrmaruolc&2wua`^VTBBUY< zu7Ug0HbLHenJr6_#nIZ}qS0*4t}-hcE5gO!D!+lllF_ga^5s;UdINGVAa=3!bU~^d zis7V>(dzfq6u$UMH7yM33w_W#nttfq_}A8Dle_4eAJImpD?GO2s>LnS>;4uCS|={4 zu@}BoY~NkdTVShq(Tw%l0>@=bSk&SzYC$=*9Kpet3DxjiASM9bh_I3ZV!O-!P!w6_OglE<@?~QpFs`-~ zJUFnMW4^YzBJ_n&HZ%)RQaAs#<{U1j?!e;TE1^t4(nBn-$&XS2h<6qcL#86IGWQO7 zp{OI$vuU#Fd01b6x^FvQk0;@24cB`6tA!o>z*X6wtG3d$FTxGfU0=qzs(d2KRf6hKFud+hy>N)#HKad5XWJ&Y5;`on#hPC#$ z0Op98m)Q5oWY2ezW&5ta`psZoy&q2oU=UnX!n~X2sURev9J?pGugwQ3k63E4zf9y; zk9^YqrId;C=QiE58DnbJz3O-Jdg=${VWWk^{K~D0-`ge$*Zr`_;V%x51OJxzopr9O z@cN-DJXgQ=`E%5#MZrGHO7y{MmrR}Fk?K>|8m+^OY!Cg{-}NhIxV!MeTjiHc)g9Mh zR_~Iq`_4|@)V^Ny;CS`}iKpcf)=wYT<8J+!!)l&q?TF6jh5H6Crp2qjKKR(9$+LCW z;nhOYgu!lzW6}Cm7#FA$(pJACf?m6!7SwVgykP4ZAPsjw1$VN{;6O3( z^N&^0zN1_lIB6e?1vyV$E$i-#SQI6w<~8Ap=A}>Oa!4{i|EL*u5m6HiC`0zH_jPGq zzxd;K3At~FV>{2?c78d6|KNPA-0F@$gQp+0yxxEFBkZ|81d^f>f85&0 z#`;odtxk|8NTZy%p69Tx#Q^Z7h2=f+^4J3DDgyKvkbZA@I^;Vm7nOqh;iWA5E{YW> zc54SG84kcsIwv5ce}R;XqF8jstimIE0Bh2lv=j$UZGzqfqUAB5_I|r;H<$?bC|D1OY8Uad?m+0Of6D$VBG0rTR!Wfvz#xZ*fcT-#_n0Bc;q zp#8f4Baj_#um#d9(c`75KSIFjza}(y_?1kQxT%REz&&wDm9ZZK;O)5VR(`g?$&-I9 z0_AkvagI^R4t020c6@!if6~7k`RQj(XFrGgs!|?bs&T2md3vwaSlUjrJ`=0nH^R%!2yb2eo0af!Us0om`6`;5b?? zZ2NEe#zN1xA1l)LKZ3=Kh9x|BJuM8$1(h3+^Pf?NZhzZy$vOYJR9GbhPTwxhUOyTR zF{F|+WZc24A;g!~d(ZJ-UPTI@o;~3Gi9vsiM6<*=(l@(qE({xtMm{N#|4fcv$k;IN zZWQo>gjE$W>@SOxY1-!kqSlv*#U}PS?mvhrZWJHKH7Fs8s&e_?Of}v0?n@a@tR2(_ z>Q${1t`hps-Wq8#IsQfC_|x!k)D(+y}8kPB!J-f4AC#Jwpq>uNgbC zGesCtR!Z{1Ma+XHxPo^V zlv2^7nXo2y6hW|`Mg^o%ti?s_6tQTitEypvCLCzL8)x|cqyYIJWb3tj#5lC*oBd8l z0q#L-$Us~kJO{vY0kmb@ph>}iRTCsgdGOLPU%bw`^5*#c?OQYVUf8y92Gt$?z-?^< zT-WrD(<$j-n`aN`r(LhC4gamW5e@#p~EX<(b^_iK1TY=9#} zg6&*wi`RV$LZ$ncMy;a0OEpMy8MGph5}c+y-se;{b}VOT0mMv0`{t+fd{6Hpq2UR?aJsQm|KHmD*>UY^|?_iYH>C zGbla`>bP4Ikm0Mw&MGvAumQpYa!ce52R;L$>C=8CHB!e2!L#R_Kc&1iV8B{j#CmWt zfz%9YF2VuXb4PboQDh!qP~T^;PCJnffmnn1AukF@kA|D!dQPmjqW#R>GC>H;jxyxu z5orbL14Upvg5G&EuY8rd4|Ms}i`K@Pik$b8#YNd9?H0Cq;X_VPPK{UQ5T^&M4Z0)% zm*FJ`6D14?0Mwo`X$+PjfxPR2_w0(ico4IhUsVL$;((PFaO*S%TbLWe{#9K{y}5fZ5K$H$NU$iAC9g>E z2S75=SLD0|00?h0K)W$7QmWVWtmHOTi~%=qJlJp36AIk08k3l@G+-ls1MYGnw%xjj zT@vaDOyqhtG*{!p9zbiL0xbZ{9`Y&~Xp~AW=xU}k*zP3eIC78bnudFAySu+2GSpFz z`oyonGzEX_M9s_7-v30R?e1w0pRcfw4&5bK_Dg!wSa-xdIXLb<@Q`iZgtD}w;(qSR z#vh-XNG1fBP^TAnSoL()s5>Tct0kxTLsML{-ZMu{51!1;j%~wCyL(zxce%SfhM5WM zXu`61jryo5;Y@Maq<1n-)^JXhWC>NVT9$hSAP~C3nHG{ZJr8%p-r8RoK~kynk|lX8 zc*yk&Ms;4fDR#M}m!uY@r|Pp6#msOmB$4A+{6HyC<$)KVHmZVoz``47@Z&E21|Tos z5Juwwfk9-8VHv-fOtUYd+E{Dg`Z>CSTV6~v?{h>f2;0d*tVn3W9TUx>m%5r6F_IdPe4P znv}Vca94&%-=8|Weg5^c7#Cn@(qA&l%oqSp18@y{BCg6&;;V=90DQ_XZCuMg$5(rQ z@!*uLN*37(yvyOWS(_@|$x=j!LAV}3Ft=aZ0nV7I71FcA>Uy@4MfC*cka2b-$QWjO zD*OIzd=2R+B<7?A*XK-VaLr6IA4=8Vw2yuwuEAX^(wJc1D4l&)X%uWcyX4D2$D71e z+T;6O$U!1If(97MI!HZi7r%r4-|BO$ke-Van_T#VuojKSfRX_YY@+@K({QR0U-QmN z5lN3hqsU%aN}(zaWY5bFxl4hoNB&ys4INtwo)ZjTlIuKc?Y%M>*g8yjz`*7&3?Etl zGFovJsf-8-O68gug-n+{N=qF|hYfVVp3h#Ms8+)`$4Uy2npf~OU;o3`q5#Y81)fox z9oR8KwwsT)8n)`2tRf3%tov3B>#T-^v(cjn1NO}hVoSRp*J{+GcNqU{#*&EsB#3%l zSC&xUj_$SArXM7UZ&B?zt@)7-A(7CDQ@TA0C9d8I!@d`Kf&!&a^lCZw*;J(3=4OED zqpC$38$NH5MujJw3zRvN5h~tBk|tYJx?1&@h3a#O9{mQoaBO}vYvOhWu3fQ9P+o{P zB^v~TU@<%0z}<;;NIyAUE`J5`KA-K_M8dA0!}x(!HAZV8V(Hf)^{TWFjdI6(JO($> z#O!qFL@rgfpk3{be{O2bKIzlZ_Z3!5;R#`r1uuH<;7RC9{}Ea`Pqo4y(y|DVfRR(Y z^Q81?r)I8x7uDPt&Dp1dja-&1!$x3cN!Te)nkD!Y_+A|_poqZCTd**kTmEfKFOZC{ z((+^NZ~PP7vd;bKh8w-&lHhY2@dG*$2@n1=+T>5yIy3V+bEbtONk*e!#UcY*HC816 z8tOl1hW?>oEQ&!|T}~G%vVdg*-yt&7t;9JVf?;wbX)4fkTxQ6SXIb9mS~N5%lJn@u zuc(8k#W+3c(z7X@{G@*?#IWGfrJ7~|(p91;14_w0l@4rQU{{nfQ_OQNk=8f4N7@xT zlv)fJ5bI{J(9%S>LtksX*uXCV0MH@w7jYlxO7{H$db)+WXvFn@-_;P3QrZ6j*iH6G z4<3{rV^yxs#wHb%%5^g=f}501odBn=OSJ{`N7G-fG3+KKIVG8tJi*kQ$zn4Gtx zN+`}8&(`^dY|a^yKN=D5yD;xp8U*W_!}5|d7OzXE=o_ye`o{lT&z~yqZP?nNRy@VL+CY~+GHITsgmwg zsC$Zv%0m#n3MJ%#6pFB@5JebHJHZp`pp=|PQ)Hw41hO6!&ipTt< zjkeG2aAy?4f(kMvgwp+Kz-w4#A=2ivW2`pYJo{LuCB}D6g2c;g8d2=*r{e{Z1B7Y* zb59U{t`K8`aaESI>9dA@V#0xa%IZj|&U^M$Aoj~KM1g$+*-4kh3ka8xY^$n+FfUul zapM;kSt^7!9cG9zCG*DoSR0-wXK_H)j~N1UzkW!J1PcQMok|B=2;x~d%-^dhiW{!C z-N9^cY=^BX>|E(kr%>$sE4z6wWI0G$s9mm+wfShwOGJ+C#XH@8=X$rReDmDqM__dg zc*^b=J#)Tp_W6@=fV9;% zJm`CTTKN3Sww!8Iz15#qQ_fegQOzZOef+YhMu%vbXs*>qK~zh9dX;8YX##T6a0bta zt_*ERUx_dKF+tPn(flRwzvx+PKk*Ctu+SwoErTeq*0AR>lYQzC3fyRrVqq6p6VXfU zZm^uH@J=z?vHLX-!ltKy0TI(2Du2q4kk&BmFH(9osQ@vn zZWcs@wgRRXh|<%V;KN#*U)zX9ql#@rUBhKbml-*6iV7RPIEdvqgs|AA4+Y@puYo=j z?B=G>_A0a0Z;nu~3f!+sEk-fy-L4k5F5sGU05IfE)-N?WG;9bvZZAm|(gzjny<`av z;wEDF8qmJe>VHaj0O+EBpBeavp67yP2zDzK0W_TH&QIH@by8CJ6bOWvr-|F)Sk*AW z$jbx=fB&3{HD9C4{sxycjz%5yH7~lQ`d*ByqZeY#w`qehZAx~q!@U~#$IGP;6GQ0v zh@IU;NK&yZA5>t5!#ebgR9O&#m+epofXn-&bV|>$rL_$w-QK8V_6@*cFu)QcfRp`p zGTOrwYn&b>T_=x(0J=kmp2cXT<4!2y5wWP0QL=+detSHK-{=GG#)xxt%nV0SFThjv z5rBqm0OQr;9Tu9p5Y-RZdA96cAsT#J)JZK0&d6A1eLLbF|84F2^p&Zv@852HyA?|= zG+?_~KtlMu(?-X?k=xMLaiPIVnaBB7`8u#VtsMk|`>5IJR6Un0nzFa94)NJ&JgDk> zSfrlWVU<3m;h$Atm?ubyW7S*zJGK(m)Q8AZ1@0%|OdCnXI5beMN3OyDViaoNo~wlK ztDE<;{qn^dvHtpI4qYg2s%^`4rtQS}zB1E;QV7-A0q=s*8pB1jPf)Py(H2A6w4RBU zw-WD{;<6Hrn|csD-8OJ5BdG_WvJlfTj;KWgzbxO-Tc%RkH&DP$CLOXeHMhb5OP+{9 z12(04jJFrb!-)_S8SE0#09H+wL$?8p_>cFUvOV90GPZ?9qjjasPzgh*97!gmHkUxM z{g~^oACipCjO3IvdLUFG%aRE{+p7vRND9&fI0C_NVM-5XW*O+(t#6r%AbEI^D3S!A z_gruQkNBbZo;uw@S09eTlnbfmoRYr<6%1M7;Ti6Z2kWh5%tRXHDp+ZSutFU#8@c+O zVt?Qp0Z;mbvW_0`p?JZJ9YhqjuANW&d;b?99ME5ie24Ms3b|i#B+3j}*_^t>F?zaX zIt4Vhkh>&s8IayzI!Fc4LwoA!?cnC=v|~S893mAV?n&(T5wG7-yL}?S3%GuOtLO!& z55^kq07*mer?ac|*Tbqjy%2?XhL;(v>-vr+3ZTaa8*4IiCWwH}suZ9b&2!AF3I%vX za7U&gx>{%2$Y6k~9d_N%w?S!j@bFlTbvW!&@ogkrLyQ}qu(a@mk@T(Z#Yw%V6N?v% z$2zaY{ftrO*=ju!y2DaG8I?Fj*w><@`GVpoN5*xggu1kH0%N{R=cGGeB!U_ct2d4e zL1y%E7xym5#%(xT_iphH*y;`DOll%eU^rLiITO+<2%LWhFJ6{0sF!qqLXr<}LqhBS zDQQ%Q+|qrNH=5S5hq*TQ;{V!#rwVJC>j;nE(M9M+v1cg%*}6=y6GQOSOFE z3Z9;TpQ#4Fww_8hYin=`*3f9nJnWWgPLeqX`eqocS%p{13PZN=NCj|j(N#z^%W0Yp zps1Yy5~66GRbikJqSBP6C4CmCE!p9b2FU?$v&*i8?WV^Y1JZy(UaZoH-?{CJBlGr; zIHz pfsFtu7e_DsJUb(p5J>iWmSe2Mxe@!@;fm%1})SVGf0$cs7{s0Ea4@nfJc* z1%!FMqqtnRpT2l-gp&b?LPH4?D)?&sC=BHEcJ0U|-{V!Nj+{n~JYWAMMX*F2)2Ne^ zm?<#^aE93M8}t=HBtJ8x0E`+TRB>&Q56Px|OQr3^v5Hd0MwQbh} z?<`|^fBgsO-B{TV4_vY}O_zQtk9y{6OUf*70ciZNgtu(UL+AM0tMorqy+pv(=#=x* zrtY1NBr{t2NAGCm=t8ex-V+DYyY;Hx(S^|&fpQ~;OFM(BtOIWCH@b#U#jxFaT%9V# ztLT!oS?=^{2Y2augryjy3EW@6W6`+@`tpMr>vl#Y?Kw&a=?Qm<%4>(a zhGYpeVF(c82W%vY8q}FzrB@nAh&&13+~9GWu7pG4Qah#w(>L zfgVqNmS&AxbvHrkIPmHaHP~2~5}1)U20T0At@q-i9448do$zn5?fn{7ikYV8-Vk4i zi2gN zRZZMK{6yee&=$9}V=lV&Jz3fq_wws1phQ zxfSD>S6SkRHx+nJM!Cc%qi&pCHaI;h8(1NYy!t-q@zrn0TaC5<-8%s~XsPTApFSte zQbBqxA#X@O<@O1dj2y!`z9`%6&G5)d^vXn*I^V4|pW2?UA^lu0S(vSLVai4#t1XGuKtItC_7kQ?iB+q9cIH~jpne-@Bvwg3O zBgjV2V7yc^tT1zmT^qMR4q!eKU(%+OXpnu1!6kXPCAeYN;=&P%Vy0yG0yS`O0?boQ zQv)Db5D+tkN}7cr43yy~C~5(gcp?_~AHdJ1Y5O-MGaQgrfI6J27H$v(Tt6TzL1QPw zBk?Kclt_%tV#-8~0r1i+@&hUZ8LM3JHsaawuU?-wt~h9||LPv=)H@vG;r`|q*JN~Z zDKyte-|zO1ulG%D0eA*VF@$u_WqFGiL!-#9=c|>^|v!NC>D6LP9J=k)!uYe8O0(3%@!ZcsM{u1wber zc`EwIeM;bb#*yUncJH&IWQI`1Wko6f1>Fj;Zq-$MQ11CAC{d5j(Ue-(^4{?y*R`HJ z*l*tVAE>KY>HHP*BIbUUrZ*#M$H5z`Hyg^j9?N>=M+Deah=pqGN~r7xE&**~Rd?|G zY+QpfZa6xhA?H`|V$GlcEUOk)@ z(7KMng;K0=npC}bC!HQmifSGhC)vM}k&Nc#6m$9jO2gdM49CHJ!2>sKG5BT%t5;lv z`zVrxw*nRIe?FPKW^Z7e35p#W#sN??4M1{%^yNo30NxlZ5Yn1)?Gd7Chf*eZ7iGll zvN0g!5X#`7&jcC-GP|?TujXZ5y;}JeaQzYCL+e;Vz%mYb2d zz>XbU)TBrP`e3Aho&lb2V9n^TsvzK^7|`Z z|2bSwL#k^dW16OH;vo5hkKe42e5v<$TLkVvRrtH7e;2>>DBk2QXMqcye+gRqOD|qA znC}TZuS$~?eSYGZe8c$N3H4~j#V8r2(9oP(T>6on?N@h1zfFr~i6wC$mf)`t-#v;| z$?|Ce2t{S%X>FZ)O?ZTW5@seP1eGxH!k@yay4>Bz{+^SQ8iv&89f>bszgmX7tlWXAc$S$4qc zgGSBnMf$-Ca(`@)Z_34spre<~%lUAIZhg_58?dT3VPp3sf~+->T)Qi-+j)Btxqq-N z*)!3(I_0N}ja}1FOL-m^!hnyRl52=we)j%kb>T6s+HvtEYe1?`ynxtI^!a4J&nuaC~*22DGW)m>O2l@}79lt3i*DB9W zwU?`dBB(E=8-i2!F4@?17N#JYl5qwDRCYjYuFpUkRj*siqg>u8*IBv1@3E!Q>#DsC zw;MO26d+hO{OMk9^ zAJ35)djlKb9om{N&9y#TJ^druD(d1#c5H0$=^gY?mslfWPhr^jjwkdZxT38JIQRxn z%f<}O8<>Ne`-)&#qo9Rl*TzZH!_3&)zYtXLSTw53tUrb*u&eeEH^KNHEr<;s_e3P4 zhA?vq?UuV>(-)5FkyJ>ov@^G%L!)G8pboB_dG=42ySoI6n^7R8GoWAP1dws%VtKA! zN;mbEytd8Upx>PBn}Sk{lyBRGPycm^vv`RM9O_wO*n$+~PBR!+Q9H7=>NVeGNGeJZ z;M((=t|8uxiiAR)JFd8l$H;16Fm6PdgnQM0hxq3yMFAXBC15e?HGn$I2z9Sx&(LoG z6eVm(3OFVP^p?+mhgiN>yoYFv(eWI)L4BY@eE{`06_+coYP`q{NkOLVZT~|*RJxv# zc?dNpI9|oqLpi1eYe`rBjBIs13z*)*C3XH3El5hA))ZR0p?+~=&s*VrtEiZFW-Bhw zT(9uiboQ>8C5;X*9rc^(UK-M~>C8kOs=>x5!u=F*YoEtzW)@T(Op?{#a*i`_4!u{| zjyD`X$efvbFmKluD%X{7^~pGDCf{n%w9CCqHsa!Cr_;0id-atP!cLi(lgzi=D2KQS z(_pfUq^ZFE)elrsJthH$P;Hw)MZRRh4|&dBm*jw6?qOA*nHDTrfz4FO)sH@$-))71 zWWzl^4Qf6xu!KqzzEgOqzMHtVAK}q2T}(@WSG?Y|Uc*)23X6wpF1~aO`E|!qshOXJ z+p2i3v~s}FoXebGS{gfMTVe&Dc8J5Va1Ye*AX8E;4k zN4k(KH}#0t@;-e`p&!Cdf=5UOYXEV(PRp-3?HvTSt{Qmp`?Xs61C=kPtM7s4%ljpv zgPmcHU+!HGXB`T%Szdz-ttWJyZd|$irsdsTE-%a(oe<~p^=_#;!4o`OT+Mp+RM}8< zIcbQWKpc`Cz-=`_C%`=Dl|so{5RTq_ix((Ml7sR}o!Q`dAzW6>uuS!9zUAc^P;ID@ zSpy>Tn@eYUOooKy$#iWKFGkht4Xq-SA8ntDBZ%BIE;ae1EnpxOF|jKYBl#;KgIbT$ zkUGs7uXVEz27?SVrm)hv3}0pWb63KEZ#_y|w-x<*O_2>SVN%^hsXG3BQ=n`}f)odGk#s@Y2aBUNo#-h$9)y(_r%*``LV=(>ix z;ksyk<kyx)mbK?SmHH1G}Pik^WClbw5l$tUGfDZCc?>cdM?!dq|OWt zHk@rGBR}l@hv(YQT9i5swibcfrwGG;p57gg1ue?upKM|VDzlXTu8_7n7jDNLz<>5k z9F5hCsW%z5=tr}Hnm?Kom$8b=i|R#EE0 z5Jfm>nP#|TUV`ulrCi&veADQZPLT1GEJ}8>VmS?T_N2OAD^z#3fBpn6H&NgH^xvxI z5uUTjhEdNTZN~kpY@4~i&AX|B{;8*=jj{yg=w!E+L9Njwcd~Gw)m4QLqscZ_Q^M!S znkiN2Yy_|P!uf0>`mc4oH5=@u{&#&e5#RMfuVccXUCnKc>Nq?CI+%H3{$v)7+E=?P z=Ir=Qe@D~o3#=25EA--+`>ic+PCRgoei>@g7bY66uq#Mq{%Zz9yrr5~GQ5`&E~}f_ z9^%I1DTr*_5bVN30puHno(zo~@NR!#faE6x3$QP03fiOe65!IjwEcuPHuMgn$6xd) zpYo>XO56z4L?#xGX~50?lgACTZ%?Rvct;6uS=pM18Op&<39QdyL7N+-1?$J5zHmJ7 zt=ao_c;@oFT&~9v2SnnRWm5l$@yZTQu5_Ha`%&Hg>fwpy(CpPyO^F}bakya;5sDEM z>0!LTh#kcEi$zDmuXstF!+{8CHa1a%*aQU^MLVWx!M=l@k^u&~tGR_4Xj;ha80|wvv3^tE@nzexSZd zycB?p>?7_x{IF0jAnGjHSGY!^0DrvvCIdi*s&&yYcMOR2h6Cx`{eMYQa1IAi;q9x7 zXc%}=eU}!-b408{dP-*%1%kvNi*!@dQ)>;xo^Mnd6dbHXdshR7;~i#>=UAFdeNll2 z#Z!+2BNc&}c7VZ-5Hi0vMASLO3(nW=1@j-BZ*FRCok#S8MsD@kj==`<({GxJOL>}2 zr$9nLF;#Rr0?^n%&0B{KP2&3J|F9YRUIFXKakjS`HX zcM~0rb!QU5 zcqaNg;c}*0zY_o`Ee9v!`d1ACV}Gqxs}13`dZPrIhZYMHHNF+Ml-CEWvTj|t72~Ql z93RtxY9Gsc@6@;x%va`w&54kf?z%r_4ZZP?K_z%#(>WNydXyX(fjyOBgB;4CJ`}33 zQ2~Dd!0?>vl$0qDdiDd8*sh(ly`cMXSIn-R`5=Nn44U>ds&&qeP~mZHwL2ZHa75C6 zG|2hG=1)=mY}A04Jqb+58;Jt^G1j5bkb%8fHbqcC!A2-{(W)P|5uZKk(bU5xZlQsS z|Dn#NhzbRQIumrUfR9Y4@Sw~zDC5H}rT2cd5=&`1EDU)01ZexN6v{q-^;2Uq`Qt+S ziA?U0!3aA-;+IJ%{G~D?{>8>{?g9Ur`A?%`FRmrOHp2UZ*gZI+FG_}I2+QvVu)=RI zMeOL+q-cZApeYD=9jA2h{JaIVM+R;6rvU)ts_AB=s%8M#UubL2?T8vpt#=B}NizF@ z9Qq!d9|RZ+S=MePDNiN7!A@8X#X=U07eU24A1S|?S8@N;r7LFRl|5v0pM%?#PDkuHCD~G)V&F!vB7&>|dz+KEY)Y2|UvC7kyEDZYE;sQv^^HN! zU0Yv~Gn92Bhb8j`QD6`JW}%2b)v;h434$2X1_el!PBGE75G$6)Zr$_PTYm_+bHr!> zpsOye5t37dNGtKS39-Iki;GpP)@r$YwB*X6-`iw}AFpk^4~vs8cB>0SzQ8q?B(HU< zIeyEV3c1A63obO~EtE8b^(Wt*9eV!msf$`uoLx9Uz6KW)cIngRxJ|$R+OpoB@sn%C zqqn<@duG!$oFi+dj_1@cNS20kdYwDReX?m_{$t)va5 zcmftMF+6(6^;>$1Pg*3c2?CA@K(TU!^eBQ=Mxo~b3Ip$evnzYc3J$ zyG>DDMY3y1i`VE=Nw#y=drsVX9^0}JmoTOY@$R_bh#QuS9`x`5BOuB?kvb8UH>d!j zdTQQcN5j)4DO$a9iemPzb-go-(zYcra+q7!K+0oL<3_x__#U8ke&GGJ+Y~8vdA0mk{>K*g0hO3Ju<+(Th`;t&W%FC45L@Y^D=D40x(pnUl>#~MIvIP7V_sAT*P z`0WW=Jsg4iYuNCDalpYHpkNJ65h2~d(gJ@^xDww}5ZU6Ldz5ByQrI={?Dw`CQtNt| zzaA~fa~*UFGWfuwEZLedU?I7tL(55@Wd+}DkkRV8Sl-Ae=uvm?0yJa;krqIh$(v!4 zENW6kN+tM#1zo%Ka)KxU+5Mr7wMz$2v9-`%vr3r$r!=CO@=DXv5uwu~!&8*%5I1oI z`DqmR&m_298TYgYaMlWBu$ ztaPgPnq7L{$^qlz3bAwcnf(5b_U)@E?GPAS41lvm4?Jys?J!UG0pH_jpbr4277G{) zMY-5)Tq~A;4wv(gej#TFL+a5#Hmmb-vn9ejwYK>SrM{2nYLT>k)G?wly*@^WqQ2gk59ng1G1Rve8v=Xe0gg{=GUxs z!Igb)g~3l3a=nc@&mK5-d4GA|T3>(Bi;MSM-P+h|F3u4TCU3sTJ!`d9)fk839l_FY zq3KV#{u21-{zZ;T7Q30%nO&5|Jt}MAC!_CWy*75vJy?0Bh>=Z{9IKflM@^>hOBU4g zpA*$1yrWspk>8Iej(zf4H9=c#fq0@|W?`CR^=pFF=()PE$PJDzM3AG3>gn8oIg<3N zs0sJ#>7l4qfy_B?#PVKr@T{F zoxlD8T&Bot1_jZ$c5iS?5oZ7Ia5wavo1dlp8IgbF>pIvzE#$XofGo8dCW}9`j~w=V z_L>~)_QUiWIy$HMSd+ta;YW`1vbad@k@4ET9+_fajza4qQtOwm8VH+0!v zA@KpEm{xn16k5MGcJiast?p7n)3G_k>&UZWo#Rhnd-jI}CvuvEUdd~K774a zl;-(y{e~>_&)7=fh?UBJP)gWUf?a(v^JVAuJDb?&Z_x;?u@AwAO!r1FdE`+WrsaIt6g&%wzAgSPw?7|r>((8*W^p0p7p*!mc2(Zs z^qOO$MN3X)z|^NjN$<6)xgQ`4L8vItb118`v3ppZ6FP!$Ed+%< zoC}F@yOi5}{4TZTcah2gvFTx2N_R$t(t`!@_J|i|g>%k3^Pet&6J1YVr`e?Zm!Byq zS#{@MU#8r7`DaMZowuc#v5`&kK9fdW^0KWdx|gXx|5$)8OWE~HpQ>yEcx8_tsJ_K@ zw83C{bD}w3{9`dZ;URRmK;FRpIqEtLKD$@JzS+A_LVV2$czHDgYGW`s$#)9gPXf|X zK&RxIlZklyHM4@6H{prPM+O?T%MT)7TrdAbEgr%tpxwUuxYG+Kp2dvsD$6xGSxY}e zI;Oe1x~y)d(G--x%Ds}2GUErz10PU>-=g&YarN%;P^bO>_}=9(j?ExB){Jo&q0pe{ zGz`Y6Wt1IL+Y(b|iXv9EwcQ4jbK|%uHecFLT2(+lyFAuNF7!|;w+161P~|KU!Ae&p9@J{Pv3J-TjVpc zlGo=!dA7P|osJqtp7w0~CGl2j;5Kf$3TCcwNlgWT+uUzP_JVW|d1i=mprX7&ev_dy z=xY>-l9GjZv+De;j5?))%953s_y^81%siDtzw4;?q4=huFEqjB6(4Fiv(%%Gg&-Rs zlMC!K=i^5L!w^N0FU&c4VBx(pC$kQ}RIXWd@}*Zs+*)C6*>t*2P>p{j9+sD$*;fjV zCNk|yuI)GQ%J-$y?#Y-pHXM_;6BIzJS2Cn`IbRZ4Wr5)Zi3A7Ws1Qud-Tp27WASO# zG%y1#oZT6=&u8bWKwnmgT7VRjnMiJokyfI#%3S5%*`Pn7WM^Kl59Jw#%%}8uf=D!e zibO>6HG41q@RQDV^`H$;vO6>|l-cjJ^(a%HB-YnSTv*fb#7We+y)htcD zvwH3itVeNO2N)EQwo+>#^upjjXve@2u+1Bo`ZxVf(`Nwg_kE_}wMjC8) zUn!gELV~t-DN93%t4X;^1;OQ>Y46_QTPivJS6{J+eb#}mNxsb0^DNL$3%dqf^2yfA ze~tSBL@dy(>P%k$kX`Ph!a~|N@_>@phh4e*bB$3`C zjdQ%tiAVyCEJyJ_mp_l;FQ@^DDv@Xw2;aCL!o5)lpmM_(YBtreBbSC+%8b+veTz7F zHM|JsysiJ=L@V$}+zdfA!$&F7HU9HIt-=hq3;#U(&D?pbHT!$3*_!5R)21~15C|SK zwQ1TTFuIq{nNE($Ez`2DGoAIh5J>lF@oDL-8M7Q!87&%{f6=2Y z$58=o;bUg1{um8ILTPPw7g<9Tp9<&6><;5f2JudxG-gSVH06zwNpLI5mH2-ck_MWk zNFzokq?DY8k_!XzKv$DN?AUVk5v%5k5#C}WaLo1|YUKVoi8N|ONC{Dp6QfSHq7?u| z6INY0N8%J=yJYZe2|u;&HIG_B&Pl638}`0F&b>$5UU8?M@>wXmwvX}h%}ngQ_dn!j z@7=n!My=?iv*~k;Ku$}*#6Bd&65m9k6E|c)ZNlqp3Q%6f%8424zJL-{LORH$aKa?y zNyd2_^kZ!<$F8YNve1p|ZTVDM@ul&hFN%Mw zB$eQy%}d>~P}4Ln^~gQ{)>DuP7Ux-MDxPhNak(K|8HlO5W<$ zXw~sfk44dGl5NaV)|lmD21N!E5X_(ASbWZumcmVTofD(GyCeV)eg#1Y`m{hyx;uj& zU#iP=&#h&8O{N93vB0s0YYiBOrJ4=uWpeoRSeYHQU6XPb^O7`3wq)>oYyc5VkI1Z2 zduN1?7+_q8cxgdHo_<r*(bbTT+64Lwrt>NtJtdycs4S@wt zinN36{?zO4OSLD7Nd81Etq$1i)ltw7*=~P&GIra&V~fku)@JoSd9c5bf-!Y2GV?Rr z6-yi@tIjBH*zW(lMAR@lyt*|a7aQW+=Yx&h0kQ`PLmn|52(2Y`U_r4NnJ2GWw(H^G zf=mlWNYMb_!>Bw00_P+A2J3$wixdyL;hgJ#|M=4V6I=I5Piyko5h$DmCSW}6Nh5`f zp`Dfq4lpMx$$XT`7Y*ND+GV#l^o(884vIM?Tg$aTxn{#N9d4TH-U?65DP}DVOys8{ zoaCeGqLP74ov+O0>FY6cPHp{k|0b9}7&`I5f=4IKHclG#*9T+J8-CA!JMRq3IDDhp zM3_tz2vxm)>q5_qNUc#9c-E$M|KfE>*+{Pa0^;W@J6UiWd)D5xv(RkvYSvvw@9*$R z)oSg(-dd)twv%N+ct83RT}kNr9tzY zXwAS>M9g4ai#1LXqhqmC&cDA5FH!8Uesk`^h8m+nC(BWhahbdQd46erP;^(VL*O)h z;FsrXD?3{k7wry+usaqUvx8&3HtoUU%ILy#xX0PHBJGg)Cl5BOCvFF(snwR@RZg(Z z^#|w)waXo3F@&N%?)-t3i*EaJ<)IlsTZJ}2YEdVL?)3dWM0&1P;AOGv6-ET!q2zm6 z%&=X>wubVB6e{_HAD#IVPjBZ|FL91eJQ*CIlDFC7wDiGXkv#SMPS&=;V#P><_0GV` zMV_VGOzL;?^wBZMZs|3Kjp_?Y)w-)A@%YMyj7m*N=zF-f~90QRdW)SHJN(1 zGChhB+MmdWs)0+or9KTlT3=l2@V{HhkNL@t##Ny!4P|z?#K(lD17~!es~X8@y9ye}Sa6Xqlm@^wG}fkVwJm5@CuHgb zsu`8qlc)RZpZ`sv*H^T?z3oCj4 zO7CXzi{Yt=+`sm1Yq`t&>zVN0)V52%v}^F$=9k1q$P7CTX$1>rUXxad%=dw{c(7C& zhP0cLJX^UK!vh+>16(y~@oKmIY7TupWJK#9YH_lvwdP-9Ns`okyF=F~8nY(d%D*}K z8zXG?bVi$giJLT$D_+eBmsObSS{wMwwn4&VdM9;vI<`{@m+nDA!KwWWIk%hNgBTrC zG4x&X8NS8UqM*l}$y2P&(r9HZ$C1&>z))d+rtk4@IlCa<$FIo7kr zC)W>PtN&Fi;+WB#C$P~Ibe>P?^#TbX$Zu5zgg%U**)JQ70=g2}E}>hD7;rvAQQ<>t=8m%*$K~5DJ&Q=R6Lm!1sgLfD z*S%dM3{`EDz^tsQM-;x(2@c2B7BNK;OL;%M@N!<|RllashSVS33o4?s_ekR3*(=8e z&KTdebZp>Vx6Y~q^bjMR{(=u3P8CI86VZGFuG0Q9{8E20&8jWObhu)S-wDR-7@Vb?(n~yVAYMu$Px{{pr;+Bc&b-(#VsZU1!KolWft@Dha z)}%Ex=}wO7%6rLe+7^A|@~5^`x%XZSW(^W{wuY|M&#|&C?{Q(r-27!gz1Op>7TICStldMBkQsD=e#fc#ul_ zZJGXGXIdPu9Zy8i(t-PKiwj?*-`A6S3Kxp} zw#luPGq!yEhfe?ZtDc$Jcjq_1sNcU=*E}FJF=;|QL?b2xmUk0DN}BMei~uzoA`iz; z%Ob34hGg%qfIO%UWu7IU_EtP6-y1nFatjWbFHGzLUp5#Q=FxhwZE{YF*~w7MxdNuH zQsA9F|4ZPv3x4p=9S@~5(y1r)NVC*q1-|Nrs&RVYhos;4uWTy3iraGx(-8ew?$8&X z%eT=?UGRdFmE5Y)RkU-l1*NU?3%RLoZi=#512y+ql*trx z21==~jZmTiwU_?I}`b8WyOR?;$D8^AJW)f&lDl@ zp5tcBIvh#U68qjA5|XLn^r*y8HD2u}$HsRH%VDBu)96YNmSVDOl#A?T^cPS1HFpV& zixaE|oS0k`)yZR39~9lw!tfRE8w|!Cms!3(l;Ec_Std8|2^iB*>9uR~-d^jHSm8H6 zzwKU9Z*xSVTWWTjEikWjd;8&%ebmon~eict7=N z!Axk4PTEyQ>gOxv+0taCuS7ydFecQ=ip+UYgdPrN!K~=v{{L`Lb z_PT~VBYRhIAvOqo54U}L#vy7d^6=3F^|e;hS5v- zj<8-9n_=5=HOX=|%$uncwW18(a-dkhx-_ir!gVF`HD^|9u&zYvrYm9a!VIS;x@VIL zTI-AD0?o^cj2rE?LwqHnVPsadF<|*f-Ofr!66V7}vRp1;L@vfSoWMRiYo2`Rl}P&@ zM7%JKo#RYveS00xM54e)1~lVs-toucB@Y9xTH6!gJbh1zP@B<` zV5^~4ls0NPMwNR_p3gUGjLElFUWy?}LgjH1A8I{_KH-Ca`L&63vr6}(Z9TOS1M63@ zI;Tmal+l4->Iu|6`8Dy8_J~`0&(Nv?*4KND-aHlAlxW`0ad0QXZPl(mC)hh{PfRwt zh_Sy?o^@Pu654dQuTazDvufn2Vrn)z_IB+$6%E50_XF-XWVd2}eHhz5dYH#6Lp;2- z>bwCB<)ty|u45~fd52Q?IAY>{ofSM%!Ai3<%^UQdT@SP+cYrD2r}1bhREhMB7$J(` z>X>cwe+zFED1|5>23PG?dq7W>Z4L_Ug>8Uu@umxQsWD>oL`+y_j~&M2B9<3GBg`1C-||d-h>mFAVhd7x#SSQh zK^hefc3WT%HV?tdc&cEEZ%xoBLSW3rt9x)$Qm~zRy(sWY8+pf(`n7avl3avqNMzp! zu3T%mbgETQYuXzw10$TsYT@)o4_CE9d3n{^6pI~Q0Pbz>tyt*%ico~(8XB{F;3>hc zSXoi@fN_dR?Ne(`j0RT&eL4kASgK5~QZI#ip@-&c2Dk-93|40rp{FEU3YM>4e^d{C z=NKLMpWFw?!A+z}y}7uuv*2Ge*eu@;O=e+=z7ZL)jZAM4zGtv5D1bF_QLr&qAPuC9 zn3{pP%Tey+U_D6|8J_84Gilh_iXqMB$@iZI>)-XAAK!9a8Qm0|pp9O?t$O?M+wQyT zx@``=J?b`by(uJ3OtZ4I3AFd52rSdYx5#oRcv-W`j-@x3{KjT!SpiacaNyo8AF5&- zrYHyd22uNk>e47f0(FB}#9SiOK6cw^k{{LsJ=I)WjDpXx499EKQPnxq~N5hlK^7;R)ajp>|OWd^AP6eI7Hd&m51wX;094tmH=0Y!n3@ zc0mII{IVon!cAzNfX#_pXw^D+S2zE*4ihIrK%0`#MlEYd#~_k2o;x<*6lV&jo##n>%3gF@_O@oJ2?b>Z37*|8ZDt>Fu zPv2ZJJ#a#Biey_)Uu1d)l)DH4>LP(GG z*wl0UBpLPS>>lwfdw1GO16GxiehRRY;jQvni`ex&5w|J>H%baBQ-zqBs0gB^6X@m& zT@5@j1-XNZwj`YK55^(O=-D)nBTNUB1&rmEI$9I}U|Mh*VHl{+&0><`e+REU@m%7- zC63p8os@DxA&03YJ001JKh8^)MiFa_RRxSP$3s;3gDfTRuKCdWGa}ob_W9ZZH>0Ca zKyB%mmE5KpuNs_TAN{Vfk~R9@C|PW8VNUVoLw`7IY8A9_rh^{q83PD$e!-HB$VMh| zMSD$aL%o8bfq3X&AA;%vB#cc@m^DoGaQy)iBK5@7^SX=G)8MP zBN0G}*oCtk&j1Doa4=Xvxk&w+3}}#9V5Kp|OFxe%tgt%B0%~5{PLSyScubU*?Y?Oam4ORdFc+o%CbkG?f?`Muy~hv$ zsnE0TCy&T3N~FZd>wmwJr{HE*vftA7kLh3g|9+Qgj6-)coA>jtM{Y3<>@K?J#f8`E zlSXZganSY*S_&<;$z5>QhL9d8xupOCxsT^G{j|FD9%XDEhY2ACGrf*@3=2Gn@#g`e zBy+3f?>t4zYi1y+n0p*WNfs1olqttb2RaPLo8>+z02M)J)=yWN7gQAaFpyzD0H2W4 z<5hej^I-2V<7@;D#%fU3B4qmOi*j`&x=;>9F2%HB3Zf}PK1d@ePEw z!=_mei2D{0=;%ue6`5DQmdfZ$k#~G)uF?GX4bNN>h`AUeDPxLrEu3BA5yHg76%FE1 zX2<03lIiEi0Qwvu*-_feG-9MY7TkDk^gXFCO^_R5JBE~nJf;V|ypg*RB$p_HAarn7 zV4N2=0n7?m3MM`P;e?tEn^~BF#%ECUAw&PpLKzU6FyspxSf1e8T_BhB4WUxmR^@_yVrizN18|11)IKp zJbe56iHn!+JDYmFuPmEUKAy(YmnJ}`Z-g6uoLq@J#0OxyTS}iYu!j2w`fe2qC^PG` zAeh0iYsiK{I1vNh7n?JrBL!X(;(>fqe!RI&w74|JGqf%;ODw`dNWF4VWmT^3r+22t z#M}3xkuy@-{|-KU?}NmhX*?UrfV$Aj^)HtQhhx3G{#bEDKumVIm1T+L zJ;?3aeQVNkZN-nT9y}^uaF*q3nEqq_ItKBIT57te+}cG*&o{ zm*Y*@j@pwePrN>`@`t*xQEG!ek2C6&JsMJP{6UOaD;pnAv12q6z3Tn)y`lOtPEKxP zKG|!%4c#J!wdBC?{}aOz@B41sVqnVG@lHv7X)BFb+Z2VU(oFkfZ90YBH>+XZ?-4tO zb^cyi`1q-omb3(0Zdq8*PmGoNX%Ezjt+#FiTyhl=02N_8+J3QH`FP@O{RgT#jgsH$ zjZ?~o;q=hs>v9N4bTGt1c9 z#}20F?Em?@JAJaGgRH$T-(1**M)TCdU2T@6sPjq=wab@?=n7_yF6t3OuUgE(BR3w4 zq^JSpP;70ST|v#Nf*D`4sug}eX(YK|Fnv9^xH&o|nEBt?AlrQiE#F5>Nmb+%H;)A- zp06)TVxX`9*uK8>v$+vFT3JtxTEe-$KD+$qL+^3TaAo$`rfx|0Tj zCIXj;;t_X{WXd7m#<;D>`AN1SD!{XagECToR0Or5*#DH55+kerp3b!ta)afay7UM? zu7)zPE!|#)s4l;moIVOZESn7vDwJBNL zwSDyXBQoOeeF<_$cdU(9q#l>CjThyX;uzH)SzW1bZ7en^=9!ePEW7TmtHF+(S;)34 z5~B(%!x2Un&#*xjqSjHePp*w}Hw^l3g7P8lvoXS}hL8+KwDsl1aop2z6b7H*Q+uAC z4BEV`i8e+#|B&=prkAkiQGcfK#KmhJ*TbO%Bnh>{GH59VW*S^_uyTb;CL}!f4qU%= zliF)BpQ_l&^57JZFf%HhCDRG|P`-U0=oZC}PFZ_=m%NKkgSu2}o`?ml53Y_f_9%hL z=V^+4iHZ`qf(1jE&p4KgN`eL+&ruK3*bqA}QPwFh-T3tJe){@6RG6HHkp+_7%&;3v zLl}v){u_Go?iPVvgkC*=MCM;&P-XQ8ebLd7!TLwv~Np5KZ#u{;X&j>Y1Akyilr7}b#5o4O?jHgb{lPv_1+vc%nbF?K&65B=zQj;PWys@`ubQ-<) zdaF#zsQ?iLs8Xzn>q|T^zt;bG+sYzzhf2%;mKCEsiAT$T!WGmU(8#dV6vQ>-`hd4e zLYk9$(UfZ{dH&D&FiBI9aD^8EjZ=2doh&Z3!;C#%;RC%MBri@%diB`A*aygBLX5ST z=m&hTZef?+v|ai2V7|>yTb>6Ou1Jc??k;HEdCMg3<&F!c=6i2Ss$7wmWvL0)L%wM3 z*{=uBM{K!o*;fmrnYd8akM<^o+_AWTt)F5$ozBL5V5=xm;q_YpdV(M&3M(ubgIN#)^Bn#(fb4>@nS5UcE z@X`YEj>qtXbSX9yW(tqb6R zHdiLzI{C%a>i-$*JJM{ws`f> zhA(?=*#GQWRDAC3uI!!OyC3DGh)p6wT6WgDrZ95Cs_G;k*4a3kjueZMRwEQi(tyLyhaV+P~cs-8vK#YF^bwphKZ-l}24{EBzy?2c0rEpR4D4S}I2j z9@^oVdE-pR`?76+)$bk6Tu9w<@?Di#f3vA?ZL9 zLY7OOK+|2>&qZO2l6AwARGNB}Ewzyi*a)5>?&bD{9G(w4Q-BIUj+8IBBa=^=+Q^lA z<}I4Y2s>YkCP#V@wXX8&9|p+DxJB3y;=l_I!o+~)YdyN?yHj^_9UY$vG4eH3Nk;f*I;$F|dZeKjK!G5J;e6Mc`9D-n?hZLV$T6=BL^MB3 ziYaaAWabXyB)nN?(O-X2UeTUW$|ys`gjMezLT}`(jCtPJ4Lw>G(CuV;z56p z_7qDhAo|q*_XaUG&<9yR%7DoWziG{KtWf~4Z~&zAvF!kyO1Dz8aq_Xbpo5ENedvc!X#-;P})**Urbmhx0=50H2L1OoA>Wm zI$J)E2SPo0s^k2sgPu5MMO{l zP=;`y=bqUXU^~^{L>98##0?h!x=!1 zD*pZIrczJEkvO%2mmLDSp{(Nlr=I1}D)UGFEci9atUh$uCzo5fgRYj#Kj&dvq9k-E zsJHagbjw9AJIHQO-CK(W0wh|N<(5OW=tJq$l7(js`qFvmQz#Ap>4O)5+Z{TDa65-w zKa#?&9D`|qP7UIhCTM4yU1Is?E@g+*3mSMM)mhI^4`m5JT7}eaZ(jWLKsL_=-jqLK zGeILOMXJqQj97Gs@kAQ_FjAP*lfBZUB4Syca-|DtR|BorDZ&oXZSF&LYcLbJ-b7I8 zRuO>~MfU!Qc8fta?I#(y8w& z-7;-pNFiW0TH8vu;*~m?N547s^Vf^7>APmnZW*yl6*J`2cJ0YDmYAj*{~chCyO)Me zh$3}gQ;*$$6!bLSK%jfV-1JL))-O@^I)(P8`-v$w*2b)q@`l;YD(V+K!N zNUqx12kd@7ERIRgT^6O=nX0zaWA8tajQ@HTr(Hd~>c8V3MV=w=XWmJ#Up<^n|4r(V zuCDv0-220Zt6c?SLuU*Hx|aG{&9&3X>W8YG-_Q6!mFEbN*{jz+DY8MtbN@wo{Nkm;*v0Rw zg5pn#==SK(3iU4=OZLm|rqK^_+vQ(2RkvKSzEr(!-)F`J)O^&-Gy1vbw>DS*lu&nu z8$9x-c%;E&m(W-k_B7D@oM+45A5sd}&^bT;`_&_6&L7>!)qSJeHU6pcH~t)M@!b`n zhF(hp`SnKd_w6Px)xZCd85$AzR_yYDXk3&Iu#8jm(?T@;W?v~;U!-43Te;ZCXJlbT z8!N+I>hU72diCB;;ez79H4I4_3`X|&@fkjq2C{X>_1dy+yCEpI;cean>Wj&3C^O4k zdpMKB^8LtKkU`%?en~zwnX|gX_)90yyW__!EozR~m$|NbZF-=vK0)tgze#AVy$9ce zt(9l3gegi7SPk?aML#V&>%YqOn+-ejwd6Daiu_(}So8W%0-CvdKJm=z!H*mvAQ=k^ z!|1>1Lg!l3Ti!o5k>qL(T>33kG0p!e_;8rp ziu$@#H8M3Om}qQdi8TCsKxOF!87XU&Pi(;wfQ^LP#KApIr-{ddlHsT$h08SMKr1&P`7M|--B z22ov4Ga`1E;$QjhFMgUFBWs=SzTzBps_^Kpb^b8>Ug74n{`JJR=vi9zlJ9zx9&}kc zK0SQAK4#kKqvHB#f4Adj^$^q9P1>tcSj}}UtU_7$#>Q#g-3R%|cXBK^clFWLh`_kP zP-TCf=xAEKa+{7w20(sUWr>l=2{lO`0x@_g5Vnmhfe;Vj9P6{E7OL;QX#IrNwnal0- zWK5TA*z0Nk0d-GwST3(#39O>s^(tMITsgFT;w28;jS}$}`yI?^#~^ zLq+V@8FotU1`{Q_XS1E%)EbK3-Zg}2pL^TvJDqbO{1kpI3)fIt(dKiy|1l-_ z=r=XTKk|M)KIps|^#vn4x30os*0b157YNPmu9s(>+zKL@mCI^%JTy3&jAp?; zeybAAm|QUOgd){Exz*?8fzTSw#iHPEy{1eCmra`Xn4x&e3`B!fQLad9LMg==hcKF1 zz1SLtPsakLww?Mx{(rMN2lZ^l953T7sZC+P>_)%V`5eHYr?s^jcq zzTBjB@RhS${O3j9t_=?b5L7~w>4iZk7za(l+3bIHHRt*T)@WtqKcHv(6Po~83QXIi zKh%XUwhDEV#rCD^>t<+;xi-!K0DXLAeoM6Fjpd32UPGT6D?&1k#bn)UQKn z2?EtU?v3tp?|LdR+3wi`dut^on=B6_Y@pVVd|pQWeDs*fVuC0Z$$)O#k-NYccc>5e z7A44biBEho8dkMz#^~td8^#q^i*_76tY5vO_T_tv|Dr!#l!gb#T?QI4j$DGIVjJ*C#L>ZX-bR0@2tY7YGS%`9aIRlb z0I&WCV5&`%U0W*8j-p4QppT-I`P2S2B<2Wvd_pdpJK@ zmdGcvhY!^`6xyQmAERB!g*dx~(C#aXM-ndvT(wYDpuron47n>a^@*`o$+Y3v>W_(x z!&NeEshDiNyG#)+mptVhbk|_Vq&>FxsHMk?+qdU^-yYrQ(dIKt*`?5;Qc-6Z^w zrB%#{AG!zQ&TDXhL?siitwHRxj+jJGw-j>J#kU6zJbTvq)^z{R`*|_ytX^&Hj|f9a z1?c@0z|YMC$8O(r)mu?9H&D~wE&HP{|lQO4#&HVZXc#|jLtrZngS zy4isXGYWb+tp?QuG-Ql&ufcLm)RbJA-&$rS;M+rO*WjH{rRJ&{G_c8g&ArI-O76!W z4;yZ~6e0S?)hj-n2=W;dncb>d*gBBi`bH05Gkt~L)(_!#ZT8vqSsx7&w3Q>iYv3sv*T83QFbjuD{pVfObcC7?zZ@h-3<5@qof{zAX zYb?j2!pmT`3mDrfS^RS7NZTRJ=#TehXcR7bw>G;PjGX1X+jzzp5HN~1*tv2FliMr=-ksC{g0kxTr6m19FM>mlofwPz{2-6nO z2RiHZ`ESnI=oj%7`d6sW7w0HrCgB?LbN%DK?NNjJ@?V-KpYVs0V^3jhU))jlDn#w@ z22IXDI&8FOxij(=YFC9EH$KX?J3#BTTUpp7?#^u`URq-Z|CeTwhLH!faMR4DZrOBm z#l<(`E}7i{dTgzr_MT27RKkfyUQapPX60;pg3K15?U`p}%}0!lc(~w?QQ>x|gnRCp z>G%134y!cQGH;J!g;!l=EIt|h_4U;QgNa-1S}il(H$1`pX`k0FLi{jp)f7{!9O}h{ z1Du)h8$tI^Nm{5BPody#2DAs!xN1$-}__vE$o|yAmwzqaorn0(Wj!iXIryD8xvlUP7|F(Lg`} z!72pLx4t*JH?V-zFZ2fR+-;=7A|QyvFD}ztiR*3gbW}J3sSSj9r#)p~05syJ7IAU$ zb6y1&B&xMo{||rS>XkYoR}l zZS&tj9+1b#?c_~4Tl&x4uRdw?cZ#o2|n{2ghOpKF)KT zeOFVpSoqBr$MG${)2Sz-=P`jd9(|OAOmih)wiNOqLZn?D>HM4#Y2P1$>IU!>Fe&gy zfTQ;pcuxR?Hd4lYK~AcAR3pE$#p^0z$k%^QBd3KYYrSa6d{x zu6jSh$AzYVE(>ron%5X%^Sy*v4SKUN;7iX;6~cb7n;q+%Y5|#g_kE?oxg&XCLsDFC z)oKE>;LAMLRzzvg;+HlPdKZ_yFpbOld@lU+?zjI3KUvR-X8}Rsx*?Z>Bp<<&Zlzx6 z^#Evv4oM!mKO694{&MGpu*#7MCksIhpl8Wsc6)S(??Ci$?nRGSnFXeB8Z(~6g*|zM z8_oIkI8m`cYGUv8+uWn2U+OQ~t`1?h1(<6Be}Y7w2Mh0r%zz%bag`+1{9`a{SNY{2 zfLB_2jiFV#B-VCysNmRCVoK7H548%%zBI>G&rjNqreoO+BU!mNp7y*Ho=EVM2;7!5CiBs1V-H0+s<~#*zfA|ew6<_QY_)QH?Y0WjYJ`ax_&9GQk$=nRilOM90%X zSqcr+%e&^cgjBjo{Ywq1;*7*cS1fgNp{=@h>0OnM-oTnQQ6@i{bAR02u%T?py12oJ zQvv^er4|M&_#Fwdp?}0yh@M6C%Hhk&SN@rFxZ=C=qwncQpM&kD?v{8T{bT(*m_Rn) zW0Y*ja+7j29dmA~9)ue4U`&yX>3_^}8{jO*zHur)s+aT6r1OI`+;*~&GS#%fNB3&e zX|1F4n3KNX`cBnVI!kwp$YWb+!=_6Y$D6~UwjO(E?~H)9{?VO(%0}Kkeyq?<6m3{h7}foFVI3SLoEWvy|2}&ue=?#h`Ok>! zv1pNTI+6{Ar+Wpx5n? z@@7o6YwsQv`2nOF?ONG4p|k%}h*TcBZE)2WX7DwWcH{B1?>d~chKqO}vB=+X_$iGZ zQ^j>_88_;Fo6VKcqE$^ZuR4v&4jvV4V0D-JeD*2h01hJ$~se)M%SX%O-+Mo`p3wdwi(4znjcQX%M(+(0CYAvoa9< z^K`Hd>3zXzLCdWwv^HP3+P4*!&otj0tJYa}imYgif0%XOod=%!oqWO6dPUH<#{wPF zr+)L7R)3c7Yo_QVIh}@Jt4_5ogfSDiIMSicck$BsO)S{7afFSr6YWiB-xVK~i&qDp ziWCd{)Tl?(NiPMLr|MMK$~iN9y|pJEoi9J}=-;op<*xCUe=MqwIK^rXJ#{$Sv75VR zy#I93*YWl1oEUBeBhvcAu6iX0d#-14j{Yt6F4I%1OM|_fL5TKt1jlgY&Gllz(skqLvSNv3xY2cM$diCG0vNf$_FM(P#TvOx%Q-}#d)J}ZgvTER@AW-hqe0$i{ z`{?1Xhm*!crd_t-1r5L8mzXJD;*EDQw~N(B^b4b(PWfb&eE=n6`PlWHtnb6D>#>6$ zJ`3%o0OPm6^Euu$gh33^4Wh3v4(AE}{YrZ7Ql08j-pGrIX6N6Ozvy|#zI$BC>zidC z{?75(jvU*Uf`8WFfJ;s1+djW#yJk@QGA%?Wu}k;rI@iI%andxSaYoJN)9A+mW0yaa zTYN56Y}-;-uff?plWn{IpKy!);*l438))Ybcat8kJ3!lT=pP%-!R`vBn4AT61tupu zag=YXUAX=l3?Q! za_}oYYn-$-EN7iMeHcCDwPM<7_l_kKwMRCK7YtWomDobUy_ zFH-&R1*QI9;)11?#SS;>#Opd335B6sdDF>P(w$m>lLu9s5#PG59@yZ;(uikd7LNzM#}p3iTGu1N>Ft_?eOVYB}lOuTJV{KPOH?7S~{~+O>S*l>MW{Yid*` zP6s|vy8m>SYy7*B_Ya?ETzR-dbJFTjQkhaH+bfA-qwvta23eHhpqH0vzfG$*aAF(% zl6uDtw&yvD5Nr3A_MZ9tT^1 zN8E_UZ0FQ(W#oOuIR*ryXDt^KvCUP^_PMz}*{|4DVz)G2*}yJDInCDE<@;K-erb$dUMjp2uDU0=(8PFLBbKyRdF_co_gN*R%PdM` z++9nnqvUI`uKCgxWU&!F59-NwJ+_V$>r^8Mq_H{$iY_5|F zS{P)V4n7t2S`w@(`W`?I3YbQirP!vG|EbwO-MR|s>S*Qu4Aaa8DG&pt5=LMD zdx2N7X0>KA3zq(?3`0#v5IE)_`*RtT0?6i)km!usyxc3AsvuP50MZWz8OvOhD;yQ-1KNS&fv7<^kkY^z#^4mdJHP;` zGH`VPAnB$x+_fNZq>yY4T-eZm& zg<{bF`WzJ!s(KHSo!*YZ(!uluWjm+&N>EOsGP9Hw8Hs2qE~Mpp02^eF8aJ$5wQlhn zyBpsr*G}BIGNpW;GdiW8pw%svvuPJ;k#d?(vGu5MN1#WD?0MQuWG}EFVrh8=z94Zi zH4N_wp$BSk4zZqWspk-#hW~p$^Vhu#65qCIZ|-yYzF6pMu9NIb=(QASKqkEq@Zf>3 z_+9G5j$#Z-%#D0UCFZ96mj8aW%9p`RU7(XQ=|Ig&IySX^xcq@*<%%=L2^Ah|Q&)Zr z$#``%GbX`N$=D?)aa?K4@avx9&j3DHJ>;p!~9_V|Lq}QPq zmO+E(E^|`Ws8az5-D{yDO?`f@!HM3=MikqsTAQEkhVIlxF)Nu1TeTS3$}t{+Zs3=3 zGB`5AN0a$!J<+}N^?%?)=%kovlF&S3ZKR1{qp=QNtZ8fee#g>gQxsd^_QSCN(?T@XYeU&MPq`Pcqy!m{4`-rBIaXRButHd?3PUe}(1C zl33_&RO9q)bFXu0n9o2~ig&yb%X+c75xgEDpaGMligZ>}PJz!vA3M@DY@{%wLT<#8 zR_1doly!`9S3~BXr?x(;YCXP`O^CX&4`AFI&z0UNQAZ(=NbTA6$gKFqB|CJsIg=FW zWj?CbmmP4DsuWa|dwJ+U7%C35Bu-97o`KLNUQ=SIb23Z~6_#W|m z-MPmS&Ydxn|Mxs{am1qAl}=YD@4?fkk56M;f?JOvP+AI5e;>Y`5^*wX0J-P0I8j_< zYAQ{O&}nEwO>T))9M2ZD<&e?28#8J&a8VKuAQ_+s&-x%tUMWA_))%`#hz{z!rZ&5S zEG}R(v;KN>UMP)e*I+Lvd(!ZiS|tBQ@c`MqKrHp7sI6M|Tg64csfbq}_!BFJ;uC~Y zD6%>!KE<>dH71`NbtKSJKZT}}CLT;yVx9!JaaHtIwM-`o+Bs_n>To5;0(l~ANM>Y_ z4vbO^2`=-FLrR{|GlO!;PRISv?IEJ>5p$_Pw={9YhXdbt0}VeHH$%y#7h2Wt;jE%f~o zoTsHkHjj}%aeq!Em7xObDLfJx<(wST3@;AEanFn(g-lL_Gc%yg0N1AV8N!>RGFpQM zAky-&4zY5Cl7eb_ZXDZDgRa11!YUIk&n3FgXB6y;n?FaNRxq7QLa-?VWbk` znJc4@PM&q^TKAOI!q535Dmu3oZMzkcdA-y7zvsG@X^n*l$&Jde8hpg&wqk$ullh@k_`mTf!#az2A>JYd(9Pb4b4(vSm zTtwoms{`*j-!^6(IrBClE{6^nj6M69sZr8~4EhFx>#pbKg#0@+D8!~+Al_mA=GiK-?7GX^2zJ7h!A^xt#cR8?cc91 zPj%yyS3oV4C0S#ueej#AxE{gBzui=4`sl);Ir{;=8q%F}1r78_;f7b7X?kEB zeS@kQ6i69cs({;+@yc==R^+-i+R-j5+|uMv@Yl){(lH7m^M(taJ&e)6GhPInf=O*^O4)Uo?v=r_t4AG=eZ(K)oH>`1y?O6ITL7Tp#9A|Q0@4tS0ub6n z9*A;R{|-l%tWVhvHnjftmk#W_yWnny(qI)X{@e+ch0{D=6kIq*%qbJ`$gXS9^mWvl zx1`YQuuxUP-Fsgv*w~bNdhx-2-or4$IE-s1=xOkLZpbs!ej!^LTjFVUt9DpyF>hZ% zqyx+QXu9ffeyk7w5N;tB3daJqD90H!x9{)yA5hRm%33Op6-UZ^<8SbbyFzz{T21+2 zLg0EI)eOMpH`xJ!=E(>U_}CMzFi&n%5-co_w4dc1b*@$=%pupho4###IIBKa)fHYd*b|Z&_$Vu_>$ZuZ&t{id+B>}u2gHa z8>6x$4USZ<5fc7^=;qoOdCRG0>bctGw}sI&MyY72(? zt4MwL8C3&$eHlC#esFhr6FM%IXt1{%kw37$>3P&D9u?NEX8D34X-XakBoDtTq1nEC zM|vTc8GKRU!j2`miH&SK77HA6tKFL1OFx|Pb?GXSyhnwDYQ^4bGIiWZb)#308Tqjj zXPjgZz+MY}@W89@Qml5_YySA1^RsQkkuHdkqc+nxP?3qHn{gg1W1mbZ#iUJt`LmHF zBBYGxNn8SGAohvYyu*fG$;PtCxohoZ(0J17A9_Vf#f2t)E$+hYW<@ zI5X5)R$kDXa%5`zGtcf1k&MMZ0S6w2(c)n(hEXw6J{pxCzsnOik3XBF4`76S$;S3nTy9A#r*36nwOKc#a zx|ej?8Uh!Yfvx=96``Zt>n_L}|8sSvgGP2;)XN;-#RrV*Jrp;m@gBCo}*bUEiisSviljnaNP@hiQ|31Yu$e89huwnD4 z!6RuZxgPZfJj_iBfBga24%R|o+(#0T2wuSI&r0eMG|eQM*jlwyUuY3l(RX+^XZQSZ zGM|3%(C(N$`|zL!Kt0Oou|T|0lY(i0 z)hy9^<>UGPb#(P{N#A+A%|c5tQ8dMJ-~&QZ5h0Z67J^QE*eQ8VZ4W(26H+VB(!H*> zhWHRlg5nddhKf$Fx|!27s`JvcTWJ$gZ)K#}(p=5Xm)%--uUq&2?N52V3un;mlF(~63Rn>EcJ zt2>*-vD;1g>kUNw*RgG;lJJj5y>~NV?msQSV&%lU#06qp&8@lC!)JyfHS$P zy8~|gg5SIRw~%PR`BeJ|XZs`L=q+jO3qyf+`OOp@0HZu#t&Cr17?9QkC0vSs=bm0x zxKi3P)GnC!7-257oKUPop1}0jnGCxLXw4z_Dp~eWje#wgDoC)vO`hj#D?5x9z-_W? zxHGb+>Vj@*#E2aUrn?%Q{v_!rp%(wzv=xwdZE31da&Q>V5TzJj#83>O(^_jL_&|K4 z?^C2#=`F8R-`$>f{NBh&6~Urur_4iYfk}B^yf3Th7xn4IVTDp`a{`*mQVFd4*Sog0 zI^kd{VQsCRDNSX4w8w-*rLS-~TN0*TlNh;#Si>f2^bdpv>n;Ao4AhjKu;O_5wkh*a zcHZnAhhs8lI7!vp+n^xStbgxGQK9zsJh`9jwfkCc`~nmn0Jr5>e{?MJa}Wx>AJyY| zkUV(eCZ~ZmM7~VgLL+~3GYM@WtS=M82?RO`dI2Me)G^s-i9IqdT&Wj(7Jo486?TTn z1zw#rWY8SzvAdmHsdZpWI*-Z}C!QN6x=bOj+Jg6-5&1!Jm6+s$v`o8FKN71b|7s}3 zeP@oUhh9PTtf-7S8h*TG81mrB9b;tHPb%%}Wocx)^dv;wmv4R9I?4Jfd;<5#BK>DO z^LHw0ih7d%OlS2#MPW?CdB@xnOEG050e$u4Z<9}b|Ffti)SusQ3{&lgqspKQcZXynEm?A^mzjN_lS2Y}K~Uk_m=M+LxZtH>3ke5sys! zn97>nuMkgoZ0e>nr!T&$oP1^8I_r^TzICHJZ~>+yao*vp`73KR@f+J6C-|r4mYNGM zvG?Vtw8DzZ>40yoYu6!_&F#)-p(c)3x^%MFHkPK9rj-60+FtPGdu4Br7BS)Ytue~Y z5p=bRCbqbemn0!hSt?#^;=#kH5Gq#!(<3L7a@BD0+o0S6)1;gT-;s-(1Y5 zMT@LEo{Y8H9awlJ;3?f;;Q8ntbd`g-K(&%8i1~i5{>)3VsN8s=J&g#SB^qv_x>hO9 zGNW#5?2S(i&DU{^WQ53fM2p-DeRzjn^0_CW>i2*Qk_8q=usP$rd!Y*MV$6|sv}TH| zE3(UvnJA6Y#dL+d71W;g*XtdiAx?XvWv*IOlIuE`LeU9_{m}`9rvL>?jB-sXVz%*` zLZ6!{Tw5a8r^ev40gEKlf%%@_Y%v9t2~$#@v%ubM_qbTN+T9R*)}_b2E?x3nb;-TL ztlzpCa_eGafpIQtyz2wO!q}Hk8JE7902Qy7UF9%84kb|W7ClL1iRWt;0b|Eqa%N6# zu6BvIe$IIn*P8tswFKo(@4~kdv_6R3|C6p{djJoJm0cV#2@ zibG5(%A8K$(CI;Rp){7>=VP2!+Xt1`5P>By<3{=;pj_CzHD)-;jEsN4tpbbK@h8*3 zmvN+c@6#Q-@=A`Z-RB>=j}6)b-Ou2&^JV=Pi1|APp|o#j+~_^jO4KLWtu9QN2A)f2 z4Dyx26(+4sPS;kqZQ_1#zwru6LxDJ{4M$_s<2xh@Uo(xN8ZDH7m0@h|o~dektY=Q62h&J;cX5thw?(se_u1Svg=peCyMZ@=(+4FP zSZ;uz)7~WAQCR?ebkD4;XOM(`N*IJefTr-+FHB=eRsWqh(l%CJd^e`bbi3JtEtNF~ z+Vwf_hl5#cD+MEo#Q+kVRxZ3!gX?3$0%@Rqfd`So7X0WVA*ibzsPQJeY46HOG%U9C z%U<>M;4&_5I~y|d1do|rS%<2Gjmcbi1wc!yC)t9>@Ch7o!4GC(%t93ze{_z1!91yH zu%wU)2F2=&gkm=zImP-+t)U@+X zEX$tIT^VY$V4=0KtkwH~$AhuG_6;OE{Temh&Cci}T2VBdem8LpnmZav_ypqfR%(4` M6hXAI`d;7tKeR~-#Q*>R literal 0 HcmV?d00001 diff --git a/app/styles/base.css b/app/styles/base.css index e83e08cd..a3096d21 100644 --- a/app/styles/base.css +++ b/app/styles/base.css @@ -22,7 +22,8 @@ body { margin:0; padding:0; - font-family: Helvetica; + font-family: "Poppins", "Helvetica"; + letter-spacing: 0.05em; background: white url('../images/icons/kasm_logo.png') no-repeat fixed center; height:100%; touch-action: none; @@ -37,7 +38,7 @@ html { } .noVNC_disabled { - color: rgb(128, 128, 128); + color: rgb(128, 128, 128) !important; } /* ---------------------------------------- @@ -351,8 +352,9 @@ select:active { /* Edge misrenders animations wihthout this */ transform: translateX(0); } + :root.noVNC_connected #noVNC_control_bar_anchor.noVNC_idle { - opacity: 0.8; + /* opacity: 0.8; */ } #noVNC_control_bar_anchor.noVNC_right { left: auto; @@ -365,12 +367,12 @@ select:active { transition: 0.5s ease-in-out; - background-color: rgb(80, 89, 101); + background-color: rgb(9 2 2 / 0.6); border-radius: 0 10px 10px 0; - + border-style: inset; + border-color: rgb(255 255 255 / 0.6); } #noVNC_control_bar.noVNC_open { - box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5); left: 0; } #noVNC_control_bar::before { @@ -400,28 +402,31 @@ select:active { #noVNC_control_bar_handle { position: absolute; left: -15px; - top: 0; transform: translateY(35px); width: calc(100% + 30px); height: 50px; z-index: -1; cursor: pointer; border-radius: 5px; - background-color: rgb(83, 99, 122); background-image: url("../images/handle_bg.svg"); background-repeat: no-repeat; background-position: right; - box-shadow: 3px 3px 0px rgba(0, 0, 0, 0.5); } #noVNC_control_bar_handle:after { content: ""; transition: transform 0.5s ease-in-out; background: url("../images/handle.svg"); + background-repeat: no-repeat; + background-position: center; position: absolute; - top: 22px; /* (50px-6px)/2 */ - right: 5px; - width: 5px; - height: 6px; + right: 0px; + width: 15px; + height: 60px; + background-color: rgb(9 2 2 / 0.6); + border-bottom-right-radius: 10px; + border-top-right-radius: 10px; + border-color: rgb(255 255 255 / 0.6); + border-style: inset; } #noVNC_control_bar.noVNC_open #noVNC_control_bar_handle:after { transform: translateX(1px) rotate(180deg); @@ -431,6 +436,7 @@ select:active { } .noVNC_right #noVNC_control_bar_handle { background-position: left; + } .noVNC_right #noVNC_control_bar_handle:after { left: 5px; @@ -495,18 +501,23 @@ select:active { transform: translateY(-50%) scale(1); } +.noVNC_button_div { + display: block; + color: #fff; + font-size: 13px; +} + /* General button style */ .noVNC_button { - display: block; + display: inline; padding: 4px 4px; margin: 10px 0; vertical-align: middle; - border:1px solid rgba(255, 255, 255, 0.2); - border-radius: 6px; } + .noVNC_button.noVNC_selected { border-color: rgba(0, 0, 0, 0.8); - background: rgba(0, 0, 0, 0.5); + background: rgba(153, 151, 157, 0.68); } .noVNC_button:disabled { opacity: 0.4; @@ -523,10 +534,10 @@ select:active { :root:not(.noVNC_touch) .noVNC_button.noVNC_selected:hover, .noVNC_button.noVNC_selected:focus { border-color: rgba(0, 0, 0, 0.4); - background: rgba(0, 0, 0, 0.2); + background: rgba(153, 151, 157, 0.68); } -:root:not(.noVNC_touch) .noVNC_button:hover, -.noVNC_button:focus { +:root:not(.noVNC_touch) .noVNC_button_div:hover, +.noVNC_button_div:focus { background: rgba(255, 255, 255, 0.2); } .noVNC_button.noVNC_hidden { @@ -539,6 +550,7 @@ select:active { transition: 0.5s ease-in-out; + width: 300px; max-height: 100vh; /* Chrome is buggy with 100% */ overflow-x: hidden; overflow-y: auto; @@ -548,11 +560,9 @@ select:active { padding: 15px; - background: #fff; + background: rgb(9 9 0 / 0.77); border-radius: 10px; color: #000; - border: 2px solid #E0E0E0; - box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5); } .noVNC_panel.noVNC_open { visibility: visible; @@ -578,10 +588,11 @@ select:active { .noVNC_panel label { display: block; white-space: nowrap; + color:white; } .noVNC_panel .noVNC_heading { - background-color: rgb(110, 132, 163); + background-color: rgb(54,58,64); border-radius: 5px; padding: 5px; /* Compensate for padding in image */ @@ -602,12 +613,16 @@ select:active { /* Expanders */ .noVNC_expander { cursor: pointer; + color:white; + } .noVNC_expander::before { content: url("../images/expander.svg"); display: inline-block; margin-right: 5px; transition: 0.2s ease-in-out; + -webkit-filter: invert(.75); /* safari 6.0 - 9.0 */ + filter: invert(.75); } .noVNC_expander.noVNC_open::before { transform: rotateZ(90deg); @@ -630,6 +645,14 @@ select:active { text-align: center; } +:root:not(.noVNC_disconnected) .noVNC_hide_on_connect { + display: none +} + +:root:not(.noVNC_connected) .noVNC_hide_on_disconnect { + display: none; +} + :root:not(.noVNC_connected) #noVNC_view_drag_button { display: none; } @@ -687,6 +710,7 @@ select:active { list-style: none; margin: 0px; padding: 0px; + color:white; } #noVNC_setting_port { width: 80px; @@ -776,81 +800,6 @@ select:active { content: url("../images/warning.svg") " "; } -/* ---------------------------------------- - * Connect Dialog - * ---------------------------------------- - */ - -#noVNC_connect_dlg { - transition: 0.5s ease-in-out; - - transform: scale(0, 0); - visibility: hidden; - opacity: 0; -} -#noVNC_connect_dlg.noVNC_open { - transform: scale(1, 1); - visibility: visible; - opacity: 1; -} -#noVNC_connect_dlg .noVNC_logo { - transition: 0.5s ease-in-out; - padding: 10px; - margin-bottom: 10px; - - font-size: 80px; - text-align: center; - - border-radius: 5px; -} -@media (max-width: 440px) { - #noVNC_connect_dlg { - max-width: calc(100vw - 100px); - } - #noVNC_connect_dlg .noVNC_logo { - font-size: calc(25vw - 30px); - } -} -#noVNC_connect_button { - cursor: pointer; - - /* - padding: 10px; - - color: white; - background-color: rgb(110, 132, 163); - border-radius: 12px; - box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5); - */ - - text-align: center; - font-size: 20px; - margin-top: 130px; -} -#noVNC_connect_button div { - margin: 2px; - padding: 5px 30px; - border: 1px solid rgb(83, 99, 122); - border-bottom-width: 2px; - border-radius: 5px; - background: linear-gradient(to top, rgb(110, 132, 163), rgb(99, 119, 147)); - - /* This avoids it jumping around when :active */ - vertical-align: middle; - color: white; -} -#noVNC_connect_button div:active { - border-bottom-width: 1px; - margin-top: 3px; -} -:root:not(.noVNC_touch) #noVNC_connect_button div:hover { - background: linear-gradient(to top, rgb(110, 132, 163), rgb(105, 125, 155)); -} - -#noVNC_connect_button img { - vertical-align: bottom; - height: 1.3em; -} /* ---------------------------------------- * Password Dialog @@ -930,9 +879,7 @@ select:active { #noVNC_container { width: 100%; height: 100%; - background-color: rgb(74, 144, 217, 0.5); - border-bottom-right-radius: 800px 600px; - /*border-top-left-radius: 800px 600px;*/ + background-image: url('../images/splash.jpg') } #noVNC_keyboardinput { @@ -962,6 +909,10 @@ select:active { font-family: 'Orbitron', 'OrbitronTTF', sans-serif; line-height:90%; text-shadow: 0.1em 0.1em 0 black; + margin-bottom: 0px; +} +.noVNC_logo img { + width: 45% } .noVNC_logo span{ color:green; @@ -1139,3 +1090,75 @@ body { font-size: 90px; } } + +/* ---------------------------------------- + * Slider Check boxes + * ---------------------------------------- + */ +/* The switch - the box around the slider */ +.switch { + position: relative; + display: inline-block; + width: 30px; + height: 16px; + margin: 5px; +} + +/* Hide default HTML checkbox */ +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 14px; + width: 14px; + left: 4px; + bottom: 1px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #2196F3; +} + +input:focus + .slider { + box-shadow: 0 0 1px #2196F3; +} + +input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(10px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +.slider-label { + padding-left: 26px; +} diff --git a/app/ui.js b/app/ui.js index e60b4809..84e1585a 100644 --- a/app/ui.js +++ b/app/ui.js @@ -128,6 +128,7 @@ const UI = { UI.addControlbarHandlers(); UI.addTouchSpecificHandlers(); UI.addExtraKeysHandlers(); + UI.addGamingHandlers(); UI.addMachineHandlers(); UI.addConnectionControlHandlers(); UI.addClipboardHandlers(); @@ -146,8 +147,6 @@ const UI = { UI.connect(); } else { autoconnect = false; - // Show the connect panel on first load unless autoconnecting - UI.openConnectPanel(); } window.parent.postMessage({ @@ -178,10 +177,9 @@ const UI = { document.documentElement.mozRequestFullScreen || document.documentElement.webkitRequestFullscreen || document.body.msRequestFullscreen)) { - document.getElementById('noVNC_fullscreen_button') - .classList.remove("noVNC_hidden"); - UI.addFullscreenHandlers(); - } + UI.showControlInput("noVNC_fullscreen_button") + UI.addFullscreenHandlers(); + } }, initSettings() { @@ -348,12 +346,7 @@ const UI = { document.getElementById("noVNC_control_bar") .addEventListener('keydown', UI.keepControlbar); - document.getElementById("noVNC_view_drag_button") - .addEventListener('click', UI.toggleViewDrag); - - document - .getElementById("noVNC_setting_pointer_lock") - .addEventListener("click", UI.togglePointerLock); + UI.addClickHandle('noVNC_view_drag_button', UI.toggleViewDrag); document.getElementById("noVNC_control_bar_handle") .addEventListener('mousedown', UI.controlbarHandleMouseDown); @@ -406,8 +399,8 @@ const UI = { }, addExtraKeysHandlers() { - document.getElementById("noVNC_toggle_extra_keys_button") - .addEventListener('click', UI.toggleExtraKeys); + UI.addClickHandle('noVNC_toggle_extra_keys_button', UI.toggleExtraKeys); + document.getElementById("noVNC_toggle_ctrl_button") .addEventListener('click', UI.toggleCtrl); document.getElementById("noVNC_toggle_windows_button") @@ -420,24 +413,29 @@ const UI = { .addEventListener('click', UI.sendEsc); document.getElementById("noVNC_send_ctrl_alt_del_button") .addEventListener('click', UI.sendCtrlAltDel); - document.getElementById("noVNC_game_mode_button") - .addEventListener("click", UI.toggleRelativePointer) + }, + + addGamingHandlers() { + UI.addClickHandle('noVNC_game_mode_button', UI.toggleRelativePointer); + document + .getElementById("noVNC_setting_pointer_lock") + .addEventListener("click", UI.togglePointerLock); }, addMachineHandlers() { + UI.addClickHandle('noVNC_power_button', UI.togglePowerPanel); + document.getElementById("noVNC_shutdown_button") .addEventListener('click', () => UI.rfb.machineShutdown()); document.getElementById("noVNC_reboot_button") .addEventListener('click', () => UI.rfb.machineReboot()); document.getElementById("noVNC_reset_button") .addEventListener('click', () => UI.rfb.machineReset()); - document.getElementById("noVNC_power_button") - .addEventListener('click', UI.togglePowerPanel); }, addConnectionControlHandlers() { - document.getElementById("noVNC_disconnect_button") - .addEventListener('click', UI.disconnect); + UI.addClickHandle('noVNC_disconnect_button', UI.disconnect); + var connect_btn_el = document.getElementById("noVNC_connect_button"); if (typeof(connect_btn_el) != 'undefined' && connect_btn_el != null) { @@ -451,8 +449,8 @@ const UI = { }, addClipboardHandlers() { - document.getElementById("noVNC_clipboard_button") - .addEventListener('click', UI.toggleClipboardPanel); + UI.addClickHandle('noVNC_clipboard_button', UI.toggleClipboardPanel); + document.getElementById("noVNC_clipboard_text") .addEventListener('change', UI.clipboardSend); document.getElementById("noVNC_clipboard_clear_button") @@ -472,8 +470,7 @@ const UI = { }, addSettingsHandlers() { - document.getElementById("noVNC_settings_button") - .addEventListener('click', UI.toggleSettingsPanel); + UI.addClickHandle('noVNC_settings_button', UI.toggleSettingsPanel); document.getElementById("noVNC_setting_enable_perf_stats").addEventListener('click', UI.showStats); @@ -542,8 +539,7 @@ const UI = { }, addFullscreenHandlers() { - document.getElementById("noVNC_fullscreen_button") - .addEventListener('click', UI.toggleFullscreen); + UI.addClickHandle('noVNC_fullscreen_button', UI.toggleFullscreen); window.addEventListener('fullscreenchange', UI.updateFullscreenButton); window.addEventListener('mozfullscreenchange', UI.updateFullscreenButton); @@ -556,6 +552,20 @@ const UI = { * ============== * VISUAL * ------v------*/ + // Ignore clicks that are propogated from child elements in sub panels + isControlPanelItemClick(e) { + if (!(e && e.target && e.target.classList && e.target.parentNode && + ( + e.target.classList.contains('noVNC_button') && e.target.parentNode.id !== 'noVNC_modifiers' || + e.target.classList.contains('noVNC_button_div') || + e.target.classList.contains('noVNC_heading') + ) + )) { + return false; + } + + return true; + }, // Disable/enable controls depending on connection state updateVisualState(state) { @@ -564,6 +574,7 @@ const UI = { document.documentElement.classList.remove("noVNC_connected"); document.documentElement.classList.remove("noVNC_disconnecting"); document.documentElement.classList.remove("noVNC_reconnecting"); + document.documentElement.classList.remove("noVNC_disconnected"); const transitionElem = document.getElementById("noVNC_transition_text"); if (WebUtil.isInsideKasmVDI()) @@ -586,6 +597,7 @@ const UI = { document.documentElement.classList.add("noVNC_disconnecting"); break; case 'disconnected': + document.documentElement.classList.add("noVNC_disconnected"); break; case 'reconnecting': transitionElem.textContent = _("Reconnecting..."); @@ -746,7 +758,9 @@ const UI = { UI.closeAllPanels(); document.getElementById('noVNC_control_bar') .classList.remove("noVNC_open"); - UI.rfb.focus(); + if (UI.rfb) { + UI.rfb.focus(); + } }, toggleControlbar() { @@ -919,6 +933,48 @@ const UI = { } }, + addClickHandle(domElementName, funcToCall) { + /* Add click handler, will attach to parent if appropriate */ + var control = document.getElementById(domElementName); + if (control.parentNode.classList.contains('noVNC_button_div')) { + control.parentNode.addEventListener('click', funcToCall); + } else { + control.addEventListener('click', funcToCall); + } + }, + + showControlInput(name) { + var control = document.getElementById(name); + /*var control_label = document.getElementById(name + '_label'); + if (control) { + control.classList.remove("noVNC_hidden"); + } + if (control_label) { + control_label.classList.remove("noVNC_hidden"); + } */ + if (control.parentNode.classList.contains('noVNC_button_div')) { + control.parentNode.classList.remove("noVNC_hidden") + } else { + control.classList.remove("noVNC_hidden") + } + }, + + hideControlInput(name) { + var control = document.getElementById(name); + /*var control_label = document.getElementById(name + '_label'); + if (control) { + control.classList.add("noVNC_hidden"); + } + if (control_label) { + control_label.classList.add("noVNC_hidden"); + }*/ + if (control.parentNode.classList.contains('noVNC_button_div')) { + control.parentNode.classList.add("noVNC_hidden") + } else { + control.classList.add("noVNC_hidden") + } + }, + /* ------^------- * /VISUAL * ============== @@ -1085,7 +1141,11 @@ const UI = { .classList.remove("noVNC_selected"); }, - toggleSettingsPanel() { + toggleSettingsPanel(e) { + if (!UI.isControlPanelItemClick(e)) { + return false; + } + if (document.getElementById('noVNC_settings') .classList.contains("noVNC_open")) { UI.closeSettingsPanel(); @@ -1117,7 +1177,11 @@ const UI = { .classList.remove("noVNC_selected"); }, - togglePowerPanel() { + togglePowerPanel(e) { + if (!UI.isControlPanelItemClick(e)) { + return false; + } + if (document.getElementById('noVNC_power') .classList.contains("noVNC_open")) { UI.closePowerPanel(); @@ -1131,11 +1195,9 @@ const UI = { if (UI.connected && UI.rfb.capabilities.power && !UI.rfb.viewOnly) { - document.getElementById('noVNC_power_button') - .classList.remove("noVNC_hidden"); + UI.showControlInput('noVNC_power_button') } else { - document.getElementById('noVNC_power_button') - .classList.add("noVNC_hidden"); + UI.hideControlInput('noVNC_power_button'); // Close power panel if open UI.closePowerPanel(); } @@ -1164,7 +1226,11 @@ const UI = { .classList.remove("noVNC_selected"); }, - toggleClipboardPanel() { + toggleClipboardPanel(e) { + if (!UI.isControlPanelItemClick(e)) { + return false; + } + if (document.getElementById('noVNC_clipboard') .classList.contains("noVNC_open")) { UI.closeClipboardPanel(); @@ -1254,16 +1320,6 @@ const UI = { * CONNECTION * ------v------*/ - openConnectPanel() { - document.getElementById('noVNC_connect_dlg') - .classList.add("noVNC_open"); - }, - - closeConnectPanel() { - document.getElementById('noVNC_connect_dlg') - .classList.remove("noVNC_open"); - }, - connect(event, password) { // Ignore when rfb already exists @@ -1292,8 +1348,6 @@ const UI = { return; } - UI.closeConnectPanel(); - UI.updateVisualState('connecting'); let url; @@ -1383,7 +1437,6 @@ const UI = { } UI.rfb.addEventListener("disconnect", UI.disconnectedRx); document.getElementById('noVNC_control_bar_anchor').setAttribute('style', 'display: none'); - document.getElementById('noVNC_connect_dlg').innerHTML = ''; //keep alive for websocket connection to stay open, since we may not control reverse proxies //send a keep alive within a window that we control @@ -1464,7 +1517,6 @@ const UI = { UI.updateVisualState('disconnected'); UI.openControlbar(); - UI.openConnectPanel(); }, connectFinished(e) { @@ -1518,7 +1570,6 @@ const UI = { document.title = PAGE_TITLE; UI.openControlbar(); - UI.openConnectPanel(); if (UI.forceReconnect) { UI.forceReconnect = false; @@ -1791,19 +1842,11 @@ const UI = { (document.pointerLockElement !== undefined || document.mozPointerLockElement !== undefined) ) { - document - .getElementById("noVNC_setting_pointer_lock") - .classList.remove("noVNC_hidden"); - document - .getElementById("noVNC_game_mode_button") - .classList.remove("noVNC_hidden"); + UI.showControlInput("noVNC_setting_pointer_lock"); + UI.showControlInput("noVNC_game_mode_button"); } else { - document - .getElementById("noVNC_setting_pointer_lock") - .classList.add("noVNC_hidden"); - document - .getElementById("noVNC_game_mode_button") - .classList.add("noVNC_hidden"); + UI.hideControlInput("noVNC_setting_pointer_lock"); + UI.hideControlInput("noVNC_game_mode_button"); } }, @@ -1878,9 +1921,9 @@ const UI = { } if (UI.rfb.clipViewport) { - viewDragButton.classList.remove("noVNC_hidden"); + UI.showControlInput('noVNC_view_drag_button'); } else { - viewDragButton.classList.add("noVNC_hidden"); + UI.hideControlInput('noVNC_view_drag_button'); } }, @@ -2178,7 +2221,11 @@ const UI = { .classList.remove("noVNC_selected"); }, - toggleExtraKeys() { + toggleExtraKeys(e) { + if (!UI.isControlPanelItemClick(e)) { + return false; + } + if (document.getElementById('noVNC_modifiers').classList.contains("noVNC_open")) { UI.closeExtraKeys(); } else { @@ -2272,23 +2319,15 @@ const UI = { // Hide input related buttons in view only mode if (UI.rfb.viewOnly) { - document.getElementById('noVNC_keyboard_button') - .classList.add('noVNC_hidden'); - document.getElementById('noVNC_toggle_extra_keys_button') - .classList.add('noVNC_hidden'); - document.getElementById('noVNC_clipboard_button') - .classList.add('noVNC_hidden'); - document.getElementById('noVNC_game_mode_button') - .classList.add('noVNC_hidden'); + UI.hideControlInput("noVNC_keyboard_button"); + UI.hideControlInput("noVNC_toggle_extra_keys_button"); + UI.hideControlInput("noVNC_clipboard_button"); + UI.hideControlInput("noVNC_game_mode_button"); } else { - document.getElementById('noVNC_keyboard_button') - .classList.remove('noVNC_hidden'); - document.getElementById('noVNC_toggle_extra_keys_button') - .classList.remove('noVNC_hidden'); - document.getElementById('noVNC_clipboard_button') - .classList.remove('noVNC_hidden'); - document.getElementById('noVNC_game_mode_button') - .classList.remove('noVNC_hidden'); + UI.showControlInput("noVNC_keyboard_button"); + UI.showControlInput("noVNC_toggle_extra_keys_button"); + UI.showControlInput("noVNC_clipboard_button"); + UI.showControlInput("noVNC_game_mode_button"); } }, diff --git a/vnc.html b/vnc.html index cd5f4b2d..6531283d 100644 --- a/vnc.html +++ b/vnc.html @@ -86,329 +86,434 @@ Loading statistics... -
    -
    - - - - - - - -
    -
    -
    -
    -
    +
    +
    +
    -

    +

    - - - - - - - - - -
    -
    -
    - Power + +
    + + Drag Viewport
    - - - -
    -
    - - -
    -
    -
    - Clipboard + + +
    + +
    +
    + + + + + + + +
    +
    + Keys
    - -
    - -
    -
    - - + +
    + + +
    +
    +
    + Power +
    + + + +
    +
    + Power +
    - - + +
    + + Clipboard +
    +
    +
    + Clipboard +
    + +
    + +
    +
    +
    - - -
    -
    -
      -
    • - Settings -
    • -
    • - -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • - -
    • -
    • - -
    • -
    • -
    • -
    • -
    • -
    • - -
    • - -
    • -
    • -
    • -
    • -
    • - - -
    • -

    • -
    • - -
    • -
    • - - -
    • -

    • -
    • -
      Keyboard Shortcuts
      -
      + +
      + + Fullscreen +
      + + +
      + + Game Cursor Mode +
      + + +
      + +
      +
        +
      • + Settings +
      • -
      • -
      • Ctrl+Shift+
      • -
      • 1 - Toggle Control Panel
      • -
      • 2 - Toggle Game Pointer Mode
      • -
      • 3 - Toggle Pointer Lock
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • +
      • + +
      • + + +
      • + +
      • +
      • + +
      • +
      • + + +
      • +

      • +
      • + +
      • +
      • + + +
      • +

      • +
      • +
        Keyboard Shortcuts
        +
        +
          +
        • + +
        • +
        • Ctrl+Shift+
        • +
        • 1 - Toggle Control Panel
        • +
        • 2 - Toggle Game Pointer Mode
        • +
        • 3 - Toggle Pointer Lock
        • +
        +
        +
      • +

      • +
      • +
        Stream Quality
        +
        +
          +
        • + + +
        • +
        • + + +
        • +
        • + + +
        • + +
        • + + + 3 +
        • +
        • + + + 9 +
        • +
        • + + + 7 +
        • +
        • + + +
        • +
        • + + + 5 +
        • +
        • + + + 5 +
        • +
        • + + + 65 +
        • +
        • + + + 5 +
        • +
        • + + + 3 +
        • +
        • + + +
        • +
        • + + +
        • +
        • + + +
        • +
        +
        +
      • +

      • +
      • +
        Advanced
        +
        +
          +
        • + + +
        • +

        • +
        • + + +
        • +
        • +
          WebSocket
          +
          +
            +
          • + +
          • +
          • + + +
          • +
          • + + +
          • +
          • + + +
          • +
          +
          +
        • +

        • +
        • + +
        • +
        • + + +
        • +

        • +
        • + +
        • +

        • + +
        • + +
        • +
        +
        +
      • +

      • +
      • + Version: + +
      -
    • -

    • -
    • -
      Stream Quality
      -
        -
      • - - -
      • -
      • - - -
      • -
      • - - -
      • - -
      • - - - 3 -
      • -
      • - - - 9 -
      • -
      • - - - 7 -
      • -
      • - - -
      • -
      • - - - 5 -
      • -
      • - - - 5 -
      • -
      • - - - 65 -
      • -
      • - - - 5 -
      • -
      • - - - 3 -
      • -
      • - - -
      • -
      • - - -
      • -
      • - - -
      • -
      -
    • -

    • -
    • -
      Advanced
      -
        -
      • - - -
      • -

      • -
      • - - -
      • -
      • -
        WebSocket
        -
          -
        • - -
        • -
        • - - -
        • -
        • - - -
        • -
        • - - -
        • -
        -
      • -

      • -
      • - -
      • -
      • - - -
      • -

      • -
      • - -
      • -

      • - -
      • - -
      • -
      -
    • -

    • -
    • - Version: - -
    • -
    -
    -
    +
    + Settings +
    - - + +
    + + Disconnect +
    + + +
    + + Connect +
    @@ -423,10 +528,11 @@
    - -
    - Connect -
    +