From 88cecd137f653cd6532e71437d8fc69d95ad4fdb Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Wed, 1 Jan 2025 12:07:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=9B=B4=E5=8D=87=E6=9C=BAHU?= =?UTF-8?q?D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/HelicopterHudOverlay.java | 99 ++++++++++++++++ .../superbwarfare/entity/Ah6Entity.java | 106 +++++++++++++----- .../entity/IHelicopterEntity.java | 8 ++ .../superbwarfare/entity/VehicleEntity.java | 10 +- .../event/ClientEventHandler.java | 9 +- .../mixins/MouseHandlerMixin.java | 4 +- .../screens/helicopter/drone_fov_move.png | Bin 0 -> 364 bytes .../textures/screens/helicopter/heli_base.png | Bin 0 -> 4783 bytes .../textures/screens/helicopter/heli_line.png | Bin 0 -> 30403 bytes .../screens/helicopter/heli_power.png | Bin 0 -> 111 bytes .../screens/helicopter/heli_power_ruler.png | Bin 0 -> 672 bytes .../screens/helicopter/heli_vy_move.png | Bin 0 -> 561 bytes .../textures/screens/helicopter/roll_ind.png | Bin 0 -> 428 bytes .../screens/helicopter/speed_frame.png | Bin 0 -> 210 bytes 14 files changed, 202 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java create mode 100644 src/main/java/com/atsuishio/superbwarfare/entity/IHelicopterEntity.java create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/drone_fov_move.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_base.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_line.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_power.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_power_ruler.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_vy_move.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/roll_ind.png create mode 100644 src/main/resources/assets/superbwarfare/textures/screens/helicopter/speed_frame.png diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java new file mode 100644 index 000000000..e876ccfd3 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/HelicopterHudOverlay.java @@ -0,0 +1,99 @@ +package com.atsuishio.superbwarfare.client.overlay; + +import com.atsuishio.superbwarfare.ModUtils; +import com.atsuishio.superbwarfare.entity.IHelicopterEntity; +import com.atsuishio.superbwarfare.entity.MobileVehicleEntity; +import com.atsuishio.superbwarfare.network.ModVariables; +import com.mojang.blaze3d.platform.GlStateManager; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Axis; +import net.minecraft.client.Camera; +import net.minecraft.client.CameraType; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.phys.Vec3; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RenderGuiEvent; +import net.minecraftforge.eventbus.api.EventPriority; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +import java.text.DecimalFormat; + +import static com.atsuishio.superbwarfare.client.RenderHelper.preciseBlit; + +@Mod.EventBusSubscriber(value = Dist.CLIENT) +public class HelicopterHudOverlay { + + private static float scopeScale = 1; + private static float lerpVy = 1; + private static float lerpPower = 1; + + @SubscribeEvent(priority = EventPriority.LOWEST) + public static void eventHandler(RenderGuiEvent.Pre event) { + int w = event.getWindow().getGuiScaledWidth(); + int h = event.getWindow().getGuiScaledHeight(); + Player player = Minecraft.getInstance().player; + Minecraft mc = Minecraft.getInstance(); + Camera camera = mc.gameRenderer.getMainCamera(); + Vec3 cameraPos = camera.getPosition(); + PoseStack poseStack = event.getGuiGraphics().pose(); + + if (player != null) { + + if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) + return; + + if (player.getVehicle() instanceof IHelicopterEntity iHelicopterEntity && player.getVehicle() instanceof MobileVehicleEntity mobileVehicle && iHelicopterEntity.isDriver(player) && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON) { + RenderSystem.disableDepthTest(); + RenderSystem.depthMask(false); + RenderSystem.enableBlend(); + RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); + RenderSystem.setShaderColor(1, 1, 1, 1); + scopeScale = Mth.lerp(event.getPartialTick(), scopeScale, 1F); + float f = (float) Math.min(w, h); + float f1 = Math.min((float) w / f, (float) h / f) * scopeScale; + float i = Mth.floor(f * f1); + float j = Mth.floor(f * f1); + float k = ((w - i) / 2); + float l = ((h - j) / 2); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/heli_base.png"), k, l, 0, 0.0F, i, j, i, j); + + poseStack.pushPose(); + poseStack.rotateAround(Axis.ZP.rotationDegrees(-iHelicopterEntity.getRotZ(event.getPartialTick())),w / 2f, h / 2f, 0); + float pitch = iHelicopterEntity.getRotX(event.getPartialTick()); +// player.displayClientMessage(Component.literal("Angle:" + new java.text.DecimalFormat("##").format(pitch)), true); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/heli_line.png"), (float) w / 2 - 128, (float) h / 2 - 512 - 5.475f * pitch, 0, 0, 256, 1024, 256, 1024); + poseStack.popPose(); + poseStack.pushPose(); + poseStack.rotateAround(Axis.ZP.rotationDegrees(-iHelicopterEntity.getRotZ(event.getPartialTick())),w / 2f, h / 2f - 56, 0); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/roll_ind.png"), (float) w / 2 - 8, (float) h / 2 - 88, 0, 0, 16, 16, 16, 16); + poseStack.popPose(); + + event.getGuiGraphics().blit(ModUtils.loc("textures/screens/helicopter/heli_power_ruler.png"), w / 2 + 100, h / 2 - 64, 0, 0, 64, 128, 64, 128); + + float power = iHelicopterEntity.getPower(); + lerpPower = Mth.lerp(0.001f * event.getPartialTick(), lerpPower, power); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/heli_power.png"), (float) w / 2 + 130f, ((float) h / 2 - 64 + 124 - power * 900), 0, 0, 4, power * 900, 4, power * 900); + lerpVy = (float) Mth.lerp(0.021f * event.getPartialTick(), lerpVy, mobileVehicle.getDeltaMovement().y() + 0.06f); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/heli_vy_move.png"), (float) w / 2 + 100, ((float) h / 2 - 64 - Math.max(lerpVy, 0) * 100f), 0, 0, 64, 128, 64, 128); + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.literal(new DecimalFormat("##").format(mobileVehicle.getY())), + w / 2 + 104, h / 2, 0x66FF00, false); + preciseBlit(event.getGuiGraphics(), ModUtils.loc("textures/screens/helicopter/speed_frame.png"), (float) w / 2 - 144, (float) h / 2 - 6, 0, 0, 50, 18, 50, 18); + event.getGuiGraphics().drawString(Minecraft.getInstance().font, Component.literal(new DecimalFormat("##").format(length(mobileVehicle.getDeltaMovement().x, mobileVehicle.getDeltaMovement().y + 0.06, mobileVehicle.getDeltaMovement().z) * 72) + "KM/H"), + w / 2 - 140, h / 2, 0x66FF00, false); + } else { + scopeScale = 0.7f; + } + } + } + + public static double length(double x, double y,double z) { + return Math.sqrt(x * x + y * y + z * z); + } +} diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/Ah6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/Ah6Entity.java index 8b2b3b8ce..2190504d6 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/Ah6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/Ah6Entity.java @@ -37,7 +37,7 @@ import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache import software.bernie.geckolib.core.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; -public class Ah6Entity extends MobileVehicleEntity implements GeoEntity { +public class Ah6Entity extends MobileVehicleEntity implements GeoEntity, IHelicopterEntity { private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public static final float MAX_HEALTH = 200; @@ -89,11 +89,11 @@ public class Ah6Entity extends MobileVehicleEntity implements GeoEntity { this.setDeltaMovement(this.getDeltaMovement().add(0.0, -0.06, 0.0)); if (this.onGround()) { this.setDeltaMovement(this.getDeltaMovement().multiply(0.6, 0.95, 0.6)); - this.setZRot(this.roll * 0.4f); - this.setXRot(this.getXRot() * 0.4f); + this.setZRot(this.roll * 0.7f); + this.setXRot(this.getXRot() * 0.7f); } else { - float f = (float) Mth.clamp(0.93f + 0.03f * Mth.abs(90 - (float) calculateAngle(this.getDeltaMovement(), this.getViewVector(1))) / 90, 0.01, 0.99); - this.setDeltaMovement(this.getDeltaMovement().add(this.getViewVector(1).scale(0.03 * this.getDeltaMovement().length()))); + float f = (float) Mth.clamp(0.945f + 0.02f * Mth.abs(90 - (float) calculateAngle(this.getDeltaMovement(), this.getViewVector(1))) / 90, 0.01, 0.99); + this.setDeltaMovement(this.getDeltaMovement().add(this.getViewVector(1).scale(0.032 * this.getDeltaMovement().length()))); this.setDeltaMovement(this.getDeltaMovement().multiply(f, 0.95, f)); } this.refreshDimensions(); @@ -110,48 +110,55 @@ public class Ah6Entity extends MobileVehicleEntity implements GeoEntity { this.rightInputDown = false; this.forwardInputDown = false; this.backInputDown = false; + this.setZRot(this.roll * 0.8f); + this.setXRot(this.getXRot() * 0.8f); + this.entityData.set(POWER, this.entityData.get(POWER) * 0.98f); } else if (passenger instanceof Player player) { if (level().isClientSide && this.getEnergy() > 0) { level().playLocalSound(this.getX(), this.getY() + this.getBbHeight() * 0.5, this.getZ(), this.getEngineSound(), this.getSoundSource(), Math.min((this.forwardInputDown || this.backInputDown ? 7.5f : 5f) * 2 * Mth.abs(this.entityData.get(POWER)), 0.25f), (random.nextFloat() * 0.1f + 1f), false); } - if (!this.onGround()) { - diffY = Math.clamp(-90f, 90f, Mth.wrapDegrees(passenger.getYHeadRot() - this.getYRot())); - diffX = Math.clamp(-60f, 60f, Mth.wrapDegrees(passenger.getXRot() - this.getXRot())); + diffY = Math.clamp(-90f, 90f, Mth.wrapDegrees(passenger.getYHeadRot() - this.getYRot())); + diffX = Math.clamp(-60f, 60f, Mth.wrapDegrees(passenger.getXRot() - this.getXRot())); - if (rightInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.8f); - } else if (this.leftInputDown) { - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.8f); - } - - this.setYRot(this.getYRot() + 0.75f * diffY); - this.setXRot(Mth.clamp(this.getXRot() + 0.5f * diffX, -85, 85)); - this.setZRot(Mth.clamp(this.getRoll() - this.entityData.get(DELTA_ROT) + 0.2f * diffY, -85, 85)); + if (rightInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) - 0.15f); + } else if (this.leftInputDown) { + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) + 0.15f); } + this.setYRot(this.getYRot() + Mth.clamp((this.onGround() ? 0.1f : 1.2f) * diffY * this.entityData.get(POWER) + 0.5f * this.entityData.get(DELTA_ROT), -3f, 3f)); + this.setXRot(Mth.clamp(this.getXRot() + (this.onGround() ? 0 : 1.2f) * diffX * this.entityData.get(POWER), -80, 80)); + this.setZRot(Mth.clamp(this.getRoll() - this.entityData.get(DELTA_ROT) + (this.onGround() ? 0 : 0.75f) * diffY * this.entityData.get(POWER), -50, 50)); + if (this.upInputDown || this.forwardInputDown) { - this.entityData.set(POWER, Math.min(this.entityData.get(POWER) + 0.005f, 0.12f)); + this.entityData.set(POWER, Math.min(this.entityData.get(POWER) + 0.002f, 0.12f)); } if (this.downInputDown || this.backInputDown) { - this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.005f, 0)); + this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.0015f, 0)); } -// player.displayClientMessage(Component.literal("Power:" + new java.text.DecimalFormat("##.####").format(this.entityData.get(POWER))), true); +// player.displayClientMessage(Component.literal("Angle:" + new java.text.DecimalFormat("##.##").format(this.getDeltaMovement().y())), true); + + if(!(this.upInputDown || this.forwardInputDown || this.downInputDown || this.backInputDown)) { + if (this.getDeltaMovement().y() + 0.06 < 0) { + this.entityData.set(POWER, Math.min(this.entityData.get(POWER) + 0.0005f, 0.12f)); + } else { + this.entityData.set(POWER, Math.max(this.entityData.get(POWER) - 0.0005f, 0)); + } + } } - this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) * 0.9f); - this.entityData.set(POWER, this.entityData.get(POWER) * 0.9998f); + this.entityData.set(DELTA_ROT, this.entityData.get(DELTA_ROT) * 0.95f); - - setDeltaMovement(getDeltaMovement().add(0.0f, Math.sin((90 - this.getXRot()) * Mth.DEG_TO_RAD) * this.entityData.get(POWER), 0.0f)); + setDeltaMovement(getDeltaMovement().add(0.0f, Math.min(Math.sin((90 - this.getXRot()) * Mth.DEG_TO_RAD), Math.sin((90 + this.getRoll()) * Mth.DEG_TO_RAD)) * this.entityData.get(POWER), 0.0f)); Vector3f direction = getRightDirection().mul(Math.cos((this.getRoll() + 90) * Mth.DEG_TO_RAD) * this.entityData.get(POWER)); - setDeltaMovement(getDeltaMovement().add(new Vec3(direction.x, direction.y, direction.z).scale(0.8))); + setDeltaMovement(getDeltaMovement().add(new Vec3(direction.x, direction.y, direction.z).scale(0.4))); Vector3f directionZ = getForwardDirection().mul(-Math.cos((this.getXRot() + 90) * Mth.DEG_TO_RAD) * this.entityData.get(POWER)); - setDeltaMovement(getDeltaMovement().add(new Vec3(directionZ.x, directionZ.y, directionZ.z).scale(0.5))); + setDeltaMovement(getDeltaMovement().add(new Vec3(directionZ.x, directionZ.y, directionZ.z).scale(0.35))); } @Override @@ -167,7 +174,7 @@ public class Ah6Entity extends MobileVehicleEntity implements GeoEntity { entity.setYBodyRot(this.getYRot()); float f2 = Mth.wrapDegrees(entity.getYRot() - this.getYRot()); - float f3 = Mth.clamp(f2, -10.0F, 10.0F); + float f3 = Mth.clamp(f2, -60.0F, 60.0F); entity.yRotO += f3 - f2; entity.setYRot(entity.getYRot() + f3 - f2); entity.setYHeadRot(entity.getYRot()); @@ -248,4 +255,49 @@ public class Ah6Entity extends MobileVehicleEntity implements GeoEntity { public int getMaxEnergy() { return MAX_ENERGY; } + + @Override + public void vehicleShoot(Player player) { + } + + @Override + public boolean isDriver(Player player) { + return player == this.getFirstPassenger(); + } + + @Override + public int mainGunRpm() { + return 360; + } + + @Override + public boolean canShoot(Player player) { + return false; + } + + @Override + public int getAmmoCount(Player player) { + return -1; + } + + + @Override + public float getRotX(float tickDelta) { + return this.getPitch(tickDelta); + } + + @Override + public float getRotY(float tickDelta) { + return this.getYaw(tickDelta); + } + + @Override + public float getRotZ(float tickDelta) { + return this.getRoll(tickDelta); + } + + @Override + public float getPower() { + return this.entityData.get(POWER); + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/IHelicopterEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/IHelicopterEntity.java new file mode 100644 index 000000000..5479e90a2 --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/entity/IHelicopterEntity.java @@ -0,0 +1,8 @@ +package com.atsuishio.superbwarfare.entity; + +public interface IHelicopterEntity extends IArmedVehicleEntity { + float getRotX(float tickDelta); + float getRotY(float tickDelta); + float getRotZ(float tickDelta); + float getPower(); +} diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/VehicleEntity.java index ac4668db0..299a262aa 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/VehicleEntity.java @@ -46,6 +46,14 @@ public class VehicleEntity extends Entity { return Mth.lerp(0.6f * tickDelta, prevRoll, getRoll()); } + public float getYaw(float tickDelta) { + return Mth.lerp(0.6f * tickDelta, yRotO, getYRot()); + } + + public float getPitch(float tickDelta) { + return Mth.lerp(0.6f * tickDelta, xRotO, getXRot()); + } + public void setZRot(float rot) { roll = rot; } @@ -190,7 +198,7 @@ public class VehicleEntity extends Entity { super.baseTick(); prevRoll = this.getRoll(); - setZRot(roll * 0.8f); + setZRot(roll * 0.9f); float delta = Math.abs(getYRot() - yRotO); while (getYRot() > 180F) { diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 24bf0f71f..607b7b42a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -3,10 +3,7 @@ package com.atsuishio.superbwarfare.event; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.client.ClickHandler; import com.atsuishio.superbwarfare.config.client.DisplayConfig; -import com.atsuishio.superbwarfare.entity.DroneEntity; -import com.atsuishio.superbwarfare.entity.IArmedVehicleEntity; -import com.atsuishio.superbwarfare.entity.ICannonEntity; -import com.atsuishio.superbwarfare.entity.SpeedboatEntity; +import com.atsuishio.superbwarfare.entity.*; import com.atsuishio.superbwarfare.init.*; import com.atsuishio.superbwarfare.item.gun.GunItem; import com.atsuishio.superbwarfare.network.ModVariables; @@ -1287,6 +1284,10 @@ public class ClientEventHandler { ItemStack stack = mc.player.getMainHandItem(); + if (mc.player.getVehicle() instanceof Ah6Entity && mc.player.getVehicle() instanceof IHelicopterEntity iHelicopterEntity && iHelicopterEntity .isDriver(mc.player)) { + event.setCanceled(true); + } + if (mc.player.getVehicle() instanceof SpeedboatEntity && zoom) { event.setCanceled(true); } diff --git a/src/main/java/com/atsuishio/superbwarfare/mixins/MouseHandlerMixin.java b/src/main/java/com/atsuishio/superbwarfare/mixins/MouseHandlerMixin.java index 32e5be714..16249ccba 100644 --- a/src/main/java/com/atsuishio/superbwarfare/mixins/MouseHandlerMixin.java +++ b/src/main/java/com/atsuishio/superbwarfare/mixins/MouseHandlerMixin.java @@ -50,8 +50,8 @@ public class MouseHandlerMixin { } } - if (player.getVehicle() instanceof Ah6Entity) { - return 0.25; + if (player.getVehicle() instanceof Ah6Entity ah6Entity && !ah6Entity.onGround()) { + return 0.24; } if (stack.is(ModItems.MONITOR.get()) && stack.getOrCreateTag().getBoolean("Using") && stack.getOrCreateTag().getBoolean("Linked")) { diff --git a/src/main/resources/assets/superbwarfare/textures/screens/helicopter/drone_fov_move.png b/src/main/resources/assets/superbwarfare/textures/screens/helicopter/drone_fov_move.png new file mode 100644 index 0000000000000000000000000000000000000000..03236ac0e1f18db0814745af71f57bcfbefbd759 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^4Gav7OdM=LmYL!GH9(59z$3Dlfr0M`2s2LA=931h zkn?nL45^s&_NF6WlYxlq#rEz)fBBE@PzhGIxVl9kdv>wf+gL=&+WTIIUmFvwmtul?Ol%dq}0fDd)Y0!8D9B{HZt7u5e5>zf{hG)l6FlG*Xh>3 s`fI#GW#@O9CDZf|SZ@3K#mR7*_(e~pXSLJnK7hRL>FVdQ&MBb@0QQ7i{{R30 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_base.png b/src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_base.png new file mode 100644 index 0000000000000000000000000000000000000000..bb30277fa03bfd67f94c6ca01f1664c8c7291bd4 GIT binary patch literal 4783 zcmds5dsLIhwx2{46%?ySQ6S){$J#1BT17A#VvVBKB3KCT@Mx?kF$5Yygb;{Yz=}ex zOVL0;v<;91NO%(@P&p74d1wd;gn-9Z9$&&kAp{bV+|T>?gLQ*4OKM!_L>R23@k^%*j7~qh=s3lBBE<_W2ua?JI3}BA4x6qw#lk`p$LlUyer> zOb#|0q#+);QTH+#`UYcuRd~f8pD-#8L{CgD&UqU3!Ob;&Q-SdQ{>MxHIg<8SC^4dL z63xJ^qkJlmlJBy_W(#O}@&aYn@N9TfrQzGGTHY@Q!p+pA ztINWM7UUfx(ukFa?yr}#j;#T&L1SK&<+eA<+)-xbT3-dgx`&Wqau?g74C)_Px8;nfaXQP?@fq-loFpqPd{co8A$0YEXAN%i zmB4LVc=0vSUue@@=H4a%CttV=LWw!$wfyLshpUZztLyZ@P!_AoY*8MXu%2kmn3 z%yPp~8n5(`r{Npeqz{+X3j}*x!)#Sjy>!h|WcEw_|Y#%QQMIwgHocxi?nfXzE?K-T-ey97N7!FXP$84g-g*e&M z;dD8UAIkPZc0C_aD*WpTOV&|nXEtkXyg;Oj(uwgRNoRvI4f$4J_9rH!H)8p#jmmuw zrw58sryd*9J4I3fZ%?FtBZ9?@yqB#kR3-G9SvcKKkYR7X!efH+ox<{>=1^Jk5#3l( zd6-;sSxvM8bC*TthZnX=c*j@ilzY_*b%HtC4Y^10zGPv1+epY|%xM5mC&=SrV?ut` zBfNK*IpdO;8ag1n@|TrDIsY}}_4A_Ja%)G$=y;-k>JQF1E~RMaWTyx1GcPj2bdl|oPx8Psi$vYJ4B;jcZUYKiW+lJe@@}<#E;z695c_q}q1p z2vdx%j<4bsqVdfMZ=J{M_3RF522O{Q`?wS4_09Y#m9yctE?}AUZ9gD96hBGx!ylwNA{+lbviinPSQI?HJK?jmc-_PGJKs%yvD~_hL2&+q<<+Zaus|LAqUU zS`^_jc@g37j4O@z0jRRiAv=`@1}F*yb3b%i> zotyPCoLW+l_F^Z)*e4Qg$>c6g50}jrWXr2Y^bQ+*01J9v)Epavnxf}%A283;+Ps?L zsM^Oh8>FV%1BpZJ)%nxwy{FzjXG~tY zirP$b$_J&9j}O;dQ?1`$hfvc$HAec>b2? zm*WW9;Ztw&j$#V9x#Z z)78RO%`TAG;bl6Zqwwu7-ZZ@mY8LHHXk~YNYo~Hz%@8TH^BzlaD9;jL8np239=Fgw4^+LcA9J}}o(WG3m9 z5LuoE!+0+YA-XjnsJc^h6MBYI!!%DsQ?yR19E^SOXwys-{qmoX-a!{>dv@$;o5hv` zbq5k>?{&KvmH(jGgXow?sgDgKWg-&KE}+l@pGJGzQ|gx6j!0Ng7U5*yyvpJ4Dk~73 zNegL8Zo2c^ebEMBe3d2LpWXWodI)7hS#nG1Pz1pb<)V=t#6^S=?`x@fL^}t_k#~w0 z?eD{v{F>}5L-ZD(?%hfeae?tC&?144G#!P8nuP=BLxyU&-!Xms-2+@mE0_=6VbHy|l_w2Mt1FdR`ncrdhWFk5&mgX7mwJ;p3Z;9}zXm9C!w)46-GVs} zS-zKF?4MKWteoA7@h8gcb!GCxKo?$k6=t@W^cfpNCTa8df%}+uC87&$Esd#nV@u6~ z@v7M&$j+zNrTLiftjk)U)WgK0za%rj-W^qgX-fV^cTKWbGC`FOt6(75nO<2;zKIbV z3guTvy(1jF;Ya)y#Poi25=P^0Nz&NgLsq7*kN;@1acJ?_V(v^copO^C!DRX^zm)9v zX??xn=`(RE8J>hA(71CoUlsThRK5Mp6{R!Hsf@7^TAwxloE2-y#8zVFY9Galuzh{E zI7QeXy0?~)M@);pmuNB00W>Fr2dfb8+n#!s%Nh zd_T;-b{a{yGATyjNY99sNDCbfKE~Sz*cH|d3JLCR3DOV<(f8zQmhc0ohAN>k=HeaI z$R@LAq7QZ-9nRw<#G%>pGV!@a&&KRz7JOYJr^LS`cbXPCIrJ&iWNRMUk`_NuOKQvo z!YmyiMSi{+1Z~~|gmhFz_)F8q?+epLhX#F{G}WV1?7A|(bL1*3pnTMB_`}yyYD{{m zZZh>Gs;lveeXER$++D~pKg>U$1vXGZz>*)*?+5A_7iEKHyi{uV1#gTD7Ayredv}jB zf@!+Nsmdfr;btUo?Jkm}cv}8fjQroX`Tw`yf^qC40PV3*;_qToWKFI0Fg;F;gP&aB zq5lw&$_^*D$uuwO>&ZLn8phy(bO2gJh#{JOytUk&`)>3h}M9|YRHfAa?nO3yq50v!hFU%Frx zk~vF^tiIzO*}J|V*MQ6w<>_sz<~=5mtJk)tG$w|J(!}X9uu2RtpjR3~e@fWI+Ryy;^CU;auEbyC+Mlr^WAq*VT4s>8c8{nGYh{TDx2imv!rN z)LD0o3OVe{{kv7;>!m1RM4_2+Sz=C0MR!{kPNtRq{ZZH=tz<0mO@)KKc7vQKg+hVg z0)^^QU*O2daDq+|y0`3+|8US#ST{LMv%Zq<6}TMn(=>cwf~Rq|+&H@B-UR*zx;V_d zUz6Yy5G3eiHH;F=3mRc}Ra+A=1Qbq(=IMWgQPl9}zOcNbcL#Ph(?RW4N>rN*&J^j% z|2o4>37uW5^?c~-AnINYQwW)ZZY8W&*S|Ssx->1?=G`2Kr;e(BxDHYoDAAoTIZeAn z{aRqQVssnCCkOF0jt`&~?T#P?1|Z_@cTX3LGj|Hr?G}z^670;;b)QVXC9!{;1J`jj zc@!fl&|;Po)fQ1^i7_Fbm84rDsctSqX7UJ!z5|@|r9YN)<%`Xj9;Vlu%fei!uW&Bb z5Z^^lP-_F*ETL8sH^5HG^)7SJq>-iqdv3^giA3uSxXOoDhgt;cQS%B8EtW%`C>I~u zAFZq^s%gPo#bpHJnUJaqsE#CE&w%P^g)V7`%Ae=0stE3m8>_8`$!M!tNRwMo)u-GT zbmtuG&Bd|lvOcTGIp3b!ie0TnL9V0x1_b_dgXOV_;JJu?tO|UTsqc(_m%WB?_AEw};KdoBQ&w{Ps^46y@Q93Iu#*DEg z6pasJdd+@{Uy?x%o$2t&;*adnrM|`S%i$t>I)2%+?{`&e(D*e5%U!R72FLwuSlNhG z<7HY&(p)5(-tnd>^D*NF4%T8_G-zBb=Ewz7>Ho`-;AnSeL!79qOOk_KI3fKJdotpu zrQj4VB<-d6C+J!<6X^u2_?U z&7s!HqM8oc;a_Lx*B2MBqem>FModBrdw3uj&V-{_NaCMM9d1VL?JJltyiW_EW>Pc- z36fQ2ZUnvXbirw_(9sT^RFIP*Oq3yXEs(J;i9-%hK^)*phGR)U~+}>cy$9AJJP#Pm`X>2#b zZpvS3v!wg(1lDf}k2zEktL(y2KBhDN%DjgC$t$z;eI$G3vd(yonU805l&?Es##>}_ zS$%9in)Y*KB^9rH+XwP0n5uxEy~XRakx9m*tYQ7C}GL?mMkZyex8GN!6OK0R3^b9wb(o5oV zWZ`9W#pPUft%uGE)@wEaS135=Q2kET0yFUHcTHK?I329gX5_*??858W-iR^y=ruc1 zz_|HQzvc>8uPxHV#HB zD~N`>Qft$73fa2LxtRJ&_HS(>gD-YsxiS(WZK-Vt%{KZ>?H+d=u_wbtCFpYC@N^hy@cr@g|EdE2pZpq$NBH0B z@ZVI2LA=-OBiyVQf;AiQQz&)B-W2^VOuyd=)0o~9*IaH+9?ZRW>R|XA`d!o0VbbS7 z+^OKY!pjZxfgL)F8XCBk3*>4eTg=%6~AeacF$Uqa25 zMZ>+Q^a60`8~Q6sDzetBr_8~cz%^wN=38vk9S3ta?WR#%bYk9;(EX1274(sB*`Hn0 z6S8K%)QzW0i3MyI){6CBw~Rhd!k1PFN9OMZ;I-OTdi$-RKMOx|jsFR65<=d5;azD? z0@_VyCDI^Hld_;0lclXilQ$`L?h@0S-A~F`(lvzm70)-`30YhE<#&2s*Swb34c$-w z*imtY71I?U=fb|&x>Z7sy8@*Y2X78pW3Bfl7&PWIuB~PlT)tteQ*YK>Fb5PI#W{5v z|KY7#ET;{%VwPTB|7Omps+ho43Gpvv^GDt(>hfE6H@LIFa;};?2$9A~F5@FB zzp@Z)7oC-cd}5OIX?V??(V1k)TC=ff#Sd6lJoP>Y_g+sc-4meH6v?|b&bHLCDe>*P z9`{FG7iZgXM0ZsW;h_(=w6X5enLh6%N3D&E{WZ05M3sPsuy5bL)x?Vic-4m$ZPX|0 zc7m|3Bll({oq*Ly1KDXbBk88`OXJ!6%niOkl=tNFWC3umLdQ(jC%ApRv0sl2dhzU! zHfUS0Kh18jr$qP`Z8T)G#(pA)fBk4DN%TR*K%70n=+)22*g9 zK^DKIe3|#VF@=HM>7^~`+ZF7&<=jS#kvdLLhI?%V{01NrQV`#rKy8ohKGR;`Xz#7B zDH-;9I-3Qpz*kd`i@WqQ8^_VQioziLb+-iOrbr44M;o*ZY4~S!m-WQWkCl7}1ldO< zeE9|x7oa^qLfIWzY^X8oy*;G^jRj#hsm}}EM+GbA@JBi$yZ>tzA9p}k z4tYwj*rM)fMJ)9WhwmexA~)0b<9r;3sred;C*54+i^nYNF(wPK!+1@y?t<+I4OfsB z;Ye+zC?c6Q|0RQ8-Ua?7GWc{S_PCP@O%H(?Sc!;4(J=^PC0-JD3Pl?g7TF)Ib(49W z+KID8kS)uKVfX$1waLe?ls=F5QVFV5oQSd-4&HpSZ*!FYaCI?8u+I1UQ{|CRAfU7l zvP5g87aXk7t~aA*B7U~PoxDN@l>Fg(fq;eAUd~;x_3$4U59ZLcWlq3*ft~noCbCH8 zdkVj72eeY_Fw&dIB8RIVT+KxgVynj7BX3Qu39_-SHsTC!aiIE~1I;Wn3bLc>>8e!~ zGsuOzHcx0(%eior*=l_}e8Js@vu5gr!IY;(qC5mBLV>fAfV2R0uo%M*`L*DNSSV$Y z^CS7YTfH;*(cUUSO<}ZK4B~Qb*%_Rz928bGON4r%rVjZ6w?}z$A6CTH&Y#g3AJ^k) zPPMpdUAX7VXY^SemhL{!?_EF&OZrWgi$iwlz0OI1`^pqSyXsG6&2jw>M*Eu-mx0bj;UaMdb9D3 zGKJ&CiN;PljPWZG3mYk03Xr(4>Gg3HTenyWQvTzIF25Octoms1U3&5SVD!d1rH6R# z`nXipJ4P!-T98rOoaa&;RpI`v`}C$15L#K69|BVFp1tp0KYmJ=*-FvOuo#O9(^=sU zDhdZYdN>jA=-$-Q^+n&X1!o|$TAmZ-x;SP3jZfN z_J4J5z7O`qMRJIhX0#^q2NsJ2k3fT1^3TyDv#5pgku%USq+y`fyUw1%GXL4tfIzr% zx9V-B?gDmiZUaICHRNBJ5t+>}#Z5D_+5U6ES&lv7!-ZW6gVVOLM%iR%^@}RUCd*$8 z-J_kKDa$xCEN8&s=g`M`FU@upvj3MXJL^bPL#WP5kv8St z1N$JnH1=EFJ+F5T7HGtD)|{$_=5B>zFIzqn%{jK~Nb&qQjNl>3sHuO-G_(Ku{zK&&bBYCm22AGKoN)fJxySGa*-J!=;;`7X1PeNS}D<0S5FfkV~V)ymssr8iv7u9i% z*|2#rXTZ2c594JJKEyk#&@6uD+hqDSo>9UtY~dL%Tz%kOyKA4a-|39Jd_4AO5BB{X z(7gMzQk}pU{-#7Ds&B74aitOZjU)I7q#T}sL;j(i2O6KTfKiH)<2 zum4MJ;I8E&k%mA|0@+0(K2SsvTUM9ofDW2{-#L?=>yWMtN_yAjK)btKOi85Z8=iF< zzObzg`QP;8;n3POYucxh4_>nsxS0&D$ww47gk$NLi8dze4ovi=?ezN!4RuLWzM(o{ zh@Zik_}i)xJh_$P85e#c!+l#70uz0=Rl(Q2&h^)VV+KESU7Lcg4C{KcF}U8F#Kz(m z-_cE|i4^)U9(Yd2YX^S3!z^$Hq5ARAcEH@KZ{D~uZxMixeE!q|#~4$m%tqr7-lE-M zh15sMDw{GeqC%6uxLqmhb0x-KdHM}~X)X1!`MKirLpQj@3_kyT8~`a7VC$16>*=T$ z;OH);VlB0w!0w*`Rjd=42hXE3a6RUjbE1s+stRd~uGU1$9*2R(aGjOp{GiUMLfK?A zBd!Z22I1S}Ser^Va=HDgm0Tj|M^ zisf8SvaT_#A+#gM0kI_Q=3=R>#QQN=9#z8EgiPr`25W`vQxVWA{K_n4X{-F(c{K*zyPqg)DW7Z!9g*6UHUb{Q102wW!*{369;~IT zgwDXLjP|YCuWVmt8?t5a!?$X`80-Yd(_4ksG`zO>m{0|b!Flut)?*$m6sznYW>Ye-f zA*Eh;k>c*)l+QqH`BUV9vz>pR?q~reD7COs3gq+FO{nj)=7~^AIxeGiOl!bc**>We z)!?ZU(8d?H6$S1M;-RFiC}8EkknLTzKK-djz5b3!v1a6}HUuMGr*ApGKr;%gH~zWc zEWGIyml?OjR`SZ2bHOo?nr(Bn%bbbtD(1y0_P9X9v(da$^aZZQdtPc5mKOZ<(@uD? zstOrIr_m6kmQN16+2r^i^`+PDyIB?++-KKrv?1;lGF`~*qr=E9Zw4Q-YiR;KV%8Sh zun|GmXp1toT(z8t(7iI@MduesAQ3L%+R}}~ z$v8J;23a>}| z*cf+E{7cBXpDC9sdF6vZ)rzJBGTX*J97NQ5J56nxde)SPLM1R}F;>i3<+1L&L2NBGb5*1deJ zeKWH9)Is!q;pqFFpwa%L_K_40$q?}@%D3144b#E!4?E^BayhY8EY0P;f0@lv+t?R@ zrz;gO=Kz8bMY0Rrd(D|se<|~QEB`VA{MQ(N`P1LN$aeU7{-D zo;T9rnp_%-yoAB|SvtC0L@blYM3P?Kk z#Fyv92}~R2Uy;l;(RerjS=4C!3fqtcJPs|vvvUyE{egACvnJGk^z|d{K%vm^oR#$5 z<{KPxNT>tzD`ld_-v+kj=f8j3^7C^JfAjOOvn0?qwCd_=W%U<)QdzZx1N{a0pdxx2 z0M9$d_8UyK$tDNWpD2_IqhvX>{wO6b@tRb0JzW+zL)L|&ZHaLOF>CXmT5vJJIFnFn zB7CdXu_m^WHh{#KSE)q9D#}7u0yAqEKVHNlnPl+;hwS-}MI2h&7q{mxI6M+y?}G_$ z686kyd&xHKCdU|EVF%i`E;J9P9&ebR$ohd1fo3qw_7TPmVp!Muo` z-E9}laO!UhMmPlb<8wp`4iFUu3C$*vx2LSO&QO9OB(>d40GNAf(1?yGL)?I$y#Vwn z+ybF?=%$9;u$CM0cN_RtpMPT20@%eyJ#&-!NC59V1-!EutacHw@JhsfwzOadYTK;; zS+(f}Z7fyct!$QBKuB-?^7bC1%{!f+NilTsk)RZ&m$up40!@Vix=d@nq?3Q<3?B1` zQ`iY?WkdCBoWtCqo8#6{?={GLC-hwDUGDx<5ISKQpdvB|K`3m%2c@#`5lW+TjY&IO|)RGEX2(MbEX zG*z(YOZW8eQm)g%S{B+h4Kz?g=#~DN&`zmPaTrW=br@bjANFj@GR}}mKX*K*`QGdg z+ql;IkGE*Kab!#KFy(=ya~B|HO6wozag}D1*2$Tu#LdV_XR1rXkZum_nn} zxbQnTtnQ)q6@x=A!Dy9w8E)o4&G2{(?&LfDhj+C^iUN^1z_Z0`whHHHueFhsLTUd0 z@#OESk|o5DFP5EcM_yJ%GRuugCqouiEZvKngX-KWU%9$SYbwsCl6km+2VS=gX#U^{ z5kDuFqV3j#4W`0VJ35Q%_|1tbnFsGeEBuPL8@qpa+$&t9eM^W6pqiP%Z&gfR>c5pO z+he~GZcN~wkxuOxDi#Z>{oMfj6*Ys0zTSr2oL^d_OsV|o*=0WVUMxLaQdeA*_f2vL zb@o$pqou{HTxt%=FXXTAI29zvo8)0rSEYPd5+Pw9Nidvf+1)QuWd;v)?s=5IG?CIV z#%yu5O#pA+65VsaE$OkuG)_z19UrMay4r{w*SUUwHj5u;DQUh?+Kj2<9y2$Xni6Hr zt_V9jDbB83h}rzi904FTHsUAHGwA7#V~s`pEK?@ln0p&fgldU~kHT~dkwS7P`^LW^ z8}+8ma@sAz;0DxK5%?gy{$!6rxsDA5{IK5`B(LSzY2PdQyqwY@>8PH$DGZTqtQ~)J za#ckcfMFhQsGM6>CC*nDi28fkcdV04YKDkPDnO?MW40=T)8ku;h%tC!RTa8PYcNPU zAzsvPqqCsVAN@|THZQU*;%8_4QXDeXQq|1o5M_tq&^L!lJe#)OYcJClyqQG)(iC@u zbqquhzPojz4OK}Y3;$@@7YARW82JUiYa+Kg6Mt{Lk51DoT&Ngj;>(F?!_~KJKcK7X zOG7irx|pzjd`29-s9@&akVSA;+&n&i_g^s&(5?=iQM$y&Y%)h z)ye_`{Z)Wrx;B=bnp@2;D7(2MvH69e3oFEQkCX0SQGSo;-%!5tCy>g^8I0&`YsEJ! zdu#2V$Y^JOASu3+)3oOw)u`j-`JW~VVnb3k!31r-yz;>gx4T2dA}{&ty4; z+!db$(o=F@kVCB!pYrZhpS`U@%cL0M6p`GtcMYazhUHJp4gIi73f&8%X^!Jmbg3^X z)3{&$YJ=-_Rbij39JOxpk2T{6HAFgHd*cQ?l#8A8ha0V4+Hl?sv(OhApaMZx55L(MG%6egxR z4TaOP`giMn>01aX4)f@rS-%+mzZ8L@?hD&SJUt_UnN5+mz`){&@BkGWKrO~?5bQsC zr#^r5P7#1?@9RWF%s2vhYR2(p<;vxyu z40lSvvdxJ%wTn)1d8q?T1?Y?c#lV4CQQ=*G=VvZr7$1+!ahzq#ySZTCIxE2$TtrVn z!nlSc{g>n+Q3-QL#Mn)HsAzak#7~A`Agb@aOQ4^QmqCUfs!Wo$Q*6gV7VC5ZZisL7 zx=O#->}|JJ=91XAt%(YNU&t1YrfhWPFTF*=n@-9Xe%CPzB)p_J@>S|y{qAt*P=idKm zm0s;)ED*5yh74WW;xsH0H0LBW*+QQkU_pdnD_Dx;0I! zC^0R6{FfDVfHDI4`9s*Sj4Ycp8CYEd8+BuUqPUg)3etg<-tBl9L2s?d@DUHv4o*}6 z#u(bYX3ye$kgSVTV<56O8K6B8Lgw=BBD2Ak%j>;DD9WgYl3e~RV>3zEwaW{a0Azj+ zv|4@DGN%E{?Vwi}ruH+_n@-H}jcI%e#$&q7aq+fV2U%-Aa=^ZUv9e!=MSW0v=C@Bj z8iR`%+se@RFQ;m>{%cb;_#4}ZRugH9WRt`wI-9*&N%nqRj~T`eogWrO?HEx3%Y^f zt1FHbO6@_qPBf>2v;R6Nok3@(55gvl!n@xAnAi>YfhZ83G?HdBX0cb(w!0&daU ziL(Y%xMZ|+N=K6I>4hy@ZN*s!oI~QnxB@7B!9goxv}1mok?#lQZ-g15-JGO{b+DfS z)DNFpJcU#tBYsqqb$=Pd&6&sTf8QN$c-Hd*DJ=(sZ-Q^3g#eJ16t$p2m7i*AIK(O| znNQ~@R_IdiO>^VLT6F*!d%oT~giM;VTu7NVh}0PxmSI^EhgN>QmsgHVIPJTVuRL#`>#_Xz5gkghWt+}cA$TQ>Hj{M z{s<%*L~|{@yC8-&gJT0WZqg6^U$m!T_u>n0)k0Zh5revbSHQ=;s-kd+-7`ky{v3vj z%VK9|zha!u?Yw;Pb?S#_&tBp)0uO%Vdwtkh%;9KISG;aT+K%`>bk=d1g=@DDF26Z; zCpS&#VEgdhxVO#cZ)?9zCJMW9N!=+2UYtuv~n#E9ol;ljsjJ^2oWsHR~_oD_x#?0Fq*T z`OH_r+uTkUXAKrig!*CSa2~ClO?)9o76)A?{V$U+DM2%P_^&uM^BBY$){Kr`5pvoW zaTG0cnKYdstFNsrwH!cTR_c5>?eYlqy7h|CdC#}cVpmv^QS>$emcBsUzB;Kg&5Qt_ zYLC7$&EwR;s=1s?z!6=zo&1^#sv{UNzTZ=pa*_uzsJ190)-y_xBf$~&#|9g>+}Abp zrxsFDa)w->dZ4^8$`H*`)S&tk9-JmN#ied*6SZs2&q1fLGRcx{f~GzOBOe_f`E3?- zJ&~9{wcn9q$~lsk^y@tRq^)&X503#NE=ux%mErak`-#cPE>O-WNht=n*-B1V!(}bpuThm91bhuDV^N;&r7lJ@1zQkaUPP=JhuCE$s z(nB*>rX=*PLf@WtU+Q`>vY}$K=coHet2eUkeCN@`-4VO$pmNOFvb>!KzxhUIMDMDlvZO40mlYz(^|q!0G1i3}og=UR{Mf(0ffaCn{vbgvT4j*cjso!> zrj1BU+v?lEdE=L{mNAwfLUhjkBA$NcX$#DT#*9?8tMe}fU#{NuM(zTR>-^TJJA{$) zMb2u?b!}0#U9;EjWZ4vXotMI1cc+euow+_05d?|HcE5BbUz<9m?L$6u>*k9={B>!i zr$)9e*!m(7N~WF_XyiV{+QC7KtAvOZXb7BBx~p`JJ#!OyO|_h_Y=DbPtk5UpZJ&xo z2S1O%2sg(v^Tpjh+_A}bsjia|BoC4u2_Kz@v+CpU=9~wQ2;90#5XBnA$XvZpq~~>} zZTt?wcv7@q)P?h+Rl1LIFZI!TgG7I^I=+zCFMQ+{4lHt!WYuAq${i+qpcx1JZL#K9 zp^;vXr{`dKm1w@YTs?J0y<~{zgSJH7nH0ZMCk!9dLNrYZXVkGJ*d4m_+Oz68+!9C7 z3n`j4I1R9`=%TgLS-BEVdCpS(%i>m!LvQ(3HM@_>)YeaT=-l_{lOs8k=tmcs;Ay4z zvAibf3XG%R5UE9#K3uor8Oa?y$$?qXm7q}p(?$2V0A=v>>GgFi^5O<3 z8GhN-_w9Fm^RNV7QhlDk@{^n0>*{&*(XajiyVtmi_^J(NILf(0j{9D7x370FU$*Pi z7+p}4wea>=OpZi^rVPQPYbLm9mrJ3C=-E<+3Ys9>ONx~l1O0Hx#hiF7H$6|2yN;*s z!2u`C&QUwg#Fzczdp`Evn7v2x?rZmuM_&Q){T^`q;xwg*SB#^%ouUWgdj?rL@G&j! zw65wnE)n$Q$DNC+hfy(c(Tz*XH?M$x_?SxNy5ibRz<9;Uce8NXoW$tLcPO&O>|wbIoTIGs93(HKxAZ+IS9*<-7j82e4F%|HI4lE&Oi8lxKAv)B`^+ry8(^kgp&L z@A%4s_|A*<{t$WF1y%K2LVs zqov<~U|w(t7MMPrJ3`X1)DlRO|M1+oA7}F=sRre+j#_d# zS#Xe^S?g>#auHW>SG22Lix>nAsP*6T>#EBj{wK%X*V=ilgC}@@@%jn7pF4mJkH=<6 zH3_Yuo8}F>+5@#|$j^a=d5>=rSZd#&wYKwNf6x?)zHTr#f}alkzzC>`lg>K{gq$h! zncP5RZb;$!-@)Kwz`iGCqYaCBMh(+5^%R%BM@`f83Zf;a3ddzQhEi1EwbdI<5{;T1 zhjIN^Vespl+w)*KdED>LFKw*2C3hL8r1TVfEmIs3waQ6gX@Mjq*F=!lYuDScS`c7D zokz;}?#NA>(x{gUA@1t~9Vmw!ffO@-gA-uy-$L@v`g1zDM7~t2YT8&^JiVlTvDOXU zSULBy&#%mfv88Z06h?UaYFa(|nLMWCvr7j<1=Oz87TSwj5NvH&_mYU>fO-{;&{TD` z`VNKec7hy?k%^HRI@!p$>bNt^Ses z$pF%hP@?fPF=KU8QD=q$ACRPU1yHxP5-d7&o!QmCKhI|*OwVC8=IG+O1Y?*dKg^~F zg&6@(zY?NwYlT1i?;6`v?na_n) zLUqbXj#Xu;g%eC{PyAJk@RF0jnqQ8V%cim#q2|i;wEEJ9!T6((vHbyY16=tTkf=0C znNYEi$14?C>n~2f&MUcMGpR%kh|!lTfeC+Z>LR>K#f_gqUd+G0j6wJ5K(;BCZn$RT@Ad#lq^MYuwl} zkQ>J`RyD>p9_ymrmjkimwByiHEkxJzhzZ-~9ydHT@%45EWbv6__#~e5vOgKyBI53cn&OX`@;PN02 zsj1_(oMU3&(Ab5kKp&4QrM9d44ARY7-|hsw?S2`KTEQ4-X)(*lef^2+WOC?w&AJb# z5x3f2s|Wj6r$n$Ve>=BXke9Z+oGcv86LANAd)L}chgI}ZU)ZUxV1v#c+togO#Quq| zg09?7yWOvJbCjMcp-V-B!lOHv8*(9d-oPWxm4+yGIK#19 zyN|VR(I+N#(maQ2{!6FkHT@)uAZ-U5oj_`SveM@#dejLXY%Bewf@Nq#UHUuW`X>X8 zQK1fjPgkC0bZb{j1%wYa$~5Mf*yx~6*@{zH=rKF+C#pfp;|9a=zw4*%cF*X^S%tWb5VYr&0P$qb> z`RJl_FJ1>WASI)FA677+JL$kr0i?sz~Wh?x=uFv{l)`T z+xrkZhb{Yo(*vhJ>yHtd420(QWpLvqhXwnt_Ey5w*-?%{!|C@w#l@ur?$#C_IX-=-bMPI;jSs&$7BV)V!*x}&2{0O(u(0hV5 zSq;5KqTwdtX*;!P!Y>`&iCB#$6VXGyna!|7iHe9DQRg4_>g-Kh$hrM0FiB6OEd4=d zNulsC@5XUo)-L^Ep%|C0b_r6?v{6UszBLshBLG-bc44dn_rX7B0sNjU>nG6dxW*&|}A78o(zD|F<+$`8WlT9KdhkEG*m z>U?%W-(u3nd|j@t8-aa5W6%3(GPZ|5jaJ3L>N73Dj_sY|{dw}x`u|<822B}v3R~G( z&%5UJ;8R*Hxq)`EZEzlFt4X)oQd9@=?w zH6)Xztx^7fUF|D%;F_o_Xj6h^k~^3R{p;vG#JUpZpW24zK; z8#?%tIUY2z&cyoIR!!EcDeBIbCnr0&++UecaO16?IZ56SGl`u48Jxe)Ya)I(^@Q$@ zzBasre((pIdbtv_RU;JOK#k&oYr1|X$0K_xkf1-e78ChwhClXTS?iFpgu4qKjL$o& zm0fno;#%;nOVvE1LrBV8?}M|_cOm@GnhP_*cV?716!aQ)Ati$O z*7TG7Xv-%<>%xZJN>23tv!!dd?9ZP&n`bm^X~pEhejfOCK?)>OQ}3(?3WCVb^$`@tokXWjig#PvJyMzQ;YQdrC72GtioKo9zyKE3k?Ss+@FS&+Tl z)%C4+{XyMQk*;w0#q6WL{y8lkAJjQ+_+)*1&+|pd`E&WShwP6w8{7T}%!s{L#Y*D%e9Q}hplr9-i(byBPvMcxNv9QQ1RwmkNJIjB}g4#icaW7z) z&A$YIuP35gXvgbd2B4b#M|qw>y>xjyc-ad zuqjjR?t7#L9{!J+3kM!NT?*4)Ovyw!4s%S8=J0xTPBraXz0{7-XMt9jMOpdi=FNcx@`WPI3&1AX>}&SPjigV z7vH_Y2N@z4vLUA)g6*z&cs&jKt~!@={r3Rn6&=!M1iMTUiH>{*Y7z($o%SFLrzCMa z=x8uHZw;D1oFq1R=?E0Avv|585GfMCm=e~1znrLb^sDzI%sI3fr)8+ny)ANrgc6;o@pY!uqh6p86BY%7e?u?P!H^})B9%l=oX z^>4{P1s8c=e=TyGd+7|Kfy$2Yp2PMvRGSbrhyMu}WcB|E4Bl1-#sk4S2&7VR)OSxq zf-FPdecjjn@3zwGibUs(Xr2TV#0{xXIuI^am!WikXix@dOrG;#TAAO&Q?U|%a)YJZ z0O|lAF~U-lLqW7*>WTV@?DNvw^BwMb!r-)-muL0x_^a;ZCC@`BnD#Y^Qinr+aV1_c z`=tvE!{)+cM+5QxIvqS%UF@w={w#s$tCW|KzvGfXVjY3BOX9BX1gkk7>@}D-ULcx? z?bMi#i&%CX3du`w=5~t5OYQ_mf$J2?!k&w@Z)aHQR)!5?db_WOCVS-^{WRI8--6^f zPtrX6xH^g_J~;V#v&aaP8{nIC4>IV|U2(@Swo>-)IdR|M=rVwwIjoKfxf=L`vUz`< ztPXyk!?jkG+;Qa&Ko078cFUTSxvQ4*ENhaM!OdEiLXEzFANmG>zstVRSQ!@}36d(W zdU8qdF3vnr;6D6e^qy7PoAB;JXC1Td^>TmE(K8bF2faxuQ$==N#c3&dRcs=O{bHvC8ov;2>_N6%={<*KPOp zFCD1vMJLW5@#VMi0k?w#J5eF$)>kUFc|)hG`fB-kZMh$obNi?5Pd)eUD*nAjhYVAz zNAJLyBu{Cm-DVL_LHP8lU6l%#{Z2cTup!ptnHijR1dEZlKVTZ;lZ9j@n95_qi#?5Jew~x z1Sf$VWj-wVd_B#vI`yhflEdK=UE(=+eECMa`!V+et#3bX=0?W-m4jL1pObPYb0#;O zqxQ7ef=sj%254;u0NOFe@pQ9C@rTg>SkJZ_8L&O0eGC@|bLitVV2KTs9K6e+7h_*kY$}t?dzUlqR7v)xcgFT( zPZd2;GD*+UeOb8Nloh`(KE1ltRU;RS=T+j$%s}LJhd$WxTKir0)YK=J-VxpdSedJV zp~h2i?Q7cilm9b6pfv5V&u_p$(ND)$`Bb8q=+kNu0~>6Dz@K;@ycrwAOiKpKu5H+( z&^tzXM)z+K{`uDdOC?+l4(nz~0OFVX0LfF0J!IN!iWQBnovdbd2wpu4I2&6zvbjL> z-q$#NF;lnifmmMcj^Q3A)>cX@NX(}8rNLSEqfO%YXWjk&(Y7(WV@JaQ(css*7zRHR z?12pAAgPe51Ozn$e>017HN(1o4AtHaaW(<6AtXd@ z+K$)drGFG(kxuZ67?Gp-f=Go&%OiNuAHp3lm^@>y+*4EB!c6SHHKn3zI$W6U7D@~< z(Ts9(oTT5+T~P1itb*Jy{U=eL#9EJxbid+NSDuUJyd#&<3ES^b!XU(0UY0N zWQ*fB7&(N#Oi?FEZ!YoM$#0b3j|Ag81l8`{8p#`Kc5Anf(nx7vkiJ`q@c?-oGLr0wTE9$kDULFfU?amXF9caGd&2LQI|XEb|kTy$HEfj;=& zqkBEzhrQ{)e`?8(SdJVnD!&4xGEjCGWito*pB+z{58*54QFQ*O4iZR|JHK(s&}QO} zfNLL)aTUG=2t7`eT^|{cm`xXXMKCkB6W}q?wg^)WeEz1~hd!>MCw5y*&xR?A&F^Y&dyI8EZ5`vL;Q^ z6NX-bO|>cfh`n01rJJ(B0Y|3?zt~vK_>cW100NzAL}S*>UI2b40L{ACDtY@LmPS#9 zZ2yzld;K5 zHo-H}gE1qv1+i7?UGu;j+9pX1sl43kQX}uPSGaQcdFNP-a^tJ!7`>rPJDGYod`PhS2ic1_Mdn{9c z#f&MRRBU*DqLD;#ugaQs9`b##k- zFnG@@qVDBFJ(dp;aP8Z}DX{o*h23)|>Y6i!kn1I8Dz62c3aY*5)y{~?=M%uQ*WH8o zZf18ctN0#xc-hd#MKP-vXpM?Mx(#uoc1ixt5Z8;-e{aU`>E%$nSj)Fy&B91D0L*YJ zx;tU-(NUYZA%7!!Z*Jsag>mSk6ZVD|6T<+$&s}=rQ=tpwxrK}V?mB@w?z^=|RQhOK zizcL9CO0SoqMg5jhiQVoE)T*l?joHnIFI8YMj&HKjrTbCWlmrN1tfUto4^<6Z!}4S z7#I=CykZV`_Hd!5{2X>f9JweH5S+&4z&+agHj_EZ-=zG(r7btmp#H#%6CVgM;zj*b zF_H!8weUtg)g4 z(w$nkP8p{C>wNt%bn>wDuDpK|>d;GXvX+lQ<^RTT5Ba5wscF7n{s)5leRguc{so=M zKXuwKKwe$iYFb$(n*6*Qr(lEawo)gr-_$0PpHlqwdcMk%MDsL6HP}Dx^njSnX*6Bx zU{Zz%ExohpG6aEHf>#|nIIYeZ)Qgc{5XR9V$vu%h&rYO?M;n$3ugj7`BURX!1?n1~ zv&2Y8N&8HqnJ0Yx1=LK8f)(}}=vK7FH0tYqMX!i})h;!E_-v{EQ7JQ$XYD9b60CM$ zc@aiFEe&0m+@iQ?5ND~>)BtnpUSCTiO&~bi84Z1wiCu~K6XUK^<@VIKSfH?v_V=Ga z)3kNxM>u}?*=yeGwvOrsB6-L|Gwxf__->z+BY_>wAAr`sQ2`&n2-vEqi&vAQTr|X5 znt9TPHFGej`s|jxD@i$WN7eWI0J;jI*WBg7r90$G^B5wF6-O6eT^n2A(BahLv%9wI zp~0SqM`zA)gYI@w>);JlZQEV>v=#4W&t!j4biK+MtqUR!YCF_;?-t+s$4-0zPJ2l# z+PQoEq(3O}!i+%5;I|i95bUnNko{l&lkWSvwkn%>q^Qs_=#3B&kX&L9=1|D<0CUFu zrujEbJ~i(H|2JekGD5bPs_xU0Ui~}5@T*Gtv(SdQr~z+s7@*RxfP3c!Z!l&%UiB}G z0>qaUJ(>FKgf19R>(OfHxq~K75t54qu9FQ%eGTtm((Qt;Ar2MIB>^4UCn7+}pbC-9 zOkC~t9-{Es2rF${8oNrgE>JRECzbPd!p7w}pwnJ>$yXdvFLR>G zc)X99{%(jcg5|pov>;=<@n33mevX_w`?{ljBcyS~P`BTAH+c7}m#=qzyXV zEKs3Tc^u*7Stm5$BEIlpxje48wk!4;2*&%~y4Ww#r(M;Omz0y0J+!bRDplzLEiNxf zCeRGpVafVlZ7M_9hSg_Yan|hw&hd*nNOb0H-m9spwm1XA0@z5F!%Zkg@#=Ust?U|s z?am5+;N24zJawq>Wy=58-kFCbo$q@b#I4bE9GkRqDMigmvvLb}r*Q$d(vDi@l4h=` zxhtr6n#rcj1uV_ACYP~tSIiYm%W$L6)I`)q)XW`4MMUloYfjCbbN{%{bN@NdbN?0* z`10fPUS1zW#ZhD^Tf8gTTUNRzs{^tFi_@q6((@-=^VomXQ-vF>Ik*#2J)KyZO5bb;SZiY>uDV$nWimqQ= zsc^TEJCLwe9Ej1K6^aLpeOa2&ZDJ-{M&X_u_M;aaZ+zpEZ2MJKv^J5@mHKdBB8(y) zu^n=go{GD%nDQ6Hej?)}kdpxK<=7^v&3z#W*6xc({GOYgmYGnV;IkJ!YZJq*f4Oe< zBP6noLf$}R2YzwvV8s7xfd92)4__W!kz*}lRDWQtcmL_tFLePH*QqPa|7Nu|Urz?5 zx9;*of$e>#C9?#1(fyIG{+NFg-G4;&Db9=1I8vBM0@quW_Qy$I!yoHybHVefoC>F- zc4Y3cV*{5zxRV8CRm6P5?&L02vcN}vWSe-jCVXepnEkU1laib(e#z#RVy7Uq>{H8Y zr!O!feMHON;*TQY_k|u#W$t%3n*ve0MQ@?*OWSPo57RDt!&?}oax5+G#G$7LSX2PxAXvw0#`0}mk=VSbM1v8{h)Tq;#9%&M zsYJ!8@PE(jfwc~*zWSy4A=p4Z`g>aAKlV0q7|DebF+!@&c&aK)9G??yzpvEN`Ver+h>9xH#|2;4ys$gp+0@Aa%M_7{b)?@awu{;Y0qSzZJm z54i|L@YfmyF(Al(D&)SNfiJ&Dk&f=XFfnMtJ8$ht z^s4*nryL#!gs1|e83jhd=wG!0(aJ@-^H;BE_?_l@PQWQSBjSw4+m@!kjZEZ!N#l*5 z%V469*Vebwz^$#>Fc54D4`8h8lw#d8D7(I>tmatclRj{?PKVbCg2;{*u>erdKWzL0 z4>lL6;kCnl zy0fy}6CIlNu1&_oDIgXbZ({E96d$5;f(d+y){sDqW zBswlWR%5wbVY#etJ)|#72hG z3EiKv1wLLoN$@YQTta+}{XO3^cPYuDtNy_K66#{oVr0q@fbZg|hrMe#!~h0kDdW%~ zVq1~T#=nRk{@rE$;g%hUG4vY@2kkgWZ0ZnqUhP|c zl)H{Hn;5Z|8&_91uIM~z-pEz)^GqID?*!02p2ZHzdpIi(=E`iUElW(a7Yc5gVhjQr z!pIDty9W7c>ILs6rFYG%KUE%R1*L%uJTW`{03-8thT8tbU#?zJSvH=Dkisc1qLT-n z#ot~#nGXcvT&t~~YZej8TwYyp7s<;UA{7J!zd``3o^Ef3j5#jm)+KVE2yfRYgurG+ zOb^H1M}SgZFI-qEmze~xKxTLRCoOUwAdZ3 z8TZJ?`8q$W*FI_YM_F|nFP;+&23s=EBiT8?%gVFr4-`VYC59biwly)3*=|^CIxhcB z@;2IU2w61MHxs?oouCnD9&{85D2f=;Q(6zNYWON0sMlW|*GxRAX#4q zvVlDmU1W=51=~bo6P@Z6En@PxgE7q&rjdvC|0^*7 zYpBGX8P3Gmt;3RALV$|FpY3%Es2D1Cc02tLquHHzwi5st_14HQ3L76WXI5Atnoud+ zO~^4S;gk@C;NyMF#|q06BbjcLtJtOSgmkR{Zj0IJ71~bwBH{Ro<>br;C=krj-{KOs zomCfPmfN?T;k<63^K**D(-f#&t$>ZM`GY7*zW*2azj)j(Q|rBgjM%J7oW=wFb9UNv z8O)yz!Qcm8LjYzO?Svmnkrf@|%lLl+;nORiW%?Z0eK{2HnHNB&u9ZWPzJ`$7;t(HD zQes%*!in!azN8K-xl6!W0397gM}MgYF8#3d4q(=Thyw_3$U*Q`#O(CJ%4KI&S{No0 zQ4@BP5uRV4_{c=fpK>r~_Gdv4-Ph6~L65icSB3TU*+1w{&-ad?);sn zM}X*ouU4@mjSr!?yB`qz7~swxb~3Q&M3krM_^9bD9S|dNp3B%t8KH8BoNozG9vq?T z?&yMoNq+3R>S>;f?}+$IeNQkNpfdYE{3ia#>Ok)%85|^VTsm~=GMQztEIiAp8Z9jw z+=HQF$oR`u=T#08MG^z-&j}3t-|O86Fm^V>{d(Am~iu*@VZq|AUyoh+g0U(8Yn8Qd~Bqu zsrBz_Pss*)xdFnCyKSXDkmf((xsp%U4g#4({9syBN@ySX$lIBe{6{WCT}!8_1w=dw8Z1Ah6j4>V4%#dAt3Bh$FfZc_SQi z<~1_pZ_NV>LGM^kyHO(!{!E-Xoo4-zglK&t3(mR&`*!+?q31W-;^}?guW7gd_<)y5 zVE>)UJ8Lu2%Q&8HJjXcn`gxjuptnfw>61uGz_=#89AG$rqC)OgsZ5n7U)tQL+Vb~~ z#(W{CBBEdal>~@hO^Wz)fuM>P)u!e~6xwI2o|3#JsJOWFantf%ey zihZL4#xH9RASrhHeih)d(YSpAH`Z*P4f*zRxqygW=HLP-vYfYm@Zy4R#K-3s0rhb{ z$;lrAN$IceJvkx+9H)L_3lVjT*c&I-^jlrB#X(>V4WGY(JLn>^dCiX#usSZBD;9FN zayU7B+FIMPJTT9Px@Ge$8?|fxzC(~uP3z&BZ_uE z*0q7#=!F;of|mj)Yj_y%aDe$V^$xP>w|ay43PMeSb09~$lDcve)(;+b4LD%qaj?~m zS!8guL4oNu4rTdcOSY&~WuH?Y{ZhrBxc0m3Yz^b#8^Vy=m(kx%1a&G-_b6dp2XtWR z^bS$@csgCGX^Lzc6FT&$^bTXol;n!UQ5%`Tvqdpip3eZ^^Yfy%d|@d)xiQ6pNm8F{0cMv#^9C+*!ERU0M@bFrtR+6b7jktJia29g5ShlrS$G zV>LXk`Ld`Y{X8WEjqgZ>+vcxWsk!sL#-{B2B>^H7IsqNG8UVlnxad!fI}4AOFu=%Vt~FPz5}qWHn%; zP%C&>;erzG7#!|MR-Um_W|csV^XYrx$F0Pmu+wFp$TautDztkJy}_;3CN$(;vog}f z%F)ewFn^B0nTA$C8=CJiiC4X?st2G+u}?DH5svw`p<1L+r@lwpy>EKE`cZ_z?~7_h zC( zY2gOD<6OF~1L3?%$IJNbxVP&ftb1E8oUvNHTj)**Ekn9F z$haH6bC@)AV`_n6m_>Jm$3L{vFAKEsSL3EYlbS-u?$Lv-s`ac#r#AZGi`i%U{N$_{ zR!T8Dfz?}?9Q%1)CDvPL=3CpLI{2bpC@r}lpP5x)#c(ejZ{pZ4MCVyz3AT)P_N$9S z@0V;tQT`>KkG2{mBcey*`+Qb)qC)0154|ny#^qWw-s4G5x|W?rIss{(na%Zuu(Z)M zI<2&gF$GP9##AC1o6*2EJcrx%#nvma?m@ZP^n5(2G``UVkqtG*(K8*$kvqB-ass|D z2lqm{5LmmSeAT#;Dc>6Hx^s0j&{#u-wK{;g zANsyY(F#76L08edV2qKQ<=7mX?K_=waFpG)?&~zT%M-+=sU#OXT7>+nN9W$pdzVMoS+ zgM3&;PM&$^9tCA)#V_2$ijNOj8=B9}pEvM~`T&~0+-W7IO)7vkL_D9)5mM@;D!a>- zOJ_8zli0XzXAK%zDQ4yYT@i`16L%ULDqOqaNmge4`0?x-6lV^~x8-1u&+^$jK*svv zJ4RG_aI~IwK}KP?X?ej?q&cWh8Rlv}B_r6h3eUG>MA6t~$sn~2fT(g^?9vOM#_G^Q zm|e;8&oavB&l4|Lai|sfE01dAR)L!tq+b+5V5hXoBky1tb$y-wd+{#T_mAlZPjbBVj!O(^#6#FcefMB$gwy(n(Bs_^6 zC|N2Lsvibw+~`)iaKVOQjU6g7?=M33fRB=n9fPxm|5^KTBZGdH zQ%wWfj=DXa&Flo&2%9?wY#~}WBqiR6nEV*)80Y&anC|B-OK>zU74t#FYtH-l=X4KF zgPK)I*Wu-GMiUZ;DxQzb<9+THNMKqPUXC$9-_J(TZ{nlrkJ&JnvnH>h+9S zgJc}N>F}dZ#XX4=3*<95owjSRWtxMp4?AwmXxk}i#JXMrra!O9$8@7 z5}yZE5ma*8i-eVwbCbPS?~F0#l;>aWj-fgZ>;*7} zWH7E;M`0O3d>6?qeCd#8YNm`FRR^5_B{AWx#v~~RpJU>8$aG_>OKWIg4o?I~c@pJr zTJ+op_|piVj~&%Jb1Cm%Dzhe`8^vQ$?2=L(GG3jjH`0V1ebb9KynBwkH9Txo{y{y} zc;1I%_?+k|UBLhBi;U>?kZVO?MG<3ZTa|a9F%OUoDiWuGx7kssTTx>AJun6o1MZw1 z3hlg*J;oSP$!JpoIa^O66Er?e(a(w^qj&s%EIZ^>_F3GXrSV}7+xMenTe*D3=v$qJ zG8gVWw-F2F`P~5=flNr{{i-l=EaKFoId5Gt1k(9Bw&-a>_(J81;cJ%-MCQ8o0qs{l ze{{Y^WB~ zsXoXu?)>H?5|>m=M+IPwt@B>6*WrX|fq9MV*d>Hv7(s{T6l z*&Ob{lR~j2jYC%vO9E;s$a;=!GH|G3L{HQal2z%(LOyk>8nk-tcwMi2-v`)^+F@DD zi}jF?t1a@!m{s{iBPZ-k_Et^nkhj*kRDmmEM82k?!V8GwcGa=z@!v>4;}=DwKw;1B r>0H!WNK!K8cZE4Qkw-`=n9_vhDqmB`8S-1E1%C{D=-7{LkUGKeO$_-p#suu30f` z)ZLR3{iEP+KEv%p+-sQ=qAk!hFfeSeFJqNY3;%HMrf5vIY{L!Fm`&OhJKmW$#2#$D z#<)RS0}%QbPgdIL?_EAe?`X_{g6~-mtN-Y}DyWW~ES+G%DB;J@Cfx9l z1qXA-HSa|^Tx+-THTW*vTFsd8V}I#vC+>TUZM!|c-DIg!0CLveXUySZgBi`3`u$m zQuGo)e%aaJ^qOG?H&~g+7skGe>^H1y8=_t_xX3S9!fz1sUD`o@!38UZUl4;92o$wA zow%pjawUpgflE=fbppsTE=6E~1aL5d)DSe}|1WN~ioNCxjJmTx>OEckT-G@yGywo} C@c$$L literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_vy_move.png b/src/main/resources/assets/superbwarfare/textures/screens/helicopter/heli_vy_move.png new file mode 100644 index 0000000000000000000000000000000000000000..148c60fb01f47faa2f4c303548fdb3466a57baf2 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^4Gav7OdM=LmYL!GH9(59z$3Dlfr0M`2s2LA=931h zcS((L#}95AW~2XeA)@kz4S(!n*^f!Zw8W%&6VLBFgeMwxQQsfV)~+ zdhv?h*4_uQ-JP9`-FFo3^w{zHn4WF?Jn!@TekPzT0|6phyPY@hcFvydygBsxrZp!; zYcA#RuMJIKrG52w`PZjU*Bs4SZMEy?D()Fe68Gfson761_3bOi(ziux*KXR9Iyb76 zF}QT?GwITO8-IRZb@^)A{%x-=sC-+^Aal5PR{Vurf9_p8&t+4K79voaO%=x2RgW@pm&pz!O;U-up=CkkbLkgD)mpH;ZB%=}ek z^5^yC8+g?&{+Z=7Q~mmtdbW?^K0nJ1{_mVGsqVRZ?zyjdps4Y5^>bP0l+XkKaW2sy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/screens/helicopter/roll_ind.png b/src/main/resources/assets/superbwarfare/textures/screens/helicopter/roll_ind.png new file mode 100644 index 0000000000000000000000000000000000000000..e666deb8d2302a4a742496707c1c26f88ae6baba GIT binary patch literal 428 zcmV;d0aN~oP)#d|O@GZQA*Y%;-k zVKXrj8oUDU!oOU^*uYc}6BC{34YnLgZO88FU171m=+M-u_pMV!)1}M*oI&aPptR6t zkC_(mB^+Tt)*mMjfqR(4I`(oU8Vf|wE|%k`eyn$MBpL}M@D=n>;vv>6ITE!6Ucmc! z#5qo4-OrJzC6K^Z6Zjc6F^u(-#A*|XcLgfOK8nC$5nL9*Wg;=s@H#>RczW_-1ZS8R+6Q^;{ab(;^=AQ{{l*|)m_<|jL!*&~ZnmCDHxWLab z_jiV#;{P|z<7-?`;W(XKPECC@87zOk1f{<+jU%V+0Y x|K;rs(Nl4oAmNzA(kVy@W0`!2uAa&>)(