From c61a4142246abb856a4cdefa0fb0940c4571e05e Mon Sep 17 00:00:00 2001 From: KIMINOU Degrace Date: Wed, 5 Aug 2026 01:05:48 +0100 Subject: [PATCH 1/2] Update Templates plugin to v1.1.0 --- esbuild.config.mjs | 60 ++--------- icon.png | Bin 22683 -> 8724 bytes package.json | 20 ++-- plugin.json | 35 ++++-- readme.md | 81 +++++++++++--- src/main.js | 260 +++++++++++++++++++++++++++++++++++++++++---- 6 files changed, 349 insertions(+), 107 deletions(-) diff --git a/esbuild.config.mjs b/esbuild.config.mjs index fdf7d0f..bebc35d 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,57 +1,11 @@ -import * as esbuild from "esbuild"; -import { exec } from "child_process"; +import esbuild from "esbuild"; -const isServe = process.argv.includes("--serve"); - -// Function to pack the ZIP file -function packZip() { - exec("node ./pack-zip.js", (err, stdout, stderr) => { - if (err) { - console.error("Error packing zip:", err); - return; - } - console.log(stdout.trim()); - }); -} - -// Custom plugin to pack ZIP after build or rebuild -const zipPlugin = { - name: "zip-plugin", - setup(build) { - build.onEnd(() => { - packZip(); - }); - }, -}; - -// Base build configuration -let buildConfig = { +esbuild.build({ entryPoints: ["src/main.js"], bundle: true, + outfile: "dist/main.js", + format: "iife", + platform: "browser", minify: true, - logLevel: "info", - color: true, - outdir: "dist", - plugins: [zipPlugin], -}; - -// Main function to handle both serve and production builds -(async function () { - if (isServe) { - console.log("Starting development server..."); - - // Watch and Serve Mode - const ctx = await esbuild.context(buildConfig); - - await ctx.watch(); - const { host, port } = await ctx.serve({ - servedir: ".", - port: 3000, - }); - - } else { - console.log("Building for production..."); - await esbuild.build(buildConfig); - console.log("Production build complete."); - } -})(); + sourcemap: false +}).catch(() => process.exit(1)); diff --git a/icon.png b/icon.png index 2d5d3c67188a90d1399389d09dfc6c0cc039b7c3..727925b68899d0e712ed7429bcc1589ece5a6cec 100644 GIT binary patch literal 8724 zcmV+vBJ16WP)C0007`P)t-s-QC^e zg(&(*V>Plrqa{aXoQ$yu)kGaJQLS+s}bXsM5XmyIH z=IM9$_q+M|^Y!!r4>blWQ3*0thxz$P_4fuOOAIMY0S`C_G+CcGFldLFLb&Ai}N9*z@?erHpS}r?U zIOptF_xNte(Hi6HC+F;1g_&-+#x>gG8QA0%Fi;ghUKh>aZSC<6Sa(L}>`%GIILqM` z$=wukjSk`M80qp=>+vVY*AA@F8@tp)VR;m4g)dTWN!jKs+T#|2oM-0icj)Yg>Fq|R zxLM`vndt0n+2J?T+$EK%7H5Yz$kZEij8&|=D2ALflBhPf#!t!An9S5TsktSnx+I;m z9GkNol&BhtqbRq?Bx{B>f|wn$%PPFe8ibu4qq-ZLxE-v>7HN(CzT(`uh}Oe!|<~Bdf!(&DHn#_#d3X3NKs~Xq6asrW%H{5>$s&!Hnnt z03R$#L_t(|+NE2Ids9`mKj$PT$vG#lrV3aKO+c}xfYMS?5GvsW)P$xY@{l$fBq+|9 zKw1Vu)s{z5YQ-6lxddl=hsv!`5v4pVFfETV0!n3Skr4--`BUy%d++l|TJCr6ch?7L zx_Ywr%HHeoTWhb)aU3sLtQ;rWEF#C*Ee@XJ9X5&MWWfdug)%I5V2~#iivSEKVF)%C z$GL2R3?H<)c^pXrhQ%fuBPlqvkUz9&!I2~!35f|{u^1n-NXC4?@DvK*aWaO>n9t2I z0rZhPI1&-SJhZ()0G^lac7^9fyItgY#cq}J8E(7G^HyZYqZw|IJSQXDN}h1(47+3+ z+KUWe%aVC6e2#NC@Vhu1Ad<`BKuH~To|Byp_;MmLcnKN2+o3Q9rx1qSp?Ema2_NJY zhnq6AkraoMFz84k=TXQ=b~cwbG$%P6oQ*Cf?zfAqi5(eq?aZr77gO6_!XTQ149To0 zHf^6cH&YaCC+X0#fEy=Th~`*qoT4bQEGmkqy}FPgD^_G!k)be#OMk*j7>dqND8oud zveGBK?1TEyask6ihej=+swxNtN=QYwQQftB@)&M`ET%xLfNY$A%k2;pW)>d14R?Vs z=+IU+l9e!EBr91J&d^<3zN%8Cw~lFs%nAgv6*y5u)5g*H46`teq@A7IjfOVaSDy zyeCk>#XN?X$8gCaWuOw;@?3EdS46GAV(~If@lhqT=!>cQ<^pHI7-m;I%FEM{3?lK=zWC}*c(C|q+ItK}yvrL@0tRO?S zO1Q?772O9gc-e}t#EHu^V36k+Lw`nMskz* zOh$5=13M2NbQeT=&a{|bLshNDVj6(NumWZlY;|>4T!4st#z=)B(_+K|T}(Imeh$0o zi|Aq!hO93M;0nq>{NbVq#jWEHm)q^to*R24#&9w~BJpGBfCF~eV`6|MDh7;j>j*_) zA0!ddN+RT_kz9Erp{;rt*0F;QSPXQhS%Dr4=<2%7RxsMfXx_?WvH~&^Uwoh27+T05 zTGU;!M66tr2)ZNID^asY#~|qj4{YKXB(z@1KqvrNbjKhm>_ z9KFbpPz$JqQFkRcwB?4igD|wInvtlU5d{!CM?$w3XbHPQ1T$mhY`{{8aP@ER}8D>QbZQXAVRrB z!eDH8ap`aaUNDl8Crn)WLBi0(p2$rooydu7Bn3wzAII^$ruYjF3bsN(Lhv7r;^>Nf z3=g2{cs1bY8`BkA^(S1D%KVdHRe1AA9upoA8E~{|h{$3R!0lmxgb5%R0EVr5xIFIf?QFVx>6ggP3qJb;k6zCXCW6BCn z$0|)Kf8>$!M};CiH@r9CCRRY5oIq`b`ZT)VB&QYRBK#PSU|K0EBF>4ooAUx9fZ!&( z;PUYNq+mtGBh!j?gEr>{#0+IKAh8nnp`e2?{0>huBSoG*>s8e$=BQ6iuB0p*Zthv6}!A8Zq>kq6edePdugG zgTjkufY(C-(5LyRlXJrdeZEP-;4_P#ePkBr!R2Pb=(&Pm#F>H-KRRcpQFZ3?sv3zd zsf{7k5~6QnbzxO~;eO4lyX+Epb*lv7*z26Xv^x0WvX?4DOC?DfqZ}|sePC?3XXnN* z533RXij_dCR_4=+vWOa4K3>BgsN+7T4FQRS^DlmR!6U1u1H-2~C*7$RjSWZ&fE1zz z`LQ`_q-@pH`i6!Ezu(_rrogH|Jp9V5WOZQ$oKAw#Bv}8Y)uCq>zr1+bi3kNi z1MfrNNYP#qB1zuoHK2_dkN_NV8p!e0u$ovISVAclTe3ud8>Nz#lXhzg!?Iql2aSnNARwWQuPXn*$P0TS%nVGXu9$cax5dWU_4<=cwZclW2Y%68krgYJ?=h<@q*;x%#665=cy_C-ixUC*&pS&;tbWg zUYn{-m978@7{%k!Oe~R3Z}Lz3-I~ptUz_CjC(Hb$n-aCLOnl25_gS=rPS1`V?%#?G z>llDUPbsMtjGwDUR)og-`iVp$l}MDWstg5?LZPavRoSi06^X>^x7TcZ=iS8<(<@q9 zo3q)it3v5aym1^&&jrjVnU8Z2w`0`-2|878o>Ns6?)d@%O!EV!)BcL8RjXEQ+rG8A zwPnZ7w&v2qh(mL1vJI+(v>_wEmu&B`Fv#bIaS@l0(r z`ZP<11syanhE1@;Hyu@?q18R_^F#og8^_b#A*_CS)22<}8Ol(Aicr<|=GGnARD8;w zH#P{Nmx;#Hs!1Luv{^xbdlZnkMJNDH-#!cJ5Bck8sN=x9Zz65@&F?0Lqsd(BDiDC+8Vj)khgMS8s!f8qP&t+WwF_Q5 z&;fMt;KBFb-w5;}(z`$~%Z3eWfEMgm+dnz*r$7H0B!ETuJy6F6n7?s#XSTI6s=h8W zGxWJBN;PG$fB+P(W7pv^!;4kiPc|4`Sb zhySdJ@KMKx_5T%)KD@W3yR|Y7TR@W|R-7$>F$|ChmI5Wbk1Ap2v-OAA{JYuYIQ>Sl z2sl4{|EB$)ynCdptLx~#efy4r1RozguzprJ`s{0adYVB1^$DI2>xu|KhhncxGJgzB4ib5tB4h9zi%{{oKOkU6h`}1b&K}v>JwicK79DkpTqoW1X%6qR02ZAoVjyfcwi<8GpzcP zhln^<9M8)QZ4!0GQ~;d6H* z(Ci0|A}qx}+Iay<0`tnAm_jHVQNq}gU0=LU=06hwfVQR4L{H8!2;M)XzVh|whd=%F z$gyXmVf=fhv5vSzB#4}|7m6}wil)R6Gfzd&4PE-N21%%jsUwOJ0p8i&7g56{XV0Am zI!|a1q4(Z<@2`v|HvRF$pUC{LsH@MP|K!}cbNvGY0~an{ymaYucVk$6z{#Mq2Ta~3 zvUHh)a7~e_OY_zw#b5%&K!A;ZdFP$MMm2ur$iCBq=NJ(oPMkP_s)x3?;lyn9Z=Zkj z>7S0hxJ4~LeWdsF)pIaA%zf=zPfO4B&bT_a7y}}yxe}klTLl&kjS{C!Y8^77sQbwl z)Yk4gwsH46n@_3XD+jN(X15Y*h5!f=aA(`M-+lKD+TYQR%_k#`=Z}1PD*qE3snS?$+EI!&!sKu2jjg~Qc01pQtHwm&^-zi1P@d(0XFxho6@IGH$(WP z^EbDm1Q3KTUcdg`H#fSD{(fJ1)9Np8+&FYxpTD(vdoEZJ2*CXQvX*O6b?$WDZP8Cr zXb~0@ld3Y5dW)yYHGG^CqncP8NM6rI(n`ya{OQy z%->XUwQC6GZ_eg&@bv*10Xj?XY>lX|bF$Sgk@a<%Az6NAq#y2KI0gaIyFTBzdGq&b zy#I7|)yh>B7>1L9icm0Dvpw6~dK0n8^`Wk#XPVlN96a>({K!A>tx6-`>Rok`&5Q$I$YG4hT zJ7E!s0K#jpZW znsDg_3Q~9g8|CJr6{P*AzTCL^bmLpq2QOFE1OSXM0dn2X?Coo9)dV;hZ~O%3_n+&9 z`LDHhqy8lk8{_=(IQW4N?pGKLP!#>u#m)^ak_itKk;HfUT!7`F(lQj_Y((wb*SW1K zT?^0~rmv_7ZtMHuhqE_t-fZc)+;)9%xV)+Q(E0Ya()~wIpFe)>5;4D?k&%%zo!vm$ zWF)LU!LhQ2DLdww64C%c@+T{)6+0YO0?R}GS$`dQgDjfi02#^CfEIz|rA7x857MiZKgp6aG^=84atil8NlR2eL3a9VT=T z3mjxhH)eU5nqig)3=tjC)KEj<%#n@zU~79%R#i=orAm{PFE0LTWvFW8r60dO{=-ZC zJ5dRTPpR$wF^yyRtG@?T>_?8fSHqL=6l7qLWTXqG2H( zU=jPi7u0wtSQa>QaO1fxO{eyaObwORmL_j6SoZRQ%3#geTZ>PgU2M7aNn6{+p&`Fo z4&T3jKcveZWyDXN8Mk0}Lc=kei93>bhr%VYIg{hs$DqXa; z$O9gj8cbG<9NgHahEJYeITf5j^7}ont$#5a3}*Mfytn1%*}wjHYtO*-p=?IT78BJ5D1QRfFCaDy|!*@ zLu}L8H{U$B6*98i@z>rP+5Y$Dmj3lWE<1OrF&vJbxjNL_(bjXbvpHLH=IrrjU=Jpg zbRQia9K3pU@KpGfaRThO$G6wibe?_t--$22TEF<#or&GU-H=74 z8>8x+$Jhah)pWK;3lz4|pcLx^;0YsBR|IlB`@j!h7+eubLVD!ST{yV$bZf5f*s;Ev zTyy^yuf2Wz;-z#`ux#RQy2xOzoyX_s~E~@5Yn4ir~ok{+nR)W#RHmWb?1~cGlF? zl9?s7+OXGNeQ*PYE~JF|6x%YZ)M{a|l%4k#GRRhO5P!~YaXY0(I`%&<@^ zaOwxlq#i=fjOa-ZK`D}zoe1&Z2Z#W!i8kLKMDc>$^>s1X#4&3sw8H{!CYl` z(toq36;!{bX0W$A7wjC!p89(4+O=yReRS!RA4q`FtBcNC=gdG2Uj&TWWsT_ z1h58vB!GI!imJ-n+1t4)SodIX;B+O#$=iW4OkA))&`7o*14i(G%&d+a!pkm-e+0p< z7pYjezDOcfU*d?=aDAYxA{~yj3m-5|)HjqS!fNF|L#3rr6$^rySZxYG zRxMS6WRleBDk=~ok^ivxon5z6sZ`m}H4r0}Vx{%v4jpkqI3^Wxk=5-ioZBtQys3Ij zPfWyOP(oPwj2da#*-&~nP6UV(J0T5^qleh`^adI?Y<~=k$x3YtAJ7h-ThKAa>TKjEt;%;q(2|&z%9wEg1 z$B#gA_I3NTw-+z|#}7aJP+a_INeTpjKa~!&Wa#`E7~;tXd4>8Nng$|~GP~Q{z@YVu zu#?*Hi&R*FOhjGx&rl)}rA66jCe>b2>Yq|ZR6N#Bss(BPl+Sj31~l=rDd|-9Mh;Cc z=_k`i!s&HUb@oiUyB=}`3QA}r?LO@6_#RzhzUNVZs2cg@+lEAKoEC*Mn|3{Tr+n9) zrPY2=g;>Ql@PFWr|Ni&wNbn<@-EkwBiDfd$U{zHp15m7?9sn^fj#58;GR|f*ot!$f zhA*rUfdCOT`s=TE6HCHj73VLVcE|Q;$*w!LJJZTine@fONL^ir58r?k^~Q}Ghi}~I z8mxeAO0|9S%{Skbg~O5hyK4AVTS2EFXB^!Mrqm4UGt67?1d!C1hSkKsw$;K8U`alc ze0K4zrPb-uU2A{*$E;*37RWKG%IWW_f+^I#B&MYq*tGg3>QfJ5B=Vqo(GwHi!_7lP z(WU~#LFf_GK^H3A-h&vA8(pHQ)Xa`emB7Vrlt~8dTunskn|j^;BGkb%dfRdmc+@S zgn!R#d(QYXkm&`c{qD!L@D5Bex_|BB#kYQ#P&YC(_zj`&D2))s1r>Pf`FUCgn$`?r zW3f+DLK9Rb-E@dm=AjubQJ4I>5*CykjznTt_H5X5#SixPx3`z=-Ic1t@Dy#FH34XD zG|;Tm)~#E!*#KF!`UbUWxy;7Zi}s|`&dd4-Y!;(k)Iy3VHdd~WB;snrzt(|0v2&SJ z_3;Cr_xY1&kA3xZIm}NT5?UR&$QY^6N5J!hBidPt8Vw}WSDvO2ki|J0^MoWgxB(Ff zf}w<3qnwZ8fhDTC;@7*;Xhb_1iY3o}c_euI%M*V~rohLvd~2qQS)4x})@O%*nR)=k zkGmYSB*adGc$7eNkmw{hIC`3Cw83GGNTM|&@B%A;!5v`Zfg$+2NBqgY+nX}*O`}_P zEUCX6 zZi1XhB(1(yTb=+EB7p$;ZR3j8HZDFiTMgI#vhHpnl>!;>+3%(7w^H+i4fTnL8hKiW zSw?TUqP3`NnbBw^1Ti0os?mm0dR|`NP=8NqXdo}-2mOV-0XVe;mSWL(tqW0Wi-Xk` z%$|^EP}$tCN;2mAm%oAwOtm^fevTrhamF*|$6)%V4`#SnmjeY`FuLe=+gVu{TO9HV zl|o)W;q>KCs{cQVzA#fi3xQ}zn%Nw7QIvhA`hd;cxlbd8cC%DSX4; z&moLC#`jM?3&4S%jr5 z7>cAX_Mb`Ph0Vs?B`NaS^aj@a<2Jo(%G8^ge-%eyeSq4jndxeVi?l^T%%uHK+&lmX z*z2meiUGger_8r2y2`o=>fY>CG&NfOkM~6MM-5MC!@Cl8m=di-zeeW5L<)8YTqB@+ ziFP2NS7+run{o5TNiGH01ku#<$LA>_X|d!;U!>90%6mv^Ms&^xshJae6!09Z*$3N5 zW%wJa0enr^^?9VZofN%2w3p1IDUYFqg4Q16#Xg)+Fw7>pelETDyS(y?C|VOeBF>m!n>D|R@Xbn!*912O{$61#?C zCvh9Ru@?i0XeZT7;|cA|mo~Dy@}6L&VT!_OLn-PlZ@>?Fbo;Y|_%t3Hn>eoEMw-px zaARxY&+|1Ul(qXSdA;RMUT+O3RKmg=7M!8F*gxQf??`qIFdJV0k?`iGWS5HNVwVDD z1Al{b!jxi|j-gTK@^0{GmxJ_gt26L>2wJh4YF}4B z4oF2*2Z|WtCY}4F=1sAcJFhdqR3kDj1sJ{MCIRT3DWmI0G~DCgZ$G~Ku?1Y6{0iekEV zEHV$SUE(Rccg*v}G^b^^im5fp2IAH)EW3;+%r}_Hy<;iwf{B5MtapPI}JB=(Li$ zVAZabOYER0|HdU+L6K$!lwmPl64cDlz&OTj1>@3*Opr9N(Hcy5QC!*uOGD>OC&1b( zQB!Z>!EpYS3KJ|h_Y+F`T{D~cmW`qplJc%cQN(Rr`?ZYngks*2jW;j)>$gq{1YlR> y1(N_ex61Z_=aLOfbL000P8RTOjq0Q`6h25>MQFTG`~Lyr$P z+Uoj>%3kW|{}YGsd-TJ@!~Nae-Ru1T`N_%U`T4=0Kc`1Wr-z4^XJ<$M{{7wBIypG_IWn@pyZd*0`)F@(du8SD@87-O zzt2xkf1^-)J3C8LQ@* z%+A`{%IvJ@`v>87kKc4BoPD!2Jv}opaD90>KQ?x8dOFqDC!TvR@*XXjcelH~E}VHG zl5sBo;p+GLx_I=jqy7CK!^8i!x1Z0tVfyhJE z|+s5-7=EnPnMtXW&{mIS*aEQ)O)nqeGM1tE*k#zQxpR^mX(~zrSec`qAAv^xOjf%SjS^B$oc7N>H#%g{Kq*sAk4zJ7cAux(=>nX2~3a-q(jaq?K93`8;Ta< zCB)wN)xmTX$VI!xb;GCrH`P@J=gIQF1MU{9tLsexz<@|qK~_KL*Zym4KRu(y z#_|EEsT}@u*3u@`JXLnRf-gzDETfG)W(V0{+%^-v`9XGzIo8G~r~p$A*_4(oJZ(H0Zmkdv`T-Q2Q%{|wauT@=51*u?$suJ@;7 z%_e%EK8t#}t?KcQ2Nd2dC=knv9oG&Y)LXs!%kbwqVSXn$?+kf5yA!ftPiEy6Zat$n zlK|t(JK3Eg;a}LjE)YYos*^?1iyg$CL~>%2aGbXX213QfJ0Dknnd(FzRL3nOEff$;Fubho(a}Vj_2mc0>47mPYKB~m&!6hO>v_OE5ym!9#P%C2WCSgamyj^w&<|i zZ-ob1i!R@ibT7Ot^+k5BqO)#$8Tj0Z+t6w~hz{=Oc1mNH(1>wHL8VHv+NRH852bNV zd&7k?Y{5x?rqMI68JO#DEz`e&4Fl$P6Bw8qtWvV;z?A&x(qV>@@533TcF2KD^!7DF zN#iyDe}h2BTNE2`+!B}tC zZ$;Q!Dq}x%{LAN95znRMA`y#2;a<&!QHV^EGjH^$RtN!e$jx?3`ed8Y{f_z>wY`{k zvi_63%IlO%>S(dBq^)4S(~xPq)L(COH90d@gm0KqWL=5hGVI}zM;)EKlZ%iIzrJj6 zj(R5}>2tQ3jxH9vLc-iBQd+EhUc9^{9tgEw#Th=f5VKviK1C;4{bzaT(N!SWjMvqb zYQDM@CKz;s;c-dy?rvp1mN+}f>i{~uNJ$hSJI!=6r!YKAIV#shd)0y-P0zcnFC;$7 zMOF>6GG2P75ZbSnFLe;BGBo~zwFaV;!eug+rE=_Kxo+rw)D|r{4cFeepCO*&j(y+> zHi*|?u-^EnrTQs6LhLns8WQ{BX|R6zb1AR7h!D%nWmP+VB4`gvAmK{Z87=Aty9%F} zP3Lgl|MP6)vP=KAY1opo9C~2((>Fi&UK1Zfw@3+6L^top9%axZ1Z+qf>P7uwB)D z@Ub>zd6{*m>xo;u6I4L$r0X>lmRwS_q>^y!%yIjkGZt${BSYGOKaV}K?#NvAygyki z?Aw>y@Wj4{nlCGd8#v9bty?ToEXYq;WuMjdW!jeP_|&NjZ;G}Uu@xfuMkzX!PrBsY z>fSJ0mnxvW$-(Az45*9zEgI!TUp`}sfQ;QjA`z-R0@Zt~xZF|yxKHbz*h^0HCur?q zmgL6bZ(C@Z!2gK68&>w^HtIG@k7YO(W;e~tKmt}LvBGYhZ>s2XxkZ5w_Lpr6W{+=N0zmEgAU|q40BT=k@;!P#43W@r z3Bt{h41Si}D8A>fjRXQ;UZXAlEVjiyQ`Pg!X}FqG-1Gj7qc)MH1egz$N!gh9X_O#Z zQ#ArY6}3x%mdt1Qu(R^BF^f@pGh&~-+nTc>i&2Jv^8C`gQqa0jKp_iAz>Jl+|BbLr z7iPzJp0TVf=#udjy6gTf30)ZvMIjrf^d=K=fv~VJCGos5?6Ib{?(oBF4!pamK1{^R zCkBLGbk8iLC#;ayZEZ@72u%$gP7cO)b}R*asEIyOkzO*!E{@0;G1 zLyT`mSkx|$jiSC2b0Lciu-)K%@oAD|0Ci8 z$?(L^uMum8wX{n}Sk}rHC&R;CB`^w=2m1fG=;?j&nU?e+)79(sZ*3kLS};CHK{9G; z8DY@t+kpDxw!QGK5+LB@Axy=xA+pB zowP!sIZ#qkM_E%>SI7L-uv%+u zbZl${;IZ#5bR%|&AO4D0{T4!y*`tBdLvf^=SvPjv%h;4r-yLp-G)sgjzl#4>`H_hi z!=fO%%#)96n)dJLi0MROSMX^^^=e4U-QjrNZxGHomb{v(YJI_-ssy!=@Gm>ko=p*w zO6zT#>3opz{%c$UlHP0LZmSx#CttoKs*dugbGO{De?IgH*c^Bpe*e!Z{Hm8R41K$X zPFpxk=$5(e?RxN!qQ2yK3?EZpTT4TEk0AS-8+f+ z{Hh^0Cyfpo?6*%A%ECL(ZxXjTj2>>+sy%zq4{fcjl6PyZWekmOOKH`f@5mi74gT5A z*?=Bi*y3XBNs36%oe#o~A1;Zt6_m>c>{(YIoa#RhgE6T1EbDf%{PR{{x%bmOy=kk_!HV+gVC}{YNENa6cLVy{A5!}pml}z>5ANMIN zR=4iD!e?F1(8ESlAt$wEmtAASmiqWON0$_%Y}U%jyVNB10Dfrb-R4}Hf$T7wRiLj- zAkaR19X>h2RuKC2&r(kkkwpXZ0%J1Zoev6F5)@N|_@bb|6?U9U51mj~`&4h*06xkf z6#b6>Y|B&mg~r&o#5dZQS2yvjRH1#AZ`c^1-I%D~EJg#L|B(vic1;`-B1FA__Vb&Q zEROjgyju6d-;hrOu{~_suyhur=F@@L=TE@^&k-*XK4FE6)?LF){clVFFmC-bH=kX& zd|LKdVCfaFu#(Y7?(C2^tVE$hd|#AS6a=tix!{OOc5d<0UnE+St0YK{|JH#ZyGb+f z{h`T&g|4Yfm1Oh6ycz2`ye&2QcRVW24i8FCo0pq?<*mpM@K}y10vuX=lz6}-%dfHT zUJy<}5-2u!ug3X|frL|5mUw7hhKIS1<;y$>39|mvItK-{Q*u%R1%>R5af968yMA5# zqnsg2ZF2%O7ytyRS>&T4XqaikP-i+(l~_(yU^pXZ zBX`@iapyCjDkQ56559Mm-Ja7NAGC{;5XUx=N-wg_lm-A_fHYhaE^%%iFya8R(D_ub zT+GyfhaC{mPaz!^qmBm=$5m`frV}%c_bACf=EULB*Gx~!}YPzyB^0T4JsE+e;0X2+Qb@JyFPN{M8_Cz1H)!B5giY#waa zAvMzAJ|7^+`l*0OBlpMBIRYRl3z>D;u0(}NNg=lD0waV{0I>v>I0#nI-_&LG{g_Sw z={WVEp^X>z+do&g=%pV15AergCS#Q7LNYL|09ayno(TBct6SbvoC3y)<3)kldWsR( zyyJ@ov<8TF>zXH^jfBT$Vq_+_yr`$nmlCKUx`sWanpKS8qQOl|MD?!X_dx(GWhC?% z0MdaNc4=PkHLgd3y~hULVTIOY z;sIvGEav$A)@dN*4vTesJOH;v{^i*}_Yo#i(1Z!eY3i1NmPSaUN=ghKHi{tv&%k}Y zK&mE?3L;G>{951$vQ7jW%}_*L{#nu!J2%B7O((!Lw)^|DfKtFt9w zgfu)t75-n*Co+`AH_GNnK4R&dS!mn}0-Ody{Rzg%$FYY1+C5PeOt>^$FQ4;*tO?&? zX&=iyZ(<~4IeX8!iaS*ZpY@|byBZ-a7h?}f>Hx0#hfl@ zGN~oLTk1+d!M$=sNV%HqwNV6Fq%$IA0f4vYkBskkDPTStDOJW~%S{2btQU#TPwRoD zJ)KevGeqEiK#+YAp4>SWU=y|Xr2z-gzw9-I?Kg%pJBJgd0J^D#k7k~+2x#bck^Du# zu`4H>Ja`X@0am-l6>~m0K$|m8Zsm&zeW;h5f--Iq4n{u(IAA8iCu6)`_7z2xQCLl~ix{fm#p71b7J@(uc$LR3 z0DxZ+?T2kmL<0F49u4sgB9Y2?H8(vbA9}0qma-I( zeBc9Aj*$O|7G;Byn0^9ap4i$)<-Et=|3rZ;3;0F<8Hn-_-4Weo?n!*z-hmZFy~`)| zScqcfyi^Pf)m*!TI~4@zKO!^qKNan#V*M!la@V1V3xI4;MTx z69u4ZNV?2^R3U*1VamI_cL_x|f4>D`tNWCl-rrI3AU_;tyMg#l_U~ajuvG1y>Uopr zAZr!+8AM{0=nOhKE1<=6ldMvowSSia-v?8#WZQ#`az6Jpr}hh?*~EkRo3PdUcu~SgCiG zULRUkoyEOAJHlRH3&6t)S_Ng~pPcl5i|g=lfO{ENs1@U^khn~cOUY4i8-yAI(!(B4 zJ4k>cLNN2RS%4`B{yXR~@7m$0Xqa#_HXCA(8++}kjaiEt=9-1gL0d0>0agu;!yeSQBXYSW;Yky^R9! zB9!I9IxMDx{&3tO{obqzczyZ1-QWG`xcG0p)4#PRVlz~?zMm1Ut01B-&=KT3!oS)E z&-jvoiptW!A}ckurm>o>$l#Mwe~c3|dClz7eDm1smkiRds$p(GU4A2^JQ8t9XXC5z zN*wU24)@OC7O^0sp~^CiS$p1n7g*hM$WT#%Yk)~L`ualzU>S($^#pM4trx9og4zVg)~S%h^<$yExgbq+TXA=vEwrx?0N zHznqdq7n#Ocds-x@$ud6jXL)1Mg`B-UT07p*Y<`-OH^Fu6H zQ(^w}(Gk@j8HXMMmn+}5+J4)A>StBx|H;{N1o&Pt z3H&_20S4UHNSJhRWldtnn`CaT{xz+wI!&*J-TtfYYR=BgUrD2-AzYFs0foV_;A%lW zn_AL;=r zAG_`bEraaxQD|#LNskbI^=qepJFO>pPc_G?rF_;$OUH^JPndzmW`szzu7f4p@-nV< zDMXtqHoH)BxDu}$(+2{0Jv{wyu2!eTIe2`{^2Ln4$2Q&wzo(?n_0mpzgW@`q3nDG0 zm&E#Y?U@tyVEAshfgiow?a%Pm57mq>TyG8nY(n^8upHK(oj(_0N`Rj(n3F=j+O^&* zkbnuZ``y|zL5hp4l%iv?OUWXlaU36F{6C@X&`s*6I0{}i^vc-EWo~KV3v>1aU#7aR;UJ?1U5=_(~s9d!L{nfOrvuQ_JitRUS z!?Fh6fA9v^z=pxHdikhu4R;Tvjcx;Q%2umq#tf1!$<;wj;-rP#LSE z*LTj$V}C)4hc)ze$YuLpOiRGn?a`YQQUBsyn!yrGVORT`EX=<3c`}y#S8d^Loa$c^ z{d#DuHF#{}$tKXtNu`aOA{{Nn8Fnt~q?~+)J!LsL`2(AGz!C0e3dMecZ%%@^{Z|z5 zb6JwSUjM$(6>%<-NWHH zw<1NqWX-#n>bn$8vPt__(dV|s-tU2kR zt-4xjI^G+ASy!`gIexTY!aZYth=WQJt)ffhuQMMmtM16-Z$$C3n3+jA*XOVMHY}E+ zcFE5+qQ^E5lPZv@0M)~Ie4m*)F#?60_l`@Hwdt&Xip@XeSB_@==~)_vSSWCxK-jB&{TV&DMX|qy515h5KjqIZa*@!7 z-AB#U;+j}_)UW@0w+4s64UD-0&4na}|1iOS-x5D~O6xiIVw_1|IvC2?H%LBb{a#$- zCawkKaDtvXtI3wr7U1i^C>iC7ua1ISc-O*Do!vE|aX{P(SW6;={m0cquScAS+5KVg zmRORji%SU$6Rl^(CNYpq3KwN)m`-gH6Jma-=_0MvdJOoR@Z8i|crD7-(j9~)f%UjFaT61tedy3`!9@QSY5e)M z>G+TPz0lJpF+(ysiVU}_1P-7%S>PwQBBxuUh?e1-4g{N16=TDfZc?Bb^8f(D-f{Ws zvtA(-f#u(+mupn_g}(~ynmzvArkKDDBZ+dF*JYobe-3((T8ZteaB05P6{@t8??pl4 zaa4!e-EUJQ>Z&0mP}9GMIcBIAZyXTUM4SL94vWFuKs$MTz|m|ieDbcEtp3ZUNN#GS z$Q$nU9W`0kRMMLK$7HI?E(LXW+enER(9H8K-943VVt6{7ggZD;CXd5>x{}|>LPQEb z>Y}|X{M@1AaT*on2w-W`YSMKI;*%T)t%lDdtJ<&#@3Nm_5WLXe+--PX4+- z^yB1!llpgW4W$Yjoh5GN`g(LMaI!VGcynoTm+tET0ZGyO;2V>^dG8SpMvy+sBpl{4 zdM6mDW%^xWw?tK z9X;^$4QPVN3lge7xIth%S2hWT0GkU3-iR38DT&*`@ILf=wn5{3bU^{tISsD&^k3~} z{Tm%z@i+uqnJFwwe~MR|kQkRxkKqNqHeP1Ym@5w-X!4|RYoG8%YOS!dIpU2 z(?YM^Zgg8?eUNn)<7ay@1!rbC`QpmVuWM6VTw6G>{}i-3PdRe6I+OCD{?fW&6xAoJ zZMVhTNfh?iwM8uT%Vwwip!!o9uj-GNeLfJBz;~>Y@9EjT6g+p~<$~DU<@9ur23ew` zOHc*oK{!PTlK4TEqK=V=pi(2Q=fj=A7^W;ExA!OoyUd>+%IC~*5;xDvBOGP^gugrJ z9ZL4!=$p51pACK1?HlaXHnC2~p?g?d_qUCgK#UMap4I)TUgBJ&ahoT?@ptif{ z`|UuH6-50jj|}NCRwiDRrVFRj+OH8jVe`dNs#o>;-4~zmCPj?!^BsO)hR3mUv;Sx1 z_rBlXr1R988G;Z^v{o6Qm|llLgB~%Wc*7r74_8{bTAuwHCoV$SIAe}iHcw300&{@2 z0|G#bDm>@4S(F|<7jYs47K-+N^8P03x3P3t;-XhL>2mr^W)B8aXBAMsD`-A#wxOxr( zyN<>9PdIfGW{FzR|96;c#3=e^{;=W%sbtPX!_IMPGek7Fp@f^ap>+L;H{n7V={Cp} z6;zzee-o}_sJl4fLph0~#{S;5*oz@ahZ+n73=|%b;{eM{*Pj`~uB;L#(QY9+woo2o zUE8WoWFBjj@v40!BC++~d4e-;JP>}%WL?#(1a1aFDQEzvrQs6C+%AeWwCOkzXAbg- zdii@3ESq`;02@X>J0{q2@GTXGo`~HZiXXPu$0Egqv93^(P8#L4guh9?~M-eaCe>f8=uIwA+Rb? z^sl-y0gszUij5p7qSXN4b6GFmI3rX!qFJ6*sAil38Nx*;01b^=(v^pAh=$OACYw?9 z-Et!O+*I4VGonT36KU;45Y4$4ji5D#|+Pu8$m+Uq|=H7=tERE-hqv3OLB9*bXK_UKPlDN|exYLAgG&Ix+`b&f$`6mM8 z_N<6`1;dwAKbwSt(c*_f>A!IzvP0oDv^np&-kro?SpT^c_blkT7SBaO^n0UvbVQez zMiu;HV=$*EaYm*KECyJKuCTC`Y;nPRve4k3hZ&f~gVxh!pGd_!qgwyM1ZmZ~$**{k z{%OHj5tsO%Y3>U1eoq#n>E^z6@N@Bs=I%yQhr5E95vd=(Q<-@6N$0K3?WB2wB7q%% z+V-+Sz~`YCaAG9_EMEFNcy_7boE0BG_#{ijG0OJYG~TfuRWpyF(9hOpd>-g3f3f<= z+16VAn}5IWm)u7EO;{GWL&yaI9rs@>XwL?|aBH?$4G(1wK7VP_hc0xNLOdvQCp#m+ ziY1#LKf>8Uo3sJA@>NFHcXEoX51$jkYnrl}Dwj`6ESHgX_M$M9E*m~1|5qG~eCi?R zWnC9$?BxYo`r_eo`>xQ=+Lzs9t%!|9KOg-TK)jq#W?SX~!U8+1rnUVF)Cx9Ub7DnF z>NGtXV}}6Gi;f{=ki8dx{jnDrn3@rEx@U?7!+?1`#G!yG19mODC6GswSm%G5QK9i* z{T{u}VJad-|K|xRXFb}{@_heLd_N2q>&(w|fO->LP6~!l9nYhqj>tC}E`SM*6*vGN z-kHD|SVQkP=e+HVbrg7k6nz=r?S? zFDUkG+MkzXHo+($B_0IS@YPW+!15l$&E{JCd^~tqmCHfo{PqzHHko6RiVQh`iUz!x z@o#Z%RI&0G-wXAlR*ub4iqu-DCV<~D5xb)Kjlm+6hnxOJsQ^o(8P% zcs9f+r|j&$@tDqJHU0h`w??|$C|2q0BQCh;V!ZV7crnZ3=HoIF$E@xO+9oI`DDpHp z1@^EOm^geJK5b3@BjeI|X)h+mny~84vhwjezRu;D{QR^JX?9m>J5u{qlmFtQ_H{Zt zsBnC6;3d1+@;sb!6kmSjrhIcqK{#L7Vx&$y?%+{GWaxK=vS{D*T+Ee1K>ICN&f8!L zH?d3fNIUJpDMUMxarj9z_uY~gqp-SQ|FbgolSte{M7W0P_Ap`w97KFx8m(@v z3J}GBQmb~P)Nzp4Rv93m&b0V<%B38DSg_Y-BAk=(S~7r9vX<_YZU3+;c~)VjBbsmL zndi{`wB)0t(AnTO0a;`*uL|XFrC4Jo>&Pdu;O0WjJFB{X5@hH?E;XUU@PisARU}rf z$w$2_! zOgm44)ZLBT+81G535{7-X(LE`n}mgnvf)UZ$oItk=Mqe>`Q?OgsWJ>^d|D!h-)Ix_ z%a!7Scwhp_!EDW^C%qpJKTqbEhhg(FzOLaXw?m>QW-LE*wRwoZT?P4cu}|-B1N820 zAK`X7xajiQJOS{^Jmz*nkSXCq#h^B)MgJZ_Q0BRl1l2>V?a}P=1=$;BmHq+Vqldxw zk&M-y=UCc*&GHt5B6ps&rGa~|n3&RFyfra9jV`~6I7Xw!z{pGj=OK|hLv|dAzWtm( z83fb6=m+d%S4dH%QFQOsRrj|@t?|40Ns}M3s|Su;VTzItvQ-Ds#Z&6C`9GC}DRAoL=^$7@N%K-b8e+wT&Y*qKL_N$GYXzsGThHcFrX5~a%h@p?e! zNwf&8qhZ0;Q8SnMQz=*3bEE==-I9s0hPP=*+9x#uWnhbTJ?U3bTWgc-^Dzuy0ahbi z5bIqK4r9YV!<3^S5iqkfR_NVY?Rbi--)j>($_ymAdwbZ&E1HGg*ZspH;~j8(1)mH+ z*|S67F!{N9CixFiN?7olX-!1{`SV-ym{P9pf3sM|7>p%`<#My$b*W0r#eazIC~~z& z0aU!Vl5OS%5t(gYBb~iD5dX-kyO03~b~r#%P#OTC1Nds0dfkDQv0q^o+VpJgjZB{l zcKlX4@!6$BijQq-n!%h7`f)>Z=}Fw?On>Z-1rACFKG}Ap^&^LF^spO-?L~TaN{;Lu z{Qx^q4uO&&lS1{{tGHCA2%>*>X;{4!krAYpN@N({z`7hbwa5`we;hu#;+Dp5t{G&^ zbN3)*JWz^<0VWa%7SDdd$&_2y9p}E4sAVTcDTmb%0PoEB>>vWvO)A74yo>@DNG9&; z??R@m55V#53T5xGAn;oD?-o`{zArYTIS-)w{LJFX%B30i)Z#hI;5KoXEbH?Z$bp37 ze+oI|&1RKeLX@W*+4RO{Bt4zp9E(jh{hmSQ|*D<2eUKe3sC} z(d`W;9NPL}WiOYy+Dg0x{;PXx;G_mD6p`)6IC%Qo%f&w6i#^E1vgk-qE*`>@7%7*$ z`7&c)8HF`I%X7QuB;tDu|Mcgr$fp*eWLmz%z}qHVP|YlO0$`^&8E;~uNy3aFXEfVD zDpP|17JzyZmzdlBBhYqjF{@%8u1r6%4%?&L7PTzms%T(K>yS}n^9UQ!_^JDy>|j?% zRJte}$cbgOQDKN>eV?Be@#S0hw+7l}VMlp#fevhd{g)30z|Y~M^HY?a!jnFc@GpJh z`QPdjWAj|14~Qs{5BcMYF|v}oUpVix%C8FzXP20xa>R? z)#uK0te{#ZyquwU(jotCJsW>KGPD(2o`@{%$8c}*nO873DEG$k_P`c3&*sQ$rqGD> zp3*>PpN0?1C$N_98PxwkALMAhZWGXM7rrKH!=Gikt63-7ea3JDJzv`#q}ZzSICNYO zUoOiZk*Dq*!cragScUtRlfIw|cpqw0Dbp%eUh{Tm$%_4l7lQ{XlZRZ?-spmcG7WXS zBSNoUw@tK*3)~ok^@0BcQy(JxiOT8Drw)5|mvaU1YGgw(ek|Zhz{!kAlztQKez_UC z-<EA0FQuwuBJMI&lMq&>9Li}?PpH@-$4oou27+++{3oog1-S{g?hnK@AxHTtfM+nO& z_?nSIOrhJajyD*{dx{(l;U{`YuTk5v-g2b-pDLvoB3OXo=&@!ZlkK_1a5!I!McXlA z16~r;dJCEViBSDC@sP{J2Gk>4ns-)@#(DGVyU(fMl|rTlZt~D0XdVm-Ajp0VzZFB5 zA!YJCA?_k_b+xa)lSpd6BG2@4k_1hSq)aPjZs4NiUyUq|4?1~N{UpzU8u-oQ*7oEm z^R~FXUK~GkXHR&-H5{qzfDgpht76EOvQWSB3C4E6SM^8Vu3l$WElZS28DGkbK{yTM z40@!Be^$mY^Cg>8A!b5k%3Re5|0gsmHaw=VA@o?u>_rCt=HEAsF=XwI+4} zYrDj&)Mof3`M0lQnWu;MM=#CRsCYq0%U6K;(Qdx7)Q#*$gO!Qy05V7{8oGifBS zWOpX@rw_X`I@&TnZ7QbnVq`Iu&@N<392vh$R}^oq%PQ~wk!nE`W_h0q^5P@Eh?$A6 zHK1f`RQ~idz8QO+0`;?4eSc7-k2HtBQuMJyZG#~9HM(mTd7F$==W#-J8J6O>US$ptWQ3A z`w4=Ak|k@Tb#OHqYs)|NhMt@DL_;@%Ka$Y(kR0EOK)i`m z6L^R6c}2J(bcF9$hVqYmD4%-$8Jc4s@d5|NU;M`1T;(aDH=I-u#=0om{5undJ8b9< z`M9pl?}pudFc6y`rOs(HI^l!i^-1jwjzH`|1v&S+lTmRZZH3sjN3==zk3li!s^5xiz8J`5tRW|*Fy&%}6cE2)$1v8CA zh5wCP>cWo(N7^SdBX;BVr`5HudUbyJMN*}BH&zOIl8j)QVga%5`_OP~7wNuON`g}D z996vRB?Y_><7zPQQ~LfIY8M@>8sD6uVtNEff;yrh2+M1Zu7p(cI5=-9y(o0vq^rNu z$Joi-BRiX&P@)s_=4ARlHF9W`hdvJ?XU&pPyO_8F%hQiBJ@1tMHI==;$^hipFInSU zVPr-I-L zEUjlVl{B;@K{3DGzwiadS&4q*xAZ?;R4)c7fm8`7_WCJ-cuv0eXfg@JxD_*%0MQcS z!=gxF>|LHl7QByz0Ce?TisL8qR^4Mm32xOWmHRGB&^De#A9+bf14Qjw^leVny1n=8 zH{z}7J`;I1ciX@G*+|GWyi9|dy?mLzp&@N}n8>-&c=z9z^=+0WN2_L}Iet&^fF%Nd2-ct&JWh@Mxr6&)%WC}^+>7KKI_QFW1NArIZUQr2dy4!+v%4*}!De^*hrd>mh5`e=e?m=lwLl6f;R- z3&&Y<%E|vAv}OSyx`+;{t1@S|MZztZ@BCBsa#||93Z1wX*_|cE?LQx-eX*!b`${U< zF(0dOS#wT+@{n41H#?-j3N-d%fRoI6LOdK`w{kl35oJ{Y6B6U=vxLBldK^I-@gTDO?vhj*zkU!tC>MGQ%u z(U3I%^;X0#g03a_Tki@8L09e?MOr~FuaTenLT#W~uRYT(Q;gpFSV>>R|Vki{8ot0#>vRd%?`$^hSX+ym1-JvPskEXIjMR)IMM0 z;V7)!_OF;Xf$;Lf+&^NPxfs=HYJz@QOujl+AD|g-q=^s)yL77Hg72$rWVTv0R&?`o z=g}lXA9y?>&W+$aV(;P=14dunB|Y+|&WTbX!q8w>@54axa1u3no*I0ovWtNE-=eA8 zvMZb*dQcU)gItE*x4L-r3$uX6FIp4!Aq(0UZ&=!bh+AlGO5XB7wL3H9;haC8C*4L4 zSBciiHc)Y?{WDT0>v(=hE=S-V_HM^s>6NOMCQdMvy%_b_wQz!YFp5zDb>a!*w`+mk ztZ(LOaY7keyzO*JGGagxO$hd!qD{!=FxiEW+Kk_p=*$?zT-@G!#_~CU$fu+yE@^Jg z70VfVW+B@TW~S7-TkBB}dwHMmswXq@bS)5+hne2HS0|k-g%OY{T;xVUHazv#9hRU_ z-a`+Ta8J!OEnn7wSKR^0rxhW5p$Y&Jtd{zrtoiF>mtO9l16Z>HPiY?IC%|0Tdr1}*_W*nxHNkWpfa^%(^1>=G2vekin^dRW+YF(10#j83AI z7%+BE5wnb-2PX@fJTVN5Ou|Q!#4o~%qoc~Ave~g9G1^raHA)`4 zSZVMnE*r90T=}C}<|ls1309oe8aBa?A<({of?W(man-}$Z)PwoXw8S=iyuFEWA+EO z(-eMkFsEPi476Gln(%E2d-;%&3!2To&?Zb_lN0ok4!%w8;1U34F38A^s=0fdxze#H z1k7PF4a9(B4F=+vdh24_-0_&2TPtVAx`jTbLwi0!iLL$4qUZAg?_ar~uW;NVTH=u| zwI5i3K4w_hK*zH;aQwt!0DjGT7XFfUj0h0E0jzVdpkDwczu}reD3Vw_|15FZ=1~!UsL5NyEQSFLzB%K}Qvjndd71`^ z|6w4~0z-lXIxr>0*#%|c*NV~@%(Cmx0k+jIGr7*DZh8NPbKkApqdEg$;6#a6jam%Pix#s90}K zC;IgQ;AHn)I;Q~i;>AeNw2L)R79-yUF@}ayPU@mhg6d7%cfw!msPNGc-*WdV8er_g`YobE3F5T&ynh2; zCFMHgTK%(M$(31;4$rx4PeL)J^JX>rB|)EdJdd-BQ6M~oVQV}ps#oqAT9^jFm0s;d zyMY9j9*G?REWo^q{*it3w-&~SxJea_J8PA{O~S8Mn{Be7Ty=0|7PJmsbM~l<6%#3C z$w(yiV&3LF@HedZK|2+#Rpsd*1b7ksc?1&U(u7~2pTFWKa%_?9JfwlEc)wgs!Z*jf zMlApM;ZiQJC-q%h036@UPh@cOeo>y_iA_1Cu3!}5a7{ml+>_#IgU=Km&JMchMU4w~ zCXn&O%^h~0Ef(M*Y=Qxli-lxy3-KWxUuOTV2qcW5krgDQc^1nU-Xx&S2_^#3z~6Z| zj;5%F(hq2Gc^vvW#MDIb8Iq9_g$UDW2^9B!__rSZ6S(@6M*}QO;ET$WMekQEchdKo zuupFP_%Kkq^-=jWcl6=AeeDzr?5ISHETsGO;NQ0I)G^`X$gd7Jdw+j5Hyc&eZVImSPuQpD$Lo$UChK%@gVu;X6b)I70+YRAI4Xl_ z#jn^y9Olv2p5mUJmvetL5QzTB3B=~P3Re8#BK|=(R(YxmkGdc^P!n{Vj&`o#pMK{w zIw8aa6totLy2oD}*AL!$HbTd&rK@Bh*5{P0q&dr}1>q0tU#i1`+|OG-dGeXGOQgzx zJwPIf8W6S~rC~QXIYeKDdsYSQ&uQGsnAGLSfRnwW zwHbX~81f&2?7u^TvHF8uFXr2cHv5WYC z1&#`jWH%V}UnlyKK>^wNsqlyxL){+u4>%%}@7Lo+%e{C8teUraoVx~b2p)&eI?o($ z)Qi92qCpzt=O3=yOq#)H2eF8SXz0xEZmWnyT8Q6+Jg^*nS)yekYt4_L7AFSh&4EWFuQy zVK}OJ3XYUd<1Oa56B4^x{C8MoPK0BOHw^3g4@E>OM?u+lPXg3TDI!kDaRJN4u0LPr z*A`9>WrDxGJbBmz;ydmSj~_)Q(tmAaAkfZIya6oX^j|qg+mxLT6RM z{u#Dt$Xf2WW;Z85$>k?;+WR!HlroWm+XcNc}q^WR)quxSt_nK(NWj?;v&90JEO;8`U_^Tms8aqJwBug$zr{t z`vTzX%1pmrW6I82@y_Wk{0O06$3bjEG|+fi9zFjvP4(I4;qj2DYenE67|P0 z9a(M2(*3=-7Iyup7XmXECN2_N`U30y<5)o|&fcI;k%17B?=`JBxjhZ=kZ-%ISO5h1 zu6#)aw|j&@w7rLR(E#=pI_=?Z(oLzE5i-M2~tS#P|TWHIP3;OvrmJVgGw23xzuuxOExCpP-U?Qr5_%S0zBp&f)$NT8> zYPn}#=dDKB#@I*)V;U{2US56{mcMpIbm7)C{6JL%A2Lzg@LMfSzf=mFLlv8;Q|D^f zqahgsph2g1pAcXH%W2E*CyzrC{o6raDoa{VrhbqZ4#<<|G`LD>0dB8c`&E~G0ev|$ zx=%U+jDU!1ukxc3-cgR}9tO}>KPVCQzi#xP4tCh4dur(UDn^;sD{JX+Zc>;XKcSd1 zM=x9v04^4&!TRRU$|fU0NbSLPv}36(eGl$#3}BU!_&36V2n-LVVZu0T+Rb|d_Ex#e z#sGN*GtvP6Dq{X$05%uN=xIm0*9ripcsLLNFf#OwZH=M*d;zc-hJwP48^bLF08|1( z5{{;v5dwgPHU%-~%DVgC0RWg{1pxL=1Uqj5PDww{@UBgx!@PsQpU7f|_~L#6VA7yH zAS4E`sSI##Uvp*$*@_@{$op?433Nmv*arcpZD|XRB^EUn&J8= zB~Suj6-_=*0ALod)P}FWyK^hXULS|}-%1kbkVMdw3;2_53NSQwl|B~;d>!flukxq^ zfI=uCg!=dQoMA{@34)Ogg=IYGy`&BRg`hpJQ3nBmyW3y`6gL3qApcuQ0v(bFc0U6m zLU3s8I&~zt_$28DS+4|g3ZX>GtG^nBuN-)R{MON7B@o#_D_2kl0Y?sS17KlFUq|`h zS`x@!DWqQn7{>;;w9=LY*X==C*wQstV?b00t?jE0)wfKEI^-ECH~94eFbJTp1T|eX z?#3f4ARPmMvDW=>(-KjE2=EUujt#cfQJtfU_aG-||C`nUuyadJj4nN1?%VI0ce0We zqreuPLBKlX1FfKg?>5)~MK-_`%k4D)BCHc=vU`R*2myY^GvL3|61Pwdj0C<$4uJhY z47NfD2_y=kmdOA;C;_mGgokW6p@b7g=sTOJ-v85DZUa=YujBkb{2m?vaL^q<5CBx+ z_!>X}42)1+0E86yigi{fDukk@yQNlO7bz&9lqiOt;{kw$ON>VVO+&c+4*EYf!lC}> zbptr;4&as!!x>Nm!a9Y9kA*5TtY35Tq>&M3l@wY@6hgaibuj;Z3Va|i1!Abd`gjmG z6~d8%gd(ePa*$Hb-4fe-2jfe14uofiXY(fO=d1H-$L!e^!L46kZKV22z@38ov z{|(^4JD~Fxh=@#$IhyqOg=IV;5V-&KJ#hY$;XpowK=ZrZ`kJ3fG4#MTo&bPLU^Sir zD_>j64+85ewtxI(VRkOme@X)!dH;KuQ;2r<9ng6Ts6)aN+Vh$}|7bUli(ny~{wv>r zv7lEsE#)^JeAcwx(aPh-j<5<>$sgpS7)qGo1OcxvKe=b+KmN%BzLl51xSg08l%Ugu zIyU~}Sp{FME~dSKdrj5%96c*;iC@? z&54=qxv7!SQ2&!V*8jY30EgZI#(ID{jJrT(Eq%IqL#HJwHuWItO5Xv!ErDi#A|vj(0B%{dle3W760#tuWp`i zDJv^7G#dJtR-2MiqEF1p%m~U&jnk-A!Tx(4?0?=jfMf3f4gtRY0i~hov2o$m9SuS4 z+1VLcy(}|1uTY;-cK+s9e*y2q+yCmi{jYqogx_c|D1@S(x65|b29iSnLxETRr>yyCOn9UwJt8zz(brU}_^_~GrN126zkUw)|9Bz( zmksssa5w}Oz{*`;Si9lxuLKL|VZmXgstBNx=hXlB&rgW=!To&2fi`c@gF>i^TkK{H z0H_s(<3YTe6M@_*01&uR2J<~}(V?oa;DA1czX^RWht)z09PfT}d&2s&sWY8`0D=K; zA9Lm_F9wAf*zRh$@jLYXV&1Pm67LQc;$V3HWPolRVKt5iUFBceGeKZG6r7>H8xQ-V ze0?mKxAy{czvKP?%c+6@;NUQ@I|$%5Ahw{pdHWnLhGlUbd4{w3`xZgy6o>QKzpb!vkjEB?A%Z!mNWa&Dn z&|C@>=6%o3b)o%}0lHBFIISpwv#ao(mK`8l34=+?!Mr)|sg4r}0EdTxyn-{3bEnu8 z0}7!?1~}}^3jiP%Ruk2bb5Qtlda_BLOrZNY)71<@K<9*kRsev@T|vD;_!vR{F?}}H z0p&bauab^15JNloPy+hWPGFNfSxj5tasU`A7ywfrcPal96+f8VZ4o|6R9BYRUYia{ z01vkizB-Jqf^NL<)nBMWg9Rt0>j6M$2%!$En2gqF!?y zVTb~+3#Tbwfpnuby;SMr?P>sU7w&&YR|BmzX$~V*=crb=%;;xlKq1tq63^$OKsR0y zEkrT28_~ZF^1x_SfUnB|;3*0KuwNo&698ZlEtCNog)bwo0EN&hBm?+(@dE&ao3Ndn zw_<4bDDW6=l2^DM0H)FSpY@N=5k;(3^T(Rw zYz7qo95E=&8vw}EfpfV{_)?Bj!p>#9ZNfq$*Me@m@NnaV;i!Py#$onfbpCgMSOi~# zI#4loY4z_4A0$PEPyvydG2Vn#^4|!bRJja8==|eNhuOW902ukO%VdEl;1yd?OwA1@F9gs&e0eEma$lXFlA%`#PI zgw&iG63c`O8RnNIabko8u5<*f_PX%p zHfJ#9v^In2U>ia2fA%ZoZ2$l%&Ir%Vcf+P2U396x4_}ucB>=RdszD_{c)+pKkk=7s zS&`Zq_V`^k0KopTfqY#O5UNSd*6$M@ml*?dxc~qd$Ak0~8g{Upv?DG(%-@9oFxD3T z+iQ~?MG_DSG##G19C|W>wMP>o;hppr003WDA{y16xNEE6Pvh1TTii#(>09@h- zzzNcLHEeb^P}FAbl%$ccjCWk#8FJ>-3#SBZKA^`D6h8Dr2iXwY{O=M+02h}7AFN(@ z3Zb04NrQT2Vj@y+Dz3lo-7+7SR4S( zKLWU!?Z`!$2H{cpva42A;>~{GVHgqz`ibyja3uttsnI+p(Otd>*zE{-+SvfWv`iO6 zL($l}3-fYSv9J@sk7z{!F_a<*_y)THJ6wYl^w3-;0C0$ac>e%UmPYFua@vIN7}^Pi zV5kEg7775PZhVXIsPha@H5y0Q6Kwo1oA9*L0RXcaK}nwq&H^jm=7xd}WaVP}LcH;;lBSl5`mD2@QY&&mFucn>oG z*mtL}wbH!T0??5o01(^?YJ#MU)Byzp06W47St%!kWA1b8J`w;p`3RUJV`$S{0RZ0# zo(nyN-C2Hv;k_ykoNm1SdYxbZd>~t;w#3Izv&`9%-{M8^vz>4HWHM1ep<&Poy7fNsLtv-9f! z4^3eV04Jt`WTh*rgM17$qfz_9|ty}N-JleZ_n zFEAeaqA&>AKzju{1LF?p2SEq2L?Gzu44G@=B1-)WoZAhYB(sA(=qvzmj38Y@^5?=z zfm^?Xsw__G6$l3awgVvdY)|}F5GSDGZGCn%nL~1F4ETaQ{4aaTNpYYT#|eytwER1P zr!f#Tshr`3+;EZyWL`TiB=;eF%jS6zJq0vz>$zKZS2L`_1 zoRJIrq9Gphqq%oblO#4ZsPIz(1IhUxC&B?hlmeZ30X$$I|I0=_;;bV83UgsFtdo`~ zz#HeT<-uN7h2SbsSKv`xnjV*so%9{=II!YEN!B7=w6kXe?;m9+060rMl3O#YNY~|N z=)dLbjU%`7+Tmq{A^??K2l>q4P)&G8Rx{uF!)KQ{%!TPCoB_M7M`h(7f0>h(P#X;decDldk_Z&XM}(v{9Buy8x;|;ewvVnQ zw^zkQ<1RR7>O(v^)s6sgS}}ki0KL(Xol|mgTX{bisK~Fp{G}dzq0{V$$9?f$^v4dQ zg6SbuF&Tv^-!1Dm9n7zL{~9a<64ppbFfygIfvAt)>H+DC66 z-@R>_8QXSb`}-e%sLx63NR5l$0gJh8Sj>YxL9)>okcs*a9K&Bf(G*KU9Q;fEh?=wa{=KD>RqIWalA zAwd^XqX<(HdcK!UpIIEQj*hEZ+kP}B$--xTe)~&(VP;xPwJtUS-hb!TfM!mxGXP{m zopuR8AgByeM8xV+bA!?{GV>A>laiA3U6z!XSeTQSncW^!4SQQ)F`Lpx)n+f_XYPm& zsU@G8oRd?S*!?5*NlEaT$ywR$9aZ6x(dzgBSO)1-fv9`!?SGlueNMXsV55wGaC~S@ zY-DX}bwWo>Lr_qAHwy}Ch>2O7TNNG`t5GY$0&qEtpKSmjw}3KOg`XK^{xji2*CxPc zhQKy3xN^ugDCYs-XKr=}fNa9U&O!k07bNabr)zMJSX6Czcz7yj@Sk8Qn=URA_Oiih zE?CS4zOZ>W51s)&a^q*l!e_$rvYsDWTWkDGwF=;h0s@r5 zuw70a5m8eU4W{7?|6_D|O+wcG~s&P~&ID2g7Ij zGWtwc%>bON9Y(fF!E!ktxqmUN5ethqXRw$p;4mEi+-fc_CI^qV4=gn#pBZodGlK() z{aJn{t&MPu|79bcwob;&xLghlw#$+Aa@`I75jw&bcXKiGglU->d?bFRf8Wo9WpKW1 zKa!TC8|66D!gGKbl0 zX957dVcI6w(@g)^i#-6mEPSNhK2x|2b)5g5mJ3SOPX;J+q)m8Odg88Szn<$*0JzdR z5y{Y=kvZ5#OV8YuY_y~OFLRqLJ$2Wy$!-n@fNbt`>AAa#O`q#{|I6HlJuW?Y*RaQj z$(&;MN{`+(>|U9Z%w2l+u3#ga<$u}82c@U)e0y+|(*PiwGF*E8&bEnDWKOh4@0L8^ zT)TUW%&9h1a)EPgsLaXsgyaKf+7r(9zs&7L$qUZ2U${9P0J4!UNPcjZO&ck50h@Zi zk`HaM zmt~^2Inv-DwLLvYHUMmx#1Wyi`-jN}gxw>Fh)~&!_s9l{-TSQMPNDYfP}#sSx2JwB zc~qE9e@Zr>Y_3!h5SIN<9a#PcihwjgF2F{+$p)T1Gf{FZKb!cdY(U!FUr4^?V?*Z3 z2CCirkmO!#_Rzhu0c^9R{-70maF%R9+sL0wKJK^nKT0;x?N?GPXgT`(m242$Txsv@ z;EVox#e&kJ5i>UYUfH0r2~tAX$9^$EHkfRN)Ewwxzn&o*WHwKl9qMKy=E(-1jgg2V zM!SEEY*5agLj8aN9kj2XTYwq0#rq zB)eUhXR9Yfaq!I^6%Rp7%^yu2c8`^(!1|yn>xweB@%<_BVL*+ zdBaIIYv^-My$xnQH&kl!JN-78{WGU5sQcy59+1v`R{_De+4nj0B$#>M>~WIwU93*z zC=j6YrAm*Bg5a)ae&asPZgjHY)7*da%w3Z6UEZcVI&{PfOv}deUl=j;QK`N!E}J`U z(gV*=vk?aqUvPh5(o<5JCt{oT)JwD7CqE`|{CMJHlig>(^psTF8%TwtS>v9W^P8W$ zKR5Y>2gg5l|MVv(K1_nfnGa8Va{B#`jeqck$wS;n|7OlJ { + + const templates = [ + ["html", "HTML5 Project"], + ["php", "PHP Project"], + ["javascript", "JavaScript Project"], + ["python", "Python Project"], + ["c", "C Project"], + ["cpp", "C++ Project"], + ["java", "Java Project"] + ]; + + + const choice = await select( + "Choose a template", + templates + ); + + + if (!choice) return; + + + const folder = addedFolder[0]; + + + if (!folder) { + + acode.alert( + "Error", + "Please open a folder in Acode first." + ); + + return; + } + + + try { + + const fs = await fsOperation(folder.url); + + + if (choice === "html") { + + await fs.createFile( + "index.html", +` + + +My Website + + + + + +

Hello Acode 🚀

+ + + + +` + ); + + + await fs.createFile( + "style.css", +`body { + margin: 0; + padding: 20px; + font-family: Arial; +}` + ); + + + await fs.createFile( + "script.js", +`console.log("JavaScript loaded");` + ); + + } + + + else if (choice === "php") { + + await fs.createFile( + "index.php", +`` + ); + + + await fs.createFile( + "config.php", +`` + ); + + } + + + else if (choice === "javascript") { + + await fs.createFile( + "index.js", +`console.log("Hello JavaScript 🚀");` + ); + + } + + + else if (choice === "python") { + + await fs.createFile( + "main.py", +`print("Hello Python 🚀")` + ); + + + await fs.createFile( + "requirements.txt", +`` + ); + + } + + + else if (choice === "c") { + + await fs.createFile( + "main.c", +`#include + +int main(){ + + printf("Hello C 🚀"); + + return 0; +}` + ); + + } + + + else if (choice === "cpp") { + + await fs.createFile( + "main.cpp", +`#include + +using namespace std; + +int main(){ + + cout << "Hello C++ 🚀"; + + return 0; +}` + ); + + } + + + else if (choice === "java") { + + await fs.createFile( + "Main.java", +`public class Main { + + public static void main(String[] args){ + + System.out.println("Hello Java 🚀"); -if (window.acode) { - const acodePlugin = new AcodePlugin(); - acode.setPluginInit(plugin.id, async (baseUrl, $page, { cacheFileUrl, cacheFile }) => { - if (!baseUrl.endsWith('/')) { - baseUrl += '/'; } - acodePlugin.baseUrl = baseUrl; - await acodePlugin.init($page, cacheFile, cacheFileUrl); - }); - acode.setPluginUnmount(plugin.id, () => { - acodePlugin.destroy(); + +}` + ); + + } + + + folder.reload(); + + + window.toast( + "Template created successfully ✅" + ); + + + } catch(error) { + + + acode.alert( + "Error", + error.message + ); + + + } + + } + }); + } + + + +function unmount(){ + + const commands = acode.require("commands"); + + commands.removeCommand("templates"); + +} + + + +acode.setPluginInit( + plugin.id, + init +); + + +acode.setPluginUnmount( + plugin.id, + unmount +); From 2e22a53d3d56029441b84311ca0335dacabac800 Mon Sep 17 00:00:00 2001 From: KIMINOU Degrace Date: Wed, 5 Aug 2026 01:30:16 +0100 Subject: [PATCH 2/2] Restore plugin ZIP generation during build --- esbuild.config.mjs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/esbuild.config.mjs b/esbuild.config.mjs index bebc35d..544b5ee 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -1,4 +1,5 @@ import esbuild from "esbuild"; +import { execSync } from "child_process"; esbuild.build({ entryPoints: ["src/main.js"], @@ -8,4 +9,12 @@ esbuild.build({ platform: "browser", minify: true, sourcemap: false +}).then(() => { + console.log("Build completed. Creating plugin ZIP..."); + + execSync("node pack-zip.js", { + stdio: "inherit" + }); + + console.log("plugin.zip created successfully."); }).catch(() => process.exit(1));