From 44a830b633d30c5d7e485d1acd353e937273a144 Mon Sep 17 00:00:00 2001 From: retoor Date: Sun, 28 Dec 2025 06:03:20 +0100 Subject: [PATCH] Update. --- examples/princess/Makefile | 17 +++++++++++++++ examples/princess/requirements.txt | 3 +++ src/devranta/Makefile | 32 +++++++++++++++++++++++++++++ src/devranta/devranta | Bin 0 -> 58784 bytes 4 files changed, 52 insertions(+) create mode 100644 examples/princess/Makefile create mode 100644 examples/princess/requirements.txt create mode 100644 src/devranta/Makefile create mode 100755 src/devranta/devranta diff --git a/examples/princess/Makefile b/examples/princess/Makefile new file mode 100644 index 0000000..7689449 --- /dev/null +++ b/examples/princess/Makefile @@ -0,0 +1,17 @@ +# retoor +.PHONY: all env install run clean + +all: env install run + +env: + python3 -m venv .venv + +install: + . .venv/bin/activate && pip install -r requirements.txt + . .venv/bin/activate && pip install -e ../../. + +run: + . .venv/bin/activate && python princess.py + +clean: + rm -rf .venv diff --git a/examples/princess/requirements.txt b/examples/princess/requirements.txt new file mode 100644 index 0000000..fb971c7 --- /dev/null +++ b/examples/princess/requirements.txt @@ -0,0 +1,3 @@ +# retoor +python-dotenv +aiosqlite diff --git a/src/devranta/Makefile b/src/devranta/Makefile new file mode 100644 index 0000000..47cb352 --- /dev/null +++ b/src/devranta/Makefile @@ -0,0 +1,32 @@ +CC = gcc +CFLAGS = -Wall -Wextra -Werror -pedantic -std=c11 -g -O2 +LDFLAGS = -lcurl -ljson-c + +TARGET = devranta +SOURCES = devranta.c +OBJECTS = $(SOURCES:.c=.o) + +.PHONY: all clean test + +all: $(TARGET) + +$(TARGET): $(OBJECTS) + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) + +%.o: %.c + $(CC) $(CFLAGS) -c $< -o $@ + +clean: + rm -f $(OBJECTS) $(TARGET) + +test: $(TARGET) + ./$(TARGET) + +debug: CFLAGS += -DDEBUG -g3 -fsanitize=address,undefined +debug: $(TARGET) + +install: $(TARGET) + mkdir -p /usr/local/lib + mkdir -p /usr/local/include + cp $(TARGET) /usr/local/lib/ + # You might want to copy header file here if you create one \ No newline at end of file diff --git a/src/devranta/devranta b/src/devranta/devranta new file mode 100755 index 0000000000000000000000000000000000000000..6527af16a1bb34bc31a5618d2b6e84ce66c655c5 GIT binary patch literal 58784 zcmeIbd3;sX)jxdp$vxqQjLehB1%Vrc49tk4WVnzE$xX-rLD54w^_Esc3O5Rcn6VwTCk$7yEnO=l#6zADn!0 z_t|T&z4qE`uf6u#>zupq#!&G*oiR;a3EHI^<(7{Vkh!v8`Jd$tlDXO}Eft^Rw6R(u z@;(j|<#R=XQgI#A-Kk%~6OdB9p>)$rdY%AlDped(O7-Ght^GuaO0^7;r+Nn62IvD< zfPY%)hA|?qQfEEhUYW%Aq%S86xJsS%NH*2WM0s_iJ3T1-eN3jR9*K+U)ysPIvYtva zq&!us?xcw@fE;7>D2s4m4;zCL@+g+`X-TA^r&p0EGPW@j%8h+C6!#~%ed{KADUaY-reVg zYY2zsE7j28KYG{u|+bT;68e5v9l{G6Gqnc^1 zYHDdV+ha9tG1C;Ny&~3jv^APd4NXyVWm`0=@ocoFeZ5)R7_DjUXcZ8SP*)SHaUitE z+M;c3Eo}~rhUSKt$hJ3vCr;9=X>1g*RgEnxY8rbXTvJ!q3O*f#nroVzyx4R(Yi-f? zsKn-Z zRWxR^K>AZ~YW@z(^!}$f~6riZP$@cA3`*sRy z6;zcMo26x;NJT}lIZazoQ5q>QbF)!_e1!z-&xbo59!df{1)cx(k>x&_CctN;KPn|$ zx>Nr;mL9ri{9j;_-{I57!`73ZLTk{#hK5v4>!amL*!T9_1h*tnn=SMA^Sq&jWWHl~ zLlSwaWysUT@Yh$C1&}|HzW{Dfg0{?2K17xizOU;hSR7qjEz6Z(t?bU+@r0#m%cb9} z;F^T{J$6dvkF|(;V4nL|BByD`9q_&ih_urI4?5td9qwph-z-Kw&LmcqA4){<9yvP9`=75(u z;KLp8Y6pCT1HRk=cWxf)9dPn7)Ya;MpRa&O*E!&$9PmvJc)$U_-T@!&fbVv|oqoq& z2mAsD{(c91tOI_x13u0HKj45%)4)p)I^dZO{6h}-1PAtq()HKw?(UVld7c7PT`$>r3QTo9Y3C^* z)pehpr$AKK9d@1qP+i}(^AvdM+HB`3Xw%hZ=PA(CwZhI*fT^q8&QqYSE8osjps8z$ zou>d(*BCobfu*kgcAf%CUAmo5r~HRsTK%N}QrBPYJOz%rUb6EPFzR~J&QqYM>pnYA z0iv!u>^udAy1r}YDInCf+0IiSsH@G+Qvj%Ig`KCsPgl8}r+`mazMZE)PuCPXPXV5; zF?OB;J6-+lJOy;RbUROhoURZ5W%WNm`M=tE3fy$PWalYh)AgjCr$9~DeRiG#G+lSt zc?!&Qeb>%YK&ET6oexsJ&CXL`rfY?j?;e*{qG>DBM-^&ZKfA|0xX_*dnJ524PyRMf z{w7cU+n)S4J^5=r`8A$=vnRjOlfTN7U+l?8Jo$N^{H31!3{O7WlOONNpYO>J_T>hLlP(NOoojz(Slo|$j z*PQi$6zwwFD7olNY!FQIrF0L|oYZ|hebgqxdrGFj4|DwK`IJofvS|D1q9@+Jtmug| z2}SIgq8Go64FrKyNx-SucJ65#4<7m zj0q41{FS2ZhdbZEPy_Ky(UuKow2r~h!V|E)RI(K%2TAeXtr1nK&J=CW5Vta!>o3}s zq8II`qV~YdGez59=uG(>6kW|e$+O!z7vRRO%#J>Tw!qr6mI|R~0radBJv;t*E?V#0 zN%V+Ai0&bRJVs0rhbulq$(9YBTC5)tA<$*KJ5RoAJj9Vm+TeN1hT{U~IN^-w1*gp4 z>EnD;C-XC@Ef-H2eDFv{>0585=J`1C8Je!{L3%fF#ET#r%wFm$A8%^6-7d^<7J~NS z&c$|Nz*z`k9PYfxF3fZmW>VoLsu1@XxPO=J?uGU39j76N(^^MT=fy&xrynOLt+VN$ zBwjH@yHfjMAuihfJkh=LjMW#;?po^0j=4iobdjshn^??comN?A$K3OP*58Hpq>UD~ zN%Q_SxDfBK5d#A8w4+1UoeIGDEZY8PC%l!qq8+|*2-VS{q zbQP!eBJNso_ZU4|Men#`cRoSw3S{cB&LvrOrmkq>Ku$GgbY2S%T&*AAtvy-~16Z{E zf#p28v6?5l%8+ zILF&M*UjUOlC69`IS_B+h}SRjB3|!BYyu*>y&s4g(xW`xv8`IL`BylK(h}Vd#BGPt zw-rKSheO}XA$(gBJ4(Ly5Q);k!T_SY^4H&E(x0|05ct_{}p)BA;p5Ud2 zp9E!);#25NDiD_VAZFh|EtZSyL8|jFuJR!w$@5=|`~j8M1Ve{-p2X4!vWG)^M?%}3 z-P}>Ne@Dq)hgALr#=3TkUP>WvhIcO6E`><89qO2PIJCP=;3z%ZQL@`B;QK)8-6FIm z>0D~l>0{B^InAw8J4$v!{RRNl!Bjn$mP_aF0%&_^9|V4c1iod%KCPoadV8FtbG;b3 zBkxY!5!#3RF{-~EM#{J<4}IB{`uJ$-5(!yMi2vXXh|0-yzh%RIjU1W~AH>X$Iq0YW zVaYt)dGaGZHb*e7t_i;jsE!H0i;j2S+&EnJw6ZN|Up2xbt<;6Ew1#7 zczcICp9K=MNOt}s44=epw{gdDT#N`Uz6zCw8mPxX_9xh4N~QdaxD`$dm0V;KIW9_0 z%Q|E1l4nH88I*KVA9#L8)xqugLjgKXpkE3h0CXNeX9%=kc3`L_TZpDCfMV+D12#*m zIQhe!EwaKpJf%^i3K>+vr6d{LKM;#Ot(F~Ws!7@eziV_p0|KrZb5Y}%%YWNt%;O9k z?o1cPptEx~ZP@a(-om-lJoTdR6!#To*^bEH4(j2`ckPeX~KK($c z4pI8Cjr3C>3GJ$Ip*(1#e2demqESH)xMu9+CXg5wA3puwy<$hz32IUBf_Kf(W2nUzxP}U4 z7Ro!p&c}#+NS?P)H$>rR!?Jm3E45qKBdA9$KvjqNucMB-WW zVKNDYI|N*W04xRKWseg~hJt!UcqnFL8X0)wc0$?f5`V<6gj4Ih?m$EkrG z+o*NI7|&UTW{84asWW(YxN^MyK894s)a%^zcfxjH9mkGTYRCP+f&(S#3jX=n9^ghy zHYm#=S~Jr?cPUk`y$6w2&I# z!u?e(HV#tY=(`48%876hpLq``Ky3voltrrbFdMht#(j=(J&V>c!2Yjik#c!SL3%{- z`&0jyqUhP#^d6nvOU>Jz6{~_!ZZXv@{n^5e?^kv9^ia{+JB4UGon3$~I3`OnHQtN< ze94J${WT{+xYG>`pJ=5&$|}t?EH-Q6NZzo zN|%BJSr08lC|bTr^pH^Ed%hg#&;Anf*bK6Ufz-_%!N`9|c_BuO< z@d2elf|Cj!o&^ozXOgpU2}kDxyr~nL)6jE38Sg?l-$uETqZ|QBf(wP&D6@eg90zNW zzl3ZiS23?Y@c_tOcS& zP27{BL=I1#V6?OIB=4Oqvm1FcYEsPQ?Q@wGze9|=yr&4+(q4Oe7!Qt!*>8wutVt2% zA``uRm+oD?J;7`7PTWSVfxuv}$9qfL(|6C8lVZG$*dY-&Aa(V6F8nasMDVS`V1xMa zc=bOa*CNX6!^e_axIy4*d+5)HL&s=oefMhe6>E=*QqEZ=7Z4X1v}%yw9-+Uz&Bejp zFXH`gob;2>)K1PX!i=wWZUYbX0bdm0Aay z(pU4Jq^|VhtNFNT{wmwjh{u&A*l~ghk8SxKCvMr6oy14)Yi$iM&o0gFHy(ncxP8|n z`1JT~4i|*))NGLs?bS*C0!+I_suO3nNMGYtONev{7as4!j%}QU!<}1BkjNd*?;$P* zJ}H0o7IfuN;<7t7VaGPQfqWKuYusSh*oGRt4#9O~i?@H(5OigTA-F>@?HPh1YS?y{ zlf;PhX5QZb8~+m1+`aBtt^lTE z2-G^kH^+xNUnR?J3wA%u1q|5=IsD_qs&O24>6qn1UM4IfOesBB>EMMTf^!h>DGNI}HjD52@x?Zb~#ai2E=j5ziyEeNnx~8qB zIhNhfl2g;#kfV)j&l%UQm6cXhYV$*tT4AU-R2dRIw2$_Y$Kzy92++wa(Yo1zaqWG1 zi|siz9kKc>-Y5s~gLqnN+S}K*wBd-Cj@sI2d%H$Rra%IV#1paGu0?TzOQY7>ScAiO zTAE`~9D!5Y($s{sU6Y*V5W8TqF2^d7Hx?=iB{R5bZEINx9x;XA3npG~sNb_SFqIf`&NIaF|UNah*j%Uf+u2h6JZ3vD?tn>?T4C zuW5-zHU5Ed!x1y82Ja1rb1CFBMRPFL4J)%&Mx%8aKQ*Z#hI4B$3~WTg#b*$0yA<~W zpYQIT1l73zXm@ud(x;I&BCY&GclSV~b6)Q5-imZS(mRnZLi#k)E0CT*8b#{ED}^mc z$0A*iv=HeQq;*JlA>E4fW~6r_y&dV(NPmL#1kwkP`ta!fain9BK8v&v=^v2N!GnK6 zx)td=Nbf}Y0n(?Devb46Qsa-PkMMLl(y>T~AuU9D0n$38SxC1cor&~LqeTkZ8A{~pg0cj!9Zy=?E2zMggiu5+5cOpH2^l7BudIj~7p8qQ9_tCW1kd8(A z<723gH1jpoM>^~;sE_p0|3-bJtw^6nx(Bh66G+D)^5Vn04YweEGZyLdh&UA@eGPH6 zI;3d`tZYU41=2f_b|Gr~G|~$Y3p#;x7{XY-Bu)DV(y>TG2n81+J%S)_9a4G>y%p(D zJmt9)DMIP|Vpo@IY+VK$k+ar< z@z&BZ=A{i?ke3{pIZJs8`n~il<&#ieaF+67lxLl# zybGsd?(5mou&L+DnQU3e0lsBUM zS7#~TiSpaeQhqPWcbujCIh1#trTi4i&9juJz@^q9Vc5jy#+vPh^uAQa+y(s?>b|W7B=TLqE<*yTcWk2*6c>`oWPNDoZ(EpyR ze1}z@0{h<|`th)<{64FE63Tyy@)up@N38N7V}anMt{{5)Ni-;46^VqKZyq~E~F^ZL)B{7#gQ#yq#{4`r(UDU{!Z^(b!t zv3?E1Iu&!(Uv1T&gz~1>ySt~m$|qUn#VFtWr|#}#SGjJLH&XpS$FIMW>SKL;-`PL? zB<~=%|0pkeqr3Y(SNRF6{5h15#Ckg0)&69w{ZlBPiFNi_`YBj{Q?dTO;VS>5 zRXz#jze9P%ML%TGFGl%4v2Jg1m0xX@H==wQ*711dJ5l~P9`gO()&A2~`}d-}5$is_ zglCVhp3ln(^#6xTox`Wj-6K)ZMQ8odrSf#PpEFNq3(}P$5={$;8~TbaU9I^drLVlw zrOyAu8*%(1AAv5sw8bxV4j}0bU8?+(FS}bPe?Yc}DZ#I5i2xPhmpY%DueE@zk@(57 z9B=;c3-2qqE{UeCYZhRd%5*7u7c6D}LSRQu=4 zyu!n4e7t{#wM3m~?j@KT5RkbtEtBbT znYPMwlT3HZbiYgw$n=m*kIMA8Oi#;H8?EsxL#6?l=E`)gOv_}tT&Aru-6Yf9GTkrJ z12R1%)1xvyF4NO8Rfp+jj1hbUWST3}xiT%2>2jI2%5;-Vcgu9YOb^IZQ2qBm)j62+ z3kqfjGOJc}G{-sulc#1+&Cbo5(ZRD*uAMS1J9pXy3Dzcoy3Sh=N*5k4nj5d?ny2-^ zSUN79apX*f34?c%HI4MGx0=ZVv0d=JGGsQ&)BSx)gGhXRDv?a^r!)UYn2_mupZhRx z(plmsJZJng8}ufQLo*WwwxQmIK7)>sP4^pCn`YwT8NxYb6a(%xHAae=N%<}CZ0&{p~uI~l(J#jA26!{XU z(LA0h^EKg3v&4L!srD_u0GYzU^TFbB-`!w8ao)gUWa@pT;4ra>bKUA|LFW_0JQMRR zyAYWL$(w+%&Q}9*CYJPHgv=&iAP1R9dNneeecxutl=>He+7{n>Sb@Yv={3k)?^{j; zmZt6m+HT*yusexY3|Wnmy}rXFkY&Ru;`A_nOd};XFhM!JJADai#pR?^iVp+62urZJtW5dCT&L~!q zz`lS;d~9^GPmDeNy;98=kIsFlVZ z!yu=#hcWvy*i~SpAKTUs-Y#1NoB`|%Mq?mr0ZW5e8}w-~n+BRgSQ1KyG9w*xgDp(L z>dMALT}QB~807QVaFmW@HJONdut&yd+9-AgkN|7PNQ`Da@IQu~0zVh9VvOHdMql$A z$9&*qJWB1;G4GlSg*Uw?w@SQZ^aAxSU-A4Y`8d4mm7ipFq#AWIuy6 zu40E#*JR&@gqO27;2hMj@8WX>qxW`d*`Lt&I&Jt{P?vA$38MhxT36(|0o~I_fM&m- z-VgWvgKQW^J3()P6bAQM%L2TivMW(4&&(e(*IeF5g^g+W#U#1VRb2y{|VzZ0;mp#BC}%L%eEkVt^dgTzO( ze1OL2XE37Eg8E^Ib9zv3L)T{p^$*eYSwU8cZcSh}qxB2f0@R$yx`=&7UTGG43sTQ! z6z|Gmt>{TEdmBtoVci#yt_{N2PGhfQJg2iw=+g{+4ro_L^p_K%20^w6(wWV^1({yV zMg!{-whgkJqgMkGft1l)X^?F|H|Oe;(8i)5+l`uq>=;-G=|4gvi-YVw)SS;YprDBT z9fDrK?gO_AbrYRm7Sy{?aAlCqhTcTosemHs-0cV$rDjzL)!)C1^heNZn(zZ-(=W3YZXyBq9Y!LB3~(?^5Nrl6h#AzmBN zuLHX+LAC@4%k_&PldlKawU|mP*sED+NWTQl#e!@unuzLaKx|D=FU7E~4eBSs*18~@ z4!j0t0`@ibIr^|#FNgZ+DewYttFV{|6oV zVz6;%hrSnGxT`~_uZ(;%$UeoetkwI0%-tRAkI;?v%)}^Pryqe>?uh9B9FO2tP+tNe z-xSn00{iA5`v{C&&x+B+cJ?Yj-(tUnUhZJip?y2q<6vf&{v4$Lvxt5*DE~a77o+4r zL=S+sCpz?DXyM5Y{T;~a2SGg<-M>Gg{{}?w3bNNwb`yIAlDk>I35?$z)OW(*+!JK) z1vTwI+4n*H`|LSbjeYDcXxXjoWk7CYhrq{wvB!Y3pWP4P+^*jX4(L-BWUtqP@fHqUkCMiu=7xmeK-Npb@m}>->dJzU_Bbt zXM&x_g8D09=kcI^7pCl?pnd|tCxXlzi^lXOH2+kPjl)3P&n|;Z9$>2=#|QP1m|=&Z ze-QAoh@KCjJR8&xK(&7x)KN$KU69=h)qR9L4|zYTcY@33gZfk8@`a#&HxP~n*)OOi z_A2bzlloSm{UNA7IuW6p2%Cd0{ze~!N^he#5cN9|{RwDOXGH%oa<2vTiRkI;L7jdx z=TAXB4L$ucIt&%~OHh9a!|+Cs{TAe3(Cy;?Qi-8knZOgGZcIgWW~^d_w>I3_GOSAhRFY}{~E)nW$Fwg!ZO(qu>GMv65>k8 zWIF--m@URwe4^irMiVpj0Z^zunQS;jafW>i@%)p~R{=lMbD^Bcnffv`osy~NpzYL5 z{WkP9EmNmGYC4)gXEQSOFVSqjO#S;9{QjAGIT#<1sh6QM12gq&(7eI)8z7ItnffBg zcu1z6i8hC3>UYD~Br$z8Xb#WR?*iM&O#c-yQOY6>1Q>b;FCtU-K_Fw8z5rBeZ`H5D zDAwJoj|TJ6TlIF#@|Cyh_n_~qZq>gJ0nY-1XsF>DjAZJ&AeYiiJqX2~ z%k*wEo5yq$qnXcidd5|esec0~m6_V`(U8Hd{)8I=9Zo-8Q;;<3Ct!Lo-49<1y(>%_ z^#}pzK0U*i1a_0V(SyFFBWBYmyb1<}z6=aMeGH3044Hb>1axlPYV8XC>uS{vYv;~B}6Y9Q^ zJvt5`_5rkxvE_bL(2{S3m=n?yE&$Tx+=PBf597wyg0h7E$$NpV`G%ru!T_G}`!2=c zB@E=53}0Y0GJ}$+ouR%MdXzAjXU_9|gQyPSXaV0%unY-9lZQk3GPUHPuty2Q5*DMK zVJk8G83`lEg!wwadBSjG8NtVg$+KRSbT`_ z27j->3A7>52Cl|O$^)GHx2TB7Yv)gdl}!4iZ~spTL>oQr{K4o;(&b70lfXp+eQ5sw zB35RCmDDIpq5e;#GWyA?gzw;El$O*6lbBSKGK_CNsE~xG4XlAOrM=DhsV1mkK2nndNp zuF6`{`!MrKbxG$Dy*H?gcPi;e82ywccK#;-(LWy@%}=_WbQ&s?v?ysPVUpu3SR7al zMl$ws2}~j=XHN7f0R}kzLe6}Vs*pgtlu=sn8I&!lR!}YJ+Zd+Q>x3k)CNNC_-bqdo z;v9ulH|41WF1S6aB`ql@2jK5AK8W`bm^v@G5MtO(3iYzkxMvB0^hO)sh9OZDH?K;;8J0jn7grxAn0XoiZ;{sAjr#+)=l zzlfl8lh8&Ve58_2p~L<5>l~qs5IA^X2s)85kwa-=6xDcKLR5P{fNDPx)yR|x1YR~R zHw*bcF@sten~x7%3q_)_eUAe>6|d}Q|IPZ*y}qYj^OKS3cMuEQvn*|48ipWG;Q!vL zHWlkuU#gbyEXx-4ic<00N80m@n+SbRSz;fMdx7;Q0{Win#Lq$RsLC!+qoZ0ggy6e;QT$v`Vz5(J;ygBj>F&{6#ORaIkJH>{E%QNVb9SGoZ}}{{@4Z) zTzUt!c@(N!>z9ksx<&B3=u$7wJ22EjM7OXki|0!rguu2!tw|RKp z@8S6l#iQi;9+d~r{Z6K8+E&41!W_XPf11VRItp4Zc-+dSSUi$kx3Y^Z9zWqED)^k; zbGMM=b`MWGJUs1EJV>7Qs66qs3=2lP;Az|?f~Pk`g0X(V;;G#l>y3%Of!tz(2I*D< zD6Cc4>QwxCnzoMd#ZBK+Jfv9?{f;D>+JL=b8udrtQ#53)EL|f@6BmQn)oid()a8lk zSP#FUvh_gfHvkLiaxsH)E*7;um6h2(iZ}@wE@$KAR7j&0dO4d(BGdQG<(gNcW=1tv zv|7dea;|5qR2EZV2kh%YA)ZfYTHxXjIFYh_zqguODAWpFN^6AUu#jCUn@byjHDw_y z5(D_i#B zpuTvQEnyCut~7`@c&SHY=6WgWyaJUcjrl27q6-BN!)J-c-?w-;WbtqzyHJfl z1(fzecCm8=Cc3+vrTQqkJXvMYe zwgxQ^|KzI!4Y@(f!)G!}O<#xo#~Zxq$x}ts{3Qk6`{z~DZ&-^#3K`ZnthFG8Y}OkQ zWwJOcZ@F1H>1O2}H!G(ctn`INdXcko>lDGt_e4U<010s^yf|BGUJA|q7Z*y!Gsp>l zNm`~#;{dq)BPWd|(fAtHl4CNr-1rd7*K0CYul2tHbNUc(^_t0|xzS9dY~OEHtA{45 zR&PeDhw^2soQFeIqWcForqCYY&}xxAu#rpS3As*J^MQEM;)2HES(}SbFlfK#Tr7}W zND-j#pD8YW&4+pmm|34@3!EU?fW)-GcKzeCx~ftw_xQz1|!1kk-*_Q_PAQfo7~i^48}uiMlqz-jVIU2lH@4TM z?nV0vd-iS|u%@OFS?-zd*}rj+o+UW@wMevEh%THe;L!FzVb9$gjq8)`?17C#g0f1H ztYUl)QLGQp{sqe3(auiuEL5(Y+_E+v=asyCZtZ#HezhLlJoDQH1v zvqbpfT8f`x+F#X&y7nMu1YLmgi|wPQ6c``jp&MpwE>aj5eLdEg?VgLRs};tLjfx)%<`k9GD*T6nADSWp9!iW1F{s z0-qa`nL%O|MvL2$nR7(0Yyd3)v#g!NjMNk~97reeJOVF&I*?>B^5KFa1G_F1GK%02cA6rvI3Q>6UMMD3&$ib?|pH z8%C|}?NRHLtaUTHSk)RqQMApX!hgsLP&aeD5uQx{YgjYi7f2Q+kJ#;>R=DpUZC;ScQ z$SePX$L_)ZZU7mY(pdFt;E1PEYv9SP386))W36*s6oy z=m|gU#{-|Q_k{l<6HkR!^@RTj`t!3Zdx67Uy|vZ#Gnxg5^<(|}%pH0) zoMeP%lSliBZc;Y8Y#67ETESuA0hbJ80QbeOCi~HxMJjo)qkR}Gl)GC`MeBaz$EuR1 za4bmrSS>mE(&PjTY6fq>$$me{i6B9&2!5~O4E485Ap&pd0M$4b4|RQ@)h~%I`ZXw- z5moBq-~s5uB@o6C0mI&AJQww_0W2XcIhhN4w4YFi^UjY>5`BX?%m&8n(K_XAR<7oZ zp2t{t09AsK3lGS_NS$x7!qEjIqrjsUu!K4qA{jlCH$P?&hDwmQfDgKAmqvZ8k6k*t zPx5GAc))B9ADu>RjRPWtuhT%M3H=zKt?_{!odPaLk0z4T*`ShRI^p&Y4ioHT_G9DH z1|%np8ZnCGlL7yB0(1l|UMR;56JjD)FsXx=p(a9qq{3O2z|cWrC!4xJH#uN8IT_k0 zG?zfRT(Pk_Odi0bka?Xcl3%WK#1);4UuUEAbg_b-MwWih z8&4?cqJ3#X2p_(I_%KG$#~8}y;)Bh^N8((3=q2=V1!ZgLt_>e-J!Lo3hrzTYU0I5R zdl=iCi@z!IU)@tmf0OZNr{dnu`}BlUTDH-5i@~-ejLkNZaMO`6K-_Fe=qHPO3C0x( zA6=7er1*bo41d;`u+_-jZ1js6=PjU5|4AdM!^k*k^jrH=V`R)o*=!gK48K3eNZ(9_ z17k+UX5+j|jFd|aw$PYA-5BDZV;HX*ll_+)0ZsR@m@yfN?(c65KGyE}8quLlMD5h*N{F_~{&4z%D5d?-)qF|#1Y?u=^P{53j zjr4?duNW*LDPTm<9+)56VHh`1apDmpB@x{~Q%OrXz~4X7ukMU0+#5-odBMGec?B^& zG1p&h7;hUX`m_NCJ887}FV`pbHwM0K^e4>QjEsebvDKfWCHOk^#M=_}AWW0zHkRoB zNC0Dr`WRUbK_fHJ7`nws+G_ZT7%{d*B7y-b9r&t|>R%<8eFcgB&}Ji;m}B(&2u)I- zP8g|36BGSaJWK2+z}fP#5AmVXhw)+J?-fxrIewrR6>4mu13q>@FYtkh`q)86e+b48 zJz8Z9U0@^~BkGW4dZPb#TzTX$L%ANtW(I{&t4Bz7*${T>M>O1{2rP$tvyrjX=y$s@ z0!p`Fk700b6Ys_T3e6Z&{%Tx~7$a%O42bPv!~clEI~_BI5IqbGsh|#m3yop7W3cxa z86C!Xw;LmIcRv0H`oAlN=^5Ptshiu^hf3+Y+T}S{}DDCuI z-UZHd$}xj2H9B&QewbUtzOjebJfXPld2_@_BmPJFS5Y4ZJ}f0um1_)uYWmS*E}E5z z)y8>=q^}DNuIn)gpq`|l7m((XT>XOnM&FY{S5A-=jXR9NdgcJ|0uenddJ#zUi~jJY zx1#BjXgYh~Nh9TLSPbJ5|K*2SJVS=UT!hi7rLA>ZL@_rWKs&rN%|Mal0(oT*}+o<7!6@>JjV4JC^@O z%Xy?M|8xEWYmF2dR;W7LVn7#1U^;zdaMMRBGBWXUBYlsNL^ux_X|U8W5XA8`R zR8CGoPxJ?j)P+J_xz6c{$HgcwFjAf*{aW^K>K9323z~S_rB=&e7c;+FJwG)3R69xV z_94+C6?M~E@xMrGDn_<1geD|pTb_}aX<|lV6h}}g$#WRyU<#%jgNCI*t z5Pm39P+Ay{%-78JdK^NqqGP4Aq4sF3r8UOeq26emg{Fq4s71FVubN6K!k63qR8lp| zs`87&1tz3xRutt;nLfj+R#8zLip&p3LS|uTUS3skr67$%3)Y(r%{T@@jXKd<7%5#6 zpI!<8X3R9;?ccaS7qP#P%=yT%Oc6^G~XVK7k|v2};HVy;bEGrL{l%h!zT15qTj)YM}XDPJWoK`}{CFYV)cz%)64kB5QR}d<% zH1nZRBtp}44^~-uX*I-CQ4A?nE-kaANbQ$K+?|{kDaorWC^D^)1WWVt!nTfDa+Q43 zB)}9XE{tHFg(^+ng4x(oyV~MAueh>eae-M->Cn82P-tNf{V#()g%-KMA+st1r7v9^ zD$mO=4w+@8#kTrdJ){1+x>lNBQA($NOv|;n5XgLXL2=EJ(n28#s2`nl!6)#FmX=1@ zFD_V+MK!crVv(W#RxAvcnPqtui_LJERX`QMWq96FQX~sp9s(zeZJ~$JNgD#42t^7# ziUyU+n;#O|q_ni0OhbiGfU5E^CvO(#IT|XetSp<7o10f0&Z`L7HlhgAGF0x8DVane zje@+gJj6IvBYF8~A+MkkG7ndq6{Q6WaeNA5owcp&wZ?jrTTZh%y3U?FMVK;tu2}j) z#9^n3!xfdKkz!$sFo@;FFk;2?O3R^MbY@9wOLKda45rmM@h^-Y4NoD)oLddWTTz~5 zxi}nxszLCp&4zZ^=H~Vo&N8vcgd;tyML`}-ks_E<%;3^0oCp(LQ;s@$2p=o*_UKhq z=2cd~7=}yDwQV@F1l_Ka77ME4s(`-2eA}{ym0cVz2$^JREkvb?Go1@fH8SLF z#|oVHLd@9~(d4J7D2A&cCG@q_CHT<%LOE&*jigE|AEyNgkos0dxV^(#sIY`+Ap>DZ zic9mYB0jo3)Q8WG%4)Mm0p@R2r~+mnubj@_p$15kg?*5kFO<(}!PU48#U$cF(rW8F znuRe5nZ!QqUwNT9Wy(xbs*~LdG9NC1@RdI-Y`E-wq_lD#mh3{;k}X$mEPECMTv8QS z1j;HF%YN`)Lz9)IEuA+n6sZU=#w;$&E3wZCaykPwZEZE{&6+wK9Ms&}hVKcklqUoU z(S#$Fn4K`-rfW6e;}k9~4$aRijzs&FwTOhlaUql86$nU_}#Q-Prp14UDpdR>5J21`*%xS|5y8{&6<$l ztvpm&RUQd>C!Hx3RPg#+CaZ7Abk4TDy(D z#-6kttym!K-I{2qxD@WTa;F7|BrL3-<$lvZbDNW21(Pn83xXAv7I9SJ*YU~GySnpj zOM7EOdyM=goNE`yXyYWeRhY%_TUJ;Dfc>6hM)tO~DJh(8VPm)!bFDTbp-PzAg_a$& zQ077Ri@5s;t0@IuRaRU|HqYL2Q2(rLCS~SVROFR~AuC#STzed$w$7~shj7t|&7(>F z9<&eN=eOA4W(;nBRrz9vKk62#bhc<y+c-_3V{}aadKMTS6+9C<;UQRr6hr33dSv zHwaT63pEz&BHAb`R!9{JN=s=JOpd zf)u2~*w#7Srsn8clekJeh#R)doli7gUZ5diWmOT{V8fO+9i zaUqYgtdxGLJgu_EY^{ma)|+(TWgPa14(M9sc*MaSTv|-g4J;NFr4cB4#CAcH_CU>r zu_8l&EwEgdDqLzoOC6oHp;}V@KxL@f8Q`gHjMg+uCz!|yg%(rWcGRfEy?G6pr3^uvQ`DMRw6pqTwCAPf+JenvpSmBHZ<2|#cHq@ZAT$C8nvslu!O}BaUZC)m0#wlSc9ACo=hS2or{QYg7+A1t#bKq3r%01$7eNrKIL{9F(uzTw3U6Rp z=s%1c3I*pBVnzR>QEg>MW1~rLohri4z%EVMg2i&Aoc0-vSrrylg$ov%q3WGaJ>wKJKa@xDXltmW&Fvj+QEXgR zVQ*zY>!OWOkC$j$2v-2dalo%?igb{|8dj7Vrqz}M4_A<_;d99H0kk#%;Lg4#1SDW#CRRfAPip>HrVsb z5-iH)wnC|O#+sL;!Zu2d0t3he2c~KU@gqgY)4Knhc&>Asj^su5fvQ?OQkowD+K_JtBCj;BelkB6Jk{ zy=prGE`WSuxvVs8t9ba9f+SegM9{))YN@lOz`b>>!*P9eF*9wy*AaK*ULN(3!Z^yE z$4=ACTZ|=x!ULAD!86ySa@&{1h{_oF6y<|ifN4^s7T_YG(R>5Lt%8XivPIpk(PA#z zA-&3SA$V(sN#_P?!grJQ)N|NgCv7~Ou+6F((c;nq_)O|47!84~P{rXAm>MA&@*YG$ z5GuMD3R7mqoK^3pPO)0!ez-M(oc4^2mB+w}ts|PYV!R=W{9#kLB*HgSSbVSnkc@}` zz3|k%D_a;F{z4JzAOo!W7^*I#u-4?3uf}TTSU?;hnMN$u@(6In0SvG(@M5OMi48eDW8wq({8BkDDUUIL0&-Tl(c;h8 zAWR+ulHyT=As@)t+BwaujMMCAc(n57kKp3esGa@fTPN?uA>@g$q`;)C?^R zA(T>F;gv8RYvn_`V4m`qqGEAzeqO;s$tzJsz(kB01`Os#1V5D6#H6JV7(H(jF{O%F zTZfFAV9}&4y+;d#wS&AY4)d14EeOwFJdIEKTG)-+H8GF8rcd?)W?J>7%3*t5Zt^IZ zwJZsbqyx(*LN2iVH1q+-Lj@W&T1Mg6R(b6o53G8J+(Nb*ckkn^jd93aR7IY?Fow2G zfH$iAE>DMM*weG33K23)A!Y1LAv4EHN*fEWR*22345Y%5F@^rw50)*laGzKW;ygS_ zEL}o&hQ~VOarRVdZB2l@=m;CqlrggOC#~W}GBnvdJ;E zMudzpxxVzX3Kmdo^qkJ1d_w5p+v$>W$;KMn+Y!=ghs#gCs-+<`PI!)qxVqwqw#wYF zU{S^)1v zK7S{1I=P$X^3}ywfF#yXx6bMf*+VgbP>2P2wk?<8IT3!eUUhIU zwKSfX9WEyu{#|QLog+F3^{uivEU3am*b@0j&VnkRj>gCJq!Q)`a zlh0GzBcV7a8D>S7dxutz4~=v^6$Y#hH(M4G89|8?qo4Coh?r00Xt{@zKdj3yUdYEy z1pYCp995hTSDa1388|@Oz;pR zcOdwOYi~|ev8*?CG}#JFaoURM>S+Q=8?QvT#U*}xhSn>J#=A@{Nz)TFpw&;j`G%dT zX9=YEzL|%3x9ua)Y#|S>prF8#gM4wOFhnavg&CqfXFZ}-&Ml{#Z#;0eYIAv5p16FC zfRkJ?Zxvu6{)J10uR$%4+qdpl$*Eg*R2d!61#NxX()J>XZAXuU%Cd)_=a zDR}jc94Bl8EN92$KU+l0C%qQX(JFTA*8W{Riz71vabXd&V#zdbuyoT(z`evmdS}L( zxHLli(RlC7k~+~FeNvxjtBh-PKE-Nx2htvFT}MaYOcN!}4LXuUg9QHAEA)SB7SSVu3~ zIirz$M7Vje)lp0)Qb^T|>M%Vhb&J*WJ5Mzx$(oxR+p@^8xD0|hH;ig+4i{qWgLwHX zR+4+})RR$iY)UXR{AnN_7QvmhXSfQw(Ezwxvm_@vW$lsh3MTDq#k-ESJ6}+YT_O!@ zNIbRaU17Lu3T?5ZFMr)iiODvcmIW3gLKB@H8mMV!Yd+q#;ek1FJECnpvO(OEpBZa%6iKa(g>g|JXV;EBVm!r8a*)9-XPh6u(?%+i`mD5_U6OK$~Pf zD;=br+;ASnDq=}Oy`5%}Rz1XgTxv((EPT?>+>6AcNx0;WmK-Z#?F#oMAX19ma|AC) zDdMge3|?+!T$~x7bdZdu^sL2!9XL8wL^9%Ze{mNUs4~liDWniWNx`4pL!h ziQDJ2radNx+gr5!54_|ZflDuSP7|STHTm3oP~i*FOKa3sa3x2K9vQ<)vJ1EZ$=9W9 z=URq+3-Tg_pHJ^ww6;apXyzK>o=Y?4bWP<8arEArlCJfxr)oXUFttactDTDG+0>B4 zdTc!$roy5wyNX#3#_@UrX1XKHKrdq`0|tLCJTELa^2&~6*J?TSE%+Te{IFn4OIr?% zE4`iHo}&tQT-(@D7tO&VF>}VWtj31sj&)h9nmckx$K5C-tSmG^ z)fyXCR*@;t2=nC*poYsM~H+-Crq3K$Nwi^csIIjRQ1V7|~PnB@> zdoij`7&i>R=91YeAjBVCRrqJxU`_qL3kTxk8vGM|>-T45!SzU)Hpu$D7zx&Xgqz;@ zzYlPtqrQ2n&QSQhgnPf!{=S5JzXMNSf+afM@66M8UPM!<0i_ns+$ujO!lyk`)MmT>Qx1@t2f#J~59gXI$LJrm(t3HP3%uusCh zXD&Q0;odVEUYBt1nGT;zxc3Z*^P#WAr}xZ=d#QU!o6pL?3Qrv*&_7&2*i)~kdk{O z+eoqKT zM=))u_4`Yz)?mQJx78Iyq_a3YL-U@iL&wGRhkU#zIhqpgJ(aQp@CPt2yiD zOThc-!|*#X7Kq;@_vu{@6XL)N39k3EexFQHTM!3-6^CbN-ec@GNccD$EJK$%CvB&M zd(T>=Binl$uSes+Ux)*LKMwp>=oRVz@^ONn@gmVOaA-tt?dEWJMvwEY^5fvYg|j94 z>o^}OAPLLlO5oGDc;`_=96H~M1HU^C{74-5YjNP8$AO>6<>Tg^a=K zn?8(-1D_uU-T*kbvHGi6?TCZ_%{cJeIXpx2o>2LqgnJLqd_E4Hx8lJ4q_>JWM@nZG z^#;E*4!nlLGkP4R+#%uKvkAWqc)-z~y8Uq+`j5te|4GvK9`4o^hyEFf?>*_3j&|#< zzd1dpG-ov&2VbkGZHrCLZozZ2niUOrI)$%Hw8h$E_?`;(iwG8}rxLLyvld|%Y_?3Z zuEms*`Z~P!*p3%r*HLJpm0l#P%g*f`178+zZV<09i!V-UEAbXC9%FViHR0O<2-jOV z{&aB_l^x;a-Vxl7FnY&ve(R!l4C^6F@5PSrS?>ty{p{XLRYausQWe(fz0~zZs@_q~ z@(|tmWT&3PSB&K2t_R&ZFs)OWf8@= zsdtFlVL#Qo+x8$^uP(+VO(d*`we&0uA+m;MdInu5o}9TK$$IJVrueJV@)1LP1bR^5 zEp_!oJ?t^f+I2OwTGTY+Vd&iX#o_z{b4vDH=Tcpk;{h)ygj)6Qfp3QyoJ|CPR&x ztwf$zvQ@_fOMFGb3WG*H3W6TtBm%1)sHKxj`9i&uQ)jW%YfoRC7{mr*qD}&qMC})& zOzJYe3R_#h+FXfOLo9ai7N1#JQXnUxlQ40{UmZ{VeAw|RDsf#H?mN-a%E%CWt#TVbTa3Ml5YhpD*nKb^6xOl|k zLb9mI2ZZu#N-i9y7{ps!n5a%E^h6Nf@NnYTf&dqM{q^?MNrlv=r?gFT1-|9UznZV% zJfQZtT%yp~w$(`@s|=_G^n7_iohT5Oxa-9=XEX9$!MGKvbunX{wY=Sy?=Cq}ELMqv zd~|KWyl;k^;mQ)zcDgZp$mOo2?;GLS1s!A1lR?+F4SH=^oV#PLYQl+3d;qW}S}YJ- zWGv~yzOy^_msOlJIfKf`y4bU)FKMn@n)>$1S2z{<-H<6Bs(@bhCpr)N7_cHR1BG$B%atD2YKFbH}H)0Ht% z))sB7p$hV@wK1k;b0KBpHhWbIvUJlPt<|z)bh=A6?OlM~!q@HWDBhFdyOsJnP*XWU zLw-q<*HHIps-~#{#6)#W1T9;sa<=fa@r}ghRoGm~EProQ6|Go7&n9IKPqU)x9uicy z1g2T1_ND(%QykKdI4;Gg#WfUha=KKCbA(+N;X1DikU?n6sy|ECS81*j8TTr_qQDfs zbk?tz^;J4nA<9(6Q587ssjr@&sWhMvW$LZJ1n^J0yIWNM56JdanknlcjL9!A|22SO z>u&Y`n5?hTO|n7iBgszHr{j6)YQR5LQSDbt1eLCl^az(Oul&CbShs`!=ZP6yDqYTV zIOkQSsvVWm`S@Qt>gOVUK$l8)i!2`_Vny*U!P+j|P!|=wL$ba~k4Z$;zN)YKPeapZ$8SeCFV(JsJ&qe^ z`>pw+M5S^#6gnR(D}$Tg;GgPSY?jGVnfA2`1YC`u#M0<_ud}{-{-n|`sL*kF$L~)l zbJq7)3S^Z&M-$I+dD}mUGMtUg=OCd~H_|84Wg_+BtGr4-02+QMz^bpFmoNV}>;DUN zNq5yWSI^n%W&I2(Kh+J@t{TUmpf2@a)n7;FN8?&|l}NAm$WPT*X(Gy<^{sgKa#3Hk zBXaiqQ~4BBCR(a}6-UolE-<|H0|IP)_LJ@BS`cxg>QD5*iC4N*I$YKlQ2X=Z<>KB; zSJhLP6XMigE$fdRt1w0CtxrEt<%JREceV=rm=cW0_P{NOQ$OK)QK4N8RGj*yvc9*U zYj%qYpUCH2vbxp2;`#D8^;aJfHFhXONkCLI3~& literal 0 HcmV?d00001