From fe6b7a1bad468b6b8917ddd970aaa77358902f23 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 28 Sep 2016 00:11:38 +0200 Subject: [PATCH] Fix side buttons --- src/main/java/refinedstorage/gui/GuiBase.java | 7 ++-- .../gui/sidebutton/SideButton.java | 30 +++++++++++++++--- .../gui/sidebutton/SideButtonCompare.java | 9 ++---- ...ideButtonCrafterTriggeredAutocrafting.java | 9 ++---- .../sidebutton/SideButtonDetectorMode.java | 7 ++-- .../SideButtonGridSearchBoxMode.java | 10 ++---- .../SideButtonGridSortingDirection.java | 9 ++---- .../sidebutton/SideButtonGridSortingType.java | 9 ++---- .../sidebutton/SideButtonGridViewType.java | 9 ++---- .../gui/sidebutton/SideButtonIOMode.java | 9 ++---- .../gui/sidebutton/SideButtonMode.java | 9 ++---- .../sidebutton/SideButtonRedstoneMode.java | 9 ++---- .../gui/sidebutton/SideButtonType.java | 9 ++---- .../assets/refinedstorage/textures/icons.png | Bin 3477 -> 3478 bytes .../refinedstorage/textures/icons_dev.png | Bin 0 -> 3669 bytes 15 files changed, 60 insertions(+), 75 deletions(-) create mode 100755 src/main/resources/assets/refinedstorage/textures/icons_dev.png diff --git a/src/main/java/refinedstorage/gui/GuiBase.java b/src/main/java/refinedstorage/gui/GuiBase.java index 7464f658d..47269bcec 100755 --- a/src/main/java/refinedstorage/gui/GuiBase.java +++ b/src/main/java/refinedstorage/gui/GuiBase.java @@ -117,10 +117,9 @@ public abstract class GuiBase extends GuiContainer { String sideButtonTooltip = null; - // @TODO: Can this be moved to SideButton itself? for (GuiButton button : buttonList) { - if (button instanceof SideButton && inBounds(button.xPosition, button.yPosition, SideButton.WIDTH, SideButton.HEIGHT, mouseX, mouseY)) { - sideButtonTooltip = ((SideButton) button).getTooltip(this); + if (button instanceof SideButton && ((SideButton) button).isHovered()) { + sideButtonTooltip = ((SideButton) button).getTooltip(); } } @@ -178,7 +177,7 @@ public abstract class GuiBase extends GuiContainer { public SideButton addSideButton(SideButton button) { button.id = lastButtonId++; - button.xPosition = guiLeft + -SideButton.WIDTH + 2; + button.xPosition = guiLeft + -SideButton.WIDTH - 2; button.yPosition = guiTop + lastSideButtonY; lastSideButtonY += SideButton.HEIGHT + 2; diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButton.java b/src/main/java/refinedstorage/gui/sidebutton/SideButton.java index 2049f20f7..454b9aad3 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButton.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButton.java @@ -2,6 +2,8 @@ package refinedstorage.gui.sidebutton; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.renderer.GlStateManager; +import org.lwjgl.opengl.GL11; import refinedstorage.gui.GuiBase; public abstract class SideButton extends GuiButton { @@ -16,13 +18,31 @@ public abstract class SideButton extends GuiButton { this.gui = gui; } - @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY) { - gui.bindTexture("icons.png"); - gui.drawTexture(xPosition, yPosition, 238, 16, 18, 18); + public boolean isHovered() { + return hovered; } - public abstract String getTooltip(GuiBase gui); + @Override + public void drawButton(Minecraft mc, int mouseX, int mouseY) { + hovered = gui.inBounds(xPosition, yPosition, width, height, mouseX, mouseY); + + gui.bindTexture("icons.png"); + gui.drawTexture(xPosition, yPosition, 238, hovered ? 35 : 16, 18, 18); + + drawButtonIcon(xPosition + 1, yPosition + 1); + + if (hovered) { + GlStateManager.enableBlend(); + GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GlStateManager.color(1.0f, 1.0f, 1.0f, 0.5f); + gui.drawTexture(xPosition, yPosition, 238, 54, 18, 18); + GlStateManager.disableBlend(); + } + } + + protected abstract void drawButtonIcon(int x, int y); + + public abstract String getTooltip(); public abstract void actionPerformed(); } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java index 9255ae9fd..140f70d68 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCompare.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.api.storage.CompareUtils; import refinedstorage.gui.GuiBase; @@ -19,7 +18,7 @@ public class SideButtonCompare extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { String tooltip = TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:compare." + mask) + TextFormatting.RESET + "\n"; if ((parameter.getValue() & mask) == mask) { @@ -32,9 +31,7 @@ public class SideButtonCompare extends SideButton { } @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY) { - super.drawButton(mc, mouseX, mouseY); - + protected void drawButtonIcon(int x, int y) { int ty = 0; if (mask == CompareUtils.COMPARE_DAMAGE) { @@ -45,7 +42,7 @@ public class SideButtonCompare extends SideButton { int tx = (parameter.getValue() & mask) == mask ? 0 : 16; - gui.drawTexture(xPosition, yPosition, tx, ty, 16, 16); + gui.drawTexture(x, y, tx, ty, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCrafterTriggeredAutocrafting.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCrafterTriggeredAutocrafting.java index cc5b1b422..25d1fa19c 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonCrafterTriggeredAutocrafting.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonCrafterTriggeredAutocrafting.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.TileCrafter; @@ -12,15 +11,13 @@ public class SideButtonCrafterTriggeredAutocrafting extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:crafter.triggered_autocrafting") + TextFormatting.RESET + "\n" + gui.t("gui." + (TileCrafter.TRIGGERED_AUTOCRAFTING.getValue() ? "yes" : "no")); } @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY) { - super.drawButton(mc, mouseX, mouseY); - - gui.drawTexture(xPosition, yPosition, 0, 144, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, 0, 144, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java index 5d3ded0ca..6a0472d91 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonDetectorMode.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.TileDetector; @@ -12,14 +11,12 @@ public class SideButtonDetectorMode extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:detector.mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:detector.mode." + TileDetector.MODE.getValue()); } @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY) { - super.drawButton(mc, mouseX, mouseY); - + protected void drawButtonIcon(int x, int y) { // @TODO: Detector side icons } diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java index d7c955f8b..1027afd23 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSearchBoxMode.java @@ -1,8 +1,6 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; -import refinedstorage.gui.GuiBase; import refinedstorage.gui.grid.GuiGrid; import refinedstorage.integration.jei.IntegrationJEI; import refinedstorage.tile.grid.TileGrid; @@ -13,15 +11,13 @@ public class SideButtonGridSearchBoxMode extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.search_box_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.search_box_mode." + ((GuiGrid) gui).getGrid().getSearchBoxMode()); } @Override - public void drawButton(Minecraft mc, int mouseX, int mouseY) { - super.drawButton(mc, mouseX, mouseY); - - gui.drawTexture(xPosition, yPosition, 0, 96, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, 0, 96, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java index 8b1972b0e..78cfb383d 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.grid.IGrid; @@ -16,15 +15,13 @@ public class SideButtonGridSortingDirection extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.direction") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.direction." + grid.getSortingDirection()); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, grid.getSortingDirection() * 16, 16, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, grid.getSortingDirection() * 16, 16, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java index 9cc606e3b..2fe298885 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.grid.IGrid; @@ -16,15 +15,13 @@ public class SideButtonGridSortingType extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.sorting.type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.sorting.type." + grid.getSortingType()); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, grid.getSortingType() * 16, 32, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, grid.getSortingType() * 16, 32, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridViewType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridViewType.java index 6179c1567..beb1081bb 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridViewType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonGridViewType.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.grid.IGrid; @@ -16,15 +15,13 @@ public class SideButtonGridViewType extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.YELLOW + gui.t("sidebutton.refinedstorage:grid.view_type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:grid.view_type." + grid.getViewType()); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, grid.getViewType() * 16, 112, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, grid.getViewType() * 16, 112, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonIOMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonIOMode.java index 2c3e60925..a1b8cbf8a 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonIOMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonIOMode.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.TileDiskManipulator; @@ -17,15 +16,13 @@ public class SideButtonIOMode extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:iomode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:iomode." + (parameter.getValue() == TileDiskManipulator.IO_MODE_INSERT ? "insert" : "extract")); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, parameter.getValue() == TileDiskManipulator.IO_MODE_EXTRACT ? 0 : 16, 160, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java index d63991006..1fa42bc75 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonMode.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.config.IFilterable; @@ -17,15 +16,13 @@ public class SideButtonMode extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:mode." + (parameter.getValue() == IFilterable.WHITELIST ? "whitelist" : "blacklist")); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, parameter.getValue() == IFilterable.WHITELIST ? 0 : 16, 64, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java index e82b8ae76..2c3ff44fd 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonRedstoneMode.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.data.TileDataManager; @@ -16,15 +15,13 @@ public class SideButtonRedstoneMode extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.RED + gui.t("sidebutton.refinedstorage:redstone_mode") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:redstone_mode." + parameter.getValue()); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, parameter.getValue() * 16, 0, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, parameter.getValue() * 16, 0, 16, 16); } @Override diff --git a/src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java b/src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java index 128edd643..9a01eac88 100755 --- a/src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java +++ b/src/main/java/refinedstorage/gui/sidebutton/SideButtonType.java @@ -1,6 +1,5 @@ package refinedstorage.gui.sidebutton; -import net.minecraft.client.Minecraft; import net.minecraft.util.text.TextFormatting; import refinedstorage.gui.GuiBase; import refinedstorage.tile.config.IType; @@ -17,15 +16,13 @@ public class SideButtonType extends SideButton { } @Override - public String getTooltip(GuiBase gui) { + public String getTooltip() { return TextFormatting.GREEN + gui.t("sidebutton.refinedstorage:type") + TextFormatting.RESET + "\n" + gui.t("sidebutton.refinedstorage:type." + type.getValue()); } @Override - public void drawButton(Minecraft mc, int x, int y) { - super.drawButton(mc, x, y); - - gui.drawTexture(xPosition, yPosition, 16 * type.getValue(), 128, 16, 16); + protected void drawButtonIcon(int x, int y) { + gui.drawTexture(x, y, 16 * type.getValue(), 128, 16, 16); } @Override diff --git a/src/main/resources/assets/refinedstorage/textures/icons.png b/src/main/resources/assets/refinedstorage/textures/icons.png index a4d29d1a6c7fd172ef1ce8148bcffba54fe5e595..ee15bb05c283faa2d3f24d2f4f9ff8ac7f1fe3b4 100755 GIT binary patch literal 3478 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 OfbX_lTgyBnPyZV;ri4cT diff --git a/src/main/resources/assets/refinedstorage/textures/icons_dev.png b/src/main/resources/assets/refinedstorage/textures/icons_dev.png new file mode 100755 index 0000000000000000000000000000000000000000..1011bc80338d345d02bfe82695f2329024f3c345 GIT binary patch literal 3669 zcmeHKdpy&7AOCKwg)VZLRSwe8<+$ab4##CmDUP-yCy~pLlgP;QY?;d>%88tZiV9l^ zJ7RdGTxZIyaxGd%n2^O{shG>~{5Eu+&gu0$|2)rs&mVj3`}zDn_xJnr{cUl$gEp&W zH^>42Rv*}J?EnA_I>Nxp70{P!Fym*jM0Bv(4VW#e!;m0-+{)exfTBb>ktYI@WrFrQ z69HKBQ2c>41Tv06%Jm_8kAxfw{5gc=8SDdsJWmip^aws78b*3M^bB_7%gVB$bae-; ztsKejqv_R&Uv;jJwNJl$;1>~2Np|JeR4Hd9T+>pgc8kNgTN+u}rvkkLWWV;^tg=1t zT*$QI)2C0{vPiAmD8l5?p`+om(^bUQYeZ72Iq%GE83MEoF0mmvlm^Oc<>=OOcU3TPSY>Key#jf( zjHma}qe2UTui=`T2-Tn1^%b<55pSCE4hj@8DP$M}*brea#?vC24nSMq0Fp!sWQnBCFl&=0 zp3O?PX}JR}7kU-2H9GQ}A9 zoF)`ooqL8tnte?(Kh3-g=0A*6D!7$1-d~KFL*kZ;6f`oRu-Mk#fEfk)7bD)N4xM-` z1R^ZbR<5s?7AWWqeSQADYn&E8M<_$Ls|2=pF%;Nkav|tfr21>&T)@Ko%i%GOez?aM zi*!X%Pt@ocFt0tcs1a1YGyiLCVYz^COELkq4hR2&902z1i}AB>Eow-sgU82?&L$@( z_ZZv;fPlUy(5)QjPrC?uDr{h&+xjGz0%QDeg&Z0hS_=HC`7~W;^@o+#)b_&g$WcV! zD_xm!3%lp_JM`D#jZShs{9(0yHk~EJt9cha-8I?1FId(0;1{BthWI=kXT@d5d@LAC zYO~o6r~}@!8SqqT^y-(w8@j-wxHT+%)dvOGzK4@@*)-tQmpRgf9@3K3Xs<$DA8je5 z)Gp-;WPzrn34*H;g#5b_If?5M|z$C0qc$aLP%%hsF+ zv#(P;^d^g2Ena#6lR{?s&W#0!{NL+vkK}`@Tay)hgnY5%z(7M{0Z#@`NS_IRpU^4W zrtMc`ZP4Kfuw^I*L-G7|z$pTv>4gJMnmou1dofWR<3~s!mESb$NCxCie zTx@toZ=;>Ya^)3|;Dwwd1v+%kWlmQ3zbc7*>Tl&fas__j=0|TzbHgcAf}wuYu3qxM z1M2QRiQW)PDIf=uiI@i<}8 z^tm?T-K+EJ?v-7n5p|0&^37&fTAgt_v|blE-;>5%RRxAjlh0yj{1N80B1Tl3SU_-9 zoWKf2ae-Lr_CJ+&=8yDM4q$#Fe11^KnH36JEnrhQ6wzQJ7EW*_UMes162mT}uL{XG zgMpJuCEVz5+e%R8u+n*c>6Q`N*t8;dV(Zy2N3XEi9NSIFv8vBdS{%4XxP16R38PLVK^DMHca}NSPvulMI_CBkVCD5x$8wN$$TpM)HPka$Sief5* z4HrB`Tbd*%+)dYKs&8CibeQsEftFvZi3LEa-)c|>;4#n^`B9o@j5(fbLh?Zy6xAsa!Vv~upJLsqUj$aVBjG3{9abgW|h;!tn*EI8qXsaiY4 znoY=&!NI`?WYuO)g_@r>tXhv5*FZ!R2HKllI(Q!j>>8sSZeASXyR9v88^FR(*_&lU zliaI%ngJ~Y!D-|jlyVh7WI5%y?I&Mm(^>BW$B#0MU z_cjq`8PfX`=k3uH3Bd9X-)u^kd&knKAo4oPBp^kh>(OmV-dUys!_#_8A-_FuzR;B@ z{Eaz&&2-W6SE&;%F;l-1IX^YC9_^GJKn zyQe8u`M698&cjP7!m-!mS0zt%L>@8l)Cbisy<`AJ$^_Kz2FMNdBZ@eX2H#C4%^)x}p9_4C7m8j`LkvRc?ZHmx4c zfByuwNc>}nAk!EN3mNj%T)A!x7fS4vS}9$*vI#w}3pF~3ah9poY~PUQ&qDc{r|)NatJHO2y^Pv^sD&adAELn{`G+adk