From 9e63d7fe3aa3bac0f52c10e49d2809a982293446 Mon Sep 17 00:00:00 2001 From: Signal Date: Thu, 9 Oct 2025 12:26:03 -0400 Subject: [PATCH] Ores, tools, and wielditems --- mods/rgt_base/init.lua | 26 ++++++ mods/rgt_entities/init.lua | 12 +++ mods/rgt_entities/mod.conf | 2 + mods/rgt_entities/models/rgt_anchor.gltf | 1 + mods/rgt_entities/models/tnb_animator.gltf | 1 + mods/rgt_materials/init.lua | 79 +++++++++++++++++ mods/rgt_materials/mod.conf | 2 + .../rgt_materials/textures/rgt_gold_block.png | Bin 0 -> 307 bytes .../rgt_materials/textures/rgt_gold_ingot.png | Bin 0 -> 316 bytes mods/rgt_materials/textures/rgt_gold_lump.png | Bin 0 -> 301 bytes mods/rgt_materials/textures/rgt_gold_ore.png | Bin 0 -> 685 bytes .../rgt_materials/textures/rgt_iron_block.png | Bin 0 -> 296 bytes .../rgt_materials/textures/rgt_iron_ingot.png | Bin 0 -> 283 bytes mods/rgt_materials/textures/rgt_iron_lump.png | Bin 0 -> 302 bytes mods/rgt_materials/textures/rgt_iron_ore.png | Bin 0 -> 540 bytes mods/rgt_materials/textures/rgt_stick.png | Bin 0 -> 179 bytes mods/rgt_player/init.lua | 68 +++++++++++--- mods/rgt_player/mod.conf | 2 +- mods/rgt_tools/init.lua | 83 ++++++++++++++++++ mods/rgt_tools/mod.conf | 2 + mods/rgt_tools/textures/rgt_axe_gold.png | Bin 0 -> 242 bytes mods/rgt_tools/textures/rgt_axe_iron.png | Bin 0 -> 271 bytes mods/rgt_tools/textures/rgt_dark_item_bg.png | Bin 0 -> 182 bytes mods/rgt_tools/textures/rgt_pick_gold.png | Bin 0 -> 309 bytes mods/rgt_tools/textures/rgt_pick_iron.png | Bin 0 -> 348 bytes mods/rgt_tools/textures/rgt_shovel_gold.png | Bin 0 -> 250 bytes mods/rgt_tools/textures/rgt_shovel_iron.png | Bin 0 -> 277 bytes mods/rgt_tools/textures/rgt_sword_gold.png | Bin 0 -> 276 bytes mods/rgt_tools/textures/rgt_sword_iron.png | Bin 0 -> 275 bytes mods/rgt_world/init.lua | 2 +- mods/rgt_world/textures/crack_anylength.png | Bin 0 -> 362 bytes 31 files changed, 268 insertions(+), 12 deletions(-) create mode 100644 mods/rgt_entities/init.lua create mode 100644 mods/rgt_entities/mod.conf create mode 100644 mods/rgt_entities/models/rgt_anchor.gltf create mode 100644 mods/rgt_entities/models/tnb_animator.gltf create mode 100644 mods/rgt_materials/init.lua create mode 100644 mods/rgt_materials/mod.conf create mode 100644 mods/rgt_materials/textures/rgt_gold_block.png create mode 100644 mods/rgt_materials/textures/rgt_gold_ingot.png create mode 100644 mods/rgt_materials/textures/rgt_gold_lump.png create mode 100644 mods/rgt_materials/textures/rgt_gold_ore.png create mode 100644 mods/rgt_materials/textures/rgt_iron_block.png create mode 100644 mods/rgt_materials/textures/rgt_iron_ingot.png create mode 100644 mods/rgt_materials/textures/rgt_iron_lump.png create mode 100644 mods/rgt_materials/textures/rgt_iron_ore.png create mode 100644 mods/rgt_materials/textures/rgt_stick.png create mode 100644 mods/rgt_tools/init.lua create mode 100644 mods/rgt_tools/mod.conf create mode 100644 mods/rgt_tools/textures/rgt_axe_gold.png create mode 100644 mods/rgt_tools/textures/rgt_axe_iron.png create mode 100644 mods/rgt_tools/textures/rgt_dark_item_bg.png create mode 100644 mods/rgt_tools/textures/rgt_pick_gold.png create mode 100644 mods/rgt_tools/textures/rgt_pick_iron.png create mode 100644 mods/rgt_tools/textures/rgt_shovel_gold.png create mode 100644 mods/rgt_tools/textures/rgt_shovel_iron.png create mode 100644 mods/rgt_tools/textures/rgt_sword_gold.png create mode 100644 mods/rgt_tools/textures/rgt_sword_iron.png create mode 100644 mods/rgt_world/textures/crack_anylength.png diff --git a/mods/rgt_base/init.lua b/mods/rgt_base/init.lua index 1aa2866..07e5f28 100644 --- a/mods/rgt_base/init.lua +++ b/mods/rgt_base/init.lua @@ -61,6 +61,32 @@ function ns.register_node(name, def) end end +function ns.register_item(name, def) + def._name = name + local alias + if not name:find(":") then + alias = name + name = "red_glazed_terracotta:"..name + end + minetest.register_craftitem(":"..name, def) + if alias then + minetest.register_alias(alias, name) + end +end + +function ns.register_tool(name, def) + def._name = name + local alias + if not name:find(":") then + alias = name + name = "red_glazed_terracotta:"..name + end + minetest.register_tool(":"..name, def) + if alias then + minetest.register_alias(alias, name) + end +end + minetest.register_on_joinplayer(function(p) diff --git a/mods/rgt_entities/init.lua b/mods/rgt_entities/init.lua new file mode 100644 index 0000000..d39390e --- /dev/null +++ b/mods/rgt_entities/init.lua @@ -0,0 +1,12 @@ + +minetest.register_entity(":display", { + initial_properties = { + visual = "sprite", + textures = {"blank.png"}, + pointable = false, + static_save = false + }, + on_activate = function(e) + e.object:set_armor_groups{immortal = 1} + end +}) diff --git a/mods/rgt_entities/mod.conf b/mods/rgt_entities/mod.conf new file mode 100644 index 0000000..d529574 --- /dev/null +++ b/mods/rgt_entities/mod.conf @@ -0,0 +1,2 @@ +name = rgt_entities +depends = rgt_base \ No newline at end of file diff --git a/mods/rgt_entities/models/rgt_anchor.gltf b/mods/rgt_entities/models/rgt_anchor.gltf new file mode 100644 index 0000000..82648ff --- /dev/null +++ b/mods/rgt_entities/models/rgt_anchor.gltf @@ -0,0 +1 @@ +{"asset":{"version":"2.0","generator":"Blockbench 4.12.5 glTF exporter"},"scenes":[{"nodes":[2],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"cube","mesh":0},{"name":"root","children":[0]},{"children":[1]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":48,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":48,"byteLength":48,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":96,"byteLength":32,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":128,"byteLength":12,"target":34963}],"buffers":[{"byteLength":140,"uri":"data:application/octet-stream;base64,AAAgPwAAAAAAACA/AAAgvwAAAAAAACA/AAAgPwAAAAAAACC/AAAgvwAAAAAAACC/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAPgAAAAAAAAAAAAAAAAAAAD4AAAA+AAAAAAAAAD4CAAAAAQACAAEAAwA="}],"accessors":[{"bufferView":0,"componentType":5126,"count":4,"max":[0.625,0,0.625],"min":[-0.625,0,-0.625],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":4,"max":[0,-1,0],"min":[0,-1,0],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":4,"max":[0.125,0.125],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":6,"max":[3],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]}]} \ No newline at end of file diff --git a/mods/rgt_entities/models/tnb_animator.gltf b/mods/rgt_entities/models/tnb_animator.gltf new file mode 100644 index 0000000..52654e7 --- /dev/null +++ b/mods/rgt_entities/models/tnb_animator.gltf @@ -0,0 +1 @@ +{"asset":{"version":"2.0","generator":"Blockbench 4.12.4 glTF exporter"},"scenes":[{"nodes":[2],"name":"blockbench_export"}],"scene":0,"nodes":[{"name":"cube","mesh":0},{"name":"root","children":[0]},{"children":[1]}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963}],"buffers":[{"byteLength":840,"uri":"data:application/octet-stream;base64,C9cjOvYoID8L1yM6C9cjOvYoID8AAAAAC9cjOgAAID8L1yM6C9cjOgAAID8AAAAAAAAAAPYoID8AAAAAAAAAAPYoID8L1yM6AAAAAAAAID8AAAAAAAAAAAAAID8L1yM6AAAAAPYoID8AAAAAC9cjOvYoID8AAAAAAAAAAPYoID8L1yM6C9cjOvYoID8L1yM6AAAAAAAAID8L1yM6C9cjOgAAID8L1yM6AAAAAAAAID8AAAAAC9cjOgAAID8AAAAAAAAAAPYoID8L1yM6C9cjOvYoID8L1yM6AAAAAAAAID8L1yM6C9cjOgAAID8L1yM6C9cjOvYoID8AAAAAAAAAAPYoID8AAAAAC9cjOgAAID8AAAAAAAAAAAAAID8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAEAAgADAAEABAAGAAUABgAHAAUACAAKAAkACgALAAkADAAOAA0ADgAPAA0AEAASABEAEgATABEAFAAWABUAFgAXABUA"}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.0006250000442378223,0.6256250143051147,0.0006250000442378223],"min":[0,0.625,0],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0,0],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]}]} \ No newline at end of file diff --git a/mods/rgt_materials/init.lua b/mods/rgt_materials/init.lua new file mode 100644 index 0000000..95c3c80 --- /dev/null +++ b/mods/rgt_materials/init.lua @@ -0,0 +1,79 @@ + +rgt.register_item("iron_ingot", { + inventory_image = "rgt_iron_ingot.png", +}) + +rgt.register_item("iron_lump", { + inventory_image = "rgt_iron_lump.png", +}) + +rgt.register_node("iron_block", { + tiles = {"rgt_iron_block.png"}, + groups = {stone = 1} +}) + +rgt.register_node("iron_ore", { + tiles = {"rgt_stone.png^rgt_iron_ore.png"}, + drop = "iron_lump", + groups = {stone = 1} +}) + +minetest.register_ore { + ore_type = "scatter", + ore = "iron_ore", + wherein = "stone", + + clust_scarcity = 4 * 4 * 4, + clust_num_ores = 8, + clust_size = 3, + + noise_params = { + offset = 0, + scale = 1, + spread = {x = 100, y = 100, z = 100}, + seed = 23, + octaves = 3, + persistence = 0.7 + }, +} + + + + +rgt.register_item("gold_ingot", { + inventory_image = "rgt_gold_ingot.png", +}) + +rgt.register_item("gold_lump", { + inventory_image = "rgt_gold_lump.png", +}) + +rgt.register_node("gold_block", { + tiles = {"rgt_gold_block.png"}, + groups = {stone = 1} +}) + +rgt.register_node("gold_ore", { + tiles = {"rgt_stone.png^rgt_gold_ore.png"}, + drop = "gold_lump", + groups = {stone = 1} +}) + +minetest.register_ore { + ore_type = "scatter", + ore = "gold_ore", + wherein = "stone", + + clust_scarcity = 4 * 4 * 4, + clust_num_ores = 8, + clust_size = 3, + + noise_params = { + offset = 0, + scale = 1, + spread = {x = 100, y = 100, z = 100}, + seed = 9858, + octaves = 3, + persistence = 0.7 + }, +} diff --git a/mods/rgt_materials/mod.conf b/mods/rgt_materials/mod.conf new file mode 100644 index 0000000..8920d9f --- /dev/null +++ b/mods/rgt_materials/mod.conf @@ -0,0 +1,2 @@ +name = rgt_materials +depends = rgt_world \ No newline at end of file diff --git a/mods/rgt_materials/textures/rgt_gold_block.png b/mods/rgt_materials/textures/rgt_gold_block.png new file mode 100644 index 0000000000000000000000000000000000000000..eeb90446a258d3b790eac308f129547cd7b17540 GIT binary patch literal 307 zcmV-30nGl1P)Px#?MXyIR5*=wQZWv~Fbq7b07}v_RRT5^7QV<+_!T1q42(!DB~(HvVz}a%s(6Sl zIbVHtJvr<*FyX@lV-cbdH~`z-oR?V3Xtu`n{BlJ1+Z#Za1b~myrK~3tx|Exh10Y`~ z;)D1od~H@vHGRTYDe8oDYICe5wRuESIRL^gtpTecWqT_YsUerztkv`rKLV|w94)1` z_oJZHQoDmT2D2`f{%NcqAEZa@Pn}qeo~44Xob8Wdn>RkC!A$hZ@%ze6>m>l;R@pyb zH2}KDo0_tG0GjoTU|KI1>z-3!!vQ!QpXTLaX&;9B`vKp$pe}kq=PLjJ002ovPDHLk FV1hRLeI5V+ literal 0 HcmV?d00001 diff --git a/mods/rgt_materials/textures/rgt_gold_ingot.png b/mods/rgt_materials/textures/rgt_gold_ingot.png new file mode 100644 index 0000000000000000000000000000000000000000..10929bf8a18a9a3287b3ab34858ec0a1cc710fa8 GIT binary patch literal 316 zcmV-C0mJ@@P)Px#_DMuRR5*>zk+Dv~Kpcm^ro<3y2uL^|p>sn*Tw!ByXERRSeE=ID!^wy60cx1o zm>{}1lJt;36KhD5rVMar3suXczv*&!-}k%x5B@qvnM*fUja024pO!hMQU>hz>Hr9F z0+41!g@P=&gLJM3g7a2Yi;S`$pg`)aGXT81>GlQ3f}`iz*9<&Yq_^HBVX)wB`d%8; z0)Vmqiqo}mE}DeFg4O)vTX6lEP(3yC0wn=(y0$(nY6O_PM6mk_Er_B7%QCe{%J`sB zf%gwm55EH750`Y>wVbG^F$=2b4bK%RK&M^9vP`6me*_N%`=Z~#|C0>^C1o?lSl&4R O0000M27cw_%%-onCX+HO4J2TTs<1YZ(Ld>}5~c3N9el8M=8$De-Q58d30cW^9c zTp#zh$@=Hx)7yFErunEWzxmKPRFBjOwzS+Nc su0jm+nX;6IHIj!JW+?6u;rC-;5LJn-Td<(O1?Xi4Pgg&ebxsLQ0H%g{h5!Hn literal 0 HcmV?d00001 diff --git a/mods/rgt_materials/textures/rgt_gold_ore.png b/mods/rgt_materials/textures/rgt_gold_ore.png new file mode 100644 index 0000000000000000000000000000000000000000..db2190f0d9384d9d7b1b92681cb4e56254e37187 GIT binary patch literal 685 zcmV;e0#f~nP)Px%XGugsR5*=Yl1)fdQ546|+~b{@cju!oim)bwdXqYk7SuwtNvTE=VX)O}7s1q` zgxUmw3&A!)AQ41M5!^%&7_Cg1P|GBpvWAJ6K_d*AiP!k%y?Kv2*Vp2jSZ8%P_ndow z=luVkR4N7khG7`hYE@B`?Mx^XG7JL|8DrSg)WkXGoa?%7nx@z5y?>{0;=uR0<-I}( zA;hKT`A;jmg%E@gA%v&DzaIcC4jq;5bel zV{GT08vXj{c}zAe{One{Yw$$I~1y=c8y=m7vkq?B^bKYXjt z0w$ zaTfseoVO-k`v@V3NC?^TQl~m2>CZN<=hoC!yKlF%1Ay^#+_Ef*D>GwL?Ud4o_tq$-jIsY`Filgs3jipk@=z|9w`=|YYPBMO Tx8mk700000NkvXXu0mjfnv6kY literal 0 HcmV?d00001 diff --git a/mods/rgt_materials/textures/rgt_iron_block.png b/mods/rgt_materials/textures/rgt_iron_block.png new file mode 100644 index 0000000000000000000000000000000000000000..ed36aab1bea2b2638e930f46342239aebf4fb4ae GIT binary patch literal 296 zcmV+@0oVSCP)Px#;z>k7R5*=&QZW*QFbL!_nMq=mSXt`d{I`~LY6ayL>u_A=Jc$;M& zoHPBhQVN_%MDsj%(I;c(2=BTsB2ra6qN;WRpsKAkA_};tl#b&#&lAzsnsJzU-*;mM zQ<8J8wTeh7MMR8KYXusxfQwIf4pPgqSR274LIBE$h^m5VCB6vOqU9h-L;x@+_zhr6 zT^rr3Ka!p}UQbHtCZIo4;yHGHja5XL890zV4r}ctVMkqUdH%j>N(Ri u`M&SJG>#)2l=)+kh_-F>A=I|9bc8pwJh5i@tBjQZ0000k7-J9y3IqTf(ovT*KK8|Octiq_kkhSRKrX2N8>zZbBb}Zs(Sfuez zxQ5%z_w$X$YgOky%Ovx}UXNv)%dlWw_LQI_g*}FCi4t*5mrVp&4#sWpVwe)NuHu^D zg7?)Cb%!{Q6}oUdbh&oR`M9Xg=}Wrz*)wj7X+HHUxmL)%u24McwWNbrrvOv-+vpDp f6=Jna|JBWn<5DGB<~AP$dXT}>)z4*}Q$iB}Q@m?c literal 0 HcmV?d00001 diff --git a/mods/rgt_materials/textures/rgt_iron_lump.png b/mods/rgt_materials/textures/rgt_iron_lump.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce15fc01b6a7d6ac27d3dfd9922fd758b93fb78 GIT binary patch literal 302 zcmV+}0nz@6P)Px#=t)FDR5*>*lA&(HFcd{krzo=`cajIn0s;n$_7}zd%;EjTP~pJ9*gzw-mSsnl zGSEHCPW%DggU`P2p8IV0_qC}t5Bp)R_1{lltNW|QVL!}W+W?>+o7A@<;-Px$)=5M`R5*=gQeA5kK@>g7oyjb-yOR$?3~E3sSPW^<4XQ~wF1D* zq9VNa%jFXP!FykpB>-cL)>?S)7mJ0I(pno%D5c6TZvpHcjglm>)^0C9^wP-2M*xJi zc5^Y^0F_+;aT*Oe2HT%=JxO0{3S@}FN1ItIY}-YCq>fnXYdloCL* z*<7#Jf{3iO^6+>D0C3Ee>418@9*QJMh)8(vqbLd*LCiUqe|&>mCd1{Q_`Xs~5K)zb zb1oF^XQ!=JtLn^wvMhIHNkl?xeKS4#S1-pr9#z>Bk-U8Ov}0y+Sj)03j$;51m)`*V zXg_W=8q7>Y0B)vdy)@b$Jl9%>phUOZ4e~QF1RwxwEfIxXx^wi>16-Egdm>UwiSThn zQS5fRFxl_-opZrwFlm6=;c;Mv*4jB&trGw?2Ec=pF@U>Q)7#-lDQj7l0SM0s*zflh e9f~~9EA}@i+xgX?x7;5?(y84^uP5-q@Px#$w@>(R5*>Tl06E-KoCY>L~B7(dIEddK9FJy*)!}3a-DQJ#uoO1*jsF?rC1o! z1YvB95X_n%obuawZ@*%oXSCL$wU*HPybm_U0N|YK`>Q?HTFLWVy!Yb054PxRV67FU z6iJeNGGh$S`$+)y$6M6ovoWpat1VSox3Va>{cZx#w8^pz=Uj{VDF8@SEbGkC>RQN3dX=+g0XN*Fa`byrouF*T$MFdS&xSQGA}UZ VXtXP5-y8q{002ovPDHLkV1g4#aPx#?@2^KR5*>rk)e*lKoEw%B~)KZ2m*mcqfn4koP>8k@fd_Rz@kt*0TKa$q?S`8 zwLmH`8`{)B!eD^w-mwjkOYU>CyWgLg9r$lly6CiA0jQLn``IQuF`8)gzy%nJD?lKiQg+ycr|c0P;eVY0 zjn{OqBbno527K0wQuuI~E)zfl0fS+~2(bp-gE8@X3xzE^ukz0-D@JU|j3N#f(n@}F=41i5(4o}wW)00000NkvXX Hu0mjf&zXTS literal 0 HcmV?d00001 diff --git a/mods/rgt_tools/textures/rgt_pick_iron.png b/mods/rgt_tools/textures/rgt_pick_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..42c6dee6a21bccb0952a285cbf45f9eae66f0d9d GIT binary patch literal 348 zcmV-i0i*tjP)Px$7D+@wR5*>Tk}+$8Kp2LfOH&*JrF(Jq2RL*SIyl{LaC7r7q?5Coo4+A+a0s|1 zaCC8U56$3E3Q2GY6}wbv%!#%1o$kK7=e?KjJAp>7>o!04X_^Y%J%G6mlv3h24ggt} z0W?EKR|U`Wy4P*n?u-C}AmH=k6@ayR7g~e9;y7*`$7z$WTCF(jHf)Qd0GN##_`WZ~ zFa$s;g_M%T!=t_jL)sTFlx2yO5`ZX*0Gc#S#b|;j`@Xqb+;Z4$P)c3&1mNa3@Y}v( zTO386=g*d9EltzJFbwLtUJfSc!)@L7eUW8ZmqcqY1h-O3b?YmGF}PJb*4bZRzW>9; u6sEvQl62={D%{r`pgNtYPUp$+zvv4&SB(9zM7~@A0000f1G*$|F4pb|4)4KX)!tO-eD+V zwaVB42ltd zKHyLT>-;puy0Et6{`-v9-1*u$v9a-?{jM~&n2ilPx#&q+iTlD!JTFcgJP`~jy5+M!O8)fXr@7Akb==-fB)P4XDs?ji_z0apiI z+{99lc8H6X{*gA-Gu@E;ox>pkeiZAw7zBYTpW`@Y05ItbhhYfM^8f%u1jlid5Q2?N zVE~m`YtRPQrLFMksp_djRLtY93ViuE+%HF9wg%@ML5 zODv=o{X7u#^}qc5pMUK)g#4{vwEn?=$5l74#yr`-dgqDyAk)Pxiv;Yon^*7T@M_SF z`N$=g%F+mw`Cnju^8dPLN-n=8kEVndPyFxnXAQ_&p7(bD(r(m#;&q(;kSk%9y#3Ep z2Y^69`>^j6MV%M3`eT0|IRO-SaO(88|F56Nx5zLshDFuGv|JvH<{~*Tw%a=df3*Ks*lNMe)@&CGKO8-5t_6Tu1{aM2UPx$BuPX;R9J=WRzVWNFbG7)2l)h^lqdEHKFNc129YHY8(T-X)OKJYVRuKOia!b7 zt+=A1;t`t&X)}-^py5I)BdIuKq$$nd_uQ`0Y0{ufL@j$P7EfKA>KyK<3$22WR#|bR zFgJ7VBu*od3yda63koHL)kv!vBcLu=Gl1OA&u7c}0lK7S(We(FGw}%ZO=vKS0#%`GE<7-r*D%kcbK;R~91TJ7iWtctk!Q2mk;807*qo IM6N<$f(8wgS^xk5 literal 0 HcmV?d00001