From e1949282910e0797d508c6bb9d61d0c7262509be Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Mon, 9 Aug 2021 17:05:40 +0200 Subject: [PATCH] #53 - Add save as template --- CHANGELOG.md | 3 + README.md | 28 +++++--- assets/media/styles.css | 14 +++- assets/v2.3.0/baseview.png | Bin 0 -> 48166 bytes assets/v2.3.0/global-settings.png | Bin 0 -> 12036 bytes assets/v2.3.0/other-actions.png | Bin 0 -> 30878 bytes package.json | 11 +++- src/commands/Article.ts | 2 +- src/commands/Project.ts | 40 ++++++++---- src/commands/StatusListener.ts | 7 +- src/commands/Template.ts | 60 +++++++++++++++++- src/constants/Extension.ts | 3 +- src/extension.ts | 3 + src/helpers/ArticleHelper.ts | 2 +- src/viewpanel/CommandToCode.ts | 1 + src/viewpanel/ViewPanel.tsx | 39 +----------- src/viewpanel/components/BaseView.tsx | 3 + .../components/Icons/TemplateIcon.tsx | 11 ++++ src/viewpanel/components/OtherActions.tsx | 58 +++++++++++++++++ src/viewpanel/components/TagPicker.tsx | 2 +- src/webview/ExplorerView.ts | 5 +- 21 files changed, 224 insertions(+), 68 deletions(-) create mode 100644 assets/v2.3.0/baseview.png create mode 100644 assets/v2.3.0/global-settings.png create mode 100644 assets/v2.3.0/other-actions.png create mode 100644 src/viewpanel/components/Icons/TemplateIcon.tsx create mode 100644 src/viewpanel/components/OtherActions.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index 70f01394..ed646023 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,10 @@ ## [2.3.0] - 2020-08-XX +- Refactoring and showing other actions in the base view +- Show `BaseView` in Front Matter panel when switching to `welcome` tab - [#31](https://github.com/estruyf/vscode-front-matter/issues/31): Automatically update the last modification date of the file when performing changes +- [#53](https://github.com/estruyf/vscode-front-matter/issues/53): Create current Markdown file as template ## [2.2.0] - 2020-08-06 diff --git a/README.md b/README.md index bb4c5f95..3a64fa88 100644 --- a/README.md +++ b/README.md @@ -53,14 +53,22 @@ Initially, this panel has been created to make it easier to add tags and categor To leverage most of the capabilities of the extension. SEO information and everyday actions like slug optimization, updating the date, and publish/drafting the article. -When the panel opens on a none markdown file, it will contain the following sections: +When you open the panel and the current file is not a Markdown file, it will contain the following sections:

- Base view + Base view

+> **Info**: both **Global Settings** and **Other Actions** sections are shown for the base view as when a Markdown file is openend. + When you open the Front Matter panel on a Markdown file, you get to see the following sections: +**Global Settings** + +

+ Global settings +

+ **SEO Status**

@@ -83,10 +91,8 @@ When you open the Front Matter panel on a Markdown file, you get to see the foll **Other actions** -At the bottom of the panel you can find the following actions: -

- Other actions + Other actions

## Custom actions @@ -143,14 +149,16 @@ When adding files in the folder, you'll be able to run the `Front Matter: New ar This command will initialize the project with a template folder and an article template. It makes it easier to get you started with the extension and creating your content. -**Front Matter: Create content** +**Front Matter: Create a template from current file** + +This command allows you to create a new template from the current open Markdown file. It will ask you for the name of the template and if you want to keep the current file its content in the template. + +> **Info**: The create as template action is also available from the `other actions` section in the Front Matter panel. + +**Front Matter: New article from template** With this command, you can easily create content in your project within the registered folders and provided templates. -

- Create content -

- You can register and unregister folders by right-clicking on the folder in your VSCode explorer panel.

diff --git a/assets/media/styles.css b/assets/media/styles.css index d74a8202..d006584d 100644 --- a/assets/media/styles.css +++ b/assets/media/styles.css @@ -21,10 +21,21 @@ } } +.relative { + position: relative !important; +} + .absolute { position: absolute !important; } +.inherit { + position: inherit !important; +} + +.z-10 { z-index: 10 !important; } +.z-20 { z-index: 10 !important; } + .w-full { width: 100% !important; } @@ -249,6 +260,7 @@ } .article__actions > * + *, +.other_actions > * + *, .base__actions > * + *, .base__information > * + * { --tw-space-y-reverse: 0; @@ -288,7 +300,7 @@ padding: 0px 14px; user-select: none; text-decoration: none; - width: auto; + width: 100%; } .ext_link_block a:hover, diff --git a/assets/v2.3.0/baseview.png b/assets/v2.3.0/baseview.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a80508d11b69ccafc045f7f8c11c26e7d2ac32 GIT binary patch literal 48166 zcmcG#byOVD(>91}a1HJ*!GpU)aCevB?(Xg$Ah^3ra0wdRB@o=*VS9e>`^nk;>)W%- zIdi6ax~uBeo#|UoJjTso2RAg!ztSY7!c9?oqKl!Qyf9o&iYay>!F1-Z>Ylu-jXi8M*o zkBp3_{y4Zw$yageXZtKPe@oWP8UM@UP9H=(a#~W_Sjh*|ud|;gLYCo(*f^5j{OzVb zq6R~nwhnZ-!JQ~ZhQQ0Sq{hHtq#)p>O2CQoAr(wdBUE7w$u=}m16?vnu*4utmC6&d zRW!tKrPmp|mJc&jJNTWF5?#2EWi_(x%IwQfddJ-Bc@}h5TUSU{s|CGR6u|0`|K2?5 z`QP&`K{yy;uVg<7dRxnbDRzLj)rY4J%Nm^h)L_CDf(jDCl!D;Shnf#W{sL9fi?9q% zy^Y)zC{Oc^}TzJLABb1Aov9yRF=Y zCxF!2r?I_uNy7);6M~}zCN46gh(JS_!W|WOEfHE!pvX7xrb<)+r50-~;ac#l76Er z#jo}R80k^tLxclAhV_PHw@Vy}FDbhCHc>BPP==f@S02%Q$baDr2IciJV}!ubLCFSj z1p&4rj1d{K(El)t4OMsr7#jhr0(J~%SiN`Wq&XexY7Ih5pwK$R(sOkSFZl5jH0{}1+GD<*uL)T)Nf!`Ryk7LG z7@BWfgI?&QT5Mn@ttQVQ8kr(6Ti^*=j2SyBGD4*$?{3j3Hy=U@vIBKYoqI$tHBZN zN$4@*?8(wgg?&L@zCq!~sL){V2FY6f+;;5G64LRy^~+qeq0tq~aHa5>?-&CQQRki?NL%l1wR#Hp$)1PmWLtP|2KAu@FD7JfJ#&#=%IhX5z2G z)j(Mit=Y9}uw!V2X@z!Yd$2wCB{Ge7B{CzL=HuY^%>AKXm)^N#R6FurZP975#T(L| z>tbM2!Drql$=C08==u3E?M2{$?Q;D3#6VK7)k<%-uVjgl9!V3}_asUD! zB0Y#8I4X!L=q{)gdJ8!bArk2bZYUHcY%z?f#$DUr^vxwhTGMWM8KxO2n`?cYrkTZP zw^%+XJ0p84+@wFaAAdlQtvhpJVhFA^A}RtJJJ>blF3EO;$$VN|TM}D*N=!={lhOma zjCM@!WGk#sQr8gE!5Y~R#Wqq$Qdr`Cy^vPNR^GEzbGEbNbAqN&<~dsoU73xZhSB?J zZ#w3zKiGP6~lT-{xb9&uz2X=j}D=bsD-V zNN4M_kH$0MhtParpU7N425dbnH|z-V3Q+|!I@1_K7SE|`TXlwhj>hZxXbCx&Y>X^j zJbHWy;SZWShO@6FKBwFD(`GDYg?q?*j99E#FZ5|~jq&k0b-XjWv^tpvPe-PwzhBgt z)NB_j7AQ;WN@o@LYvHSoJ~m%p!nDg*Ussu3b2=iudY*s5G=_yqWDfUJwb52vox3a_ z{bY-?;K_2$s?@e*e6r|UX=-HlgZnT#%^7LmyxBj(bUd3_u4JzPIqsYv%^cx-sQKex~s^S)0ajRbfPZ5jCY5pnW>SC5l@AX z+!Vf4PwltH;b}&U5{z^zLTcFDYVUi?D2}`9^b`XDg#*4)KIY8CJgW?joU<(FTzs$k z_n}+a^YOi>b$_^z!kyITO2nSkH=a7wt}ky{4_O~2+tvTpI^2gZyl{N6^L{D#^mL^> z2w#i7N#4Z2?~pP{jnZKSs?%g#dGf zyFxk9@LjVPfPIeMeM0FvKKm6)3pOcrrQ^uO50)dY>`Gk_8>7Kc+Cvx+8}mN8MMgO` z>Yx@qAzJktR^X$W0j%vC*ssgS*S%ez_jEkddK9ojY5lus`ap5r+uvAQa6|<6`|p(+ zFVs!VLy*+O6BYnwR5#OJ^C6*8I zKdyqa7?F6`+Sobsc<__`=MEm=81ykS8OeWcarw?qrYWyTB5Lns zM#90w&h&*$0D**rgwM&;oJUzq;=j#-Gk!8l7Z(Q}W@dMHcP4i>CVM9fW)^O4Zssqn z%&e@8z#WXvo^~!q9*lO*Sx?0|ok@fB!X3 zGY_l(70J%|ztaK|WCmSfW?}lm{6BpIrhK4Jc@(WY%xpBptZael0b&TSec|By&;9?8 zEB`Cve_5(In>mTv+X99z0{?4%|J(R~zxaPQ{7*=&{}qyxo%??e`M+KHZ%aOAQ0D*J zO#Ih0|L0R+o&^y2nE&T@CV&u$J7Nb0CIlueCamfKeyRuUgE@lZmk#B=wDZj|e0wOm zGd&FfQ=10!8J13JrhqX8oA&%$CM{ef(U~ZTggvv_q<(IF;rA2s6fl$0E4EZau-$588|E)TqHM`coG!2 zFv&9s2?e(AzKj@x$wd@Au+mRs&usw4z>FUp%wq^>cN(%VyS^trok6T+W8&QyDOH>-TlpR<^5kID1(ZO4WxV1v-7 ztY@W+QZj6xz1{8;#h;kUc~MAQ)={HRTCw>_t&poIBoyFPw$^MZ@`3*~=35S5^)Y*y zPBM?XjVNg!smtynBOPId^Z30UyY*{)#i!MB0?oA9VrhBbUw8$rsXS^j#mt;HLawz070(hG2N@h=`tDM6* zQ<&|U8ZI>@Ls4d1&`7-h}X1f-J&D}Ic`=arpoZyR>FzSL|I9}YiqmtlW6n__5RKx%Lh3V^=jbFOYco z_imWV0djTuLqH!C;wisCkIx>S>(NtaO`$@3O;iq$wP@vsW@Txx)bV_ojDOWyeyJ5T zEDG_$3wZy@!W;SVf&Ubz!>c)L$^`$p2f03bR%-I(U2A7*f+vD}_R+iuU ze0;Aq2xFlnsG_KsM;W+q(01yp>{giT92M%yBl>SJtG$9w>l7`UxypBAShp^k!X%w2 zJk5owv?_;3U$0EA9o0lcL`LKFrc02HS5(WV?5=JOm~Cbqlxi1sPAjr3AD4;Y7IlB` zi1(*lsR!}z zSa)X`mw~JB7N0#wUa)}F;GTm@@|fWKtbEQQGpFL@ZY+(iX8pG~vlO>h=~JA<{{H^q9cNe0no{V{ftGOrOB>Q{hI#(0Loh9z z7k+Z_M1ty83(HwS-r-IjU-JZfOCbJ@$|ZfR7ljZd3fkg!HXSHua$kvhaeQVtz89v( z>RIiwP0z*2OwQ~=y*$(KEf@O5=W;qIZ9Q4@uUg0baCWbf(^~n<-x7uNuzd#2idpy5 z&GAJeLtKsd5@ibJouSz8yCnr)1jx?=#vvi$d2}QOK|-HIdrv6BGBgL&f8_K(ZiUJ= z*&Ybe)j(-{626hus4@*q9ewq5=B>)+R*~rN-*W2%gI;=Xj;w%6Q=yMM&}!v%dOUQ* zGQC(X;qHvYp!HtlvK))?#Ei#*ikYpj5_Mhaa`d%cEXzfh8fXrQZr@qr7%s5Olf=Y8 zL=kMoPmKx+Kq0@>UjKc0*(m+*^Yt3>`M+cN`eqrbs%w(ymaJvCZ565`_eo}qWGJFOf|*ALB2 zE(;fQ>aaL-I_N}xo5#UT>TZfz7u=9l{FY_&C z7|jeyre_tD)1E zMq*GGh>vSv+^1UQ^>ErLF;VGGmZ36WlTcZ_QtW=s?Ecz6{VPTn5rPFAyf!JL1(u#~ z`|{H2dZeT0=)C&{iVKN__4MqyXc}x&#Wh^}OT9b+zp8CJnDpHNiGVI+M4{U~Azu~e zkadS1H{MtDlR#hUw+I(j_1$~o z25pJN8U`#-EgB}-R&!?^&ZmMz1FBRWP=F>ZNRU$t+KZgM$bP z;04NGdvMnL|2IK6Kd`26sJYf>NI{W=P(5tnA}H@y^V7qift2Wgz|jbp;^DwhyEuX2 z>Eqwd)&VDC(7^DN0t*g7<#{PAAYu7?us$9(a8d@8R0cXlOhO=u%T>VM+xCy_0C0ke z1-E>P5seU@5KvIoftt1MI?y}a?q9i(c(_!X)gI>Pa=8YJ-O(0s?Y@|NUt($H~&n+1euUocPML_ifQv$DP9kB7Q%)@Hm2! z*laFf)q#JW{pE`9`b2%Q(&^umCZ5S^UKD4$Hj_-PV7Wd>eCuLC{W!DbzS>+$7K*5} zBNlnI{&dr1_}iGr`M#hKH);%T3%~CDA4%5KC=HEk-j~gAx}LWFLZJHE_dVWwR@>iYE&wVzeTmF z!;Ew^TPw|l#g=*3PRIO?DuNhK*RbMluqd3;>pXta+8Qm8g6%;jLW>OSHJAS(W2Ia= zb7C=-5}EJ)=)P4B%U2g|3o?O&RFF1z<4~299R5ee zmY*6$iC(E(V$l1;orbn!g;IA%ztwQg3QuG^tHPVWg~=RBm!=FRy+kM?R>4IksyGz5 z0_ipyx@-;&THh?Zf|u`e`8UHlH@EXmd5#LT(rdHvig2T$+RCHltKGll`9;!6e#T zD|Ga?WVz35078R5V$so0Ohqsor-guA`Gm)r^3Ly>^y_@dAhuH_9GO#nY#T*WZ^?9zzs*1ds$G_D?(p9(7j!>`NDKxjoLpVI1=;sleMa6AJD!t0R&B|!m_m93{ zy6F{-`U3ItZrQh<@7uhixbQ?m_YIKDsv)O;{$7a)PVEAXrk@%ts z_hP`c$r+QBNMj8D>9r4Uq<5LJGElS|{3G0CyinV8UW@c?Je5&Rd#`Wf^UK@AvCl}2 z-h7XO!5zu|bT*d=dZl6w0W=g;8Enz_c!ktZaPb!u!lDbw_@7Yl=!)-MPlt~^)G2;G zKLnh^;s|(4#)1Y(NW);O;B=5lgiyh&ex}f>D9=g60w}V*!p8I$I~OX2Tc$Lu*oyx) zmug_-Gf?9>D~KGtqth6hr3Z$>CbMtZQHiTMk+L~w`v$`AT&juSyY7 zh+UPKZh+@*AjQcn_k6v*P^TSe>#4gGOC~dfEuI7-@wwuhcJl=Ni6mMn;2@L&1I8&} z#;xzWpxK=c4Ugw8WW&Wu(3V%64+bdf!2JDX`qeR^)N!E}ziG!6Pv|r$>II9DCGChu zmy< z2;$Z0wpMGEvKcy7o3C;GZbtk5Iv{rEKx}q`zPNpd-{M~y^>w!B3ggy~K)@-)FXy_^ z@2ngH6*aPLeRa)wC5ff5|g(F&w^cFwl%_FYXyIf_lPM-V1qZpcaaG3OqP&$08^mzD6kX;*_ zz?$m+0I(c0vRF2KF{3JIiiBCyAtC7LMy1Q+N~#glFj6?JTDv^xfrJHB4&nSp&rgw@ z+(G!Sgx~y=Z!x*mY>{e>+~+&3E}zT>b#~uF1>}|@cJM$C(O*QYA;WP5<=G5`Bctb&Ay( z*?1;-X9d=02vO)NJQ!Hm$_{Zv9QBd2PPf@K+qFZ1PBK)1ha3BlpWR?^3hL+OxZevKvb=NsR~^d@p>*?cFU5CXj`stw~l3j|Rqct{U3W^<^R zk-b3Ue8&D3K6Oz~$*aJqC?xsD<7%s_*Xj2otJ${D{}cz`20`-g(1y4BQRmfe%J3=y zesE`nwCO%P^N(EL7sceo>aToX0v(Wkr?OEOE9B{`&`JuEjG;xaNB)GBAfwkkl*fV$ zM*N%zZGPHq9_VVhmbOdfXtfqc$bKGv;flWEy}j20W5U1tRO9bfIZhFYp~4oYV+9f2 zFF2pHGDWc?wGGj?7h<`ny$gf1z+r3@q4l@WRw>UIS?z*_ue8syF{?!4F^ugCJz6iv;ILiKh;hsT9@Le=PQ_NP3miyKGs6=wa344# zV@(oGxqz75FZx@8>R~t}Fvz(1>R)29q2Vl7AilqTQ`@O+xp1LqtIx{ecUQMfEc?BN zosU2GL}d>j*n7=dvuq^Wzr)RpgMxbKUpp?DMHf#Di-IqKm=UpkjW?9)>D5+oKG6_p$hHcdR{K&k6NyUJVdnV( z1R}UkX^XGo(ew8~)~S_cocR`WY3cavMrT$v_LU`*qx~Q3GtUKtv1wRihHDV_W_@IR zFssJmQDrP-Wm}zFA1QdzD-|dxe9tw$vpf!o&2B#kCx52JH@;rZ3Um6dEG$-0S69*B zK=l)HTBmqD87ko4hxh&P9}e04$gUkYoOc;lLXALxl9N_3Q&Uh{jj=j>Hv3LMPKPNe z0ekP=t(8w=kN@@Gq8~$bH3UIXIDW}l*wU=Q0~%B+wT4}@mwUvBWz(X*`xe>UFCfZy z4vl*Ppiyzm?siYKk{m;TNEGg+mSSKfOltt(6A2tHng^x(Y?;&)fXo1(MhM`*Zshr5 zdEg|16~JZ%pJbFkL`E$nKx8Zhb~MofCrSV|(@YVjjRMf!wkrTb?|Br{IYHQN47F~h zo|yUP8L_OS7JY%#f4CJCQj)Zc@Bpl4AmTP5;Iu2au?d7=i9`T6E7}{S4FaklY`WQ} zr453hfCa@qsiAl^FhUQ2LSebsW~c_?)Nl}JMXf7P2OM{SV6MAEnmP#0iUI@ogws@_ z2i$IgP%`gVS$a@BQXn25R8<)k;PwK9mhlPITX&FKI{DJf(`|t1Xk|we*)CUW3Vp-|X6DxhbOcwNAlI)XgE1`R@CsA+g31TvKMsQQ^G|Oe?VxUbNU3pB$~% zBgGPMN%y$j6-hLYx#STCNvl|NXj87HMxUGbJl}riu)87R_r8}KAu_$YU2(41D5}nN zJMTesxqpRzTTNHkoXAU;NvDy~VznrcO|N}+(lC(Sdflazdq>j#mO_E1;3Jjd20@>E ze)xJEotwg?f$UZLo!RU0uzr);{Z6>A_r05z;%f*9^l>+s6|W$s9eRzYFnp`d<|x|m zMoCz)(G$PBxhb3$JQE=$CB1$8jq&`i@S%)kOU`k3@Mn{ia^>z5B2Fsux^8tg*N%dT z%&`4Ibb9TjTLMmpp9QtUO~V+)<4e;&)2A_Sg*D; zdP(KPq7{A3pDy+4mcbhP^5j+|QN3A=BP^`ldRMq;kr24wkxs7{RH0rWR7ZCiv~8i& zY>=c^JPrFv-Sw(hBBYpp*Jj$JpD&mH!yv;`H0N&c_Z))z#8vJatlHWD?EUV0s)lm} z)H;Sv%S8!59GCm7GtW`QD!sw{+8a;#WALdWAi4H8hJ+%~0ZT_T`QP?HMr&Ru2My$|}FLO~(bDo>Ztin3DDj3by zs{s-*KL(krx741NulH0~SQ3`feZBwW|1~-KchsoF3F|;i3UD?>29JW0dV~Z(%$i=7*MMiFYS&@EG4vo4rcuQ>*VeeR-`Rh9WV9RQzzU;)X{p z%>I#Fhv(g^+4^vsrg&xeZGVM_T3nEPErI=+PrO&TR4T1vt{jE=+Xl~iHXj)va)T@8 zZ6&Zg_{KGAe})iWlSTv=(@?ARsduyPw6s(9*?+;+AT6acwZ{| zA7G)xTt50l-LCTHsJmflt{0C9c${MB7OksR2XYMU)L-vQ$C&h+64V(c(Eh=GzbQRx zRNJgxbGO9nEbWC=w+H5|J^5}~ooE6C*+IDuF#9)B zvz=kI*!l(gQ-XS_Ifom|hg&Cq#zTUh_x;LYuMUADX`4($9}?c5H7a5pd`^4BWNiH) z-w9}S$Ozo4E;1icQGf^eUI<~A?6~*od^h}}Hh8YAU zkdN5xx@TYviu{mP-y8!!c?6zwFErGJGhX-QB>D1EQkc~yBYv}$0mgYKyH;}WqutEF z)78uG8Du0quK1kc((&c+`sDTHZ2PnEyJ7TPQ*ApDzcbj~aP`c%kV?E%5h2DCLg3La z5foVP?=;=Gk~Ci*nTcf>79=UOQ8~<_FvrH`#;9e}#C~kHd1i04p3EPN+cz_~HeJTr z#8CEWvmrpV+#^EPoyG(S@%_UVM12q?PWtlprHvP^%>Us`gN~}r?1hPEu_ z#sdNoBIuD|ovhHXkGx_Ki$U*mDes%-^DV88F)cw&$bc6LLhMT)8C%p_4(^QuawQ!! zv;MLyFsKX0F4Ou)upEtgXgBN{)3_=+Y;yyJP8hU)HUGhAeHDwTxuiRC>@wrzuO(h6 zBmrs?37A3g4v6eWD`${?h*@O{mJS-S@loUvaCUS%n%Y&OykwjqZ{o|mP!H(J)lT`F zHu9U_{z}DgZO18&!`4&DU#1N@eYI-*ARsdp z^%>7p37a)%--9K;PB}>x8{H{mpc=90+s;8b5_j$4FzJc=_B^NUGwGHXduso>I<$S?~JHWlg1sORzBu3Lz$?TzM?05AFb zyPWL+b6<@4#Qhlv2EV5Fic`WA7=96{)nCQ<~nytIV4(mBRZ=V;< zbl*mJ^t0?L(r!-WTAs7Xa=F~-O5_&P2(%(T7Bim=lO1>mMJ?67L?$){2YGJb(>f#UOe)zpI1ylcXFVIfO{c85c; zfgsvN+eE)oPmLPW+w8K{NNNA5F+3XkdN#5VS zCqK2D9pZx}WA^+s;nuKG@!Ka^$f0bICM%woiIh_wc)LHo;bR>v?=mSJQV{or= zm}?YL0~`w&aoY(Xkj@Ms5j+1OW;Qxy85{@mp01O@&jq{rxg~EnPLqMRSXsVf!Nomj zsOvdmJaNQ!K&!LJ1?R67@NyXMil3t0xDth>4{VZsz*@6Jr4POfeZjklWWVLjco4pS zF~|M98~68)x#VAFQps3_Ijik3yUWG-4Gp2jHRct;@t{88pt0XBiJvLN)6}iFTB)Nm z$zkl*2w%CeWf)z>HkDymXxDn^-VMS92exy7bv7m+Zt3uUtZ6{s+KcTO`QR5{c{2Zq zhurr#B!ss+9_&gA!xEN+aL4ga3&w#}AJ2&_WHC0t;!M=vne4&?|62J$ck~~$yPdTRL?aoSmC^u{CNOP)*lX+Jsx^`+@o_HL@mGhr9DhM{~t-XIP0@*~HgI!E?&_ zNUpWsMvl*)kz$`IA(x89{bldBmjrs_*2ej7H}O^yR6W$oGTz9KM68dWMyhbPLIyU; z^h-768JPEGkwDunqzT1m9VveIar%5({yJS_RH~>96}TK5AgMuJ{Xy;bg>qXE>OsLq zGbxf{zpgi=mkd4&69>u|9@G~b!jT~|OA*OBq#1!)^>EaPtbo*T9%@j34v-W;w_YEC zn&bm&>8*fX-^a_V$QfvjQPF_@9*vaZ2}Aa`%*NZ z@jp6BoC0m{5CiTK4@vk3RDb{la)2tBn_Q#4fB2_iIL0|v0CB^2=9l*M#Z1-M@Z zQZSE?0A$Y~p(fCHwB^%XK*R}Pf!-)7Rs*65v_TnEm&o#fh?9F@0#?Y$mO#^24KO*> z_dH(j68jVLfatYwn+M2an{O`zE`_F7JF3+{%aBaZ1!7cNY}RD_YYb|~)XG&O$I@x> zOXAYLIG+=Y<#ONydRI|$>9?6Atnp@su?$kk1+PjNVShyj)VD?p=IXx!>%V+;m~TAe zbB}!h1&xM=MoQtM>V+Cp(9b99a+kvE_ApVVR;>_5tz0v5wpd1J$=Zg+)hAfG%HMlnd88acC4F7$Fu6)>5y5jO^eslwGi*TM;uQCNljp$Ib% zaxNf_X8SXgzCa(^AuP*e);-4FL?Zus5)GH}Aqk*sS-0&q$!Q8_nT};dqEpJ1=_&8^ zM)3p^^7`e3#o~#7U#wPn8j8aF3FvM!Nqgf~&l8!)H~)@QQr({?KJ%ZAUYT?VoKaXM zQLr0dqKX@$5b@TBRsV$p~mj z+D-P7(do=8OJyb$GA8`oz>hmnL$cRQ_EXxzsVAc4zdwERrCaGP`={++s=q_I-LHFU zKP-iPdAf%eUzQ1!y}$e`x>r#wmzk8sX)V{dKdC1Ez0n({edv6{!r)fzz+oETex?>R z;VTqt_}*H~kqG(CDJ!1uj+OhN;Nd7*ELW7(HfJPWu#ZPm2RL#fM>MGgI5L_8IsyOoswT+{`m(`HlGF6RT}r{eVqR0ic|Zk9CE|K*M~tqMemM-HgwblT zrexGeyfbV4dh^YyDH z^qIHM`Xm(!jxWq@=`M9un$D}o70rK(Ezd?1%U{eWg+WgOa-dW)ZWbrH)?X3(3S3-W zDGkOihXJzTn&_qzmuT#s{jw+3W{u`_dd_R830yKQ3|i&-XRCC*_Hyoby5!mHR7QHKjGEzM{c80sbEJU_#$L$5pc)qI?Sw^*lIxXN5FM99%}qkjrn?;BbM-lPTQ9T`O0fx zHnRDs4`6fpb1jB2Y{>rojKmwV0dwE!Be_Pr%8n6V%P@h$dMtTBv2&lh_ zY$dqwuXCFP8s%v6If(h(d+lihLs}Q@wUwRd-mhw|P^&3m$W2HX*B3WDmSMaUuC%2oVHw{Zf_xnR3~EE^NArIEK9d#*DlsWQxxwB`h!O!+Vk)4rZHnov zf;LCeNCLHIj1(&rv>3_*#kVW6rHK;orW6NMs}xZ>1W+Z;1~zgm$EW|fkI(I1L9>zt zW)2D*;N@i}2FI7Gb)k;iX zP+1*7mFk+lm#ib_<*Oegi_S>-52gU=Af+XuJfN{9iUZTt5Fzaennzk78y{<)A~uk% z7I5-s~Di__Wv8GdHa${b{(qpyX?r|ln-DdX5fG?g2;!Zny!(V8B zmwJ@hor(3sJ@D{cufXGKG-VHowfhPtG1B{Cn=~_?kh;gm^Y`^OxE7PXsvhS@WB6-> z1-VRy;xx5izR^!DCS8*8<`dnAUv#qND#-?$d}5L4TD7rTFmIUD$eAd_Ec?d?RExGd z0yKe$?)#r+y1m!^$XJUNBufamBVPaftutQLHOIpe=cGgzuU$42r&hVOhExsy+o`yhBW7cQKxGPrS&$`u^-tqw%Wzx zT_4-BILfJ?-dGnc(kD__LnkGdE^xeLNo&I21w0EP5ce1@rgrF+x9`a7?(dWiNE-Zjb$#HM0|(j`}p3tT)^kH?o+Y&yadk&JE}j5 zL7ex*S-MBWI}tAr^bjf;H_Hqo@rirK93!|o-ZWeK5<(0t%#iOglg09qe&Q>~hAd`d zV*9phqx~pZWORi)smvl+Y=c>EeQtF#D z#tLFTGnu2i`N-(E;5*r?on(X1YwJ%`^K0$V45iaY1h%ZDzTDpM&uh)qx>j@a2qqAf3X`b_s%3~~KC zcH7Sm3d56R>8$fc`btJS%S>k7Lj&U$Q({3fmHSg>>5R2&dbOY)4}x#H#?|oLUML_L z)#z=EG4s)A5n7>1P=Qzn)(+lSw~qZX;k)sCZE>i(DUL$Bmt2uwu`FGK(hzrAafoa7 z154k^cw^~3ZOamYcSGVMe1;;?8U-m;8KUk4l-w~@z_qfRTv%E-%JQD+ENc|~n~AZ8 zu?;M|<{s7+EtIJQuzYpRf8OK`!$lWsH~YO}Y&<^T6t-*X@Suwp_q%-iy)gWrMiHD2 zKg>e{E{)B1ZL?#gWQ<#CacVRr>mFSZRCGOURS zCHDgjux=5BK5)>XY|KZhN!j$&p$&Rp23*tOM}(d?thxU?9Dl?zHvS8roQ&{q;D=ei zvJQD2KSbWRhH94-^kXK?0_1cw+~@!{>R#Mu6Mf`W7Ggfr4dcKwB%c~}MbCwq%nViw zb*+8Ku7)UR#40+XZLd>_XVOP|W}6}LWx;)Fl_`R;4bF>=T6H$Y(&;byTan)F8=N? zqG(UhLDyPhGf1TsO0JM~N>ZT`t~%#$LC7NaQ-ogM8;=dznYP%_>059+XH8^z#DkWTf#0EQ7DgQZv^V)j@dsAOW$aXkG5){eF6TLLoGCH&RkCP;oRwz6hYjN zh616_MG|XWWY7&Y#!Z3%&go_mwi#*Q2PauYut0uno5OTJ*K57!LVvc&TZLMqb*MNl zkteq`Z^T2aQ6s%QWIbA2gWR$or6)K9eQs9UtYDR01f0>28S=u*oY4yfe_R{ITeq}S4aZx)drXhIYcpl-ad zgv|>D#veASr*+r=SZO3S0XtzD;2T=MpOfp zeP}T=-4WOv4FymsxU7k+pM*(T$hKz~v1^|Xpz2+fP1ivviwD9uvOO*}1rxwh#9{zo zfu$Dj0BsGa0f65=kGirlfTes;fmMb$2lFTiKx}OQzRNh#l$Hh|8DS8TaZoOj{V!i4 z#x*9Clpx>-3!-59q!XC{3MSwL7|#DcK`swJsLivuHekaU^Z--}ZXnV-yT74v9H(hq z3zeq|Vo#O;250#s7u*WO+UUarv!M~BKnGyk-V=cIIdz>5XaW&EwE%^)Oy5VH3XFc+ z6-fTR!$N5FKkYMs<4#kzlgEG@FFQba?SBdhN!S}kDma+#Ua0_3@1P|VU&jiE1UXJ* zU#9zcK|&8#!qccyL8*e8d=JDE?RNJ!)3HQy^sIGeYi{Q>hNaqMgD0nR`bb+2gRcC9 zg`On;;Ab(%9kHXs$u;)`T3@f+k5i=zE>1cO*@=NhyUmW+Ac+{V@fGKP2D^+1k4?N! zJ!(HDM&eZdDpE&rq@zG%^3r$F^r16;ID?oKli5v5|#f6T= zlTU+1DNwbyQKL%BfVJ54*)c%C<4*%NzACS?6h`a}HMXc1vp!+bR$T{KO#Tdr7q~QJ z7HeLE(`2yIKx!>0y$xHloS4K!zu8{T`dBG!8aZ0Hp$rUdIl$2jd{y{CrqW>gT7p8# z*6H1+Qj+NZLmRVyP@-H}DJQ-&f!3Q7;pq(pLF)rYYdI4q2U#dG+JX0ix2BjwHSWYe+KXb7Gr${vwW{riJe4uo9p?1`!^OfIG; zEP9!D!nI^tPp2R=ye=n>p{FX?Ox7X|SCKS^!UVle+d1qTk2s>zuUncgHS{R_^|~Em zq~jV%o)-cIMbe`^#w1S*72;F^;hIydxy}d4PhaDad}*{pUU{3yRmM{21RqE89{Hfr z4nnIwvKibjk_-YNFfaSOO=YsvMBX(A+G>@|3~oP?An>>-wu2o4W;-ov`!|>sh!8Bd z(&V_SjRGUSK$u(Nqw_sk>}|q2^oXrX3av{&)JNBqgxYJOMm4rc3YEH#_DGwM`TOsw zYXdaK_60RMrHoiwrAFic(%-@^{1wLydwqvb=3iL>g1hWWngYesQmv zN)%FL+&@KVPxUWE4OVQ>zW3ZSg(F^>hExvQC+W=0Pw9*%gliEOs=sJes94R$%BE&u zSn3m3c;GRsWVFY(UTP9*d{==L4p$m@WFXQr#SJ zCpW5=^pW6Cxrt?F*lpJvuZ_`LWmQFhxjc>OUout}rKcNFq>a8gKP9u>Z_j}=MiBoO zb8p!eR}*cECb&b;V8IfCySux)LvV*6!QCOaySux)ySqbhcZak3-Dlr_aPMwk-qe+Z5mNRwn(E_SlJwkdXeXb7 zdm@VepK6tNz0~;{I@6;j+%L(gk2BYiXC?wJvG;oOsJ#X1`Ymr?Oe%M}Z8aKg($TjU zbh(ze5}OZ5DZYf?gPx)Vmdj5O=VT&;EST=a3GEN_|~A zhFxy!KNhi%!rhrfu5cr^LyEQftoza$bPS(Hyl#k^qj)s z34=NmTs?xZIw&+m`%i9s*)4sD`d3!Pohp?qSMn_D8AIB^fy64B`4Rgf9lW02Avr0T z+)u!BgY46EHXJEYpX3~P2p^5uxJ=yW;elv@!_h6C;_=*b^WHwSBhn%Yfm`)jN50rt zn-wSIWKw<^nlhAOUo|e8rV7&Df>pewF)>qZfFW(wr(QJbbAN_lR(>kW{-WJ@%Htv} z8OQtUQM>eqq3SN~UT3O!Fbi zOnhsi`$EvKialI4MBpMquzzGYQdKG8hp4bRU&}_++?_EFG2O3!BN>eUF|Q3gu-Akq z0$dBymP3|G=rTFR{S#IjprCKAvNRvFBRO4mM!CEMlNdsn#qg)<;hz#IZ)*Pj888g^ z)S&U%$Vt4v*KS`aVKt2Q8I8Mcptx@5Ihw#Un75TV1-|59`+E+zJgFdo6~%RLSOA>P z*I-WTI&CCfhF^lO8&pLRRVye-qHAO5$A41U^^kU)mS~m3RzE%Y4>SnG!l)EJow8s1 z8Nq1bg{L>xcG=DMp|22}apdHZJMip89AKDG!Tra{EB16B8WFLF!9k>LhRbJjC!AbX znribSd}E{;6U3^CUdJS*v<)ij>92T>!i+9agLzY7!(FV^<&Qk?gFDQW|JG>RUJ|XB2fIC8b^)^>q0Q zH%Fk2I#~4!HLJ5AEv+Tl!)g^Ya%n@?Y8-beV?EN0V7Uomqa2tLJj#muWkWI+c#s?l zZ9@~)pPOwvZt_Ev&((c+J*dnfq-vt;yegCtOP0r~*=ZUbtTwCJ-vsJVFFj2P!;|d} zcHRtyVOm@L2EAlG+g41rt+1Eue7ai5l_iieG|O@Fy1|Gx_+VrF)aru1mS$4zr?-;( zt1iD;C_xSLGY``tSRf!DWC;59oS#Lw>^FVcrL zkBJ@;o(zq&-|wIOZ?hzTnSiqGZ={!A7GwRdSwU*b+s({I)koDznQnM2#mm!Xt_;qR zy?$N&BE64;_9Y<%Tn3oZxUhh8EClt|jGz5EJ5CWJ;wcs&SQ!|*n!i<3?4j4zNnyAQ zr;SWSXIVY9j{Ekx$^!+=nOFHTt{A=Nir9Utf*jR+R^tdv{+ZQEz<5IxbMC>50`Un# zKyBn-HzrIOW0^$G+tzR!Ylz`Gr%Ja&mtf# z#)6RWX#?9h%A(Ngr_CDtiT*l^&Tzwm8b67tzqY}Rfw>^S1!M75R$Bw!47~Q+{LZJ! z1^s!nYL+s#0sIjatjYnf)u{Y68qG+x^0|++QOLh~;$Ubu=UzkCn~)mpla~O`oXz{ot&a4SsxO5grB&q83p1K}@{f?if0=-e;PDxa+) z#M$G1%9anWB*1C?=KHparw0VDm?**B+b5&w`km~-b|+z@oz^P8HQJCcZ9;^NEE5NL z;J;XG^`19te5a4$)NIBSg@?Jn>unZUleweL`D)0{K<^RS89pB|vvYjxkhZy?g> zFx*>Bf789-6Xnx?!vV*C2JcZjA<7A8 z$X%oNCxG6yf#7;J5uL`x0bT(9gofxt4MVE^?g2VA6$1Z->;WPSAQGAbC{1JH8;d`a z0VfI>U;=x%a6=GP?f|kna*V~?f|TKD#K6%C9cTEz4Fc%_Y7R+1j&gyC*?=PP7&%i6 z5%BKm&%hJskWO+2ROYu014<4dB|Wa4?fd;KIh|atK~{yJJn~u-Bkn1iVBb%6VM3EqEfGx3aL&bmgzz-VlH3 z$7A|89%nHtjfT0KQ&|?9bqP%;%fkQb@mw;QC9wF&dxJ(UaW{-eeFTSuggn~gIeCZe zk0i(>ePs(#D3sb$&~!E8nO*^uU`#+t082ANL9b}U;ojdC+m44W&u9B}j(9w51ZHm8 z3?5}Qa5SqlpS=;q{4PFah+TJp!d6L>B1QAqsQn4~2u&vg{k5{*^_vXO#S?ZvEKJre z0PaRr%avS|DU@@rjYd}D7HKA&WsFEM0&D|At9w?VEAwOi|f&tqq9ueGTB(~&otRly_$~b0Gv6uRFQCeNiVClteKPf3c+H<{2aj2A~%Y3Hf+ff zRIpg!U^Y9GPnmdhy+`>BUPQ^5mPBnVtUq6(B#)d&B$>X^=BOB*l#t0F4EGFB>qq_O zN|hDI<4KIEb_~DGky~}TY;)?3#E7LY{&RQkk0kNwYq00iq~&@MRuAc$&MCHvAU7+SGr5OOBBb!6;Pmea5*vle@mTQCxf+`ClUcUxyChYR$Ju z3S?Ck(C6@o$!+5WRu>taEa?Sbh&+u z7%qXoTA!OI9$WH^HW;o7fr*ML0G~ira4`^>Yq3~a+6K6b$!g@VvUSB{zGqjy+_91# z9sIAyGt#)6+x<~aRiuP)9N1a>^=G3|ZMBHU9Tw0v@ z%1YhmUa(5@cHRUk-HHe71cHCJ$&9Wm(Yp;Q?ANi^c#&VZguZ+YcHEKWExw-2;8w)E z?W^9E8x!eCrA+m;`*Mb2yNv2*#O$^KhQsbacX#ygBc0uiW=xM6jMMF$tJO^fo?I$> z${)2qw3M;Qc4ZaAdbACjk=&)m&>#BW1GB}_xK!atcrqP-V+$Y*5rH?E%znJukw3#> zej?4VoRvye$cM4n>SVR96YuJ| z5L6pyQ}Q2q`VTAk2wzrv3Z;r?;)pz4nKNn+ECC6_4;X_sGKjQp` ztjqYBozB$~0j=RLUHIfWbx9?GO+-8?U8o*7=Hu~ukHzwB%&G${duyC9LZN+AKSYH< z#=r=}(+pFfeoB4DH1@?uQ_R-ZHmS|+;k>lY(6SyI^7HG-sr8QZ+j`aZ0C2DOtFx=B zFYsW(QdPXYiy|tqApHSFRDwDHlXMlq#Rk2BMjYhyXTE|e>Wy{lEnfZTy=j1YH# z?o^+VCJJY*QH$Lkbw5if1a*Yr+2lee)vl>Xx3EHDwZWjUrbVaCIa}<^Dk8g?q*$>~ zWgf4;Cc`e1@Mvba!xq?n$?vCY3b1HW`r8RH!vOg9VtqYZB9fY}y69hbVkD#xrs2Mg zmhCI`u*h51e-sJT$o)_B(VN(!Za&ggMR!#zKRoz@v$sFXq>_fyQz{(jB7PGZUul@; z4W9qHci!GgAre#v@`c{*kpDK4B1~`z!#vLPl1;aR7i?Pk&~D2@HoEn{a@gJxe$(K5 za+@V(-oMK2P^1k9Z!<3&FI6G6UTcD|3n0AgbRAX@z{x|3&F8dx^`DoP+SRj;4H!_U z_O(K{nTW5}W`E!UvyT4Sau+iMC2t5Lg&Wg=5aC_j&=Z%Tok*nXB@GfuShi{Jj4jtb zQ|z(^>T$2(_305VUF*@>(vwQ16vgNUs8!`fHn!jUXj;$)Y|91kimWJ3&c$j z5}uH=eT7zC5=w1XDu)04UjrRL!dWyopAX#6KryrP5}gK}eL_bLP5~eK zk0wr1C;C2LSQXb_i(94_z_BH|ubGV$25D zBL-pXa2%$rr!dTARrrVJt?gb23o72hPn=H2LejXbDp$;9I|3|K0We@r-#1byMXe-L zOi*lBQQhXxyL^39eOVdTgv%_=x;GzM-19arO%2X_AnPpmBn0pvOJxY@+TOM|-1}a9 ze3z~K)tn;}+ud)@P=sCYkD6F&BZ47tRj>3+30}H7R0vc=Hff;`Jr-u_b1ALNjKW1# z2mckN$;PB^67hvateakC?2FcN`D){AFnz9L`u)!@MoY*7(wwB4=nl}p^nC&?-t~P11yGj$ z1s1o=@W5{UZx+#A)4e zWWB@IlzibEg?bsCa)n&PPJfsrZsU1Y`o}3r?Q+=&@<#yypvz0+dCZHPeXcM@r&S0> z{V5|fD3g|_*?6&}B$-a}qh0%jdISjfdA68US!uW-Xh+uIzpWIRmryD&{Jm0pL0JCg zhQ{r2FE#qdxeSQm;yInms4*E8u-bS_YVleM0i2K`^SE_{Vf_LY3FG;~qbjq2%?f`Z zu@8{n<$hl{iH$6hZ`b(c`n)5I;&`&2xnQ+ab}exko^^FB@#~&m*0@y+8&cpRD_3u!skVmZosITzEYnD#B%(2iWK~HU3s~v%eP>)Rsdp@4hP0HL*+a(=wfi%wNq7ITSREFmSZ_y!P1zFlS&#K z_H5?dy7aV#gBHfk^g4B(9S2#)k2>KKi)3d1aEN12L`5b{Bn$lB>671Eskh9zo|*(~ z8%K`eKi@q)nLKvB#``k>&P=6hcWkg<1(LCW*6YoJK&(u*0OSpJ>2NbN%4H}gJCL9C zTz8>564RwgXT8S8#6&Kl`oqb=$UNj z@py&W>UP1CUD4``HE@`%8&qAEg>2>1^^MED=vkvgLVKm!jn-&9CK(FxQOm~e{Z{%rCjszZSN!_89xvv!(Er@%HJ!V`|LOr8De?bms$KLw!vY0#)x^K5vNY+ATY=7 z_!mgPZRW9AWyG1z=AxlJpmGk9bQ$l8bP$&#YIuvR6-H9! z6?1=oD2a%>-fB7t?%$~3YBJsdjgHL6OBpA%Mn?(~0k?H7GS)cGLM~IW;`A*$JPeJc z%pXTqt5so1m3Ik1-&aqrTVP0UKBQte^IiOL`$e-EtBQ?@|3fbTogyg{aAk?zU{+>v zI$adg*IO#+Vo)mQkRg7X3ZjndKMp@Hizt|Vhf$>h0^yi49W7?!2BQ)NFIO|Ys&e2OGj3pPj>^}cB zv0m}Iq}y%wJ-<#OG%vHP-ueYeZf19RNw3lQ8@_uF@;BfXQZ~XMSMtu__2R#9JSoS> zk94~$jK5)&(;&r?UMSn-1I)e(6~&CDqLe3xY-YD|!fd?*uU+;w7Ue7!O0vpNc0*(W zyhLZ47czxNmbusYl0_D4f`B$SkN0CmtZIiaw=+{}9JgIMnQbzOU-ey+xzF%@})7If8CzaQ&aF#ODK&*Pa=ha za`Rf~|Ar!R(jJLSENz3wbHdJQlh79}UoD#7B~WQ(L#=yVM(sJjr^vVd~9P0?wmx93YobU6iv8Z<3#Z&*H!{N~HLPxwWG`G@U*^@w)R_64WOPJYIaP=Q%9i1KF+O0$avkRZzxzZ25mB&?7VWAYxWGXY%4uYAP z3aBtQD$#~Ahr1O=z$PAD;XYZw3v*|W1wS`i7psdko&&_c zk>mLkCLc6w-90niy$LA2uN=bgD7;DAmRL>luusWYGo@l#N<`f5Ngx_%;QWUm_Qf5)LD@)F`To^VTaX z!3sw_5!-4Csm$BPAyMo{3-R}N?<({Je^hG2S(a9rW>~yW*A~?0N@U)%(zV+mfKOM#e6gl@Bxse{?()-J)>Z&`J9to}yun;BwM|A^=qLOyU*k*@BK8G7 z7)-Kf!jl#|#x3IBf#{nerrpH`{MPv&n6OO4W7cHBn7hcbo`wqEj<23%uuF;kZ;scu z*y&wSAG2(f@-mt2d>Eo0arCHP#h8>w(Ep7Ec(n>cKU?=0Dt9t!rX(4>^h3m(J(@4) z`4CrmSZ?oh^d3w_8z{9)WNCcopPp>-$a>buIQVH35=sHFdvPFpQSW8;grhWKMh2!s zL=VBWozlG`kwHZcX^+BWl`@C)^Ro*0$QIO08I9WSU9Yr)4Xt@f=#m!aTb?J`OT5&9~I>TKQ$4m%MH{2%~m>2^pTR%cIbw4)*R%qX( z??Yb`upsuX=zM~=jTa0{(NwyJu43c*5!wMe8gZMD@t9`baTcv?CXeDlL`T&z!f+~Q zA%}0D_h3GyDmkP9!~;C$7%#5ZPecoJ{{a6NBBRhm+N|u;lE0sOy42t!nz%rjbcYd1Mr*8!53>EoSRqB z>86xwpOjNb94K0&(ULWFSD~oBb*MxyN6s2I&l_77|HD8nT`g;`LAeYZ41c>AW;`xu zx;>%o*(!q!LdI**ZrE(|NTks0kP`2K&S`&}hxB51vp0WY>#6CMwv2;MtRQzI%e75Ua-MA9?6a*?5b~)gbVGS=ZP1^oWWUw<-jaA)&5|aLbyF;oUP;65n0Shd zfpX0e;hEzlg0MDqz8`0twqlb##4`OFc(sNW7^R7QO$CML!ovu=8c=*usc5_-BPU>lcB)tg5% zg6+|z5DBw2wca8kOsaA?)byTEBn0@ z9U`js=%7~b1vUPJu$D+Rx1m(cx>|LF+3gZkj>4kU=vlLe5p^`&3oEYRH?anw1cq`C`V~{jySsF7sJ)-L3;Y5JEb>gQmI9j~EvW9mv?OX3Xuwu}I z7tDfr#^P7xR~7OLKtx=R)3|UTPuunL>*{s$Y}`gddJ9{Bx7tsJgQ~w*V2Y;wuC~g+eW-n}FVZ#;X zjojJFv4KM>l;$x0xd`8+n&MH`<_Io%zN`KNT$8u@ON+7W_987F2Ne>WeJ$Cg#`Pnv z*kyY8yFo|`Um;S7ac@vLeQTC3?v0ntLzk*JOwqXvQ<^kHDI<5Sbg=t+VH+=$A-e7R z(5sW3`<6nOOtu+tb2d;~LZ4((F9TU?*{A%xZ z?h(*t|G+8__M96!1`-P?5NRpv^1l?Tp!}9Fu{*j}Hk!|-Zi~8{rV~Jbh5weKR|=0Q zhEiLm(izapMkN5IMh6RXS$I$2p2N~=ewTY3-2bJGZ~ITL@}SA~jPeLr|2IaMoocnS zK2Of3^!!o{RaMPP^MYV|2%U+B8-~iX*<1^gj-&G;qdk3LxNDuZCAyHHT+B}DD_es`X9Z79 zeY77C$ls|@`oN|!8^nZ^M3w7adKSV_Ew}XsIc;rKFQ-UsBhFv|3ldSibT3M59|Lby z|IQ~BxayeD&a5sdL(6_|y|npKC8g4F&JUe(7(8IMz?=X$ijxADAY^6rE${gb_rLV} zwpXFL7$GcHa;oJJ#4=C{KBlx`fMLJb!u{752u(duG=RqPJfnc@zz18rL7t*jO!aY_ z=e&T%xEFs`xr{#1FQ`c9f7Koj-=2LR*37`1UQ2C6$*(m#?R?;V5{`Kyhh`g)(I6>paEem()Mu0e4W<%Y!Du{^pZ`5u2IadF?Nil_%)n0!_Pl`Cj29ObHURgX;_>q&ff2^`D^ zk(H&>`%bF`)NA`gYgLd%4VnQ6o!ejQxi1`Mehkiv;q{)|--Du6IbIqwdLX6T2S18< zxBYDJnIFv(BV@3&Rhc4QHKAx>!jZHK$RhZn;=tTZ@pDBei{MH?+S{h~UZqA5M~geS z!3^^Nv-Zw&>YN}?`1}48$ABH;@thJZS)Q3;@t%P@VRe~JTQ(+46w*wsF28oIwVxm= zY#v_}&S z0J)#+*zeeAN#V4Uo_bLUwU8(dd{y>-T*56)1Gdtf#yh-4#EP#N*NQP>}0d%{+b}KDOLv z`RGV*v>S9b*~xS}|e9@%MW{{?qf9gwGA6U8re5xOk-#tHPUK zK%g^@zN3aMrvhAF6=4^Q^IZDv_a1!S<7_RNT*;u$=-v%nQHa0}J;wcAsP0Ip$9ZZzdm9*0fsIyrMYqjp^8IFo3C)&7$A{(VZYIfD59z87P~K%Lm{ff68H`gD6a9 zpn%i{RnG*{v}OS1p)s_gP#IvdOOS*~$4>(X#9+#TEJd(N!iAt|5rJtd`Kb{>%GIBs z2r-C~97SN-HXt7@X)!Ay5JZNefz|_4o(2V{=?DVTTF6NXg4Tlt*5mRiIRsI|m4NVf zpSdWX2(%squwDkAvIB@dT|^09_%*hZ=tnj-&?6M;>i`QQ(|r}pj6d; z|8WXRG5R+g^X1!6R+e7=R~mV&_iDM<>v5piBj5Sn=5g@NwU75QG_%QOz3hwQM^@}J z^YN%^#quk{+sA4vQWsfCxd&l|mDAM)^nM42Yb?6cTkCRTl+N7!Lr=+c^hOzb=t7Bv7nw=-^ZYx!f&6UBIJ9QS5 zp0nSxlee)3-7b;)eGen9Y*cU{d8vHe3;nUQO|KE&l3r&poi{ME2hVqgcZ^q$!UnH-T%J80W`jC$eTH<~#q!6h6<1w= zh&Si5!+y)poi^nC^;gGpwfZ^|>tKXefamiYt+LJJz#clTQ^tzJNofUd+B>P^#oEU0 z$>LWF@{gvI;GcuVFN9UfUTkxD z__}l_-@0x~=fB$Atsvf_etf0dZ$BK=HGLh8g(bZh-Te@i<$CjdzS4W`y4(!wRJrM) zE!!0}n{I&qfNLaW-(|C-f%*3nLhBsuW+$_~6NpD49oS|_ihKpb~RgSu^3{IZmA#yQXS)nc%M zd#+lW@_074wB&txtT?ob&$nr_W>nh&3J2A~*wI|2kYk*4CgH3Vy?a}=hhLA-zoWgi z)OEgDIv%QgZgN7kSgreCRuCox0lp{oT8t@Jt;3{R!|zd+o+d&E({whk%jys8QZ=rR z_fgq-t{|@0@5&{MzJWX(ftMsbHzt!cYPxWcKCk}Xqv8m9h`8*56B%Lh1-MMGuS3*g zy<|30sp5dCSwT2>0umY$kP4(qX<(hVKTPB04|kgw(zLrdsQhCz?29$Wiz4LU{LLoWdHTm~~=n=Q!`T#CmR}vGzdufCL54-KTQrh}Rzj_?LnpBrofbS~L zNP2XGMWbPQwnD6jfr={iL8UAFQNCIPrCD#xZMD*p-V+)`!C-%ekmtlt==8;wJ)|4G zuTl+n?{Ro`#L_Pz*XSd=_c`v3dwlK*sQOA9v8fLu|I8Df9XK|91s{hoCX|v&vV0_@ z{;be${v*E_0t%w4lB_)vLFoQ!jaJ&<@D%NUZqjyhbTpR7*@OXq?VjN6eLaz4rRYSb z$vI@AzwdYykK4Sg#lh4kJ``uC(%R1cbPuEvWs!7#5E#$KhmKdIY+=rCYU5I(CVQSex|Q&Bzz z8_^d^1ybapoL=2Z#-24st1`l3XY9nLaXua|MWbG-<@A`PH|cKo5t-?roPyexs-S#YCw@7KJ2AqRlBGREkosd>1_08&;fe4_fL* z^7#;7RE1=Jgq~K6auO4ZGFw-Bi7wh5k#!0f))qn;nuKZ6LIZc6v~v}%FNs$+@9uJY zE;?L2rNvb1$G}+${aBFal$qr7zrHY{EV3?785#3mZt$F4K(OLXkfiUej3(Fxn8;PFCtgK0|N&?wEnZ==f7aRRCa8+)E19Z4SRo= zhHU!nq1I>6b+5TFuJ&!*$=D8Ogc;{)N>2HqGM{qpH?$~od-5%CcSxXt6k2zgi{UI*0UG6Ykpk4uxj@G{WqlI#~xpgm=72 z^FAME7d4{c|ASxYymXnd*laiO)-YZ|Vl|lKkMA=QcD9t@4GUeWNQ8$>z98W$zHjyR z8Tcxr!&h;WiLS!CPc?%gDMlm6p zuDi;7H;%D8TPljQKOdTJUV(;ASc}=CL2ZUQD^6}|BaoVWL_?rg#@7;#Gnd~|Z&9)X zus>5%q63E%Ku3{lYA~8fw9+xyTrmtjIDut`eD;&q2JlTCrD$l!v{)6Jq^Bt)8{OQo zf(Z}n)Y3!7VCJ$M;jog!+NK?@!#^Trd#7&`s@7Zl17D z{>`yhaX9WvaS#~Fgj4UrfHebQ+069qWKsNoU=YqCzj0Qy$`5i_(hw;GAMVq7QHeVt zVmBg$%W!l_z75PKsnQ>ZDBEfVmtECmH0A?vcU#Q-#oy&<~0bB1ars-V#or zmgd>m7^%ElKDbF=Z@&d4q*(iVOOA`P_V5>gn(0`F@nfz=8~_8N%RvaCQD))Nj$%Sw!vnzW z$>^sMzAxWrK%iIVZQVwti82J3hC=od)8iarz#st?UNu92l(u?&-dKEnL-UI!f6B0Y%y;EORYJk`$^9RQMcrNh)O;!hp(1RgqkmCI$-e ztDd6vXCa9M|<9Wn22a%s{z6mLkS$;jBm#+`;|j2td6iDvO`Td>?)gCj(Q zlSf`QXCo<8%Z560-Z{_K>Luf`;9;|&&j}z3i=8$#p!7Tg=fZQ!2L95!dgPs?5Zh%@(2Z>RD;jGpw`nink}1z!V6! z{(%s9eQMO5jaIuj=N?*IOuRqetQ0FVX*^frVw!8irO*V7hV+sTt&ZnXkve!XkzDMd zG`byW+0<~MmtO_XTV=;TFMhnX{=Gk44^#XRj?0o4Lffg|64`?@UrMRqrhl4bS&0U5 z|7222-nGeVMfi@Z-hj8hT#F^`@u02I@~W#`u?S?XapTb4dP+!3w<~Xi6ZiB2xs!^a zeV4-5-K~ssSia{~`cKz$71Fq_hI42RG^8R}K-BXPBg~SOjBip$(hV%HEe1n6*KzyZ zz{y;*!Hd)h_uW5JG#_fs>NHa6WP#KMOL?oTbi`99+OxIxu>FbDLLLpj;K)eUc#n_W z9jU>pKQ~+1f(1NNA89U`g{4512`S}zg6a7r^M}LDzBC*XQUP?}T4qJWRgP@s#t}@3 z*QT3PqhQmS1#L&(d1j}r&&G>h0uJYo9|2i+e+{S^T2Ef}2HZlstgBcWFI#QQR@@j5 zEgkA`+}4(=L-C~1wqw1$Ke_HbVf__8ng~K@ll`J5pzljuJ~;5V;L#uAPMFSltINR= zh_WA|gjp&N>6UuFJ_)$J$3;6@KG4kp6qLqlexy|-qPeESGfdQkg87<|<4dnTW$RTL z8yP&>>Ag&8{WwB`|(g z$cCHG#}{h?invk|$D=v%buVYaj)X=z@E;F9W^25f)rX^S2 zV5P|=_Sz>~2LUafluqm8`o-qh@8%R{AIhhoXk0`~xAjkWryi0b&^4r(G__2G-RqqT zgHq*h7Nm_qW?J(r;QUf*H)qZ#@_d72vvaJ?9Qid7R{W$$R-$ zih7l(ROHwc8$?!UA4T@_R%1WrFjQ{MeeAzn%*;p(>89I=H+{8#b7Ln6G}s3HS-0Pf!0`X88ng9fj=H*E{LfegbemIVb>nLM1&6??eV z7ra0t=1{LTq^KrZ@Dnb68LA;IFmcx;apRVRC|EraTdX4Tlb)tCRREM?%E~zr1dGaN zJOcv*6yr!M=`)v0b2Z;DpSm`4dH0Xd#MYf1=ExNDZnCp`sT^~I#YH)38IOp6fQ!Pw z;K*|)#i1lkwkM(25mNsf9{g4a&7MvKw3-_Fq8N9j>{r`ygfESrogbAk4=b(XtYRl_!&`LxoaZ2e!xd)rnT%%v$+ zDjC*$hrK=D=9tsA{Ju3wJLuLVKr5bBY_yx5GENq~vO-XbguDNRvWGyiK!8I~vih}S zq`FV5B{mgxyilA=C#3XcS0HCHJvWo>VLXQK#-jJcY>u!!1V$l9_Oy697nYRy)k+M~ z=WwVx|2u0kgVU~i+e#uv;#bYH(`t^4bYQ9RrrL(Qq0L>yyfm#<7H(a0#`H$ zi9jUvCC0#(vpJuk%{fw=Jp{+6ob(puW)o@gH!v1&2Y0LkL%rwRA3~3*~WK zWsQ%u7xb@G8Bd|m51jLRr6BZ&x;vf)@|S#W% z(9r|ngyb<5(dW1ZU++?sA++!NCH>-^09K3o_%g(7&+s8gNeL9Me9}N#s-JQRfPoy) z{sUmA8A0Pn4XA_J0d=?PG(PnKP?k?3sKmu!nr{FAydhBS%MQ#48)Q?^3gm0~>p{?I zn~3-wA8=a(r7<`FRM|t8%oG9$>)%%ZRk1_WBmCzz2i4^;iX<{YyD$LZs;_elQNXAs zP>D}9i^2man(;*dOC=b{jq?4^T!0zDr{oq?e`5zVE{Nc#1_xE_C_#Zh|F0~<*Wx8R zwwwzEjp_I&aV8UV5sVOk^u@tcI46W1B9jT^HeUlg zz=p17ec}BVWHv_veQGG~Gyi>@xWLD`w(%Jo2LQ0kTKsCHoRhKF~(z z)cTVW<4mNBS_}c_D~#n}2U#nYN~7x&m6>&m0j;d8xmF{pi>vD)F&r#01%~|Jh>YNZ zSd$&8y$X(EjcoL7t02Txg*W=Yzm1xc|C^FwwV69(1xjRUrHFVX5w4jX3ZJv&h}or<<$Eu947ah zlo*)>c9({ftafk?I}_cQ7{)-6xvLYVyRX@SJtW6~wuItWwvSTqC|41k57*>?R$eOW z?AXW-kq$`qi z$QWZP)`I<+2HYfjz;C!;Xza@67`nhe(NC#+$=7o&gxx~n`sNG)*5x!L+HZMuJh=8g zTL*Qd$>sCONgBAiBlgHX0zTQ%$FQ)p7$R7-hVOEQjw$E&V9vA8%0sK8VJcQ@2EU8d zCi5SKNHKDrnJH0*Bw#6jI&Z1itVqsN#;ZUWof7hF!&$A`D`9jmE_ko{7X6Ls^RII` z_+>s_)H1_y*G{bkm8q4>5f316O{~&ga?(W-%N-3=&0TM<)P>3vW0u`cZ_Qcu-y8`! zG8v;&M(sFz7)OV=MNY3uf5%^aQ9eb}&PUu}8q7303ZK#4bErLC^hI`9zR^ zchr3Kd(mh27(N?jcdE(SC^WoP$_+Wwu+wNlujGJ2^nf_4^R;%>V!^87G~yrB8J`|G ztF>A>c~?h1dj9-&(6y@_13s5)3KBl2W`toRvf( zf--VdKI|$^p`kOqu%5}Jwp?C&$N?NNO|OSW%$Zv*8P9uYOMr{t;c2?+uRnc*)%y(z zi%^KD{~*A?zv#CUx|q7Cbz;u>i2S9Edkd1SCUuWBSEeqtDdb$yD6OTFW-ZeChYhjT zlXiP`zjJ8la(#6*@(FLO3S3mC^x94eJ%vhdf4kc+*)Woi(WfA4K6tC6w=n)sAbnOk zKay~I_UNmgz@JOJlv?92@?1#~)%#$)t1b~G>1=4F=YBxTH=jek95&X(si;pXcUd8L ziZ@}q%=lNqD&G|fgvic#?MB){#((QA@C*39&aX}MYv+wyl5P(588Q;|ox5DE@wY|g zN^KCj{>^3PIVD=C43Uns_wK|aJV<)f>&cOkWGXrz)~3LqclY#Ub0xqV}&gD>%>{4Kq^SrpV!N?_EF&EoJ#N zhlS65aQh7d6#1>^_aEzjw7UkO>GgeT4DWNzLRxLrqk;Zd1nFVzd13R@3mUV^9ge>) z)~M^_YuW;Ut*XiJ{|P79A+}sFn_-GL8Hbp!)4{-C_IJtYFKRY}=5iMvfW~sH4+OVD zzeYC{o1sP`=Dp2Yw4#yh%}0mJ-$W1fRiCaE83j z7T!j*>gQ})7&s4%`otQ8T#}Ma+Z^!MMeXcF>^B!Q90`sh{!DOd<2Db)0uMaw21sLR zmk7RvN_BbmWM=Yg3B*53y=!$MI7Q%A@~LecnF#-&MLpejFgSYOf1-S?`|GGVo3>;M ztq2>V^QF}TQb1^A$mLJq&vgdYXa>2EH;clF8kZ46Q<{bWpXKo1+08xdNX6RaX$-W2 ze&ABm3I?6~eX;2-*e|1}cpB6(8h434NMMA7SyEnt2AUS_+Vk{MHV-5wz|ozEzSo*C zo;b-vXzFhYYgqyDuc=R4tiJ3pgAY7^7&K#h2PYMJS1@K#={-E+D$DRhJ+|v2xT6yU zK7rlbUJ^dm#8l`gidvx_L#!$-#I&)^=Q8|E_+|k8EbgiKDNnIeMR@O{J8dMMW+G2D zIA>YcP~0*cyc5qoxV}^rH78APitwY3iz~?_LC8XonIbV?ar*aiN@Bhzb;6Zy4=%9AHdTJbu0=ujns#QGbsws1s1Q8Gn*jER|CG<>10b) z5UhaZV{G-Q`U7^wr~cIIFXBOMb1Z&HF&QH*>xHiFDh~7=Sn~In#^guzi-KzB(kSa7O5votU;div{ou9i_AK!pxYC31o=S($(CtGl4epYA#vMS_y^2* zzZjSpbC=gGipeV_<{=3s?N{6bIztS%!>N8WD%EOx|H<$HJz(Ac>kDj(a$uVg&K5{9T|XPOxz7 z|0P0#QjGAOr1wFnixfblQgTBfAS_7&AkOn93kDMas?rf{%^c?CCN~wRkAPl;0RtkG zrN`jt6hQAf2NB3_r?F$8@FO5}`MWXXS8@Q|eSQD|RqlInV-V~F-ho;R_7@!lZrwlx z^0$}owV>@#0{d0}ED{RhrMW>6Fw!GN9Yp(L0J|ysMA8oeu-|||&4WC{RG?9Cz}8f} zqxC^mQeO7A9V%V6{yJ;p06wpaDjZ*BwH-s|7^B9$vdlEAvkBRX#p`Wp4g+~ zC&M5vzKIv?Tu@(1;!A?q7?^r?#t*w%r&c%&3Lz^EmR$Kr9x0|&L&BvjfsgAH`mvB*$?ZIh$r*Ia-wh$K5hQqtHABq2UEQPVf^JEHx8@ocgLft z1i%I<8Oh_oOa1yv;%fG~l$H`WI(W2}jYysJl5Lh2x;Hxg%1$6Ry8nM_`>Lq8qAkdT z;3R1901X5U1czWv8h3Yhx8Sb9HMqOGyF+ky2^K84yUp$QX3hN0S~J5BAKZJ+J-wRl z+Euk{I~OrWJ9W0Y$)6IZOF`qL2g4AXctch>H{KR*B99q9q*lt?%7UzxYto7FpWj~- zUNDY5T)qDLn?K?p())1LNk#l)*`;|&ZtuowaOUzx!vx^=bKkt?6wpv;HS>EjXh0+q z%30%wLO{{D7){SQKeW@dDDC~4RaefecfWeQns+ybv6$&S&MV{+QzXfi&X*MypL!aa zpWRMl*ID=Cq&#=Cny(kY(Q8$QIvp*S_M;)8=CnVeVX_kHkdQoFX6`ubTGkcQO9M(< zi4&l~nyq&WTupSAQnRrs&Cy_B2!o=%Rh~qo2spBU5b4SD*g{1!Ob4LgMko~l`kP{>HNCi~XiofVd2SIf3H*U z$x)hml=$WigQ1upL@{#)rBaIYx#k~XB~M~xA0th9yxyN758yM4dsFBVOi4nS<8{j? zIW$CrpRzhrNcDlxf#Lc5mifVS9QW#`54YHDZrEX~{{yXN6JvKG{QXW8#TB4b%(>o< zADeBTWf!#`R{z-BUu$)rd46}AEm5`)R}EhT2kZ1op1Z$Xf7mkUP^R9D zDV2Veb8xvkmU|+DRH#BJlh44HDwf)KoVBo)Rxz($E>6+n#hc93axB4Z`wua~ebaHS z;xv7A-?#gn^)>&`X5X^vwd^(=jZ1d6xLB9~AFqPiR?|i%s%$d~N{Zz9kbqoCZ?F4j zo0;~b44*Dc%vd^1yoW!d>WF#9*ChuhA{mv@Llx?Q{31DQD-1?`o=+ZEcYMf&%m1g{r{ z%g!6oB`7(WX9uZQJ3Xg!Y!3w7FGjqIE##tHU{YVowhQmE*;_TaDqMQdz<3IbYaPN=LGuah@IWhQo4M{8+tFmeSxjW$vRFWBh{E zpPYwu@F7-y_ddjOOk*K77Zi;Rd%+XZel}`qzTA{;CdKF&o&qx}Xp5mHZ{O$|Y zWR`9W5In9{3<1WonmM9@zvR;0-!@!6GB^eL_t7eaEB5)iS!u8-kQflA5nirsBu--z zx@)Hs5S=~{N7n9nN}aZyBhQs<33xKvBsto2u*6m{nwi<7?N&F(>665h1Dz~#3YRFj z48`^g>^h~@Y9H>yJpI(Oj?Mn^s~KMgDpQdm8Y1}e$mk0#jWQ$4zh#aM3i^<95y-{3 zp72#CT@7ody>?GOPWf$N{d|ig$9*0ycQ+~E=8zY8@?EE**}r+`5-~=D`1Bowi_z;>8E#0s@1NYl`8n07n!8UMTZhVb?i zMmyytIA%!&9*}-;swQt0@JZ+!cFPZk03`((#xJsI>eP5jr5(t;UCR&!gw3lN8}H=d8aw9m-zJCzbHQ?3k`@AyxE{7=5UqB%h|rJc z`PY^wzTZHT@FMSt1o`YI^?G-$3O035{DN)P$VhV0Mihr4u}nKZ94=&od0VH;WL{+I zi+X=4!{WzKM{HY-tq?$#nc5U-x)8TrF?)M`(a0i!*o#6zr#2Hx+cOnLQ~hPWST#aV zG%NCv1ZA-b9j^y)`D#_j48^$IwRwE8SGs!1vV}r{f}~}dbxtHhRqRV;{>YNvsZ4na zha83wIvEVcaGl{RE?KfD=fBwsHekGD>635*S=K&RgPreekQ+~Cajdp{v*zTd=cT>) z=%j*Y`j=yw>*cvRF$UoH^gG{$m_;D&G=7iHJKiNK=tSGig~C%4k_91+bwjQ0&MG^E z9|Q}LEuZc;_twq2c%5mF(Dwyff|&k>>^AIL86Y;(BdQ95CSsE^*yJh0X>eNpJl)|x zhJC^?#jriuswe+ePCBUw7&oTV7;us<(!&iv7!4wcktK+Nz?Xlq11DHpi*MprXJV$i zc)tEWhxd1t1s%89)nN{M9P%@xvgJhitwXp_XNHF!pfSo$LH-OhF?75nlpr71yHx7~ zT)IWPV-)|W$qNS`H5Ffl_p?0`mY$UPTHddV?DmoI7lfeqSvC0*=RZJJiw+tZ0-h2% z_N$CKx~vELxT0nnY0GkKaT0zoh_$_ffIgX3+)6&TNge+#9psuZb8jYLPw)!GTV`{wh^j@}iJ z>Ftkq`?$is{mDcS!H+3A{%-aAxl5OeDym7s?^|UY>-Dcw9JH2GoLh$N zND&vmcUg&Ab~}gBEcd(%w6llsO6=@jZ!fzd9&M{c&)Y2XN8DqV;ARq)a>0lEt#z6gM_|DXWy^mdsc89E#`37|)f;e$1y znAsglm1;jy)IvwSvH*y5^vy3Q0=8v<)l8wtgi;p+h(A+ zn;>rb7qHwmJb-YUeOtnzs9hRr)-;n97lGnnLMRS~KVXIi-+zPpJ_{iIXW)PqV6UVA&{yWl z!3zk4om^TB!*}Xl7ziT^MTjjdMA&@lnwr5s5cP$=sxq*D0{eK9vMRJC3bqQF&D9}q zy+ZpMP9t*M*oGD6kn?MV4E27)sLfnTHO_GCQ|5nO&k8#ii%W7~TWxQ%l>#B$puWByq$?79AjD%jK#3UYqxHW&1Cqli8EHiJqrLsx!OR%&9*B6Sk5Q-U-L z4nQV<{It=w&@G+GEhDB zc)k5G7RfK@;Ox9svB;M6dW^Um5Tu!+1#M;Jl=vu5Fe%pDvIP8|ii0Z~$xyfQLVq+T zCQ=ElUmV}N^k(7;g3CTY489TCcdKfp=Srccs;~Vy8J@Ek78I9iPtMM8g;eW$&$mpE z8lXk>{N&VX&EP)|Nw%PzpEq3NtB82U)_2EVMjKTa1wMd5FU+EH1z$DaCgj0d=-%Zt zxn5FYo0OlEHA=O(r6aSf<@bdB0ytNpn5i;2s=_?ggC0frax7J?x(kX}{P~V>Z^Tpb zQLCf|B$bM3&NcFk1W{rUkWREJ%wvgD6(4{DWjxy3BZN@Xd*AzON{e0+VecX|$fb*K zj|k?&6)Y9A{BYP7WbN(@|H2vuE1vF+r2Kn*1Kq=lN$!t0|WW7j2pv*vHQ4U4&XJ0<0$i#@8&ll(2HPQkp(BB-iwj021{LOTrz7r!$fxTu+8v4H`KX4%iHyQUl*D4`Ytfs{RhYmp zi6)viBw!(?J%+=A0`lF}I*1bXB7{^@Y{UAahH6j{5DAjZ2-r%DV5CNP{Lol|9QS)j z#9@qmj>j)5cr46Fv#o(;j!xcG?PLmXs+?h`ra>Y$Z?(GK@f`tzqSAn~a$Wb*1A-5S%v_;t^)& z&g*(XyQC&UTmw9PKC1;vgW=YVz(;3NZ6yJXq@m=HayFy+c^5QTr@sz#<(q7q!EF9% z^g|^P?nzhjh#gf*gg4aXjqF&wi0^;GYod?R^u3lUSJxp6C*3Nvs&fXI&|&>)p?}=} z?ENdN1IN8;-f`+gb{3z@iCGv?(m!S(>fWy}E#e2B_ZNY%9t29{y7Cdp7!Vvi^kufr3Z z2Z4-uqFa+edf)=vkMbfIWA!X^UEO>Q^M*FJDym!lxg=IPilKGpHG{a2KiHpU$I=e|h-1@>z&cp=uRmc)(Sn&wqgavT;qqS$HpPVr5rnsY%|ucoqQJi1H7CjX>U`4s!Ji z(x5u_V?1ZVy|dXM_s8mxI~Fhdn>!J;2-FEqTelq$Mkg2BC@jP=JnkE zeq8`dc%q3-s2_E!FTkCUodozK#j@X^U{w1bk^3s@k>EUii6(rK?QY|oF#aqF_BiwD zj-ylGcIu(?Fb2EizLEB#%uQ-y9dLM}4`L#VZ{dx!WlTgwA>~O^7tk1xeo8;W3sQr- z{HX8XRtiJ)RP8J!jW=wL%VnFx#;k?W^d0@46&IbvcGlhh5faFX>0ZTts!*{C9Ua4c zgZxV{$rnWbEuC}_HfXj|=@Akoa5mcRpy6E7^TW8aYLKX;WfAt<7E znReloT6&?r0byEwopd2Z?CNr;)T!lf`B%iNntDsKaN_TCnF)KV)*6tke#?5i?5&A` z^2BWGL#`hvn(qY%zj+@Qr^w}S6i&kn^RBBhUn|>gU(qK<2iHr~i5ZnyY8#)XgnNEF{L_S*H`0ZGL_#+D zH1-kZDx7BsrU%kHVNq`u{pAA8H)+jq~#ug2+8;$S1kZy42ly;g^X#zzKEHN8u(i zgdz)u6L<{=p!mM^%HUAR6s*Mh29UGq*!;mt&$4=_{0SFqxNpi)_+R$OXTqafA0(rb zFVzjEI*})&6r@yra(2E2#t~hN-gi5eMy1^D>5&yf_?M9H0*`}7#|$i=rh@3pj)_DL zc8H)zBRa?D=yGs6A(nEC6wY_)VF7(~W$-`TBMFSPfW8mTP!t(})KHrH@5| zvbq>=6AM(orG!|d6{Y>h!k~-vcB+pqo6HCb3)!Iz?wInBAoM;=V7&y{U(8TsN(k)p z$GFrm2e=BjgOo|4NHiI`=?CbhwMxu#z*SXH%9=tEu%iIr7aq8%afvp$2)IfWY5~Bc zm8S%r*cv*~XvH#KQW3a{4vLDAuxWtVg>M_7(~Ybe#3`Zv+XN^P{WCNUYJXUP64C4$ z6j)HWECD>B8ov-w%0RlT&~5iSseoC-j*V~m|8rZjf7dwg<0k@D*8eMB7y!yE+@LM! z>mvZ{_rHx0UHPv1YZjNL?K+(=NTWNaJ~CGP%tj0^R^VFGs*;) zs&;(ZT$|{8wQ?-9x;ne%;AFb?TIvC zXst6`8vc|nac^f-EHz?$wJ^Q&(erD+nZe_o%S^q+Lix=?n;5zILJJ)BSIyvEk7}QB zVH0ozy~op2sB9;g*KD=F97x^KE8QB7XbbzELB;eP0Y>BO`0smaFpnkrT(Qx8xzAY@ zV~J|^C#j4FuRy1HAPR9cm24!w+9@@mQd?ri#7qC$%lZ!<^9C_Mtq%Ucv{-I>d)-<} zmHy3fnCA2D&W_m3x=Z|c2DgdhL{_|v%Yzu!Xr_1lpo8^s9}XCMMC5|Y4P#JJbd(^} zwe=4@@cU=x*yHjteaq=uD|KrnFE8hbkhrAy%m&Omm?DE#<=J+7ck_i3&gaWh@#SiZ z%DEpX!x3XEPVynawp!0ot?<`c%MlA52M+a2=qLTpz`6>PM z-nVPp?;x%eSV<^3YUF#BJI)Spv|d+_*8?*is+6l`R%pcvUl(IqNTGL<3Av0rnvUG0 zAGEM{=Ay97^yV@GZ7u%nR!bGb<Vl%q)mxqSbzAs+7S1Ow zl&*d+tYeOXMS+F})1xgk6HqlqFZ>sIA);{izuRWZ7gy3LSJN&f8m;i5@mK$*e?jF1 zgZ|F6&5<|Ql$|^oTIh|3{$&yR7CLgyv*c*S?Qie-H>Q1VzQ%Av1;FlKd}&A{)SzO_ zO+D7F-ib1_t^9YCYHvR9@_%9GxdjN<2&Ek?ay=}0-}0WyQleI6d#$QqGXL) z7j-xQs#Y<%K8i{NwXoIAF?XkQetIFyOY!r(KZ&}OK5vVY;^&$;Hln0r5M%V8QJI%0 zc7V<$4_p-?QWbFV`eW*5-cvezJAMLmfOTQ5r$B^4@1{{a&{705wYAIul4(&Bh1REw z-Fm6u!DpT$W$*rPtwGWHb5zo@yPMl2m3^n;rMR@TGHgPOo&T;^eYA3|@)fngbcrjL z+kNxvRIWjP>hgYUVtfn0ah}gufWEMVT~8i?O-8c=_ZE$r^IuaFXK4eNtjx1Qe0S4teD}ezF%^?D zGLedaPI>7+0p_S55X;Qa!uEwocxR(MXPrr_D>23J!ibyCf+A_cyt+#5)0_jYP{-ZL97-vb1O1pKCgjs4K`&&XmM| zkpsAPNh@9cmzxE7$LD|k0<(XB_$5KcdyvhT>@&C3aF;K9pEDY=wST`5`u2ik}lP zYzZ+foJ7dI-mHzvYvX;oIOMP%XYRY3ml1Cf2gRE7gN0v&!fHYs)AaSX6m=M@ul(Cg z*9Pz(7?f&$(muu`ZEPaI&#acoJ@0KBv75f7#+aL6&C>?NHcQ8U_Wg>4D?F#0}(& zl_(YGjfd3^JzsKUrVd|=#fM^3*I1feZ}fhg^Sj=BhlDglK$9zVK8Ze8$gUz67>DAa zcc(GgAt5X%YiAcav>x&RM9h)3keK8JuVi=%X%XFZH;bN-ZQy){hw&GVkMC196=EC{ z4kt)7`iYfnxUsn2Vt~v0(us8CP10T}N&2nkS5$zFo`{61y3mKDDtcOig|$}I z_WGdSVTTcy6i6H;OBz8(PsfR-%fsWoituy&K5nOtm$t9&;Jv4>zdzyqGWWY+tAL*S zTjLigEEenwBo8l)Bh+t%p5v;Px176Mz2I-?QA~|T@TXx;2zcBA&u`}2JUl(6e1F+V zR;VAXs>}|og>8R;Mc#`rGX#er|1zpAlk@!+SyKsvmOu{kK{%BnDhjW_L--$B-l1NCI-u}(E2J5MCPcy4;DM^;h z-GN}{6z#M-oH3oNck%RE^7R6r$F+TngMu>>c8@asy3kC-P}ju|0w^uw4nBpvyYEl$ z)TLA24)xpE$a1jo-JNOGFp2kf3=Bagpo4)|k50TDa<`f4^73@}MaDi85D}ZScv&(b zeY}!n&hLMH%OKA5iI)}EbS65oF(>yM2bGHZ4fe6%1uBencF5a`{KhBY8-8c1*boZ( zp|zWSH&OTRvnb>4->NcQe~>|?gONyGt8GA1rJ*|S{PN1emN|j?;^t^B z_l8du=omGn70H;%dU5^|dwm?jP(n?VlMJ%FJNxb;>Wqj~At1x^^yYbtKo>=t{NH?W z`$4a$c!6|znhy^+l`X>SFJ~_ks`nz2^xWibwQKDu&a1em`)yW>B^OyrV}Miz_mUji zF-|ewt{*FMv|YS7_P^R>g*lCnga1TYeg}jls)q4=f4$w|prwa_pxo`qM#iC<%A#~W zhO~XVdsD2ITN0}1bv<^w+iTdAF?O$S({aNSf#;UlbB=5gt;P8_?E2+lFXsI*={#XPp_gm@rMDu9wP7%`{3oyBdA*p6sYk8D(5oOQLlx!wZFy zD(Z+&e1o3`2w@rNJv}`YiQ zQa-Bph=7gs>6^pPcZeh`3S$~djEqKE+_g%+-iI!M2`h?3ao-cEDrnTZ<6KrZ%Y_=W*b)v($<&Y zjoBcvl=P!JAsr9?1x_u)!Cw*rZO!9%eEe)7jaa(`sh8jB)mKvnaJ=l>-!*B_W^`QgyG=%{C~wn33a+4Yd^w?6uaN>@-$CUR7Qh!|Pnq&x-#Ikxl@qo3Jv8rs9O|}8HWk+a zYTf89=sw@JnX~@87AccS4vi;NPKg8(T@$vVM|_}lvm{hb`G2-a;)?>$_}#gt$yenE zAj-qHEyySL)iBXi-_=IONErH5aKL^wZxR%NiWvIWXw|h9tYoMzWC$IxK<7iD1a&^0 z0@ZcG?F~So1E*4h_CBEKiYY;L7o335#f)3Lcv7N>Lcn$Lu$igSAY%xG3j1EH8EZF*WDrtDwEcfg_N;If-1S)9h4G* zX#1QXH3j#VdX9ZjeS-6Sw`3xqtuJV~-aI24VEh;UjhV5S9Y$*5pX?~Vl{9O^I0u%o zcR-FHoXyS3`VI_NOaa~rWDNdl0?@XAKDe>N2o=gnz4>s^L=<7Vp46sZHnij^lD{8h zg=x)iHYzgB-8dBDn_jYK+TPldf||gV*-EBLC-|fUNbsegJ;bT^%*$d{@Bj)S;;c)V`HwE90vUNhFF_Awf8v zJ!O9YtI9zGP;j>FjT6t7YEVIKObUhLlM%Cuj+KC$h-V?A4uHc4Yx(a!wCzdLsuZxM zg9)VoT_!J8c|V4tNM@p9wopX{83@i|G0E9?v$JdQLcLr*Jz0%_x8>t*nsCPta;vw9 zsjOsxt5sI4u%uaT<+IY>=h{Qz>m-{kw?}BH)FCNRFNXP@-q|IXW=wqOdctj+6!u+aq)Kj@&|UhRuv<6rs*MJ7EIE49?2sR~2;`!^5*0&MmtkuJ(zyxd3*GM_ zUc0}={;ccGHP{ESUv1~2B|kvYH*eAM1~OB=L)~T14yG%i9-bbG?a>>$2UGRr*m^Mj zT_ORmh+cR1XpUA-{s^xTDpayS-}JwJ;2l}yrFAgZ&LZXE4i6akR%gBKGi(qmKU`W) z7lC=f`qbAX?9+?!`%kEpbm*5UA5yVNp*2ajhsbO6JblXaX70d0?}_%D3O-M7+W25Z zg(ep_H){UJ-JncpT_(LCoA^!uEvVJyI9~Gp{Y|1Cd+`$ zKp7nYzaz;5fQ&F{H-y#t%3$A(76U^XOWRdoF8StVAXF0gq7N@o;HkrlaNCAlSAoy3 zE=$HoWp-l<3#r<#AHwz@nt$2(3-euKLcNUaTanXU2*kO-jFZx!hZ9Ke{uI;J%-jNQ zFZ``a%9H|@HpQ&F(FH48Q1|oW0qsFBQ&6}|47_dUirTw?K!oWk3eW(ml?LtcK?W&W zDbtHqbKr0SO+Fa(1AVcC?QlPXlzjF%wyfIecyU~Lq2LkZHVQ{zyWUMcySK5K8)~`I zU~XJOMFj_yTdR@FLb~%tk&-VSE?K>A=+qf+1yXL$-{<=RWR9P7I;X@~3ah-}*$@!$ zAveN+<54R4CCNniKG}Z30oG>6`!LQ`Eiae>4jxukAu_`cc6Ut2a2goNs8LL;jGhD7 zM2kzCb?8TD`&g7%xm|Da#Uv%krCv&jT5oBOKgy}*dOWY{w|pX*_~{%Ee)i~SnF}HB zxE>gsx9KHl_w?Ri7tVBjbG7%i9-65s8t^6NRS*wR{H1onRA%b6JeJ9o3`74el` z7p!$R6*il-KK7|)?#Nkt9oUOD&ik_}h++oP`xI6AnCE@W-exVbg(&^MkCtl-YRjZ| zZX3?Nd`LCUuMnsa&JmT0Z+o9gq$H}P=^CMfDK|-kC0nX15$GeQ$5s>6y5yQ<{vPOP zvB2o)cyvcIJPpK#wRY(Rh(@?uWZAco!k=Hqd&xqi!pPQD+>p8DC0u~C2NPnIzA#JAo~HM?KSSm znEw_$#u#)9fF@F7MJvBgmpJ`9>{GGO2>7fbNIwNnk`A&c_cGpLtklJHb8(pjJh)0q zjg~9Lk!yh43*bQ|Nw#B>B@$7sX0S;IkYVJfo*jVnBSi!Pk!P;@xcfM@pRyd^J#&|e zM}GXA`0&~7s839qBbnc}pi;fo_gSlfjn05CIh~w&IrSYJNIQCI@w{?!z|vSC+C{Tj z-_`L|(t*{J)jb2*!*ZoMRad^ZEj)y`@_?Uv&JXN}{>~^UN*D-$Ih=HPZMTFI`Pt4% zkcJ~UX|ho!%im4kn_ar(0UDx7GW2)>uD)F>?zmS(R1@*RMweF~P-gmy; zurRNkl^xlK3zhcEVls29T#?#6xPgzntxh=s>#uzs-@QwKS}Fxso>ezeKeB6I$jj=e zuXtv*e8x&%L}dNtuC(WN4oRlekt}PvRzd_@D&SQLFl0jy8n%J!Ul0)8K>;DgkQ_RK ze`8%x5OC&5O=93<+o5^a?sk_+%qyRd91djrOIrjhpe-QYv~TJON#l`43q$fMa2_Wa zEA7&xeTw!aVhc)WU0g&W+K2^m~^k9qqjVB%)OEq&fIp{f>km-Cb_Rs)L zh>*0bA6YN&xRZ>@U5XGd0~KniCS5e4a~ZAbA<5x_YLatV_1mw5oc^6tu|r4In*vDt zIN87blp={?2s&Te!<8#nv*xd7i$oTQ7=zKx((mTq3+evTn5Y)pg8%u%nACQ_R;gkC zQ}_YClm2Z^Td4{MK~E(QY4q8%Oee+}HU=y*T%d5tYtDa-(fCqiA|Sh6w19sqA>dSw zOe~I5<4e0*AkLROz?6_UI{1un{-^R(miws_wZZxto4c#4yvzCDVU7Y4>pD-}vo{Cs zCe8%6J%aI=atY}(R5JF=bXbWL5I>q-ul~^i%vfuP<~PxiP@5DW0Pd!Ow}n4behT;h4w5^#(1OqtPEiMK(WXCe9g#xJ=Yp- z>6G72wG^=C?Ve-TB=AMOMIYO{bVAt}EA8Gz$m|9}M zEEP9wAQ;24iemCclU}@c#1Nh6x=#7`yl36Jx9a2&i)V4y7ZE6|Tt5-!hhf?Trt?(d zZ0a=nkPOGeCM? zzJAaV6p%GfwN_9x8lbw3Af!@Dpu-|F16#tm-WnbIeFsBJ2NKI1ItV)TAW#osZ?7iS zqd-?7t@fx2sey%Lfq;inj&|0W2U5(SVLAUF7k?q?Dp)DVwleX41N?{yNefo+>-zl< DQS0uI literal 0 HcmV?d00001 diff --git a/assets/v2.3.0/global-settings.png b/assets/v2.3.0/global-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..d9fb74f0e6445a32d1b8b799b9440f1a77bef5f6 GIT binary patch literal 12036 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 WWCv7p{N3XYB`c{UQS;F_`2PUH4sZJa literal 0 HcmV?d00001 diff --git a/assets/v2.3.0/other-actions.png b/assets/v2.3.0/other-actions.png new file mode 100644 index 0000000000000000000000000000000000000000..33d2f9be78d69d73bfcc55472c57f15fdcce329a GIT binary patch literal 30878 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 A@c;k- literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 960ff977..69d94879 100644 --- a/package.json +++ b/package.json @@ -256,13 +256,18 @@ }, { "command": "frontMatter.createContent", - "title": "Create content", + "title": "New article from template", "category": "Front matter" }, { "command": "frontMatter.init", "title": "Initialize project", "category": "Front matter" + }, + { + "command": "frontMatter.createTemplate", + "title": "Create a template from current file", + "category": "Front matter" } ], "menus": { @@ -287,6 +292,10 @@ { "command": "frontMatter.init", "when": "frontMatterCanInit" + }, + { + "command": "frontMatter.createTemplate", + "when": "!frontMatterCanInit" } ] }, diff --git a/src/commands/Article.ts b/src/commands/Article.ts index efaa704c..bf0e2995 100644 --- a/src/commands/Article.ts +++ b/src/commands/Article.ts @@ -230,7 +230,7 @@ export class Article { const txtChanges = fileChanges.contentChanges.map(c => c.text); const editor = vscode.window.activeTextEditor; - if (txtChanges.length > 0 && editor) { + if (txtChanges.length > 0 && editor && ArticleHelper.isMarkdownFile()) { const config = vscode.workspace.getConfiguration(CONFIG_KEY); const autoUpdate = config.get(SETTING_AUTO_UPDATE_DATE); diff --git a/src/commands/Project.ts b/src/commands/Project.ts index e2c61f9b..85896815 100644 --- a/src/commands/Project.ts +++ b/src/commands/Project.ts @@ -3,6 +3,7 @@ import { CONFIG_KEY, SETTING_TEMPLATES_FOLDER } from "../constants"; import { join } from "path"; import * as fs from "fs"; import { Notifications } from "../helpers/Notifications"; +import { Template } from "./Template"; export class Project { @@ -22,28 +23,43 @@ categories: [] /** * Initialize a new "Project" instance. */ - public static async init() { + public static async init(sampleTemplate: boolean = true) { try { - const config = workspace.getConfiguration(CONFIG_KEY); - const folder = config.get(SETTING_TEMPLATES_FOLDER); + const folder = Template.getSettings(); + const templatePath = Project.templatePath(); - const workspaceFolders = workspace.workspaceFolders; - - if (!folder || !workspaceFolders || workspaceFolders.length === 0) { + if (!folder || !templatePath) { return; } - const workspaceFolder = workspaceFolders[0]; - const templatePath = Uri.file(join(workspaceFolder.uri.fsPath, folder)); const article = Uri.file(join(templatePath.fsPath, "article.md")); - await workspace.fs.createDirectory(templatePath); + if (!fs.existsSync(templatePath.fsPath)) { + await workspace.fs.createDirectory(templatePath); + } - fs.writeFileSync(article.fsPath, Project.content, { encoding: "utf-8" }); - - Notifications.info("Project initialized successfully."); + if (sampleTemplate) { + fs.writeFileSync(article.fsPath, Project.content, { encoding: "utf-8" }); + Notifications.info("Project initialized successfully."); + } } catch (err) { Notifications.error(`Sorry, something went wrong - ${err?.message || err}`); } } + + /** + * Get the template path for the current project + */ + public static templatePath() { + const folder = Template.getSettings(); + const workspaceFolders = workspace.workspaceFolders; + + if (!folder || !workspaceFolders || workspaceFolders.length === 0) { + return null; + } + + const workspaceFolder = workspaceFolders[0]; + const templatePath = Uri.file(join(workspaceFolder.uri.fsPath, folder)); + return templatePath; + } } \ No newline at end of file diff --git a/src/commands/StatusListener.ts b/src/commands/StatusListener.ts index af1df44b..66b3d128 100644 --- a/src/commands/StatusListener.ts +++ b/src/commands/StatusListener.ts @@ -17,7 +17,7 @@ export class StatusListener { const publishMsg = "to publish"; let editor = vscode.window.activeTextEditor; - if (editor && ArticleHelper.isMarkdownDile()) { + if (editor && ArticleHelper.isMarkdownFile()) { try { const article = ArticleHelper.getFrontMatter(editor); @@ -61,6 +61,11 @@ export class StatusListener { } catch (e) { // Nothing to do } + } else { + const panel = ExplorerView.getInstance(); + if (panel && panel.visible) { + panel.pushMetadata(null); + } } frontMatterSB.hide(); diff --git a/src/commands/Template.ts b/src/commands/Template.ts index 47d24af5..90045af2 100644 --- a/src/commands/Template.ts +++ b/src/commands/Template.ts @@ -8,6 +8,7 @@ import { ArticleHelper } from '../helpers'; import { Article } from '.'; import { Notifications } from '../helpers/Notifications'; import { CONTEXT } from '../constants/context'; +import { Project } from './Project'; export class Template { @@ -23,9 +24,8 @@ export class Template { * Check if the project is already initialized */ public static async isInitialized() { - const config = vscode.workspace.getConfiguration(CONFIG_KEY); - const folder = config.get(SETTING_TEMPLATES_FOLDER); const workspaceFolders = vscode.workspace.workspaceFolders; + const folder = Template.getSettings(); if (!folder || !workspaceFolders || workspaceFolders.length === 0) { return false; @@ -42,6 +42,53 @@ export class Template { } } + /** + * Generate a template + */ + public static async generate() { + const folder = Template.getSettings(); + const editor = vscode.window.activeTextEditor; + + if (folder && editor && ArticleHelper.isMarkdownFile()) { + const article = ArticleHelper.getFrontMatter(editor); + const clonedArticle = Object.assign({}, article); + + const titleValue = await vscode.window.showInputBox({ + prompt: `What name would you like to give your template?`, + placeHolder: `article` + }); + + if (!titleValue) { + Notifications.warning(`You did not specify a template title.`); + return; + } + + const keepContents = await vscode.window.showQuickPick( + ["yes", "no"], + { + canPickMany: false, + placeHolder: `Do you want to keep the article its contents for the template?`, + } + ); + + if (!keepContents) { + Notifications.warning(`You did not pick any of the options for keeping the template its content.`); + return; + } + + await Project.init(false); + const templatePath = Project.templatePath(); + if (templatePath) { + let fileContents = ArticleHelper.stringifyFrontMatter(keepContents === "no" ? "" : clonedArticle.content, clonedArticle.data); + + const templateFile = path.join(templatePath.fsPath, `${titleValue}.md`); + fs.writeFileSync(templateFile, fileContents, { encoding: "utf-8" }); + + Notifications.info(`Template created and is now available in your ${folder} folder.`); + } + } + } + /** * Create from a template */ @@ -136,4 +183,13 @@ export class Template { Notifications.info(`Your new article has been created.`); } + + /** + * Get the folder settings + */ + public static getSettings() { + const config = vscode.workspace.getConfiguration(CONFIG_KEY); + const folder = config.get(SETTING_TEMPLATES_FOLDER); + return folder; + } } \ No newline at end of file diff --git a/src/constants/Extension.ts b/src/constants/Extension.ts index 663fa3c6..4645c3cb 100644 --- a/src/constants/Extension.ts +++ b/src/constants/Extension.ts @@ -19,5 +19,6 @@ export const COMMAND_NAME = { toggleDraft: getCommandName("toggleDraft"), registerFolder: getCommandName("registerFolder"), unregisterFolder: getCommandName("unregisterFolder"), - createContent: getCommandName("createContent") + createContent: getCommandName("createContent"), + createTemplate: getCommandName("createTemplate") }; \ No newline at end of file diff --git a/src/extension.ts b/src/extension.ts index 65c0c1f9..ef30a011 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -70,6 +70,8 @@ export async function activate({ subscriptions, extensionUri }: vscode.Extension } }); + let createTemplate = vscode.commands.registerCommand(COMMAND_NAME.createTemplate, Template.generate); + const toggleDraftCommand = COMMAND_NAME.toggleDraft; const toggleDraft = vscode.commands.registerCommand(toggleDraftCommand, async () => { await Article.toggleDraft(); @@ -125,6 +127,7 @@ export async function activate({ subscriptions, extensionUri }: vscode.Extension setLastModifiedDate, generateSlug, createFromTemplate, + createTemplate, toggleDraft, registerFolder, unregisterFolder, diff --git a/src/helpers/ArticleHelper.ts b/src/helpers/ArticleHelper.ts index b4947721..adfecbe9 100644 --- a/src/helpers/ArticleHelper.ts +++ b/src/helpers/ArticleHelper.ts @@ -100,7 +100,7 @@ export class ArticleHelper { /** * Checks if the current file is a markdown file */ - public static isMarkdownDile() { + public static isMarkdownFile() { const editor = vscode.window.activeTextEditor; return (editor && editor.document && (editor.document.languageId.toLowerCase() === "markdown" || editor.document.languageId.toLowerCase() === "mdx")); } diff --git a/src/viewpanel/CommandToCode.ts b/src/viewpanel/CommandToCode.ts index 3e9eb4a1..eab2f4af 100644 --- a/src/viewpanel/CommandToCode.ts +++ b/src/viewpanel/CommandToCode.ts @@ -16,4 +16,5 @@ export enum CommandToCode { initProject = "init-project", createContent = "create-content", updateModifiedUpdating = "update-modified-updates", + createTemplate = "create-template", } \ No newline at end of file diff --git a/src/viewpanel/ViewPanel.tsx b/src/viewpanel/ViewPanel.tsx index aeaa7223..1423a91d 100644 --- a/src/viewpanel/ViewPanel.tsx +++ b/src/viewpanel/ViewPanel.tsx @@ -1,20 +1,15 @@ import * as React from 'react'; -import { CommandToCode } from './CommandToCode'; import { Actions } from './components/Actions'; import { BaseView } from './components/BaseView'; import { Collapsible } from './components/Collapsible'; import { GlobalSettings } from './components/GlobalSettings'; -import { BugIcon } from './components/Icons/BugIcon'; -import { FileIcon } from './components/Icons/FileIcon'; -import { FolderOpenedIcon } from './components/Icons/FolderOpenedIcon'; import { ListUnorderedIcon } from './components/Icons/ListUnorderedIcon'; -import { SettingsIcon } from './components/Icons/SettingsIcon'; import { SymbolKeywordIcon } from './components/Icons/SymbolKeywordIcon'; import { TagIcon } from './components/Icons/TagIcon'; +import { OtherActions } from './components/OtherActions'; import { SeoStatus } from './components/SeoStatus'; import { Spinner } from './components/Spinner'; import { TagPicker } from './components/TagPicker'; -import { MessageHelper } from './helper/MessageHelper'; import useMessages from './hooks/useMessages'; import { TagType } from './TagType'; @@ -36,18 +31,6 @@ export const ViewPanel: React.FunctionComponent = (props: React ); } - const openSettings = () => { - MessageHelper.sendMessage(CommandToCode.openSettings); - }; - - const openFile = () => { - MessageHelper.sendMessage(CommandToCode.openFile); - }; - - const openProject = () => { - MessageHelper.sendMessage(CommandToCode.openProject); - }; - return (

@@ -60,7 +43,7 @@ export const ViewPanel: React.FunctionComponent = (props: React settings && metadata && } - + { } @@ -94,24 +77,8 @@ export const ViewPanel: React.FunctionComponent = (props: React ) } -
-
-
- -
- -
- -
- -
- -
- -
- Report an issue -
+
); diff --git a/src/viewpanel/components/BaseView.tsx b/src/viewpanel/components/BaseView.tsx index d22ea754..d33b2058 100644 --- a/src/viewpanel/components/BaseView.tsx +++ b/src/viewpanel/components/BaseView.tsx @@ -4,6 +4,7 @@ import { CommandToCode } from '../CommandToCode'; import { MessageHelper } from '../helper/MessageHelper'; import { Collapsible } from './Collapsible'; import { GlobalSettings } from './GlobalSettings'; +import { OtherActions } from './OtherActions'; export interface IBaseViewProps { settings: PanelSettings | undefined; @@ -46,6 +47,8 @@ export const BaseView: React.FunctionComponent = ({settings}: Re ) } + + ); diff --git a/src/viewpanel/components/Icons/TemplateIcon.tsx b/src/viewpanel/components/Icons/TemplateIcon.tsx new file mode 100644 index 00000000..b6c2eaa9 --- /dev/null +++ b/src/viewpanel/components/Icons/TemplateIcon.tsx @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface ITemplateIconProps {} + +export const TemplateIcon: React.FunctionComponent = (props: React.PropsWithChildren) => { + return ( + + + + ); +}; \ No newline at end of file diff --git a/src/viewpanel/components/OtherActions.tsx b/src/viewpanel/components/OtherActions.tsx new file mode 100644 index 00000000..c2bbc80a --- /dev/null +++ b/src/viewpanel/components/OtherActions.tsx @@ -0,0 +1,58 @@ +import * as React from 'react'; +import { CommandToCode } from '../CommandToCode'; +import { MessageHelper } from '../helper/MessageHelper'; +import { Collapsible } from './Collapsible'; +import { BugIcon } from './Icons/BugIcon'; +import { FileIcon } from './Icons/FileIcon'; +import { FolderOpenedIcon } from './Icons/FolderOpenedIcon'; +import { SettingsIcon } from './Icons/SettingsIcon'; +import { TemplateIcon } from './Icons/TemplateIcon'; + +export interface IOtherActionsProps { + isFile: boolean; +} + +export const OtherActions: React.FunctionComponent = ({isFile}: React.PropsWithChildren) => { + + const openSettings = () => { + MessageHelper.sendMessage(CommandToCode.openSettings); + }; + + const openFile = () => { + MessageHelper.sendMessage(CommandToCode.openFile); + }; + + const openProject = () => { + MessageHelper.sendMessage(CommandToCode.openProject); + }; + + const createAsTemplate = () => { + MessageHelper.sendMessage(CommandToCode.createTemplate); + }; + + return ( + <> + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ + ); +}; \ No newline at end of file diff --git a/src/viewpanel/components/TagPicker.tsx b/src/viewpanel/components/TagPicker.tsx index 010e6e52..64b2a872 100644 --- a/src/viewpanel/components/TagPicker.tsx +++ b/src/viewpanel/components/TagPicker.tsx @@ -126,7 +126,7 @@ export const TagPicker: React.FunctionComponent = (props: React }, [crntSelected]); return ( -
+

{icon} {type}