Luke Jones

lukeonline - commit ddfc2e3

refactor: table componentddfc2e3b0ad46303ef319c28dfdd525eeb01c949Luke Jones<luke.jones.2567@gmail.com>2026-07-21T18:45:33+01:00
diff --git a/public/photos/thumb/1000.jpg b/public/photos/thumb/1000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3fdbd8c54410ffcf1ab6628a19d7e03bf21ef922 GIT binary patch literal 3306 zcmb7``8(8&8pgk4W*BQGgkw|~*>_>GWM@novW%tG7Q&k~OL!?uLo<vJF@$%rXWx<~ zMJO|tks4cw7w=>w$p}a1I_D2K_jUjF-1p~tp5LCssl$0d(8dyN34o5I3{nPwLk3_5 zfH^pR`$&)@Lt#)T1OnyZ;^Kty@$m8S^6>KV3mg~Z7k~@!@(P|1gbN9ah=}kV6BRol zEOuO2MEExZ1U~9OpxjU>w=h31zwrO9!yW(*18f0XFi0BUfP=tr(BW$U0RZ5mT>&ug zKS4RUATTfh;y9Y>3IZG;Fqi|%!2#m}{Z4>5jt+ox9+v_%xP(mXZwO1nf<<IBO%pPo zva~LF)c1~lK5<l(00A8T;r@>bK%ijGBgAj2IvfB&KpYS-l>5Kq-)XoM<TzAF<A@oo zc|;o(7Lg9A@BPf$Jp2UkfsYb!FdR4!MA_KfpLP8ZqzQPR|G*A=8C+$(^sc-@6;me= z`JG9|Ud!K=ZG2~kL-Vk$HRKTNLqN5&W}WRI`z6Wy@(OQz%fZ#%A8QYk3Vk%?@0S}C zh-@~Wqw>5lG_Y+=3fD)U;-Vb_CzG9RWz7!(kNS-H)J`fkfV|J!<!phe`CLaI@%^=C zg5x8RW$g<G43lRyHONm+VVe0-Rn_Gcl+^2(cAXUxr=g~`*arDtjyPH(^Wr$QNsz(S zr=-%-^NyjY@J2o(NTP@@hV5D6LxpM$AU%W&T{Lxbv(oRNn6w$g3TA%Gob!)7x%lF8 z_RX_k6w+%xJ@I_wD7U}Ea0XqbYpbqYvi<vkWXwN%0+x0`1k2-N@<|)=6xYnLnrrc@ zY3Y2M)T>me*gaJLW)Z7@!^6t3Lr7`7li|CN8(R1F6G)D65G`~&>XLVcOqHch9n4zX zs5@_+5U)6*Hp(9)>CApHOrw1Ar8gLxKRT(gKF8ipEX6sS5$j|MzEV+#KtPz0&D!8n zs+imsdN}I#Vx)MFICEpNBQ4Oqg-H<aTJSPBxF&gwO1hw)trU>PlTaSuy!Yxo&P>F* zxK`TD?^te2iF8?YS~CHBo#hmq&R00)>V_TV>yOtgV7>X*aoP0Dw*!0O<Zky#s&=r; zMhRXvn<Un%!1D~o@al!P&n#b8Sb`dajw-s(*zzq;Q}DHUX3+c`h_T1KypszJlq3fY z&6Pm{(KNlTWFd)W$hYM>UjDh|oq`qds`?x))Atn2vuoJ7y@RUtRBh&Eoqel{>tuh7 znYJCwZzivhB`Oug=zV(#5J=BE@I?;qaevir(_561LU}%ki@WI(d4ItBg#`!1cXrl` zRd&jrmzClvbm;JK;j>@|^}aUCsmFSZoj?>~QO00fV)E1jC8HX;<JJ}J*V@r|GD&TW zm_o=WP&9`|`*yq+Q5M5Ln2a*oD(d~Mw0~MF8*g_>Pkry_Q2xHlz8~}IAz!|zsT)&$ zxPc<HEu#L)oG67PhiD~gkWh;!_fb|Vl6M{(<-2*C<qXYhAUyTf^A+yeL^gld<;ka> zUAj#?!+gq#m26uXuRM!;(9&NMf36a%|I4=c3)-;FsC#EZEhY5Zdb4tYN|xSWXByMQ zZjCwafKAPCGMzuB{w8Ul`ww#J$M4hOMqUk%svLSAf(Cbu4uRQod8=xoflbX>H*!iU z7{2g2NHmCgV=g`XcI%w-*eJ5`mG7iklMP^bgJFPxZ|z4fM#gm9i>tWMDHr4sTLj+5 z=(@woS|4~OQ=SAQYP&`9y_Zr+>Y)NRv;O9c9?RFPPH(EQvtD}2xR+HxjC+W_VtA4@ z)*;1pgAn^}oxB9kJOm0O5Aw=CQBL@nY83W14sKIT<4&|SFOaOpk0}%I;ZFQcKIIK| zS8gdce~Qy3kz*@wgd-byQgd`XINy%+d+3F>9q&ncsZx1=N8*vv4->3RluSs6w$zY< za?+!Elpa;-E#hR3_QT0rZ$8mjBYtiTD4G1Sc`Nf5can@vwv6Z~Mr&br1W0O@8P~)t zO~$W^DBmVgdB(+_=H|?L^;<4niP8gf@6H#-yO-^a+rDHa53zjHI)pzPdo3q<(X<QR zjl?L|aS1-Y@#4LTveAVxTM3GHsPt)jf|UU~Brcj9`JlLTVgnb_u#b8Hn|^zzDr)F_ zBr)!oq2`-wm?foQd6;^4RgZ_hpw)gb0pBNEQ|_#FS;6HTlw`4&Y!%oyzDV09tZsYg z1_^9)wK?q@jNpw~xKpzMWA>wicGY9n_jQ(oFgJ|~6|X!;hdkf9&<0UVZ{dl)o=JD# z<n_I0?f;1M!F5|W7k0n<BHpx&fzL3U$ShijF8!(WnVeI}TAp)=X{1dDY2}sWxTQKS zMWy(E{fUTIqf%5eA70OG=(K(P1i|57_a(PCQ2dX!sncz{!}jnDhu0)Ta@Grh=^v8r zHHSdSnGQxEJ=-)&vB*ElzSd>_3(O#hIilCQigSGv#OgDTwIJmy+8|Ygg&!@#`@i0? z9#|?6AQ?b9aWl={7t5=pZS*f;&gxY_@c0Mt(miZt@w5vuVPo9-VI63q!d*SaJRA4% z>V~y^`7K{*tI(i4Y4g}FuT1rT*pK}tT=m<Mkf+@ay}VU@YI&VY*7%=4spmhg1`U=g z`b_MIt7^r%T}BcRO@E3_BPeu4;C#g(Rc0xSt}f(gQ-RepKh0_3%)iw`E#9Cy5u{EI z?%wOD-E?W8w&CkUB_`JP$SGA%Y!<*ccKg~FJQ~T)hDB(md?X1XyyL8%u4UR+`fjV{ zBvUYXrP+C_KExqzA)S6Hu!4RMOajG~0n@u&h4WK!t$vPG>FC8pSNWwKG$?b+=uH)q zA}VttzH05wY>v~Pur{s*Bq%nEbeel-BmL##Rc``;J+^;2o=S$?W7LG8t#dtR0!qze zOrQJKX{@X-JGQ=nEDm(%*kROCCo!Z8&1W@xD!VJWdp%jPgUsFUAA`CbCK>s@eooS2 zPH0))9|?o~v60mCk`CYJQjAVn)?;+ip5+)rjI|&4pC4UTHQWp9UZ6keQ<3s#52tTW z`Vkq}i_(6h54f04h|sU@go8q#4l=h!t2zhv#ot+lLJe*vm;YLzuYX_es>!~o>0V<t zG~HPqE(SK5^+eoN!^KKqENn}vBX)ykoh~=olj_MbLmQ|?)LzOCxmc8!KQ`#TYefyy z^$-|!+O!Ah`+1^aukQ<hHB`t`lI+!UYTWB&vM!~={cEDOlNrAo<(DcA-ScyIeZ#5j z32Ca7u+}B=VIiF!Do~iw6!tvhz;Wkw^ey_1U0>N`O{M&-_3J1-)s(DsgjeYLDqYvs ze{x(WnqezjH1tg&j;xieXBi-fo7y{w+rOw9q2H3%Jw~(4LdOuovd7MB4fSifc!v@e z!Ce>iS12zXD%Ta2eaMx>)mwb{uS9O;dg8}nfgvtP%+`l#71GoS{*z)S`%HACY#vQ? z{%lLUG11rNOwPIC8i!$t+iTBvO4@F`T``C`dS_;|oNoD$oc;CuMY_EQ(?ibRVNCC= zlwIK$34EW_B6{}3&j_mCRafb0)6D~lL&AZR+=oi*#$jdu(dtd95e|#hEaEC5VL>zy z@H*YrRDxc8nYe~G6f#VFvRc~g{)scqFZ@q)*JDVb>ANds>;3n}B09oIerwWsz59;G zAAFnL)$8YsA=mrQ;38hw%2(7xJk(Jm6$M11_UArt(D1%*oKRMN0;7qTJBGcBlD-S< zrz}%;)tGaEa9K@e#K9c>QqIQLq3MIj?Z3}nOVYlx;uf`W;-1aCR_QBCY7oMclCK~h zxA`M6B}wjA`wH?`yz0wawQ9DA5TyDyJT)7ILS9E~9s)1JNYUBzO2uYj)X&c_E*@uN zN;*0OrOR4{;fr5PsC&UQtYCF?zoC@};iE^Qq`J37tqDdrRPhhs(HvnoYc0C!XYgMN zYT?bfJgmk6%+3I|5qyWTI87ubOsWYP;PT&niwaZzdb@bvlGgr{mo_{4^bsa_LP2*y z?KSVUqz}=zbncJMI)>ZFj@jGqCYy3a1e35Mu~<7riL2$C(yZ~c%ac<SiS*{GW<gJ6 zbu6RE>=(Oz-8Q_kw!Tbby4-I<tS6!s*#Hb@?w}02&ON57Ec>(9@Gk~yN%@A$s0y0J z>6y1uxBKe;nK481XYai=x6mr}=`WBY^4vX9I-2W0?qA(Lab@Geze+629cS$$J=?9# z#e*~wm{StYWknbK&=r6C{5hxUp-vAOMnlo*i%G+^qV;-q`b%3=xX%asm`eG4PypsG zE0M46!n;#kt#dg8b<@VHv`Bu8-56GcUaF~oLi18pBVq-)6tgYwD<)-r`N~ZE;m3ai DkcJt= literal 0 HcmV?d00001 diff --git a/public/photos/thumb/2000.jpg b/public/photos/thumb/2000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff3366cc2dc82641bb981921aeb621b041f9182a GIT binary patch literal 15198 zcmbumbzED|7bYCsOQE>7xEFUV#arC9xVuAe_W}h9MT(W;MS>TX;t;I3JCp<s5a3O} zKiS>SXa9J2caoWT?%XqT=gFCyJ2Us3r{7N-fal8cO7Z|CBqV?$;sbcv<UN)1v$p{N zl$6*2m;e9(3xJP=j7R~107QI_z$Az~5)mno&;Uq?JO>de|BZ_fm<0*tpK@db=J~gL z1p@OTFcBi}M#LA$|3k(;2K68LSw#5=qCt5bWhHr~ckdC%-o;wo-cQ%w+Sl6SrLMIH zmjD;f-){aR|DXJSFU8Bv%O}diEy^SKl9yK$@#PT&U;_XjF#xED`rN#{JSZRk)gMj7 zHBtYKZ4ekK^<Oebh&}?-FaW#=`GCJfzy7-}4>vc`*MIf@Z!z-MfAt@L0sx@=PZ;gr zxazMEBD_Qd(SN@G1^?T!|M15})cN}x{^zQE+<@oE|LBD6Z*z#Cs;2o~=G{w#6cQr- z<)tYij6naX!Oi_w3LSv*Z;hZMj{c)HGDOq=(b`J{{-3pmg#0f?EQoUCf8(G3v;_c! z!m$C*ng2)r^!sTUFaSVC3?U?>zbP^zprE3lAW}3`R1{QnG<5X85d#w&69WSa105X` z2MY@u8wUpm0}~ey7Y7dkvHw;>LDWD&LBqyC$H4wS4*y*C|D}PaexxFV^3nbw@^6(P zjuBkY5PiqO#(9n)iJ*mwf`;IQI1}`DfS?kf5x(M)L4ToPjzQ;6#2c1ch)MsZu7_B2 z8p6P5;Sr97O+rdWPQl2;%)-jXFCZu+EFvoVR!&|)QAt@#TSr$<-@wq)%G$=(&fdY( z%iG7-&p#j{GAcSIHZDFb{ZmF}*5~Y;qT-U$Z)M-hE9x5>K~2pqt!=%1{R4wTzlKM^ zGqZE^3%?haHn+BScK7xV4v(Pc7nfJpH?Z3~B!ue!6aEf`|Ah|$f)Dav4PpG{gM{q+ zmn;D)+AAJ(LKzJVbN3f?ykVF`Z&C~Eda&sEG$F(m9@E$)4E&pn(7%-aVf6oxQ2759 zqyG~6FQ2Dw00Abz5AYQQ=@kH(011Tv`DqD&i-H*b1SkXmDZpdM!B_nDu8jm5k!A>2 zD%4lqjBrig<cl+PQT!CuMA#Y0yZi_{x0O4J2SJ!hl?m|OoPfHwqe?=MpkmRdL-&fY zA&XQd9T_VW&fzQJOQ@rT?bV!8tuJ)x2>{vuBJQkjk%8u-&=t6}{}uMy4AK=NkS)$w zvT8Cajw`FeZznIh>xRUhCPlU2`3<PqG3Rysg?YLp=eLU)n_{vuQn;FW%YK2eo-c<Z zGo=ANxRfDdb9!k=&K*iWAX;I+B=;?!<7?epeenC50p*XlpNHv*fBOZ>LNH>1e4duy z4gG?ZY77iQ-NNOmH9kR)$NkBEJ?OB2UFQPUhDwUBO2;)`pMw`fzPz{Htc?NL0maJw zct_-uwX*raeIuryje)I|nKZ&MJ@*PTdkU+zPk62$Id?zwTX~5*W|YlBiAlw+z3%_G z4T41R<Vz@m=7)$k%t-y(hiHTrywqZY(USY#HF-7HwM|HZ6R}qGY2O8CNAy0TK+0mP zF41Q4z>H~%TqR<uUqo0xdZ<40ulYUWmBr>;H~qf+D045VE35|ot3!!7#l<{X>DN6y zTLsB+L$Z6Kccoz4pVDGSDRU@VRN|8Fm~`_BSnQd<?85i6_sotBHZwl*HtmqwP5dO# zA#)o<`^W0atL(TOMb4FQEJmFl`o3FVThCp+5BcA}R!g+MvwA!1Z`ta}+O4w;mnGjX z73K$>Ff(1g1Oqv@?5+r2&NS}w7Vsb8NAQqOjJN(G`-2y(AJQ}Cv-HUmPToFilQdSl zrH<=AH2RQ<Z`KP+y#1E_X(o~4AXs0+#Fk7$n)X9T58EZqd$o74q$-nl8~Pzu!Mg+{ zd<;oGRZ-F}6Fod<$ZNaAQMU1Efviye3pguet+>=a%h!Ev)zRIc@%r2z`qt+|McTP? zurz>7^F1)xlI;_8LVMjdc$ib|<Cw!lw5Sd}yWwhA)?}CL^cDVc<)%(%yFG`Sk;C0X zKhF?HfH9#Q=WJT&B*_Y~NijA)$51G`heX!qWWUJcE4WA#lqRm2Uyq<J-dT|OLK)ca z9~iUtE?m|!A9V1+9o#>=o9hL7Fe^OXZOt=&cgu`p-{t#Yd~h||JhRa_yFdH#$9suP zrJ}%al)N%PVp4aAuS6wI|59}A_u&tn#1~hbl1I!IsUrj>NMRT9@;=Cl^y#M6dPLW= zcUU!sz!{(9;oI!H-Mxs7B$a#50ZF#@h96PBw^<&yZdk}}1l&S2ipMZL6-fKQ8pgt9 z9H^Rxm3isDbB67QeH&F2y#!1$qgr?*Z(&ROsI4xAPfg|ZTOVKCtod>DjNrO)zBmSV zl#KI1sf03=CQpM$@;QzUIcSK{v{x+n=r#U9t+zYhKvdMcPys=Hrwyu=<pKt{L;RlX z2bqC|Sg`G?pLdjgB3LWu#vWYBd^oaQHlak#un>@3SM<I};aeYr9#0G~_0tNk3`XIp zt`{}(`3@uKl4A(PJXMcPf>#t8f0kH_I+<LJh7FEi6wE3eSrhGC5GVCU&6K1NQna*S z0!5Yj4R6%UVE__6Q`HaC97KaYVO1Y`^l%>91ANWeM98UQB-qT@jgH>9JiZOc%xr3C z{KlSUhS!S8R=MCJ_6&3@^aQ|=ShCYtg%fpxnY9>);0*a*%6@O8>Y+nUJM)cZ{ONR{ zS%X^zIbSLnIY3a{696?Sh!d!^)l=(NboQ>^z^mDx)9Ni{Xorq3uH=Wp&l?1}xqDsm zl2kx-s7qYg(H(On(7*Ipv@1$o)FjHbsZ&mznQY8Khx_-ziY@VZ>lKX>$2*f;!-K1t z%Q|R>nw*ZZir?9{<Jmqi{PpG&AX)U~d<Owk=pAHruiV?&t@69b>NgXG{e&+XQ6|$V zf)dFh!t~5tAV1RH0<>W4pqRm|5GtoLaf>FO>9wELr@c$-s+EmRt3AdayR8!4b5U~E z@iRn}EGU7s+MwyRV+eStIm_B>V_Re5Xt=aup%`u`5z?LGQwV(_KkM2NwCRYW2ye=G z%~d3q@aGR9UjI2@XU9X0cwY<X|L{dq*qd5yJ2_0^PkP%TTIu9iY7FP^i@ZKzDof%s zE%%yR-S5{tL|P36`T1=$S&$t+wLw#i0-e^*#(Aa-rKZ-dw{}*VNQspnHbQ?(ymx?= zb!VQCYC#%#K$j{6e#Nh;+rN?pOAmUu34j0Mo^Hh8H50F)^!iO_GgINld%7n;KWQg> zOX>&tkB2u7MeI7-!~NN)*V}6yfty38ti?bf2!3LR?6$KeHM1791YD%Vi=oJ=;=<Zk zzG6(2;<A!~8<+@OCo*3XOmwT8RysbHGJ{OMPI}kHH!xw`d1AkMke0re-c_P83nzPM z5hvX`qgnQ29wHgH_b<0mq1MDq=nHmh86*;<WJX067U>bL4PK~z{c`@qb_OWpYweVr z_8wJ+atzhdl0?&IKNpua;IzlW+LSl3Iicb7C^#_Bx?r&-L0&JRUG*_!p}f@E{yQV+ z@tb$T{l{s1uC?t^IXUtb^eKD^4^RCZl5*F;jmFLeD}(sP3dSa3b(H6%d$%cSgKgV* zE|aX|N+wvF80q?8BhA!3AA>|klHLkva#Fa|1pB$!<FmYm#)g6oj~=`Z4<4w@$2Wya zB49UFDGG3egA#D;xMXWdivFNhdJ~%k<v{AU*npv43=>qYZq7DFw@r|41dM7UBu(C* zFa!ua@=&WayqCImU#NBsW*ew5^xN7qaN*dgFHlk(Mt>87R5D4+4IspqjfXZEwWws9 zvK#qMK^g+w-7~J*<^n?WL|xGw*71QD(2t|rMwnL*`2FF2Cj!*EGDJS$62BnHeGWoF zlhO#37)s@R2K**TY&ZwxEDHFF_$oU4!<0kJsU~N8NrKg`&O6M$m^h#C>V=#o0m5D_ zb>~X<0D;mc0R8V@w+`wtUTOEKM}}vKbW`F;{#CGirsN40ssYNOmJ#gJP0`$3Y=~4? zSA%V|0OhLdfbFJGjEgsW0w~+XyJfm4!J}AI{)^ElfNCRzV6S2H&`|TsVQGpZG1FF> zME>qzU73lWuPUUe)SL5@Bl7BDG-D{2%rcdOHun)<BJ|KOASSXyc1xu_@Sb$G%A4#Z zlJjYZCq+^}J`WMR9}sZ4v)7&{JojGZkMOq0Ois@I<jW^Ocm!MvYSv8~qYHjt_;arM z2=ff2{s*rltca!VyOenHH)$N?RzMxu{zc$c*Qr>I->5p+8j2BFopXLGeoUE_rorG4 z6`Rx@RC22ArcEMgajxV5b)RFMd_kdZSX#T+g>u!2SDsj$x>csb9R2BfdCi`=soJ3? zKQG1cq2Q4f=r}LQ4wszjFyQPg7tCOYD?2<Npcry?3<cK^$jcCt4BwaSuOO#MsddnQ zhk^I}YZ<0CbL;{7gy);7zj4tmBrT7Z8b*p~9S!a8t7}KrAwxs%40FC}sUd>-?^mX0 zN}yQKpwhmBg*p{nj<nD8gv%q(6gk}RY33G}4|TUk(~brgYf5y)z~Ut8N`t)a;ei*X zMOo}^bA0=sw3Il>fBBv7_ZzB~6S?=eS|blP2}JKS7~3+`#n$)+@eKq^g!D{=JooCN z9EGUPPs_CYkYpqrDMpqaQo-(fggMNI$LD{^)^k?SI?sv!BOD$NxOQDM>dstahm<9O zF6U`_Z=~bFe<(l6TQ+hIUTznP=@mHKEnkN~Y7-x6e;))3w>PGiEsSw;w%dBewPM%r z1nmyJw0ybM$}`NSdhB&)eBpk?8(GZQb{ZUA7Vp}@?hG|kh3uz*?EhTS67tFVS~)Mt zH|4YX$}yqyD*oblcG_~baG8EB3zLF0^oWjyU|voxiK#iZW^h%*S^Z)cQV2{&lzdD! zkkK{#k<=DO`?hE(Uw^wbPB**_>7y2xiq>I~U2Cwrk+9t$4R`johZ}4?0dU^e9%&RZ zYqX^9CDEC_QzBq^Nj3qXy2!b}NA}y_Tu+1xxo?}H!isQ`c=zme8h6lHH2TQknHD%P zl$amnc|~>I$6iDo0{;ZPo?8NfXkt7!f+*$ZvYF~(DU}DA*PqQT{T(TdDgan)o7x}! zZzHf9pcq^Gp^fiNjmX3;X^I&LA}H;7>G?<8Gk_?~g-7n;N&>@FYh-pK-{^`=o7#i2 zLS)OWb$B!r?PQwgml;>D752*D#Aeq=&Ct%D){yS3rs-YzPxAV|nhqrQ{BHB&!voxS zmO2$-?prEPfH+C<nVQ!{Vf+s-T@)kzGUY5Y09LytY!TnFi7TCQqG^dUwZ|))Ppw%c z%^F5BiV8|QZKo_6PHgmCDEkH_2bDR8%f`o+JnYw&N}YA{CQCbM{M!42(I1K%LrDFe z=`+o8;^vsNE4OdA<=B~GL0WFZ><#3FdsC`|Yk@2+vmojhZ=o*jTa@ki&sP@NCI#yG z9bfRK@Ug9MDfUeG_td!1W(lyCwb?%$KO*fwu|bBe#qWbAAF-xj2?I225QyXG`)A-S z5_1Z(gl}vrACP<WBG#GXYw>=b?iF}e914-Tt>?`kd8n{@9}vArR=h&VU1<H&JN$DJ zU3I}OBwAdp5Y}ddXE}H$SDIfc(DoyH5wYG+yu!dBhFu}1Gw*;B4Un?LV8r87ZFVbX z-S7zz87b$CDV;ft2_BpxdRDqv@8O~5q-U&^n8sahFZT<cThx{;T@)%=jrb4x;HRJp z-Can8zw)P^N_zs_i}L3ad@k0yu70#zK?h67>|fn4zlHf0nE(Z6P8yS>)Z1qpU$CtX z5vf{adk{S*rBuWaf0ihERVc3+{B~IGkNZ+>-;2#kYOz7X<~Z|6qt!1Bj)9Jz+@Xoc z45=b0er)awiTRG53tiT=F$J_C*6e0WS-plF`GgBz_aw8V{XdLV&kY!!DYe9DBt`;j z-t0UFT=tC5B-(p0+I=Illh10W=B$IFr$AG-ImhP<x0ztmwI)YGyp#!{cS$`$$!5q3 znth&D(Fblkho%>h_3N~U5^??M!zI&p$&VMmO#QtW&lzSJx4qID12w+9OzTl%E@w#d z<GcH8jE=8Z<2={cRU0CE(4zIa-{$wE|Kr)InAs!wZT>B!OA~sNM5iQ450{_!KIFvi z=X7;-v6VNU!t8TC3(K|L+fStF+ER$GX*@+bjhfXJ1Y=y#gOaqJe-l`~`RZab%-9f4 z@PjA1wufytUx;E?qv^~s#H6b_WtFGVZsW&M5@sn;oA<><E0p;(yTm@2tHs1o0Zf-q zCO+>xf>Zxp54CPkNze1{s+I|6Qr;DM6{L79T~HtX{Q%C#wE-YI4qsIqlIR{fB7g6z z#+gZR*Zyd`m)%6VWVspJ+-D7=Dcne*b`T=T39f02i@#87;q7Ax@ux!l_yg{X-`nNb z_yma68rWEs8W5c?EBz9<tl~fW3)ek5mAIR^5X0?(9hjWpT_MxXi7zIVmLck?(zWAc z2y55r$mdjY(!~tr@#k47Pl7Q(koIYQCfPVjN_Dk1QPf1SfQwCrP8RH&NG*JJ>X!T_ z6eK~H6A9^Uv$r~83R?J^T|=CLeLZ)?wecsvW?%2-3;?VY|KK`xH`>TXcVi@`uM^)Y zAV&IYSoFT(Pne9WZ<(<yBWNhDC)0pn`rNAy<U@#L(y>h~XKX#Hp)eN5Whb;qo9U(J z{)<Q*<F^z<DJf7BVpF-TMtNvT-qMxRf0!Cnv>5BC@v;N$S08eVrm9AZDbM;PbI&8= zLP}U;o^78b^VH?2i70R^3+K8r5VrW6hfw(0*SZNxS5z<L+}GsgCh#u${3^{1@Z4ef zWo>U4E?f{+yGfZxza<sp^}V(z=H|{*HQi{E5|UPyIS`&2s(m>mv(6nnY4&412F~dT z;ZyI*cQhKNZ_IjA*V>k9?!zSCtQ)y26e@!Os6l6wsJ3RtTrKsr0f}kbkF&lvIOs^3 zI9sl~riToj)ZNP&==-5dym^i1=wqo>AEWOyjBcvIK*mP)^>-Ng0t3%({7ybH?4}Bc zpEmqRzHVs$_;R)<n%a1|s(yLkri}X!n$9)Zl+>EZczCHVe#&^=vraa=>JPQMfhNWe z^wE&1KI=IuBanjC-4eVlSfLfp1RYHHdO&j1mfu9U2p?un>^ie1+vD&SVer5gt5;RR zsD?g()(6g>z2Ev}!M#)%xtzg3>TS)CI`vg&spAPieqB2P(U-bz)lHi=X<l8quNrz@ z_J&PtmEFe-GSqKIxCh1CU1^g$-AHC=(RfK;Zp~BhjmVbfTgOE2+R}bMr+K-Jv<iG@ z<MvB4a!}k-aFW^A-Fnl}RTKR5F>{BUtGX$exS77gYnQLFiDj0}VtVe!Pk<mExI$@g z-V>llJXrjwi%^nm6``kuZ`E_P5r#|PH5<YaLni6NkIy9E5iiM*p?uv8Ja3y$=9RQR zU4dM5i0403YcO-aY=(2>0p!j4?%sa1_dNj1GoCN-{ShZ-c0&c|0j}tYdto=*LZP)l zp4ZXhN>zPjMk{Z&$UnTQIW4&jc4fIp%p@~kz$gv;yfTBI$rS*uKV6^pmZSjrX+-S% zz>UP46&^|-Nnt46?y$iA`4^5a7AN->S5KeczNH~Ueul#(`y5F`d|}@eP8xEZ4eql0 zk`j$ma^T~`bBI?{ry`RyXlZ`aI;j|hp=BnK1yvd6xja-awG%vJ?wl;#ljXgh(cY#e zzrBzPT3kZh5Njcjw}@q}U;2=t+CVjXZ=1=_)rIup2;4K4*W{%48E^eWgi+jusbS2t z7E3@<h##c=;I1aZnhKJce5`8sEqw2H?knr;p^4UEN*N6LAH*8zi^N20_q3Y8R}VSj zLYsK#QUtIU+Or@vf)2OH_{U4*!72i`im_~5qFiK=KhH##rLan7I{6pPfC`YazR}@7 zQ>MnUo~3GNJ03O9>wmbvsNZ>Rf?`$BZhX{n^uE3Q<ixOy?9f?!GO=r;;cm6F6^hdn zEC9&^m9zmxWetKVmgGKMlnygImpsPjQ6d*6n?(FA^(`euJ~F0gwzlJt6cG2y=4L2S z6;n~&2?ko?%3vT?;??BfN}XlhF4;?t_(q3Kd)cCpN~aSb4%AhDwnLYbvx#55p}{x< z`=#P2{+B%zyN&$Nb4m5__BH;q#5VbeuPe)Du%962xy=OU(oXRN{t<BptU)CmQ=X5Q zHa%|aTXlX4@(#}p&yROQU^YRjG__3$pYn5;fGPRnfm>qugvT!!czdJmOEZ;*Mi_2K znyJHVQ$z2t&o}83T3pEEkY<AUGBt@V9_O)B`qqA))N>J?at&qYj4LaB^OmHBGFHze zHmQ+e`_vVD{KefJ%p756`Z!QP-q;lx^6XEo_auQd7f|NA@}W895dT<Ri6Y~9w28j~ zDQ8%?dp@XCG`(9@$DGEd)_QMYcLmY_*Sp7QLTtvmc!j*^a;zmfs;4~Qw2JQe@niYj z7=y_EpK^d_dOUQU46Xxx{8_$SlVI&t%d=t~E$tJw7}kw4OO*q4_)uxNS0{XEG+G81 zvOHJ5xNc~-2`;qXS{}7d(P{tLzM8&^tX#;PYZZwCVP5MrMa(}^4VHfwpe--=jsRvo z2K=O;r*MVzTU@=$G<Ees&1;A0c6fftCh3_4uuCrZV_=~iAUGzZ2bFX{{YZ+?TMf(M zhm1ty9sU<oXh)HL{E>8Ce93c4I}v)y_J#Ej(kH+s@(i=&%ekx1(X}4tEp5%<YKFvw zDEzTP2DYjeY%FUG&RjQk9dZGZG)oijndSn|=6aY8v`hzPoCe33zf58~HcVDYclNF{ z=9s9$t)^p%bo%UaG~P^ZOqJ-FPYr24C9vJR55gE|;#R3N9_LBd?3hnHBODQLxoF}n zp|09NC&TR$GH-PE(#jGL7@t1D!Pi*MH1t+T30_}Ey=;8Qs+miw_lxP#BUoun8#(n1 zNRwQA$0maZP)LGVhLMW@sU0&h+X@<tp*PT%q3%CsDAc!#)Y}eAB$P&h(Es%N+`&7f z>&<n_*!3;bjDDrZhPQjlt-dWVAP-cK$kix?+*8zJl_0TU;G*rB*V6w!zoLvBb({X< zm^|MpJjkCitF<Fzv{){Z+0B@`KOksNB9y_KVPQ-GgH$x7J;Y}{O|ou#r%*{U)hzf4 z@P#~RD-J}KDI3}sC~O+x=^v#~gF{?lnDo%kH{>Q*QHPVbEn!4|F&Gr(EFWI>Cwrm4 zEwyz9$O&1Gd!&O^s=@*{M)g|euD--ppKg)$@d@dk5P35|kki3ka^l4Iv?0C3&P*wr ztD;NLOfW6)BRPq^t{19euMOn~T=<C&2e1FtTBIc@!>KQ5GHI(yPe4>#Yi{*n9kM4` ze9v>NC)#kh6cgJhT=N@?0R(O~HKD;;Wse$xw}?YzPIWsZ?rC6mTbCxLOa-L}b-4uY zSzVrqm8kEkY~5*DhlkuXt}wT($8`-ko%ikwUZ`q(GR~~H^Y4P8ty*sE$MCb#OzO?e zsJC3uTIqfVOCpVOMEN=ch-v*5g6D20p8#k^(8*A7jT)G&G{m&rR(wfmHgk`Xnd1k> zJ&T+L`gs4~&Z*52ucv7=1|GJz9^JB!b428kj+Ue4jsyFu#1vvq4oBP*ul!Qs?8R`M zxy$vF>F*^=*u6K0^!z-H0TmsUb<sM!QCX<Xqlo~=OF8~=c?nf&W@RW-+R`UCf3QQk z;iyCjL@}<TqWEL7fiD4z6B-7i0!3fmqJrkutS@|078ZC<16P2&or2vwk|brtzU)Hx zhfA3=|8`EzPF@(sYc)_^jj<D97TE}7?xT&7B6J15%%P2|DFj#ZAL@!3iK&G7GFiIy z<SQ;>I^})!>K+~*6yeF(70q2GiSy4RVjbiL{oHTwQXT9Xzz=%@JbM&>FBRHhX377; z{@3vSN*|^84;9kPQ!;Y(DjLP)-C?#Bf?@as^a%i`)Y^&_53Ersd<5Ug)x-n$r?+M~ zO7B%SqZR*<0Yll+$ft5YK125#5st!K>h+>p+uy%QfeUOE#5@YlA(nOLV3i<C`SzTV z>m^fDu~?I0ZvedGx%-LVvHms|&G7T@^pww&Dx`+sIp_Omq(zeP#Qs}f7T(&yJmqJB za^(gGZExsT&D5wnc*Nt|cYLsm8A2s3L{pciY<~yihV)2wIj%1;4{96+Q^TYx>_xp^ zP#S>NiF%j3Gs<a$@|C0~&?U8TSGh%qCn~g(R1K7vZLWN#T^@+9PUL{j9HP7B40*M+ z)~(k<z3VVW(kLJv<5?)En)j@qVyVLkXoNenyv$+E+e?qzHv&j%O?P)n4+RjfJD4@B z_tq}P^!q$gEL5E_%rZ6G&YZ#nefJN2f(^3`_XV#v%h)jFxkz!1(%OT5ng6IuWM(Os z5?HUjnu6858XPyT*m?<4Vz@V1ItJf}PGZ5NuEVE;k?l-*VP=&EMSc~I#~1v~8Y<V{ zt*pYys{b&&-xIJa#jFxyHP7qbtCM8^{Wz@`Aekf;D{hOIH+#xBFpzPYd&7?Fj+kxg zpI+b)zWV~$COb2pb(@76&xz#BEiK!fxLfJlsi3JUi$01q{E~bH^Mg(H-<kFO^c~dG zYpY(Pai*1Tl@pY4r_ZK;)BdanF54-31*?3-!G}!tt>axup~w_2ea_!{Z(_syoiMGy zg1zNR3V3xTuuR6LsS!R?e%kxVoCI74H6d<&g?K9DA|`pQK0=~VU4x4Jw_X`-2IBnC zJX3rDqT1`iwP#ms+EL8pzkb!W2Q&I9^yC~LE@dS-Wyvq_&y(tkX5<%pl4f}nl8$lI zp|a)|&MmkAR-Un0YUYuP=B#=>0ba{~BdXAePg(R`xAHN3%z`%baF+R{$U#5FUPI`p zpRFB{yx>b4ltUICxmpr>{Yrc1LqyMF@L~bY8QeSwvc0w5r{QRmh%3}do3F*j>QTAJ zV#RT*^RTy3qbgh`%1$bxouAbH@B~QBWgE%SF!CoDxK}u!uxSp0^5Um-vbFpK*`tja zl4N*#Y?6oZ$X6s+R7_vA#%d~|x&ST;C_<bZ)s|2;lm2{x(muW@Ks{cP8=Wk32#Ed? zd~x=c74;04`;140QrrWn9s4Yk;UfAK%TR_y_O$Yh>uS5h`drFH7mO8u$o^3R=rj{d z?^uAt31qJ6On0@eQYafa$;sGl^}07=uV@of*e%!N=%x!FBKCd6I=<(HIbLT&n_A0( zGOf8V&)#d~JtIe>FqGAm)_(OrJ?7*{qr4j_AFW7;d5S9ejmpJo+c{4P)@p*kK2Dl7 z?1yzC9jW<lNQHOdU;dPwSlu^DQ2Er-<)24PN2tP+wi)WYsFSMxBG=j@h}IZVwKNh| ztmH13zkpiT6crooe$FlZjEuT0Dnuqtjh1|{Re8XiXq)m}$ZNi%Ue`Goe+QUFs!<!? zQza*1O>NSZaqxILZWd0_1lnAWCAnjl@np&ij^vkHQe%j+Ss98T7gHEfc-6j<x);(s zU%=G5jfbNEHH)7ot13x;T$;GE;rU@lR{8c|!*(=dE*hO&Eb_x>I9nUJx3U2BEOl{U zJ5xGn?b`Xyc?#mu(W^P^$d<C%X2#!mKT*8Fl~7~`WR0h#^-DKunM#wsvm){JSPoAk zd0|*zuAR=?7^P_AgSQaM4sN{no;k~3?p}MHcS^@yUE2BeT$1ipm~r0FE`4J1ss~<B zDO33XvrX;H*j+MpM6!uOwgD*QXHyDuM7Jnu-|Ga!p@Gq^n4GGm=sM=bE6Q=U!7cN^ z+!hhJSBe$^VG|yX7srp!oJ27THmZVY8k(ZfXz0Z>R#dSbM=cuU`*zH8-BkTIEc2{d zzvW0Yo?<bjjI^<9<+6Om2Y11QI$xu%z+AVjyAo^ZL(w5K-RD%mCjgY+?9+~U{Sgv| zNNp9|Wep2z+iygR3TK?t-E#DQcb8oJ&G93{wI@UP>xQBhAb*sV0g*E<a!oK$kCf9l zcKY%3uO)!g=A<THUk5Y$Bc1Ac;QGu|$Pk|1ws!MJSb`et)poUt`rH*sM|-4NnG)VM z`7E-aA|n<JfO4DJ9&jomPzP1moG7R|&c^~lOZTenL!7;s8XV&Ytm1Z3)r(h7bUw1> z#*T$v-Fk+Z{BEn@iK%P%nZIAJoKc~1L5`^_J2{rfyjdIa4DyGpZ(#I`abn+S%wARA zgYGrW95Rh^mRNT&r>pzzq_w))#zHp;MRi?I-$R{_)-VeCf}hV6EeNoGNp%^QS{xI_ zl5QUr^lgktKPS}Vpboor93RsvQ&z>kF@xMc0p4Bn3Q&B`aVg$aDm$)8*aLoe0@RsB zg*dJ+e$j@WMRq8@7|Nt!unS)guj9<dA$&WYp0soO^;A3>b;G8!@FBd*Dv7k)tU)(# z1OLVGls##HWO+zPl>-U-3%1OM*``URb9KzGamhPN-Q_(f{6BPz&B>NaAAN<!5AO}H z90frc)w`C(u=0Dc!|Lr*=Kl5i6-R6I+@y!X5br?#`R2e8f8kfFCJFd?KHrBaKX0Qn z7HknO^r@jP!|>ljB6S0z`cY0v4UK}rBHKq*SafVT1nay{mcxW69GzTVsbcHU?X@$G zd%?RVW%qfAx5LU<JzANXlur(Ur1#3OhQ0vtV1^KYU9;$TMF;5&>qh`l849Xm42Ngy zmrQcvdA|@Pm^X9+TH7JFvCLOvG%U~{2TWpXY+o{<le_&w?xBswA+IKEA?}oxOd*g* zrlC>hGhcJ0dwe4yN}Foqe<eEN?@b{&LbY&mHophDu7(QrxuWKjehP?=VX{!GuOMn> zjl>~OO2)j^vpjKvp!=2Yn>~Z;fH4poGgT{#4kWw`8pen3Ci&3-Kv5|G4H7Pyhj6V! zDVDj-rc_jWZGqakWMBA&LracFj}EN7a^NP#HEZ`^{FKU}ji$=$j0hHU8sPXUiEt0I z|G2pzdoI#{LTx0}>n!(CDWqpc>i6p!AW?x_rU$qzHb=2UUOR>P-AgX%Nv-24p8;)q zkN{(Y<mSkf9XzY3P4xp}Qh1J-6fzn4jhcdBg&SumhdV1~O);DkB@?L$IKshe7mCR% zSgJZ&R6CiE6c1Vt`A)&Oa9PN865~zuM44^LYIW=!obUDW+^#=z?Gi&GU#!xtNeLU$ zFW^;qgNNSIQozTrx2;)|Q&(qkQs|8)FSKUh1tfma;58xbXbI7AZ|bp5bpo<}1xKPd zY2j@bCGmN+_ztuZxX|o!@3reDV&`UHcW2b6LCqs9W|+{0<2&`byIF>eZZGv>jg%w% zt&f<ss-SHYPzSb9Z8x>N45S6aIm?ck-*e^{^D5e;L9b7FzWs)_30jQRl<Ig0Pl{tC zde;&j-brlCd9#a@wa&ao>u~QQ2IV#bD*bV%Q7v{YGtjjOseX*x$17_;#J^u3<DT)V zC~tP8VXlGeLnXg#Q!{V9HFWOK^E@Kaa!~muqSL02Y3@$$hD9fc^>T0sS1cZ}dmg_| z2{(s~Ze`rWREgW0mvElmIeau(GV)I(C>A4%z|KtS7!*&F2lE|y4CdZiG<R)y$!k?d z=P6X@x?Z%2gI$+y5U*eofI;|Cj8Kw1Z*R$RB2k}qbB1H*>r5$r7ov)23rfp2MU>}X zy;rX$d%MtJyW(<HKqY8K70LOL8>VwLSDp(~V<bBEL<G_@D(eb9PI~xYyKym7QDaEz zd3KXGRR!y?r?Q&d-6yy&6h#eUumDP^#Z`0v%B^(9)EuXINIqNHg7%49!FU55^@fb> zq=OY&u<4p|whJAM*k-Yr?vSxcU3bVF8D@+wb!Bkx3y78W0yf<kBNLZyz)N9l6GYXf z-*U%;DWrP$_i|M<GsT`m8?|<)rLxQhisykSP{AjFo@kmQo>Ts7@JreylKC_X&VUs@ zI{sJyt|32e@-z8^2|*s>vaNLtAP>|w4mD>j)tdv#`E!<6-(<y5TzNQ^?bNM3c1gNh zd}AN|r;|J#OoxBQ{<!qYP^wElkm|*2=cI;Xa<loPCqVGNd5PVR#e-4X=Uwa$NyHs@ zVFpWb*0{WUzl={uPnqpeZ=~WwAf7g@o8y7{FcJ4+JJCM{;!=>*9)8ie!U(pMGE|=2 z4Db7)mzV5E?4wC~BJ9Oi{xgl#`LXcYf4}&+L)=f)K*@+L6}S@Q@@Cplo@r_)^K^%m z!JQ)@TT%%xRS-&v%MPq$ez(^pD~`1pWV!in60y#Zd;yVIov6m0S~-dfp!;GR&r6TP z5s07tqtb=*B7JDYPn63Rz4@fwKbr+4INPaUSkQQODpF!6m`?=`Cbsuka?VIhVf=)@ zAGfkHc%n7l_g#IAps7uGBx-|T*RZ+2D>0uQR+G8@qJ!6)ebwij-A|wZPsyFQgpBif zv{%aLr$#@Fkg@iUVT~?h%AYJ5M+1*LyXXyP(vnW9ckgJP07Y<$sSX@}fgMSLIWCa> ztK@C<j)mH9?LM*FlyN$C(=AATWK_@C1Yr_Iu$sfhBuAAGN$m1<4J63&nmvka@`6n( zp?nefpxZxuq`EciX&@2#2kpFt%u%(W&azFiHM&6y9?zPct+hC&OO>+sl16t0!jE%n z=n&f|0oWsvF`S*004J7nMptPrpV4k!fnb2Vw+XDxXT^Gi#9kl+OW05g6^)5?f(LC^ zb3I;*`EfQzcKKU_K&?xqX(D=JYGT6-xqu-CPtzJE;SLF$nd&O7bXOyG$C{t7XZBL2 zSltDgnMX?BcwA>du{i}V!woChC2jYXR2n3PHc9)|7tJ=CL-{Ak@niCdrd_y%C=I5h z!!2qK7<CvmmH`!iB<`*-JZ=WAo7Yh1;WC1s=dXo4<*Y4TiIfd>)6^4ZGB|%;X9?p) zqC}Am-*FUWaBz_js^vJFYB~@96l$Mio_0!!D~~NVTCZhh^>6QjVI%=PVBXCAoMtAF zi4-2~2#s@7D!O7r<G0PYGBz4*f*c<B)L1(x(57lg<(5Ks0g0*Ka&J=>_%ME)&f!`J zkD@zj@Lff#w`}Bn_iGC@x4pT;nMC^6Af`^l_H{Q`GFzT-n+~Hjr+|dsrthiyb`VZ~ zrsxDHc>c&r32(J?Cc}&y*#CH%<rJly>#`;<5p>qyMF4u8u&`uPTw=2P_UNNY0%fl8 zVOzUGhW@IGU{6$%v{r_7AL}sjmKuL`)>OH@U@^<cB<R*`|CXAZ+V+zLv!Uqs%H`1< z@zK35N~(;qSShF5M}otAMu<&=cPT7Fb>3v5kD~q^SPr?6PAIi>kxhi9cyy_Zp&ZFA zM6_$8rEPMsmRzb&E!K<@&gcHsA)q7YkOKFNJt3%IadY?0!53Y5r^rERb+xtqKlYZd zV*3<Q*_9{m9KSsQ_$PnU{VdXXabwtaY1=)k%ZNsVbiDv4*ngjQ+DY&Di=!-l{{1to zD&~)Ie=IX<5vGIWRyHGCiq>)%T++mM5@kw`&`NCzjQ*f!ck?)aIA<IBj_|wQ13ISb z^bbkFZ+&|+*`)iLlrxm;J>AuG);pg7e3)}7;zess$9KU$adg*SPM>j_y29STHOdbI zfCS4cu;kl;rfYSZi?}zR<EF!Jr@6?Z!9=_bcNo2A*nZ2#V3!VEuS#dZwcA(EIr~&R zICo=zktiB*y=inopX&aAa<P-SHPL{zX}3nYpAI?=PFhzvebf_op`Rd8iq@g4**WRx zcr<fgu%`$asHHw`ixfrJIX&=#=Qm68?JZiCxOOlc!iXHZ^1FD;$wUS>bH`n~L#V_h z^?RVtM_s+{#TRA;<A|J>TNJxDP{~ktt}%$A^?mbWpBzL-^Y!#pmt5KzmR%KU18HOD zbQpyg1$@qm53VGYVA&9izV&C1+(VW6Kw~9wnW{0D-D!c!?AOJ1?;;z+;ydcX`%^Eh zHh(;uN%4)?#M>WKi{yjpDL`*xh7vz!dzs-$Y=eIGLn}9wUg>1imp<wwdH%vEH-+hB zP;oj5GJz8<=5v%an#!GOU8Q7~^~){tXdR1njl2x0)=zr2Y2yl>HL7%B0Bs;i6ERz# zjD9=AmkT*NzQ@Nr5X{Y%I8CPc5;Gc*5rW#Gq+3ln;u6I$e$%(&?K}1qZ@Gy2NJko6 zhCcuYcU94e&J~0*Ex%VaaThaf5;N5P%<Ez-ZJsWEXBo++B)ho)6~F100x?Ad-76f6 z`o?#dToX9EmzfzH*guc*ZXay7q)r4Qou^}0d>sVqvod3)lmQtbd2op;zav-bKB6CQ z7Q^?T9iN#%RB<G_o*<KKbv_cbFg<L~6knv!$LTWcG+*WSplK83^-}m4k3X=OLNlP8 z{o&>b5DHAVHw03{1R$ORf}(nTv=lOdzWxqb0m<2AaWo@%%gQR`!h>g@8y#Eq>_sqM z4&U>@t_Md|X;5apGn<^*&c(h+k7-ME)U)IZPjaY<4Pr_5RRjOHNA(RhLZ&jdM;(t# zszY*qcBELMVQB@Ad`otB5AmK^Xji;*G=u2;j4mwmo6&?iQRvn>TM##9U&#;&NgDg{ z5;2^;0YB$!v|`1JVtfJ!JOMVgR1zvvAr4#Hy{YzZ{Je+b-}th(bA2u$S@Gq@j*8vp z?4kQvLv6eW)H`p=%GI)WTu`Acc6(5682w%mcj#5SC>U%vZ905H`?QE~U62JJ+z_xZ zF%UipShzSic+V*ap5x;`e@ROAf`W;Tg@uWZk%5g{f{%?;go}YuKv6(MO6INHTUI_5 zb>%l|60&b){x*VygNyt8*>hR~0$LdkMh=<(<M1!b_V<AI|FvvKdg=#IB0Ng|vETof z@jfE`>ra7<1i(O?<om}V0U7P@2kjq$e>o%&zCwG!BcnlQj!xu`a7XANrssWA$H3<? z4M9{Q|CdX^f7?Sic%Yyn0niYq7!VEt$bU`g5$V6rBO%P{5$+ABGB4<eG<e+$|5s!C z?U*%=1`7|1*h>zd32BsZr{!U~0IfG08|DolHo`_O!baX^{3x^s#<<?(Z$ERcaq$QO z7Qh~%@e4G`m&bb)a&D;{fgiX}f<H;nXNF7HzvHgzw-lKBuAY$lNnJC(^M^jqvgJp~ zx$XY?in#5h?mvA2GtY1h!$bhKV88^LAN2AG;Fjn^JVfYIi{nZ+#COOAu&5GGadqHK zG_QGk7(|$8C7x)2*xOCHE&1MFqJX)Q-I2)HoO&^uL@M4>pX+^7Xt-i%GNwrxyEE5L zbX0t-X2N!`;<NWsM3Zmdv%EgI_3O$yBWRZD8d*4nXTpd1$NE|X^9L|HEVU!+!3d{M zIO*r{c_`bRH<$dFc*Ir#&bV|M8$svtLuJt^R<3vYyA3qVNG_~pfD`)+nc1239mPxh z(H4_oA;<9q8QD(HLuMy@hvf}Eq4CByi#xHBLG*sVA4`0R6Vfc`hci6n+|2E!F=vHr zMc<^98Bd*l;O<Qwtl<W{<O;#LUtlVVXB!MQ<(~ql@h9#iF<`^*w`dp{vTksQr>*8n z(M8W@PW9I&J|c{DXSp=JC+{499A55R+F8%AV$m>y-sVRP7)AkJ`72vuJVXBtHNdbl zH9N<&(ri;=ue4^kD&g8`Z)B?*H0GY@(`6Y*^~ppkPR%gL9{D9mBT73!I5J&b8|ljM z0|Y+cEo6~LlCT5alccr3@$DjX|Ln3?C;rxWh<x|M*Q=BozJdVokF8u)xuh=ygF!6H zM`C`=Kh^RJX&1ngN%+71nBqZkhW%yp*z4%aMVJcr5@msA_ujVE^xMN%U3H6JTT*2q z)f+B+E=Foq^>>|Lg6DwgF=)u)L}%I-&~)odqJ>w6j9}yje5K>H&fA3#6h!GVl$OnV zUp9&)h4)k)!p5;>Oso=V=H!U7c$SbDaK<QWzFI904+RKG(}ir?X`n^TCeTVmptH1j z&QLe3|FkePBU>%~xI?QP@jK*XHalbKb?*_&T>hpDhw*6M+W@6y2%F75QV)%10e_X* z)bOo&wQAOEqO7eGO$^9PWze!YPN$S1RPYZza7O!5b(pX5`*0g9^4BJ@EU{?VpyCst z0<p$?o|*vc0Tl3;D|=j}iU>NX;?OzZo`3HK^E8_reje}N5@_sFNGTrlOh0)aAZ}Xt z&1^vMMKgwf3CEujMa*FUUM$>Iz3GOrgdr@F5@iKkM%g4qb@b8f%g1n>7qa#^$o9&t zcx%&zJ?6=dp|<Ji*nf;8T2GLuk8<69?P1fWx{X#^)6-9=Io+%^Yl@#YrQSeVzM>9` z2lx1P-w1s1ba#Dm7{6u^<0Ci0Zi&jSJHqPxP8OT^XTWF0mU$^NkPzc;X(q*1PmvBi z6-Zce2RrbHdP8f-c^ahn5#C~^YlU(tzzFq)_&X^zgs-i9C6u0GzS_CV=sw(eAuGeA z=4MJNMVhf4m4OT}h-EJS4G_(#YJ`dQ3a9?Ty=Yk}4&k6BM*#-igX@hg?Z&bx65Lt* zg7UuZv31i=wd!v#N?(@<1EqLxcvk2X^_?buccX3#A2-9QhlGTghJDu!&^tDHFby_! z40ODTKkz=>-_*X^6g)#Fa2pQ`e-pjlX<t>2GxqK117~5n@^JJA&xmcn!khVnm0t{A z*4Bd=oM}T7KFF=^R7)<?E8NxbZ{URw!aixz?#X=;suIWS@l`@uiVG~?royRSQM3_! z->!LNvFdn+$Bx(SB<zdRz&*+WZ0bmRq0feiaUiCZ>A~18G&)w_Ao)o)y;y96ro<wl z8V3joUfbIx`u6$vrE{~B>wHc$*_;&kK-$fKKauKk_~yipr|-CL{L?P^!Y5+w#uj!4 zRdjSDw%`Z$<FsPc7X4gr^!OBIuDSGU`9LNAuh!fE#kwmDk%^$@3H#Ab{*^LTTfuJt z!fwlzsE6-4Jdywvo6fiS#-Gf~wG~pF&Xl2CBpuPMsh{b>1&vd4WWOw>GN04jm2l-s z*hDYrtaFe>1~Ms0g*fR>;%}0ObCYd<9P8s4`+fOA>*cb`#CU<tEbzrvf>+6?&92p( zXH{3fo$sbN{7&k4tNRTNf;gMd@tyq63|Jjt@9x(dK0y8bE2f6Vlj3W{ZCkHzN^Q4* zZ~UKq5ux*5Y<Pvee4-b?0ur+=jn^ZV2Le1LO}hQ+e`|_US>4b0e4iP{<fvdotFLSs za#|3Pa3WX!y2PLP{7=u$r|-X6oOE4j>!Zbl{JqEM`&c*=X$pS6CvH~b6x_8Xxwa3o znBP*OPbK=5cH*A=dnn*srJUq<QbWm5(<+`r!O0U~%D0<}?eI((G@icW@J815PFiCb z3i~F>s7S~H1?=r=O9tSH4E+?%+Fp#R_#uTa#m~<n!BXOVBp&<?ME`CO`FVvPAaNte Oj=QFQjE3)N@&5xSSfNq? literal 0 HcmV?d00001 diff --git a/public/photos/thumb/3000.jpg b/public/photos/thumb/3000.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f0b95999ed2c459b138f6da1dacbefb0bfd190de GIT binary patch literal 9287 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 literal 0 HcmV?d00001 diff --git a/src/components/LargeButton.astro b/src/components/LargeButton.astro index 2756fd2..a29eded 100644 --- a/src/components/LargeButton.astro +++ b/src/components/LargeButton.astro @@ -8,7 +8,7 @@ const buttonStyling = "border-solid border-1 border-gray-300" + <a href={link} class={buttonStyling}> {image && <img src={image.link} alt={image.alt} - class="w-full aspect-4/5" + class="w-full aspect-4/5 object-cover" />} {title && <span class="font-bold">{title}</span>} {desc && <span>{desc}</span>} diff --git a/src/components/Table.astro b/src/components/Table.astro new file mode 100644 index 0000000..33b6ea0 --- /dev/null +++ b/src/components/Table.astro @@ -0,0 +1,20 @@ +--- +const { rows } = Astro.props; +--- +<table class="w-full table-auto"> + {Object.entries(rows).map(([param, value]) => ( + <tr class="p-4 even:bg-gray-50 odd:bg-gray-100 w-full"> + <td class="p-2 pl-4 pr-4 italic">{param}</td> + <td class="flex flex-row gap-2 p-2 pl-4 pr-4 h-auto flex-wrap"> + { + Array.isArray(value) ? + value.map(item => + <span class="bg-gray-600 text-white p-1/2 pl-2 pr-2 rounded-sm"> + {item} + </span> + ) + : value ?? '-'} + </td> + </tr> + ))} +</table> diff --git a/src/content/photos/photos.json b/src/content/photos/photos.json index 946333b..32ebd81 100644 --- a/src/content/photos/photos.json +++ b/src/content/photos/photos.json @@ -4,6 +4,21 @@ "date": "2026-01-01", "id": 1000, "location": "Location", + "tags": ["tag1", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2", "tag2"], + "camera_position": { + "x": "52.41884104759987", + "y": "-4.063553160306468" + }, + "subject_position": { + "x": "52.41824343219751", + "y": "-4.065837114623462" + } + }, + { + "desc": "Photo 2 Desc", + "date": "2026-01-02", + "id": 2000, + "location": "Location", "tags": ["tag1", "tag2"], "camera_position": { "x": "52.41884104759987", @@ -12,6 +27,21 @@ "subject_position": { "x": "52.41824343219751", "y": "-4.065837114623462" + } + }, + { + "desc": "Photo 3 Desc", + "date": "2026-01-03", + "id": 3000, + "location": "Location", + "tags": ["tag1", "tag2"], + "camera_position": { + "x": "52.41884104759987", + "y": "-4.063553160306468" }, + "subject_position": { + "x": "52.41824343219751", + "y": "-4.065837114623462" + } } ] diff --git a/src/pages/photos/[id].astro b/src/pages/photos/[id].astro new file mode 100644 index 0000000..068cccc --- /dev/null +++ b/src/pages/photos/[id].astro @@ -0,0 +1,46 @@ +--- +import Base from "../../layouts/Base.astro"; +import Table from "../../components/Table.astro"; + +import { getCollection, render } from "astro:content"; + +export async function getStaticPaths() { + const photos = await getCollection("photos"); + + return photos.map((photo) => ({ + params: { + id: photo.id, + }, + props: { + photo, + }, + })); +} + +const { photo } = Astro.props; + +const photoSourceUrl = "/photos/source/"; +const photoExtension = ".jpg"; + +const photoPath = `${photoSourceUrl}${photo.data.id}${photoExtension}`; + +const tableData = { + "Location": photo.data.location, + "Coordinates": photo.data.coordinates, + "Tags": photo.data.tags +} +--- +<Base title={photo.data.date}> + <div class="flex flex-col gap-4"> + <a href={photoPath}> + <img src={photoPath} alt={photo.data.desc} /> + </a> + <div class="flex flex-col gap-1"> + <span>{photo.data.desc}</span> + <span>{photo.data.date}</span> + </div> + <div> + <Table rows={tableData} /> + </div> + </div> +</Base> diff --git a/src/pages/photos/index.astro b/src/pages/photos/index.astro index e181043..ac28175 100644 --- a/src/pages/photos/index.astro +++ b/src/pages/photos/index.astro @@ -10,16 +10,15 @@ const photos = await getCollection('photos'); const photoViewUrl = "/photos/"; const photoThumbUrl = "/photos/thumb/"; +const photoExtension = ".jpg"; const contentData = photos.map((photo) => ({ desc: `${photo.data.date}`, link: `${photoViewUrl}${photo.data.id}`, image: { - link: `${photoThumbUrl}${photo.data.id}`, + link: `${photoThumbUrl}${photo.data.id}${photoExtension}`, alt: `${photo.data.desc}` } })); - -console.log(contentData) --- <ContentGrid title={title} content={contentData} />