From 2590d60e5886f4b59c4ecc87e39d9272b48c3548 Mon Sep 17 00:00:00 2001 From: Mohammad Hariri Date: Tue, 21 Apr 2026 23:16:43 +0200 Subject: [PATCH] chore: remove Go/templ legacy implementation --- .cta.json | 18 - Dockerfile | 16 - Makefile | 17 - assets/.DS_Store | Bin 6148 -> 0 bytes assets/css/styles.css | 65 - assets/images/invoice-manager-thumbnail.png | Bin 71000 -> 0 bytes assets/images/portfolio-photo.webp | Bin 39168 -> 0 bytes assets/images/profile.webp | Bin 79510 -> 0 bytes assets/js/experiences.js | 2 - assets/js/experiences.js.map | 1 - assets/js/landing.js | 2 - assets/js/landing.js.map | 1 - assets/js/navigation.js | 2 - assets/js/navigation.js.map | 1 - assets/json/experiences.json | 126 -- assets/json/projects.json | 30 - components/about_page.templ | 202 --- components/about_page_templ.go | 58 - components/contact_page.templ | 109 -- components/contact_page_templ.go | 58 - components/experiences_page.templ | 65 - components/experiences_page_templ.go | 280 ---- components/external_links.templ | 14 - components/external_links_templ.go | 94 -- components/landing_page.templ | 71 - components/landing_page_templ.go | 58 - components/layout.templ | 23 - components/layout_templ.go | 52 - components/logo.templ | 7 - components/logo_templ.go | 40 - components/navbar.templ | 86 -- components/navbar_templ.go | 48 - components/notfound.templ | 10 - components/notfound_templ.go | 58 - components/projects_page.templ | 65 - components/projects_page_templ.go | 290 ---- components/tech_stack.templ | 24 - components/tech_stack_templ.go | 156 -- compose_production.yaml | 34 - domain/experience.go | 83 - domain/project.go | 14 - go.mod | 5 - go.sum | 4 - main.go | 113 -- middlewares/combine.go | 11 - middlewares/logger.go | 34 - ts/package-lock.json | 1521 ------------------- ts/package.json | 25 - ts/rollup.config.mjs | 40 - ts/src/experiences.ts | 16 - ts/src/landing.ts | 43 - ts/src/navigation.ts | 32 - ts/src/types.d.ts | 10 - ts/tsconfig.json | 113 -- 54 files changed, 4247 deletions(-) delete mode 100644 .cta.json delete mode 100644 Dockerfile delete mode 100644 Makefile delete mode 100644 assets/.DS_Store delete mode 100644 assets/css/styles.css delete mode 100644 assets/images/invoice-manager-thumbnail.png delete mode 100644 assets/images/portfolio-photo.webp delete mode 100644 assets/images/profile.webp delete mode 100644 assets/js/experiences.js delete mode 100644 assets/js/experiences.js.map delete mode 100644 assets/js/landing.js delete mode 100644 assets/js/landing.js.map delete mode 100644 assets/js/navigation.js delete mode 100644 assets/js/navigation.js.map delete mode 100644 assets/json/experiences.json delete mode 100644 assets/json/projects.json delete mode 100644 components/about_page.templ delete mode 100644 components/about_page_templ.go delete mode 100644 components/contact_page.templ delete mode 100644 components/contact_page_templ.go delete mode 100644 components/experiences_page.templ delete mode 100644 components/experiences_page_templ.go delete mode 100644 components/external_links.templ delete mode 100644 components/external_links_templ.go delete mode 100644 components/landing_page.templ delete mode 100644 components/landing_page_templ.go delete mode 100644 components/layout.templ delete mode 100644 components/layout_templ.go delete mode 100644 components/logo.templ delete mode 100644 components/logo_templ.go delete mode 100644 components/navbar.templ delete mode 100644 components/navbar_templ.go delete mode 100644 components/notfound.templ delete mode 100644 components/notfound_templ.go delete mode 100644 components/projects_page.templ delete mode 100644 components/projects_page_templ.go delete mode 100644 components/tech_stack.templ delete mode 100644 components/tech_stack_templ.go delete mode 100644 compose_production.yaml delete mode 100644 domain/experience.go delete mode 100644 domain/project.go delete mode 100644 go.mod delete mode 100644 go.sum delete mode 100644 main.go delete mode 100644 middlewares/combine.go delete mode 100644 middlewares/logger.go delete mode 100644 ts/package-lock.json delete mode 100644 ts/package.json delete mode 100644 ts/rollup.config.mjs delete mode 100644 ts/src/experiences.ts delete mode 100644 ts/src/landing.ts delete mode 100644 ts/src/navigation.ts delete mode 100644 ts/src/types.d.ts delete mode 100644 ts/tsconfig.json diff --git a/.cta.json b/.cta.json deleted file mode 100644 index ff408af..0000000 --- a/.cta.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "projectName": "portfolio", - "mode": "file-router", - "typescript": true, - "packageManager": "bun", - "includeExamples": false, - "tailwind": true, - "addOnOptions": {}, - "envVarValues": {}, - "git": false, - "routerOnly": false, - "version": 1, - "framework": "react", - "chosenAddOns": [ - "eslint", - "strapi" - ] -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6359441..0000000 --- a/Dockerfile +++ /dev/null @@ -1,16 +0,0 @@ -# Build. -FROM golang:1.24.0 AS build-stage -WORKDIR /app -COPY go.mod go.sum ./ -RUN go mod download -COPY . /app -RUN CGO_ENABLED=0 GOOS=linux go build -o ./entrypoint - -# Deploy. -FROM gcr.io/distroless/static-debian11 AS release-stage -WORKDIR / -COPY --from=build-stage /app/entrypoint /entrypoint -COPY --from=build-stage /app/assets /assets -EXPOSE 8080 -USER nonroot:nonroot -ENTRYPOINT ["/entrypoint"] diff --git a/Makefile b/Makefile deleted file mode 100644 index 57ccc24..0000000 --- a/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# run templ generation in watch mode to detect all .templ files and -# re-create _templ.txt files on change, then send reload event to browser. -# Default url: http://localhost:7331 -live/templ: - templ generate --notify-proxy --proxybind="localhost" --proxyport="8080" - -# run air to detect any go file changes to re-build and re-run the server. -live/server: - templ generate --watch --proxy="http://localhost:8080" --cmd="go run ." - -# run esbuild to generate the index.js bundle in watch mode. -live/rollup: - npm --prefix ts run build:watch - -# start all 5 watch processes in parallel. -live: - make -j5 live/rollup live/server diff --git a/assets/.DS_Store b/assets/.DS_Store deleted file mode 100644 index fb3bea609649a301d833aa579e0fe1e848d624f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKF=_)r43wNJ3~5}Z+%NbCi*a6%4}`>3FuCGzf0f^rr)5SG!R82dlO~KnJG)xV zE<45PWM;lQ9kym0Gh4%ncIL1&?$Z~xstD0}#@jd^85``Qwr&EsE2K|{>HT=gpKP?x z%iztUlpqD9fE17dQa}pap#W+&ZT*<2Q3^-_De$8JzYh&g?1gh;d^#{h3jiDt4#PZp z31DLY*bC=GL|~p&U{bwW3{N`Zt@3)|oS1a;xEbfv&0Zaf$L)x>NH_0^8l`{~xK`jH zmmAjqXZSDu|20V~DIf*@l>$EOU-mmZscP%uajdls{t9Q#7o3K9P%uO}21Yr?g5~%r ck}|Jxj{ROZCk7qypabi_@% diff --git a/assets/css/styles.css b/assets/css/styles.css deleted file mode 100644 index 213dfd4..0000000 --- a/assets/css/styles.css +++ /dev/null @@ -1,65 +0,0 @@ -@layer base { - :root { - --navbar-height: 6rem; - --content-height: calc(100vh - var(--navbar-height)); - } - - main { - margin-top: var(--navbar-height); - height: 100%; - padding-bottom: 6rem; - overflow-x: hidden; - } - - .navbar-drawer { - height: var(--content-height); - } - - [x-cloak] { - display: none !important; - } -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} - -@keyframes slideIn { - from { - opacity: 0; - transform: translateY(20px); - } - - to { - opacity: 1; - transform: translateY(0); - } -} - -.animate-fade-in { - opacity: 0; - animation: fadeIn 1s ease-in forwards; -} - -.animate-slide-in { - opacity: 0; - animation: slideIn 1s ease-out forwards; -} - -.delay-300 { - animation-delay: 300ms; -} - -.delay-600 { - animation-delay: 600ms; -} - -.delay-900 { - animation-delay: 900ms; -} diff --git a/assets/images/invoice-manager-thumbnail.png b/assets/images/invoice-manager-thumbnail.png deleted file mode 100644 index 219149ab1601a941c859ea57d5c11d7ac9d57aac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71000 zcmdqIc{r5cA3r>lrIEClk0PXv2$em%k`_CI#+D-M*mq-zQ2B%wI}OP;gAp@hpRuc~ z*^NEf4Z>hBJonw_`+J_hp6h!4e(vik%$)ly?{m)kykD>P>%7+2)#8NmLLm?c=Y#uq z4IvPgObFyCgq;=mgs1J`J@Dh0`~AmW5D3Q^@E;Q-HT^8`A(NM(mIkD_^ZWwv$5DHA z9d!ugYaGYE4GV;coBH6cy0Jgg@)$?DF)d?`p~{oP*X_D?TH=hF5YNf`pI@-EO5Z;9 zZ%35&tv4@}^nRW7K$c3y8ED_Nzr|PoDpg0e?#%;l-^dFo$?+^OsqCBaVH$nx>?ubz z-7C(*cr~lkCG>(1XUOtCyM0B~x(qB|$$sOGH)JHBQ~;UG7YWK-^y)K^e~Hyx)1m- z{8v5Uc6#_z_bPB5F9H{aLkByPOx zzn9d$Zq6GxlYR6coW=^4Ih$WTRQ+$%nPyeq3r}MOlpjJk|0@f5#l|H4zh5u>16bg{ zC(P`m+W#7XJXQaH3bXwGs_?vite~o^+Y~y29336)HbvKD@DXaXH`--`cS!jGnw)L; z+LT!y8D#E^ZK~VafyGjS-XeVgyGfeQ-{9SxQFM-eMH} z4jf${wjMr^EftqSlV9XB-c#qad+k!M4o(}jlXE=ZBhfRIgGuR>kWPZz`fzJXZU;VH zdxLY_dj8ozGM4@oHh#*&aJkt$v5^#AX}u3U10Wd3{pw)Zz_Il zMy@P4V(i>km@<3l@}yY{;Ukbw^B3}QukzD(B4-YRR@jEx?8M}wTS-}G?sp2 z4XG1kc7Ryv|7|*xn;p$mxB4|6!W$-6bLuGY(n;=Cg>a}f*a#K%57TL&x+tgvSe?2@ z`Xv$6?C23S0^rWn`m>lp3#whyXX4DH&{bH0qF^z|DtCMn>^=BtDxGwK2XIG{`5NFC zCz~RFFkKKZRy&f9sHp@Sn{0x`>+diFuXkF520S%4xCEB;R`OuEjM_U5*}n)(8;dm# ztXUuWvI~OASiPtQ3;=xe|6z||%G`0NXUcT?GkY5NB&?Cn1Tnq}4sh-72Wn>N!I?}z zN0d&0BMBGy>pdHOi5O2^d%OQ&aor?GDoX%~70u z?ew`gf@++gYGL73K z%&~hMy^^!bI=e+3=~y22TJAc+c4AqdX>)x>%uv;ch12+-i3ts1z&e@*qM7BcW6u-C z7606Gnjl^6#hL~$Zexpg!_VFNecdP@jt#NjT0uV4J`4cOn92ABy}vVS7m}-!_WU1l zgv*`H$7QZJA^O*WZi!M}ow`HS*;*O1cO^4idxv)5z14oT;28B)enH<%V=%?iKu>O% z6KfnGnM2^D8MyKYS&$DD$~>l@k073H&Ul*3 zLj`X>HFFYZOH_UuDyXz`H;0z1V}5#i<<^<27Ei&EUxqvB7sl*SCnjt|i?LWa8qH_R z9?pk#!{@Jhs`S2e6o{pS+!YUMjiqi`cRc(3?OkrXkIT~j=K-l+;;htLqK=S481WC? z#=;)hy&oU3Gj^u+k`u(x(v8u=ccy_~ZahjOwE>QDhrkJ3Bbu`7z`({opD)3|Ji^aISd^1G@S=tA zD@9X?T+y89;|e37edV(d6gv@pP7{fk>M$Ei%Zyt8EX+%|O?sjBxLf0_`^?&}<`^SY zY;+kGVMRg(T%2U!UOT2C#Le3(wTOaUmMgiwYz<=$1|LX zsQt7@TYARIr82VR@5`-$)r=PX3{$fXyjF___EA`gyvBRa>Vtnp%s8XUFWvhW4{Q1C zWY1CtMe_0T8onrO7=02}n0T)E4dt!a#$18%xeREC{?W6?>I8y3?+x|Fk>z!2t5mQ z+t-qQu+nVC%iXLIL)WW)sYH0&=MsgpS7WM&GHW(_WEBt670Ocp_fb>1*1(~?I=r zt;3{kury-BI6gz?#{Gf)hAiA{p1YYGPq;I`g+r0kTz(8&l}B??V;GZgOVCs#XVI>* z^Eu2H6Po;#RJ`g0QvX;cld%l^>R?~r5b<1Wh{^rsKxx2{4(zWd#iiB;eXv#-siN5h z*=T6>#_$yjbYV@39+<~!EZ0YL-QrRz`6dD2Ac$I(XQi(8=;9KGb8}uv|FNjH1qM1V zH^jt!Dc|zmM~~^2ypT?q8e6nhhu(`Sj!erE0SmT4)!V2v)lhY;9qRX`OGfH74IZ?h zfo66Y5{4L&r5Lsk?o%)pF_LhT;N!!6<$)PHA1^2pf?{AqtBo!$jhEeXN}PpSHEn|C}4nynP?u1v(>HaiE`JU*wOx_jGA|Cka1U{SS{s zm`Nm_Bf#=ej0iN^YYdku$4998CPQ{HKE_X)e0nvNO!3i9xpjpQyr@j2c<1xKCYtgn zw&Ob>h>hS=8o&uS{&80)Q$k{AY_&7C=8!nzT8fnS=CD4muZ~AJYkxuo{B}=KqDwt* zcp1|hwX}VMu%F2c#uFkLu~v_ZFwY{3BwoUk`3hh9@@$GV#qtX?Pg!J@A}lLT-ZnMk z*Hq4mfKd#>sak!-&!`j`q9|gd06G43`tD>gbx`wExy!IN--%3!#mkexl52$?W$7qh ztW0i%J;d@Nij=QvPyUJk8iPQy1-gnEO~9$v{styy*cdK;`>stfR^B9x@3aBi`R3(zh@$!T6hhE7woK$P?<1>u_C3`UA!?Z2R}6$5v!W3Kxm<->VcTwH2M{S{E`To>9c z;^|v#{C1+b>(@r(Q`FrDkBSG*x`se&EhXn}K5I#RTt-SU%L`OI%%?jB!z-7g9Qmc+ za>UE1n#zcmJ@0tPD1^FIF65?B$r2DQ*40~%J(rJUKDz+K0+C&~5YVb3dL9|V#toHP zckbLlK*Xk7-nz+rYM6)?2>fRCO;5O@b@BbQf&^lL9k zfR{(S&C5hEK1GnR7ZJ5-QaYCqY^Kdcj{itnx#St7y+!3R=^p@5R~<)#J=mJMht>6x z)0j-ySvJY4yf^dOLWNO9mesPQwfBO9Yf}`rb<5nRYOh*jEC%+&nY{c%s#va73^X78 zVDqQ$n~w!>aF_^HtZ;0VD!vM%Ve=-ailJp+_9bG8DJLv+b-PfQp^A zmIKB{)>N*|;2GRc&)rY1BLBdow z0qE0DbekAoBxy*vOi9#z^_YGg^DJK&h_WulQ0zNe*GH<|MwLu(2S`dyU#kw!$!pJ5 z%kzCYz7+9D{5%*Vldn-pRaLt+5}!`XApLjqJ=QG;QL|hSNcX8GgRE9LNv1kUV6Vd; zyckPY@M^CK*f8f*^j}l!Tqt*&u$cwc8W7>7Cz~4mmZ#BZ&wIYGdbNp{57iNpM|WGl zqB{1fmWrhgw+|(NW5#AaQCxCXCQdWvpJ5+!f|E~+hcp>ji;iHRNVyZ&30vJpH*I&8aAyIOF^&)la^?J*nY| z_$tL2*T$twgI8>#qGJC94^>Q#Or+eQe*Vf z4nbhA8#{bpf+V~Kri91CYU=ix$aE?DahD@K8VK2=$f1&-x@hqo&fe0i+9JB_{DbS3 z?u87aZ#5D4P?sx$6!53^z zR8>_qm6{~?V@>lSNB6c@^|XWF<+9s?Oz565%eLS{!5oJNo~bAA;@5RG1h3>7{uPd+Ebs}r=~c3TuR zupdJJIi!T}f6hZNDXY&e0C30cA^li-!{80t0DQ)c)ZY!g-#9I5W?8W|j#sIMT3Bj& zxT6?_Dr8Ph&Rp?dW+A!p#(Vc*y>wzr_j&`Y3EI@pdeP!FmedBVZES;g%|B)7=HyID z+gmXoS`6{~c~AV&o|N{|=DWCmUA9?H6I3lS`M*p)X7UKSGIwZgK86e6d3FHwiPY4O zO94FQS~S?VSj@A2W_2D1u`gOH>oalqD!q-@Ro~KPtGyTAn{1a8$~_Ab(aZcbO)F_t zRe>LHfb9rXdOT;_`&c#9U3Pv2LK~-7Sc-ykW)^?FFekbYg#zM5v$C1#8h0ZPKkJ*v znFdwTqp_7Vo1;@w5Xk(uUo~bIz_2uB)#NUS#@2i$jdm)0sj0FAHT}I;7vQ}193?RM zs3V>Hiji+~zlBr?S!ZC7T%1eejbg*2kGDWv}}*ROvZ1XK`Vz zS%47AQAF&zjOik#g&JQ`0-_zQGg|izF&nY7vx!Yb!<#E(*i4&9i91ft&d0k?Ess^> z#zME7Eyj0gT`54Ar2FrOL%9&K$gY#A;7-X=nJ*|UuVu0{rwG4n{I(YP2PJ9Eh=re8 zxm07Ux_H4lkSPB2zn&P0O{w(&QJZ^Tyz%-w#Ry&-A7_3E6QYhjA~pVLN2 zl!@A3N1b!b)s%nW!$30TX8(N9{2s-{s^2V`zwd7wHm}gxbAm`eQv}>C|!0 z{s=_9zdXu>?1UCq!tdWG^6O(1wT_$(n9@LYC6W3L7#YX|bHHw>;642UU_X0d3?$bz);0j(u*^Kz0) zxz@%x<=s)dT>+vx^iaij+`QcN5!}@|m9~VA8)ciCO3fqc^iQ~^M7mDDzrrP)%b!MB zbycQKg$)!DiLze>CBIjkxODG00k&LBdmW_h-Rrw>bAEzsz4&K9iO@L}5XF)-rBc^@ z3qP@0UIJpklB;_aRd)6xuE@N^$`D4GZ|&y+q262B71W>P&%v3&?;iN?5xN@j2Z-{u zXM!}pVh_Azan<5R(QG!debRF-w{W5t(B=?y)h*(~O<7z%$M>?>LYKHn*IpSV=b9Y-Y9)g4%UGgTTZZbPR)Gg>McjPL;a8q+ z!4rcG(&0h#D$7TnA>@DxyKdQ&`Z%M#`%Ae#hL50m-AL^TJ^Nwwho#}~op;(SN`KqG zKptdRwuUfvzYM5PR||{=YU5A1lKTgIxm;RbBl}4{amc>gm3AT*`X^c#+rs86j{HHi z#e|Cfyzm|rQL!>Z^^rMS(FgNYm$u_xBiW8HCFcMx<;}9biKknCx(HdMEwA_kUz1|g zEdoksdMijrM`tl$+J%BwfQ3X?GCni7N3~p49VY-=^+nO@k;glwD#`Cd$q2O1(x>uX z6Hy5b_DoT_(oXX=j44hu?h!nAIfza-)ZDW48*}94eK?r-<)l;NyGO?6#~+hWk(`tf zFB`4b7?kfuSGfis;8e5S)jhO|!xA|p&pY3dU~z^nxz_w~F0g@?8^abU9wNymB?TvM zn$glXnrf z7IT*gWx?Euy4>g**$aX?0t%jpVYV2d2J#3u)}EniZB`F-!Qsv|K!k*x!}^#w2omDb zi7wAPRV_au@`CrahBJG`vxBxN`jFa|*i{wzZt}#zmL;)tC>WACxv_}VOMiCd$VwS? zdMfvEX_GC=YD5m5B5A?xaHbKT~qsX zYlg#7IiFUZMZ91TTmb)C#C0`1;TtqPLj2a~#K)jz0{`OhGV$@|sK->L09$b88O@O` zthKUD9)~HJP0*Q|J;`=neRooQx{{Fo<0C?Nq;QN%9{72(%N+JilZ_^Bq z28?2AakIG?jVWsrzu<-g_^KEhbDXJFKtegkeIWR4QU|EY$gZ3d*4$wQJqn`-YC;(t zBK$0lP|J;Dnc4ZfTTS~Plp|n;EZ1Dds{PzVMNSy*6#juhgpaf!iM(*`&TB(`DA;+? zlg2}NNYCEo(aP5G^DJcmGx3lmY^uaC3o~FpRyC*n=#iHbA~HJ_mxyEh^Ch6-#|Y6S z+uU_G1gpca05SynW9i3-E!Tpcs&YOW>3m{-`X|Y#qL>Q(VSKZ&WcN?&hx&X`AHw*s zgnT}A;MqIpYMMNY<0lDYaoZF`BGI6&m*|L||9WgyOKXJx!2RyhXEIW&chO^@V)x{Q z^IMA%Y@EFl$wBAw6C5y$Ru^%7?$K&@#NHjjLhs)(D$l1CBft!U<`v?^H|_&W?cHk{ z8WU}CpE=f8%r*0iA}O9nM8>Sg_$#iXXAMET7+7H<|hR#>UQ*Ww`fDoxc z3#O4?8c7C8V~>s6eeJ%B7e}vZAmzM;GzdxTTaO2JZ zE=@7Hxah?%?KY08)>#}L6@bplp!4a@l`323fH3E4GfXL|H$bcOZF8{+Poz;r(t})q z1_N#tC%Jo;c=0z9o_=djVp62$h<(B0;^L0*YA1y(eSM@ttl;WLsIlc0uQlcXy8fiR z-H*9m(SHR4=cnpq=fk}vb1jccm<3qO%l;!e)Op!#W?7;z>2kcFTDvz7Ubk&{T1o@EDK*tk?80} zCJkuDX%gKP9@kdO%Df%WM4B~>%*{9W*V{Ome?F;r_GomuIeeg!Xbx+sZ@sfrOs+;H zEzC!RO`<-8V$HR$BFMj=C8Att_j~2Q)?1VDBDMX>*57b@|)frQ#U^&13L@ z-O9V08uzdnBzAHh=7(KHxhk??5Q9$?Pgqvy**F!LM>$lgBXB5*wY)!x63VB(h=~la zFh`7hi8-f>RvA;d8ricSp&pz|*GsvTGf9ueT`hX}>S=JTjvF)lW){7mO2h50kNSIe zJ$aCyjSXRHurPi+Jc{~emET3EN|yig-dLtY!}4vJ%W(Eq?git0I45A^)vrFMzD@cH=j~-N=uOi<<#2Ya3#%G&FCmhI>Y@+EHTyy=9YS1`5lO;`#LfhQaGX3fq2%$_9-j<1!Xw8S|Zrl#v7 z*w#}`#4qDavN4Own2c5+frccUhd^?3 z3$(chaZ+*aVzH=M!CW~6^vzfryjFc6?Z*<1e07O$$zt=WiCYz%X-YTQIAKbc`~Aq8 z;>fBvYU&>#xUTiKS|@F1xK{a!hh(I8Dua1xkWpHy)QVr4!*1U<$SUASA32j>B|3x} zAE~4{F74G>fO-2;WawImDGUDzHjd#IqQg?icOueY`eCk}gTKF7t|Pa}MBtLn)`82C z{pV5Nl6Cr+1itCnEK?khA4iwir_^km{`)lTif;bw$zYY<=i7Ewf zjUrT%A%G;31iwHnBKy?^>EG^`0eCdM_Z}fv-``S{Pu4{mWCs=xwk(eSB>ZNNrtDhU zc&a4y4_73fpZej)P;u<}5-t!5PpUY0{vB7R>?n4cvQa=LU0o2po6hH!{!Ui6^mbJu zm<#^mG5GqLubN?O(V=JLhvxj>;+M6>F3U>{Y^Dt8*=)4DHFtrPws;^fOVn<@ubDHr zjvSMWEHo|l$c~zmI&_)l_F_OYu8yemS2h7iazrDsV(@EnuOGKcTqMAGP3mY-nfOh2 zus;UeW!$eNO_=!j_!MC>to?27bRvI7vNtC5Qeq7W6J{h-Wzl65@ww5zCET| z0;}DgAP*7k*sbsP(8s^RzvlJ$BLhtxI zB9ev-N@sZPJbSj;{D=FN)&pYg&OPj2>svniH|jQp4b(NAtet)O1~o)Cs(xXrY|AbP zgO2z|!eU5Nd+;{*l19uTC;ulhCG@2jj^oq;CXeGam?|=V{z}vkh@*RmLuXY`4!`Dv z4b@A>*Q&%^uufT~xbZFf$hH*?>0-BZiIu64ff4{ur!NNNzR-DfblU7iet6^L{$~jU&)|BDI*hz%bDktWP8hVZf8IrE1lcc>hfAb> zZ0LySPQueDa+N;XH8LNElXQy5(MLVo#EY11B3A+O=pC$wG=~!_iN=K&ad=g5go&Ir zNsE1=N<4KbYMA4#%UEDBzg`v|lPLwypFgl>EWX~B@b_8?Y8!isD_qgNZv5w0@h6bI zf;b3HXoi6#&HO7^cYVD43jH2jt(CCI?)|O9BKwwAn?i2zQ4jb# zv1Dr?1%|z0k+8h@ZfxB5QtBa)UqBEPzxy3P-wYN#B6d4CI({|%d15=%7uHegJSf1& z%_eqQ+5*fw?Cdv=sCm-Xri;lCYN<$$LKopC1DPZjEI>7e zJ)HvN7cv_Rq4S`u!vBbWIL0i3=cCwju{VZBudx3JZjbr7b^ddbxA@PekU*X9qG*`B zvo+S9APS^8LVm6+$xEX07uO;=R*^nrOk%%8b}fFDTO+z)@%G?8Ojc~aUk54aX%G}^ zS?ya6P4huxGDotB!~x=-J`1tI9e%euMhFP{@jM`r1#t9HAdMxGgsYF-yUyc0sv(kT z%u>w!fF%pVE-|w%We`7V(wnPOCP$doUph$(8PG9aP z%n?bg9QdldftD`Fy1b{R?xUmgwn*2+?D{T!=Z`Lt$D71$i*4Oln-V831`L;Kxr8oY zai5+?FWJAw5P?0AAlB*rlKCv8KNck9DZvI+o?qfCPnTm;3p4_N1bGT==|gQc?5cIJ zk4-&LCC_DzIT&%Q1vuxfga|s%DL4<5BkPKw&X)9az(0m9W@pM5t918k3$C%@sHfz% z-ztoEF~#e)($AjEcT)6QxyjhuzL}GIr|W07RtFH&PubBSlvYCPw*jf!=zybngRkGX zQd5KhsxjHyswc1OT<)VJiQFL!b@Waov*>Adt3G-Z-}7Nv`<$xo4Z!P^z1V(vEGc=5 zQsEK9Sz38trd!rSz3F4Qw0YWY5teZJT zLw<*;24R=4lTw_N#Wg20YIz;8F;VGd`gDK%bv*rX5NE7GcBhUxo4E4?Dfo3au{mT! zdywjmypfugMx`m<5;sri<<0f!z9loNgQYtKP)ORn_Sw{*`!u&ceCjHAI@kfJe(@2! zi)Aum1QY<6j7&R(E`|@(2WK(xPW_0H0r47Z0x~r;cP2X8xmM<|768po%ilk!emI+l zX1aZPg3bXfx0>!eH*W}-ZUI$89~Wz~t;r@Jz-#pFVTkcY?`r)NnchKZqWV1t6raBSLzDIPBcU>@^%1@1CJtlX zwVdMS>V*{B^s`$pA6Kq_Z&KPDvU7e6926o*#l-6YL&a&irpdJc@uIELFp_h_bg!QF z+N3V%kP$;Ig=vfZ_F2kB>MOp>rz(7%*c%R0x<6GmaI*r%W9VFo@GA%TxyvDkUpZR{ zAyZS(JRins!l~{}0%44^`zN560)_^J@>Uj14+=yNjZ?7k-hlSO2;R*n=c-GSFnNXT z9)izY9TY!zaN?ZjTh9CB^#sR)KU)8u-L;~v7K1>iBlqi{mVcKr9gR;FijM!x?!{*N zOxgRPXZ`l5etE^;v($nB=G72RUQ8&OQl}7)oskG}Q)paf`2u%L*OPHCIrR3dwj%B| zMoy(pMDkcYiC+3VSk+ZDw@ahRo#MeNI6yO&XSVEFRuQr0ejQpobps(i z(_bbPYeFcpaHVRb5xW3t6v7Rr#CQVF3{^^5H-LjXNj8KZUaK({V`E9f)WChHMdjnR z(FJm48cvL$r?uJ_pXf#v@#fxu!^*4lrb-Sttx%GfMFnf9M|Q|R;-*VjA0rMf9ta!D z;PhSdxI0(TGoluzXK?|})!`eaJ5)>opb~MqGob-sd>@0lLN)VV$3uSA@$XTTU*Rj0 zA%oJc{GSIT13Z@RIF3NPZGSxRKEK)j29U@7pB$gQqp@b;8*})yXuEO0d&yu)xDH%~ z?OGUYP*g*xjCslhDf~tUJ_M{HUOox{mww!t3b^T@;#6>IRKk>S9s1U-mUeF>`|+M` zRy8Ieq89J389PNX8DNIU~*X?X>E7GTH;?$?!N-L(L6WMJ{OAb z=M2FDa|(Bj?20h{{mdFd-fIp1P#G9%Q6tcRyH4~zCoxdOggrebd;%9*d$Zs3B8IuD z$f9d;(wA|t-Ie$D%%~*A4fD#E=VE&_vpwN^ccAk`=!}?=Q6qjLTViNl1Z5iZ{>dbx z&06JY*u&`!jhCoH{xCTbt^t&mXQJl!FT{GiG~^-YLlHKmq8Wg2NRb+1>8>X(bQe}x z)s3zmLN}Pe7jHXVIaQq48O=O68F_Le%dR@{3_>!pwE1-LRg=}3Cv`{v!&BUj?it4M`KeQyg$Th_JK4_PvpA$!vDpNP`iaI-7T%b1Jx3B^fw0(0 zpK%-lxm}ugNvplL+FB;mADQHMyYFc?0xh825v`}#n?AA4$jueY`;;$G%!m+mjhMo& zkT-iCwM&NldG)yTw@r}s`sbI{C92q8rdjzCVR`z-!O?IXOOXyOrUg#9_EJXPhNEy6 z$5z3j8TF=Z(mJJcI2dT~W&KsCl9*BUHjT#dU^kY+;CXpPx-HEUKeMM|CJG|jA~ODO}_&{M-i zt%UC&=xFIy9^7&~pu1M5aRJ%l091z`z2*pHl7%V<=7|WNBWQqd$b|l}GnY%dCMe(- zW^sErprJFPdRcR=kM*L_&h_E&zNeNDTsOT5rleRokf+?(Uwjv-*8rbWuO#B)8Jau) z#(taolK|`=ITRD1l=GH`8Xd0j?1uca80SWE6>BXBkCM!RS|y4H^&JG!`i(dr-bv`9 ztU@D&^;~a2esJLqK*c3+T6s(Bh9BO( zbCT3qP!Mxc0~GVIzquq5D>cLlsJMXmo(}`chavKSC{;}fC3pnjK*7Jm{GjM*_6O3| zqJRcT5#6f(S5hhi@B`qNJ!_9ybikKMtf1E8!Yd#O(hmR|zXJ%vfC3eNsE;6PF`!+H zg}_(X-(cCK0o_0#pnZM#pU`&F9gu4L$zqcZ!}L{3MPC4m{V|+xD3@e1mYNV;dv^c< zl(%605Rd5^Ky=68~HDAJ2Fa!HFe40391V~sS}+21TS?a(~Zc?$wDmSVXK$RxskZ3J5Y z;&5<5b_?jOhV-*$7{7fkmtUNeqGW6KAm})DP6}E+cVQ1W7++ty>`^ZZspA4<1d!X@ zG#)GZEpd+ZEDomey#}e54g8Q$FnI?Ng@JML4uYTZ3s``noJb69LFr#Ndz7a=aO<;z{Y0oXK~cahB?hi zMT4ZWPGw{_H2u(Sy6k9IKu^dnFh^;oTdPvm0wDrI;CiE6DYohWl_z9Sm6PU))$j+* z{;~_18BBCpdJe97Je&GWKp71zXMZDIw;Pr+l9YS!Zg8P&E_l2FJNn~+MM6K_4Dax6 zm=vtFxDAMczss*+;MfiTIB6RheHbQ(lF!MzXP#5=eCgNf;Z>p3%i;^4^3F&}n zRJzh()MDevNiHA~1=m*vR0gOftfYc;(F(H>cg-l*w$L{AbII+qKQIK%XV0<=u-Gzq zOT8})>JDega8rzZvcyH$NR~x9wRkkbzI`7M8tIJ^vo#^CFZN>!Nta|$<2Cf$tgQOt zAfnHAxsPoBd6TJWXJEMlQ)8ZE@v4MGQaN?m+RfbKx;05@+8^r0AK3)zZFVhR6f;}% zjADAsf-}lkYSk5e)7j%&-|pF}7u~Xm;j~}qi8f?>B78c+dK?ey(JiJKig9V}-3u;e z`WU;qpHl|TK5)Z8Kj(xMcN37-Zeb;1Y&-8EWw_@TWuLXsilXB9k^~l6@62d897N`0 zv3hB;sIT>F`=x|EeHot;(fzDwfm@LX!lK{v)$yK}151OdrlocYajFMjhAX}NTBZPb zyOdf`clZ&te$2;30I&gTyvTS?pnTNx(Kzf!sa;!4?n#VNr)eNZER*cARgM31> zij#I~-$@1Pw|AEe6Gof}S&rdCn~VL}o)#{)nR*}n>JwVZg^f185*;1l&jDBnWFU)x zM7G75a=SKx2QFP^QXapq2!abRlL2-q z%uvK`kF3!!hZ;p~bQGZBJ{I5hBb3wop|*gG81EFE6(C_*^##u5z|!p0I5nH)%Lk^F zP3~dGTK4H2JuMx0E3et~inYwdoG?;%%%y>Wfy)}pBg^ER%*=A*w)aKm*0Ml?;EKgP z%}b!)1F;>j+#hP~Z{-B4lGhrd`c|P~8?X}rK3R2u>{D2~qFsrxNx}cHh2O^t5(d6?sz=Vvtk{+^T<`K`+BTYOnNfPZpk=MYx^p1pa!XxFUK8_j3BVL@^1GrmarM5kAE-Kj$>PvJGAlSjz;(20mWWpAfMQB#N%Mr1l1I34m_W zhFZu$`kMKtUU?+oN*K>q0sJY*3338*S>QQp@a6rN$w5n$KKHtAnymQhLciXoWq;=X>#d6(KOHF^JcYFb%kfx2vB1-(f>ZDn0YlLrmUZRk>O}SEC0o@74o~zyeFn%& zd=ZiDz^<{0))IeoC}FmCNzpB`&-JlHjc+5tf^*Q{6=h&Xvi;sg_2h=&%(rVSL*g}_ z6~$yPjP25v28C}jx_Vj$m3Xf2e6`FCpPRe|f55*YT=WOlcSfaA7<8{$a*6-va!WrN zpPk{?o*v+ZXfCBZYtIPEyY>>3;v;mIrQRv!R84%Q^Gp_zcjZ?Ya7O^6@wo4h{zDA+ zutTrE6S%n}6T!-P1JK$0G?9xDO_wRspgv*osh~wkd^6LAeh}6>_?PiG7`zlv&KV11 zUdn|G!g<9e;gCXz>|=%fbo%ZfIT30L#_u;7N{S)Cn+>CY=111ll1A?f{{C?3s(HY& zXbg~|NJAviH$rX2l6}aDd6+p4N$ujcep5Z2$llKobDOW&FcX>0`Uvsa7C!qg1396G zA+k?=@#2Hlp*l{y9fu&1@y7ivc8bD-P#v!D@Ipk&OdbLJq+5O%xUYaf=SlnK!e9=e zC|TO^{o{%?t6mf6M=6@UiDoHBrlvZf1+IzT)l`JWH!^MD9gUD-;?PvMdXdL_^6Gt# z?*72+ZVs;5&x;e8si~>P{iWfyEUnN$*e?ttQbJS&n%&4qg!L`@@jPJz$Tvlpgkt@K zjA~@{(tvVOm0p{%nm7~(B=~HqB^sl-2sVE1V}4Z12Pc{kz~ekD)I;MhjIw;MN19$C zhR*Vre_-eV2s}BZ-shCOl>5Q zq&uuGbi=RkjD#`$%qm%;FN?UGVEYEeM2M?cun;O19kgn*tNm6}syM-GBK{>a_k%=g z;Q3hD^TMM4cIk3*MGyX>c)gU7lS{LZ4rTedlIuRiG761=7Zv&#iYS5Pln*}phF7HxP{JZ%Wz`)i zURsnjPCnVI8jEL`2n~+3)I@hX@U|1e(m}tMZNyLHUtgwjjd|Oyh4%6bw4{OH=Hoc6 zx3{~Zeqc_YAolC~l!RAIYO>M1baarmXj_)%;vTd2JpB7MqTB;Dq4YMb-Y8H`Mcg%8 zA%_}JG}-!}-f4SyP^0)&BEw~3c3>%^@V$wqx4We#^`5k@JEIYwvFMZGa>|p))MU@D z0|fSx4rFiuz~sxk{B+CiA)=bYfG_rmSnLHtW5p^dvS0#sq8d6A6%}RtY6)Rm13Gji z*x5LMG>;WL9;X?c%CCb>P-d+_M^onz@j?pOSkK%ZP23X~bVJbh9 z=)jp@TK|=!!cxW?)Scp?VLU*h!->KsI4V$i0+{(Yc^1jfen7&}K}JbbEtXfW@Afpn zazBKNM<1cAvFu&dt{57ZCNckV*P8{%zGu*4Ux zdYWG&VZUU}J1jPWq~QQci5uo#0DL$^jkab<=gE8Ge0)%&@n_@_V0pJkwM`LuKEHX+ z83&D%p#qxb)V-BzIqK60gWfK{124SdX5}&DFZ5`fD$Cw0Qdop9cN|p739y#(#WPvLL4A+T82JXsmuG_i3^FzHO#xN4N!6r!|a; zPO~uaFG|bx3dV4xsPx|ESMskjuFfAg*IWW-jVA!U+9}KvxTpPp0|U6>&iV4mNDd%< zl;pMV9_cN_EsOniZbs5b)wxa>1Ulg3eWM(2?3Wy|Kpt@`Zo{Oc&EIwj9DyC6g}jQZ91jV zDq{_qzmF1N`yalBsrT1ZWx0d+<70%p=q7j#6%?{ttzA6{bWuc5Tr2i0z+eN&GYr!N zB>sU9n{?**|H|tBhHPAb01OD(CP8G}>(M>;wFCF{5cY~#1e3wPx<1cR*Q z-1t>&Av->c-^bdUkFch-c&Xa#(vCg9?>$Hmd z3U+OcL5q{Gh^Kd$`X)~tZt^^DXeXDG(VnvlxhJDf2uQotl#YQN?Y{>or(Rypk>B3w z?8UO9U)&-{{bBkUA*tfVtLjTCxCanLWkUGBw?*@tV#4x!h8G61gD9)(dDe#m%YlF5 zW`BPoJa3vg(|*l9ojuo2c;zsz$(?ga&c%V^4aFZ$7xd4ry?CzJ#TBynVRlWC?aVeq z_9ps~(X`|E6b$PisxFNdU1zYg2VApg<^cfK^0ZOdNWr1lTdkW~W2<6ud-E z2}mBcDz<+)Jka6O5Cd*wkPjOEWvm-3E)Sy*8q(9*OJ=Bp6F1_z7$nX@JwBPb!r&)g zYpsPgTeJk^^0)%Y3qiWKNVlFS68`e59qPxn+IBE}ZtvFlSfIrHok(j#|`4rL|jm(iTdI1UEIicPv^HbNdi*wF1!!(o)u!u z+A!C!KP6e+VWdbr2YIDI`#&538eNkR^C4&xxU6W6*KnG1pR^y8LnQQATe!#3cY=6s zYwJ!ZpR(n`_xCuh-gMZkWQBD9DM(FPt8~{}9k+p8fcAGmCbt{qL7(_JwPDVdwsDS# zpx;67eyP=?%Jpg7(S7vtTNh(VvOW3kx9g#SPCiZu!hk%odylGQn}qD}csg;-+iIgu z&&9{5q=6SwYA_O>Fmmv5XB#Q~^peFV>l1f`k1O&NtL)&!3#s9Jt^A*1qfl#Rb zda=MB9lWHiBLlx^AwA7owvS#ZnOaYKt^Zg#-SR9oii-LZN8AnQ&iCrb@_P@rxWp?# zX!Na>E1XNQPj(%v&YRuKicxXgdlXlR!Z3xQ^5HK6XD_N^?)k#L^VA+*H-d_5jmtpv zi~eh{eY@H0KcS+yd|%^Z>aB3&jKaOX)yG9reZJYXjp-lGypRSc&fj;0FrsLKiag&M zmtF5wM->$19B4d!mcNwMg;?;A3p`@>Hi5l3;oi-t0#!VfvH#lZQiLOfJt%PQ1i}^H z2vE-eLlt%+ACQXdZY%Yp7SiKVAF-a0RphF%dtS6Fw};EN`Jj5E{a}AGrYp@Zbo@Q< z7Ra}`rK^sodwRj!NF%+0jK7F2d1%?e-Tln)Dn`i z#Rpk0o4ZgOIdZ26fJ*#&3NTW;z@g*Dz*OVxVeqC+*|MH_`w=v~MnUG3NKE+L;aqy$ zus))^B`yP9;g-*zJGmQr;1iK@I4U*kd`P-@>INAZF?*w9`q$lxqCZS^f5yW9W;!-) zoK*>9XQdaFKw>EKS@+}a@Hw<>^@$q0MC6#uxC-hUD&KE?L_dV@*?0}daj}03nw#y$u%Ny{`P8$hYg1U^t zI~*0zEvXqM%YFk?T%-b#y$p4GEH~)w7|KooLSt3+OWvf&~mXe*ZRZ4b-VvvyR`@Tk~ zgi0#=mVFuf&V)+VAs>vV=U)&>HYcM&N;X92b}ANZW&{)Yp&(>dcK~|$K(Et zvc$GLDUcYK^5qpp_V;AfVUxIjm(M_>r}j<`Sl%pJ7*?K#(GdLDuYx-=Wc=};Q0Obl zYqDQ{D4FDO$A5|GO(3zzF5`@=_1#H!&cd}Pjay98#wuf3i@2lhRsK^j^J&6k$il-L zq!eEnt7KRat0NcSwAfI|>3@66g?)$XarG~DpRAvUzHL8>Gj*ckK8^-B_Pfme2I3za z=ZxI*nuMPA!~JM3A+aM|Jqh)n?O_`SEwGHetqf~dO@KE0dCQ);TK2*nef_#_0;8>qoc1pou9REagaB+KHy*v zcb0UA$kMI#l2mE$H+1vyni+`zR`jvIe%a90O!!`@9!*EBimc|Vz>SSGRxN5wc8l|O zxTFW4G00T>IvlO`iCFL&8vHma&OFbMms$GHjAa=YSAMPEH ziE|v?X*oa&^t`~1evy%B(!q#ei5`NVL6KuO<=^bfNa}=B9Z#nM0dg$!U z(Y13}0p|&hVlm*aqTP;i6wG-bFC`%!VC+ zvDlV{Y*?LDjW{2BpqkLILz;-qR1%;H;r}_qEpy)v3a5x0Yc6V|hZemqb0D*RYIwzv z75Qv>yD#!fCzNI99hJLEJ`chzCZ2JTGNT*D;hPt~VXrW+r0pbI2wrroSigt6=C_w% z3ITnl9RaFf5F^`FeMFLM(c1N0|K2F(%TO_L8gVOXg`hvz9(65v;mGTu(v?sC+$>_4 z3p-YXWa@EyglNHM_5*U+WaXV@hx^y&2#J<@Lz-;zACvgeHPif=!$16dJ1vQzez6wx z&y7gqY`4d^g`8p@;hXU#5r(a>87s-=Qm*sQ z1N2@mBlmhqc8m*&FX_&1%UwJ3fXAQ57d(oD-T!fjPKy}n3hT#gCSvk$AMu~L`>059 zuXR}nhcFdrKdc)Xhh6%O3-bYUG_-w}4&nCI`BP@yNd{YkqpP3lM-HLVfEE9tC)l(hH$#mGE`4i7;*3d$yar~ZuwC$x{5CztFqas%O8 zf9EKd!C(n`JK4jok%LwhRHQ7%m zZtZi$RUU1G5_M9Yh^%V&>%h>udTCn!}RK3ah3aI`z@sYI&xWW7`5i zV`xxnKQ^of`Lb%~R%+2U4ToE79TDQ=PghCkqfL%pzqLy)J?}QXto+LDXj6C&2;xj6 zr$8v!{-%rLC~XNC_B9>S=r9apya1cc2*BucZgG)b1@F!+u8t$yjMSyU*{HSD5UCwlF!qVth9QC;oV$_3I zP26yiMykS*0XfSrKF-gKao2)oRsD~8EyR2y&BhfbNaG%WS5ZU!$toTnu;1bk%XPTc zGB*`=Bx+XfqN%%^03t||?ufh9v!g_@*K0sMo|68S`_hemuQ2k$WVOSzYQn6Tr}42UZs0MPY4TqWOs{1c7C(Pp1R=O9W|G#L1?{GAW5h7sw) zJD)@}G)`n33AjyIS<)9ZmWAGU)ul^WApe+bJq#||^^RWms*N|o$l<}McILCS#DM*` ztzxeu{|tDA0Rja}!3t?n|ESCNkPra;b6kgVY>JjTFLv{-H;mr6)n%{ey?J_s1ouo} zB!48~mG)NPIZEUa0mX9x#>)eF>k+v>__cO8?|kkafaDt-Q{0-lQrfsS;686l9fqU zf}`JusG)JqhXPN)22RL>KFRuQUH?d)?0S)pu5UwE`4JY}_V* zOxkXDAGj)FIi!utSp{`96I%;A4Lbtr^lu&hs#u0HE5AdhS%F>+0Eu$-%F!ovedt0k zY1`+CdUD|g&s2|wjw-~B?r5gw&$;n-=MiH75~aPu2X>=9$eua*#MMcWvQOXS zz~c!nH4w?F+z0RdNsT>he+C6T=89k(-0ggNToPxKH~SobXYg^7qs$38@x!!ccl=(2 zNqOVa_TBlV{D&t>gYPHXP*~8rh)cSzCH7(LVm%DAJ42i1T)Hj{SbuH86`QquUG-b7 ztzg}hJDjP!-KE?=9o?{{R%?{IG+s2VU!eh2#7>7mj^1!k4WDe(Aq2c&xT-j&*kp;g zwCZP3Td!$aWiZ^SBp`b?rcuz*|JoIa@vk&?ZX}_jefr*=gjCAT+Jcp89xv0zH%vU4 zV@HQOXgMbmKdDr49_7DvkRSz-1+WK z327?UG!&eQ!x6mxWH2;{CnxW*JKU6h3$1AFBAiUYcxn|)^;b4AXyAyXF>xz?yjJ*W zH$Oi5a%ud;!kYj&(V4j4@d=`PG9(u;_Wzb#9eX1zEwNgmnF8dd8l5rv#vf?oMTo0M z2Zmy=8f-1IQhaWkUNe5|VC&AblC!pyR@FKghZE@N}jIQ+LLXxDS&0 zSf2=p-(_XopS(A71*_2CL>nF4T-xa~!wuqZ4?)_v#Ljr}kC-s#cP^4_?IC?&?->%WYk54K`^rg8o$Gf#7r5_IZ<(n-Hxf&2G$80MTZ7+PU%eeoz;@!z*1(85831;G_0KdD|qhlk_#o5iR{Gx3iO|XZ&P;D=45Fkk6Zf! zyj26e6Uf8fM4gt908|Q(LE({DsPYYyvi5xftQ`=#r1RZ{i03P#(rTC6=@@ii^^Q|b zK^0{37AePy>We^K0)z1szOVXZBCAii1|Sa*M(xe1=yYD+B#HHs{27OdhOtPd{LC&< zG(b*8o(fLqz0@Vz@GBNTB7U0=&mntlNM**u$}p8EXox+FIF3uF_1c=gfO7qyaK-7| zPkP^%vekb5hmguD@O8fvnft9&Ya|>%SmrqVd2qGOp)CqPzx=2`$DP*fHL2GWXJfs!X@spZ6nZ4y-K_D`1H zk#^^#P3m7!y6h_aLoezDtRIm70$B^u&^-%#fGoIuXF{85gw_~aXk@1J*yx8){LgUK ztb+zXU9mDP$V3ymHXGWBC#no81}-Pl9Z^!)g$zu=`&;Q)lW6`RezGS#|NA>?(AvsF zXUp|{g#zI>HWz^w@!6TfN`0#zKm`<yI(`omHe+{(M=9RP<5R8fL5*~7=GMVjy# znbc1|g`jG_0xR8Uk*U(~s@BV5zLelpkcE!rPZ1sO)j*YBc6N-jZP#!(x^>054rtJW z@dZ}80?YQM);(vIjAWnPofEF9uKsz`a65YlfSq(`A$re1fzQCFKQmEsrhs7}!T?F( zA921--yjOYmLMD$*xKZgb`mNGShU7ZCr#mf`ify1ZOUT4==ivgsjK`bTZ{zSynLM| z8pR>~N67kXj<(lm)#frSHO{n9(R=0>{c&Y%`CV=iLoVR&fm8qdNFW4I*K*9;&r;$+ z#a^`D2g{c7X;fU*mxbb31O$>bU~2*+SNqn!l5BjU?Xpx*vukRj#AhL*p1ozdHSP_Q z(4$%n*5;1MMW@TEuf_03* zq5~%SyrpQriXvl1As2pgFi_P$!*=#~T1%!8t)P!t!O+Tr{i)HOy;(uyXVS8_S=KvB*i+!udC2XEHK z61tHf+oQ;RK}F8gdu!1mKtDVpf~|7Uisd#6Nqoh@S$^}N7HFiG>R7aEEvnas>9Nj0 zLQuVa&y)xmY}&P8K)g4rljI+pa*xEYOj}mZ&?d&R|jEGiTb%@6u0$nu3X6zF+4LOBOLX+QVwUTzY@mk|#6S zvW2m7T=Ofy=M2r|=E0L|gq~Q9ne#^(S*-7_o9WyXX(xjg#)ao_$Zb*0FbJSt;T{c$s%u0JUcVwsJK$lI6n&U36( z=BMbPYhltau!UnejzcF83yC*IjVf2F`}_7*Fp2hd_2+(*aI6ICY-V{9b0%F%33sHy!%Xb31%@4ymvsmY$L^bV?VNm~+lqY@; zWmO}6{j$*@b+28Wjayv*l}wi*MoghgGHu z6phNKB(zL@-K{+(>dt}0UVe4;(BCv7|7&;gkY>S2z4Q6j76s9YQ;^+0FP$UgckWYo zaoss-KTn^aJATe^8{6G{dD#aA(q-e;wW*qkbnIzJFkK(t+jTCiborTzF`=PUBcGdM z4=} zlu>+DNNTrPmp9+*2tf5R>5rX8Tg9URM`>l@47oo;KgaBQc|0?c8fxe)z)C;4R`7Oy zvId|DUnETKg;`1W zot>9{ufJz%@h>1uW%=7ba@zz^fIFw4x!!A;=N*qno+~LhR~h{pt#;}4$L@jRI4{To z-o@I1%$d7S(?NRwj?}~MO#mFeHwjUh2pT}6 zk}K+68Nr$dc=Wfl!rQ}a=SKk))w;@X4yd0-!q4)ZIydWQ|Ah8K|Egr&xK5_;+I;%1rM$+SMd zsmUk00vz_3)WF?go2-#!mZgeofqFCz&a-CQiZ6KtUsu&59B%?<<_I4QyXrCSl~qlg zi|^&jO5c;Q;V93y4Px!7UCb3KyU59MNjZYYI?)N3_A+umHzX_>bxCbjMb ziN^R5??Z}Zv3#T2Oe6e|9&IpP4#Pmz)Y?$b!BD8O0RIr%-jbMr(1>F>QFDZ`eCPK- z{Kd5hDE`gfgUC)`Q%}HAH+0Fa)UF!)w1<%!jOiZazkP8*_-UY>#hE204(5D`0Z%Ok z-~-!8efk)m>!!I?Y8d7;1HW+Lon@Rcc(+@xH{*F>;h8=C@c(-$U2r_)hE}z21@|!? z7?i-k79^qkfbW}}b5Z9#C8gjSRFtjD1=?NAq3Kn(w@Rtfc4dD3fmm+3a!?pc6ONZj z)ounxp#YmBf$fk3!1IMx$_j4KZv#^#(459Ol){DN-lGx#ayJC{!O&lezd8;h*+DsP zX#y?hW~yjl4Ez1lk_tpa&@sUH46dC+_x1PpxKqf7$wMfxZt7z%7Q_?wCHxO)3_+;C zUaGw1Z5k2+z+&-#fn#kIUrY{AUZ6t)!At)G4;NLDp9R>tV{$XJ7tM13#S0jAutQf- z*d*D%#l$DY8yMNLe5EjkShJRSX?o@~8*Jem0L#a9CFaCLC_$zCpXs!aXgy4^-*whS zCq>q}W{rK3#=0iST(bfEf47W<#LzHbm(Gmir1gx8H|*$1ZvlmAat=x7A7y3p&GBYb zKXK9lK$IN#O2Mt3emD!ryj4f35{KJU>{QlwKRHXr%r)0*h-Y+XDQg5*u<7c@nVpW( z8R_%L6WtOOy>6eeC!Kva!!sg#Rj)Zr!cMm}V1zdK(HR;pDc7%)7hX`y1~72JZU4z% zQ#B^q7CK|q^(0blYZ;T>?>|)MliO?X2TA(=8E)K;4_d*L`IB$ePHZOgCi|7IR<%({ zL)cG2#!;SXe8?P5EIqD*8Iel9+ zTLwDUYhwYtZ9w^6>d>Hde!28bF#Lsz0^%hThOe`P@7@hAuAWx>y;ZsPOLDZqJd76% zN;L0tRjA3}DX2nff$rkV9oN62Il|tyf)_Pw%%Y6LJ$*N_{4#KwImkPcw(zUGft<-g zjB;2YcQCZ*K4hFfzk5zW#&;DfIH4j8%N-bT;1bSCTEyiwEG}<$NmJJg$aNs@xGj$k zm9fiOGt{-~2b5^N&#=}HxhksxANtg0lBjJ7ikh)=5p%)YPEv|dMGqP{xwL4EOmyNs zeIvg@)r^80o&ysbtnfQ^e_1SZL-nt@wx5xOhj}tsOmXsrL~yN+Onmxi9KE?rDXR_? z7sEIvgIcq`3f!cfdPMFXLMayWVX#Wb2G3wc1x*6Qa%q=2p1iID63nTr`{y=Z# zOo0bV1S5xTJOtC#3qo;Jgev_=JxP=>Xm<46z`#H?8NMo#yw_LNS5^ajz*}?GII%&Z zbh~}MxLW!Vvf4=SW@4_G3AVOLT1?zFJ zP3sl1%IlAuLhvQiL^8$#WoMt`!P2nHiEATH`!~-#Fd4QUw5#l_II?a4PiGq?IC*uK ze4%{H>2u1O$jJJPfCGHL*i$|Jh?MN_k}}AtQu4W{pT4dp zYopN{Z44k3dN3mryx^K}g698e8V1?ajwD%>&l7*i-DWPaxRo*B(eih6%rg~g*j4WB zE1N(%Hu9X>?=>s8!LI1-;MZ&C(=;xAN=o9+U0IkwJ1jP2CG8bR;u09+MY<%$4iCW; z8wbj)7f3Qv3*VwQl6HXcc8EB?evfpppdoY*9&i`Km3S#!JzEQ&#wjjaxj9PHYgXk& z;NtfAkhVK&mTs018BF9vjeFrz7J7nb43LK#U&NOPlar0XnT6{8S=^o+H{N$W+S`(k z94ER|Vv1*%3}Lgc71eZbS&1qu@f1$#Nf?)R#Gh7^wcwYkEwZvWu%^ad^50uiYk^my zw@Tr@?L7NOoeuu(czxAPiTP%0SwZjddC`Ya?OAdMIYB1Dr!iiN)n${K7|X2}UH37T z`cv$6mr`@nOV#r9I2I4`_1MeHMXh?t10!F;T_C%e@!D+o)x>YMBNf~Qv<9hV>I?{l zne4WQEE+W$JbR7u@;m&KL_)Gj36EqPE6uBmyk;w-Z*>?0QW51xHH>tlejk@5zrl1dTvO{e;D{GgH+&YoDP{)W?7Ti2q= zZRwDW^v=J-(EleR75h;&D#jSS`7+8lKzBK(W$vBGsb`t!0FIeag31xpszdhIf^494 z(!$Q9%fl9Qb69kX0*72Wr+!%?e67!>ZUi;F%9EVnE3)xj(a>TubVx6sv!x~dxnwTq5EV_%|jCO8#o>_JX zN%U3)`z0u0E{8n#M&51KWywyF$D{(1Tq!}`YN45Y*+UjCm068@!>KQ89LXuPlgha7 z)FK9;aBZGQ6=kxlB(6rr9JeK%q8zhi>7;72L?6M0$JwMYv(V{3HXp|^3luMuxe}@w zX*XZy_}HD5H5v5*$S=afmt~yk08fFnno0BArMeDWSp+5cKcRo1uEbT1t44U(!BSKE zQ;Uy57ZPv!17NszFR!_K@BG!Di1vANWtRRpYM!r$3nz3MOQp#Wrwbe}<%aRmW}!V~ z1DM(Qv-=1NJ2zZ={9503^e)e&1ccE)TJezOr2V!f@hU9GWV6H~>innAoJ{(Dg}677 zW@{QOv5kxmTOtqcE_!C-REsDXRFql-{2t7}ZQcEUx^ zFaRm?FWoJ#%hP$}T*_3}V=l+yj&3ynQ!O znNG~3jy=(T=-@&~X|mlcO@YDB*9Y4_V=o45!WG2*)-oAS2GxhM7%yg;C9TEjNO?ER z&lylIIGyx=5v{gH{F^(Jhd^Gw^?z)10Kn46q}f=i{@C?THs9AtAM?c5C(zdXg;?%3 zjUvBb^?kS7i@7JXki)3G;gTdedoH|*Y;w@f!VhDv&H3tce}iHj+vyD)KM9pzQCyh! zx*Pb!c=Ki4u+@CAR#A?_&^#LlZTi-@e2d&pC!1g3GGEFWq2+-3fq7yY<1L@f^Y5)M z>lVax*sCVa}y0@P9#%%Yoy>_JejkrcM)-1Qq_!l z$$2GuJRkR9jli!jXLpdl_9QBiQ=Fa)_@{!Wds^#9DkJd`D=WRL-jO*f-G1dmTYbkWtH{=%e9^LC*^8|mj31LS$*_6rWtOo=Q$fGxMIh`2KHaF7iIFbMRJp@l zi9Tl?BL82osr|^e;dJD7xZD@%NlHVZjdH^bWDBF>HffPhE@t8$^|}1=YYxWg$c)-N ztT@0lU{rC}R(&QGAoNDD?oIrt872v9Cc7iySrnVX_JT+DsMZ4|%FD@NLi#tW4Yi9a zmia=Db|ZFjIMngfi(1u}@`a{rQ7u#tzAPWeSD4CtnU2AizdA^c?>Zy3;iZV{N<6Co z0;X=xz0q}wIy(U-2w%*=Q@rk8EaEwsR%CJrqj1GP1)5V-_Kfk!dj zZ-A3^b;^tqX8dVG?Gp6M#b5t?!^Z|i@B%FRaRwyNd<~hL>BeCYH-ncFA=j&a4&uiM zoR0hsy$hC-rUj$;S9()SZs-X+mf4K{e|7~TXO*Xhp#i22oS^@F&MBa<#SC|WdKQ6P zTgsy5%j3^v2B|F2J?Q`LrhYI@`w)7y)7K;n@pe@q$B7~ z!|O{1{`_B`oY#bZNf)Ukun2DOI|=hY2Cx6ucZU)z&ilJO&Ol^qXyc`Ws+qnZ`Jq|v z>2eah@_lL_EX$d|?}h%oaOq|jyc^_j{)y2&r@ZAsW11oM|FyPK2MCEle?y((x=X#N0 zWpu~kfx~fyp??hBwSXN>F_%n%wEshC^l_ zh4<+FS+$Wb%VQo<=b=N5xwlG0#8g^h*ycc-_l6LtqXy2zGduLuRgA3q?RxLTxW`f4 z&_m1HIFsi;u#RY{(`Gkud9x!e2zwu#ceh)i*b<|@tu_zPa7@(gX4{s>AInV~N9Re- zep;FP8?8}dLNA1nnC63(cj%}uSOr@`XM>jGQNOcNi+(vf-|V_5EA+4|M5N?$j-qQg zJ!LrVj_isVwYWUIvV&oe9SJH*w@lZQ*e_&2%l@8dfO$v8R8(Evec z8+_-eY&5;N%!nBmI}dh7*A8_g_-NhFHv)+CQkGuHWrTZ^Iqp2l4EFwHJ7X^OK$&B{ zv{O2HizYG|Q>2QA! z*Y;@Z*7X)EJUrYRKI@&%A?n|Epw$c=H%3$db2QpMMNIY@8TA~R`|t3UFh|aR2OeE^ zJq>-SMiRkD-EeJh!h1iPlpeaiXVTCz0D75(9sPmn#{92^1auRELGSA)=@<=>)Bk>g z$=?GBt^fZ2Bj~?gX<(g62X4N9oBYlHG78|w;{UBEfg|PrpKs;>^zs&+qZ-4t!^xuT ziPD1vyFFX{pU+$LQB39PQ(mA^Vqaa_=Xg7SZ<4b{|1D)KEqK)DEF!=^;Upp;gspQK zOI~iU9Z9s}jGc?Nk|gFIt;-zxZ}{DG?iBBx(C+ga`V5GO8;N3AvqYPkY;YfOUF$v2 znlT^#HCeQV`EL)mW$j}JZjDUb>#K8FZg&2RnMtxEl^iUGw9sL=dwp*U@W`n3NzD>= zqHXGI1H^|0M6DA`096(G;1RR;7*{RmPF8^jti}$A_qsnHW*nMh6Gf>;8D_e5Y5yK3KtHKSyKsxG*!TJQFQfu)ZP(0{1`* zM9G*-$;-dXXB-LumOxOuo?Qjm+3WT^v0(Hw1w_i_5mjSx zAjqd_&~sh*^V4;)uXWdXzI*D2jWQjI1IE|%X2u5dW4*i-J7aSm8b_R$25$kmDRl=h z=YmOPWv;B(n@91TAQepWaNKX_!Sr^a*Gz;T6ifhZYEq^P&J*p}f~SJH-h>FAq- zsphcGg{+;(WzR0?(~ue71+NVRp<|3i&DdOTOO*IS&P%s2rf?ojpvx<(zLp_j(<3xl^4xESqYf1zXvkrhG@)5N4qui#0G{ z7(%@U6L>IRJE)xe+#bAnz5Wf{`7aHM4Jd;*4N~>aFE+D_8%x7|EH*n$|;H&>DNevD=S2-sV?K$~RO|s6G7$T`c~-Zc5kwE;V_hb~Qf@TmrK=PBcugz2r)`d8iA%iXzyZVSJNGo&!6$dO#jZl$cDjBrB(3BcGhE}K)31c;oc?KCAbqMcb$Ei20=vQES%y= z-2s8rerQMrZ?=RGDl86EP)0b#R}@7mCwm{;gbUUv5T5PW5vTdjktqM3qSNT0~@})k8 zNIWT;b^Z`QM(#C~IAn1+L6#!rxGoQq7j$Y+U%PlBW!UMABJe?r2Z4`S9|rwt_zTTs zLWIDY5?p(fCpXRUCk1K?H`-7GN=cRAx!;wJpmz>54+YXzdaO45C}`Csr(^;LqUjs6 zX>jHj^_SUH7du8D3Qg~Z2{{jt%f6sM4*P*$Z%KZzkB+Wh%*Dj3bXSXrGQ%`&W3~;> z%!#}Leef#B(0kzXjGzD4t#Q~CAT+iohKDcesK%`x>61VGnBh zOKP^|+9R=>>8s~q#PtIOh+BzLxc~?HE!mAj(9A{0#KiKcDiEiY1_VR{yv);IPR}t( zX7?l6t*)zC3vr8O0Os0UX|kPgG|x^sTIk7!h>ng<{2*Fs`7i)<8wuxR76)egFUG^q zRqjn~6yNZu@7ss4*JS z+XXM2K*-x9IKnuP&zE`N7Lh!PD;`M(rdc`?Mk0GUbHBUvmx?L_`~wVV82*`VV>akh z6?>s}jI|mp-Te;`-*caHirXXk0=qH_3%hK`>xNvf(k7QD_U~S%$oDfS~Vi1_Wfffjb{XSw?9<_wu(Qe`Us1+S;`_8fqMssp6X2K|P_Yiu;m7>#8usR<<5MSYq+ZG(05I|eWG?Jq0FmpE1WCq zz<+}}bmTLKmhNREk!NL+Wu}P>pLg|H`T;v3rZ4QM?nZH)<*C4{9vmztT)%td8RZdL zfw_z2lbw__v^U&bnD1m?^lT2L-}V3s6VOW*pngV?UbD+jc zwrcs_l^bczgnn7r&Kl5~v5|XFad0Lfz%zgsIUqcS8_*}X3y6J;!oKZmz?yw&P-k;l z;ZNb#ru?L?K6cXn+6@cJvJ)oa5YK6)2Cwe(uCJ0eLAAw#!^L&UspaZPbj69Nktu9U z_RRBLi3Q{Mpr#h-%2R46iz*9>Z2Opf11)uCK9H}U7#g?^&^gjhg=^`${neoWtb#qn zb5e(NiH}P(Z@(Gvg8+M>UFt`NeoQ+?Px*6$o0)a_eFt1GiUHkQ=BM#J;z5OnOY-Vb zQ^L9iogHk6FZQ0Pv+(<_dzVYf%ujxp*!y|lzI&Lwf2rW3L7e|S$B10qqGgHEKToz0Bf$VN}0YnS*-5{~KBM!fD$4i0%3Jz?W~<6fQTp<(x(^p8%zeFpk1_ zf5y;Sd++j^Zbt$9KB47X)5*?9gg#-!b(>fKrqYN<8y*6Z#c~NVuf#=m0(M!8T~LyZZVy7`>)jui=2x4{Rb?i{Qa zsdtneeV9{D;7}HL57vfxlTMemPdDxdr~p`l5f^#YvMZPH3!mWr6~PmKoLR104C~7) ze~Z@l3mG;V%>MYPhFprtBcbCED7t+V+Y~R-uoWQ{^S=X0KE%Qlk#GKtoMr3 z(xK6>brwxLc@Wgk#C6U4ds5o$emXsj`QlBZJ5$uOG)pWv0A&ccOWNPSk$SDqv$`!l(ls_|KdCX}MXg3G~w4@aKvXjD;#eNIJn*S3HV-o^G_xuJLpcW-L} zAMiL>CLJs~lq6g7jNo;63KwtXaDK|rdk0JD<3cV{@L{P9TFm?$=WP=+*zmqW8jx<#aens+>+Hs7xjT72l+fIAvpOpx1Da*jrh;CABg!(Z?6)P69~u z0iFH;dp|;KB`4!p!qaON6*^?$O|z4`^z_l%B&j;iR$|nPers-(4gM_(ax~)uSz~!+ z9A5!w*KNi>GHO~;T`lSM^2*l!O^YJUd^5isr4y9D8W{&ZvR+p8=dExu+jxvJv(KC< zAr)zmm8|qSb^86z&Nc588dOwj4oD6_qQwDQzM{r<$O`C`b*%Sv?Yg_HtBY7R@S0Z)$w+H^ZuD3a z(It3iMQnrVO*ippA7-&XA$%@%fbA6qkSP7xUO^eUjKaH`60ytATxl<}JmBGPH=wR; zEYe-XM?0KyyS*Aptwf=9iOt^W!yCSFW-8vLui_3bk2{0<(F!6ZE{X^@ zBO?yz_I#5g+lM5j&yVo$6ss4_ID!#F`7;H^kA9R-bvsFVj-KND!g9WLTb(x8?cFJ= zHhXVnLeFL^qq4`>ZKjqHza`umi{2@rt2 z{EM7Nj6MlqYV1VP^Pq>kE7D z%VgVOntr}u`Tv8F-v#Q~pakJ_Ci(%Scf zLW|ETE>~;^)DYc^jZ1=uSrgZC)1E9#y1I;i^$BhbGw{pCxW4z+sGWTkM)qLC%Xb#6 zx9a$36*PGka{K7VgJeIm+{{)qFp1K0b6Hc=Nb7D4>C3&Nm;8ct+aJhKmrmAaI+>K} zMRkH^V#>y!gxV~=7=5n!ZR~gv(R9NVL6b(OTTSFoaR&_Mf@Gsdr|Gf2RP=4*+`6d` z*2tfPbeHr+Kk2oJwTD-Kj*T)8G2RG zro5DiHNT?;gFFt2X3KuG#iGf+{GE3SGxf9anb>_JmI^S<&~}+LkL{PQ(Dt+3t=iHt z!Slvt<$e+^4Eg|iV8tosENYnE_w;Kr5pv+Siwd#}S!pDO`M6l7Gg7&x{^l?I`qA2w zTvy8I`#f03*}9;Jq%0n*4?nV2dsUN z4DM4BeLBTU;HmCgs9N<{ht&;NyF>w@N!0oR7{`xWy)>Z(Rts zz}krTerWWaje|c~AN}OydAVJvOzlC%R%?aEaQb{ZAdm;n*&>e#b#i+hizYU6E2=0C+7#&~ zNo7grWdWGE`^NjJ9Qgd~{T3|TuS*z8xxil>d*2JWx4qikHpa)JNyy&X!{2s^a2eEg zTRD7II3UPUm&r)idUM`5XTrpL!6KdR5i#E!KU!TPjV|Aj=pV;M_z>R}qAw$a z9_Cj(0n6t6x%VB)$ADCk+dEuc`m(pNdj`mEG+gVp`^$6cHZ(_bfOLRv*t3NFmaQ$Y z(^-&fS#|-Z@m04x6>YLc;+|-4#!f6%ER>oUKXVlZvPF8HsvzYCk`tWWFOrj(vIYYS zh_NQ|&4%I^QigAM>iNX!9L+5<^k)9Dyi5(9pKNoAz(uWhGqR`)AO}SAw%u@fK75&8 zzU3~IwF(D0C>U)c^%s!!Sa1u*0=Yql#|qS3MH(bF;nxZV4*nwZtocT-r~m0Yd6En66;MEIFX`Ce}g= zgtw4M92UsbLL>vs;bWMu^n?SIB}hwvZp!8W=bQUUj2)yA!A6A6apLMFQ?PV@4wmp# zu+u0N;s71UhIOy6bpi@>7T{80e0Al;0dN*F=Yd8(!XuTdMU}v}CI-BC!XSK61@^MP zuI*oVvRakR%*=if&C}$S@cn&#=76F5;c@Z@_e22Db)aHkf9h=4JN+}fgHFg+80ap< zL1&#eR#b6Ty_vHKVs*A^C@T;NP{7nM_+KZ%(PrOqLh`m_ZIm;f zR8HL!ap*zE$u(@g^};85oC@51$LSSG9L*9cseHEXb-78sMUs{RVTbFI%>*4me`SGD zB2L!FSZK%_I1(m0VqL;yO(WBo=70UdLteguP+(?9yb(67Zfya?wPCMWC52y`3%w$G zeO7RYk{U{`1&$m-C60RG5uZ;frncN%)3TI1V| z%$@(no=I@i(8E~nqF5lBhLpz&`y+YnMQo%>`lQ!*TJl9$hN#&v%bSsjxNXPPpSA8= zI$`;~>u8IXtuFjkl0ReLh!z!1XK+|c91F6b^1<+y|G+-L6 z!M%Wwd|Sv=js55}6svfmatZ4F+(H>xv6yY*H|NIfJp@i7fSBnWAc9QxM|56c0(rbw z7DlL-X8{75@{ZqTb7au#htLx)bVw(N}L z7-72H%wcu85o))sN6$LS*&}TC<#Xwap6RlK)Gh6MY%u0FM0pN*P5tHoVj|(jJr*_; z8#rj*#Agk9cW-P}3i7uei4Y9$o%{|0mSLy;521z8_`gOxTe*5J z_;1E(g5PNzdOjRaxN*vxJ;c^AYH1mrMxWoyL-2$XM`zG zBO`zO-{s8!M0(<7U#k7RnRe9IXFy5;vB42H(63V8mZxO%-3g&+48Ipb(yw812E~jf zLFSlN;1nq>>;-O}+l9fk^U+n-b(adzq2i);4xXc0!^SqGCx98vFeKIfyh?>Q-sIDt0#bRYfD3G;`p#$a7;fTc+>3#BFiFP zUo7`qZ!3D>QH)t5JeiiBHWt-D%ZYR-h-YFr`Ef)}c)4MXvM?z1#M)8mj*#Z({;kBd z`s&~JiVe>T$%|j7eKSlS+oQVEz0B5e_uJ)Gnac|HtI-l?E?Rz;m|8?WyL*@C0yq8M zyEXN1FOePEm)=!fKUo%JV{Tmgu=GCeLXCo@JddmR`&*3N^g*XzWi{09CXc%<>bfDY zLvFe1esG%@1TMi(c93*5GI20*MBm$ki9Q;lJzK^$O#jsV&c+)~g?eCp<_FIHXoquR3b2V%kpVOLqG8q+i!uGG5Fs;ZO6o8VlQ=6{g+I z$VX9?bHORwS1ThepJ>2|=KmLS?;Y0E_O*)!L6I$jTP$=`RNSHzL68!#V*^x_B2@ta zX-W$ukYIzYQbd#vK~azzigZFywiGF$h0r4c0TM!h5JD1?+!=qr?>m3od+zg{bHC?2 zH~+wstd*>})|_*^;~no9!y{ce)P=R~i&Z}VF8abdUiWM&&ggU)IWbAEu!EV|@HG+-Zq!lYVla`{0gRR6f4s#tGRxxCY zkDheoyhM`tVIB`B(1DubF9#|gekU_WPRaW2?ZimyCK=S?pQ3@k?uzZauUUF*HqE;v zpK}P>#_vF}1@ZNnhyxOT0;y?{_WrYHpX7>d>B{mQCW~zwW=+LAI|?#cX9cYa?v`_QTX_Q4EtD>(4YKA*xnPq zXQLLijVc;I8g_6JVLZ^M;G#cDdAsC^koy%j_Avhnr#eLGp{;GkrVO3d*mS*WZ#CVy z#bWD&q3tXDeiX-2XGG2At~z#P4e0Xa_BK9U_?|o7;|HO6Rfq>kQZig+JFTVX4*7>h zR8INxVVh(0`;~iqm7Vj-kSHYH6+g1U@JMZwecZE*vdk2Qd-J8K(C+*Aj!TRTa(G zQR7RBEgY~PHjPZ~f7W!m>%MHSVzZ8P5=BaM#jyH<%AcUg|TBSb|b`9!mpoHh%@1s6EGV;G;cG${y^KA?36;^@a5B8 z=}7kYRXj#HYyo9M=O(MDq~5n<&UhnnhRf(IXBuZxnu;f_k@X2!G{f+5z>^tN#bR0l z3wfPKK_HO_pYeaTH6#=JlO7^IxYJ@uTxry)@-CK*R?!wH1oYgo)k;&FlGtu>YI5yS ze-PKK#1^sCLEoKL9qr)|~y*(Ub zk4>*rd2_PTzC?h)T7EY(S@CaqE>T-tpN|-YEo!e1hr0-WEu=tz-sed+v z=6>r6j-RcAtzPkCX9X_~D*SD!2#^A1Ywpw5g} zE>BP*aGY064_Iswz1y5Mh*mKuKThZ%T2_>3qG$>PQz&yUm59v~1l?vmkc>Qk=df9lx}b2Ewrg(xQGaE6-NOzk@ZQ+IxDgI`>I>O=ryrA2?y={|Dj z(IEeRI)8D985AvwkU8)c1iZonI_qS7cFoHXv13lvuSKt2FpXzbfJlpeLCK7#ek8lF zt4ek13TWk&=FN5rIXa)*BQ#)Wp|q$ z3Hps?Wm$S6A>^(TIzaH{UywIkHkCkm<-8Hk)Rjo-&;|L2s9rmpvvb4p2R_Pf_Y(vv zN$MYRuvq6dI`clkZDZj_;u7|)KaS?xc%;dgot>eF`v+~!gJJI2jaPaFVjHdr8o}p* z&NZJFCpQN51=DRo0`E@4@{DRFDF0j28~uh7r*9bj<1-_)O@EGHM7Mfctu!N!*Rn%h@23tIIlhI}8RL@+n=)MX`kl|Eg zeeKkmLf0pwjiv(jbd7!v{6$joeCvK~8myBN)NB=f!79}hyViYbst7)sgTP|piz1Rb zw3Z{l$dH)c>$%767cnNwFX+KeDzLHgy4iqlWbl)O;K&TE(5^J+&j{tbyp=QJO1dYy zG#ib1qXofK6PxHZurEC1O$>XWtwGTziI1pRn910DWrJJ$pP3J9L#GpZquY`v2IuE9 zvU-d{jPJ1i;m?_A(u&llZmF#<61?k4JEwDr3=DF~+1ekCYC*yEaeUq(fv{Mtw`{1lOnGIx z{#2lqt8dHa59FELW`(HVJv+a7@U6_U@B>m!mYd3YlW8GpR;*D>;!(f3bAbwkpr{l0 zLHoSS0bK-ppY~Ih|lusFoF4F7@Qq>T8R?Gu+?psB1v)t2c1FC=u7O-k&hh z1;Pa=-t}*)@x~2OUu}v)&9Eg4_W~VrsQ3n&cn>jrp*hp(2i9%ttDRzMo)$~oMS?m- z>(rSgQRxU&=PJy%u38zc+Be1SHm$3YibumasgF9cEa=nuQlEMk?q=egi^X-%xx5ap z*?%hXaT?A3bil8TCQ%mA)jCPp-aL$s-bi#V0m#9MsesewPhJW02g&A8m4>%rGS)sL zUmm&13EVn8y0p)rR@7SKmQ!8!Ge8Y6!TZ^Dw4L9RXdhOzNf46YF9EtF!`9TGLnF4D zrKKN#(#(3(LtOPnrD!doBipmhpCYdhy6u!z+oxgL1u@*etb^b9ER~^x+Gy`ym3VwtMLZ0idyh%&tK%FOSxLa4 z9LGfsq3JsRT#WkBMoNHGBW&XwWB0NDN!Z6JNp8KT(XX#^uZB9W5+{bwflV1NVd=yU zKRC75^hQLUc80hX3)IM$9N1UV^vTTHB10A0!XGx}&JsRcc%^2Xn&rvgaO1BYMs#`a zvGEU|vK+u6yw+|SE!Lpt4a~p2*l-K$incbdGMA7|!~R;cX4SF2m_qtbs4s(cM5hOu=j{r=;y=97bg79K%3J#SPF=bu7M440g9qNY8l!B+R3GiY|* zCGj`P_h5`g{M@CQj7RVKpBg}4GmNCAHn65OWjZ{S2)3pnBhM!2>_W`fjCma~v$qo+ zOwI|D)wUJ0X#RRDfyV=5vw~d|-un&O0nR#zvCGjV`%XGIiFuWmD!IWTq z=5k(FJ2zW-M7J$i^crCwqSZ^E++Fv0QimArRmYm}CzzUpP`-a*J)M7_ce+WeHR1Xx z`k{j+^B5^Y6zN${cX4=5hKALkJ{ndCT{BO6DK9H$lchpVv&=C!3!7nYKm+z6YkDuC3j{; zteFu&nVcIUS`pi{&jX~t?SjHAC_J5Nw_0Fx8=?bbP+K09?0%}CH+FmcVe{UWhHBT= z9KuOr5vHVJC6M4-&HJ8$Uu@*2Gr7(izlwuTU3Zh~BAQF=Fk!b_#$RLPsiI8nx}u_$ zIY_L(j`rNo90ZT;U*_Jy+pT4~$_O=0)^K>Be>fLBIw_%TQg?Z1&F@?(P>B)Qe$4i% zY=@58`nVd~;4-K^63BeP1ADU`nfGjy_h3W4A$Osl!cJ40hLN!Ob*p{Sw}k+D_M;ve z%wad4lO}6|Tm0brOV|KIDP+jIVE8pJ<+5i28`N{xQ)rM-DuJEp zg{JJp^a4Vm;0E)h&4TI9gFZ!hJSuL&S_wY)K9jZ6a5aDwA$vK-GY4!dnj)^C5;<_UG{hA)m!R&kAhPYOZ#@#KS-j2bb{Q307 z1CNK3ww)HN+Mx2&UIc_I4ScUDa+daV$-bg}$`kCgxtu(E_|;EDyM)A%4P*ZL6zG8+ z?`X{mx+-0mF+g6MtH2}a�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 diff --git a/assets/images/portfolio-photo.webp b/assets/images/portfolio-photo.webp deleted file mode 100644 index b5d0747bc7ed004c16d79fd0f43c8c4fe11c8840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39168 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

1!GYW%zPWUa@ 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 hvdh~ef!yT&u)xoX*1nq7M8Uz_RB0HSDBUr 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,{opacity:1},{duration:.7}),()=>i(t,{opacity:0},{duration:.7}))),{some:.7,initial:!1})}(); -//# sourceMappingURL=experiences.js.map diff --git a/assets/js/experiences.js.map b/assets/js/experiences.js.map deleted file mode 100644 index 77ecc47..0000000 --- a/assets/js/experiences.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"experiences.js","sources":["../../ts/src/experiences.ts"],"sourcesContent":["const { animate, inView } = Motion;\n\ninView(\n \"section div\",\n (element) => {\n animate(\n element,\n { opacity: 1 },\n {\n duration: 0.7,\n },\n );\n return () => animate(element, { opacity: 0 }, { duration: 0.7 });\n },\n { some: 0.7, initial: false },\n);\n"],"names":["animate","inView","Motion","element","opacity","duration","some","initial"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,OAAEA,GAAWC,OAE5BD,EACE,eACCE,IACCH,EACEG,EACA,CAAEC,QAAS,GACX,CACEC,SAAU,KAGP,IAAML,EAAQG,EAAS,CAAEC,QAAS,GAAK,CAAEC,SAAU,OAE5D,CAAEC,KAAM,GAAKC,SAAS"} \ No newline at end of file diff --git a/assets/js/landing.js b/assets/js/landing.js deleted file mode 100644 index f2c6ccc..0000000 --- a/assets/js/landing.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){"use strict";const{animate:e,stagger:n}=Motion,t=document.getElementById("years-experience");if(!t)throw new Error("years-experience Element not found");const o=document.getElementById("programming-languages");if(!o)throw new Error("languages Element not found");e(0,6,{duration:1.5,ease:"circOut",onUpdate:e=>{const n=Math.floor(e);t.innerHTML=String(n)}}),e(0,4,{duration:1.5,ease:"circOut",onUpdate:e=>{const n=Math.floor(e);o.innerHTML=String(n)}}),e("#years-experience",{count:5},{duration:1.5,delay:n(.1)}),e("#languages",{count:5},{duration:1.5,delay:n(.1)})}(); -//# sourceMappingURL=landing.js.map diff --git a/assets/js/landing.js.map b/assets/js/landing.js.map deleted file mode 100644 index 3c702e7..0000000 --- a/assets/js/landing.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"landing.js","sources":["../../ts/src/landing.ts"],"sourcesContent":["const { animate, stagger } = Motion;\n\nconst experienceCountSelector = \"#years-experience\";\nconst languagesCountSelector = \"#languages\";\n\nconst yrsExpCount = document.getElementById(\"years-experience\");\nif (!yrsExpCount) {\n throw new Error(\"years-experience Element not found\");\n}\n\nconst langCount = document.getElementById(\"programming-languages\");\nif (!langCount) {\n throw new Error(\"languages Element not found\");\n}\n\nanimate(0, 6, {\n duration: 1.5,\n ease: \"circOut\",\n onUpdate: (latest) => {\n const yrs = Math.floor(latest);\n yrsExpCount.innerHTML = String(yrs);\n },\n});\n\nanimate(0, 4, {\n duration: 1.5,\n ease: \"circOut\",\n onUpdate: (latest) => {\n const languages = Math.floor(latest);\n langCount.innerHTML = String(languages);\n },\n});\n\nanimate(\n experienceCountSelector,\n { count: 5 },\n { duration: 1.5, delay: stagger(0.1) },\n);\nanimate(\n languagesCountSelector,\n { count: 5 },\n { duration: 1.5, delay: stagger(0.1) },\n);\n"],"names":["animate","stagger","Motion","yrsExpCount","document","getElementById","Error","langCount","duration","ease","onUpdate","latest","yrs","Math","floor","innerHTML","String","languages","count","delay"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,QAAEA,GAAYC,OAKvBC,EAAcC,SAASC,eAAe,oBAC5C,IAAKF,EACH,MAAM,IAAIG,MAAM,sCAGlB,MAAMC,EAAYH,SAASC,eAAe,yBAC1C,IAAKE,EACH,MAAM,IAAID,MAAM,+BAGlBN,EAAQ,EAAG,EAAG,CACZQ,SAAU,IACVC,KAAM,UACNC,SAAWC,IACT,MAAMC,EAAMC,KAAKC,MAAMH,GACvBR,EAAYY,UAAYC,OAAOJ,EAAI,IAIvCZ,EAAQ,EAAG,EAAG,CACZQ,SAAU,IACVC,KAAM,UACNC,SAAWC,IACT,MAAMM,EAAYJ,KAAKC,MAAMH,GAC7BJ,EAAUQ,UAAYC,OAAOC,EAAU,IAI3CjB,EA/BgC,oBAiC9B,CAAEkB,MAAO,GACT,CAAEV,SAAU,IAAKW,MAAOlB,EAAQ,MAElCD,EAnC+B,aAqC7B,CAAEkB,MAAO,GACT,CAAEV,SAAU,IAAKW,MAAOlB,EAAQ"} \ No newline at end of file diff --git a/assets/js/navigation.js b/assets/js/navigation.js deleted file mode 100644 index 32cbb0e..0000000 --- a/assets/js/navigation.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){"use strict";const{animate:e,stagger:i}=Motion,t="#mobile-nav>li";document.addEventListener("alpine:init",(()=>{Alpine.data("navbar",(()=>({isOpen:!1,open(){this.isOpen=!0,e(t,{opacity:[0,1],x:[-50,0]},{delay:i(.1)})},toggle(){this.isOpen?this.close():this.open()},close(){setTimeout((()=>{this.isOpen=!1}),300),e(t,{opacity:[1,0],x:[0,50]},{delay:i(.1)})}})))}))}(); -//# sourceMappingURL=navigation.js.map diff --git a/assets/js/navigation.js.map b/assets/js/navigation.js.map deleted file mode 100644 index de8cd6d..0000000 --- a/assets/js/navigation.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"navigation.js","sources":["../../ts/src/navigation.ts"],"sourcesContent":["const { animate, stagger } = Motion;\n\nconst navItemSelector = \"#mobile-nav>li\";\n\ndocument.addEventListener(\"alpine:init\", () => {\n Alpine.data(\"navbar\", () => {\n return {\n isOpen: false,\n open() {\n this.isOpen = true;\n animate(\n navItemSelector,\n { opacity: [0, 1], x: [-50, 0] },\n { delay: stagger(0.1) },\n );\n },\n toggle() {\n this.isOpen ? this.close() : this.open();\n },\n close() {\n setTimeout(() => {\n this.isOpen = false;\n }, 300);\n animate(\n navItemSelector,\n { opacity: [1, 0], x: [0, 50] },\n { delay: stagger(0.1) },\n );\n },\n };\n });\n});\n"],"names":["animate","stagger","Motion","navItemSelector","document","addEventListener","Alpine","data","isOpen","open","this","opacity","x","delay","toggle","close","setTimeout"],"mappings":"yBAAA,MAAMA,QAAEA,EAAOC,QAAEA,GAAYC,OAEvBC,EAAkB,iBAExBC,SAASC,iBAAiB,eAAe,KACvCC,OAAOC,KAAK,UAAU,KACb,CACLC,QAAQ,EACR,IAAAC,GACEC,KAAKF,QAAS,EACdR,EACEG,EACA,CAAEQ,QAAS,CAAC,EAAG,GAAIC,EAAG,EAAC,GAAK,IAC5B,CAAEC,MAAOZ,EAAQ,KAEpB,EACD,MAAAa,GACEJ,KAAKF,OAASE,KAAKK,QAAUL,KAAKD,MACnC,EACD,KAAAM,GACEC,YAAW,KACTN,KAAKF,QAAS,CAAK,GAClB,KACHR,EACEG,EACA,CAAEQ,QAAS,CAAC,EAAG,GAAIC,EAAG,CAAC,EAAG,KAC1B,CAAEC,MAAOZ,EAAQ,KAEpB,KAEH"} \ No newline at end of file diff --git a/assets/json/experiences.json b/assets/json/experiences.json deleted file mode 100644 index a3a51e0..0000000 --- a/assets/json/experiences.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "start_date": "2022-07-01T00:00:00.000Z", - "end_date": null, - "company": { - "name": "Awaze", - "logo": "", - "link": "https://www.awaze.com/", - "location_link": "https://www.google.com/maps/place//data=!4m2!3m1!1s0x465252660a2125a1:0x5a2e60c905a1fd5a?sa=X&ved=1t:8290&ictx=111", - "city": "Virum (Copenhagen)", - "description": "Awaze is the largest managed vacation rentals and holiday resorts business in Europe, which brings together some of the continent's most trusted travel brands, including cottages.com, Hoseasons and NOVASOL." - }, - "Job": { - "title": "Software Engineer", - "description": "I am working as a Software Engineer in the Awaze's Digital team. I am responsible for developing and maintaining the company's guest facing applications, that include Authentication, Booking Management and (FAQ) Help pages", - "objectives": ["Objective 1", "Objective 2", "Objective 3"], - "frontend_stack": [ - { "name": "NextJS", "link": "https://nextjs.org/" }, - { "name": "React", "link": "https://reactjs.org/" }, - { "name": "Zustand", "link": "https://zustand-demo.pmnd.rs/" }, - { "name": "Bit", "link": "https://bit.dev/" }, - { - "name": "ApolloClient", - "link": "https://www.apollographql.com/docs/react" - }, - { "name": "Storybook", "link": "https://storybook.js.org/" }, - { - "name": "Styled-Components", - "link": "https://styled-components.com/" - } - ], - "backend_stack": [ - { "name": "Nodejs", "link": "https://nodejs.org/en" }, - { "name": "GraphQL", "link": "https://graphql.org/" }, - { "name": "Apollo", "link": "https://www.apollographql.com/docs/" }, - { "name": "Lambda", "link": "https://aws.amazon.com/lambda/" }, - { "name": "Traveller (MSSQL)", "link": "" } - ], - "infrastructure_stack": [ - { "name": "Serverless", "link": "https://www.serverless.com/" }, - { "name": "Cognito", "link": "https://aws.amazon.com/cognito/" }, - { "name": "AWS SES", "link": "" }, - { "name": "Github", "link": "https://github.com/" } - ] - } - }, - { - "start_date": "2021-08-01T00:00:00.000Z", - "end_date": "2022-07-30T00:00:00.000Z", - "company": { - "name": "Kiapro", - "logo": "", - "link": "https://www.kiapro.dk/om-kiapro", - "location_link": "https://www.google.com/maps/place//data=!4m2!3m1!1s0x46525052d1d32a6d:0x47b68788842d92aa?sa=X&ved=1t:8290&ictx=111", - "city": "Herlev (Copenhagen)", - "description": "Kiapro is a Danish company that provides software solutions both for Fin-Tech and Healthcare sector. The company's main product is a platform that helps Fin-Tech management engage with employees through an interactive intranet.\nOther products include all-round applications for Chiropractors to follow patients through their transformation which is called BackTrace." - }, - "Job": { - "title": "Full Stack Developer", - "description": "As a Full Stack Developer at Doctolib, I contributed to the development of the core booking platform and various healthcare professional tools, focusing on both performance optimization and feature development.", - "objectives": [ - "Improved platform performance and scalability", - "Developed new features for healthcare professionals", - "Implemented real-time notification systems" - ], - "frontend_stack": [ - { "name": "React", "link": "https://reactjs.org/" }, - { "name": "Redux", "link": "https://redux.js.org/" }, - { "name": "Capacitor", "link": "https://capacitorjs.com/" }, - { "name": "TypeScript", "link": "https://www.typescriptlang.org/" } - ], - "backend_stack": [ - { "name": "PHP", "link": "https://www.ruby-lang.org/" }, - { "name": "PostgreSQL", "link": "https://www.postgresql.org/" }, - { "name": "Go", "link": "https://go.dev/" }, - { "name": "Fiber", "link": "https://gofiber.io/" }, - { "name": "Laravel", "link": "https://laravel.com/" } - ], - "infrastructure_stack": [ - { "name": "Docker", "link": "https://www.docker.com/" }, - { "name": "Self-hosted VM", "link": "" } - ] - } - }, - { - "start_date": "2019-10-01T00:00:00.000Z", - "end_date": "2021-07-31T00:00:00.000Z", - "company": { - "name": "Fellowmind", - "logo": "", - "link": "https://www.fellowmind.com/da-dk/", - "location_link": "https://maps.google.com/maps?hl=da&gl=se&um=1&ie=UTF-8&fb=1&sa=X&ftid=0x465253083f4d1201:0x8e4ee256108ec86a", - "city": "Copenhagen Area", - "description": "Fellowmind helps customers with accelerating their digital transformation by using Microsoft's cloud-solutions, progress to agile development, implement integrated platforms and help end-users to apply those techonologies. With other words, to allow people to enjoy working with technology, and to make the technology work for them." - }, - "Job": { - "title": "Software Engineer", - "description": "I was apart of the team called IntraActive which was responsible for creating Interactive Components that can be added to their pre-built Microsoft pages. I Developed and maintained a customisable Phonebook that can be configured to any company theme.", - "objectives": [ - "Developed new monitoring integrations", - "Optimized data processing pipelines", - "Enhanced visualization components" - ], - "frontend_stack": [ - { - "name": "Microsoft SPFX", - "link": "https://learn.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview" - }, - { - "name": "Microsoft Sharepoint", - "link": "https://learn.microsoft.com/en-us/sharepoint/" - }, - { "name": "TypeScript", "link": "https://www.typescriptlang.org/" }, - { "name": "React", "link": "https://reactjs.org/" }, - { "name": "Mobx", "link": "https://mobx.js.org/README.html" } - ], - "backend_stack": [ - { "name": "C#", "link": "" }, - { "name": ".NET", "link": "" }, - { "name": "Azure Functions", "link": "" }, - { "name": "Cosmos", "link": "" } - ], - "infrastructure_stack": [{ "name": "Microservices", "link": "" }] - } - } -] diff --git a/assets/json/projects.json b/assets/json/projects.json deleted file mode 100644 index 0fec735..0000000 --- a/assets/json/projects.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "name": "Invoice Management System", - "start": null, - "end": null, - "stack": [ - "Go", - "Wails", - "React", - "SQLite3", - "TailwindCSS", - "MacOS", - "Windows" - ], - "description": "Invoie Management System that helps mechanics create invoices, manage customers, finances and more.", - "thumbnail": "/assets/images/invoice-manager-thumbnail.png", - "github_link": "", - "status": "In Progress" - }, - { - "name": "Portfolio", - "start": null, - "end": null, - "stack": ["Go", "Templ", "Motion", "TailwindCSS", "Typescript", "AlpineJS"], - "description": "The website you are currently on. A portfolio website that showcases my projects, experiences and skills.", - "thumbnail": "", - "github_link": "", - "status": "In Progress" - } -] diff --git a/components/about_page.templ b/components/about_page.templ deleted file mode 100644 index c53ede8..0000000 --- a/components/about_page.templ +++ /dev/null @@ -1,202 +0,0 @@ -package components - -templ AboutPage() { - @rootLayout() { -

-
- -
-
- Mohammad Hariri -
- Available for Work -
-
-
-

Your Name

-

Full Stack Developer & Problem Solver

-
-

- Passionate about crafting elegant solutions to complex problems. With expertise in modern web technologies, - I bring ideas to life through clean code and intuitive user experiences. -

-
- -
-

My Journey

-
-
-
-
-
-
-

Where I Started

-

- My journey in software development began with a curiosity about how things work. - From building simple websites to developing complex applications, every step has been a learning experience. -

-
-
-
-
-
-
-
-

Where I Am

-

- Currently, I specialize in full-stack development, focusing on creating scalable and maintainable applications. - I'm passionate about using technology to solve real-world problems. -

-
-
-
-
-
-
-
-

Where I'm Going

-

- My goal is to continue growing as a developer while contributing to meaningful projects that make a difference. - I'm always excited to learn new technologies and tackle new challenges. -

-
-
-
-
- -
-

Technical Expertise

-
-
-

Frontend Development

-
    -
  • - - - - React & Next.js -
  • -
  • - - - - TypeScript -
  • -
  • - - - - Tailwind CSS -
  • -
-
-
-

Backend Development

-
    -
  • - - - - Go & Fiber -
  • -
  • - - - - Node.js -
  • -
  • - - - - PostgreSQL -
  • -
-
-
-

Tools & Practices

-
    -
  • - - - - Git & GitHub -
  • -
  • - - - - Docker -
  • -
  • - - - - CI/CD -
  • -
-
-
-
- -
-

Beyond the Code

-
-
-

When I'm Not Coding

-

- Outside of development, I enjoy [Your Hobbies/Interests]. I believe in maintaining a healthy work-life balance - and finding inspiration in various aspects of life. -

-
-
-

Let's Connect

-
-

- I'm always interested in hearing about new projects and opportunities. - Feel free to reach out if you'd like to collaborate or just chat about technology. -

- -
-
-
-
-
-
- } -} diff --git a/components/about_page_templ.go b/components/about_page_templ.go deleted file mode 100644 index 9a263af..0000000 --- a/components/about_page_templ.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func AboutPage() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
\"Mohammad
Available for Work

Your Name

Full Stack Developer & Problem Solver

Passionate about crafting elegant solutions to complex problems. With expertise in modern web technologies, I bring ideas to life through clean code and intuitive user experiences.

My Journey

Where I Started

My journey in software development began with a curiosity about how things work. From building simple websites to developing complex applications, every step has been a learning experience.

Where I Am

Currently, I specialize in full-stack development, focusing on creating scalable and maintainable applications. I'm passionate about using technology to solve real-world problems.

Where I'm Going

My goal is to continue growing as a developer while contributing to meaningful projects that make a difference. I'm always excited to learn new technologies and tackle new challenges.

Technical Expertise

Frontend Development

  • React & Next.js
  • TypeScript
  • Tailwind CSS

Backend Development

  • Go & Fiber
  • Node.js
  • PostgreSQL

Tools & Practices

  • Git & GitHub
  • Docker
  • CI/CD

Beyond the Code

When I'm Not Coding

Outside of development, I enjoy [Your Hobbies/Interests]. I believe in maintaining a healthy work-life balance and finding inspiration in various aspects of life.

Let's Connect

I'm always interested in hearing about new projects and opportunities. Feel free to reach out if you'd like to collaborate or just chat about technology.

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/contact_page.templ b/components/contact_page.templ deleted file mode 100644 index 186490e..0000000 --- a/components/contact_page.templ +++ /dev/null @@ -1,109 +0,0 @@ -package components - -templ ContactPage() { - @rootLayout() { -
-
-
-

Get in Touch

-

Have a question or want to work together? Let's connect!

-
-
-
-
-
- - -
-
- - -
-
-
- - -
-
- - -
-
- - -
-
-
-
-
- - } -} diff --git a/components/contact_page_templ.go b/components/contact_page_templ.go deleted file mode 100644 index 8b1051d..0000000 --- a/components/contact_page_templ.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func ContactPage() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

Get in Touch

Have a question or want to work together? Let's connect!

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/experiences_page.templ b/components/experiences_page.templ deleted file mode 100644 index 446be5b..0000000 --- a/components/experiences_page.templ +++ /dev/null @@ -1,65 +0,0 @@ - -package components - -import "github.com/moh682/portfolio/domain" - -import "slices" -import "strings" - -templ experienceCard(exp domain.Experience) { -
- -
-

{ exp.Job.Title }

-
- { exp.Company.Name } -

{ exp.Duration() }

-

{ exp.GetStartDate() } - { exp.GetEndDate() }

- { exp.Company.City } -
-
- for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { - @techStack(stack) - } -
-
-

About { exp.Company.Name }

- for _, description := range strings.Split(exp.Company.Description, "\n") { -

- { description } -

- } -
-
-

Role & Responsibilities

-
- { exp.Job.Description } -
-
-
-
-} - -templ ExperiencesPage(experiences []domain.Experience) { - @rootLayout() { - -
-
-
- -
-
-
-
-
-
-
- for _, exp := range experiences { - @experienceCard(exp) - } -
-
-
-
- } -} diff --git a/components/experiences_page_templ.go b/components/experiences_page_templ.go deleted file mode 100644 index a7026c9..0000000 --- a/components/experiences_page_templ.go +++ /dev/null @@ -1,280 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 - -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import "github.com/moh682/portfolio/domain" - -import "slices" -import "strings" - -func experienceCard(exp domain.Experience) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Title) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 13, Col: 63} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var4 string - templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 15, Col: 112} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Duration()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 16, Col: 47} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 string - templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetStartDate()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 17, Col: 58} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, " - ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var7 string - templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(exp.GetEndDate()) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 17, Col: 81} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var9 string - templ_7745c5c3_Var9, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.City) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 18, Col: 99} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, stack := range slices.Concat(exp.Job.FrontendStack, exp.Job.BackendStack, exp.Job.InfrastructureStack) { - templ_7745c5c3_Err = techStack(stack).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

About ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var10 string - templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Company.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 26, Col: 60} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, description := range strings.Split(exp.Company.Description, "\n") { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var11 string - templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(description) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 29, Col: 19} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "

Role & Responsibilities

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var12 string - templ_7745c5c3_Var12, templ_7745c5c3_Err = templ.JoinStringErrs(exp.Job.Description) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/experiences_page.templ`, Line: 36, Col: 26} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func ExperiencesPage(experiences []domain.Experience) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var13 := templ.GetChildren(ctx) - if templ_7745c5c3_Var13 == nil { - templ_7745c5c3_Var13 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var14 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var15 = []any{"flex items-center flex-grow-0 justify-center w-10 h-10 rounded-full bg-emerald-900 border-4 border-slate-800 z-[80]"} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var15...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, exp := range experiences { - templ_7745c5c3_Err = experienceCard(exp).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 19, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var14), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/external_links.templ b/components/external_links.templ deleted file mode 100644 index 55206cb..0000000 --- a/components/external_links.templ +++ /dev/null @@ -1,14 +0,0 @@ -package components - -var iconSize = "28" - -templ externalLinks() { - -} diff --git a/components/external_links_templ.go b/components/external_links_templ.go deleted file mode 100644 index f1b3daa..0000000 --- a/components/external_links_templ.go +++ /dev/null @@ -1,94 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -var iconSize = "28" - -func externalLinks() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/landing_page.templ b/components/landing_page.templ deleted file mode 100644 index 36cbf0d..0000000 --- a/components/landing_page.templ +++ /dev/null @@ -1,71 +0,0 @@ -package components - -templ LandingPage() { - @rootLayout() { - -
- -
-
-
- -
-
- Software Engineer -

- Hey there! I'm Mohammad Hariri -

-

- I turn complex problems into elegant code solutions. Passionate about building robust applications that make a real difference in people's lives. -

-
- - - -
- -
-
-
- Mohammad Hariri -
-
-
- -
-
-
0
-
Years Experience
-
-
-
0
-
Programming Languages
-
-
-
-
-
- } -} diff --git a/components/landing_page_templ.go b/components/landing_page_templ.go deleted file mode 100644 index 10500af..0000000 --- a/components/landing_page_templ.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func LandingPage() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
Software Engineer

Hey there! I'm Mohammad Hariri

I turn complex problems into elegant code solutions. Passionate about building robust applications that make a real difference in people's lives.

\"Mohammad
0
Years Experience
0
Programming Languages
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/layout.templ b/components/layout.templ deleted file mode 100644 index 8d767e8..0000000 --- a/components/layout.templ +++ /dev/null @@ -1,23 +0,0 @@ -package components - -templ rootLayout() { - - - - - - - - - - - - - Mohammad's Portfolio - - - @navbar() - { children... } - - -} diff --git a/components/layout_templ.go b/components/layout_templ.go deleted file mode 100644 index 4566075..0000000 --- a/components/layout_templ.go +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func rootLayout() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "Mohammad's Portfolio") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = navbar().Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templ_7745c5c3_Var1.Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/logo.templ b/components/logo.templ deleted file mode 100644 index eac8d26..0000000 --- a/components/logo.templ +++ /dev/null @@ -1,7 +0,0 @@ -package components - -templ Logo() { -
- -
-} diff --git a/components/logo_templ.go b/components/logo_templ.go deleted file mode 100644 index dfa01d3..0000000 --- a/components/logo_templ.go +++ /dev/null @@ -1,40 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func Logo() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/navbar.templ b/components/navbar.templ deleted file mode 100644 index 694187b..0000000 --- a/components/navbar.templ +++ /dev/null @@ -1,86 +0,0 @@ -package components - -templ navbar() { - - -} diff --git a/components/navbar_templ.go b/components/navbar_templ.go deleted file mode 100644 index b39e0d5..0000000 --- a/components/navbar_templ.go +++ /dev/null @@ -1,48 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func navbar() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/notfound.templ b/components/notfound.templ deleted file mode 100644 index 6178995..0000000 --- a/components/notfound.templ +++ /dev/null @@ -1,10 +0,0 @@ -package components - -templ NotFound() { - @rootLayout() { -
-

404

-

Page not found

-
- } -} diff --git a/components/notfound_templ.go b/components/notfound_templ.go deleted file mode 100644 index 15b5dea..0000000 --- a/components/notfound_templ.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -func NotFound() templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var2 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "

404

Page not found

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var2), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/projects_page.templ b/components/projects_page.templ deleted file mode 100644 index 04a26e5..0000000 --- a/components/projects_page.templ +++ /dev/null @@ -1,65 +0,0 @@ -package components - -import "github.com/moh682/portfolio/domain" - -templ tag(tag string) { - { tag } -} - -templ status(status string) { - { status } -} - -templ projectCard(project domain.Project) { -
-
- { -
-
-
-
-

{ project.Name }

- @status(project.Status) -

{ project.Description }

-
- for _, t := range project.Stack { - @tag(t) - } -
-
- if project.GithubLink != "" { - - View Project - - - - - } -
-
-} - -templ ProjectsPage(projects []domain.Project) { - @rootLayout() { -
-
-

Projects

-

A collection of projects I've worked on

-
- for _, project := range projects { - @projectCard(project) - } -
-
-
- } -} diff --git a/components/projects_page_templ.go b/components/projects_page_templ.go deleted file mode 100644 index 897ac94..0000000 --- a/components/projects_page_templ.go +++ /dev/null @@ -1,290 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import "github.com/moh682/portfolio/domain" - -func tag(tag string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var2 string - templ_7745c5c3_Var2, templ_7745c5c3_Err = templ.JoinStringErrs(tag) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/projects_page.templ`, Line: 6, Col: 85} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var2)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func status(status string) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var3 := templ.GetChildren(ctx) - if templ_7745c5c3_Var3 == nil { - templ_7745c5c3_Var3 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - var templ_7745c5c3_Var4 = []any{"px-3 py-1 w-fit text-sm bg-emerald-700 text-white rounded-full", templ.KV("bg-yellow-600/50", status == "In Progress")} - templ_7745c5c3_Err = templ.RenderCSSItems(ctx, templ_7745c5c3_Buffer, templ_7745c5c3_Var4...) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var6 string - templ_7745c5c3_Var6, templ_7745c5c3_Err = templ.JoinStringErrs(status) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/projects_page.templ`, Line: 10, Col: 144} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var6)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func projectCard(project domain.Project) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var7 := templ.GetChildren(ctx) - if templ_7745c5c3_Var7 == nil { - templ_7745c5c3_Var7 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "
\"")

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var10 string - templ_7745c5c3_Var10, templ_7745c5c3_Err = templ.JoinStringErrs(project.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/projects_page.templ`, Line: 25, Col: 63} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = status(project.Status).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var11 string - templ_7745c5c3_Var11, templ_7745c5c3_Err = templ.JoinStringErrs(project.Description) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/projects_page.templ`, Line: 27, Col: 69} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, "

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, t := range project.Stack { - templ_7745c5c3_Err = tag(t).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - if project.GithubLink != "" { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "View Project ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -func ProjectsPage(projects []domain.Project) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var13 := templ.GetChildren(ctx) - if templ_7745c5c3_Var13 == nil { - templ_7745c5c3_Var13 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - templ_7745c5c3_Var14 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "

Projects

A collection of projects I've worked on

") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - for _, project := range projects { - templ_7745c5c3_Err = projectCard(project).Render(ctx, templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 17, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) - templ_7745c5c3_Err = rootLayout().Render(templ.WithChildren(ctx, templ_7745c5c3_Var14), templ_7745c5c3_Buffer) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/components/tech_stack.templ b/components/tech_stack.templ deleted file mode 100644 index ed8f340..0000000 --- a/components/tech_stack.templ +++ /dev/null @@ -1,24 +0,0 @@ -package components - -import "github.com/moh682/portfolio/domain" - -templ techStack(stack domain.Stack) { - if stack.Link != "" { - - if stack.Logo != "" { - { - } - { stack.Name } - - } else { -
- if stack.Logo != "" { - { - } - { stack.Name } -
- } -} diff --git a/components/tech_stack_templ.go b/components/tech_stack_templ.go deleted file mode 100644 index 5790a5e..0000000 --- a/components/tech_stack_templ.go +++ /dev/null @@ -1,156 +0,0 @@ -// Code generated by templ - DO NOT EDIT. - -// templ: version: v0.3.833 -package components - -//lint:file-ignore SA4006 This context is only used if a nested component is present. - -import "github.com/a-h/templ" -import templruntime "github.com/a-h/templ/runtime" - -import "github.com/moh682/portfolio/domain" - -func techStack(stack domain.Stack) templ.Component { - return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { - templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context - if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil { - return templ_7745c5c3_CtxErr - } - templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) - if !templ_7745c5c3_IsBuffer { - defer func() { - templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer) - if templ_7745c5c3_Err == nil { - templ_7745c5c3_Err = templ_7745c5c3_BufErr - } - }() - } - ctx = templ.InitializeContext(ctx) - templ_7745c5c3_Var1 := templ.GetChildren(ctx) - if templ_7745c5c3_Var1 == nil { - templ_7745c5c3_Var1 = templ.NopComponent - } - ctx = templ.ClearChildren(ctx) - if stack.Link != "" { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - if stack.Logo != "" { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "\"") ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var5 string - templ_7745c5c3_Var5, templ_7745c5c3_Err = templ.JoinStringErrs(stack.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/tech_stack.templ`, Line: 14, Col: 93} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } else { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - if stack.Logo != "" { - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "\"") ") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - var templ_7745c5c3_Var8 string - templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(stack.Name) - if templ_7745c5c3_Err != nil { - return templ.Error{Err: templ_7745c5c3_Err, FileName: `components/tech_stack.templ`, Line: 21, Col: 58} - } - _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8)) - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "
") - if templ_7745c5c3_Err != nil { - return templ_7745c5c3_Err - } - } - return nil - }) -} - -var _ = templruntime.GeneratedTemplate diff --git a/compose_production.yaml b/compose_production.yaml deleted file mode 100644 index 8e3de29..0000000 --- a/compose_production.yaml +++ /dev/null @@ -1,34 +0,0 @@ -services: - reverse-proxy: - image: traefik:v3.1 - command: - - "--providers.docker" - - "--providers.docker.exposedbydefault=false" - - "--entryPoints.websecure.address=:443" - - "--certificatesresolvers.myresolver.acme.tlschallenge=true" - - "--certificatesresolvers.myresolver.acme.email=screenchok@gmail.com" - - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" - - "--entrypoints.web.address=:80" - - "--entrypoints.web.http.redirections.entrypoint.to=websecure" - - "--entrypoints.web.http.redirections.entrypoint.scheme=https" - ports: - - "80:80" - - "443:443" - volumes: - - letsencrypt:/letsencrypt - - /var/run/docker.sock:/var/run/docker.sock - portfolio: - labels: - - "traefik.enable=true" - - "traefik.http.routers.guestbook.rule=Host(`moshariri.com`)" - - "traefik.http.routers.guestbook.entrypoints=websecure" - - "traefik.http.routers.guestbook.tls.certresolver=myresolver" - - "traefik.http.middlewares.forward-auth-headers.headers.customrequestheaders.X-Forwarded-For=true" - - "traefik.http.middlewares.forward-auth-headers.headers.customrequestheaders.X-Real-IP=true" - - "traefik.http.routers.guestbook.middlewares=forward-auth-headers" - - "com.centurylinklabs.watchtower.enable=true" - image: portfolio:prod - restart: always -volumes: - letsencrypt: - diff --git a/domain/experience.go b/domain/experience.go deleted file mode 100644 index 031c901..0000000 --- a/domain/experience.go +++ /dev/null @@ -1,83 +0,0 @@ -package domain - -import ( - "fmt" - "time" -) - -type Company struct { - Name string `json:"name"` - City string `json:"city"` - Link string `json:"link"` - Logo string `json:"logo"` - Description string `json:"description"` - LocationLink string `json:"location_link"` -} - -type Stack struct { - Name string `json:"name"` - Logo string `json:"logo"` - Link string `json:"link"` -} - -type Job struct { - Title string `json:"title"` - Description string `json:"description"` - Objectives []string `json:"objectives"` - FrontendStack []Stack `json:"frontend_stack"` - BackendStack []Stack `json:"backend_stack"` - InfrastructureStack []Stack `json:"infrastructure_stack"` -} - -type Experience struct { - Company Company `json:"company"` - Job Job `json:"job"` - StartDate time.Time `json:"start_date"` - EndDate time.Time `json:"end_date"` -} - -func (e Experience) Duration() string { - end := e.EndDate - if e.EndDate.IsZero() { - end = time.Now() - } - - duration := end.Sub(e.StartDate) - years := int(duration.Hours() / (24 * 365)) - months := int(duration.Hours()/(24*30)) - years*12 - - label := "" - if years == 1 { - label += "1 year" - } - - if years > 1 { - label += fmt.Sprintf("%d years", years) - } - - if label != "" { - label += ", " - } - - if months == 1 { - label += "1 month" - } - - if months > 1 { - label += fmt.Sprintf("%d months", months) - } - - return label -} - -func (e Experience) GetStartDate() string { - return e.StartDate.Format("Jan 2006") -} - -func (e Experience) GetEndDate() string { - if e.EndDate.IsZero() { - return "Present" - } - - return e.EndDate.Format("Jan 2006") -} diff --git a/domain/project.go b/domain/project.go deleted file mode 100644 index b0d04d8..0000000 --- a/domain/project.go +++ /dev/null @@ -1,14 +0,0 @@ -package domain - -import "time" - -type Project struct { - Name string `json:"name"` - Start time.Time `json:"start"` - End time.Time `json:"end"` - Stack []string `json:"stack"` - Description string `json:"description"` - Thumbnail string `json:"thumbnail"` - GithubLink string `json:"github_link"` - Status string `json:"status"` -} diff --git a/go.mod b/go.mod deleted file mode 100644 index ad75994..0000000 --- a/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/moh682/portfolio - -go 1.24.0 - -require github.com/a-h/templ v0.3.833 diff --git a/go.sum b/go.sum deleted file mode 100644 index bbe292f..0000000 --- a/go.sum +++ /dev/null @@ -1,4 +0,0 @@ -github.com/a-h/templ v0.3.833 h1:L/KOk/0VvVTBegtE0fp2RJQiBm7/52Zxv5fqlEHiQUU= -github.com/a-h/templ v0.3.833/go.mod h1:cAu4AiZhtJfBjMY0HASlyzvkrtjnHWPeEsyGK2YYmfk= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= diff --git a/main.go b/main.go deleted file mode 100644 index 5d1452d..0000000 --- a/main.go +++ /dev/null @@ -1,113 +0,0 @@ -package main - -import ( - _ "embed" - "encoding/json" - "fmt" - "log" - "net/http" - "strings" - - "github.com/a-h/templ" - "github.com/moh682/portfolio/components" - "github.com/moh682/portfolio/domain" - "github.com/moh682/portfolio/middlewares" -) - -func templHandlerWithOptions(component templ.Component) http.Handler { - return templ.Handler(component, templ.WithStatus(200), templ.WithContentType("text/html")) -} - -func rootHandler(handler http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - handler.ServeHTTP(w, r) - }) -} - -// SafeFileServer wraps http.FileServer to only serve specific file types from specific directories -func SafeFileServer(root http.FileSystem) http.Handler { - fileServer := http.FileServer(root) - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - // Set security headers - w.Header().Set("X-Content-Type-Options", "nosniff") - w.Header().Set("X-Frame-Options", "DENY") - w.Header().Set("X-XSS-Protection", "1; mode=block") - - log.Println("assets handler", r.URL.Path) - log.Println(w.Header()) - - // Only allow specific file extensions - if allowed := func(path string) bool { - allowedExts := map[string]string{ - ".js": "text/javascript;charset=utf-8", - ".css": "text/css;charset=utf-8", - ".png": "image/png", - ".webp": "image/webp", - ".jpg": "image/jpeg", - ".jpeg": "image/jpeg", - ".svg": "image/svg+xml", - ".ico": "image/x-icon", - } - for ext, contentType := range allowedExts { - if strings.HasSuffix(path, ext) { - w.Header().Set("Content-Type", contentType) - return true - } - } - return false - }(r.URL.Path); !allowed { - http.Error(w, "Forbidden", http.StatusForbidden) - return - } - - fileServer.ServeHTTP(w, r) - }) -} - -//go:embed assets/json/experiences.json -var embeddedExperiences []byte - -//go:embed assets/json/projects.json -var embeddedProjects []byte - -func main() { - server := http.NewServeMux() - - // Serve static files with restrictions - staticFS := http.Dir("assets") - server.Handle("GET /assets/", http.StripPrefix("/assets/", SafeFileServer(staticFS))) - - server.Handle("GET /about", templHandlerWithOptions(components.AboutPage())) - - var exps []domain.Experience - err := json.Unmarshal(embeddedExperiences, &exps) - if err != nil { - log.Panic(err) - } - server.Handle("GET /experiences", templHandlerWithOptions(components.ExperiencesPage(exps))) - - var projects []domain.Project - err = json.Unmarshal(embeddedProjects, &projects) - if err != nil { - log.Panic(err) - } - server.Handle("GET /projects", templHandlerWithOptions(components.ProjectsPage(projects))) - - server.Handle("GET /contact", templHandlerWithOptions(components.ContactPage())) - server.Handle("GET /{$}", templHandlerWithOptions(components.LandingPage())) - - // 404 fallback page - server.Handle("GET /", templ.Handler(components.NotFound(), templ.WithStatus(404), templ.WithContentType("text/html"))) - - // TODO: add Blogs to my portfolio website - // server.Handle("GET /blogs", templHandlerWithOptions(components.AboutPage())) - - fmt.Println("Listening on :8080") - log.Panic( - http.ListenAndServe(":8080", - middlewares.Combine( - middlewares.Logger(server), - ), - ), - ) -} diff --git a/middlewares/combine.go b/middlewares/combine.go deleted file mode 100644 index f87dd58..0000000 --- a/middlewares/combine.go +++ /dev/null @@ -1,11 +0,0 @@ -package middlewares - -import "net/http" - -func Combine(nexts ...http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - for _, next := range nexts { - next.ServeHTTP(w, r) - } - }) -} diff --git a/middlewares/logger.go b/middlewares/logger.go deleted file mode 100644 index aa314cf..0000000 --- a/middlewares/logger.go +++ /dev/null @@ -1,34 +0,0 @@ -package middlewares - -import ( - "log" - "net/http" - "time" -) - -type statusResponseWriter struct { - http.ResponseWriter - status int -} - -func (w *statusResponseWriter) WriteHeader(code int) { - w.status = code - if w.status == 0 { - w.ResponseWriter.WriteHeader(code) - } -} - -func Logger(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - ips := r.Header.Get("X-Forwarded-For") - rw := newStatusResponseWriter(w) - now := time.Now() - next.ServeHTTP(rw, r) - since := time.Since(now) - log.Println(r.Method, ips, r.URL.Path, rw.status, since) - }) -} - -func newStatusResponseWriter(w http.ResponseWriter) *statusResponseWriter { - return &statusResponseWriter{ResponseWriter: w} -} diff --git a/ts/package-lock.json b/ts/package-lock.json deleted file mode 100644 index e79fae1..0000000 --- a/ts/package-lock.json +++ /dev/null @@ -1,1521 +0,0 @@ -{ - "name": "ts", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "ts", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "motion": "^12.4.7", - "motion-dom": "^12.4.5" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.2", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.2", - "@types/alpinejs": "^3.13.11", - "vite": "^6.1.1" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.2.tgz", - "integrity": "sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0 || 14 >= 14.17" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz", - "integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "@types/resolve": "1.20.2", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.78.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", - "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-typescript": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.2.tgz", - "integrity": "sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.1.0", - "resolve": "^1.22.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.14.0||^3.0.0||^4.0.0", - "tslib": "*", - "typescript": ">=3.7.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - }, - "tslib": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", - "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.8.tgz", - "integrity": "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.8.tgz", - "integrity": "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.8.tgz", - "integrity": "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.8.tgz", - "integrity": "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.8.tgz", - "integrity": "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.8.tgz", - "integrity": "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.8.tgz", - "integrity": "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.8.tgz", - "integrity": "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.8.tgz", - "integrity": "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.8.tgz", - "integrity": "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.8.tgz", - "integrity": "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.8.tgz", - "integrity": "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.8.tgz", - "integrity": "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.8.tgz", - "integrity": "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.8.tgz", - "integrity": "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.8.tgz", - "integrity": "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.8.tgz", - "integrity": "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.8.tgz", - "integrity": "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.8.tgz", - "integrity": "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/alpinejs": { - "version": "3.13.11", - "resolved": "https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.11.tgz", - "integrity": "sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/resolve": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", - "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/framer-motion": { - "version": "12.4.7", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.7.tgz", - "integrity": "sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==", - "license": "MIT", - "dependencies": { - "motion-dom": "^12.4.5", - "motion-utils": "^12.0.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-reference": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", - "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/motion": { - "version": "12.4.7", - "resolved": "https://registry.npmjs.org/motion/-/motion-12.4.7.tgz", - "integrity": "sha512-mhegHAbf1r80fr+ytC6OkjKvIUegRNXKLWNPrCN2+GnixlNSPwT03FtKqp9oDny1kNcLWZvwbmEr+JqVryFrcg==", - "license": "MIT", - "dependencies": { - "framer-motion": "^12.4.7", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/motion-dom": { - "version": "12.4.5", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz", - "integrity": "sha512-Q2xmhuyYug1CGTo0jdsL05EQ4RhIYXlggFS/yPhQQRNzbrhjKQ1tbjThx5Plv68aX31LsUQRq4uIkuDxdO5vRQ==", - "license": "MIT", - "dependencies": { - "motion-utils": "^12.0.0" - } - }, - "node_modules/motion-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", - "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup": { - "version": "4.34.8", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.8.tgz", - "integrity": "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.34.8", - "@rollup/rollup-android-arm64": "4.34.8", - "@rollup/rollup-darwin-arm64": "4.34.8", - "@rollup/rollup-darwin-x64": "4.34.8", - "@rollup/rollup-freebsd-arm64": "4.34.8", - "@rollup/rollup-freebsd-x64": "4.34.8", - "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", - "@rollup/rollup-linux-arm-musleabihf": "4.34.8", - "@rollup/rollup-linux-arm64-gnu": "4.34.8", - "@rollup/rollup-linux-arm64-musl": "4.34.8", - "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", - "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", - "@rollup/rollup-linux-riscv64-gnu": "4.34.8", - "@rollup/rollup-linux-s390x-gnu": "4.34.8", - "@rollup/rollup-linux-x64-gnu": "4.34.8", - "@rollup/rollup-linux-x64-musl": "4.34.8", - "@rollup/rollup-win32-arm64-msvc": "4.34.8", - "@rollup/rollup-win32-ia32-msvc": "4.34.8", - "@rollup/rollup-win32-x64-msvc": "4.34.8", - "fsevents": "~2.3.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/smob": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", - "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", - "dev": true, - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/vite": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.2", - "rollup": "^4.30.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - } - } -} diff --git a/ts/package.json b/ts/package.json deleted file mode 100644 index 09b783e..0000000 --- a/ts/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "ts", - "version": "1.0.0", - "main": "index.js", - "scripts": { - "build": "rollup -c", - "build:watch": "rollup -c -w", - "dev": "vite" - }, - "author": "", - "license": "ISC", - "description": "", - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.2", - "@rollup/plugin-node-resolve": "^16.0.0", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.1.2", - "@types/alpinejs": "^3.13.11", - "vite": "^6.1.1" - }, - "dependencies": { - "motion": "^12.4.7", - "motion-dom": "^12.4.5" - } -} diff --git a/ts/rollup.config.mjs b/ts/rollup.config.mjs deleted file mode 100644 index 6f0b8eb..0000000 --- a/ts/rollup.config.mjs +++ /dev/null @@ -1,40 +0,0 @@ -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; -import typescript from "@rollup/plugin-typescript"; -import terser from "@rollup/plugin-terser"; - -const parseConfig = (input) => ({ - input: `src/${input}`, - output: { - file: `../assets/js/${input.slice(0, input.length - 3)}.js`, - format: "iife", // Changed from 'cjs' to 'iife' for browser use - name: "navigation", - extend: true, - sourcemap: true, - }, - plugins: [ - resolve({ - browser: true, - preferBuiltins: false, - }), - commonjs({ - include: /node_modules/, - transformMixedEsModules: true, - }), - typescript({ - include: ["./src/types.d.ts"], - tsconfig: "./tsconfig.json", - }), - terser({ - format: { - comments: false, - }, - }), - ], -}); - -export default [ - parseConfig("navigation.ts"), - parseConfig("landing.ts"), - parseConfig("experiences.ts"), -]; diff --git a/ts/src/experiences.ts b/ts/src/experiences.ts deleted file mode 100644 index 244103c..0000000 --- a/ts/src/experiences.ts +++ /dev/null @@ -1,16 +0,0 @@ -const { animate, inView } = Motion; - -inView( - "section div", - (element) => { - animate( - element, - { opacity: 1 }, - { - duration: 0.7, - }, - ); - return () => animate(element, { opacity: 0 }, { duration: 0.7 }); - }, - { some: 0.7, initial: false }, -); diff --git a/ts/src/landing.ts b/ts/src/landing.ts deleted file mode 100644 index 599a1bc..0000000 --- a/ts/src/landing.ts +++ /dev/null @@ -1,43 +0,0 @@ -const { animate, stagger } = Motion; - -const experienceCountSelector = "#years-experience"; -const languagesCountSelector = "#languages"; - -const yrsExpCount = document.getElementById("years-experience"); -if (!yrsExpCount) { - throw new Error("years-experience Element not found"); -} - -const langCount = document.getElementById("programming-languages"); -if (!langCount) { - throw new Error("languages Element not found"); -} - -animate(0, 6, { - duration: 1.5, - ease: "circOut", - onUpdate: (latest) => { - const yrs = Math.floor(latest); - yrsExpCount.innerHTML = String(yrs); - }, -}); - -animate(0, 4, { - duration: 1.5, - ease: "circOut", - onUpdate: (latest) => { - const languages = Math.floor(latest); - langCount.innerHTML = String(languages); - }, -}); - -animate( - experienceCountSelector, - { count: 5 }, - { duration: 1.5, delay: stagger(0.1) }, -); -animate( - languagesCountSelector, - { count: 5 }, - { duration: 1.5, delay: stagger(0.1) }, -); diff --git a/ts/src/navigation.ts b/ts/src/navigation.ts deleted file mode 100644 index a1ce10a..0000000 --- a/ts/src/navigation.ts +++ /dev/null @@ -1,32 +0,0 @@ -const { animate, stagger } = Motion; - -const navItemSelector = "#mobile-nav>li"; - -document.addEventListener("alpine:init", () => { - Alpine.data("navbar", () => { - return { - isOpen: false, - open() { - this.isOpen = true; - animate( - navItemSelector, - { opacity: [0, 1], x: [-50, 0] }, - { delay: stagger(0.1) }, - ); - }, - toggle() { - this.isOpen ? this.close() : this.open(); - }, - close() { - setTimeout(() => { - this.isOpen = false; - }, 300); - animate( - navItemSelector, - { opacity: [1, 0], x: [0, 50] }, - { delay: stagger(0.1) }, - ); - }, - }; - }); -}); diff --git a/ts/src/types.d.ts b/ts/src/types.d.ts deleted file mode 100644 index 8b99271..0000000 --- a/ts/src/types.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type motionPkg from "motion"; -import type alpine from "alpinejs"; - -declare global { - interface Window { - Motion: typeof motionPkg; - } - const Motion: typeof motionPkg; - const Alpine: typeof alpine; -} diff --git a/ts/tsconfig.json b/ts/tsconfig.json deleted file mode 100644 index 2eead27..0000000 --- a/ts/tsconfig.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - "moduleDetection": "force" /* Control what method is used to detect module-format JS files. */, - - /* Modules */ - "module": "esnext" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. * - "types": [ - "./src/types.d.ts" - ] /* Specify type package names to be included without being referenced in a source file. */, - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "rewriteRelativeImportExtensions": true, /* Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "noUncheckedSideEffectImports": true, /* Check side effect imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "isolatedDeclarations": true, /* Require sufficient annotation on exports so other tools can trivially generate declaration files. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": false /* Enable error reporting for expressions and declarations with an implied 'any' type. */, - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "strictBuiltinIteratorReturn": true, /* Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -}