From a0c01dc4ccc9685091b529641a347f67a1d2c981 Mon Sep 17 00:00:00 2001 From: Aria Date: Tue, 13 May 2025 01:07:36 +1000 Subject: [PATCH 1/3] Add screenshot for blog post 3 --- src/img/blog/Screenshot_20250513_004022.png | Bin 0 -> 39378 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/img/blog/Screenshot_20250513_004022.png diff --git a/src/img/blog/Screenshot_20250513_004022.png b/src/img/blog/Screenshot_20250513_004022.png new file mode 100644 index 0000000000000000000000000000000000000000..37eeede14d3edc3afbcb8acaaee1298fdfedcc9a GIT binary patch literal 39378 zcmce-Wl)?^w=PIRa0~A4?rtFvB*EP!xVu|$hY*6(kf6ccg44JLcb5*(&^R_q zoSC}!$DOH~x2mhVcWqsJ?Iq8%-xyV8ISf=1R5&;|3eWN>iLERhj^mB=UF zm;d@gago<^hl9iH`_JcDDk~=GuR>IhH@Y4U&epc(W)8Y=T$VdB|Ec;vOZDKmET}nh zewF&!YU+A;+d5e|du!TyI9S3xgVWNKWfy|`pJm9IXqeZkKXhEMTy%z%E7`PvXfX}T zYspWjC}<6-Xt=PAC^o1gGrt{URUYLW86SJ6!!$g^radG-KFqAF%qFkpGt2d+N3e^9 zmyuDehrOPOpS|ljoaqa4Y&zf4X*f74I0YFgO`ja_8d3n>UgyBs2H43jOw;eD)`3xx z0zRIqjLey7|GNKzxnwi~T5LyLEC%y*_FIgO=2ui9uc$hXPgW>zYhTd=HFlHhj>EKe;)Z#jZLb*#YM^?VSkH1 zi~O%EyMMNzp`^ddfWZ-&}Z}D3|!6hN{pOv{;HGJD11Q3SLhzPvw za{o!-UqwnVXni&T!`t@SQzsze=07A{!LXFqy**eV`Pq26D>mz+Y{)OA7pUFth_%sM-y7e|pgUY8e}h!9nIG{vZla zxpD~}TA!>+a2+FkB9`QQ*TWZDI&&e3e!P&3ILERH8nb{THnL@3lba~%zbjTt>2Yoc zrb6@FCxMbRWQ+&g&E-_j((hYtE-=VMO>lqDFBzBT0vf15zz=g_VxVl?(n@K<@qbq;RuVJ&qD zl9&OpCYc8o*UsfF;zg*zFvhIK9KLmu=7{Eb&?Y*n)#3*~v5m#?Z09PA{(g37e&)@m zwN~0(0rLwV=&;}Ab{w`rc6U}6d;Bm&5l{atp zYp`b?MXHWBl4ToNard()Lmb~_zz*8tOnz3cuSB?p7cJ54@r$PBp^?i^fJ;) zT6r;)q+!46V0{|Z(2=Wue@WZUO^Zz^p=l==ZeM*URlgX!$m?C}HE|PgJ%|2@bYuLd z_4nF`2U1_Na|wuRuk4&ufseT^6D}or4=5&q*kvd9=TsS{+Ov-UoXKV14esmuu0{XZ z$JpPd;PV>>gY8cW4(f4LS4wvt`QCU<|u==gH$QLCrH3zIbhB_-f6WM|<*;T8FQ$4h11 zZOpsCng|GmUEk*Xv-XZlxch8b^(ijBR79Vj0bCZmN!WnaY^WHQy89sEoWDzol*DSPz-aD76 z^cHfrpLKa>W)Y1e04ev&7$oQo6Q%lGTUPCJ=$_qdH)_OcR> zFFAw1f9^iPI-O-dcB!}xBVHlT@pjc=!FOsGPeT)304|E89vqQ3bZntS3QSt<8zf!a znopiicwa2#)c%bgw@#&T&nm;tJj1yfN>d=|R=!!4Ajgf#_z&_YPFqQo zh}>5!?n+moae}-_#P;kVlQ(emg ziPzb4%Dj-PNXE6MN)?y4i~TNa^c@teKFz)A1`OY(a@;kd(|Pm|3@pFn~p?5(yV=A5%D;r4XzLXU3z2X$Ak2&^J>1M036yK7Tuq8OM8d9(*t5;m%#+bxB1bvYwnX~_RwQfoLt9ggt(?IAcS|<0 zEx|tyv=BU`BER1TSOWWbKcm#;6k03PQnd2D(Iv6oOCi9KAM5eom*{&zh={3tZMjlP zW+%BwvW^XwzCCkdXq)zRe=oxE^j4GYn>tth#Udbkc+{E0RI|rInbBj&RZ9Maw7oNE zB^8QZ_C0CC2)o^+9F_oe(SMF~gv&KU$m1@>faQHG3$8Z7F)3wTBPqF9aDO+H55=BA z(rCNqH=JuDzbbq4a@QOl7y@8lj3dBnX{vYCxb7)AY0#WjLcTonIycL;5x!>8EZ^>K z^u)-&@NprN6w|ff#R!{?#ZO#X3-yOc23!weDB7;4 zo`~PO9KaW}27ojre9j#A8AN(oQR|PpbO93&g#^K>e3Z2j;mCmbk)58{d@2NjevMqj=n4Kk`Mx zx84@N=K=%7Ln3q}WlK&Hpl86VS;%V4+od=nK~CZsKE2cNK{g+-m6Jc{-5qE4_+?Dj zIjHy8qO|wVMvWi{KCvy!*(6LjLMTKa_@t$Xx{;xJw@H$P$J>!XCsUBr1W5X4Ob z{;9`dOFp0xd~CkoiD#poB(Ud#+&hCSFBk8a?hC*2hnS~_7$5$GyJ8_7w3lB$OgsMs>R zcrA!40n3ir5VTyp;B+|vEYw^UH|rU<{HQRhFro17W5S;shGWV7(x@mCR#u_glpL+C z;})0%ZRhE?Q&y`%hc~qE+F!Z>5jwov5&+dm_V;;kSd3JNdw^%diZ|}3u0!S3pGd~@ zLotQinw2+$n6(@|31;i?6%w;U}@ zs_f0IyYu;S+bU=P^-bp|v2WWKR?{yl6#~ee)l0)XrS{$}L_TZh;!G||D4*#~2Hpf0 z)ntD&uO2=9sva$=gHhH`S?#U-uI(eI9neu#;Q(x@L=; z)t4igPG0t@M(C#A_Yo`JcUwF6-jZ;O+<#`@l#={Uv}~z!_+4BPHEH*JD1U(q5yL-Ixb9YtmfekEKeI>&k?OtuWPOBSysovJwt~w382W}kK18@{pg0SBAobJi9cW6? z)k8@$XSkSbphxd4VQgLn3^mU*Z^b*v=20u1G4ou9yN^4=n!d9xU~BegB3t#WW#1NhwriE>jwYlgVh8<7p@%gXcl zI$w~J`t(}(EO>~1jb_LY%3ogbDNOxVq7|ULdLlj+bfZL)6cEcw*^-Qbm1Op2Kw|$v zEOj&&40KendU>|;9EXQIT+>#*{s(`+^#hH{46=7`o}#`)#)`jjc?i6R6N(R zp(jS|y-uAa$e8Ci)yANUrm)iT#%vGg@78GO&LBG2`&}Mg|Fj#sckW3+tc5*lIwX6S zyXkC6=e>%=a-2A&shmCViN_bFxjj#f4pS+}p10oVxk7Y5`cb^(gEaIGa0G=e0BF?h)8hU6B1b!5z8>($j2%(v%lPq}w9}x8E}9>6pCB%WXd2 z{0KL+G&sTUPL%FB`z2#j*~;3DDXgS>#X`EWW$PN()zNFlW)T8J?8H1xi2970E4Px9>lO6QB_`WzqNsH| ztbcT*zuX>TG{3RZhMi4*-KX1sMli0Y9CVac@#HQdigi+!;!ux6UUfL|<&+9M!S_kv zvEQ0ASZ39X{^cJDpF3O7Gw`@M!U?Vty7VdCodbVm{auR&)6{1D7+_Zc9^{jAJjzvr z?1Q9@K1TaQy9?J7uGcnC-BDsc0)z{k{8PIsDTLqr&Xh;Kd15W}tWv79?oVtMHEZ+Q zRdd24^1W9ieM+gq<6;?@K5ZO-^243h&|t#YtKEoEw|Kb-dmAY*YE^ARr6h^TwNy36`&FXEq+Ph*l`Z0DwN$91I3UCf2c z71UC?SV6g9NFuHKf!x}PXGJG*=W4Rk($UPC97JT0da`leh$Y1*BXL5b-InvQ)w*Ex6=I7A%8r`e}u?r=Z5nGe=KhmO!G9b%C2%^rJfxT`Y z{EDvnFUz)$@ZK-^2%-!+iNp+|&V6W3l-B#gfd8kJ+q{ihf08ICa*3w{RS@V0`?Xo&9oS&gqhQ#yi;|lzZDAy6{joV|y!(ejFsh z-AU|Va!X5@_?XC!L9rbMBH`Ja$cFmGjq;WTugKm0TtZZ2InU}hhFGopHX>@sK?YKxAHiB+-H3REDeSgUV7fGPDJ+rN(n7@x(Aj5 zB>ng_1gy<+o8VdgD4)6)AXgSc_RaF@BaNW;eUxDCL&h9&MEc$%A9V8Fs<)azm!v!S zLXuBROU988tcv57BfER7kHq6pzl#bVrO-D$@r7eX@0ep$Z)DhWj@`o$%;HWjB=0rB zPj4RATK4uS!bv}5Dvw-S!mjt>S6$aU+j$0~CYsk?m!QsP6NuKP8z~(ZIiKGGuuh?o zHhvPP99Ye(eby@Rn_FrZwI*DlPaX+<-Bg9ZHL<`IC>XYF?9_g(J>cXx7G2`}we-nW zIP34>vs|}DA%m@KOmv8sZywc{eUF`myX7nLzZvOMAsQ{@ZxjC5@Hvlxjj?9@4PR}g z`QfaRjQ4>QEhSgz%5*D$vbP%OOdkmc*;0D`$!I{zQLGdx88Qx&ePG+T25a5vg z0MDE5OfPInIBLaimBb$V?NquAvMd(j%ur1w5rmM!$jJ~VV-@@WKiV`ljs5 zOto>4<*M}eqW0*&36OBdWxj8|m`qAp!kJ3GzEZYF!~X-KCG#9L7*e-+!TM&Z9g8zkv*RBjVQ#k)n_sI=UkZpKAF?11b%eWu{fKfE94zR5!Dda z#l^57R*ht%sgjih6lzL@7^xN#jf~WZL9u_tj76vy%n(BzfsgxF#-OGd9HCvt3iFG^ zE}{!RUgIZ-(dwEr#^ht}2UZYV=@PW!@uxloRQTX0RZqtFX9Pi4g9T*=bQ^`o&~!aj zqUU7&ePa6tm?VbxV&0y{gDY6;L-9t!izKTf_XW%3{7+Nw#OCePm%26-u3_oWN%xr{ zwk7I+mbfHmAcR?oCoQP^Xa~nOV5b1R;uzj{G($i<#!qK;xO=`aCNVl+y>j1hv6!GU zS8rO6&y~QpGLpCD4MVU}W0pt`TiBOP(;?yRT=>>alT^$=4yyf)lh(|MPo?g|c7f!y z9JaEJ-{fh^XG<(W+M4rRd4JbUQ3Aygj>0hM>PsiJ=f3RO;=7!*+8a#ba*Ir;y6FNg zR(I_H(oc&00h?i@Y0ZaNR)zg9TZ0j2bar8Jp8NINCEQ~Z;J%p+rQPh>q^W=znMdV^ zW^=bJvJAmkYgta}fKB&yC{#$o?*^f&?VHG>of`F@p|{QYX1|$$9H%+w!bj^S*7&+<-1Vrb>Z!CptK0ls{7gF!!%p^JTR+`}P0OMunN-TZ z{_p>gruZKoY(niW4)2ddgxmNlOrowUv(%cs*tn;XZ||XiOCC2j_obBfB#i8)I@1Hx zdB?@EC7FLbh&+l`xq2oxFzUxQDWm7`@MkwSgHFxnL<1?s@Stay!G z(oM&Od4LU$R>*gJ7S&39ewD_)C)wb>{mQe?-v7mOD1Wg_eY@(t;*!PZv|Fml#GE}Y zD=&{6IX;2rzL_F4iSC)%e7*YO_}fXX&)#MK zNET+sa*mJdDqSEZN=F)0tVPSE4P?9&@?7R^+10~qS8?*^@ z#Vgn}Dao!6W%);F#U^KEouJ?)S|FgA55!Z`(?`tCYEJItn}w|$7aND)xEgN9EYug8 zW+5i~%zJOXBH7FQ@3ytJM_wd?cCTDqPSqerLD0S2eOztp*>&({CFRRf{)qeCMjA}9CSn=Tf=_^sh# z>h5Q>?O|%CKQuE;K2o#&+L;UMT9LE>hpd|`(Ph7EvtJS$tY1G@#Q(=O_D37kMi!0g zOzq_-MkQ#w(l|9|udW(WfPc!pCV|zERFNS8-hY(}Z?29^VCHge^S(RE20A*n7Z|Z6 z8vIfp-{OCy-tG$t7|fq#P-d#ol~%<%nLaf$^C0sv!Pu)8ezRUE0~hkZinj~j+z=Th z5;}8WF+43a5O9aFx5kV?_I4VrkpQ`pk67kYt<>S#e`@c}W%??hEk27vs~T^Jv37<2 z=pyGpa!vUQY5mXedsHr}nc>knLuV={zkN)R?R_FZ>|(@#@0Zc?V$W9Za$?UfpgFy{ z5IwNm+ug5Y^rg&h>btnvwyapG$*fl(Mj^vvi5@ByiDHWXk7r1pwvK?eHhAUoi}*z) zmf7{lv&WP8ErOhg5a2Kp`k{xq%-gaI2KP5)zUpdlzm2cDgj^}p`BRc;!fOO;R%)evu^ZI3{eS{k80!Zem+YI6o6N6n*mw< zem71N$}Rc1_jLQh^Lf!j2g1Q*_k9%?AOAD?&y-<@t(k!CCH*azpMy|QGyAW2z^dSQ=&byBHwG@4eMr)p z?3Zec;Hcwo2XPa2WVK(mwuH*$iU-VF>B|`3_S9#M29qmS+lea0!o7Yi5eU)#_5&sd<5HXmq z?sf#xd2v&Hk&4DL)>FA|LTO(3@Y{gVVDO&+ri9UjiNm3LCZ1+UV~L7J{aP2qa71Pa zC}%?@{~ZsEoYrJSNRBGa93Rw6J@7}%>sbK`D%?{&C+dF2)BmRvw*mO5f_EgbkE()7 zGc!_!zp7XR$}8NpzlJ4g?)_E-H$+ylL~H>clOHyCH0lyQ6IycdgZ|(je*yqy*G-pg zlg&2}g4pQKp7f&D2ki{MJN9ECOVnATqH!ZoP5q-}#D{$9f5Vi%>nC>m9|@A!!p&u5 z9`nCN#ftSywsT>#@%Wr3Ki@@&EW-&` ztS8L(vR^8BFd{ix?Noni7#;l_;7bQt2j)iv*E<~_&UBjmku=RO^Mg*N>{uiXs#-hn zKY#;!At|TN;NmZWwGB<_kr|46dIr~DZtFginKJFYj~v}QhZ!{LV@%l3=P2L?na#)B zmUx)R6tb!EqWmY0N#?;8${Ehv#~|S^R_PiQ+j^DDOKC!BGD%=*WnoTI%qYj?bYHPg zSd1@&$AU~#u@LtBxtL15dtL34!{veChr&J?Es^M)o!P9{|5@MeX9P@3(22>47kTXx z*{-m=_=6z$?echzZ*WSBzo2r-s78fp1cJ5+dcQF{S<^cPuQmWnYWa_YP%q8I#Pe`s z35m`I+Xbm#(GHmucKC1ovvp8+J(NbFq@>I@XW6<8et30K{vO}}i|p+uW}m8aVS036q**=T3ls+Tr#mE*>}-9l0@pSSilCnouz-i#t&+SL zgC_K-wZuFVIH&ZsFOpF-E4qt4g;&7{)jG&1R!0+SW0_A_VMxY@nPZ2Hy=56Mlj}3| zdUK@oey>G7=5t%Q4XXv$nv+AMl$EwX8%|0zCKmAEG7`lpT>&7{=)2o<-|E;m-X}Bo zF*i4H<#^!oa?R9;lL%pfVEzdma+GTsHnYc2_nt|i%{wI(aIBZ41$EKQ!}_ZpZe9qO zk#n>bJ!@}RWokqc8+^+s(9bUb@c}zZov=fLX3UN8u9+2V}!R_1S?}u`zv^EQ=Nr%3Hbjo61MEsm`z(0!=Q{D z=_@may#?}UD6BqAW4L0RgyDn{W?|mYr}yUY*{aQx06vGgSk$kW=U$xjLGw0g;|9u3 znOIz8FZer?(*mmt?XHNxt)fe9Fw*Uyhgk806C7o8#_c+j1EU>{pn#ha;LVa31$*9I zY;3UC`@0QWxyrTqpT3A|;K>av$uUgpt;55qpNX8dCr|t{>m*8U6Sl&Cu~#>a7ntj= z^zpzlGO=-*RVT2QXp)$VBnYsuID_|ozd{%WTY-QVYr{T#fKy39OSkpAvl8NwtjSW< z4UXs#@F{1E)l|-Lc=d8IasDRhYp!ra>JG$gGKf^l^M0!E$@((BJ#$!+b6*pq&Q`NE zAt;H@Y7XdK%YU=M4pe)R`o1w6^I6i^VmbY+<#o1d{SCZffZR(B*-n+%dW)IQ>&kCb zkISYS;bs;;l^9woSx^*PM>NU$|v)7VPuuQJ)NYn6$M-#LNQ}K$o8-Lza)Uyvx4Hu7nQcb zNsCRa)td;STgP{%W1V3pc`Y%G{)*4_JLGSkc`n@_DZw6Lb7R@*Qs67dbVDT8%U4Cu zAk$68&&vldL4%A{R%a9Y4dg-a_>Ph33>FNuTD z)Q=?J<%v?3sEwwDzgT|i=X)|iytWhkaUf}=aDRYFP_?YHTlta&>+T~ahIidz*eLWW z)nB)s}_;|MCu4!{g?MVVl>f5_m z{Jw9y++;Jcje+J$tW~<6FL9qHCNG-_snPgtqzhrJ-XYRv&B?9Gq|YRjPbgFqFcU&c z@ebJ+>mZlbA7|y^;fdoI0UoMO@7tzt9ekReiIFx- ziA^~HQVWI!ygqH52YBZH=%Ev&z53DL&>?}H3j8Kw!J~u4QMZuzDn6APp}=MlrA#sd z(UVk-S|sgbnG$kyb#G9+NYoaE?f3&F5aVugtSYWh=?{H_0xw7yitFLUZyf)X=5~dB~QE8Aq;hUaM zvOY+A5s(|0CxT&OI{2vqM^S@IM%IbPwyl|ro6U-^3DLA*gW2 z6R6;KVUFqJ)pIEHo&?R<|Jalg!mH6BVk#EF27 z#dcIdX@8Xt{-B#>P5sZ^@}@-qKm=vbza5 zzxS~=nMk_oA4H^nCJ+k4cplI*IoQ21*gZMeH;Dub=-EIz&sjI)5~tPm$gDBsfzxaO`qoa+U2HiwzuYzaop`cs;hqJHY_|PQ?q6kdFe% z{Bb}V9vJiCe5I0$Ca&G3Kj4J+q}a}7t7ph;a+{dQkz%WTByO>ZrvKjU$D4-lAopdy zgiA60GDGQfq>X$jeE*(rL`gFjxk#lr9z5jUzm+RmzST*cyXKu1i_mrQ9%?@)3;H=u zMyC(})U~Vt7`mlrJQGY`qJBXg_=}aLRy4fcPYJH zo$3fAM)>YK8V+wLFbZC~l(3nvs5IAESdwJ0>YWWAy+9AlF$S<~E9VX_mrB-D`_)Uw z$!E*2Ruld>n@&2IIaLcH6K%bT|1FPwTm_CTNr9dykrgr!6FBPcvqB@u>a|80aP5imN^#(H6Ntl7t7Y>W$5_0kK z?mnq;t}vwEr^y;YvI}ln1FZ}=S%iwzhLJCgG1M#)JO*^xGuaY^Mh!c-=PKjH&Ir{cF@!2!L$ZF$14o11e4PQui>cgnU*UetOwMBHslYp?d z_=*&VCNA|;nNcfzsLzqgrDX&&lwI~hwg$Qsl0t2sIRpvR_(t_!YKjT{C{x#;cK>XR!R%349+I}bo_0$z)oGuwChWy|1~457@HExhQ0gS0TqPK`u_7VAW? z*TlB_5UHfF|4#CG2k1mu<2wAkl2bF4^;D~#BiZA{tlhiY;@Kf!D4%+U91H*;j`U^^ z>&+Z!V(fGk1b7_qGnpZ4TSzBl5c<&Zed6osedp7KI)}&j(Se1nak8odoY$2k0&ey2 zxAxAssC9_v0BDQ2O5v&tyVX>RlAcF#v-C*9?wY9U?H#_@MI;gx8x_!k3Ja%CsorwpI5?j=Hs6Jjh&^w4J%W@~X=2&vx@M>+^LOwv$n} zLI?mui3B9C85nmwD9msFzVVUF)6GZC3MA!`k<~G~pTDy9OBpfQJiS=$KtCdQ8$U_m zcCAT8RflT9=$obIb7#)wNE9-)TiC)qEod$)$1Bl^W($=Ps<0x^MhG9LV&52763n_4 zi4U8@ZiO<`d)=EiuecCFGm821BT`aF({c{h{=S_e{1rUr(Oafj$j0Oy0(?X#R0&EO zy1&uxm9*q1&Mr7hD2*StYAmnGl3g5Dk?$Au7L`bSp4rxg;qO*(TECYPRqf4&LHGi} zPa3hD`HdNML*CqZuZMXShl7C0DhDBNiHh0LeuA}E$)D>uGH<&@*QJ(hP7F?d-G;3h zHv#kjoR4=~j|xh0ny@gz{l}Q6?U0(iO;U?b*s3ASEBZAo^f;6TI7=(24$cfWmfW?~pLPmxN<_spET-;LTX&uZBN{q~>ZI z$OOXrG<9ow`c*Ex>yBRGNC=eM_I(ZEeD~>6SK3qr04)hH`J2s8Xzy{jFp-dgCtWV4 z`rrfjuwj81DxRTpP;)h3YX{c9gH0Ii@wn9BHGB|aVw@BkDF26fFf2|C>Hn>>Tk&52 zzsy^}KW68DM_>NmUh(;VRDK(Ry_#z_DK6hUVtLSDSK>E`)Z*--@jRZlgWY<;I&kd* z3$Q=AtnARm=zEy8f2-<6L|sXIe!AvSrk>V$vzJ#e+$eT-OJ%n*c@4RWfeN&I@;`y7 zRL=OYjqKg*O@+*g(GLC`%gLVT3#O$xhX_6H1<=r_m!Ss~WV@-|aPXDuM5xM9-0$pU zJlwxXJD#{tAN5Ef>59i6ZX4!R;VP|US#yFYpGW1@^Hg6pElt@lVVNx4)pP?JudLT^ zT{ub+RxDo36)H^{H#p+Gld0jXIu1VViQ-jY$Wm_JPzkfFK0B!5SQQof%*+{}4ZB`? z>=y%}8X(sm`%e|EL1&|pyT{}$c0y5L-1fA@jCVm~QJE=2k(Q&vAHB8_h|CDx)~Lcv zB!n-Q@?3Je?f4+8fF{raHNzMsFKg!Qo<^pSaAJq@q%yXC7gGAAog5(JCAgKDt|GU8 zH|D8^6%?IHM9oLyfhC&_NO9#<$?rWKv?Y|xx+y;CGg=iuXf$6e zFj9b-(y@}P0;5IHeC)yPIFOm8Bh4IOcdIikYr61~$!gU0))%j*Heu&+16b3P)_EnS z1F$j4MCl>FD;mH`q;pDM+Zo3G{W?EzMnnc-Wk_LNW_30%v(t|hH5Rw4j-ZMl=YdKG`5T8To2Xb)*IPf^*bgH z^Lz>hl7IvHjA@FckA7;1!$sf65rcYq7IBNu4^&(&2w;)C7c-bfn|E_xK}rj1qFX8q z!6J!9NN(L$pX?v>1?z@Kyix$E38JDY6=b4%j3Su(T^S&-x0p9M;*?Qd@S79+P&ROxD z9|lG5moXWMoXl|I`Lt)!D?3@&^biiEKK%I)Rbf$Fh5k6sN{jltp+A%@+Ndw%CpKRt zqv_1tC0Ym%3%H+N1UT0z`;d*TvejMG#|BK+{kR(bMJ0v!LwKyln0mq`_-#}LUzm?8 zIC-fuNmY3&Qe2Q`pQ9P`xyxUPHDOQX3p%o%m`*HorF`6yRvdjt>@vr1kq{K+JM2`0 zpiw`{k8WpfZ8D#1@**W?OwsM3e#l#Ncw&O?KHMZNm^UehjrI!%p_jAFs5=*=BvnSrL9WJg^&Klf~vc0`MoBT|#<%=U%(~IvLx< z2AFM3jZt}%{pnZ5Z;oxA#~V(6n&*aqob_5pwP4mk@#B(@b?uP01XR8gZ&oAy`Qm)q z?A@#S%+m|SZE->o%=h{jU#z3y@NgCoFq@} z9S(YzNVvt-)QzUJU^9%?Z_dv8bLEOP?AZ_5C1-0o7mGVhxIsaZ97l7JB>3n&O`K-) zB$$B|gHXtI$*}zpSKQNBlKNO3CIBenzDETS9`js;_AL)1liYO1qmlOG7;(Sk6%U!4 z>9p?sv?io7EIei)@+AL6)){yu*VOV$LNfr5@Artya(C}nZzc72XdZ9Up%%V@RqQ8Z z`%96k&w0I4K4$ct6g<+p)O$b5#b*ZpOoivQu4!7s(5&A6uq%fCR5ly8-XD$yddYXH zrce23NiE8nQt`oo)s~*M+#&?X4LU28xp;>--D=B*|3Gd1ggLJ}7__ubo5T`wh3EqO zm{sv)hd$FpaU|;a@})m^y5V$Yq*ka4WwbRk{!B4pB|*@g8@bFETioAB9%zT}vP)sQ zu(5Fpy>t|E{5sol`_`|yTrOONK%v|UC*5SX8^0cKvfU{;D1yhhY@PlqNeydldFNgh z{>p0mtyRKPOn=OJY}Wh9uBD@lQ{!YfK1*s|f`)yVSFOzAe9cifK0l4R`hV`sd{7x| zm$Qf~Cz@`?0y)A$EeF4GH*1~9Je^=yJow>l&`2V*UX=HX9G!h<0H8W0=Y@=BiGDW)56(Q- z^~|f2&RUw8SUyRv(2h~aI%{0a&c^%qS(I~}WMkd-Q6JCd2ie4BF`!#34i_&lJ25yw zxr|Yp*1I*q_irDw#4`8V+?jd_bQf8_ ze>0icAdb`(jXc&zrr33N`Ktzh^W%{9Mis4i4Ffp`sUo>QN$&lfEL;L7aj&o54iwzj zXmJ~kZA2Rj3%!G++>ONa@Zf@PbJ#zQIcsrE27FK0 zOWD6LP-l_x-aR)9``P3xzOz74P`HLnBZNHdRZQTX>_}U;1E)WEAL9xMkW*Hb{%#^3 z{R|+;>!%Lex*+$y2Y^?uuqmM%MTf}mW&-B10)*`dCr*nmzaO$x zO>7MM<2I8AVZXm%Y&X^snOCsBN?H-4KeC$E7bwIia4gYx0JNsAqJpMQ#3Th2H(X9J zi?CP2JHtq79bx_z69;2&-VoSYomdTG5@r_1)Y`+hsiQi(5&{*?Z_>!Yll-m^l>VS+ z6k4eQn>XtR!-{^49v_WAufK_%j$`^}YII-q{Y`Vr(UbF4^GVs!ckP;O7UWR8gAQD~ z*VQ56mlmHCQHN3${@n%Wx_O)gWQMf7Q1aEvX zI>cMKXl+<8;B=eX@Y)N#Es#Y6R(*CoVyLNsi@4z_Xf&F}^8`>~qR#3=w*H~i{lkW+ zd2Ko3Q}xD9BOroE!{2SDa9wvv9pX=#MZj^KxnQDggLyPBnEA%t*j$a=J)_EjS+XM? zU$l#^neUZHNz5v@7dim5om3>aAH;RMy?cXScS=e5-v5r^c^)j26Uc#2$Qw26g_NvT z*|In6lrc_n(pv!5zrwe#i#;@a@y<##c>r}J=c@?c!n3p>KPsE8sfTu5VUm-42W7;Z zZ~7l#xQu67nSMqezn_F;P~Z};v87LL+LZfS znw`9J?+PAI#Vbu0dOCbd5Jf(x=hk^{K=m?!HoRAg>LoHVr*~8>kVG~#L9v=Ar(DS~PpOdW z_e@tB*)G*@-3a^?@SK`#f2=D5)$m_%ibdHv)p3SY#InSnCM zW>*N)1*4!hoSR`u?@>OBoDt{CAN^lsy>obFO|!T?h&i!sO^hAewr$&*WRgs5+uE_M ziMeCjw(;e8&-fHED<<%eqTnt=xYuSTLRK0PW*VruNQ94 zL&I;7pmBBoCU0dwct6dVtdk&_F%ai(&*->Q)7TTx=2@CT=l#N6iG-ek$OU=_(m(vh zcsd}8pEvpvS(kiueSaELYq5dMhJQ33sgqu_yNERHc}v0L2mYa58@|11KTh&UK055& z-iS3ZURCofFJNB@Tx5xk#N%ShE4zK(ZBMwGk=NjywqT>z9<9lV*|XN^3i;|*6iBea6X(uqr2#YBp~BtON5G# zhVua#oA;OKtq-~&KuahB8Xn1t?9}_V$Ca=?HZKm{?P1dws*Dz{rt8}DHL-%gSzQxQ z2|E418o9ID{jm}I$PGN4qK$>ZVle`Xy~e*iwj>e*xt^}UC8%C+P45VxsI`Eg@IBn2 zLZ2I>G`m~A0fjV!D3TE5g8b zu#QZUQRwB%c;hk^nvHj!!~on|Zoon^w)9}G0rBNAm%GZXx<+JH(P-%^dw&BofP9+x zzG@X#8(Ey8il+Mg-He4LBo_ASDT`x*)LGu!2EuATa(eG-W@R%0JQwUfm-&KUoy|Wi z4SdZVe*ElWq6l%+f^lFA&2Kf4e?r)QzhOXkBCR>fJmNc5IIr#Kxn%`VI?~!ez!e4g zQIyYTbT8X}SqqNdZw*Mbo&bpxcysxz!lrf#Y-GOK74FCVk(4DOW{TAEUD-NKVO3{% zy#5nIiVGc@68;eHrK^_`8rifn!85+poK7ubHj$RH@UlMtFb2QCu)pvyGhWH(6LcCh zd2{{@vH!(~x6}-wFF|^+r|)R46S_tfONJTA;JWs1RpQh#t?yMNgG0Wsaj2M(9Z~4` z0@K$9HVJo4j|M?pyJ;n5wIZQvLl;Fc#>dJ$!8(0#BuOdt+1N|g7-+QfOo#ik4D^#K zl~>7gy37#kV_AK#S9O7#IeI9;eXN4w@{wR5%O-OvV#^=zyXiJczWqT4C*O}UR59-i zLEVYey0^SUr5Lqe`^`{*6D&TLsOaG3(~07o;Fz?@a5+c)82Yo%Vk1_=F{MVKYfnhb z_a`G`tp^8Ee?+K%Kvk*+^(E@+LxFu0K)dL8;tc+CF8zEqH1+iktbE-kb$rW?{C$Lp zMP_Si!R|78obG7W>&x4PXV^Lx0n<*oPxEa!3;3R(p7^da#F__&&cxV$yq_(_WQC!* z2Xj}7CE%bHb2+jrn{l}9X)+>lH(2f5avhu3*Tln?q08%=;3vm+Mj#CXMk4FEtwjRQy62*^5#00s*T9uT}U+>|q0$8&+wW_R4 zseX5(O?9hd!zYH`Inw^d8Z;xnx@WFvX)d5!eCBZ2s%cIw87cI>8tMHWy++z}B9Z-- z{YL+T*ZXav&HAT!#X+hShuhe$UWjyVs|vepLsso|uL{iwcme}*Y^L4bL@Yw1?<;vW z0ad>o3y8Zk zjdRv>KJGo+wQ)fOae~X<3kp+c77=B@>I0ernPa_#&1 z0Ywx1&aIW$A*dJ{y3yjbY_wi;$8Gw9SFWp&{%U@tohE-a&bfbB^qtwqM}?9!r4b0@QT%Bzjw*lYjTLACwq8%|$1y`G4LIYL`E?$jo3aB5OMzP{j$ zw5iW6G9(O7$-qx(U(?$MLxgf*QwUBT%Dqw7E;9-Lz z|8Pam!}5Fwn0ZCZHQhGV@o^{ZY4{_=tZM?8N!D|t=*)=($uxA%5@WDn%HZTBaYUN~n)GXv_%a{8l-YJRL?ZDC#zLHE zOl|{kwf6WQV`q9kGL~XNvz0;)|j&LH^hQ%0)|6$%-^&)cG z9Ob7W?2<1MQ$(#C7n|6CPYkD|W}GTifC=tcV(sjZenE{{HvG>H@_5dkY>atw#vGbLz@D)vCJ93|g|})Xh%WC%GVWsyOeg#9tXHg6&^r zA%kM=Su7*g5~Z%d2jWQ85($ywGkz2KaRKJ4VzYZm1}O=WL<0<{MnB%Z;aDnDlHHqK z?}9aU0g{1nc{D5oEF(8JSN#P)@)I1Iqfm4AM1sJ!rzL76cIU3Q7B+$;KYi^QDY0Iz z5oCo{6B(PGE6(*5A&wKT{j}(?JnxA+U|AdRjWvKr_Y2@xk<8hy3DDHffby_(_m5~* z<*64#$l0xxc^a-Fx%LRI>rX|}(9l?pNz{-77?Mz)BBnEl?+nede2VjlK?Kg-o3W7vtoun-<(1>Qwxa}J0J*}NC| zITa4g!*#v5YGynpJYbww?MXWHJZTXA&}RC;I}!Z+LYqfoXosEgmP6`2O+^4Tcxzm2 z6jbEM;dH^f1HE;k|LC>*FiOOZA%2!v9aYjP!_gNP`S z@}#{lVd0Fzlrh`+>S~;n%Su|8A-!NAbU58gCE>vMm-V>2TWb(B-|}nR^BqtT!DGc7 z<0)-C>mm~xDVx{te|0OtEjh3*4-DdrB{t{PCuVn%>S*ROv?OX{Gd4VD40Y(xjKxHe zkyd10emIhtf%389%+^UqKw9!5?&D%7;$_Q9K-Xy|U;6Vg+K_Y=Ov%n%{$&FnnUy|K< zXP;($KiyuPc85~Bz=|+<`PPUo5{K-q8fh_0iNBJ_KvAmZn>aG9I9uRaFX!}QtJEP2wN-Ql(3mQKH6mWq6A%MNRZCVZ?-Ss6oUj^{6tZRl3xc)>8w!g{ot&HBQ z@bxgQBrFjhm!6I2Y-U5d>E;`hStW<=idrtkZXpGmn0I)~;=woA!P1!gqq`i2$m#Yn zgZsh~FvYH>^3%o)B%bUf1LuU59)7`hl5Kw;RBbj>^_Fp`2sHtPvWY3T_NOIr2kX5UA)TXU{d@2kyB6lO0=L!9|jnw0_ettXLRo#WFa`Fa`8Wmlm8pazV@k30)d z1DJE#6Za_^Rd4pE)qw3!6MI#vE|(48Mlaa=1?mLYnYqb0DgBm?fH|*&-#j>b&5@zDspuuLPR#Uz5z87=USXPPuNvZ0%82#id$7m#x9L34D1U& zr6Du>fZ$E737hHRov|lK8HIEbWjqdkd0Y}^&U*E+es*VDv9c-849t*h>*SHpt=lF> z-_G?Maq}5@2}Xh=U`T`Dg8#x@dh$THqJc;QHC z$`&D*Fq&;vSbf;7p!C!ntHP)z*?K;njtpJHWb`C&3~Qbus=o4o7vJh zF-DIOA}oA^e`}jOnG24A#q%>}d<1I-I-)%`{k$!UGCa8W5G-}H55VIirg8sHQIa3x zbVFkFCt(fsG;@+dV-U*NZ+uL{bO50%dr(Y5+1SqPX?yN(RG9T zWA5^w4fc516aHI$A&xIb@ih|ol5zz4Ywh+c6Tsb>Xk*b;j##g%=-xw`{lhTCAx@xT z^Og{AbjIJvCZ6Ftatsfz{1ekFh>@!)%lcnssrXuGLX1vLUkoFfwXG?DnO^cc#PpzAl zJ^VAEuDyxFC+?T4%IEJNKINDefGdlEXTI%*Czs~U&q8gTRZc1RdisY(4=8P?8oV1` z;4D7he(}pgmPV#I5;6yl_88VE=&Ft-@;57gs)AoR_?>=Xs7jhBd5CsoN~BUBzvQ`8 z_S~Xy=0+PF*by=jc!{+|84!p>mO8v z=ZXB!?z}c3IgRfboiZdA`>}_j2VZC+|F@Sta|3S2ibO!1&wD-CRmM8hV~<7ld4f2p zko!}|J6UfuT1hbMDmGb74YeMM?5eCR=17r3J`3ZijHULq4KG$F@c_;_4cDM5Srm=w zi{4BbTI@Q9&e@`G^hd|rukSfWgb!f9`?MeG>eV z5Ak?ka}q4vqKa>>9+osJF^G{s)`TRYa5*yhl)Ik_(^~6qFPcUI72%Q>^I7s42g41= zxER8InlSVFr}EC=OK%YClSCl3mVsn&+$CHt63I)-(q9OpS8pXj^jo~!8ukT@ts_nP z_vlDO$CZq&^_9_^*3m6M#zo%p?qGqsNGupl6Gpsinb8@%9MI7QP+Oxix^pIELK^~# zNz;KQA6w;_LAkaH#>j0OBQYm!ar-&0EiU?hY)AbS*g+L8)UHc1!?7mb&mhk0x#yR! zfK-8KZvL_0mgd%|BC#7x`z-yzypQUhg-ivKmuc#r017)q8Z(~>)ec`7H8$mKN2^b8 zch#(YC<6W8Pp{Lf(lSV>saY_%5G~Ho#W0SQrGZ*bCvr7Y@o!^;24!!*CRQC37)DFu}Sts zY;PN@JxL{?<>&{wOlL@LA${GUy7`u!Ia7qfc~vU=4)}E<2WMnw{C^33LIIrNYc*Ic zuXkwlBv^GnJNa5tv{d|`BgRsjT%=F=C?y+6k~%9 z6+~dHzab2MJbddmVSzT(F|s8Uc9~tpm6J@r@Zs;g-}eJ)22j{y38yCxF5v*Rwhos) zPPwtd-eOuFY0})9vn%oPmTGz=G^4+=Oy~}buGBdkVVr994v=)T)L1bm;c{Uj>x~$U z2F&47A*7jBd#vd`ucgY?!jaV?X-vyIV}KU2 zcTO9JU2vpTw*_b|To~{-uR5V26sf));=BFnzo^{gFZA`{ed=LmI)cCL!>{tq45qLG z(9}6Xf0=MeA3kS?m|XrWfW7xMY^nX}OCWhcETK@UVt3<`lwe}E_QY!Z$D0E2zgoYC z8ke*(l5X?9u^&tst7?1Da5_C#LE}gu-gz|05+|fpDu$Fr2T4Ih9VwR}x_&7D9r0%s zfkskuhYi(IBDgiZM7ui@Jh|>m$M>@xLwqi8j|%HqzBHc94rlK^Azw={Eqvz74F=R4NxKB#JCh|$Cb;h~~b)G!0k)#@_MFf@G* zczL0r5M6qH5@gn~Z0)i-9{S`&R1j(t78$GqdGr+Nf<}6AJEZqXM>q0RK|!tC#1U~) zvYn#oj~vGBq(y&?Yc8m*uiyVUw+PhlAg0i56}DUGpB2%jLIn7+J_5m-GiN zW)k5c933aCP1i&nZ?2)h5^`z+Drw~dC4)GDI1}h9Cy;?X{F;{7-(T*CS*eh!@`$y@ z;3NR!_c>PmE#Tghj3aR8HaqW?rk-S@f75$ZDy#4Oli5|>)wOTORkw?yy`ETd?4P+b zrye?a*6Rqh7>t5v0TRVUvHeRjtsPU4h1~sMd|e{h zg|B4z)x(uLI|XF2-^hTskLs18eG!;exTx?a`ST<@bkfi?LQeE`GqQ@7zcl( zylB|_FWYOa`yK>dsIEn>PrZQ^5n|u+C>0%3^9bdI72x!a-l^oOqol_|4&{V3G7X;3t}jwlLqnW9%!h?E(Y27NGXPTB%41 zT&rd*fiqvHgjPv(KQ7hNXH0#34X0nKaiS1i^6xhkP+^sy!%qJ*z2rA5KL(kJ=>;|@ zdr)V3v;Fh)RD=IHBjAnPHj{%*Jz8O!LAl?n8B7`)T^A2)c$OTw(wpxiL#M|{tQXc> zB2Vc7DhtOl*DXR=AuBt&vvSie)soU*+XoX~x}7Sn*ek`{1jOO^cXXrEnURK%HovEP z$Bnaj%NX$8^kt~rU|2!<@Sv{WR~0vM_hjW%+NXawq>#wN^DcUq{%uSfhhmHB_GW7# z@pbYi8Rn3T+tuP)&!mzFdDgjs@kItQJ|pKMp6kmHXnYi9?A6yAEM5y!oVCRG^y)Ib z#g^?jypfYZINjY*oAjZH`A1cW^_czDXjQv$5M42f=Hg?Qf~siosQBJjbfDAK$(%2Y zF$(=FTiW1Gpd8!+Jj}oaXBFu0$u#o$S?1Z2qDAQ&V-GP~ zyn0cs6R^J4DSsjwb3MPO7^Tm63~@YbG~O)jzs9We4#P2xyD{XPq3@rM8mySn*U`D_ znIi)pFS@FmRXwNyTB=UK1DOc?gwftJK#zWCpxyCrt{okOYr0lW-$JD(?A)iRbyeO0WMVj#^;1@ZS>+6K#&ttS09LB?3$V10#lJ&>qADu!t z!}h%0G0@*j)LWB@=VTRYe=(;HVxL3C;)?%|1F;F&uTpG3wJ?!ZMkIxt_>&#b;z2qn zf&yjUlM`#nUud#|{`#EEXLh&T;0^F2T3Vv0(XbJR5Nhynq)aJz4}`15pAmpZ$Cqb8 zHq7UUPYxM9BcC>fZ#C7f1yp^8ma|jM4w69)>W1AvAgeZzdiJ|is+qo&>YR-c&@me| z#%E_ui`${}lsAdxb}Ecy%gyPXN227r*M(;5b?S{QJEr;u50S%Fg6VJ2Ub0E*fL!Yjl1qgs2s74MpFzA6hAE4SCnlIq{3L{ zrSffH_xn+rJW}&@`857Ho7r}6Es5X_|K^S=FNf|lK1}KAd6dF9?yd*9?yr`CZobod1jpcFaMJ@xeZ4>Zq^w)!U^dn~W%O7lbG+>Kj;x&? z@koBc^f{+S#=FLl)P(w!J1#_rflt$;Lb#BnSS78u#|9GGv=1&n(R%;ph>1Ni?eBLX zLq_*&KoVm-VluvHbUbE8*zAn;lDv3&dbYlG9Jt*&uc{AAy3UqAq~#VTZ|2v&5X8Ov zL2{#b?u0Df?p6=FD~b zX9xqO%_)4yakM8h=1?07NgW^1$A??1uS1x`ChXu|2R9P)H4rcV?0ET)7uWYcm_dqK z%o$g=s`E~nB)`uCzvnwU z-d1ebBo?D}y5H31wWAP$LBMj2s8B#pX|O#XBNB*eVKPAgwDu@W=-R__zrMnJ2GVTp zUwY`|;7|-+Bgz3XyKdv1f91qF5d+6QG9x1vq}<8d%6Lg8Uy0LvailP7WQ`Vg)pdc+ zj%R9LvF}0+O$ZVklj66NeX3H9}LX7#;`YHPUiWZNXU&59dR@C{r2 z8=^?;#VKCQ4LLzVrgnU9dagBUJbcxKwp;quBf?KAlD+8_p&j`gQ!8>+pR$~0l#5)P zi+l<@>j%{8$hsCO$YZNB+B>5*zM9d|CaS>jiJ1;%EL&3T6a5FwNUi`$oX{(`fvYZX z6K6ft64z4kBOIA|7v9$Pb8;=%xp-E|y`*I7CEQN&sHU1%HS+b3@_3E$V?Mt8?YNMV zO)trtptob5Dvce6V=6|g0UVB(9S=tIh#H$iKs5oL7CU*5t*GLgGJ5v@-%2!E4L_Cy ziEZN8(~i`8Wk1=DD<&GpAgh1z$!2=&atReA6Z6j#-SB=<4-G~>N!SqiLl(MI<=kK< z*~6bmW!UweQ;7&SotoW6Hi*$5mo0hllS;Pxvuw8UO2G}|FD*YzR#X|TZTjvb+$PVBH#pngq})gjU}#b7*q z$BSwd7kjVES2a7PQ4FT;qr5{A8G%U_#3q59YL%#u`k>{7rT(Y_$UZ8!Lw#>v?mb%* zY66!;b3B8HBjd=?VjxZNaQ2U#7>3X!#XdrZ47Y^JZ=JR5I^j%@5T3+mgDAkUh}X~Y zX+@HY5tV3hFsi94Hma#9D8xrg|Ga}yl414{T~(!4j#|%Cey?!QQ#=+AtgZhayQ+;C2mwY zOy<0Ce@az^WcAwN(XdS4B8={FH-LECP?02(>HF31z%3D7)6*+PqvGD-T`1Lu7JIHT zUJOn@vZORm9G?*F+mBVX6#|_ZN+-dciMwnJZ;aWiU3xbLWkiN89Fl*bnfJ=4RTL7V zC;&}^8L$tTYg8L?{9wd@jm2)tVk8z#%(*OJQ5s)`PPczjD5dZX1_FSa2po`PH=iRM zCQ1&&zEh^c3HZ<*9v|fQ=K*K(!NXqax1{`mH`N>(T4GqZUKra&*v%Ur`PHHt7%bJ_ zjgI`n1_5P`jOH6kSzZ9yMmR|}!y+0GAYU3qnL1>zW!xs6p;d^Pio=Nos0Jo@snHO5 zjG3N?H$Rf6Vy9vmU0qMLp?TxE%9t;yck076?*L%3*2$kW+G!EA0GKG!t8>amzM}pe zEz}<~Bf_tmc8Q078yG;tg_o;jl;3VWwHJm-6KH_2Vmk@MaJO=Ciwet^9z9JGHcdd- zS4S)nn9;BQJBivh%fg}Ym!IZ!@IHZ}yFhLmA0-S#;4i(8YYgc&BNzn*1l3B-QD(nq z*t&x;5d~#q4N(xwYndd!f*^s)hnk3r;4jG8YBXW_WCfEu`$Becm7oW;mm}`pp6pg^ z3pBHw1((>@10qO1yRsD%ZOrkby}7f?OJlB?G#v9J^X({TS6|bs>u5Mu%8wrJ$i_%G zOqC#T4QwO3>gj$M(~!_XuT+LXEQ`-)TnGK$681L=8>k_UwBl56W}M@XH%38}4$}wT zZKoF`P-j%9H1BbeR2af*FHi+^Au{B6#T<&qnr8WMq+xIk_1q_3xZO04_R=&hVa6He zn4rM=wULDBu_p(hW2Vo0Ev_)dxdo>j;o9XWap7D~pV%j&IrX`?{GA$x-1j5YGUf3jwBJ%!Tb<{&0fP|+#PF=QAKPN~=e zq7aROOT=G3w)a?(>Oi76&q1|WgPpWqhbPXgjAD_9T{hw5yORp^s$uKTb5nGUTN3L2 zF1otIr9h1SvwP%a=)Q(48U8e+RjD5gqjM;u;k!Mce%L_T{fxHvdW8;o^MUzm?&zR! zY46pBpEUc`4tE_FkuP%#v8dzKQvgu4hCG}uC;Vd%p24mqL@rG<&N=o>0fw9VvE|o- zm~h<=I)~3}UpCw0(FUutE|WyPB%6L143#pApFdxhPL!QD*abJfKzmuOi5VHn!IO{y z%JtgnJpwm7d0b(iF(qQPePleOD$U$iVtSZQkxrc`D{C;jciK2(4Wo~*h;C!{b#i(u zrSKUT-mtR~!dgzZA&FtERV~`Tum5X-eggFQmg8Dw_1!OiC(XeHDdN;?_(gsU@%4}5 z(&S20k^=Kedf$E~|C5buFC7vS(5ugKnXdO1fKI2mdGl2ET{KOGJSvl;r;fh;H#XD{ zc@;+(n&yLvl|T!|$%NL&zV&za*>YjN{9;dU+BAv5%!rhes)_4Q-i|jC9Fs=`YKul+ zrz5p0{*yo*b35CRtXNB`RJt@AKMk-vlGqJ{47hkr98pB#Ry>KBviw)Sb`lhX(V``b zslW{9%>Bwr6+|#8ozfw{g@Q}7?bnZ~UODSYfuBpIRQ9PM2A|QLZzO^eiJq;%xwX0_ zOz`yRVeSE!71y}pX&S1GMBeO2q&C0fM?E39y?mvn50|Cf^<*K&g=l4AN9Nczi681F zeAK1JVetg;<-~FYewIDF$3O!|`;#14=^POqZN_g2QAnq0e|re>Ohou6B=H}exjEu6 zM}=EZ-4K9($e1I^q4PB^kEquWs%Yf)MVVR~hCDx51d%W&IEks%ka+XqX5qsNzq}vW zwUndW{?fC9vJ4xJx>VHyvrLD&Qh)ik9kgF;a&|kezA_)q!}{)KD(ZJ=a=Mg4;*)}C zzdfj+z)i0rYp5M6&Sb(Bfyu&oN((4)c62?#u1_kXwS<#ly+s}cjN{r-0he2vi&cvXr_tg#l@c?CBg zeW_)JQ;=8k2R&yJA-;A+6xT!LpD-XI$O-jMyvpneFT?e4zzfg?&_aHn3gRX!n^yRp z04pj14;c?fLsnL600kC6BSxndHpNHhtrf_K^S*NELP|~!frjv$L8MLdU$PGt@PVL~ z+1q1q&D=b!P=ESXqOkBI7B{>AH9q}fz<^obErp@5e}{@;3lP`87O3gKy&&x>@TE>= znuk1q5jy}Th*0G#wjf{YYc5N=N)K7N(PuP1;NzPLy09h#P7prfb(f5S0ummV>uc4* z|E}S$i?J;uDa)Mk97inptmsOLaF4Yboq%X6zx6?*D!iiVp`d-vNV0W^s3P%xil-T6 z$PeGe9;*kjtLHw(c2_@I`VEZH4Zl3U?Z+3N+zmYs$|$Pu#P;9?`u37KSMqrL*T`$s zw9uyS&+(YDuX@}jevu~q#x!d{13I}KD5k8if)zl=hOIgrBt_bkk&dc?c%=SGxI_Eg z`K!+2Y$MXxy9;jrWPja7tT;LOETxq>92z~vrZ3g22X9)oT6Xf`;^@S&**2Be&nO$W zr9%u4+aqLlnNXv-yWnF1ViEO}H*IdI=TWn0z^7Lb9|*0o1V-P@nrR~~VdYNIGWrJ- zL59hI=i!}*5w~kCB7eP&tY{S{ntgSDjXLJ%%YrJ{P0$ZvEzQ0c4HE2R6*;( zo29Y#({7NfvosOW7ccteD-HA(F@#Kni9_UjncVr!F>6}t`++%rC@6^e`j+0%om_?h zm3;kCi5vC>%hCdltSzzX{a9c7yQQ!c2Be3ZR<+LNEBK(S4AwDWSxsUSemL1ji@T#Q zPJj0DFs5ZQoy(zt*^b_}x?3QT`)Z1*(UTqSsx=~b#H^B@t}R;_0v_k(%f?4makeif zW^pd>Ehlikj^xxb67(+{|KYvSa*T?=USyh^2w)^H`gOt*2aNTYj{ZED!8kPX)SEp{ zLeOQ;C@ivH@2IcD<4--caLSvoIhrt52B~`H-}F%-0xJM?lA~edp7imVnWbGKOmr~y z(J%6HTHK!oNR|xOZC`F3*9;_al8$!iCL^8|=94)LXrZ=I5S zE0yW}xbeD&gPE}*t)%8j-#>{i@^5goR(jeYm6WrEMVaoS7z;D#s6IQg^I4O~L52b+ z9*1=`+{^8e($Xx~Po^T=T3^sCwI9oOgg$R_-%kN#atYxWNd5^h< z$POdfdsl?};VXg47i&OL1Mv48<##K7eKuZOcE!uO_#i8eCM%W9`UOU(l^s*p561c|jBdTaJ0w1@=hgUreM2*HixTT-IWp`hXSmgFLf~$6_bAq~ z@b&&9ozfUH%BdA370#RLw6;&e{z6n znx?p)qwusHYWr#*YCV=6b)>0Y7tscf^T@ushX&I$zEMpsm!k!oS$kwdJ_?jy*Ow5w zn)?T){n`NT>zX=wcMVAGp7}wQ3dnmcy6=zKlDrd$YNjmq7xkD~$NJsM+dEYRYM0Mc zKHl@}u9or3!xOzommz*?)!kK0AES?kO73fHrDOcNYHQD{=@` z33KM_84!f-^2yE^_%SAvG1Pb(tCjp#wbz3!zRxXa^TMv<4jqx__J@T9k5@eeqa|NGi26|}6FyFyZ_2gUh z<GfX;bQYiIJqWa%s?C_dq)7yc6LLdit6K^h)L>y!0o!b6Ca#5)Ko}2bD-$k z$%hipkV3S=hi?sKLY(e>HKi@tL~KL#hWO5-h*nEtGv+xx(v2DE)3)|%T^Rz?ffM%K zyH&@e3P-tr61(^xNAWS?*Vl1_J8#5^0au8E?lA4|Z|ObD^r&!=B#-6=V_p}i%(oH3 z8(Rpb=O^+3$Y(5d z-ns-31xwn4TeWe0YX3~fp$sECJJL;7yeff}HWy16z=(G2ttn*YE;18)Z?G|9_XdPa z-=#C5Ci^DtALLa=ooo*3837B=-q;ITC37W!o}K$W#n&)xG;g|GZ=vlp&I*4&a6DJ8 z5P&Vb*yYEELN2}8`Ep+V{#N^04m_*izxFNv<&HcDW!jj98>)`AE~?*`cnRoARb@YO zP~HiSvlY0Gzz=DrTygVXj&P#PC0SF;L>c#rjgr=jM+UGs^YO-^S7vJanyhRYHd)&@?u{AgX#_-%1K@as1NuAb`p^M^nj@{dtjQGA8@q8~#o%!+0d=%xBpDc~JT9ohYhsM~o)`wzuVUvK%bK1xa)CU$m) z{eqRjVqL!@WQ!8c`{RoWEqFbB#!nv<(7GU28lQ(w4RQ+Misw8BWOWxKi((_AL$IG- zeJBXBb}S7nu_X5U*wUzB2)vJt6GQC&uDNZjZL-pLJ`(4PMVr3df9`Z97yYa(+WL7) z!f|PFr^ep@IYfi`_EQ?^3vr;#`K`&({%K;Y(pRvw9%LBNTpYeb&#(RA)^cPqYQI6a zP}J1lB*n3E&Gi|ite21WitTpg6)O#x0#?dv&#IHVxEEvdD_t{6BYMo0W8lagxm8~^ zT^`%QNph;KZA>nWBAFa-?78&T5x$$bQ%#ACxiKI1OE#7_1d94M~^M&+%g*-qn**A;ROfL^h;rl19ya{Xz8zHxu9R?b0z*1K0)@L<&5?fL0{GXg)v z$riYeh)ZLGFp5O3yiKU&aIJ?}4%5MHyziIH0>6@c+&6WB`{}j0(oOPxys}d({oigm zC^Ur6EXrXyt)E2W?myfF;E=8?HYZ?PWDY;$0}-gPzl*^NuJg@@hrJyf8D#xP2R7H+ zQ0qzUA(VZuQQ+$oV6?=<-QTFouPZR&m>@LVR$`zYy@B+$9ukdnj=)e08P@$Xn4GFo zo{2Ba$sWxo&?uQE^rQ57a9&ohLN_!PcU`u!!D{(N7k~CZvP^arN`gZ`>a|vTQ%$gitJ0o^Bu-VNTD_0kF6&9oK`2JLQT)@tadkZ zC7n+^&VFa>pvbJMDY!`Icb9?(!eh$|Ii?t=apsJSbfSNzoD@oH@nD-QY6~?E6=1Q- zsvK9+P~W&wa?kY(>lI^}xPiCP(`V_&EHThO)p;P?UzOiZeY&b<(F>9WbW0nb}%qIp|=4aM0Quwa=ZIDgn z+IrCZ-KC>x8HTjh2ds((kzpI0!pmD;wCMB6SDKX2~F5uF5r(ZQ;s9Pv;}((Q$~QVyM8x%L!E#wh7ht+5xO zVl!}$EU>)e5$yWJ)22O07X8MJ`Zekd>Eps8nl-7)(s2a&0;2QEogA@}rXnMS(52Xz ze4w72wMdp)NnwtNRp0o?d%)Lw-Pv9Z!$TMHsMGsT(;har#xXgYZ9&t#jQ$-C;ym+s zb6+WOwN6%mRZ=}te`>N6xdW2R-6bcMG+)?K3a9HRhlx*00JQdvNqHc$o{>fLGfndP z(3~c!L${IYnRwwZyt#)@?w7aDJ+VKjW1 zC*Wm<)HrZ#GnXw`)huo5R?9rYkW^O9ld;nH%NNW%31I_Kdwnv);P;VaaqQjF;tvLW*%Cr5(E{4 zXKM_yHS1eMw;bdtC~V3B}bkvc1x9tf7kvSO(cB8cbL=Q zIK0A2+G{wNXN|s|%p#Z)=7k|^DX|=SSf})25Hn8@Bds}9mb*u1?$ zQ(lJ19rbbUMMS?MC5SHQ|D(6e|FqvwMBV^MCFb1m`Y~^9JURM)p7Bx}^9eC}eKfiVd`K_WUd}(V`L?pW z{4Tn1sb@aBKZ8}bC(7O%(4ep0@P2P=BNwbGA~w>nHNmikrB{}W+;{s*S=<{bUMN?- zmfI>R$D3WXkx@SFRF!=AWY^Z<*C>?OlK4EM732v@o102&_y{NF!NkfX;|o`iq_1*4 zr3L9+sEizc`GJc9^rGNOtZC8qsyP2BQp?7#P_^Ty_WO~q2kF&tG{aOe(!mh4T_l5#_hwt52C-|mM((OsN@wB|7rMj6ZufRY%W`NE%N7|KpdMmyDa(sy+m8TU-yU(Eg{sht1xeTW?s}F7 zi>eP+mSorEx?J>#;0kEIivJEv+B;bSMpeRbMz_xC0{JYHG8(?oo}BdN=^fTh^4@R( zcK?Q=G`L?G>baYbuUzgW>mAn&;r&({AZwA z1vcd|I9Zf6eaLzQouF|1T|r}f4QMo~=2JNWofiiandRkGotm;{G8g$sB%+iQ6k=BM zz$>pqqrs>pJ-vT!vBqxCPjOH&jWW6K=1e!$@AG;U#Hs_dHvr{{c;3ya?b&lA#Kq;A zWqF8NEmWROaen(0s;03oNwurl^U(wWx=Vg0AGI^o5c+48xFV}8RSohgjIxPOxa+YYIJj$S*wVXO2Hou{X7znWlhD z*Ecs+j|mIzK`{Th_6G-x>0m=+IfF{57QV9jK6wCSPBB9ozL(1wt3+sM=vVr6Y7#Ck zuFbuFF6YttLJ`TLiN{H5t%urd`Q@-)y6)-+@UiAnD2Q+0*v?ZaD|v4Z%e!H7iA3dS9e_29{r=rqKeJtIm!D zO7=$y%J@;!zf_Yu{ROYkjJMs^c(0aDs-Wn{-!?}%fH4vP*Xs8w65GTRzcRg3 zsC+?l@khlwapKAK!~U?yiEQpkH+cXV4k`#;(f*h-qMV@4;{hn><>s*H*>{=K|3pOo z(;GcQ6e{EHBA1M4M=@<%r=!Kv<9J-*;wjD9FX-7lT!eU9ZEmt4fc(s(+wzeZ@1IdY zDrEVyCeXqyt48A{EYMFN9Mromy}wzN545Z`jmku;rH<5y2kP*QJ*^^affM^vk`Gkb zD-S+{@?Oozm%IS*egb_6@Yr!0OF-B_y|->ySkh5&M?>;HdAX~tX(&4Yy$xdMAn-3X zTt4`#h#~-Wa9i5=0E8zJ;0E^he*A5h(fwPDV(H)2OBRtAW!i@_F4kj4&g_091=vkZ zJg&5(NDQm%`oP0aXijK1Ahr3*9-e@?L6{nt_N@RU5N@Qz3-15`tm6dz(~;dg*Pl|d z;}__sSsu_`ZI0!;o~JRENCfRr0E*&n{wM+f{xk zpF?9qNWYV$?hcB6k@vz645!)(%b7fZYx-y{x0aTR3U0Fey3YAuYI-x7->5JK*HlyYTbrq>tC;L&D&|Zq zyB4LVRRm22keYzRsE)p0(c*|<|IU+OP(I?xMfDND6QrX@$d|A*274hn23sOfkc@B zGEH$%V_%cdhSMEq?F)Pc0Jb_@Nc`gn{jRg`{h8Z) z%{}7oaT!jpFKQdAC)d1iYyX+6w)g}RViUqTU8xGIR2<1;rfUnh*$T$k!esvHF_W-F zloQH!A{mtD`T5WIpNc)L4*MY6Cemb-cXzv$epQxZY(0kHTjv{NvwrF1FdIHz2f1^V zYD@~wka^0VO#vuBHv@kS(#m3TUBD&%74G1JQ%B{LgH47+o>i9nu1@~JNO(rHV7m`d zl%1A!$L0;Lr?_IGb|zB*T>!;;^VTJvI9&wZ{GkAMUJJ?}KlP*sIw@0~mSMaZG@yBk zF$-@1+0~dY6ez`pUbFR~TF#juwX5{5nwk@ay33zNxHyHP-3f~uZmC^vhR#UeeGY}i zRl#f#=&zr*?{p*|cy^7W{=*iv9d3FG<54g!uY(x%6-%zz|Voi)OWqg9Tp>ere(37?sZ^;(+yJNu;G zy3gPj2@v-Sus!o0EWAH#I8+6xpd)eRX7Vky?vSbHup2qvx2vj z97%?HMD>q}a{0!&qVqo#J?A9yWg}9mb-rcXmhH^|Y`uLExKE=TaK5`MIt zEhIjEfY#7S{4V_&lIu{rcvLZ`bM!Tu%#9xZt80KQEXqKS9t#0!I*MpYt#^&>qU1Gf zL==@bv=8>=hGIjVbA{?6bv_sGTJJmv()T`}WTH;PUM77JW|#lS0U{Y6QoXRAo@GMj zM@lk9Mc}UY9{bi~!e=nuNUvK}&pxyum)GP=&$%4AmpF~=^uXPSjk9?~ky5r4`5yh+ z@+G`3lTrVITII7LpT9LTd+|L;7~8OK>6~aAWK+!DUo~L0ld?I; zM%iy)-qV(-4KXD^aPpim8F#Ojoz`9q+e%ljX&Y;Gw!>iFqlO-}a~R_~8JRC%Nn20e znp$Fw)jv|KGe9ND1e54C>p&Wq?{q-We9l8y)wxfpr7L(-=*pA~wvcOIescPOQ{jh% zoCk&}Xm#wQQ1vD2NSV}6i~e$3)R22-RaAZW{`KqghT|Or>3cNsKNOl1ee_X3#$K&& z&PAJOJUBxYZ>FbTfn&cm%P-XH*v)dMKr5+Il!hwlODN!tvVg8MydvG|ZM(ITH1%+Z zZ?DAB)I7Y7I%|ZfXzP)bom*#h3vNmjD54Y>v$RB;*Bf7~9hTRMF;#HnklmRKUDv|p zgRSIVeq0JLdV_9L0^azJIW?-%Sr=GRtuA+U<8Xn5?_ChmA^)6Oayku`SYor#R+u?( zzF2Ljr=BuuS0L2Fwc+Z;X~~V%Wwe2j%O~nGlwE&zoAoFzTG%wY`K*tW;ZrfnG1jqP zmGf@ctAan}?c&7!-6A|RHuXLhKh)V$hgG2&Ehz+fb89a%$0Qhdr^3kl1kk;&q9H`T zKH8ZGAp(73K4g6=0Rlug#V*-hM_p%!$#!aac^ztp`e$7OcS+RC>L+-pYHB*SU@+~- zZ>nm3->CdH0rnPxWp&fXlk(zVUse*zsXA(!C0wa8R^I_mXR#}-y2d8p!`wKj-g(WJ zGI+yI)u8c0m|L(Zd%jN)mY~uCntta4r4(IO`A043c@Uy;H7B=ax%B?n#Jer*+Mr}e zg}y~tSEaL--G1N4@U|HUw6@3yx2%TJs=OSwan?5NY}L|!cIh5v(#jUIoAt&06(!I= z`S#YKl=iJ(r$SPm<`^h$y;!XGh=~@J&&o}dqRf0^>!^(@`GpepMQkAb!;s%hIY{V;_v>Wi{pv1Wab zk3_Rrk<^veBeJ}UQXAyX-c1?*kNyH}J(6#WAIe zvhZhLo~u0{HgcdJ2Qh(I(&H(uj_WQSxE{M&&(~$ zQ-NV+4frR0j5gHL&c+CJl~H9Irs7##OLlIlo2{B_Hnym}TX6!_JfN|&WhjJA(2v&V zVOc+^D|VOSPnaJq1~T_%BSrYqvs{$@y(I`5P;M(4TS8>-AdCzqBX`!||8CPouiA}U zo;NzG;4sL&v0;~Ml5>X-K9=>cnHRLSO^aWb^2T?#^>IU|W@kGV2;MbnoP&ro=R5p- z4lfC0B!J61qHRBkS3-GPfosY;ORIm*_P3#0E|?t9A8!4xp=HIR}kBgZjP$)8oLfSH^KZ!(JeYYhlN`EL`brpTi$6vW Date: Tue, 13 May 2025 01:46:47 +1000 Subject: [PATCH 2/3] Create a post about the new keys! --- .../static/keys/49776EAC872B884B_public.asc | 13 + public/static/messages/keys_and_addrs.txt | 29 ++ src/blog/post-3.mdx | 266 ++++++++++++++++++ 3 files changed, 308 insertions(+) create mode 100644 public/static/keys/49776EAC872B884B_public.asc create mode 100644 public/static/messages/keys_and_addrs.txt create mode 100644 src/blog/post-3.mdx diff --git a/public/static/keys/49776EAC872B884B_public.asc b/public/static/keys/49776EAC872B884B_public.asc new file mode 100644 index 0000000..468a6e3 --- /dev/null +++ b/public/static/keys/49776EAC872B884B_public.asc @@ -0,0 +1,13 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEaCHi6hYJKwYBBAHaRw8BAQdAUkJKd5594hqQ6PmzlENC4drfNZ6snlgNzOIw +c7IHbbC0GEFyaWEgPGhlbGxvQGFyaWEuY29mZmVlPoiTBBMWCgA7FiEEfr0+DH09 +XH1cqKA/SXdurIcriEsFAmgh4uoCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcC +F4AACgkQSXdurIcriEvFtgD/b9xp7v1K0Yf7RwfDr586bp08M7t2d6YViLSq3+l+ +sSQBAIsabbm5pOroeBEKVCWVbu4KHujVxekE6O8h8FMklW4CuDgEaCHi6hIKKwYB +BAGXVQEFAQEHQIUP1QGeR6y4ofAg+sWHQsUw4TkSXRe1Nuwg83vJ+twPAwEIB4h4 +BBgWCgAgFiEEfr0+DH09XH1cqKA/SXdurIcriEsFAmgh4uoCGwwACgkQSXdurIcr +iEtkXwEA7iAz732NYxpWFJqzBiD+4j1CMxwFrCslY+4Bsi07Ky0A/RFfz9OIHuSm +rvZLEtze+HO+dJDRGTRoHCbjEeVQey0D +=LJQZ +-----END PGP PUBLIC KEY BLOCK----- diff --git a/public/static/messages/keys_and_addrs.txt b/public/static/messages/keys_and_addrs.txt new file mode 100644 index 0000000..7f2bc9a --- /dev/null +++ b/public/static/messages/keys_and_addrs.txt @@ -0,0 +1,29 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +Email: hello@aria.coffee +Website: aria.coffee +Main Git: https://git.aria.coffee/BuyMyAria +Backup Git(GitHub): https://github.com/BuyMyMojo +Alt Git: https://git.witchcraft.systems/Aria + +bsky: https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn +bsky alt (pds.witchcraft.systems): https://bsky.app/profile/did:plc:valun42etpm73we7bgyh64ge + +PGP fingerprint: 7EBD 3E0C 7D3D 5C7D 5CA8 A03F 4977 6EAC 872B 884B +PGP Key: https://aria.coffee/static/keys/49776EAC872B884B_public.asc +PGP Keyservers: https://keyserver.ubuntu.com & https://keys.openpgp.org +SSH key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe + +Crypto Wallets: +XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm +BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau +LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY +ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58 +-----BEGIN PGP SIGNATURE----- + +iHUEARYKAB0WIQTnt7jSDIdTwHf5sXEZq3qkYrirOwUCaCIXOQAKCRAZq3qkYrir +OyZvAQDPFtFOpgFumJBjL5AuwBv2ezxBu//WmQcwMIY6NDReewEAq6i+Q0GOC8FI +1lqnI9uxr10FIGSemJ4FbUmve6GrWgE= +=J+Ky +-----END PGP SIGNATURE----- diff --git a/src/blog/post-3.mdx b/src/blog/post-3.mdx new file mode 100644 index 0000000..7e8c383 --- /dev/null +++ b/src/blog/post-3.mdx @@ -0,0 +1,266 @@ +--- +title: 'My Online Identity and Security' +pubDate: 2025-05-13T00:00:00.000+11 +description: 'Time to get my keys and addresses all sorted' +author: 'Aria' +tags: ["learning in public", "security", "GPG"] +--- +import { Picture, getImage } from "astro:assets"; +import ssh_autofill from "../img/blog/Screenshot_20250513_004022.png"; + +## Email + +My past emails, like hello@buymymojo.net, have been shackled to google because I relied on "Login with google" a little too much when I was younger and now I'm stuck with it... at least until I wanna deal with *the horrors* of figuring out what accounts I'll lose access too. + +In the mean time I need a new personal email that actually fits my needs! For this I decided on [purelymail](https://purelymail.com/) as it is just one of the best deals around if you just *need email*, which is what I'm here for. + +My new email is hello@aria.coffee! More on communication standards and stuff bellow! + +## GPG + +So for the longest time I have handled PGP very poorly, my main use case was literally just "I want that pretty verified label on my github commits" which is NOT a good reason! + +I am setting out to fix this and learn why things are done the way they are, my main goals is to have a key I can proudly display on my website and know I did everything properly and have taken proper measures to not lose it. + +First thing first is to generate the key, so one ed25519 generation later and we have it! + +```bash +gpg --full-generate-key +``` + +Next I need to make revoke keys just in case. I will create two keys, one for if the key is compromised and one for if I replace this key in the future. +```bash +gpg --gen-revoke 49776EAC872B884B > 49776EAC872B884B_revoke_comp.asc +# Please select the reason for the revocation: +# 0 = No reason specified +# 1 = Key has been compromised +# 2 = Key is superseded +# 3 = Key is no longer used +# Q = Cancel +# (Probably you want to select 1 here) +# Your decision? 1 +# Enter an optional description; end it with an empty line: +# > Please look https://aria.coffee/blog for more details! + +gpg --gen-revoke 49776EAC872B884B > 49776EAC872B884B_revoke_superseded.asc +# Please select the reason for the revocation: +# 0 = No reason specified +# 1 = Key has been compromised +# 2 = Key is superseded +# 3 = Key is no longer used +# Q = Cancel +# (Probably you want to select 1 here) +# Your decision? 2 +# Enter an optional description; end it with an empty line: +# > Please look https://aria.coffee/blog for more details! +``` + +Now I need to store these keys securely. I will create a 7z file that is encrypted +```bash +7z a -mx9 -mmt=off -pPASSWORDHERE 49776EAC872B884B_revoke_keyz.7z 49776EAC872B884B_revoke_comp.asc 49776EAC872B884B_revoke_superseded.asc +``` + +Since I want to store these files digitally somewhere and 7z [doesn't have redundancy](https://en.wikipedia.org/wiki/7z#Limitations) I will have to create some recovery data myself using [par2cmdline](https://github.com/Parchive/par2cmdline) +```bash +par2 c -r25 ./49776EAC872B884B_revoke_keyz.7z.par2 ./49776EAC872B884B_revoke_keyz.7z +``` + +Here I am using `-r25` to specify that I want enough recovery data that 25% of the archive could be corrupt and I still want to get it back, it is over kill and produces files totalling more than the origional archive but total these files are tiny so it is fine for me. This is now what the folder contains: + +```bash +. +├── 49776EAC872B884B_revoke_keyz.7z +├── 49776EAC872B884B_revoke_keyz.7z.par2 +├── 49776EAC872B884B_revoke_keyz.7z.vol00+01.par2 +├── 49776EAC872B884B_revoke_keyz.7z.vol01+02.par2 +├── 49776EAC872B884B_revoke_keyz.7z.vol03+04.par2 +├── 49776EAC872B884B_revoke_keyz.7z.vol07+08.par2 +├── 49776EAC872B884B_revoke_keyz.7z.vol15+16.par2 +└── 49776EAC872B884B_revoke_keyz.7z.vol31+11.par2 +``` + +One encrypted 7z containing the keys and 8 files that hold all the data I need to keep it safe from bitrot. + +just a quick cleanip before I do the same with a backup of my private key + +```bash +mkdir pgp_revoke_keys && mv ./*.* ./pgp_revoke_keys/ +# . +# └── pgp_revoke_keys +# ├── 49776EAC872B884B_revoke_keyz.7z +# ├── 49776EAC872B884B_revoke_keyz.7z.par2 +# ├── 49776EAC872B884B_revoke_keyz.7z.vol00+01.par2 +# ├── 49776EAC872B884B_revoke_keyz.7z.vol01+02.par2 +# ├── 49776EAC872B884B_revoke_keyz.7z.vol03+04.par2 +# ├── 49776EAC872B884B_revoke_keyz.7z.vol07+08.par2 +# ├── 49776EAC872B884B_revoke_keyz.7z.vol15+16.par2 +# └── 49776EAC872B884B_revoke_keyz.7z.vol31+11.par2 +``` + +now to quickly backup my private and public keys + +```bash +# Export +gpg --export-secret-keys --armor 49776EAC872B884B > 49776EAC872B884B_secret.asc +gpg --export --armor 49776EAC872B884B > 49776EAC872B884B_public.asc + +# Encrypt +7z a -mx9 -mmt=off -pPASSWORDHERE 49776EAC872B884B_revoke_keyz.7z 49776EAC872B884B_secret.asc + +# Parity +par2 c -r25 ./49776EAC872B884B_keys.par2 -- ./49776EAC872B884B_secret.7z 49776EAC872B884B_public.asc +# . +# ├── 49776EAC872B884B_keys.par2 +# ├── 49776EAC872B884B_keys.vol00+01.par2 +# ├── 49776EAC872B884B_keys.vol01+02.par2 +# ├── 49776EAC872B884B_keys.vol03+04.par2 +# ├── 49776EAC872B884B_keys.vol07+08.par2 +# ├── 49776EAC872B884B_keys.vol15+16.par2 +# ├── 49776EAC872B884B_keys.vol31+32.par2 +# ├── 49776EAC872B884B_keys.vol63+33.par2 +# ├── 49776EAC872B884B_public.asc +# └── 49776EAC872B884B_secret.7z +``` + +This time I did parity a little different! we created the same 8 files but now they handle recovery for both `49776EAC872B884B_public.asc` and `49776EAC872B884B_secret.7z` since I plan on keeping those two together! + +Now I have all the backups I need I can upload my keys linked to hello@aria.coffee to key servers! + +```bash +gpg --send-keys 49776EAC872B884B # Defaults to https://keyserver.ubuntu.com +gpg --keyserver https://keys.openpgp.org --send-keys 49776EAC872B884B +``` + +You can now find my key on both places by searching hello@aria.coffee! + +[ubuntu key server](https://keyserver.ubuntu.com/pks/lookup?search=hello%40aria.coffee&fingerprint=on&op=index) + +[openpgp key server](https://keys.openpgp.org/search?q=hello@aria.coffee) + + +## Passwords & Secure Managment + +I was going to go directly into SSH here but I needed to take care of something else first. + +After talking to [Ari](https://ari.express/) I was convinced to move my password and key managment over to [1password](https://1password.com/). + +After making anew account you are given an "Emergency Kit" PDF which contains the email you signed up with, a secret key generated directly by your device and not their servers for recovering your account and a blank space to enter in your password. + +Before this I used bitwarden so I exported my vault as a CSV file and took the time to clear out some unwanted fluf that I did not need saved... this experince was not very enjoyable, needing to manually tell 1password how to read the bitwarden CSV file isn't fun. + +Now that is over I can get into the real goodies that convinced me to switch, the `1password-cli`! + +Using this cli I can manage my vault from the terminal as you'd expect but I can also use it to handle ssh auth and git commit signing! There are also a ton of [shell plugins](https://developer.1password.com/docs/cli/shell-plugins) to automatically handle auth for different cli tools. + +We will now move onto the next section where I can go more indepth into using 1password + +## SSH + +Now that I have 1password I can quickly generate the ssh key: + +```bash +op item create --category ssh --title "hello@aria.coffee" +# ID: [REDACTED] +# Title: hello@aria.coffee +# Vault: Personal ([REDACTED]) +# Created: now +# Updated: now +# Favorite: false +# Version: 1 +# Category: SSH_KEY +# Fields: +# public key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe +# fingerprint: SHA256:WqtcVnDMrv1lnUlNah5k31iywFUI/DV+5yHzCTO4Vds +# private key: [use 'op item get [REDACTED] --reveal' to reveal] +# key type: ed25519 +``` + +this quickly generated an ssh key with the public key `ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe` and saves it to my vault. + +once the kay I need to add a simple section to my ssh config: + +```toml +Host * + IdentityAgent ~/.1password/agent.sock +``` + +from here I just need to add the public key to clients and git hosts and we're gaming, auth is even handles by 1password which can get set to use the same login flow as your system so if you have a finger print scanner setup you could use that for your ssh connections. + +while adding my key to https://git.aria.coffee and https://git.witchcraft.systems I noticed something very cool, 1password has autofill support for Forgejo and github! + + + + + +finally after [editing my gitconfig](https://developer.1password.com/docs/ssh/git-commit-signing/#step-1-configure-git-commit-signing-with-ssh) all my commits are now signed with the same ssh key! + +## AGE + +For encrypted messaging and files I prefer to use [age](https://github.com/FiloSottile/age)! This tool can take in ssh keys as the identity for encryption so I have setup some fish aliases to to the following: + +```bash +op read "op://Personal/[REDACTED]/public key" | age --encrypt --armor -R - input.txt # the fish alias would end at the - so I can both pass in my own files and add recipients +op read "op://Personal/[REDACTED]/private key?ssh-format=openssh" | age -d -i - input.txt +``` + +This uses 1password to fetch the correct key for encryption and decryption, making sure I can always decrypt my own files if needed. + +## Crypto + +Thanks to me being trans in rurual middle of nowhere I have been ordering my [HRT online](https://www.youtube.com/watch?v=o2Ggwe2j0Gc) and the most cost effective method to do so is crypto. + +For holding onto my coin I chose to go with [Exodus](https://www.exodus.com/), Ari reccomended it when I brought up this topic with a group chat and it was a wallet I had already heard of before. + +I decided to go with XMR, BTC, LTC and ETH wallets, not that I have funding in them all but they seem like solid contenders to just *have*. + +```yaml +XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm +BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau +LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY +ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58 +``` + +## Finale + +Here are the addresses & keys I have settled on, signed with the mentioned GPG key. + +[here](/static/messages/keys_and_addrs.txt) is the origional signed file if you want it~ + +```md +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA512 + +Email: hello@aria.coffee +Website: aria.coffee +Main Git: https://git.aria.coffee/BuyMyAria +Backup Git(GitHub): https://github.com/BuyMyMojo +Alt Git: https://git.witchcraft.systems/Aria + +bsky: https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn +bsky alt (pds.witchcraft.systems): https://bsky.app/profile/did:plc:valun42etpm73we7bgyh64ge + +PGP fingerprint: 7EBD 3E0C 7D3D 5C7D 5CA8 A03F 4977 6EAC 872B 884B +PGP Key: https://aria.coffee/static/keys/49776EAC872B884B_public.asc +PGP Keyservers: https://keyserver.ubuntu.com & https://keys.openpgp.org +SSH key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe + +Crypto Wallets: +XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm +BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau +LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY +ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58 +-----BEGIN PGP SIGNATURE----- + +iHUEARYKAB0WIQTnt7jSDIdTwHf5sXEZq3qkYrirOwUCaCIXOQAKCRAZq3qkYrir +OyZvAQDPFtFOpgFumJBjL5AuwBv2ezxBu//WmQcwMIY6NDReewEAq6i+Q0GOC8FI +1lqnI9uxr10FIGSemJ4FbUmve6GrWgE= +=J+Ky +-----END PGP SIGNATURE----- +``` \ No newline at end of file From a2190f3187f7d3441bf5b5da7485ecd75dea49f8 Mon Sep 17 00:00:00 2001 From: Aria Date: Tue, 13 May 2025 01:47:38 +1000 Subject: [PATCH 3/3] Fix blog post time --- src/blog/post-3.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/blog/post-3.mdx b/src/blog/post-3.mdx index 7e8c383..0dde8f2 100644 --- a/src/blog/post-3.mdx +++ b/src/blog/post-3.mdx @@ -1,6 +1,6 @@ --- title: 'My Online Identity and Security' -pubDate: 2025-05-13T00:00:00.000+11 +pubDate: 2025-05-13T01:47:00.000+11 description: 'Time to get my keys and addresses all sorted' author: 'Aria' tags: ["learning in public", "security", "GPG"]