From 1219b09851d70f10c4398c43aaab72ca80da9224 Mon Sep 17 00:00:00 2001 From: the-real-herowl Date: Sun, 5 May 2024 21:05:45 +0200 Subject: [PATCH] Migrated enderman to the new visuals Also made the node holding use vl_held_item --- mods/ENTITIES/mcl_mobs/init.lua | 1 + mods/ENTITIES/mobs_mc/enderman.lua | 239 ++++------------------ mods/ENTITIES/mobs_mc/models/vl_rover.b3d | Bin 0 -> 149442 bytes textures/vl_mobs_rover.png | Bin 0 -> 2458 bytes textures/vl_mobs_rover_face.png | Bin 0 -> 144 bytes textures/vl_mobs_rover_face_angry.png | Bin 0 -> 148 bytes 6 files changed, 41 insertions(+), 199 deletions(-) create mode 100644 mods/ENTITIES/mobs_mc/models/vl_rover.b3d create mode 100644 textures/vl_mobs_rover.png create mode 100644 textures/vl_mobs_rover_face.png create mode 100644 textures/vl_mobs_rover_face_angry.png diff --git a/mods/ENTITIES/mcl_mobs/init.lua b/mods/ENTITIES/mcl_mobs/init.lua index 65272eebf..2b18a6775 100644 --- a/mods/ENTITIES/mcl_mobs/init.lua +++ b/mods/ENTITIES/mcl_mobs/init.lua @@ -314,6 +314,7 @@ function mcl_mobs.register_mob(name, def) return self:mob_activate(staticdata, def, dtime) end, + after_activate = def.after_activate, attack_state = def.attack_state, -- custom attack state on_attack = def.on_attack, -- called after attack, useful with otherwise predefined attack states (not custom) harmed_by_heal = def.harmed_by_heal, diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua index d3ce1e5cc..f298ac615 100644 --- a/mods/ENTITIES/mobs_mc/enderman.lua +++ b/mods/ENTITIES/mobs_mc/enderman.lua @@ -31,20 +31,9 @@ local place_frequency_min = 235 local place_frequency_max = 245 minetest.register_entity("mobs_mc:ender_eyes", { - visual = "mesh", - mesh = "mobs_mc_spider.b3d", - visual_size = {x=1.01/3, y=1.01/3}, - textures = { - "mobs_mc_enderman_eyes.png", - }, on_step = function(self) - if self and self.object then - if not self.object:get_attach() then - self.object:remove() - end - end + self.object:remove() end, - glow = 50, }) local S = minetest.get_translator("mobs_mc") @@ -66,142 +55,8 @@ end local pr = PseudoRandom(os.time()*(-334)) --- Texuture overrides for enderman block. Required for cactus because it's original is a nodebox --- and the textures have tranparent pixels. -local block_texture_overrides -do - local cbackground = "mobs_mc_enderman_cactus_background.png" - local ctiles = minetest.registered_nodes["mcl_core:cactus"].tiles - - local ctable = {} - local last - for i=1, 6 do - if ctiles[i] then - last = ctiles[i] - end - table.insert(ctable, cbackground .. "^" .. last) - end - - block_texture_overrides = { - ["mcl_core:cactus"] = ctable, - -- FIXME: replace colorize colors with colors from palette - ["mcl_core:dirt_with_grass"] = - { - "mcl_core_grass_block_top.png^[colorize:green:90", - "default_dirt.png", - "default_dirt.png^(mcl_core_grass_block_side_overlay.png^[colorize:green:90)", - "default_dirt.png^(mcl_core_grass_block_side_overlay.png^[colorize:green:90)", - "default_dirt.png^(mcl_core_grass_block_side_overlay.png^[colorize:green:90)", - "default_dirt.png^(mcl_core_grass_block_side_overlay.png^[colorize:green:90)"} - } -end - --- Create the textures table for the enderman, depending on which kind of block --- the enderman holds (if any). -local create_enderman_textures = function(block_type, itemstring) - local base = "mobs_mc_enderman.png^mobs_mc_enderman_eyes.png" - - --[[ Order of the textures in the texture table: - Flower, 90 degrees - Flower, 45 degrees - Held block, backside - Held block, bottom - Held block, front - Held block, left - Held block, right - Held block, top - Enderman texture (base) - ]] - -- Regular cube - if block_type == "cube" then - local tiles = minetest.registered_nodes[itemstring].tiles - local textures = {} - local last - if block_texture_overrides[itemstring] then - -- Texture override available? Use these instead! - textures = block_texture_overrides[itemstring] - else - -- Extract the texture names - for i = 1, 6 do - if type(tiles[i]) == "string" then - last = tiles[i] - elseif type(tiles[i]) == "table" then - if tiles[i].name then - last = tiles[i].name - end - end - table.insert(textures, last) - end - end - return { - "blank.png", - "blank.png", - textures[5], - textures[2], - textures[6], - textures[3], - textures[4], - textures[1], - base, -- Enderman texture - } - -- Node of plantlike drawtype, 45° (recommended) - elseif block_type == "plantlike45" then - local textures = minetest.registered_nodes[itemstring].tiles - return { - "blank.png", - textures[1], - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - base, - } - -- Node of plantlike drawtype, 90° - elseif block_type == "plantlike90" then - local textures = minetest.registered_nodes[itemstring].tiles - return { - textures[1], - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - base, - } - elseif block_type == "unknown" then - return { - "blank.png", - "blank.png", - "unknown_node.png", - "unknown_node.png", - "unknown_node.png", - "unknown_node.png", - "unknown_node.png", - "unknown_node.png", - base, -- Enderman texture - } - -- No block held (for initial texture) - elseif block_type == "nothing" or block_type == nil then - return { - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - "blank.png", - base, -- Enderman texture - } - end -end - -- Select a new animation definition. -local select_enderman_animation = function(animation_type) +local select_rover_animation = function(animation_type) -- Enderman holds a block if animation_type == "block" then return { @@ -267,23 +122,11 @@ mcl_mobs.register_mob("mobs_mc:enderman", { xp_max = 5, collisionbox = {-0.3, -0.01, -0.3, 0.3, 2.89, 0.3}, visual = "mesh", - mesh = "mobs_mc_enderman.b3d", - textures = create_enderman_textures(), - visual_size = {x=3, y=3}, + mesh = "vl_rover.b3d", + textures = { "vl_mobs_rover.png^vl_mobs_rover_face.png" }, + glow = 100, + visual_size = {x=10, y=10}, makes_footstep_sound = true, - on_spawn = function(self) - local spider_eyes=false - for n = 1, #self.object:get_children() do - local obj = self.object:get_children()[n] - if obj:get_luaentity() and self.object:get_luaentity().name == "mobs_mc:ender_eyes" then - spider_eyes = true - end - end - if not spider_eyes then - minetest.add_entity(self.object:get_pos(), "mobs_mc:ender_eyes"):set_attach(self.object, "head.top", vector.new(0,2.54,-1.99), vector.new(90,0,180)) - minetest.add_entity(self.object:get_pos(), "mobs_mc:ender_eyes"):set_attach(self.object, "head.top", vector.new(1,2.54,-1.99), vector.new(90,0,180)) - end - end, sounds = { -- TODO: Custom war cry sound war_cry = "mobs_sandmonster", @@ -292,8 +135,8 @@ mcl_mobs.register_mob("mobs_mc:enderman", { random = {name="mobs_mc_enderman_random", gain=0.5}, distance = 16, }, - walk_velocity = 0.2, - run_velocity = 3.4, + walk_velocity = 2, + run_velocity = 4, damage = 7, reach = 2, particlespawners = psdefs, @@ -304,7 +147,7 @@ mcl_mobs.register_mob("mobs_mc:enderman", { max = 1, looting = "common"}, }, - animation = select_enderman_animation("normal"), + animation = select_rover_animation("normal"), _taken_node = "", can_spawn = function(pos) return #minetest.find_nodes_in_area(vector.offset(pos,0,1,0),vector.offset(pos,0,3,0),{"air"}) > 2 @@ -348,6 +191,7 @@ mcl_mobs.register_mob("mobs_mc:enderman", { -- AGRESSIVELY WARP/CHASE PLAYER BEHAVIOUR HERE. if self.state == "attack" then + self.object:set_properties({textures={"vl_mobs_rover.png^vl_mobs_rover_face_angry.png"}}) if self.attack then local target = self.attack local pos = target:get_pos() @@ -358,6 +202,7 @@ mcl_mobs.register_mob("mobs_mc:enderman", { end end else --if not attacking try to tp to the dark + self.object:set_properties({textures={"vl_mobs_rover.png^vl_mobs_rover_face.png"}}) if dim == 'overworld' then local light = minetest.get_node_light(enderpos) if light and light > minetest.LIGHT_MAX then @@ -489,38 +334,17 @@ mcl_mobs.register_mob("mobs_mc:enderman", { minetest.remove_node(take_pos) local dug = minetest.get_node_or_nil(take_pos) if dug and dug.name == "air" then - self._taken_node = node.name - self.persistent = true - local def = minetest.registered_nodes[self._taken_node] - -- Update animation and texture accordingly (adds visibly carried block) - local block_type - -- Cube-shaped - if def.drawtype == "normal" or - def.drawtype == "nodebox" or - def.drawtype == "liquid" or - def.drawtype == "flowingliquid" or - def.drawtype == "glasslike" or - def.drawtype == "glasslike_framed" or - def.drawtype == "glasslike_framed_optional" or - def.drawtype == "allfaces" or - def.drawtype == "allfaces_optional" or - def.drawtype == nil then - block_type = "cube" - elseif def.drawtype == "plantlike" then - -- Flowers and stuff - block_type = "plantlike45" - elseif def.drawtype == "airlike" then - -- Just air - block_type = nil - else - -- Fallback for complex drawtypes - block_type = "unknown" + local node_obj = vl_held_item.create_item_entity(take_pos, node.name) + if node_obj then + node_obj:set_attach(self.object, "held_node") + self._node_obj = node_obj + self._taken_node = node.name + node_obj:set_properties({visual_size={x=0.02, y=0.02}}) end - self.base_texture = create_enderman_textures(block_type, self._taken_node) - self.object:set_properties({ textures = self.base_texture }) - self.animation = select_enderman_animation("block") + local def = minetest.registered_nodes[self._taken_node] + self.animation = select_rover_animation("block") self:set_animation(self.animation.current) - if def.sounds and def.sounds.dug then + if def and def.sounds and def.sounds.dug then minetest.sound_play(def.sounds.dug, {pos = take_pos, max_hear_distance = 16}, true) end end @@ -542,12 +366,14 @@ mcl_mobs.register_mob("mobs_mc:enderman", { local def = minetest.registered_nodes[self._taken_node] -- Update animation accordingly (removes visible block) self.persistent = false - self.animation = select_enderman_animation("normal") + self.animation = select_rover_animation("normal") self:set_animation(self.animation.current) - if def.sounds and def.sounds.place then + if def and def.sounds and def.sounds.place then minetest.sound_play(def.sounds.place, {pos = place_pos, max_hear_distance = 16}, true) end - self._taken_node = "" + self._node_obj:remove() + self._node_obj = nil + self._taken_node = nil end end end @@ -645,6 +471,21 @@ mcl_mobs.register_mob("mobs_mc:enderman", { --end end end, + after_activate = function(self, staticdata, def, dtime) + if not self._taken_node or self._taken_node == "" then + self.animation = select_rover_animation("normal") + self:set_animation(self.animation.current) + return + end + self.animation = select_rover_animation("block") + self:set_animation(self.animation.current) + local node_obj = vl_held_item.create_item_entity(self.object:get_pos(), self._taken_node) + if node_obj then + node_obj:set_attach(self.object, "held_node") + self._node_obj = node_obj + node_obj:set_properties({visual_size={x=0.02, y=0.02}}) + end + end, armor = { fleshy = 100, water_vulnerable = 100 }, water_damage = 8, view_range = 64, diff --git a/mods/ENTITIES/mobs_mc/models/vl_rover.b3d b/mods/ENTITIES/mobs_mc/models/vl_rover.b3d new file mode 100644 index 0000000000000000000000000000000000000000..9d9a2809ebe040fb1e501c03bdd3ab330c51934c GIT binary patch literal 149442 zcmeF)b#xR-v@r1C!QI_mG6|YY7rw~i?(Qy`C=fIWZj1ZEq6^8Su_QCWWsyY|U7Ur* zVR7fH+f|j!OuFaQJ>OsNoY&_xw?qG?rlz~9yJ{vkQ@_4 zQM)Gnv#=sMwr$@oQzlj{Ja<8y~ejFbUWwZSb$Je2J*sql@ zjz2A5Eb#wH=O^j-y6%Uc6QAGZ@!4FTUuVDe{L0{g58<`h=$as&!NVhzJ|5~Q%GcZP z`21n?cso9ReB$%-@^$vJ@{{(9XNP)ux;{UByjaA3`1uY$Kk)owf&Cu*`R|C=r?bB| zHIDnW$MHgj^XGRg-*rFG#QipQKKa8v`nx{A&VHxor~AbM#}UpS+t1EF9DlKh{qVEn z`ElG2#}Afu;`O^cKI!;6AAfNUq5m|YWjG!mC{OHP=enPl@3_A+eZ1@Qi~UeO>`y#? z^k=PnQE&P)^nt|J=dvFj@3i0M{CL=3&ar%#{ZM~xzukTNzr(NpM(sawKP^wZHmHec z|93?BI{UTr>#(1_0@jWa&%bzn`gpNGJ521~2K(Xs!m`eweAo}q@3^71HgUhrd4GRy6U*1x@AUk1zgXZnCe=^B{fpO^c>G-+@4=rx@%ZcPhv!e+Z)VRf z&fzk8O>9E0-a%IEcl$3y#0e0?ta;qgxU zMfv>ku)myR`7ZmR{Bkhl(%KJ1=k|Mm?)T944;omeuKxZo1^yrQpVr1O;T=h%Mz@?pORfyXE9cWmED`;*Fd z-JkUQ{P^%=pI8sAeo%h${b62?&(HQJJ}v?FiTz2(-*tb|@lXEv15U?Zf4|=G7v~Tj z@8RKmeBgh?{xGNgN##54Pdfj}_p|yXKYxkGII;do$6tGXevIMy^TAZ%M=vtDl@H1?ep=)WnmZED}{xfV>plf-$mZNJ${xfV>p)1VKD$%tn z{~5MTbcIG+jjrDOXV|Vm*Xnfjp=(Y4Gi=wPYi+vLqN^|e8MfiT!^O;xu5dEpXV|V! z*LrlVOV(6v;#eatFwsdVn z*Vc4x$A5aRxKN8El_(z(mXgN{}~!5EU8)08YgT*!-NGIDJ-5WXpIy$p~1oejTIJAS!k@V zK*NOv8Z9i@SkM|RY(fKu1sX3bxmeH|FKj|Xh6NfiEcsZ_8Zm4_gN6kfGc1Kz&>Ayr z7U4fbqlTrJ_AhJHuvvot42>HWXvDBUVew%>Yy7YY9RU{T1h7D3hXpzTEYKlffzAL6GKu+-K5Wt{>x>+_$XbHD3KXP67*b7+9dQzyh5D z7U(RnK*xavIt?t)IbeZK0}FH@SfKO30-XdF=sd7MM}h@95iHPIV1Z5q3v?)0pfkY& zody=@Ot3)5f(1GiEX^BrX%|KhDzs;N&u3ll23NLfDal(KwmDrNcj zRm$=)u9W5DU@6PT%2Jk(r==_(b4yu1E|;==>@H>NYNuH49M?lwK2MOU1D{JsSw7#8 zvV2Y=W%;~C%JR95l;!guDa+?bQkKu7q%5CnNm)K0ld^oyCT01&PRjDRpOoeELn+JW zkW!Yt_i%MBOUzM_aPAg^kyjRNdxv`Yx^Jgi`=h#w~&%>oGpQ}q*KA)Gee9kXr z`TGJ=mcMr(WqTv8seKT(FT(ai*!~DR0AU9r>>z|4jIcuxb|}IQL)hU6I|5-xBJ3!H z9gVPK5OyrWjzie-2~9FW8DX~|>{f)`hOpZa zb_c@#j<7osb{E1%A#60lS`jt|VO50Pjj($Vb}z#2L)iTY8;h`U2pf;EHiWe!Yy!d_ zK-hx_dkA32>S=Zoj?Wd!rnmGn+SUgVQ(Ys9fZA$u=f!5KEnQkun!RSA;SKP zu#XV-F~UAU*ry2l3}K%m>SzJ`7iZKeO8wug;ubXO^L9n5H>Z!ra{=W2%8RJJrOoN!e&6&j0l?v zVKXCa7KF`;u-OncJHqBb*qjKP3t@93Y#xNoi?I0+Hb24^K-hu^TL@tbBWw|bEsC(k z5VknNmO$8&2wMtaOCxL$N>y5BJ z2wNRtYanb*gsp|JwGp-s!uldCOS+W%eOfc3Tu9=y)%NfhJfKg17=?y)uiJ{y=tDPY zWGhYHB#^xM@Yb|4GG{`|Iz0OF=*Od(M}kM&FA z#x9#{A@|zS`W{V)^C`E(FRdHfcbbKmT146-!av4!E_B;3og2F=&_Z@LjFcH@4RZ3+Y!k(w_26#rVT@3YgRD*cANwbgjRItn-bu&+c9)K68t*<_vCZL>~(| zQ9IJUWIu`DTDX!qqmC8FxPCtiIZ!9k{`x<^__J%un=`qwIR{(FNOPp!@0(Bj;NTMG z%x)|hWg#Q#McQ|bEEm7gC$Bk+8~Y-_LK@OzHsD&`_&IGn%~{>p+LJA0RP#u?qxtD_FCMu@WX!D-PlSCE#z+dNPD9`o8zw6U*ea;#X7d%Zp$pB zZRbe)q!j()QvK1~FQ*&(6K(60X*A+i*>AnDED!T z2X#hVI}?}3jTQBcNYT%C!pY|Gd0nhy9mH{H&}XynqWVkX^SQC&_|`pp&9`p&;rRS+ ztT=B0=TiBV*!C>GfQxl}ZK6F4yq4E*cpFb!K^N;--+Hv2jil`?dSp4jsXlpagCoT&!V6cj6?J19@ctI{ z%Fl21>hiW?F4nQWd1!wdP5axCk3N14EG2BkU93}m>2VlMkHf72<@}ab%4_5I>BO;) zW4Z5We``Yf+xt^_{kk>swDEhnuB}J=n?LPupY5sq;$}XJ=lA6kZa~#|=(ayuO~azqP0R?T`I^eG5c3kLP0x zCoAdz{bCC3Z$;nyQ|G_%GjV+U;bcX*uKkUVQJkzO_XF*l?|+W8UoKIkPNl2&eEB#= z*V<_v-js^8|G9gI?~bzL{PU+SeY^D&dIjT&en$7@H}hvv#?4*ajQnUAYc?8}YUblkUHc@Hg^Z00 zw;yOT)ckr`J2M}fCR$Nfh-17gq+_87`|82X&82tMH1qMRuAS4K_RY`;`}NG_%oz{m zHS;m9uFWvcLe5-_u%|Db!u*r+*pH8cb!`vYkK+o^_FHO~U-t5A{PMG!P&A&8%XO`&@3~UD;{PnSCZ3Pob!|p^ z98S~YkfC%6TN>qYd|fx!RB?R&&Rov+^k80FJr^tb1w=S+o#=U6JGi+m&90iZ`YzV- z9E_P5-$zde4u$o6%?blXolR=mDt2mHx>TJD#S`L?P-Q*2Fi ztT=8H@A#7i`NQpZbA;Olz8Pm@bEKp>gD4Z?#*7wnsc*R5@@3gA(y?5w2zzkta<-O_^V-;aOy7o0p<|8V5%%p5 ze#C#v^=~|zvn5$k2Pl6Xor@fdi?Fx-8XbRZ|GIcKuS>F`4iGP|wUDphBJA_3b&e0I z-5{RL{q$|c^%hdHTBQAWhqG}h+r`GQ`Jui|1?9Giw3EpXW1NE&a!#9oMm%$Im_nra+b~c8?J4#55o3E*nSAxA7KX|>_CJags_7Vb_l`_Mc82oI~-w0AnZtl9fh!? z5q1p1jz!pU2s<8O{SnrJumK1gh_FEj8;r0a2pfv96A*SH!cIciFod0quu~9rD#A`f z*y#v617X7vHUeQI5q2iR&O+GP2s;O1=OXMpgq@GD3lMf8!Y)GC#R&Tg!Y)DBr3kwW zVV5K93WQyWu&WSuHNvhz*tH0|4q?|L>;{DW6=63b>?VZ$4PiGU>=uOGim=-dc00oE zK-k|Ab|=E_Lf9yTjYe22!p0!1imU&7*nbfA0m42+*nbiB z5yC!3*e3}46k(qs>~n;Dfv_(T_7%eZhp?{^_6@?mMc8);`yOFGAnZqk{e-Ze5%vqh zenr@C2>Tsje;}+#;?(<{Uf0jxL=vZr6-k^jRwQxCSdqjjV?`3Dj1@_oGFBvU%2<)a zDPu(vr;HUzoHAA8XnW~n2twJ9@F!ffyazIX5uk3k6C!k%40Sjv-6mP$DBOo z;xRXmd3emrV?Hgi?~{ei0{rKKJQm`yFpoueEXrds9*gr>g2$3Pmg2EAk7al)%VRkn z%kx-)$BH~w;;}N1Rd}q*V>KSVcr@|o&7%*G)p@MJV@)1w@kkqhw$$O#mq$My%{(eR zY7K#I*X2Lg2F`^Y}B5EqH9nV=Eq8^Vo*Rwmi1u zu|1C+cpwOKzbK_wP(o z#?%QQ0}5yLO1sjcvObyILLFADouae~4ukkq8=4_ZS$#8rL~LE` zHFTjxWqsS(!nFascfVj|ZJj_e^3_4FIWsLP>;L+;O!M)Ix-yW=YV+Fb?@1PwT_ciP zcx~3_Ba{K(1If}pIZPGCT2yu&(YNJ>4^l?<4k9ZGS2Bh7v8e1?liWgm3qR_u*b{dQ=lL`crtQmWmey?Rw*)=P*N;dkR{qz*}FA_?D3gWcHhIttj`x z!lJu;e-BaFbw9avtnb#`1)_@V4N=*>A-Q!t4s$APj%s}@MCJDn-Fv1uzFi7ujb3mq zM9t5x8Obb^dzhcM%9%PvuX!1w^7~LS3-!&(+r#9oi=(~Mg{u5srE5hy8}aI3bn&90 zD!-rU+9tgHE@<;Qx=W2vmEZG{S*Wk*7c2VYuzqPCs`C3{G7I$;{cTm@O4jzhLREh6 z)U`3ZAJhJ3eK{&rEv9qK;Q3)K$*&I?GWN30m=LP+dvLOH!HVn7XH$SRM?|Q~@6%2e z9Mo4_&vrhTVNIA9s`7ielNHx9ahLIS{<7ck74q6_n@^M2l3+0OY#jLWMtuLtMV+&n7j^Bs&?cQenLMfh8M3s+Yl3A#)$H53CQw+`OsToG$nliC&0O=W*%j^6Ki^|7dx^_~Nsmh1Z0VG|j`d-(USyVng)3qNDPgbgI z3?L2qkM*j&#G>*soRfv;hc&E9nDX{&04XtSq1QorkLBY$C(Fj)^tBb6pp?uKND7tP z;YI%%gUZK(y7uh-AZ1hiK(gweqh3cMEh--`>e?H7EXo-FK;l>Ewio@&4Jsc~CbLlA zb=$@%vo{42wb=)+wG%BWA9w27yMK;W(p?B7ciyEn?F_W2d~BM`!g(7}bENX^Qy|%7 z&ThI)@AG{8s%x{q9;PfV6h!vcDPZb3!lLpquCCpgZK(3TRuCz&y|`)3V2jGf!A=%l z7t|r;#=%OnmOsC+!FYsGc4#lTc$ zNAwO-`ItMIg?fbV9;8(29z-GwE!bJ7Pms#T<+}EB_+aIEs~}RT+w5Jz{eo0JcGtD( zFAY(~`vsBZbMi&K9vGz7)w%wPYhQ)A!;}dnf=HWdQ=)nf3sU(UK)2j08%HSiltJWM znxj!6qk~jFPjIs0_|D8QTKVs0ASpk^GdiUuNab@0Co7Kco~W_P1vQY|nr@2T84{%O z`G&6jJHlTn84*b8ZS58P)8rtP&qxou*xmu8o9B<{wabE3KG$-x;#}Oy zJzZ(%9YA)Z%3y7>B1q-)F()h9LqOvhO0f(9DpUoBa~v%7IHGKtaT!_e17O;A)6Fl z-^Ut}%JvNwvh7O+>kMl79MZ{(cIJ97Xp@?filT$os`>T-I|;&aht7V7X{ z+6d*)X$$F@w?egk)bjaiG7HDdGkAtlI8^|#l-*ZtHoa%@Ic+ivm^x3Ko^WFQ98%^=qxH+!#z=j+kodo!z4H_YQPzzunE0 z+%JPk=)$?CxgY)2-UioSI1W$tG*Zr12_YrAEi>i0>#z1Puu$Li^Xe(H`i79-Le`mv zoc34yy0H}oDN51E5b|#GZ>CRi{%Su13w0qfzZ$k|%lq=@*)A{^u zm>cUle;e+`y3XH57+9#U>-=q`fra{taS46DM4P{ja${ZRZ=-cAJU^_i^S3cNR$L!U z{C%VMeEv38$3mG-^2%z(PG>{&tPNFE^IY z-z)|e%5|N;1-P-U^S3}Z*7cqhWMHAb8`DH8Gw3~QlXpe!{mEcAc2c$oWelB@O>bRV zo0EkYSa@ybIWv?=9`wDz?lIL?(0f*>frUDhoik0@*(iXVoRi<{S9;Hy;Kt4=K1KO= zX#go~ALwJVa4C%dtQY7bMUmJK4)^At8M7-mtY7+5$C-+lWlBjyE>jk{}^ zhIF>5Q{C8SzCD!c^qzIHZF^I>`WAJX8(XbMN9Ad|U{bu-C{w5M7InHC+u}$oI%o<#xG5k`QL&`zGL%E!{7L;;cjf$`v%J4h9Tsy6Dv)VuKKGH zI#!Ii9%mp*_sJpT+n`ORE(!i>q>hEL9MnPmP)F%x4Iv>tem4!+>aWh!v7%hd-I~hY z%OS+lFUC}GnZG*AjotLDx-#Z@2>I^4*K}pJzdBpTiaM+{S6AA<3n6z}oUPVxONcs0 z$BH_LavS}-uiB^`A?jQ=R@66Z^MGm>>HCxObgZa@I1VWyI#q3XGDMxPV?`ar@m;^X zX;kR#5Osl$73Wx-w^kK@MBVuqqAoPB;BWEvkotC~XwO`s>LML0>d>0Evo_OLMbEDq zsxCILP_Agd3rC%cZq_VR{l$%a&ilo%CaJ7d`h}`X+*r}ywmc|e9TgO+E_Gvz@P51? ztd4d1>`--?8(W88ABN8CU@f^SR9&uP;dQ|}gI{;fj2~sKw-D+TXL~}`Rc@@f{`v+kv-XP(RaYBW$Lsp~;p?n<;zQLn1{Ufo z?iV}9{AS%o?OHch+=n*S+h*NQ?K%Ssb#T4Et=F;e{9s)_f7_sA#qkyQWAXXhuLc&% z74Or+=Wns}{1{Ufp#wBL{`P*+gR=hSb-VvX_ZPu~kwfXRI)KLEU z+ZH$0_4Bu_1{RKk>*sIVbS%^t*0TKbw>9+hH~JSI)$KY~)K`pC#piE3+*sGo-+p&v zSMkr^JiG%;tLW!%I}I$nHZfkOp9g54zwOeo;#{1dpX21DpTE_kpTA9`pT9-vSa@wv zu9#nl&)=dAER^l~`J2_iLb+l-BtCzOF|bgsm}kY(&)=@n&)-xx)^+~2+l>|FiqGHn z7+A;piqGHn8d#{W>-=q>fpt8-t@-C~`wc9V>pFjnHLy@_4*vPu1U`R@Gq6yuXlDcH z=WiwG=Wp=_7RnX#w>kXtH=BWlatra#rI+x}-|Pk!%5|N;CAhJ!^S1*!7M>qg*ZJE) z9V_~=>*sHWbS#t!^%d7M@%h_f9V^Ne*GcjD+Yti`<%;XC`26jtfrWaw&fkt1SSVNA zFU03>$91fDZQ?$p^3UH+=vZ-maJ|2s)Ul%6|9*~CR?)vo_t&+5D#Pb*f9P0o%ubYu zRDw2H$einUtH9@ar`*_^H|b|}yDa3REx77ZYEQedO(sPsrQ(jrh&Y<>;frVpM z+%rO1M&I}Jm{h)6e`?PfSa^MtgTfV`I~LN}KDt^3YX8)+;y6tFYld>-y@h;RxW3vc zdOtp=W5sc(TwsP$Dq8?Kobz0@y40T6v7+3K&8I6lD+Q3=XHs~D(%+rApkqb3pNC9S z1~dyG178*P@~89Ii*9Uv%T(o`p#fw{D?hJd%Ps0(I#$$S$(SihuQ>sv^zrUqW9jeY zTykU6_n53~j1C}i-jlp~{9;ir>sZmw)Y@Un|5YMaPQw%==`Ys2utp zKt}J}=yhkFMZKzHMY-jcgebM?=OWpL?DOg~+oE1`W8bF=Qes*MlK9J~y}CtM)a!2S zx9%1tbx0twJh8@-_5lp^i?`(RYSk!-XtT<*>T69tRR179* z&h<03^s%T9bgVdLA3AhYTC@))b3#U${OEfX4-G7oU0^^vrDbR^`7L9JX-{E``mY=N zG_lUj*Ocay zzxu?$YWKISO_W^OLrBrXi%cz^`KwRe*e|^sDe1gJNbgk3P5!t2)n{((;bZlc>Fq*D z;eu;Si!S)9&vmRg7daZ#RVIw3?^UGv)wKVpzxqPQiazgi)vVl^7eX2*Y&NCb@2|ep zv2fm??9d2bW##q|a=ZQx)6^aQ>MH{a$HCmOwzA=92&p?e%G7C{zxtmWd!Rv0<=>kj zB*RkGv~01z`r3`{+^)LPjc#( zixcdM4AYd7odQVefA&~Es1sD9EKaDy_~+qD!*dogw8Js$?!6OKqbyFauH#grEKWUZ zl*OrMjj}lPtWg%Ho;Awi)U!reoO;$Mi&M`UWpV0RqbyE6Ym~*QXN|Hr^{i1Ar=B&+ z;?%Q7S)6*-D2r3i8f9_nS)(jYJ!_Q3sb`I{IQ6Vi7N?#y%Hq_sMp>MC)+mcp&l+WM z>e-?xvMC)+mcp&l+WM>RF>KPCaXs#i?hFvN-juQ5L73HOk`Dvqo8* zde$h5Q_mV@aq3y4EKWUZl*OrMjj}lPtWg%Ho;Awi)U!reoO;$Mi&M`UWpV0RqbyE6 zYm~(a+q!Sml$PnLLK1!zBM#|XdKNS8baTHFv{YD za>Zv7;XEfuFN+f#tgfFk7-exn9mIRDxoPgsj#~8hf8AW8#QVQd{PO^#EKaDyA)aHi zk>}VLWpP3sT;I1h%Ho7_UEhm`EY8;SLzjNT`&fqb8$O`d&v1=Rc8P^)+S}CC$tJbD z4~1hs{-09W;IWR6f59K0QoEYFe=cEDA#7@dO@pv$5jGvddLnFkgw24k84)%U z!e&O;EC`zwVY4A@c7)A=usIPn7sBR7*gOcE7h&@uY<`3-fUpG-wh+P=M%W?r2wMwbYa?tOg!M&OKZG?Stb(v~Knjc7ajqD9*43z-t%tDn5w-!sHbmG) z2-_H8e?r(M2-_54n;~p-gwBCWKf(?`*ntQ;2w?{!>=1+wQRv5oX&|y2jD%32yB0 z=02pt_{p|bvWIgRxPZ2?_x(e0^j>@fOz z&ePZRh`+XJZfvoNKBO#}Z6kCoO1G!Gv15k%knydD+cwg5EZv^r#=4%ja5whyX&*9d zLKfRHy25sZixuYrV%sM^#HaI-__=g#N4FzgtmCK+K)yxLEiI0_qI$EPdYCOt<4oWw{*(+jCv4 z<7?~s*oS<7a6G=sW_+D@`PF%TwDry2ADnH+J?rTGowgww-jHMYor_ zu^)SQ6H@cAtrJ~gdzp(B^@UjIgg5y+^H$qyx)!9{%U!HveHWMaA@6LnZJF$|ZLqz< z#fp9bk9imDLppZpWt&1**k0*k9m{RD&xd@PQN~s>yo?RDSGlnz@A{C1(f8wD)3p@c zUhU3)^dT*4MZ|BVYYDo&#*HmV+jr4c9`SeRT8M71bz=|GJ{B}9U0jQ~>Ed8}og3@g z-_|4S288_;VK*Y|CWQSBVK*b}7KGi3u-g!JJHqZj*xwO$C&KPR*eHaJMp!Gt#vrVU zu)7g<55n$6*nJ4QA7Nt=HV$Fq5!QyVc7#np*aHZA5Md7?>|umGg0M#s_87t*N7xex zdlF&)K-g0Vdm3TSAnaL${S#r&A?$gCy@0S65%w>Hy@arr5%vngUPahz2zwo2|3=sw z2zwJ@Zz1e$guR2XcM_>$Cgs`6x_6x#(Mc8i$`yF9_Agoa;8@$Kj`u>Aa zDx03wOJx)9+qjl%l**=8u2CwRo;6Bk)3ZjYY(+4QVYDx01)N@dftMyYIi z)+m)t&l;t&=~<&xHa%;U%BE+HQrYyZQ7W6BHA-dEvqq_Gde$hFP0t#ovgui)R5m?p zl**=OjZ)e4tWhePo;6Bk)3ZjYY(+4QVYDx01)N@dftMyYIi)+m)t&+4VJ zfzz`_scd@ID3wjm8l|%7S))`oJ!_Q8re`6QZTdJ5k3M5ZXjyDqHs8*CNb&G!T^6)h zU(-+2#ukrL&OQ7X6Y;(P%VJB#hQsi03ci_=N3kn4|2YkhX?aY?qbHB)dCb6LMjkWq zn3=~cJZ9xF8;{v}%)w($9&_=So5wsn=H)RTkNJ5lz+*uk3-MT($09ry<*^u##d$2j zV@V!M@mQM2GCb0Qt1abtEYD*F9xL)#iO0%3R^hQKkJYpoM!a}5@#xK?50BM(tifYV z9&7Pfo5wml`ts<V<#Rv^Vo&Qt~_?*u{)1Fc)Udc^?y0bt`TyUT}R|B zyVl5Ac0H1_?3yKK*>z3MvTL85W!FbJ%dVkvmR)D%EV~xVS$4gav+SBKXW4aM&a!)h zoMrb9Im_-ba+ckPe^r<^UOU1#Miy9dizcAu8B>|QQs z+5KM5vN3_2W#a}p%f=RRmW@B;EE}W9SvHQ5vuvy*XW4j2&ayF+oMq!GIm^aga+ZzH ze4rJQBsPC3iQrgD~zU*#+tqF5>#j<^Xc#vU!4>WpfER%jO$$md#1zEStB;SvI$kvuyq&XW1M{ z&a!!woMm$@Im_l_a+b~6f#d*je7c0sI zyQ;kpsXX$M@@_<^`EAV{WUz~MEO-B8Z!%~0T_xdstU2}a%w&igduWS^WLfk?*`NEd zIn%xLWT=Z3b%6MsW~<~b_(CZe_{AL7-IEM+v5s{p*TqDN41KPI|NX%{cdI8E?#BK^ zGiJ&LK2<_vpPQS6r6(iY*tvI1#DDxFiC07<0m8h8l}unEN<)>n%R=7pk1ku`L=JtECon_J4@e3toS5OX}IZ0okRNz zkU#^g_nu>rW<6B){(fCLO-y=!AKGL-+9u2JHW}H z8|q~9l?5Z};c6#nb{{V{j80?1v@#*O+KHMy!0jtKT~7YmL>(qM**k7+n3FxHYsE2} ztl2Ohc6{%Y5wFehIEX$!#i?BPb(rd8J(8WbJoLPY*EY?`db&Lq(={uOZ??p89j{U4 z`8l59WQ(~yZ{bdswFhzT#Ca3PEW*jMb1crCtBrKB`fXCwccznNpJj>jA<7lUY?fw4 z`)!^0+8ocDu(LIr{NAnCCg(WWr26WWJJ+cW)#wND#_e~Wlg*cS-t@|y?_`s=9q9Ao zwJp%B=tJjp+pn+-H7nZs7TtaUb`rh6EpjS%zM+MC;bJGdEU^xH$M+W}Yg`8?cZrh? zixF*1uiT|hR=>}SdB=$osZEbBv#^>u7JYn*KFWc3AGfnQ73YF1o#dTVtM?OpUuu+VnaX;!Yktw-1m z2>UC-ZbaBk2>TntZbsNG2)h+ww;}9ygx!I#za#8Ugx!U(Q3xB2uvUbn7dyJh^&u5u zcO&c`gx!m<`w(_N!p0(O9KyyUtPNr92%CVg2N3ok!X84{!w7o>VUHs0F@!yiuqP1q zq=AKd=NmeHcu;`8rx5VPyoBC2|1hv{|IX0JM2b?If7}=IQ)*ASv2~~o&i6u@HuQ^m zLk~}K+Krt}ZB*_T%I$7n%r|>_k~3~>hQ=l`BKr$vRiiKFeZ4)&SvNM0+L0MwD2>W| zF?ZbcjlJ5$L^6JQu9Q0V+1z!QCpqt8#e4x`$7Uvy z{n>M+?Uc{vlw&-}1s5yEMG(vVY$B!`&y^lkKbv0!c#?~5Y{!=L{hgD~m93{fnUye4 z@|S^yIy`M{B6Fl{s?-m zw66Tod~ky&x#GsQ?Pen1IzCsT13s8?`=pbp1-naIql&z19A- ztT<-ym}C8En@sgwseI_2x#ne0a^1kfV>%8sk#XmrDb*6*n)g2SB!3%NIA#+@n~3j< zXUc%JZ_JBQr6)HGERGKr&9hTyB#+$K z5#LRuQlozrOS-G(35_z6$8PMvEZ*efnum%#`Y&^vnHk9wH#TQcZ_?t$17&yF^XB3g zGm@t+*6}!utmaKl(yw}q8Fa>+vREea%*8q$hcWfNNyg#-C|O3IG-n=@i99#3aE^0# z@Fr2q?<)n#QFFUvnaB$R3+1;O>`mIo-BWxn9x%Tsnwh+Gv5xi48|qDFox7{7sSs~| zG9fd0<;M1z?@j)@dPmvPV6VByoy_DvH@5I5Z<713+sgVvR&&RnvXIvV5asdP!V*_^LrR`S-xI=;4^54_2$F*lU8x!0RN zEzL^axmZyLh&8`>lQ!OeE9Y;lFfYrVjl6fUj^&of?n9KPL@gV~TUQmj!?`i(gDku5s#zxKa zA@8HkDWQ*BnEjsSB;VZF?Hhc^;74bb+2MX>WmYco-HlzX($9P{ol*7$R4{+8nw$J^ zW7{9~A-fBnQnv2NYwmk3H(|fnu0MBL^_LGBo#&*Ixn64XfbcwoWpV0T<(>~Y`Q@0> zr0gBP7q#;emc^-Wzdon+J#|Fs-*J!MgI9S8%i`3x%Rl&#w9^hLUDD6;tGpv0VOgB| z_WXArl2H19vTVGc-=<;t3CrTtw>?u;C$?QSCEeTv-!fGT5SGQ6+(O%N{oUqtDc}Gn zx6p=c^q5UJvqSliGqr7Q_M(Jkaq8P*rM*e`?%B%o>wntfPnIDpi&NizdR2vN8P-hk z%~HqS;!I`2vN-i^W?Oj@J2Rb9b#;jS)Ojz$vN-i^z4B$r=&&p1+Rta&KY4f)mc^-W z)2=K>uBLi#jyyEg-o2lRuq;k}8<(mQNmx`uQN#P#;|EkDEQ>R_h2wkW@2VvG#?H#; zEfwwMVk;4r#hGNqwFGRgn@UT9&XZ&Lr#9k7?f=rEXBpWbb90w7WQA zS)55$lnaj;@Y#nbL8|hqZa{q0vqFSraVA+&u3md!S)6i~WpT<`mc=P&Sr(_9Wm%kZ zmSu6uS(e2qXIU1foMl;@a+YOrCbw|@;4fhg8Fo-vJ9D_7Pn!IMWpO51$Myh!Wi_40 zpGvn8W^>A^xd_YROtPXqK!m?E>QnxPa(~-evn?hoVOgB|7XBJ)^q0HJ$}~1})bPxN zWpO6A(9WRT>a<+?*IBi4Sr%t<3w03n?L+IEiq@B9aq3$*4nyg2*u#$l%i>IK_1Zei z;*_&2i&M_BEKWH~-%!`R{_542WpT=t%d$A-EX(4Qvn-2K&ax~{Im@y*}_TeK?&-Au`U7Q0gOpVRP|mdA8Fdh(c_#|%7X* z96aXaF&B@ydCbFOULNz&m~gAAZ+;pF{_bC=0FBvw3)Lye_ZQ-^F#rD|G-k|xszy;7 zOAgpnyBLqf`Tv)o5tfp4?cdy9vlNe|;Xmn8hOY2DWod-xEeHQem-2Ll@+!~>kE=){ z?5{*4JYQuRpeY}&c)mt7!t*z#5gz{&4e&fo;AgrtWx=BvkIi}fna379w&bxDkF9xZ z!(&?>+ws_*#|}JpuZL*2r489?4p`X31K(uE|=s_Q_hfKFV6ShRRyF z&dOT27Ry?=UdvjzrpsEm?#o)ZH^^GJf5=+6$H-c^56N1%SIJtqpUGOd=gC^QFUnfD zcgosg2n+XM*>d4NEoW@dK%y ztj3%ErPe<6PBd8fSOV6{1w+X2Un(dsY=>h8em`RyMD34uEv-=Q#*E!GE6VOQbvVf# zw^=z^<@cCzvzyrmQyYBH*ZTvt%SQ!Rg@btIM0;{C>Wz~6$MTpFB^TL;Q2Rb6OnZMc z(5r!ytub05_s8cTm*y^siTgXsK9t&1)`C_jx53ygR`>`^d<+JEY-<`MgJ*Bm%7tS9Yx#RM$dNAj;g;?3vC4k?a2j9!l0z%kYt;_TisNu6ryqH+ zBNw?`d#CBw$Qb(wYE$I()XKf*7wuHv;r}%tuRJpof8WifZLPN1M^bA!_Evjsm(%Rk ztf+5nbPKY>l9Ie=vDUPH)@u7GYKIm3OS7?aZBF&I^zTgic|B3~jmT?lHE51~G_@P1 z?b57$+!3ex=K0Z=OxySe3|%}*?;dX-L*vkX5t?1`n@T^aNIGWXy!|z6W;C3)vDEtP ztgG3U_4j$fu@dL*viEp$WBOF(RBTym;fqD=i+jZoatE=1=Y5v@uno++#nD z_j0t&GEE|RvMx1mj)}KM4y|FcP+Oz#f@)yrF6io1-y)|ck&sCl&F5#3m^I_K#0OC8 zIq0HhBf2#6a;)!!uan5bD%t%^7mCL0Y`ZHikXqSmNf5PkvA(Bu@bGwT73~J<4Zn&J zN!uiV;j~Q#!-hv)>l@96MTxc`EVN(x7}GFnLo{2=^q*$eY3EoR3(?krKwA&hY+dUo zR<3r;MA?pYfO03Wa${a=wpffPQ`Et+z7sX;VP$oQ(q5bJq7H9U@3ul6CTX^J%sZ{z zJ5Ke5I>2k&b2yzh)FF(O8}p3S*Xdd!ERZ48PS$J~uR~p@b|&l_S_de13M<$2NGo@~ zL4B*oKz*lj%Z|gHXwe=ZiepBjb}ptd8}rJ|Yopc*=Xg4+uZbOpy1K`K*4G5DZH8v$ z&RaOI!xOCzN#(+MPO2|E4iTF5jDh~<;o;nNz>0PTb%@mLGVOlh;n6!;eW5*w<1kaR zH+cKaqqQB;-bK098u#^va%XAwkr(S17n7YgRxYdWY-&&N>w0~c>$-StP#m1&Ia;}Q zqTgz-?X*^3*R~GF7wlZkdhoWM{I!YW0Cpa;R@NTYIn_6*t+Tc>pIdg0t0f*Y$F?Kd z`U1^{nb>*r@D}~YvA>D>F4XM&7`PwPa}gujq@G>G%YCj{_#r7pRh$bNt#B?D^Kw6H z_JB#>?$+!tn)TqoUUiCc7$wPxq@cD6;g4x;U>(QKF(yPickjdzmjuv@F| zTFv%1vDa2D@tW#-eSp`tj#}CNwjNSWit0wmvh)p}rmto;XFp4AcW$SyVpfcmm-ntk_Ilh+o2T<0`#EY~(D6Eq`)V9ZDi_KQzfyv}nct?z-M%^`&Nndl210zy+PnZ;Kzew%r zA_wl@og)cpiE%{M${wA=Vm3< z2X8fX>-M|-617u3S-BZzvO0)y>e8MK$fMPnwc{{1)pq-3YS$hupdE)YM_3(1eQOVC zL@vz8ND6%`Z5lXXi~S0AWoBB4#wlb>pCv}QWF$$pjEa=DqE z-jZ3U1FRblG$n-}rX{BvMz-zhv2DKd?=GE+xW81aYCd!R0-;VtFGH%&_%Jsp^P2sl}*l$rgvRxjn++SmNB=$F`L%NKe$*U4imBBmmTFZT! zW4}#p@W9-fJ=x%Qr#ci1?Mgb0_($>ooZFP=S)~0AwRw8y((JS=&bHy>?xaA-O{LVN zp4Ne})9rVueWK*lYz@oK#B$-h^=;LQS~`ogi8 zu)Po2{pzgZ>9fGP=RuJDKDA?i%cj}2mv$wV3s(KykDTsvTnUNGYAthgwEZ7yJ5o?@z+<0)J-EV3Ow4UM2g)cGfrl z^{_vr_Vr&GHQPtACe{J$<*=c|^UqyM?D96I9WC11|D|@>+w_`!RVpUYLVd;ii1zb; zTF2A(5g$=o^<_Hk91qW@Y8H+c*i|D&l1IO+RX&VN?=^N$UHfBdzaC1XmHQ*#Zq17J zn^74})76$LjR!QkS+_X-XklWNX55}!I;DK~DIH6de3`!j00-#lP~>shs7`mfTyv-zttRls$B)h3r~ALdlu;s&z z*pIeX)E=99U$f+=6B`eqEP~MMt6CIH)+V+;(eAf?a^*uKHKQHmR;9Ts_FoATslUjMRGrMV$ z|2o?{YX3MMtCjop>J!b1a*wQ-K$`#b(!8@%u(eOneA|0!hu4VKY};)AB+k*{I1I`& zk$C)j$-MEsN7VN+lWiZU4Jy7l8qV8<4F$bL9l$o3G?5I6vY96x46`1|Ho*3g+Tdxc zv~u%5xRh95cuejq6G^F<-^{OzeTt54(bV>d+I?LYXytZYpY(YP*eOLPk)OWJH&4F( z-RhO6s_iqiP1a7=>>gWm;yDIezw0E@s#cIWce}8vIfL`qzEHbn#aOKlx6kgC+(B(gJmHS?v`pQBr>`78b#wX1$L zYjr4iVS8e^P=|{rCXr9qvzkjkwp(ZK{XPCWwUzveYvr!YvpMnjf_-~q5^34?f#2sT zKdi$oGvj|ydwpUm%|;(yllWdd)Hm-_n&MnC+HYN}1Z(J{4)Ku2S@qBf?X!d6c1vic zMbi5vQ{GM@nc7bE>)HHU^v=aa;vtQ*d~~>G=Z^i=>6mrFAmZ;!)~0f4E^nV(X~$35{1^e zW4>_T1(y=6GfS0>gEY=()&kmR2dQ4Ka;n2MYQHahUFZJ0UNJTN7sf&w=Y}OKH0x2I zW8!guV+P|XOQv_V+kYc5kslWAhcr&v&lw<%bL0DrUT}?Sf1z|@n}pZ*zVjq9-7DDq z=j&ZD)3W8YK^o_)j>ENURIz4ur}j|kd;qC@vzziU+s&Ae1F7wh#yRxsY3=xiS%T>_ zoLxuYoP5dIk6i8bhmtVB7E`D1csrzV7A{g`hA^HrWu9 zf7b>(q;Vd&xiuQz6MHp!ZsPmvP=4!53JKj!)0+Eqib*IRZHF|@VvkH#u$_-Pe-2qb zq#^MO%|z-P`^|c2(^fmAaV~ziPJ3TD?B=Om;`~Cn!*aGKM<%{g4o+ENZB=Kn9nv`0 zW*uaLa!1cDsntRFs_H=E^~t7GniXwbFnE9+(l|?Z*`e96qgCl!3`uQr;8uUKV7W!< zku^_D)(5%lkj8nSVTLFu_w)uYleh;!91<~sc$|N2jvbgi#&^|18>Dfbtvf|4_r$wN ziDLq&$IkPUNd9xF%-#F!v#zbQHa-Wnvh4xVIAtxQamrdqkX$<{U{y*KsPXoob;Tr+!U_3ig@T;jD4+OHV* z(a(>);PYch;~X@uq!sS5&r;TpcC165788ki(@FD}ofE7#!p7Mkjnnb?I$GFv%!`6F zPFV|SoU#_uIAtxQamrdq&6g)~lC z3u&CK>4z@;hWD`y={I~pueNYy4(ndG6`h)S_&8p&;Brh?>n63lN@IeS%1M!HDx2)% zQ&K2vQz2|>giV96X%RLZ!g?ZXdW6k@uo)3H6T)Uj*enQ}6=Aa>Y<7grfv`CdHW$L? zM%X+En-^j8A#8qxEr75E5w;M*7Dm`22wN0kiy>@rge`%vB@wn1!j?wZG6-81Vap+G zd4#QiuoV%u62ewS*eVEH6=AC(ES*=vA~pV?^E7Eo-wTztbkHMht0Qa;gsq9NwGg&8 z!q!1pUxf8TSTn+EpASj49T?owMXH_E)u^1Uhp_b#wgJL6MA$|M+ZbVgLf9q<+Z17& zA#8Jm{TX3fAZ$y7ZH2I{5w;D&YBNR2KGY6TZhM67fUq4AwiCj3M%XS0+ZAEEA#8Vq z?SZg85w;h?_D0w~2-_E7`yp(9gdKpe0}*x*!VX5*AqYDZVTU2?aD*L!up<$66vB>1 z*f9t@7GcLB?0AIrM_3EO1|V!8!Unmqwdwntr+!S1YyN$*Z!P-%X0RIzf3b7&tl{ye z>0j)m+X*3VY{Q#AdrJa+cNssQ^Nwi6DGT{_rtwOzYhCt%{%Nj-wpRpnBvCXjPfRnite%n7u{vP73G~U z)s2PM_LRQ1zvyeD+X>U$*rFBbUlk^^ZDq-9bFqp(3DXTMd|WtYs1MoPdblm5^>Fjp zp*{&S3@jZ2X@Bk2@w|n*v6oN#kYy9H*oIBWVy4>(5iS-!c7!q^wtM13=5{_3@6-8+ zU)v`>36U-qoLEJhJjmPROgHuf{RYqpT+_a@$qsa3=^qX-bVxQZ_z&GR0Hzh1`vG8jY;NcvlZIq-`u5B&x@x}C7t z#ftU-zHxUGdD8rY?P~K6=0@F33BR~l$2!zoX(H>kJheq`d1|KH2}@k8W4W{5(Qg5{ zam}{)#x?Woccz4;E>@HakNMccn{=vq*k-PI*i5$*mKj)hOraC>8y7Nfwf&uWtGVC_ z?}X(pR@4FF;_^Nun|-$JqiweNm-0RdD_pENW)R;6`;hQ1y=)!3^fJE<_DNXjVjatE zw$F!@4liT-Jfn=6ZYQjAV@uto?IHSp{M_jKekJevB&>F0OMLVpQMDrCJJyQuEBVnU zVU3Fw$4om8w5>mF)SjYMvr2Q>uZo0Tlv(ot*i8ug8^Ufz*ewXV6=Am_>~@6Rfv~?L>`sK;g|JZw8;!75gpEO16=8QH z>>h;Oi?I6;c0a<#B5WMO#v`l^VeJT;fUpM;_8`I@LfFFydjw&RBJ44QJ&v#^5cVX( z{(-Qk5cV{}oU0(oTT_LBZPg7uul;7DZ)NO*yjlQ0%2bw>??%* z4`E*;>>GrAi?Hty_C3OWK-iB6`w3w`BkUK1{fe;P5cWI5{y>CN?Ec-@6ISZ+5vh5dA*<>xGvdLQZjf8UbW#33BXW2Ir%31b}gmRXBBcYsS z-$*EDA(c(`m_aI=tc6rISVMleO#{3FYd*zL8MQ zvTr1mv+NrQ>CN?Ec-@6Im^D0P|mV%B$Tu48wuqs`$j@J z%f69N&a!VLl(Ue^Cfj}?l}*+{Dx0ij-$*D|U-pfJa+ZA~p`2ykNGNC7HxkNO_Kk#c z7E;+{j~S%0$y!KdleO#{3FYbwscf?4LMq$zaULFh#*Wak*b=|TkbW4H^eOpk`sv!( z;&IBkhabHo-WOn5Y^k(o(f(mi_`mZD3E_3-*Iq>!DZpbv9t-hUn8zYK7Ui)RkHvW` z!DC4tOYvBm$1*&Y<*^)(<$0{YV?`b-@mQJ1Dm+%@v6>b=JiK@`@#xK?50BM(tifYV z9&7Pfo5wml`ts<+ws_*#|}JpikxNR7&*(vI&zkc zhvY09Gs#&tu9CBC>?LQ}_)N~SF`S%b<2*Ub#)5K|jThxC8&k?zHtv+OY-}oL+4xn? zvN5ilW#eEu%f`xbmW`+7EE{vnSvD@0vux}xXX_%azibX5S1y|;$XPa*kh5&QA!pf~ zM9#8#i=1V18#&A7KXR7Mk>o6!N6A?>*OIerJ|<_`oK4QMd7YePb3ZxD=7(~Y%^~G1 zn`b6j@f+_D3#F(|au-ZcDptxJf5DzVfz3setmFGCQI~wk*B2+0w?|Xj7A($_z~-w- zR+I~mS=HW$R33Rrc{d`|_O@n@1U9ElvX15MpX^QM%)YB6oR77oUY8=tX7o4j!(V1fVDou>OMlazr1ZR{{J+ZX11yT;3jp}3C}2mx7XOMGvBX5# z!_Li^7&W%UN=&fF7Dc16MWscJ1$&8N?_CiNL`2R-tXN|2C0H;jVy|HN&zsqWJ3Q{2 z$M;<(AwTBc&dkov-rc*o!#;WcSypjX-1FPF^Vz5FS9HHb4D6Hl7pl0a;&p)>tG5}n z2Yl*Y8GD8VuutB%Y~`+s*ADF4R_s&vF6)ky{OptWJ3D!*z4DlUp}Z4?gRp-f>{w<$e*9?sw^%Y;E;ik$&rwi9HkAjP*S)lPeVk3bwl?=Q zU_7@`8%4c!H(Fl@hrevBi$gn^Tm72lxZkGOSg-7HX0IKla=Xf=kM+LDJG zoY_0JaBd@P#-yGtruT*34%6*eh`~Buy)R~PtG7e@>|?WzLANt)Y*UBrJBwSrkL%j4 zSC4nLjm_x`doj$hvG&J&dC4okTe=MZ~tyT_)-yUfOV*^Ej38lcy^oLl`I5*D7{UJNU2to`w; zx5G+q4ca`J^KGft_3G`gid(%M9G`Ei5q1s2u0_~&2)iC(*-68GnA#60lnh};w2<%60?8GAMPK1p^*j)%4kFdKDHUVMxAZ#MS zS`c3{AXQh>YL@JKSvMgk; z%N=!K3pZD2MP@xmWLeUgJ?6kRW_DcJM(W}Gr5V42&p|i{xB)Q95i(9yh zdOi;e^*-pNP~V6QQuX*7%ap%e)C&%5uOAh9bZiD`{pB0WzBMlD#XKy;&@n)v@BK4K z^qAL{Ytb(1r93RGpw`LBThdgb=4P^UFk0BRR=bBm_i#ac}V)Md~R7#z*W7LhlMu#W{g6sbbm-_?`M{b z|GBEy9oQ`)3cXd1*#b{3HygXEH}bG>YzdPUTH{nYIW_UIW%kdm>c0-`nAz+bWkS=* z*qa%aQo*ijssnpBLZNOo(#e|g4=q#HxT-fDSl6}8raT~rzISiO_W>JHlX_(6pZ2)a*(jks+o z-LUli%GVS8k+Qp3N+*-gRKtrz&*8hM-J={1C6xfo?E2u*(A%OO2yR2xvX_N zlnFA@@KZO*idu=5^x$IZ69=}}93y>vDV1z&w#(8zwV3+UfvvFKNZrr9t=9J9@mW-hKicVHt=8tLU#*GVVmjg~T1OQ+t;bO zFEvlOL|)CBX{qM!roM4tll^>YpK=#Tx6zX=UQ6B7w+?KRj=t1$$$3)0Qivs^dMPzC zm$i=f`vJc6Ti0{sQuI*Etlg#5tXx))7slkJ@xE-M&NHO+>K>MlKe(&!^04qXQL}yN z%cxT%=zcqkU%I>c-hth^#+MGf_Yavk#m_>fd#E2A*yXY8ebb^RNc@;umdrYy>PH8* z^Fd#_^Rr`Qb6goqpUa-A$l}bochZjy%4O$#>9Eo%#N}%zOTQ_lRguMM-;!ItG$rd0 zX;wWo@lm5Ps>tHBZ{KCGc#j<*ef{GS)1H)3MHZ)hyZE&)Ei@^a{Ny@4@yl&xRguMM z-=6;9OVw&gBx0mr;`+hmRFTDL-}Wd_k6LzEi1RFUk9VE&s>tH})IuNU{%o^zK4{=i zEwq`1wOPoCZREAPlWCS)B~@f`+P7ZS*m=Bj26=Ghq$x4QTNPQH_U+pzU(v|Htx1F8 zjY+!`U#cRD)4nZcsYw&Vok{KGRzRz((Pj@4s;(*3$ZE%m37^s_fiJ116GMHZ)h`#n21hsCZTN8Eav zLU&eHMHXj{wT_`*Ci@1+v9ZMY>oI=O4=bo5i!;aSG1waqB8yYbiY!h!E3!D{tjOY& zvm%RA&WbEfIV-X_<*dl!l(Qm>Q_hMk&QC4$AAA$$uY>oImEnPjz6HyvB8xM}T8{_# z##Lv-NfN-mbv6G)4^?Dw=2+|T0N*rfta**xVBa=si7BCqEY43Y{0)3FYIN33vXp&0 zYE)n`Rb+A6x9l5PsV}SdCaZTZt5;-k+P8YVy;-~kSiB;O)4qjv7{uBkPHP8|#rdhV zH`YZKXO6XQGk5m63XgeviBd3MV*C5$RFTD*WA!$J(tN|0=AV0*#I;XPw78T}MHc6$ z7GikQ-%M}$mzSm7{^S)4f*o?DOEcUfKPKRc65yijrP<<0q3k;Q4>#&@ejn|b7;TbCI3rkr`dS7dSK zSnD=Rzx)*~8kC=I8qj3#-ba~xMHXj{)t?{!#=734tX`4DY2QM;U0A$-v3M`BctsZH zr`BFOh%8R~Hh24qEY44@b-%6G`b}hUerh2GeLN(x@vxVT2a&~T-@-U^XXDJo##sk8 z&O{dHr`F#166 zOKW8rtt`vRZYPeL%CYjq@#CiQtla*xE%}W9fA*0~t^A+%`--gGd7>?;r2XDYD=TZi zufobyR!>z{rm^yKt*oZ~-kX*1Jk?nV&s&3)(7rXbvKA}h@4jFq{Quglgy;K`l@Qlg ztc1U>!%BFbx~zmB)>-^V(MqFM`f6o8t*oz=4YabMRo1ztzg-TG>J?TWaNZTG>h~TWe(-t!%56?X>cHt^7eN+iPV9t?a0k zowTyER(8=!f35scE4ymtPg?o2Rt9KgH?8chl|8hwr&i`pSqs+~Sqs-8Sqs-HSqs-QSqs-ZSqs-iSqs-r zS?h(ca1EBN7p~K?7Ov&87OwZQ7S;r^7S;{27SF%7S>g=7S>*}7S?C77S?dG7S?&P7S@8Y7S@Zh7S@!q7S^4z7S^V+7S^w_7S_13 z7S_SC7S_tL7S_|U7S`Od7S`pm7S`^vwkg8GJ%DVzaGxM+;a)=4!u^JLu z7Vd3iE!_XeTDV7&wQwILYvEo?*24Xmtc80vSqt}dvKH?BWG&nu%38RGl(lf5IsM3G z^W%LlNc_VXHXVzPHNa*$E!Kq6TcewpE>?E&P49Kf5AH=L#U`5nV|L5L)M&8q5*j?d z{A@f8{JR!;WZ7@*|KWrQ?pI%T`d)#0!-@oOtJmFgVj%V0vyr5HwcR*kMr#81v_bot z#Jpy9&TnJPx`XoKk)$t-;U!Z2rB&DfC;U};%1ZMf_O(QC|GeXASsw3K@te(XOnMw& z)^0#E%a)_QcNB9%YCM5^>>WloZXY$?&h2~Vq0KCnP4ug1cS^qg(!BjAGlBc?l0F5w z{UXS06Yt^TE$Emlg=x3ntC^c`-$>wI-MdLTKek(M;%#iqqxST_=I_b%^A*ffA4U+k zpIN(nKekX|l?-05xCZELkvrZnZo|y?MZE0Yvz&Qdx4T#jaBP1HtF;6CM~;OU zAYS+_9NPr=7ekoxkk^~4*s~BX9NR>04T|WuG~O5B?X~YDZkrlKyVkD*ug zS_5oO3}US@joVay-82{?@)(o#`1lRy_8MP57z|ZD89UZveLA;Kd_=rw?Dho^=!+Sw zlwBLm$<287*+u$vHe zGs12`*sTb=4Pmz`N7w@hdk|p{A?#seQe-t?$!2#=CI>InJ!A3VUgSh(TX>HJnkOCax<-UxpdY6Q=DZCzvf8 zbcEkS-kB+^zSgMTy8#{hpe$Q=7z}ea#gl(n*=?VwchWN3dKdRIHq{OFRg9yG4dSLV1jG2{%h%fp3L3T)2q3-G_)G||v^rFgv| zq0!_lvv*=o@EBg#6jradO$4Q|LC+#5Tm_0#6y$Ahs>V>`=J>+Y;WL61U ze_+j+ZUNiLd1fcM2wU)AXTF})*UF1}G^6*I7o+iiXPIXe*h(%iyX0Vb9)tIR&HO$~ zkD<}8&FPuRMQDZh)s+6ho5)3GGe(x@>&Ynvx7gg19Sd(sgIc-rV=J1no?K$q+f&s0 z*Y{hp+X3QOm(+^>?`|QwbI=;|fxBzSWoA9rm*X+aS-B;9Z4Yt0c5X{cb$6lxOT3g1 z7gmxh%nqq4Y~i=U>ha#}{yn`AnUA`rtT1<2vW#41_RTEu8gz$%tvm*>5JRBao_fT; zC+?%u&42hTCfAs)_52u*q0j9uyv_7;Xj;uq^yAUj?DYr|TCbqU+DV*u+?q$|y+l1>I}E2DV7ok{*>HmJWR zk0GVm_G}AvR|@)>b{%qu*IWAGG?L1!XD<(KCttL+-`?*=%a6ZK_ILJB`X~HFZZexr z+_`NqI?|@zK0oxN<=S5$7ZXbu-rAe)eDV)*@pUurOdCsX zGdpZUNp9Di&#`b0?acgzru05c8Z5qOu6l47xx;M7+9kMsyD-YEk4HGRj*a`%jhj^B zeLvd#_wWHEjoEc`i*Y-uZ*=w?1%Gp5z(88?*e(+Hp{VluX?Jp$+4BDP_+0V}v3)<_ zLf9bca&iYby{CwIOS{hGKW68@aOHjR~&OC-eWn*~^ z`q)`EWGKD&_ewIt`yZd*ED%)Uw%?@7EbyVIuL!ekg7(0>tW+0VuN^lW|dfZ0w% z3-B1OdB(?nW|+_F4z_)-!?W-x8nG{!?Al#WY0#h?$zV3($}9eQ$?esG}m5IvG%6Cmq zneF!Yh#B5@>gTLx#{lu(KQ)eam{f<%KCwp`{`{=z8M7_spX2rZF)_(zKC8cRJWaUb zMQ-H_RANZ7={d7^haczm$70FZF+jaBeS_%IRi((QABB9y*-BZK2B#xCIZ7151Kwo0gAF{@*_H={qm3jx#S%iJD_w3&G+AV)4ErNs1M$MnqD(IuJT51L)Ls|w2tAs&=5K(%3^vJ6s#nd z>}Ptz?4OgCaqE_Lo@D}vc%k&X7(%PYY%o3Zdg~M4u9fL6v++OAy_~kQ4mHg=Uj@iR%S6**omt8zwz3$H2+52j4bxo1AoXl-k zob!9n?A)~`ZiBwtkzFtNvqwVd+bbnZk#WJwj9uIPJ}_IyuQIor4sKTTJ_GyWS}6U# zW13(6ajG(CbhzI~W{-vx@PTob5w+3AmPrq#o>im$u8;hvgxu@m2Wgz9g~_ z+Qd8IMJO%WaiZVQtszR}f{K2S#@RM{3b(U=Uu)B50hysR(Y>MHrCSDbo7Oj)KpN+k z16lk%;fifm^B5pzc&vXPN-tl@XfhyQ*~kvdXE%W~&ajiGx5N9#=PIqViI*_%Uv^59 zx#v|S{PU_!AdT~yxjcWbuHds}HZfdg_QSkqjc>o~X{pki zm>`Ywp?@Hs&w>UQh}NGU%G#&L&@ZkBkoalGjpLG>2&8eIe|Ma>Z`g=&>^3~-+{|+S zgb!n;i01 z_OIVeAdNHd?y6|0H|**$9xt2|;D2@ROpk=TB*_z&DD4|BAdtp6wZs53)EnkgJj#0f z)`{&;ecoC~?dj3V+=2ZFq;b~zX`2~dr~Uk0VLqSfzW?S?bk5?@B*^24;+Ez?AdPd_ zw}tCMyXRx*|K>iH)bz2oxo$b^D@+|JBT;(bSN!&s(@+W z>Ud>O?UjC|n3Ww5kj5!%A&pbkLK>&6g)~lC3u&CP7ScFnEu?YET1exRwUEYXZS^q* z{g(T+S4iV59umvv$^4sd@^e!kzwnx__I`i@uN6ZY=fr(A6_|IrMb+YSi9RND%cfET zSV-gauRNJwyZ;$I*k<0z9Rs9sRw>$`YQx_$Nb(o5^SC`jXcHgXsWqDR#}G1x=$G zr5fMeTjd97oL6eS=hvaz4_p=NelxZTrX!bsFg+=<&-h}`ViTlsu36TC#~VB68=JnE zJ!Ax3v1JN*S$emz=((x{(m4Mxi#fGsp;6guaA=2%G2Q8M@2jN$oNy!QIEg?S=b?6D zT@p33npr<4C|mdw8ZomJZCmkA6>CY8NZgpRa#Gx5O_o z{t|wYKpJP=>MNsRO)&DWQryDv!J}Fi7wQ|_h_>7mr8NEUFM%}9@2Y;o+pMKaSw8PT zz3}+(@gr$-)I@u3tQ~W=P8xwU&VE}K@bR#VMk_F%>$V1~R}uA^39A>5 zt+((t)7$uS7Vl3i-sx@rQTnoYA&v9OffGAmo-B0Q#M?oSx4G61{cF_b?Eq<<6^{SN zuK|PqT$J4x5QpBrQuoEPFV|SoXPcB z8fU-2zCDNj*0&!_%!Yt!;neiQ=h-6zM#x{S`WfK?vod>#4LO<3oyo?26(;ld`QeEq zZ2^RJLfC=`TL@vD5!MA^T@ki0!WKc;q6k|IVT&Vd34|?)uxdV*9iL!!Zt(LZxOaR!nQ!zmI(VD!nQ)# z)(G1MVcQ~XJB0lnVShl__6XYnVLKvhCxq>cuw4+=A7Ot)*scis6T<$CumK3$4Pm<@ zY!8I(iLkv8wl~7|LD*jqwlBhpS6k$+E&UPo4nWv}2>UC-4no+$2pfp7LlAZ-!v2P^ z!w_~j!v2o1BM^2Z!j3}N(Fi*RVgEqbu?Ra3VaFqE5W)r{YzV@JB5WAK{)w;?5OyNM zPD0qf5Oy-cPC?kI2s;g7!x45m!p=b0nFu=zVP_-k9E6>Vu=5ahKEf_Q*uN2WA;K;~ z*a(DOjIc`(b}7OxL)hgAy8>ZXBJ3)JU5&775OyuXu0z=M2)hAcHzMpNgx!p=TM%|D z!fr#@?Fbu*usaYo3SpxW){L+*2pfyAI}tVxVRs>HJi_iq*aU>#gRqGRYeCq(2&*D& z62k67*kpv=kFW<2_8`I@LfFFydjw%q5cVj-9z)pU2zvry|3TQ32zv@)Pb2IZgguL} z=MeTh!d^hwiwJuOVJ{=>6@O#S*nbf=6=828>@9@7jj(qRHVt9#BJ6(% zdkBkTu+{fMxT$;N)9J}V(MB$TsaLqa(#HYAj@VnaeXD>fvQvtmO+IV(0Kl(S+( zLOCloB$TsaLqa(#HYAj@VnaeXD>fvQvtmO+IV(0Kl(S+(LOBbWY_ek=GTCG;WU|Rx zu_2*cykbK_IV(0Kl(S+(LOCloB$Ts|$tK$lkjW-%#fF4(F^CNb<*e9{P|k`C3FWNV zkWkJ-CYx+Khz$wl>J=Lj%2}}?p_~;P63SVzA)%ZV8xqP{u_2+H6&n)DS+OCZoD~}q z%2}}?p_~;P63SVzA)%ZV8xqP{u_2+H6&n)DS;%CQ9qW+ECTk&+P1cGH3FYDy8xqP{ pu_2+H6&n)DS+OCZoP|s_*>-?THd!k+B$SImY)B|)#fF4(_W$caiMId% literal 0 HcmV?d00001 diff --git a/textures/vl_mobs_rover.png b/textures/vl_mobs_rover.png new file mode 100644 index 0000000000000000000000000000000000000000..0c26297487167a82f337cc8592a764c71bfc4e5d GIT binary patch literal 2458 zcmV;L31#+)P)^y+K#UOpP*oMyb%oX%LI?nWloEa4BgP1047Ao*mIX0J@uT~H{P;2L`;K84 z_`47S0Ki&{s;VG_z&y{0G15JeQUU;Y@3Czgy!TK_p>11et+8zzvMj^0EC2wlHH1DTUkZ25T+6_jq}E`QiO( zQ9=mB7~!15`FzH@u6TNSLQxd>79pQLeL@HU*XtDkkW#`pj%eE!#u#kdhO#Unguv-^ zLen%D#}Q>&qAW|q7?I~WrfGtFD*#$+NGUN*6NC^*DdEG15BTum1FW@}=b0hvoI{pn z_%makXIN|DoI_cbn5GE;@bdD47$bxbD9iG9*L+1Mx~{{^%L^Zl)*2xMJU>6f7{ft| zF=E>`JUu(>?;T1h48s7W z6oe2AU8NLaj2MOi-g|uf_z_Y{G)=?EqfG(eHE!Dmr4*{F!oKhPJ?R*smvrJy1UTpT z!t3>l=jUfUKR>f3T(4Jb+lKS`%!?u9G)?nn0LF1-foqzE@1eCup64iv0&UwuDaH3| znuc|O4ut4qjNyO~9cYwgiK?ogl!9~ab)L5tNa900bkRaMxw4g0=BN{J8x@;rz49$A**%a<>FKgt+{v~AlUr9|7d z99;2^^(84KE|&|YX=1orYwsv>guZhQMNwcF280mAd$P=t634Vh>OIdhq?B0KmD6nB z_k8MPcfvGR7nT2|)7RC+~fFe0)qohy(z6o?}@S zjN=IJJ*>6JvJ6s6q?8as;DA_b`DDI+PE}PUYi+9QIw_^@=5fwp+cp+2I$6pp+qU6) zz4F3^5ENKGT`46akJdy~P)b2ciD4M9?>pMIy+gGo(I|=n<2Z7()^$Zn2}&vCdCn() z6qRpJp14I~SXC9euH*lN5a7KB04&Rbec$gkLHE#FGt?>2(=?&3Ypm;v5CR)8(vc7X zilTt`p0h+s3EQ^u{NyhPrOUEFrj#Irz`pOW)?!^(v~A1o$~kwp(6THcrG%6cMN!~% zI`MUsGHJqTns7d!?_3=rg;f4H2<~m$@+JuSRaHSsiE$jEl)6*>loC=($n%^J<lf zAvBS&p3i3x@+3L1bzS*OiaJ62dc7iq0Ambpw;S_bYYn9o>bl0|a^e5dARVZx3dR^1 zW6-uO#&Kkb()`94-V_CikVJDG1(y5<(MKu8=%CDCt>t-y5XiC&Pft(i`<@Y^kNI() zXAZ*AozcmX(1Z~96jDmeQ5x1-)OCHAuE@}M?>UQn{`?uY+l{}YRJLu~UHT#qf7BWZ z7Aby=5&OO)%Q6hZfYa&3NL$wx^E@-Eh~7d7C?Uju@;paM38&MEi;T8y*=!U=0VyT> zf9D*!u0v52tl9+Oq9`DQKnMZzJfkRzSI@0A#&LuYg6R`Nz%)%hfNrSQJ*Y&__< zrfKf1=&!&2ig}*-WaxyuuEX>5Gh&R$vW(X-jw7zuE4r@3IF3xsbzS+sL=S@g!@~n3 z_^1)fvY@J}S483;9#jrb(}b$3m^Sk~^I=fIM0BGKQ<}~5{LbujUB~G=guo(Csg)?z zb=})m_sSkiZNmwM>bJM3x5ol_+Eup zmL)IZcDu2$IJ!8>xkXXXZ+}Hp)9G}=vMhI}O+}G023^BL&_4Kg{s(IEi9 z<#M^}0Z<^juDdIeh$8P<_YvmFd(Y+UH?N-=$$OvjJinuv5aMpWqA1d*PoM7QJ)h6X zd!GO#Aw>Gx!cRhowE&{m zcYA^~@v%T5J4qZp_T7GFQ1#a|4fB_Dg*s3)kN2MQ__r;zrfIn6(6%l60kX?f;89bC ztI6+}6Y;ftOe8v#I;e3%xtMh6XW;+sSe6CWTAWTNe$+(*M`A~TAe&3ylM^J5Ko4e) zbpjcv_jHBD@j=AVy!?$r{DJUt%B3efB82@=E z_`Q*38Fzz;3RFT_^Tx~@albzCQq`V+;D&j)@4zkkC>N5gY$w0iIFG~zopr0L(Zut^fc4 literal 0 HcmV?d00001 diff --git a/textures/vl_mobs_rover_face_angry.png b/textures/vl_mobs_rover_face_angry.png new file mode 100644 index 0000000000000000000000000000000000000000..f03db92bcabefc6390a52b1a0a88b77f0c0a88cc GIT binary patch literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQqi6+jv*QM-d@_s+hD-Ma-gMk zhT`W723)+S_#~CA4JKx4IyjXah<%;^@97i<28-~;$0y&8=Gh*!_Q=MZUb&T1KgjKg w-zPk4``0gbrx%`@FaKcGpXqKua~Xb2l}(J1RIT;