From dd0a3042cee093616fca9e07083e43dd6c4fdd7e Mon Sep 17 00:00:00 2001 From: tophf Date: Wed, 5 Jun 2024 16:34:54 +0300 Subject: [PATCH] doc: modernize fav editor guide --- .../editor-1.png | Bin 24830 -> 4818 bytes .../editor-2.png | Bin 16975 -> 9296 bytes .../index.md | 66 +++++++++++------- 3 files changed, 41 insertions(+), 25 deletions(-) diff --git a/content/posts/how-to-edit-scripts-with-your-favorite-editor/editor-1.png b/content/posts/how-to-edit-scripts-with-your-favorite-editor/editor-1.png index a3bcf6c21f5ee74849c99b7736b56758f816cef7..9e3ecaa0b6ef8fa44f44dbbd22b56f3227781e8c 100644 GIT binary patch literal 4818 zcmY*-XIRrq^L9j3n$i(Mks=^PNC-tmkQSs%6$6OWpFlzfrHB;i1`(u$fQ4S8hHyZd z^dOo@FF`s;;ER@`N>+Ln$hxSzx998E zua%XR4TMJe7Sy#?rNdYs3o>czrlYnD+6WLAlvb^CdP947~}Ka-bnc}<7I0TD1m5O zLS+t6VhkC>)CPrEaH zi>IG6OV38i0PM%h^-9tee$~lw-8a*}>C0~h1N*$-{&{@^7AcePRf6-tZ5o0> z&-APpNp9M^I&41`0zH}oHVAIC$RN_@^520ED!tpX{#(RK8^pJ!TfeO zaJ`Vj_4#E95=GnBDR)kF!xh)w4T<%r0u>*AJR#Q0KJr5 zAeFMU*+uSy%y$@^3OA{Z?cb89e3P>7*?4$JV}rIf$3>s;>bfo3eaFQHoW7r`wI%<+ z1k!e9ogfV@)!8~-K_%~g$!2Xbx0jT|Ih|!hsC?+LD7nibHCvH3cC7MUY46YY!?YO?(`D(O~+izmf1*;!1qDGn| z>G?_nGDpWZAeY36B{WC}7wOEw-OFz91~KfJwu~pS($Py5Hgz*P*1x_81F5%KWI^TY zD!e-!{7PE$!3r0mlHxl?XtwF|F>rmsQe?`=gQS;V0^(zf;zV$M&kMz``Y${kz!a>s z?9O%d^A#OrtgJ`^Lv1OP$$fFK*4b9YLTrMFtTr@+Fy*SM0AL&>fo%!8_?^pdBYrxU zgA-u#T!ftVf*{+44jzg9dH+YBM9e9V#KFL5_%Udh_sZVYH}c)*dl%2nM(f+TCl4S- zQLX&upgTijnBv&W+AYFF#bde;4*xx2X+pFgx?13ZvQn|Ix_6lUk{y$EKbLM{pQr+c zDQgWrIpBynax>_AxO(@L<{u7DtmEXm=jucYn~(=EA(@wECdmq$O3jfp{Jz~*&L49- zz0te;75_CsbvXMmmxD7~o+qEINb;z|F^Of$Q^A6>#Zu;R-1F~`M_IE-K0No(*u8O& zd-hN&m!*;+w(u1mQU%rS%-fObJwj8f^MurgTWyKgc)pdYdX#m)&V-*vjmpNIgIzHb zeBc8~XnN1|2XTHMCemNzii58$=rT?^8jFk0mmZS6zA2wrm%3t03h_!w z?&Q+?-D^e=P`d0a0odRA*rXR87jgXGN3|_VVJXQ(3x9TjACEV+o|y`-x**3=k`ryV z%UcmKzX1=8Keu~Q*^FLFj01}0&{z9N`k(A%!$^K{&QBNWfgU3Sw)PFh#ucHoFW&O#i z&4oAh`2zd#S7k{7gD`iDzyITJ!C+B$LQ_sH{MQX(t7ezaPkNP4JfYlVC*07{5`&p9 zEhifABozp9tWEg}6Ru}a{8#-i0F?ZKIJ?61f)fF?32z3X{rzL>sG6EOpwm+>Mny$p z`*@sjz^TuO&EGZ4oMDmg3g}xW$w4G#?We_-eHO)QQy%zXlGlb{+zl~gsxUi`Q1IEb zfM$-`;H-AaXrF~n^w+Uo199;|qTId=spTpO+z=|X4h;&0FR&l#&)B=-T>kN{kcZZ$ z!Xp(Pw>iNhv|jVRI0-0jHPH+jw0f%84ml4%FxAg_wb~nNQwf(b+^|$Ejr>9d;E#q8 z+eGMPyFpjmj@D;x%9QS6QbnQ(m1sm*V6vj@@VS9W0l|IpQjyC{tMHN_;5iFJ%{ck zDo~#FqeT9jK#?!Yo&TMf{~ey1MCIZ-n;NB?L-ju+>SY?sJ#TJ~`vn478Xox_S)0qf zHbV<>zg;lpl;wU+QJ{3`$BlN62MEvR{47RU8Um-r4KUXQ?&eTi4F8=8pQ(fn+HQ3A z{!>@pS5xoF?fO44IT~`kbp(9c*|Ub$OWV5K>61e;w*;p`raO^NOCRgKJ~wl46rcC)W+uNuGv7h#ft9dFv#kY5YUg z=_xfomS{q5H%U0($0AF^;9XdHvcG_D`3kpdPi$wroqavA3?rgh6wEp3NeQx)BvwW} zi%{S#)VFFVf%fDf8o3Evtqm#tG=Ci5orznUF^Tf7JMOF2KDHPIgr_ZO;Ytv(Xsp4( zSXC`=zC63gFamOIT$g0+F@V9H0RoYI)GhCfr~9Zk+Jdzu5Q33S71Y`2RkxDU{V-$w z!NR#ikMCa`s%-6C?@0rir^pW7C>HNguZ*vAhxE*!rLM-FC!NIy3z<|NqUte zVDk#)hufm*K)#HV<}uiTVgg4EiaV1+N7WNUzO_u#^d#*t?)vwsk%WXwdy8a|m^+vn z_yt*;rgp-nsybX_TjF-Q5Q|rx7xiFXh`rE^DouaX>44@S4U;!N@>47i_16t0z{A za5P72u-V!=PMM5&mlvJlAv9#7c%7_?WdANFh$xkUhC-5W8c`GNrH%Vu;EYSxil0P3 zekDhZXn2HSKUWPgG?j53>_Lr6(w%IYKRS8OL{3MAHW;gIY5Bd7215{&ANWvG@* zCUYk^8k}2S<)lW%_>A>Fg2%`|4ApzCe4Sr<)K68X!KhpTQu<0Url=RK$UCbq2e;}cI5xvTXmZ}(85arf0VcgzV*f%uiwL@e@gx=Rq!t!fq_MvOv|{E#YQOEhJ{^OstU;7 zYK@N$V6*P;RbClRLDkdONTbj;!&b<;F{=>u30$isHui6p2)IB&LHaZq-=T{g|TG{F<7nVdOcQp24k zL-kyKqf$N-D6~Yb_ypDf3?{0Qxc}9becWZS3g|EV6UN7{_D-zaPd{*Vu(6?y#@PMr zRT(S^Dv|tT`&OpUv$*pDZ~ovGYcHiIw+M#~tE} zzKCX){UIpdzWXAVyQ^+?!Ur41RTniRC?J0|iRUwYyXfl;wxnrP#>mQdsWa8rymU);h0@WvTc?Ml z5wbRy4ZhC6ZxCgic4uh9drcZ24dq4TbDhp~3}?R)nJuV^jVo+j8;CIaxB;k)?P7LsA2|{a3+(UkbaLsi5ds#&W$qnSN6m2pk=L9(Gd|Z; z*ZWgn)=*vaS`<36d@6>Bde2{Rjse_14S7j@D$$8kgmDcm= zI1KtAF<)cro0=M0ad-d{9joGAaYyD|wv|zCnorFOe>dysaoDslP)QT+V71D*_ZVlB z&yAHnbc6*fLF~k2TgE5vT~R9h$C8446Qx^ggWDJPp<~Jq47Hp+XB*6o(kMpJ)@34(T%%9XfU*PmRyAf(z$+FMosY(r?q8Lq|7FtoojO#L<5D+EU75~ z&b0L~Ao*w~3Noor@)w}?sd?E%UpZoS+W8Q;W9euWr3^ZAiqPF~k*t4fGpx~JuqCmj z{oew{*e+zl7g_g(EPU~`5?zSEP=FkVK@7iia?$w+@`=fu%rzzjG4z1|l@?_hE!U}S zc0LEgbsKEtsD> OAXB)N(Q5;@g#QEbK1h84 literal 24830 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 diff --git a/content/posts/how-to-edit-scripts-with-your-favorite-editor/editor-2.png b/content/posts/how-to-edit-scripts-with-your-favorite-editor/editor-2.png index 9d634938697b6732dd715f038c7114f42faad6f9..f0e4be3e3edd21a41b002db263cf63c7b18d3e8f 100644 GIT binary patch literal 9296 zcmbVycT`i)w{MUpMHH!_TL6_}AfY1&D11SRR4LNo01|rd9i&S&3B7j^Ly_JDR1$g% zO{I6FcXILjd+)CG)?4?Vd-lxPQ}%rJ%&fg<=A1Q=uT>Rpku#BlK%iTS|Gdxufo=dG z5P{Q8!t0Xl@5vw{ zY7{KsLD~f?czkFVJ`@DPFBJ3ygL?3IP;ie%?h3x^x-7In8-&NNsDnTn*91}@8yhPv zEe!=}Xn;aH4wru)tbo*0Un2*PralHWEuS=boE)If5BnF=6+ynAb2UI|S?M5gmNR zIl=kaZ`3tod!j-?!6=ZnhB`VBVLmR?GdY5|g|Rr~u1!aK~_Z>2SV&Sfs(-hJupPKjj)>(ul#km?x4*J?1|S zgdbx}yt??XMRch0^7gO1IiBuGN^=@y+?@4Vx!)!Ag#sW3-JFPuJqxx9q;&f4yOksVF7*OD{$wYqaqKSjkNj=H7vuEpYVG$+?~2;>+l~_P-LREP_xPFY*kLLIOB&&B$LZ|mE#>Ao1#zgyAJasOJT zB0LO(`db4ozxJIO0+2Y_64bjv@H}s8e^I;U!^%lQ_ZpVIreqcm`2=>W@1YlS(%1F zAs6DM^_KE9VwW-OkG}FWzHydf-uG`U*S_)9+Uw}c&%$eK9xje=o6ag<0_!3Mi9a{p zPA-sV*inZ%cpJ_bPoGP202c5OiWE9bEBRTD_=z!b_g%aI=+PtLABy~;hiQCoMIKJ&-kZ2(96F!d?)vEx<8ujIN zP#yX$`mXE!(Y-q&nk8CK zQj`ib{@09ry=+Ozq4)^{+9y3tNk9{$6@|QJ&u(;A+%S1@sqb!yX0YFRs8Pq{mhRD6 zXLdweJC>a_Lb>r0vcdR+QtMNbLH$oVt9T9W7zr=kCxDtP^;G5!#J$&8BUViEbd%TX zwD-toKkA>Fp6zJ}_&6iFt&`hZk)bC)XFnN7%RX8bwP~~M>#SmV{T{5MLUPG8)q4!F zp@|3=*dJJ=-QFS(`5Ep&Y4sFOZ3GCMpL_fqJIImL$55JQv>2AlgVSiz=J|y4Jr%(i zM}|J3>X zfg(~CYEMd!wm$Eg5W>iit90qoL#HA{X?|!RT27YZqj2WEygei`H=v4*1Ze7d&M%L` zG@zvD_dHhN&>Y@KT(rYMq$B}GzrXDsqLvFr;ES10os?)Vm!m^JMu7Y07HeTCpSgqd zzJBsVyd;xLjYlE{9o~aCpVbZ$_3yDTJ*{c>y^F9DGP$zp?NUxGgb|>gp%p1bue1m; zCMp)ZDCCZZ+}D`6PL)7O>*|z}2s)cEqz}k?t8~`Y1%0l z?iw_RSR7eBp`JQj-`r9Se5xGo>8Zxi=@L9S&5@ZFlZz-IOcD1C7CoTl4eeA7U9ROaBZ>bE%>y?J*@nxk+cnBT-05~cdO@d?1ky~t+SdT)M5d~k zM|MO$zaEC+4mob4Y0UM)J)*#Ka$bUWs3>~ucKC2eghG@tlZ%4Pc=K&koAo&zW|t0+ z?EG}E!RrrwTN$xbqEq&-t@nIg=Ojxs1)saHvfyT_hBRpOQyE|metFo6>_T5;9z*mMGDQa<1mP2t+8US3S4gbib=JK z0k^)B9{bZ0()pwPc|DQ6$#i1FPrF?oLyr*cM-8|TCoWj&AeiLqPXCe85`SwY}vH`S{Qs-o5}ILeKhx zxZN)WRjH03#(^v{peVq5BBVlDJU_;1vD|^SS9Ze2-18#>XV8w=ZAlv9g3yw+Rb>BW zW4mQ7KEp|C;J(Vry zdhBjNIuy~OFlS(|O$A(dSv(?m{|CQ2gzE;8B`hWjN!YdH?}59UC3h$Q2v>>fch{-~ zcP3~$nCYU3i!f3}(7cW&Lipiy>zO)FGgCx@~Dz$WGIXVY@bwH$Kpxb*PDR(yTIH&k?G<5W`gz+66GC_+rt%Z(~^#K zU!HDgmTlA*p`-WRx;KN|f7J!cB4P)2P@e_##Je}|$&)R5{F;jaAKJVN4PURz4|@J& zOfDe);7|iY3mseN-PAE)6qD}Ocy8eTZ7`$m{j$X5MNwV)`GP6XwHg(5iS-hcCaqDmJAQ>DsKl<+p@T zit+qfIq=E2tDf$hw0eLf*nQ3ZtW9bx@#d87eO&=i5$C;#)gKkJj>`Qe zXVJIuNboe0ic7Edh;q75qUS$D@RZ5t9fMEo-3;qq1uOP|TLV>H_uRw5*_4bEruZoD zj^b%Lh{XBHE5dV({EUbEGuuR8R*i`CkEde9p=NvEkEKO8TpWD}^I51-J-qohHMiS) zAKmtRvA6J=ajz@r{vC@+bb`y?hNjUQsfa~!Tlssf{0FH7^Z!hxe=%hUvoI&u7+3E9 zm>19`PL<}A@WRN*Rg0kz{12v*J(Yu-A_#Oo+eo2b$Y?_5tbkcfTx&&&$xmy3fvf-v zUSd5bfq9@s+AU7p;Y=ED5G`@*fcS0by1GP@sMOjm%s$>X%(moDgpt$W=Nn05Ag!CS}-a6MUR!?RqMfmcZDRu}JS z!s^i`v(~yoHr@?PwVm)uZi~b7M?%DQNSNNmv~o*x$M#t$el_puYS^As&N@OU+PZ`;_X5JAbgy{h z1ICQYuCyyvUMou=a3^o14D8G_t5=VBm=4c&E5vP}t)_m+P1@)7k3JnU&$K;5Ab)$% zZr`YhpO|yK*~Xcsj57pdsSZ>ld4Wo@`0vAy15dq*e(yZ-kKT>XXKZBuiXVKbue=s5 zu+XqLGH5eAx;t5F|{<_*? zPQ#Uvpqi~jbR!>7e7VRTS`Xz{*Yd*T|4^`%k!xBd|huO>-c{J0Dd>Tsae55L~Q8}z0ia`BxyPXX6IV?;xg z`idysv6++vtm{1>UP@)qM%I?NW_P!Kz4C(pGm<|JsC?x|g~=9jg$0!QAq#qj5uTV~W3>A#hKdk+GnnK54cS5K%s2H7jbp%9!`V$m#0Z&o%BjZ~)NY}e zF^5TA`S0 zc2hT{4{C6toiaEOOoZVuA;DymM&ag6Gc4>b?r*W`&mYGo|Gdc)XT>SZ?@o&rs?Q(R zP8>-(i0T&Y`SgLZk2LMtt8;7fbNJdZ)Cq?FG^t?7AOB`Ux5!_(?&N>_qot!!OFUIr z4JIZnZB!-34RC9byzHyAop~(FG_+QHy0N&4^~Ia)98Nc|=wQh0wVc0{ial$NHuJ?K zcz9n<=kVeLfTM0{L+3PgO}f48(K1i{g*c>=HC(OR(4_E8jy&rTK#yH58A*C)(ed87 zS;Q(iuuk&IQ3@v^nW<<4?}(uqQK%Y{=fW{#Ju&@5aS4qL z(0HV4re-YQ#tdbmZ_RuR^rD40z1zFpdhh}&y(fZM zhdj%!)}w$Pe<_h~87lv-rm#>AWsr(STRTa_&mq;bb+4omPf-(X&IS=#CE)-c8W!cE?=d2wpZsU1pN#3^hiZ( z=^*jQ)N1P*^uZzTY9Iz?M`c43!Uzre*fgbYYZkNd5XJeMw<9KPY>y!rQKzjLSX*1- z7Mu4*1RfUW(eaB{oO*~7!S^BN+y}DozP?jRH%N*G!56G7lI;yiQl(jw`fFkT$I4_p z7DYDrr7O@qMh`>WM5%*t@`&&Jxmz-B5Zent23gBzwl4Y_a|VyKHA@x#Eqr0Lj8rr2R_W^niNL769YoH2_)J7IfC%~ zDkTBHn94Ov3pL9>~c~Z&)T@&co+DpLB;; zAcRn!a#@AZoR=oZqbL-%ym~s282XA47t=fG_4Dd+J5!y!$2&33f!f0?dMt};;_SRLZQ?g7E($w)-;Q@U%v~#mkhqdt+s{$QAgsJBGJ+s2P z9{VvA5xOAqJ3W1_ZpHhjEwar^4f!cP0eTE#5TAB)w8<0n_S0zG(8BGAI)@io)%9;z zjp|)%TZM&4JAT|b8Y|?3mzb(oB-Is__AA|PO}7)Gm#`6^iS7w2?fq=CeC4ggXI2IA&+vG1uSU$Ui9|1y(Bs&MzT^$_(fd?y_QUfst7ET$vxb1AaMj z8>K?w%@%z=z0Gt7Y^pI!?QT0W1# zIBUJ*UG18@FRS;r@}#?1i?2&%)Dh^l;3XJsqft1LlJn5)h$(PoPC_N4z9JZzQf?Fs z_WL3nzfO_0EBRXA=mRgm74UhRxL z5+Hi?Q&O<9Lbp(ldo63zI0oWUu?e4OXf07d9@JJ;BVD`MppQ#g@0Q+EU-UDV&x%+w z)Kbf7V4cn=Of5fh%Nx;gff7ay`cP$>n}C?237FCzp64A`pD{<+c%QK^4vR ztk{}li{UVErpCArl16H9#03k~nU3FPov0QNX6D_1IjtSdlEylKA*CSf~690#@tgkV9 zV$VzbL#oq?09wVduW6MpfwUQ4DQa;hE(5Qfw~<9{Va+4{rOG5UP6=5st(Gs5S?xCcd4N17dtqxle@=a5et^MP9#$wFhHm%Mzc|9Q}@z7HykSE2JuSzq`4j zngQCv&~NSfro^={vL;4?8Qc22j%geX8viU*$(L_Q1oR2mPBTrkhz<+hKx^mf^^M=W zp5+^VCp-`g3E5^xvpv=ArAyXHJ1RO%NeU0tqer`bpM#)@Cl4VZDWr&kz0@vVpwBsY zsZTMfiqOk6NRNxxCbdgv*4lWnm2#;emnd5O-2GsW@16<0A`g9`TVCF*ZL~XlZ2O@! z5zr35g<-5Mwm&HT{M>U?n)pw0ien4`dfYl{_R?l{RemLF zt0qS3)RZ2&rYV-fOUcx}xgC~H(!SZhWXAUB`dIhx3622z*TSqF5q#hBzj&VsNYL1T zgK%63x@R~|*J+o>K;qY-O}Uy$gZM^b-JFc>@~25=6wo*b@VyU@bL$IT~}`z``Eur{ZuU%By-tZCqc zqM&3x*jOWtsjkM{8RCJamfAE(y$E-G4XdEo%=c&4=n_72mn)zS+_SMkBdgAAIBlg+VdNeJd zgg|=ukohuVL^-N8{lFWcF8zw(Jiy0lI!TnC*yM9ozAGq*Dp#;mycHC=1~*IUk)3aZ zGEFdwB%R^|EC(8nQ|Z0*5TWyN1N%Ya!>X7+i_LG}#Wx)1U6m)q6b0lWqk%m$7{!dF zv&T`-5HB`;nZ06a3cjTMXTt`_ipU^;5ca0b;HMh1+?cY%V;41+SG|fwYERQf;HGx& zz82BX{1BO5u)H}b#iG+p*oXo3#)2}m1bdr36JCU?^DBD1D}jT*JOB7vW!k24v>eq0 z-fK4;{nT5%>1R_%t)*oh4g_8k$eQGu!hzStfJ|6Kar;po*zP`U0<3I?mf+v2y16jc z)~fI=+n$B&?DzTKqexz-5ugZAIpAhG>1&yy*32oTP2AJOjnZTwEvW$NI zyz?J4m>kqI4b?rAFW7L){Ayqb?t|i_>wEY;?)0~t((1lmGb#205|uk>tcGT$TQ-X{ z`1o^YMF^Vua;V(Ow2o>atif1`+qSaz%&OC15OcewrN#MfRSE7C8GvhYU!CA0_n*n#R-U+kO-Bm`6Wo}EYD-q5x#Z+r| z%Nr9D4h&sSvo43Et(@CG&b}PNoC$deqOSj!hmu?F_#jXjbX zzII%cB1$q%=G?bPfwxW@BZlHK!5%YGM4#Q?(3 ziAgoFaq+MMeXMJnnUKrJJX}94$sN6e%(rpBeC7aznG4&*aoV7mu!0xP6Rf;rygzK+ zn`EIvxmOoT=<&6#5&zn)%qKf{jW*g~&~D_SPOOQFO0g<*Z)qF0FX=~S9%~#~N2r)w z?0A-#%uo-~*xJbLS&H9%&QpVCzGW3Z{EliF7QK(^<`GI_+7Qcvy^OuxX8h{GAJ-Ab zJy>DE#76#O=@l4MT5Zf3)zD`uvH{fH9H}U}v@Cx*Z1=;|!Kp~>UE^4Ekd9^P4 z*R0yaI+7zvAF-^<%EV>iHn{Uxz})9k2ZGJ@%^G4y3MS6lUcOSC*&MCDzQg6GA!TNLPs0bpxHz`u3C3FbghBQHHgwUk-4xtwTDFGr~ z2qg3tLTDk95IFID_jk^>_ucn?ckgq4=P#HuYt78E))>!to-q=kt*OFr;l>330KlO7 zLP-|@paKB^XFi^zrSz1Xxw;Dg+ytm9J<<0|!_Lh)a~P%m-c?c9V|^U`!|D-y5h!~7 z*2RIdW7a=W(c!j>ERDj^)Df-BroM4IRzhd1O3c-*IIVMMRc)sZpK|Ox-?6W}+9LUY zHsXuYt#dZCzCvA$B7Ph$eU?AlJvZ~3Ei}E242+DtRnc1OFSg6erM;W<@dut3PRqx2 zATufeAXL}y`6;gb1Y4I4KSOD9ot$vDC!892-J;C)5_cy%0H7FgsfF@U;<^9VM&AQf zw6KWC6|yy)JR%}E<@AVKm~x-O6+4udVm@_c;iq*!tYtQ24B^XgLK*j`!QvqD@X%-3 z`N4w+lXsk?2;!0r)Ra3!4#1Q@_v4g0p~K1KIW##PzeCJCJ>tf^wwpBETFWmeDEs8g zCMoLss|ILBe@8^5j%O&FUc^nq1S-u>x&Ux%oXc92A5e#cfIt;%9{wpUhvK9`WF+VE zhP@taW1L}jCTNMVE?*X`@5MIIeICGCzZFuZ!FIA!U|Z(w)o_pANy>rca@51$QzqX- zJ>4uXY!UY-VhcpdurUwA8~w?dmX*<1M2$)#*7e}`#WNR^fI;&? zB_7ATvqvN>F=Ha>0lNoUpFBk80W!*!S8(I&0O_CX4Ifi=ClGOQAyr(Vu4?k8Gf6~`*!ha;`!Z!3MWDfceWiJk z0B`Zzij^=OvsV7L9cv$RpKD`bY0q^!_dLvfAo7uY@9x#s-JG}=H=(RH`MwHLoS95o z-fA&kfZpwQPxzTwa=g zeBvpGyW(&Q?Wm>GJ$uO-W>R+5=`il5|+qeD#;yCNEq*vY^``0w(*bRWH}wy#5V z)C~iRF?ztd3QcB1;-Gdkxfqo|&j3pq1jdxmQh#h9UGr`3%)^y1`5fzS@k|Xg((5Lu z>~%MMFDy-*%jM5#l3-Py>W_~OfHF-u9J~?a58v+8_ic?SFwRtauK5{SV-@juD1E75 zaiYzf@HT72R7FEDEvhPJAp7A|SEsipw#j82VsrM3q7+A7%&|(GWatBax3NVBlr@Kq z^qVn_ykr){v%3}$$pP z*t5>v>={-sd@;bSRD=~Ej$TAzeR7ibX%(I1e50qMFLwW`Ag;!&y(^;1l*za6rL54Q z`P;{`x14oj6TdOAt;lpG(F0gbD&f0H(KJ3;th6bE-cHt)e?4u?q%f@g=;u-NsJI?2 zrhIDm>ZxZ{+wy^QeSo8^p|}Zi2%e5k(64&R(0+_t%rpdAM}LLa#}kgNP%D^jafUw7 z7Ic@{! zd>0LDtzX5ni7^xkp~-CKc90$LBvn-0vS&Tq^%pRHg-f%v79_yz@KM#Kc$dzF{TC=G4`v&E;_jly$g=yL3_P$ikOCv2dCL5V_{c|5@~c zxAqmpzWt&^QvLfn06~g?2NqeEfbD%%OWTH2Q|+2Os>QG%8K6%W7&Ufa`h)N8cYmCb z+~cO7;Jd1|dDB3Jt%q9;UQq=5J0wG?iVB&bxH@x_;vZPnl*|(aNTH2f!!JIAgpr`L zpPdgS(({SPgJ3C7;_SWiCx9%)PI+Lf@;Am&Z3g4Y$3t1t0oJik;olUZ#Zz_6*S$=C zFmRMbL4oN5_YZ_^UzW;So=;78F&I(pG3MOa|5ed|{CugM<8qGjGvv0sTc=6iCim2l zgIBs(nJQ^E^wE>KPZHBPsDxla)tc;Eoo8-7vfY81n7m4ElIOW5AD=hZ^l)sNLGip2 zgXVqyP`H>MJqp}OO53QrUvrpizPH_ahVaR;y#ML_=SvdsMpjsHNcY0z(*f`=D(d^= z{;Th(A90+}H;geAku93Lnkp*NYRcOV)nYxO#XEA~fzIYIc3YfEsbb&8diw%K=$g0h zC#$h$LC?yKpV$xy+}U>{ncfD3{+U<4$x%9lIDby9T?N($S?a<+@4U3zjhTp+a(H9v zDl36Nz9zt$g}C!hkhKI)8=E_m_YDB|O)GTro}YCKq64AYTAK_oO+DOIWU`6a;+Y(BH`$v& zgkN}pDITU6j-(Uh?A({nb6lRy-pJyKe5(B!={ai1dSme^cfC!x+?>|w*j5af-@{0w9kQ&(i%AruxRX*%8WuQMsZqdEa=q> zC`~o=XYth3@}^7u+cI&tZ~o?!<-=UXQr-2XY_9BQfdID;4Cqjr#NOm>FO=mzWCHh6 zO9_f+FfV(;Jfcx=w`}i*aoRtco-7ww>RXtd4RzbdQUN_~$MbuNU(AlAU3SzqVbcX^T zwQrxLK*|3fjmf*M+j1%t(DsEP$e}1Rn8>$}kN*o=U4AD?L3vkh`Td2np1y+(B?IYv zxS;RRs9!x{rL(|(600+{iF}AScu83;sp=L;|9gd|g`>$zNPzTd{JoXQI>Muic#C}L zvj7f(Mp_VFL&gd^+I`)@uuJ(3;|Q0CurgF)SaazpuyDM27+Z z4)$JNW;efnd0KmFb&@y_6ZhFI)}KH?m@42XK(dOo4J)p1T8C_=*Vbl{RFRs&S|Dj> zSDp1v>JS*Sb3_dY(=AVdeU_3Fh#;mQuk|-E6r@IHR*h+XHhbHlfy_uqf*x_+0|2f% zIy&-=?0vLF?LD0w%Btqa2?-56LMNE*eNywhOnL=@fhx@KqxJ2V*j{bOyEO3~taR}m zEtmJPOZuc;gl+_BfOo|<7{`w>TRJCqSKJ|Zr`a2Ei25$fM9?BC&CLR$VbVCeanT9{ zXFrAxyo#%V3rMlsm;pk&;0&_|h>3{_W1LiXjz)hIjmdlJr*EMW4?rkXqPAKdu#E2-)lg+Y^V=dt*351N6c$&r2Wql1}v4nNCg_a@Rd z;eM=-8;t*fFBUyFXeu-jVG`00Mk&a=tMrux_+ z4O^4OI0^RiLaya51jP;;n~Z(@S{>>G{{9xKm;clAJUn6YCZrRNqHA_!EA^Vxs=E4cqG(4)(+&t#;pUuGs&-8|e&yq}2Y986} zZvD`Gkd>-h)ku!Dw)NBh>0LCoR+@mVhPwA8-1CI*?|lj|e_wktkT45(h<%FSl%2Tc z_&kP_o7Ef_!LYJR4d^o!?pht{@b)|>3ZlFfX~1p0C;bq2<%c}xZ7rqtPk5atU(@w?qpGv7)O94nLPZ; zXUvii?E2n%fY`Vq<+J)URwwVM8mdg5(P*I_I6MQ0sqabxvxk*Jlb>bYlVtYx0qX@H z95Ohg8?$aH5D!&jue9=xf=(K#BhfQzQr!>!2bAZgE@6xy&in)7l_OmBV{I~s?{g8-p| zdkiRbSa)h2&euujNsqp`>z#3({-$Zh?Y0M&nIn3d>%(LLu;`BeQnKUd%uaV@`OZ~7 zfBlUXaqRQ)EE>HZf)VBKZ#_Lz$B)2|`Rr#g&I5&rkdQW>pt^0%PixL&#SpX2qhX16 zcg)#IX1d~76^PK;fB-XoMTV&d2?tbw#mBNk`Cake@XvC-zqk+IBQTAF>Q6$srZ*UA zcgCK)cMleyQyBiuHRoI0uK0{ev$9}Z7}D!UNB7{49e?c1+U;uK4C>XJOW_$7c^GW# z%vc1)?#}idIiu^_T6Rma;UfjtnKKXTWarnK<*rSO079RXOvL{&%46Pb`>&TO55W7w zRtn)O6nh=kb?ZFEOaj6Xrzf~m`}*<(UM*7vCaugrR{KuqAp4hhTyAmwW#a(Ai}1mJ z5u7ixw@fJA5FlCPqf~-Apc9fZmW^}q1ffaVYT5Wv--b6P-Yp(B20y4Ol8a8}s{OgU zw1Gi%=ggB~1yO?M0XLnGXh6jL0~zAv`fCh-D3ZhYtP#b^w@wI5KbmW=!L8W*l$7KC zPJgU@-8^wam-f03fQVB69bON79Afv=QZ;gs7R3PWI_SL!xZV)B26m2AH^2`SNpC{= z{h%x<=0@$Hb!35q^VXt)4m6SC1A0>-4>tDZCRVUWj8o9z=UF5{d!lpJ&ik!G+fOp> zs)~}gE{!yDrT9}-l<)FZ;mMF&$Sd-Z<~4m`y8WMLIu?>FS2fI`DpYTw_=B{*RL=#O zbg)QqUnz80d%eR|?Zl1G%^jVQpv7Ix%QG44S7WGmgVe;enm2FE`|W=^5`>{%rqB~9 zfR%RGCL?{pk9!<*_-~Xkpec^CsiNhWc_`hUhkaGL_h?WeD(xpcw$DM!XobA;Tx#{9 zvmDG76+@EGB)chB)SS@7!7;c&0p9vN&1ASU!}g1NzGo1&c4+P3$7 zP7;sGc#q#g4O?9{Ep01=t~NL_W1QHbKU@s)9=tnJ5}qok_J#8w-jNZdZT@c+`_0>5 zXFcK9!u2Pt6+d(kJg~4V-P;<7MI0a^Tl}-(O`2)d7{Alt$d0m_&oyhz2d-mhmatZr za)$<>au`op4n@1T#`FU^;LO5y4IN;`$ZyBcYyu*POi-CFgZ*p+CeeGmw6x8X13Fak zR5VOyT{dYHyQdX{AX14LdE4t)%#Ol;!Gp-Nrr*;1=VtR~-w3e>B1)5nE{sgysGH?J z#NxRU#EtYpVizF|l;lYK00H=UZhg-m3~P+1>9B6?P=?C{n>8u}65ZXSbqn?HeVJfY_CZaGSQF?aH{Rh|i;_&O4^ zpT8F9S-_|>h1%2&!}tg#xGPYQ^D|5+Uj7(E6BqoN~_qZ(W z72|PX$JZx#1??LZn#Ye?q%(U;TZ*V2?;hAVI}n2#ro>-FjWZtC*b$GhifxN$PuYB) z(g19;D+iJJyl(6%aF3zCysw4xz?9{W^B>{`GcWUYgqNj1_t=Ob$x*?61}uWs)_QHc zl+%0KgwEw@={;n_|sY-y*+IJot&t;YXb`o>4_^G2dF7mq4Cg zF_s9V(iD>~w+LoxGJ*48J!WsLmn0P1d|V~!YwPrV8)=XK2>oh=!3oh%M)9fr;?s)O zsgn}HM{W5E(*dk1Js4249j?x|mgIruuPLzfecfvO*1CPm;W>H9H|iB~*?X_7A|p05 zmIRHdnMvig;zTnSx9V)($)aSjpqGihEd!!?mJ-LCjwzYfHE067vq$wR;b>dsGJr=v}yxRasE4X`TKp|0#a#kRvz@F__9+nfYBwEXha+Hol+kdRC>$v^UaGp(*g&G!m(s zsq@>@D&7Lnr?Rl$VrOq$4ZP;t#E5(4jB2b_UQU2|?nRu)Vbd>M)H7)C1O+8eXb9k4 zGiEq<7?5loA5H0KrxSY}!&pwwp$>_1o;!K`YeU1ceorQ4z48$g#6k5HbiBgBSAJWo z!_}wzJtq5Y-ZFy7Ke!=M*yCgdRwe{GE?)OI;9C`l(-q2$k@N1hf}P1-_!~Z44>v5i zhYmRnvd74P_i|hIU)wZnyQXHOPY|7~-~~A~qS-?6lz4=t$?`6RQ}_6E*N@#oIuu#6 zYD<6kU~?^O9RQdwyzK}77{U`wffcpqP@#AFhR;z02G)0?C1?PE$5iM3fRL9T<{1Eh zETwQdhVD;oLO)`luI6DDw-)}Wk*sPbG(pVzq`eduKF_se z!GR-7UGy!xKDo3gJTCAh?^p!n9Rv+`o6i^6E>swp=ydg)k!Ex4*DPh$9{mF;7~1Fd ze?FOOdSRzyi?=vrYp9Ac%Ht;@m+;1{J-Kk-0$gcj z`J@B-acfYB9_OIBA#e8*{RT)qR#)ox>f4qylSG?dE%?_H-+6o{H>`r=v)umf7krBg zoo`9C$JEJOqHE`fh|g|J8s|hi+jdVW!YF};Ww5j5L#SnNiln#3jq|j?;eC3u!-|3* zHK;dnCX(dOnsmS>wuf#av;P1gE7%Qr$@d;_Pzk(<3B-t}2v=mn<{tb!*;DOADdCcb zQNph1FyxcjThFBYVWYtQvtjUWZCy_(gAt%EOUXwkc|e{YPRdBs4q?M@^Dv~^8?(01 zhHy|w8^M%@JXzjrs>y5;f;S{^>St8+7fdBnnSAqK!wX_SCBNZ7dcx8kwqjk~w%|#t z88@_ng#7k?os+lZl6gkV2NFB7{P?#z`FdGj(UkKh)y8!D2DsoPv(HivCv4a4e|VH~ zIAvE#xO=4{IGz)ck0`wD05S8BuvXCJMm)msV$nGfgs%+T$lcAFpodBvQQHzkOy*=F zt5!lA?=%|Hu2A(G&Hf8^w>PAEUv+P(tj4%ypI!LP$5@H7vdB`I5C?)N*~5qeUWhy; zf?P;s`r1|-i)JQlzhDp~cUfLaUkFOH`GujU5uwD>Ge7dbno1W#WLP6@M17aZ>>2dE z>)Gl7qHhf?TRT4Xn4f+&C^pra}y9N7@ws|Y4F`r5iPp}TU zYzm{0mOW}j0*l*fadEHWkC#E$KmpfOy^duT)3ru9KpVrLj;yO0;2Qk{Lghmi+3yG4 ze3;zBz3Dq7^tR*@IaZoCmdLs``4}&!!&P}oA3x$E?uNChkGT3(~3*h z^*5_m>fS-bK>KHgqpjrD;QhXSw@cO#@obYP*b1D|`XSv_((M&Xm3L%U$>*u5?hblgRT&%N<)SRgyt^3XJ1!)7Oc)`3>KPq$B2Hb#WR!qGi6xqHCTu49W9T(^K%{=Fg6jO2`kkdZLbKm+5CD+^q)`5l8h^l(Qa~GYb3=gU@i{;Cn2t^qt zo6wz7^g>5E9j0X+?#^}%8gqy=33+5z1Ery`D46D=cJgxxv-i>`V;ShsCw%hz`NJ%F z&W9Cig0@xPQ(N3MB~`k~JgHts(PG^2sJn0(J$0}3)g-RB>g#g5uq93NxLkEZ(cUsE zf3=wOXUhfC;6`#^mj{3rmo&{@0mf%4`hPLw%QQY`UEh!+tiSg z|OeIfeFeA zvq9^y%qf&ch(hX3J@hx9gy=OSc=XQj#`CvrS)emjlbBd`NnP%)FNQui;lyAX{O$XH`vu* zU-26O6#=&ny+1JZl?BUoy7F)ix{}AWoHB;@zO9bQZ`QO5CA+lwZC;Eo+R)O9U0`h4 znb4xVYb|$A0++Zzd=D zan&?%MqwL!XAtINoT1oWUdgp(W^%wx3W?zvX)Z!h0lxV#o8((7^N_usIc>3{p)}}9 zbefP8NO1hTu~z1#Vu%>YxwTh6U*PDyBma9P5;9h0FT3^gN&dNA5#PdkOgqUvU!nQ> zkOFu@OU5Rt>;ON;g!gT)vL7beX=j?)x{Av^zEwPY2g6Hwrnvsh)|&J0qlr#yKXk>w z+1vS>ID%e2u5wsh8LN`15lNiw_LYHN@d>4iTtewac}7L;pAR#j5NNpeQ~4Tvx-3{1 zbyWF?BS(X@mi{Q<5(NOa4@JrsJ%lamTM{_V0+7orYsseI*e`U#VvMRg5-nZ;m_v{r z<6+ml{SUz61+;q5Pv)D{*DcP18g~${7y;xg@TJEy=TO?`WbT~5nGx9JpU6US-r~<5 zsR~h0@#5dw$-fg){;k0$=2ud-IsFOS>*PboVjPh)vS@T|+x55xr>HHYBV!He8q#mq04ef| zG2xcWtO&aO;BT5sr#QizWe{8qddp*20>*DtlV|@;FZf+Q_JyF|;V9V^d3y4Rv@nQT zPD*Z(x_n<9vQmoNku^^uKv-A4?wkIelwBYR7Hb&~3&NI5*HVIk8wsVdTwy%UV|ztY z=;3nz>zmAg(9-2huwK=G^>bS+ab8m2cGC4&z2`!GJxm7C>YiiA@S&3SS(*ZiKSW&n z_N6x*(CIiB?~=aP@=2myu!!``!-#w5j=}HkV$|47>y} z|FRW_H+%b9*lo-!2t^TJwgadDiu{cZD2b__&GmY*`8MLmL+_GTU-YEIXF_I&<25XH zeHML14B8|cJ8i6l-{11IrHCn}?Z9ljEpa>m&G_(Ix;QkcC`x>q{%rX~%5#idrb__i zFSzWaFl*OJFz46`{ph!%!(Xyz2qUI76jN1y);_YXuymMBL-be{Xz~EPbn*)z4dBOs zo1TsKsDtsFL=Tv-eIml{oxJgFU6k>Y1rjJ-lU0sXu zRS@F5PQ-XUlW(?b?{&ID2e@f-WQQ8}-W$$-;i+MXqAle-Hx~(=!_N3G00HI@M``j%c;^wPZJGq1`K0~z71;a_WIQ9n>___>#+89=-vo$ZO0+%|Cz zp(g2EF?g5%3IGt)FR*WDS>F{Kn@ro9_XicM5mNW?5O=|DRS4q6epSoP@%~ybcD|Hz z=br5a-D59Li`WkA?~UK&+W3diPl{mc2?uTxrd**v008KF3QU243y_okYH}AVgtiMm z5gUa^9qfVr)7!P&qRdHtN2U6j@RE#>6MRaBbnfknjGr3dY2R~Rq=SgF#2!a?(nQjW zQexoYFG&x{AtH(G2|YmZ#-}Y*epj4#4RodZJV&?VZH5D=N2>07+#~!wXxf%SrHAPA z{35kko{p|Q{mi-4!X*y{A!6Mbz+ST1j)dfG5o^Cvsp;}MJ`(!VZOpZclc{ReHA2JZ zRLCFL#r$2+tPeQ88WYfZ-u|LG+;#U2^IsHY(5t`xHhGFtPu>syn^Fxwb4IFab!4pl z`sNr4oiBToAA8YZe9f+^!0t7bJ)q;}Re#W!%OBr0+QO@qAv7=@0Z!3hC>-{}&ZWg? zZaDI$ML1h-gZkkkCR&HC&+54?l8P@pe3w4Y?lirr6f!O8t2=L#6SaqOJ=L(QF>aqi zp^`5=cIYC-IWXs3_}cF0H+*3{`uznW<1c*SD7d6i%IW9RoXiPoz@>#9F({)N#cOIl zdW}e*4BnmzFMUGKU8gsbwH$D(;o*$) z$z~n{GVqYAoVgk(0^OS=128(hKcsK<6~!1I$=vNk?u?$9%@FT3t+Y&hJ-|5BgeZJ1 z!h#+={Wp4~CoIs1PkB~;2n+{|muS~B07lqTVoMnv?SoRr+;%AwSn&U@V$Rm)i~UPx z=$p~DMP2h%8ZL{_hg6$6d^3@>sUPUxXuo$J!X&{yaI+eip8wL*{*6>+pgGFt-IWmK zzW(mdf&&K!x?cI~g9a@3X+*5~uLmNJym4^xlvHi+TSa)*MN3KwMWc2=YE$%Z(Wz@>DIzkh`DS(E^Q{Go1_G`Z{*(eS zSRed+5wEP?6sS140^9mWG&wbp_L)uQbx4DuqIiO}CyBeKZ>KN|qg#M5;YHd>E=BUH zttPLnFcF$)9mz?&jSvLa#|#<2;%B3g95V8PO(tZuG+L$Cul_@2dq zOAtr}s20(j*@TjDT$>N(RFDz8;(H^e6?zivAlST75zt=$XyCL) zPB4}Sb;gba0DMxTI4EL%-vsZ%<-9tB=62}eyhSEE+aH;oBATCF@fFo^fJm;WfY6nP z>GU`DazLE^iR%X7%Y7{kIi}C*acWC@rTV;+E99uy=>6nY;>{pKO^4(BjE^di%?>J!e6IYtgY#8hs@sOpjHIsM9k3iEh40+Y zJ2G>ffMDr2!owB$q+T|34oMTw`ewcJ{9)pa)xGPuc`LhI^%Wh`E2T*dB$S?kYGkZL zY3}X!(G1PA06<*a{#2W55O~SxIV4Bx5swJg`RKLY;U2eK8`36DfU*VOCY<^S=#b25 zqGpCHA1?6Mc9 z>Au*>2PvbSz+4PL2+BBsgLsnuEhxV+{oHW#?dlpn5fO;5Bc*@f-qfI3Pz`f~t3aWZ zYwmt{gM%EUTXv5g<#gL9y-$M<=*fNpS?g<}xR`@P%N+?|T}-6d^K#IE>2=D5JdHG< zy0JsVDs|jkiv*?Iz^!ljTFd9m>JSO8lG6$591Y2RehQhd*tnu#(ARQda*`S`Bw~J! z(!pi4-8GNPL~E`R1|$3 zV(X~%R)CFC22a#24?-o&SBDIj2jrihe!XWw8MsQ06tBdwUf%CIRgbx4|apYoYTL6 z(KMtFX*Y)4@PI{AG(()U19!n6x z$THmwv2-a}cin>RRdgjE(TV5>u9gXITJsv7h1HsQy>>G;F_Dz|qHyAyY$6%=qh?K4 zYTv(EszAO-@H$DM@4Y&V>Sn!A{qv6?kwXmnOHkK0{L2v<<5s8B*`~~i8{Vhkb|wen z=2-amJZSZ6(?DWmtsv>N8wNCwZ*)DiZqkAiKkUzpMU5I~#Jz;9$n@+AK@Gs8(BvT` z1RL6Do@OTEAzH(5H-}UhD7+HjwAM9cyBp;P=MFq!5;9oA7DXt(wDRbqtK- zSVtsgZn+=Dq}v*(EU3Rd0Ia!P5E~^H;>YhX+tL!iadfvd1Sg%!RH23kj_q%TDxlAB zBGTI{%x*)ldq|Q`c8vmpdthAL0CB=_@wcC*pL`YS%IWbXg5Qgvlk?;41_fFOB*IQ7 zQ#JO}tH4`G8ScLE@ro5m=FPw_yJ%VAi;+W={Fz~?5Imvgx7rkMJhGFyOyU+MY`EO8 z;1s@qv#)`G)G#lV5KGJp2@_j(p1oeqDDg+V1lDwa=CeY+|Q3g^Bavi zNmDDc>z?49A-%45J_VScA5F*bpvPS5(yXMlY9DgEf*bqJ8nky;HlR`OWI)~ghNLV> zRQe7a1!Exowd8Jjg2%Lyk&|>@{sCS|P#wMX=>kZV7CkyHsZ3DHZr70}cW(8T`Ls7lcw4uL+GHl-VIzmturxTS zTWaaNyN|u{4cIK+0wP`lO7Pr01StxpJt{>L+D_oinZ?{|N^Rb7ZOKmhrK}?6)%Fvg zL85^JV)n$NVgvPKW?W_wSG|{fENFdHROAL&M~Oq0MS}(A8 zQC;xK`&nmYA#6neu1ffpQ9$&yLptD;Z9gpiNl2R%Cqf#YlWbObjorYk?lgHWIK3ue zTl1oS2y=!O$1Z}&`hEaz>DCFcz)mXr#DQ1+jK(NY-A{J8?1*(l4&*4^^V;CePJPRp z(^t(IodcyYi&sXjRtk8&T`Q$8J9%#YFmO5w3myJ=d+|d_GEPjV5cGj*D=Mzd54xeQ zzT;Hhu1bWm=t6h}3xW?KCehv5n?D+}d<3K4OYTA~qgW!bf%o@OBbk;DrK!27(5dNL zCI@>X{O#A_<@2=c0VG3V4;AylRE0q1IL^u%x`oxU$GzGW9U30Tfph_~l9|&ca1}&a zNjni%j+iSz9Md!YwXhlMOm1B+Cif{^vO@JqPeb4yG1^yl8F-4=3waLYzFxUVY-yxs z8Ap>_FVgalYyL`)&KAnB-|qPiZ_|#J=2be4aC8;|TBhdDk`@{t7K7TO;4r%?a$t9l zq#bzC1EV4dt+m%Jv%blAas`!1R=|vHe~l(TwVcJ$f1+ge)VEB3_yv-?)MZvv)yiwu z)Ckh&7tG2bzDf zZ8o;0eluoXPH-9^6ekOlM^ zzW&297;UMjO_w5^>{G6Lug-1;eUGeb8M7UOV4)(5jakj;+6SU*dBL!;TH*D*1`NVy z*~x#Xog-ZRbJ1^g%huae)u$v+Qj#&89UGPYl|8}o;P^rY>c^0pIW)qF6(Kb(+Vw)V zD_mV6eaP=-L9(|GNO}9!F^}+fv0elroCBeX;8n%@${r*i27Yajx8Y*?DD@i-keAEy zqog=Hm83V$RTGzdNZo#Gvyoln6}e^!&)Ow`%Dz5aw%}P}e~qOXhtF7HW>LgA@P@e1 z>7*Co487sJk+5Vtqc-c~$;|rEkzeq7Fty^_nAkxtYWbR|q#DvyUX zV>h18?yWmgkH3ss7k8i$6 zstCF-BbQvg{fYS6kB@V?)xM$Uog-Lo4Vi5Q)Z%Wm0&hvl;G;2*A{EX}RrhFqK^Mu3R(k%r?T%kzE zLf069zfRBkC7L{}Jq8f5$#X?Y@!VQK=WnIFP0Zl0lklwouL^WZMh(iH?I` z`UO2IOr0RPsb=sInlLPj@ASsMto@e!sK7 zY35lWG-P>9TH6~Q2d$)|wfb0X(Qa3b3979e!6@H?uxH(D9ku%ly^l!s(i)}TF0} z;{3a;oc~gzo4LicSOvcS=IpgHDL4gSXWiG_F*J&u?oeadrSp^lC(~0pX)^|q@BE|v zxah-r);#zqxF0ZRQ5E8H-C`!(j}m7Cp1fjb#FG?@~U@V~|F59G|MgMY$Ff75Lk1-`^ro*c-l9Wn~;F2zg4Gd&d?FsW)sP z?{oMXrKNq9_95lE|BnLh|15y|S4H3doqNK0{gC>x$!jC$9-4Y4Q>Lba+LoPrP?gHU&n5zrHJb?P3&SMfX0X>uam^=`Z1y+RMALlvd>TP|896ql)R@ z5w8E28@p#g(9MxO*&A=4I}eLcruM?w(XpsvD*c~VHJWsZ@`=388B+?N+ov#+<2K#< z#=;NfA=!SE56)enb>g^p{EG4;0VjWc7r>oLa)|OEr+tE)5MInvHYqf?w7k4N#FttE zG`|`&_uc=&-q!gzi8-p4QI?|J2dY6RpF%_|BwIv<;H;T zO*EUHhpY{oQuy!iqm6=0+G>mc&ilJM@486vIBmu)%ixUz9;{uVEaB#rlz*x_yS(43 zK~P9Onvx%G{ByeNAODk524RCgR7J#>e=b{lT};_Y%DM0Vi(H?e3?m v|0iwd|EV|oZ);%t*UvEgDgFZhc8^0`xFctjuP+`^S^(AOno8wQt=|0)eUGek diff --git a/content/posts/how-to-edit-scripts-with-your-favorite-editor/index.md b/content/posts/how-to-edit-scripts-with-your-favorite-editor/index.md index 8dc96682..be61ff64 100644 --- a/content/posts/how-to-edit-scripts-with-your-favorite-editor/index.md +++ b/content/posts/how-to-edit-scripts-with-your-favorite-editor/index.md @@ -12,61 +12,77 @@ redirect_from: - /2017/03/14/How-to-edit-scripts-with-your-favorite-editor/ --- -For anyone who uses Violentmonkey, it is easy to find a way to edit a script like this: +Violentmonkey is a lightweight script manager by design, its editor is simple and offers just a few options. It doesn't try to replicate a full-featured editor or IDE, which is problematic anyway due to browser's hardcoded hotkeys and other restrictions. + +
Screenshot of the built-in editor and its options ![](editor-1.png) -However, it is really hard to make everyone love it. *A* probably likes a theme of `monokai`, while *B* prefers `eclipse`. *C* might use 2 spaces for indentation while *D* prefers tabs. +Customization in the extension's settings: -It is impossible to satisfy every single user. Lots of configurations may be added for this, but are they really worth it? A user would have to face lots of choices before he could use it just as a script manager, or have to look for a simple option among lots of unrelated editor options. What is worse, the browser may inhibit some shortcuts or operations that a local editor can have. In other words, an editor inside Violentmonkey will never be as good as your favorite one. +![](editor-2.png) -Here comes the question: How to edit my script with my favorite editor? +
-Save to a file ---- +There are many excellent external editors and using one to edit scripts in Violentmonkey is relatively simple, no need to reinvent the wheel. -First, copy the script to your favorite editor and save it to a file. +1. One-time preparation: make a local file with the code of the script. +2. Open this file in Violentmonkey installer. +3. Enable tracking. +4. Edit the local file and save it. -![](editor-2.png) +## 1. One-time preparation -VIM is my favorite editor, and the script is saved at `D:/Source/vm-script.user.js`. Note that the script file must have a name ending with `.user.js`, otherwise won't be recognized by Violentmonkey. +1. Copy the code of the script from Violentmonkey into your editor. +2. Save it to a file and give it a name ending with `.user.js` -Install a local script ---- +## 2. Open this file in Violentmonkey installer + +⚠ The local file's name must end with `.user.js`, otherwise it won't be recognized by Violentmonkey. The only exception is method 2.1, which recognizes any `.js` file because you explicitly drag it into the extension. -First make sure the local script is named with a suffix of `.user.js`. +You can use any of these methods listed in the order of increasing complexity: -Then use one of these methods: +#### 2.1. Drag the file into any Violentmonkey tab or popup -- Drag the file into any Violentmonkey tab or popup. +⚠ Only implemented in Chrome/Chromium 86 or newer and Violentmonkey 2.16 or newer. - Requires Chrome/Chromium 86+ and Violentmonkey 2.16+. +⚡ If you assigned a hotkey to activate Violentmonkey in the browser's options for extensions, you can press it while dragging the file, which opens the extension's popup into which you can drop the dragged file. -- Drag the file into the browser toolbar or tab label area. +#### 2.2. Drag the file into the browser toolbar or tab label area * In Chrome-like browsers you must enable *"Allow access to file URLs"* in Violentmonkey's details in `chrome://extensions` page first. Since this is dangerous (any userscript will be able to read any local file via GM_xmlhttpRequest), you may want to use the other methods instead. - * In modern Firefox-like browsers don't close the file tab while tracking as it's used to read the contents of the file. + * In modern Firefox-like browsers don't close the tab of this file while tracking as it's used to read the contents of the file. -- Set up a server and navigate to `http://localhost:8080/my-script.user.js`. +#### 2.3. Set up a server and navigate to `http://localhost:8080/my-script.user.js` The port number `:8080` may be different or even omitted depending on the server you installed. - We recommend [indexzero/http-server](https://github.com/indexzero/http-server#readme). Once you install it, just type `http-server -c5` at the directory of your script to start a server. The `-c5` option sets cache time for max-age header to 5 seconds ([more info](https://github.com/violentmonkey/violentmonkey/issues/460#issuecomment-434335758)), thus forcing a browser to query the server URL every 5 seconds. The caching can be disabled with `-c-1` option. + A good server is [indexzero/http-server](https://github.com/indexzero/http-server#readme). Once you install it, just type `http-server -c5` at the directory of your script to start a server. The `-c5` option sets cache time for max-age header to 5 seconds ([more info](https://github.com/violentmonkey/violentmonkey/issues/460#issuecomment-434335758)), thus forcing a browser to query the server URL every 5 seconds. The caching can be disabled with `-c-1` option. + + If you want a UI, there are such servers as well, e.g. `HTTP File Server` for Windows. - Make sure the hostname is `localhost` and the script name ends with `.user.js`. + ⚠ Make sure the hostname is `localhost` and the script name ends with `.user.js`. + +## 3. Enable tracking ![](editor-3.png) -Click `Track external edits` button to confirm installation. You can also make it the default button for local files by ticking the checkbox on the right. +Click `Track external edits` button to confirm installation and start tracking. -Edit and sync ---- +You can also make it the default button for local files by ticking the checkbox on the right, so it can be invoked via the hotkey shown in parentheses. + +## 4. Edit the local file and save it -After installation, the confirmation page will keep watching the file before the page is closed. Once the file is changed, the new version will be installed automatically. As a result, you edit the script in your favorite editor, and the changes are synced to Violentmonkey immediately. +As long as the installer tab is open it will track your local file and install the new version automatically into Violentmonkey after you save the file. You can save it either manually or by configuring auto-save in the options of your editor. + +* The `Stop tracking` button may be useful for example when temporarily switching branches in your git repo. When finished, you can click `Track external edits` again. + +* The `Reload tab` option allows you to switch to another tab with a website [matched](../api/matching/) by this script, so that this tab will be reloaded automatically when changes are detected and this script still matches the tab's URL. ![](editor-4.png) Known issues --- -- The older the file is, the more seldom a browser will query it. See [this Violentmonkey's issue](https://github.com/violentmonkey/violentmonkey/issues/460#issuecomment-434335758). + +- Firefox may throttle detection: the older the file is, the longer it takes to detect the changes. See [this report](https://github.com/violentmonkey/violentmonkey/issues/460#issuecomment-434335758).