From 29d93010672c43d315ba0fca26c567846ceca17a Mon Sep 17 00:00:00 2001 From: Herp Derpinstine Date: Wed, 30 Jul 2025 12:04:03 -0600 Subject: [PATCH] Automated Thunderstore Uploads --- .github/workflows/upload_all.yml | 8 ++- .github/workflows/upload_thunderstore.yml | 57 ++++++++++++++++++++++ icon.png | Bin 0 -> 18225 bytes 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/upload_thunderstore.yml create mode 100644 icon.png diff --git a/.github/workflows/upload_all.yml b/.github/workflows/upload_all.yml index 91dbc834..d60d5cd2 100644 --- a/.github/workflows/upload_all.yml +++ b/.github/workflows/upload_all.yml @@ -21,4 +21,10 @@ jobs: upload_nuget: name: NuGet - uses: ./.github/workflows/upload_nuget.yml \ No newline at end of file + uses: ./.github/workflows/upload_nuget.yml + + upload_thunderstore: + name: Thunderstore + uses: ./.github/workflows/upload_thunderstore.yml + with: + VERSION: ${{ inputs.VERSION }} \ No newline at end of file diff --git a/.github/workflows/upload_thunderstore.yml b/.github/workflows/upload_thunderstore.yml new file mode 100644 index 00000000..f1fc52b0 --- /dev/null +++ b/.github/workflows/upload_thunderstore.yml @@ -0,0 +1,57 @@ +on: + workflow_call: + VERSION: + required: true + type: string + +jobs: + upload_nuget: + name: Upload NuGet Package + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 9.0.x + + - name: Install Digitalroot.ModUploader + run: | + dotnet tool install -g Digitalroot.ModUploader + + - name: Download Windows x64 Artifact + uses: actions/download-artifact@v4 + with: + name: MelonLoader.Windows.x64.CI.Release + path: ./compiled_release/windows_x64 + + - name: Copy Missing Files + run: | + cp icon.png compiled_release/windows_x64/icon.png + cp compiled_release/windows_x64/MelonLoader/Documentation/README.md compiled_release/windows_x64/README.md + + - name: Generate manifest.json + run: | + cat < compiled_release/windows_x64/manifest.json + { + "name": MelonLoader, + "version_number": "${{ inputs.VERSION }}", + "website_url": "https://github.com/${{ github.repository }}", + "description": "The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono", + "dependencies": [] + } + EOF + + - name: Package Zip Archive + run: | + cd compiled_release/windows_x64 + zip -r ../${{ github.repository_owner }}-MelonLoader-${{ inputs.VERSION }}.zip ./ + + - name: Upload to Thunderstore + run: | + ModUploader \ + --file ${{ github.repository_owner }}-MelonLoader-${{ inputs.VERSION }}.zip \ + --token "${{ secrets.THUNDERSTORE_API_KEY }}" \ + --namespace "${{ github.repository_owner }}" \ + --community "${{ vars.THUNDERSTORE_COMMUNITY }}" \ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1b8a199a73da1d07ddce5ebbd6092dcaed5dc608 GIT binary patch literal 18225 zcmb?iWmgpw*^}f%oP_VotDiRSA002P!E+wV}06=|QLIDuqK2AS>|26q1+CjbB>`oD__tGMW#X25%>sNM~rAGX~~ zU}1@zPq!dYQG~P|FV9~!I6JRtj~tb^j_D zVn1KIr~UK&?EYOaYm|7&Xt?Dd)18q42Pse_2TcF}b#mXacq|6flfdZW;U~e_8Ji|R ze~iNEG;-DJLzn_Zrf53L1ta&kWq>1MN!B2wz+B|X=sgT%9KbGx3{kj94rKSCa@4fy zv)4b59<0t>Fg*`jL)C0$dMSY7UH{TZksc=_W=11ST~qTVhCQhXG)$fic3^+e_*z|C zdyzJxpQQ8OqVa$lFESZw8JX}mqeoww81Wo1_cw&cwbAM2rVg5}j<$I5y)$|o`EiUS zzN92PH!W!0E3d-h3~ z+a;(kxt?bGY1s6wx(IWsbISX}hDq0qZ>wu_nFLc6DsLU4*fO{1PJW*XjOmf&t>?D&&3!f|9+3~``!+F;q%$&UHl!< zXFOviLsF_BtL-trRKGsZ*Z0dIdSsy-)~pfr$_FbR2z1Ny)GWS4tXfR)-XGfS0Wrl{ zj7D@0wqWrRbtw%1QlP7zDCyW06mp!`GA!@wUw1gAqtUb3u{|;Et)oL}9bdBAgArMt zbp&tSv`w2FFa#Md?Y;5a@P~ekLNU3(jTC{rT)Oeh?Xk=+9NPx_>WoDxjU}KRvk0u3 zsu8bH`oHqeMpXlFkn9OMuLP6S?dI@W*F|UiAnA|sOE)%cOX#J3J}!dGuNuvGx`6rL z^dlm8W6XVtz-%x9d^kBWy8gE`7dV&6gd)i}H3W}9D{M}Bm1q_{6dCCmQ7iiY9)tPH zL*)J`l!=&Pm+R?GIDz|HQ1g-lCYI|%i}Lw(oF+eQIxNU1T!Z7)FdN55gi?WVoFANM9mq!Ur7?x<5ePj{QUaH@0?%dGG$v1YJUB;T8jWAP)Pw~eeDI{`c<%ry_a;g-UrNtxjq(DsSXshI$0UO5<6)Hiw^C|Dd7$ZW zmVJ}ot?+KH7Q8}CEu@dd3=~eJ(n)S$vV5H@=}w z0Q{k(eW7})RO8XzWNB+2M%?ubSyxVagV7|R@dkr*B%VSXY>714hg-$}DgFZt$SdH% zc0c$Kv{h0gCu#))bhED zc+%&~B;9IwE?nM&0yY7CnBf@1hf+e0ve^%QBqeJs8(+e3UwjpKPaB8R@%AwUNQZIy zHR^{KcS%FhH?y~cqAOq03REREv_84zJjh2ykVh#lDefLY;Me@9-~(gRoR#VHi8~EL zbOMWB{v$ve_h!4h+?y`EP<581@vIP@Zc?pnA{SO+tnP^ptgS+w-~*!nEaK@akqwYP z6fDH?$z_Tgyy6^51cf9Xn>a~fwJjS$7q|hZ0({hqZG}a(sYzE-n7oEDQZ^;^JvkNN zi2Jb?ZZ6P2B7g%Yn6V{5+*v#;QKs8{+FO}U*;&E+>bG4%6_ny`l$&nb#iQVLFsOu~ zxQ;I;YgPj>N%E_2Zra@cO{W>xdkh7NayYPfap~+XNZuB>^7kvptdP&&fa>8y)~vW5 zeuc)3vNL{Xsrh+Ww6OZ=_w8hBgd(Mj$XT=!AgmlP{=iiQ(wmxPI56UKDe~ri<8Tu& zM*%ixx|~JbTolg0aB{*508`#u@C&udZ+5VcXodqg{jN5#;ZXmR!b#`MJH|*2C^h^r zZD%O_eLTh2!Df}>%IVvjE~LA^S8mF4NR{dzdbWa3Q2RS`4->cB-+g(}2hbB2|1S{+ zfVe5#5DR1h9XR;}8};>K5BUE3iu*~j+kAJa>~{3gOMr5AM9W&m+e(Af*k-8V=OIjS z?^ID>e0W-6L4>_@R$;K*e`G}HrS;3h$CDp;F(`N^1f#blvHO-sLFCA+Kwf|mz1og_ z>s30Rdbsx!R|_~9FRBd6!AU+(ctKkOl$ zaB=0n#-o2aUYrpP9)4XAD`;k=^#Mjc?DBXoB3rrIiZi}SWF0ew^>f%ye$Hco4||YD zuW!Boh>ukKzv;Ty($;18wR;~6rd<^bJcLjlTcm-ckjau?hgW)|=r_@G9#_HvVyzk< z^Ty%MG^IeHb!%Y?cz4N68Us(&8RSyYcZwT*tq~D=9(B z;?x7+W+_EF?th;bh?C?Bs;D+Q3v^_+on7nS7btnudrND1NK3~kdX$U{H`25nuegfp zv^_280t4tnJ{;;6PIl26K4>9?={vahS~~jj#%LP>>7dVs#emOaXhHnUD6U0L2P#`3 zyMI{dg*tZkBgA#b3U@H~-Y!&T$H^Ue1rBWt&;{V-%N6{ia{F$4d`Q_lraX%=2+q`| z(I(i%-4@SWW{1A~mg_O4$^Zz=V~;V$91+yW$8s-~MgN{{^E{gW#h;UFf)&;R;bmH{r!0a4o|i!R(?Q~Z6YG(tk$cuiG!1V zz4oD9$7m&RL3LI}4cHBRak20+MQQRE1P~8~vEdMLA3X90Qjq=;gSS2{@UK`$f*uGeN<|`J)I-bzow%1ps2uPiQVJE z@Dx@Kv84GJenrfDo3<&r30bYB*d)!Bc@+O}6J`pw&hiEtLw-3V)An_hjbQip^IpXp z*=@5U2J_!5$m*0{afyL6!NUdNeyyTyH}sj@AB;Z*5;)T1<99lEESWDL3>*y{M6NpuRmj&E_x=0uFhA9VJGXplmkz&KrEf*NYF)kvMr zxYSwGG1n}rj;XaOsMU z^JlMfS-jDvfnF__g(>DDYUnL6SfMIg89mjWsJ-EHG=w3{r946kyXFyRKM%*}TQ=Qw z0q9smz=UwXPrJQMK=*}I9X?MZ+vP{q&wi?nR0&?NND2=!Fko7{)kc(7P~ulxB73ND zHBF{9WZ@g>Tp#!0(AIu|f+8bO55;47(BL_Cj~VaqI|r?wVV^A?&YZ^>bccUiXQ}7S zcCerUD3cYM#GOm*7PqXqJnCc*CrZE_tV=@eC)+k^~TIMe3SN=|I6JPXOa!c}8)!nJ7)ZfE~G~gxm3MM|kW@te*XC%jKtUp19 zFu7*(X4Pi*W%wGvP12+94P;HS(oib6KW4)1$Uk^UhtUz7XNea6Wx1%4$(BQi#ZxwC zviWP}U6p~u#Z$Fw>TDFy>xCW=OD&AUpf9E*`vUe<_x-&wh7*9vq6 zl0b;cxzLlck4W(5K{@@&*gk8A6+n)_0DBC)t|5wKs7sF?IiAvNo%cF2 zY%{y_KeGdL>J|$uB^5bZGio!d+A?OuEPN-Uq)=~+c=ro|gdA@TERee!PKSIvjTJg2 zFrC`0|F}T)?C~+3dJc}z@n((i5aa%sOmZ0y_aL@Q;2s=aZ*)vcw3mna12*#nA@u&6 zYHV9?d2}xs_o9)HzfJcY3uNp>TSdR;##$jvgQ4wDTf9V-_!XfR+*ny`HC&V3M!Vvb zF*c|1FDSExaGH-#L7TSBGGzPNYk~$gPFcoO=#qZ@3PU{R&jG z2pDb&U0*PYNq(!~A6D~Rp{6-yV0h4)Y5GP89Ac_4Zyg?fZ*OnM!N-?0O}B%)JzGl) zLL-&Fyu2&|J@ofWNGm85F>BRN&X;MKA5Iq}BqvMa;^L~P6&b`XJqUZgi znnsyBGAw>q{~hspsU@M>A|nS7x8dDjolDJ{OKj-QlGGmraL6rc6*?RyqXenkc2tq1yh#RzhC_36P6Wl@)NjBD z|9+G`X`_(~fN%oye72LXdz2t&DZUA2*>st>Coc=yD(L#=4_z~C}JS*B;N$Rs3i$+OJkiphz6nLm}YqVpUo7R_b$)p%ZO14ScSNcGF`S2t9BZ=xUE~Cj{e@UhM`ht!nAcysVpL+{*Ow322ecVfR(r zlmK$fO=qUDI-JScPK2KKYt9_5>~7u;Abed9wlei9ze0s9YuA20TDbn{IDs$b!pnpl zD!=cvwJ4hQbtS!W{CFO_2pAX`91aVTod)d&QTSf@2gkI|>ZlR_wrkqo=?ln2Dgnfb zK}wIWAsZVmJCQd}#}&#dDhZXaJVYd-aq;mVh1d1GKVM9VyyR>zB5$Je@7?5c3Or4x zSUV6}#uhe|RmH-?(Y_PDU4-&o4N}*7y}I%I-bLW#sMU3={G(SHJU-sup{)H=rp`Du zJ{n0q0a}mDB$kK-oo+Q=LEyWN&hOK#)9>o)1Z}T(D-P?f2O62NhOjJeEN%)#BR%d! z~{JQYskG~p4YKr zbNJnTXAS6~0uYTmn_ku<991k$i&lA?T8e*|eujzCzCM^JnpH{P4jCRE7V}H^f}Kjc zp;!E=CY{KF(=+Hn5<<^Resu)fTaz7H_}LNJ=KXp?@O+Z@eTd@Pw#yGl1=I*a-TQXq zS=Fd}0$uU~o~WQZ3C1{Xb-n&;Iw6Sl)$Wdk#rdo^Cj<&o%qY1fFh&?}8$;6VUtS6T zBUf08>v4I0NM3AkYzZ=z2ft=N!LRf~##ofJExBdD1O`PT=AfgcWbk)E<3^kPi zU~8#y3x#aJX1L2`A3o}<)j2B*l6;agh+I4PZ>GuQrs^avF5m>D9V$qFAU-8$3PmYQ zh}~RR6^n;&tXVz^CHHk|OO0u9Pf>FX3v5x8G2h%NS+@OV2PJ9R&;<%F}v`ilpOgYPUdr!do5hY`?6&Pe-~SNN(y~y7X*kb zsPESbQ_0;Ham2{Mv_}fk)`T*%t`D*$M3Up7R)27@ag+P;38su?X3y3lo!iTDo7EkV+SlcUh-yAuh;3JKbv|K1J$l!GjYjyxVl$0>q)pR-ZYT&dm zBWaBD9D`;?mGZK!2ufgYeb8ClALeqYD+x);8HyNq+jHA^Jdiz~ZZIR&Z|PY*6wC88P@*KLB_c2~5@MKqFRe831UeyKJsRfb>T&bEOIfs^M}8h^`0xq} z2yOgqNF}o1NEA9ZA{}QNp*k`9J=pp-=Zg-6<@s z7k;dlxBKj!(ml?qT3RyCcc<7$#6O7JiRtl3UNOk}au*Dl0qRI*3Wb3m$Xd>qOj6^f zY4~n0rn3#9G#v?bUF?dg)#2YF-9l=-&?#|UervCL$+~#q1c{D-H4+Y@#d?i&%g%q0q)MZ}NI!|vr; zRFh-=XJJ!Wj-mE^Zk#E%o`ZhpmmjHYex78sW~Mo5{@Y!8yp;7X;9&LM*cufwn0i26 zUJ6h>{RbCt2JTJX+|r!5q6sgz`?i<^)&4X6)MPXzhXGL>?giE1{PkG(eYxDK%T*xiryKKC7c`14CR0E6!-=iZznD*pV0?CoByvrMK(@|!_l zxPxw4{KzEep4PU4s<|HASL&^5ewxz_%?Oaj?(n@rwkuVBPc^Y;vu1fcnPcYJ*dQb6 zO&MMq#!rgeBeLPFD+u&?yvOyZ^hpa*bE|nR-dw2gghLDQ9Z4tEftb|S^_n93z*K^x zh8|4_@u%x+xjV;jA#!St+Wmz5#`==k8XaAMh5tS#{eg}28E@35zrX(g04 zb3u$K4@gchNUfgGD|p|nR#|A{T~yG-9Q75d_8p7VN2^-{7clCsV(_!`>N7Ih@p&bR zsqkGC!($5}Az}AOw5$Ey>Z1Z&3jyQu+-tGq)=2H5VGF0WNKkJglV7Q2uMuE~%4%iz-Gy-s zNxt?270LPW$(Aw{evIdolOA?sgsGyHD!pNmzIJo}RKk-*8WSi~P4d%8OcpSW(Ec;v zU6UEl)&b~K&6s|uKknTLZL{yKzBwjoBdF~3H188MfI6r6a?yjXWa_}Y=~<@Jrg{I2 z?0Ao5>geu=v9p0KpLdpd6)M5KuIEJU21~Vs7>oC%lizoTA}Y{%!}FdYHn(1Ak;SC( zMconS^;hP?Zu0b?SJDPApdo;o5ztzw51OcX>8y?bn!FW&XjS#O;TuDfnYB#tX#z6- zOK=;0nimC|Qat`4f&LZREo^*8$) z22I_TGeF68N7-TaINaec6AfOsX;#wMM7Esy$;y@`L(~h&!BfQH_cvw?ud`~PZf!>c z-okvq5S*T{-=@tJmrIhFsNJTB8L&?U7)dxT`CO1$oTHkngswGWaH}XE*Df&P&c%k~8?*`^axnnY7fIa#M(jUb3VTT3nX?a31Sc z1&F>*H0LV_(9(|QaRyaRmH^pfDV#Josrv%3iXIo+8HjG+Gemh2I58pkSGFJ%6}L9f z5}j`wUjnG}G3%VocA4_uTnK~K#tyLZoq%rPyW+*T5?8{ZV!6QAI|znmrH;dx=MCxS z<4EB{nSHg%>d12PoVMUNHv&_8u*ftwTEMt3+o|8shr7iX3yj=@5Uk(B3&@e*TGmdb zPBeR7s35Tcm^UAYfVtyG#2j8N69shW5FOc%na-XJxpbn;oz3d@fjg$^(n1-IB}axU@v_+d;4y@)&9)aEfN{pYVP^>5A< zkk<;BgijV0Yrk$*dcTp?q)>1Z7??^@$+uK|20^NzrZ~Q_Mg=`fPJ%mZk?gK5Zc*iz z-f%s24aU2xxn7@c^TyJ+h|h?90%$pE5*PqPyTlTLH)+gx29iok>I&q$X9ezG=9Rwt z@9PtgLKAt8K5iIEr(#*UN(d&ps@_bMp3@(wjb)@@J`ZTlI@nuk|NZ;ogX*88Nf7h? z37IG2W%LRUnFv)@Uzn@cN#lj})UNP+k5pEHHY$GuPFF14Z32Ure>@`R15>?Nc+hWN z20MOoBi5;f?e-c>Ob!j+spxUL+L>s{yR@^*v&?gwp=&Et)PyIIyusk)j@TX`NMmq4 zIpE{h_U>W=)yrTp*Vd`Wp0fGvF(!G}cnte(6B%u-4M4ZRsZu`C@}>ar-mTbR%#7c^ z)mmKyI_REY*nN3uZZ`k?iExuxTGV4No_!fR;BUmq8-n)h^TvDO-bk`cU?sHcLIl!Q(FTTJ|g-7<&tEfP*xmm-0iy{>e6gpsQ2 zou_9ATE!G+AmTWwHX7OL>)#WXSYsw+=$?w2^a($;Xq8o`jV&vv+xl7vD}PLtFi(0g z7py78czqPw)9jF+be$x*r;6KU9{YLDLk?P9V=7GW=E>xzr}m9s&0N-%q9n+E?y!?F z#BMUq&%l(s@IrDPw>N)N4UPsxI52>fI3~c~h-6>`E$z~69PO!)UYUnIB4OSXOR@&> zaIqb*)N~z=&w{s8ZTt^OpLC66CTpATB<Q|1ig?lo3hCBmMLgtFUJZ^V_5sTRYC;S~OO_L@aMs z?2pxs*b=0O+b&T{3$u4Gf!{Pq1dg6#Z{(1j7no8hBh}E?kmzW9LU+v-C76@Dk3^vu zl3Y}zzGtM=26GtfWl#TO0P$7Ff{2ydn(E?_+OBQ;fQmI!et@332ZW^hi~ zOS!nhI{TjP^YqT6q!N7To$}M$N^Vo6-}tvDqTUAIf5}XJkzx7yGlt?Yy#Squk8Ug~ zj_I)iV$QE5MOkDUB7*!?;=v=i#!na9@1+YIn3ys8-l~X^EA27WkF<6iWF8m7`rVeN zU}PJ?VLiJuu4N;fFvs879tb0totSL@>izE2lB-1qvlY}SNp>vVF;XB3_#SMDBJPB| zK`&R!@|tb~Jp9Moba=B<5bLwapHL{q!h0FzssVTX>y(+h*jsYK-=T0g=>rTT#K1R| zw!eenYaeyFLz_$Bp3M5Oc&g_g8V|ow4&D4X`h*l4q5RHb!=l~bT|nS{O0UPtu)j%Z zvw=6LExAXG180Iu05v4gAa-9=^yspSBCo`+CwE%RSV)=}_yO4@?;o7zMWkYz7)$v| zWMPw&O7vKtN`8hLf0KH6v>oPBNzZxY++wCYy*IZjh~KZkv7?<`?MayIog{t+cgQFY zGA+ip_O$k*RV1J2ULDRfjr`?XSv(8B*a*~T=w>=O&J{dp4ss4lLo3gH-#^(`n0+hE z#bb2_oOVy;wKK;|yxn)aXRN!Q^DDL*;CxbIKH@>zFFtyesG>9IZ%ZEt;UsTyK| z0R08QoqM^IGx;Sjs`K0CL z>-p@dq>jarkATQ{A$aN+cWG0vaDf8nMe;f80(Xbc2MC?`7xo%t+JoU65$8OgIAcuO zzQlUCU~`CEb}4CI9dN3s6)z$6g-ZsPVoP`(Z|$lgSHOsP58l;$cl|*Vc#oXJ3S&z4 z0Auht2=>U1xN?G6IN2hBp|zN<7&_Wh3t{`K82%|BKD4+^eiFDY-_D>M*hOq~6PljD zR^X#tmdi*7hG;sD(g?xGz7U^0RnK_J!!5-XBJ^sIBMQc6k$nEj zZvGH>`m_u1wC}MfshCb*fJSFY-6s0|PsTw;N!VFu_GN`{GvR`;J+_Vzi6SDQLd3ThEgC}{ z!+0PfYsMm)Yg$65^N_P3*H3mLGU|S6gf68Jwr?uBK$4+iT-_it&&LM7V78)2HeXQu z=FFkWi|OL-yaa^zVO8pal{~L*<7d_G1 z%zg?L%qz+9o-<;Nrl z@pPI}ldwhj5gW*e3s@Og0>TM*{@wy;Y$a@42jl$3edCNwVGdqpsNJU17~=nCDf~TU znf-2VLDwE>Eu%}FP){hNa3>)6r?8z>)2M?;B<1Z-?Gbs}?T=^AUcb!L!fyq&i#?D5 zzEq(2;n(v&SB8lqn4jdg^L%_0q+VzeRN;D`mHN>KWJ6K(HslZNH5$%)9Pw{+N zv-J?l>}2h*t@=k&!r)A#l`Y8fK!+`P>FWKL^_};4n`P5*IWL%NYDe;G+EJ@`ITHJ8 z%!^6FH1*!iTA5|BtZtUzE@ZVoj-gyuBpliYDUimeKQs0BuWM)A@ZIdmS_)LgJge>} z*!Y$TUgPpnb`ru$zrL2gtntn6kIFV#7;7w5!Oj$8Xy36M;g5&y1G2glg*8t2tNafO zcI`N5DKyntGjKoIXt$aYj!kSxI?{U432d!9bm7nRni#?9YF~5|A zANaP~D|Zsc8$aGGFo&UgS8O_lnzLBUbhk#NdFJ@nnJ#WDZ8`7p^uR$!Jt*z-T1&+I zwZfMaKSOudf6t~-{=8PIlF%^kRy;IVvk&ix6k^JnSJ+z zXv3%G|FZrQuzqQzLLPlS&U>2v$4?vb2tTA_wzBBjCI9}gHRj;lugPPklrn+j^ky%} z@1F}792Pl9uaS0bc6fUHxBlmXtgr*HDHXWxJu_9qz7-{DW=k7hIK^r#$rRXyCHQqX zMbM|~UBJyOB_%ovNu&nE#|>|{w4FrDAvZ`eSlX5mJ${>G)9(o=@%i%FM!~9m$#M~0QvlUK{7b5UEImFgJV;@<2{pvr2G7j&D}N*J z8s?XnvuI+Gcl<9tg%`(3r@@=QK!YoiYUf(QmeMt{=pzPU6W^{CiUvP2w`Uuifa;ER zYg{eBW0EO{e_<i%gLW@F4A2v6?aeO5}h`UVt6hV}U#Um>@>(D%oy)fX!- z$0CL)-}o*wiyQ=<}a6>MmbJB0KW%&wV^Y&=D}zKk)rp zhS%&iuVYahQEy5cCrKK;A03wy%0$_{Ral)A@*QCWK>2Tf3bw+!yxZ`6XZ!O$sorpG z4GMb|{NK~g06h-BwUNS(AsJna!TbGmbcG^%0gKeCYk$-U>%6(>7pnLXKUWg7Nkg^Z zxD(Pq`S`yjogiV-H)5c4*Go%PP2Mva&x$7S8FZD41T({`yl8R~uUHsSS*@2~@8QDp^EHZ>A3U9Y-eG&+@a%1l@K}FKzIXd6 z(SJfTe;NdHhR{-l#v7tK%GE*BUML~9bmAujk zVeG|;3kBJ2OT$Rv-l5&@uJNwg8Uch5DP;Y}#r`lw9TMi{6Rx@(avIkL;6jZmB;bn@ zI_&4CMnM;}03A7VzaKZXbl}Phe90&p6Bdnb$1j>3> zlUp~l2O4ZK$B$qH^m2exY`=!r`+Q-#6#Z8%<_Dg|5U?aH{R@pS6Oa!ZLJfrzF$I@b z=KJNTei%CSqw0cIBNF0pe|Qu5Wd%F`vOTFr`Q*uF_beYt=izSY`mz7swgA)luE-7@ zopW`pTc9q$Zir z?#D-Oy8{2XbT&u;ErHZ>Shy12cGc?hL|!z~U3mL%(UbP-3C#BzQ&&KAEgwa~EKD$1aX|QE_o|VE+^Wi%B^6S{6fed}`0M)zJMV64ZTv zbr-^Sle&YNuz9#qjBPs#JKk2P@qQfWOrGd|$8(?+3LzIU<>QZY%Siha6>XxZ^+R&x zOkMIBpFC+ur4O75ufE)N9HD^((6od>?jJ-knJR>}Ab#YIVQx>LsD~R}7K(MA^i)E5 z9C!-5Gq^**{t9n88)@7`m4-1SwsoeH03oDcM{4SSp$aGG1(v$EQG9Hm-rl=pZ z=Ir5D2DiH^3QdDoNhuP$Z3qC zz2l|aF}EsMEN59hNk-!&?w|tb{!77(G6>VKIcV8E*lnt`ffjsK%WbcV>rJOB&Pio& zyVBwwFgKM+!HMq)WI;dwo-COk8qr?f>!t&#FtI60q#2-Zsn1=LDPjw7I`f+mXZ!Pq zRfB zqEYI!yc`!q#6d!jFM~Kq*0W7iOc#p(bSNEamhYtOb0Kb@WT5N&Khm9hD<~H4t6BBb zn_gSCrh#7;VV34g8J6Y)e*Wwxf+PoARUYHh?L?QKP6_}Q?uwitcoNOOKA&T-@a#0j z=Dx-)NdqXpw%pv+CA_^VwumGC^4$S|{J9kbiO4aik%EIBa~+%7+R>is}qvOSdaLfD=W=?f~tM?B@lxPNwVV>1g*h|CQweQ%r zyM~IZ83zV;@Mb&?6R_D%{i+!oE=+cw?8mPUzmp{`Kq%dmL9oBaJMEWvmJAi6&WD$D zd$@?rDc&5w^oh=k!FQLpO1y9^Wf{xaqmdMo!l^?gMRmJ%%o=TZGweZ$hFC|2r88=J z^f2-~tYNn02mofVdEejFc^nQJ49M`65O~CfOx89$i?ym*V19dRdrJ22N7_uKV+ zUXn;#rwL$65~g}l*^=FF?QA!8pjNH$Lsxr^=k;-wTNA10k*B_ zV9;Gyr0=#hvpE}-lhf+yTN4L)pd3U%@PA3$X;|v{t2+&7GV+5+rQ4%{l3P*4-`0>$ z3jlyK2^3Br+Sx>*=vALZMa*0SCT`p&=%jZ&c5XbCy@e33Q}>QRjN%NW0qAv4qo{87 z6IUnamd_sQ!MywDMSJ&<&xdt>#1MTv^$xVUYb|pHAmHM@+}M{P-@U}ZOp`*+-5iA` zBD$W>ko=;LI@0A}0N#9rxTUx}cZY8|OfZB5hcU{Z-_#NR@#PK{*=ua4V=`&Mc?7Mn zYkMH*zJ9Mtbb1{L(23<^h%t__CJpd{>UDzGjyF*|MJFPTQYK9E{P)%#iss=QP!i6w z;RBY0$1a>a*WX=(Dc+!ApsE@upPJs0%Y38Zs>p$n$-jDnA^|Q`dJJt(9xy$ZXD4;h zg$Y1Qd5c}fe9i*k?QL-`QPpu-%O)_a1!}^)!6$?jj-PyHA6oTXEw6wE_+%ch(SPlnvGu|J+|EA9iG$pdP3o<^TrEvZg>$*^boSjO1 zRO2|dru17Od1Cs>8n={IzNrag?@QvxZ?{ZZZqtf95vM#^#$UpfU4HN?L8<>4ht3kR z`KXs=i+NYc+;mhIvEr{Fiy?slaqTZ5X13cQTcW1W=9{)h1>^EKWgDlsBQ~La{C&B0 zbR->>tTbIWnY`-tmE2=vn+QmN3d%%dHks-@O?*~V_c6Kr;)!UyMBUT7@(0WEvcGvR z8GYRvji&lMbC>eDrO>Ds&bz}V?UFupk*zg?w@s`XvfJhgG*Rc~=qyjh&Slu~rJp9A z7Z0Z>iJLypn=i}zQ_};ODgipigacHL_^?j*c?=T~`DCX3E6jn7%wcFr({DCtRjRfL zzw2>A)KXomW!K1}Evr2U9Zu zd{Uugg#)q0k#M~8FC#hk4r86raqHkrI#l;nm7l7qYi~2!3=%Zd;001={~+d~;$Pjc znGi>{M{Poaero>SA<};$uAGly4zgPtJa%5bh{GCwJ{M zoy6s=-1btA9#0<0cV;BKfn3y&i3{iq3$(|O!YF?(L^(wkD-Qw!&| z?;ke&fW~Fn*y?MzF=E5BxEUl=?1JvmDYIA=6xY|LoC$Neq^^VVDo)G-Pc$}$sgkrb zNskf3u>j`-1+OMMm8`R6jv(c=W(g zH8E99w*JyfMd;{%;U&fGCBDwBa8)Dv2R&poUYRO28)IYQ9I`<5Rd7V(9fFa427Vp+ zIizdoEjRDCS%uJ5^c^m5d$tzWbKzF1khna}=^LN+C(BU!(NG&*7TcQ~EBvn%wU0G>n_T*$V_M5j{#3!Kg( z1|KDAhda8iGm(Qf3z3H$3tMw5Kei%Hzi+X(kyRA;0rjc{Mf?O3+!JLq`91!2Ly&h4 z^-cs5K(9rl8v~0K3^pR@_@7qp{h#Rtj^p^(Wz42UG55{&(eUkpVno^6j9fA*TREER zM2`-UyESuL7!e|->4Yv~=!lY-Ya2qHO3Wn^A(UJ?cpT@4^B=eR)^L{Ks4yrRIvbesAWIANB{qCMx}?K$80YY5 z9@ZiZMCv0-_lR=aKvS4|Uz$poOtvHKb%Y;mn71A@cQls3X?CE;F+CU7D2IxE-&-;h z6pn-dO_ctm2`}V{Y}VMs7!$<5Rn2%t=ef$L9{Wf(to#i&dTZ|C+yng=8Rkt(8Vg&x z?)NAf8K2K5L}x*Er%{T$2s^ zVK_~^Hq+&+8~tVGSNRm?CUb~cuzemx^TWGsT}XG$i~we0EIR)^Ro-8*UOH1&V!8S4 z7nYxTlyh~t0O?T=vzn{8NDrwe_2DntsXb=Qs|Y;{iATz=1_a=JCiHGDn&j`Mx;D~< zYJ#EJ`KRFMSR-grmq9a$JPb}M&){qV+TAw`Fy6|%B92~Jo0X~kCE>^7Q&f$xi(?k4 znAos{nVw6gvmm-oo1-FSsoXnb6pPfA-ciAS*MwMmo7n)wYZr7v5F3theML5c&nqPb;#`73X8zq!Mp=b${h1GMtpZkq6fcwjUOjq@libtqQ=e}A}}t< zq7@2RTKH!p6yxswwi6j1Y?Y2Ij*@prL$=~n!m2-4VQLcX$;d^3$H25gS4qygO&WLJ z9x1v&?LUVoZ?>8Y<{29?r^f@Cx_V9~s6JMJ{(@wtyh%lJdc>r6Jj)OxryNnK&$1?% z?IKn3gAszzJV+BC9^C#~@S>@$y0^5_Ir?9hN>JLANOaXRr10<=`4Oa zB$^9WZx4e$&(nIO@aBdv^Nd@lonf9|ZhDu1EGuhM4k`L}|GhMF;}~*&g|gZ3t-xdO zddor?RvE*>jvUZ#bRE=cNBR*o0aYvul8>Y0g;ZrGe#@+mZcY~?v@`!f&B-{T`I zbuiEZE{MYPZzL0A2-SEUshqTNOk5hoLNCWY#Mh`Mix04%xLYS%Z|QB zL-lmq6w12k=NJ!*-e9peH3O)9wMmd(>}nmRqJ&F^*&@K0_9ZvUfdHIX;x?3LO;v_| zkb!H^qvQuYU$L4t?@-4_-0MCJE0zI05{8{@UF}9_U)viB%@DHgnoiQLZp<>05KjZ;mN0MqtwWP)F0MYmR|YvaQ9^SQTMC}}+v;>uC5?Mpb_Pv6@M_^v``jgYeI5Ld4m9Plp1C`PQ z6`5MzABqft8#5UwOSrSn&}@AL-N!u>!bok2BOynFkOeFDOI>QH=ZuQ4+_6G3tfj`* zsP-=_TMs>XVk=n^VdrNoc*X8=MHLi5#}d`XbdV7SaJS&)y6*3)E>=o!$BPlw)(^iP z+5^99y}|{`08KPSlCs1;Fy6rIit3Be67K2r(YhD(s6lQTi#!q$1P0Erx>zZOSz?Xj o6P%~pNv!`b2J>H8#*4j;KAo8yxDmOzypy>B9EdK2Dm;z#4@=+EfdBvi literal 0 HcmV?d00001