From 0c0c13359c9e4cedb22ee820144c7e59e14123a8 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 31 Aug 2026 14:44:37 +0200 Subject: [PATCH 1/3] Updated Upstream (BungeeCord) Upstream has released updates that appear to apply and compile correctly. Two temporary patches were dropped as upstream has taken them verbatim: "Use proxy online mode state" (upstream #3998) and "Temp fixup: 26.2 team packet". This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 267f1ef2 #4015: Bump io.netty:netty-bom from 4.2.16.Final to 4.2.17.Final 76111147 #4014: Bump org.junit.jupiter:junit-jupiter from 6.1.2 to 6.1.3 b5ddebd5 #4010: Drop packets of different phases that are not transition acknowledgements df0f3db3 #4012: Bump com.mysql:mysql-connector-j from 9.7.0 to 26.7.0 2e729325 #4008: Bump it.unimi.dsi:fastutil-core from 8.5.18 to 8.5.19 a65ee854 #4007: Bump org.apache.maven.plugins:maven-jar-plugin from 3.5.0 to 3.5.1 662925a1 #4006: Bump org.junit.jupiter:junit-jupiter from 6.1.1 to 6.1.2 793fbb9c #4004: Bump io.netty:netty-bom from 4.2.15.Final to 4.2.16.Final edb28b4a #4003: Bump org.jline:jline from 4.2.1 to 4.3.1 87084ae7 #4002: Bump org.junit.jupiter:junit-jupiter from 6.1.0 to 6.1.1 01cec650 #4000: Bump actions/checkout from 6 to 7 0874f09f #3996: Bump org.sonatype.central:central-publishing-maven-plugin 04a99694 #3999: Bump org.jline:jline from 4.1.3 to 4.2.1 f56d37f4 Revert back to Cloudflare zlib not zlib_ng dc538cb2 #3998: Use pending connection online mode state for login packet 0b2812d2 Fix Minecraft 26.2 scoreboard team packet --- BungeeCord | 2 +- ...t-for-configurable-tab-complete-thro.patch | 8 +- ...018-Improve-server-list-ping-logging.patch | 12 +- .../0046-OSX-native-zlib-and-crypto.patch | 16 +- ...mmands-from-breaking-the-chat-chain-.patch | 10 +- .../0067-Temp-backbump-jline-to-4.0.9.patch | 10 +- .../0068-Use-proxy-online-mode-state.patch | 31 ---- .../0069-Temp-fixup-26.2-team-packet.patch | 153 ------------------ 8 files changed, 29 insertions(+), 213 deletions(-) delete mode 100644 BungeeCord-Patches/0068-Use-proxy-online-mode-state.patch delete mode 100644 BungeeCord-Patches/0069-Temp-fixup-26.2-team-packet.patch diff --git a/BungeeCord b/BungeeCord index d0556ea33..267f1ef2f 160000 --- a/BungeeCord +++ b/BungeeCord @@ -1 +1 @@ -Subproject commit d0556ea33f0f4ce6f8fa951af5b37a9125f4ab18 +Subproject commit 267f1ef2f9185fb6658074862fbaeb9a50e58080 diff --git a/BungeeCord-Patches/0017-Add-basic-support-for-configurable-tab-complete-thro.patch b/BungeeCord-Patches/0017-Add-basic-support-for-configurable-tab-complete-thro.patch index 5d615c7c1..79f2b5dd3 100644 --- a/BungeeCord-Patches/0017-Add-basic-support-for-configurable-tab-complete-thro.patch +++ b/BungeeCord-Patches/0017-Add-basic-support-for-configurable-tab-complete-thro.patch @@ -1,4 +1,4 @@ -From df0cd822b690ecbe7af7fe9077b35542ecbfe938 Mon Sep 17 00:00:00 2001 +From 3c07de0dc3367bda2bf2411f9d2e41d8b884f45a Mon Sep 17 00:00:00 2001 From: Johannes Donath Date: Sat, 4 Jul 2015 06:31:33 +0200 Subject: [PATCH] Add basic support for configurable tab-complete throttling @@ -73,7 +73,7 @@ index 741ebfde..91743f01 100644 + } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java -index c966c6fc..85659f4b 100644 +index 9ba1af5e..34f5ea0f 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -50,6 +50,8 @@ public class UpstreamBridge extends PacketHandler @@ -85,7 +85,7 @@ index c966c6fc..85659f4b 100644 public UpstreamBridge(ProxyServer bungee, UserConnection con) { this.bungee = bungee; -@@ -198,6 +200,20 @@ public class UpstreamBridge extends PacketHandler +@@ -202,6 +204,20 @@ public class UpstreamBridge extends PacketHandler @Override public void handle(TabCompleteRequest tabComplete) throws Exception { @@ -107,5 +107,5 @@ index c966c6fc..85659f4b 100644 boolean isRegisteredCommand = false; boolean isCommand = tabComplete.getCursor().startsWith( "/" ); -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0018-Improve-server-list-ping-logging.patch b/BungeeCord-Patches/0018-Improve-server-list-ping-logging.patch index 56d17833e..07dbe5ed4 100644 --- a/BungeeCord-Patches/0018-Improve-server-list-ping-logging.patch +++ b/BungeeCord-Patches/0018-Improve-server-list-ping-logging.patch @@ -1,4 +1,4 @@ -From 87293c7fcf50eb37fa20372140bf4c3092be86fa Mon Sep 17 00:00:00 2001 +From c96240cc4643fb2c083b6b76071a3546a5578159 Mon Sep 17 00:00:00 2001 From: Janmm14 Date: Sat, 12 Dec 2015 23:43:30 +0100 Subject: [PATCH] Improve server list ping logging @@ -7,7 +7,7 @@ This functionality of this patch was adopted upstream, however, this patch remains for a few misc improvements around here diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -index 102ccb5c..2a92388f 100644 +index f8f7d7db..e80a0278 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java @@ -544,6 +544,6 @@ public class ServerConnector extends PacketHandler @@ -19,7 +19,7 @@ index 102ccb5c..2a92388f 100644 } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index c41b4f71..34860ba2 100644 +index 0823b12d..9bae4c09 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -806,20 +806,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection @@ -45,10 +45,10 @@ index c41b4f71..34860ba2 100644 @Override diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java -index 85659f4b..403c4fe2 100644 +index 34f5ea0f..1dae5d2f 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java -@@ -385,6 +385,6 @@ public class UpstreamBridge extends PacketHandler +@@ -389,6 +389,6 @@ public class UpstreamBridge extends PacketHandler @Override public String toString() { @@ -57,5 +57,5 @@ index 85659f4b..403c4fe2 100644 } } -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch b/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch index b943f0c65..194c111fe 100644 --- a/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch +++ b/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch @@ -1,11 +1,11 @@ -From 29d7031c520483bd6cd691b9a0d2dc856ab32df7 Mon Sep 17 00:00:00 2001 +From b0dbdb7f2af5505b6ac9b30287e784f56c981d9a Mon Sep 17 00:00:00 2001 From: Colin Godsey Date: Tue, 16 Apr 2019 07:25:52 -0600 Subject: [PATCH] OSX native zlib and crypto diff --git a/native/compile-native-arm.sh b/native/compile-native-arm.sh -index b460fe54..64b82daf 100755 +index f38a4d2d..4a2a4d41 100755 --- a/native/compile-native-arm.sh +++ b/native/compile-native-arm.sh @@ -1,4 +1,4 @@ @@ -30,12 +30,12 @@ index b460fe54..64b82daf 100755 +#Waterfall end echo "Compiling zlib" --(cd zlib && CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --sprefix="bungee_" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar) +-(cd zlib && CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --target="aarch64" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar) +pushd zlib +if [[ "$OSTYPE" == "darwin"* ]]; then -+ CFLAGS="-fPIC -DNO_GZIP" ./configure --sprefix="bungee_" --static && make ++ CFLAGS="-fPIC -DNO_GZIP" ./configure --static && make +else -+ CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --target="aarch64" --sprefix="bungee_" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar ++ CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --target="aarch64" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar +fi +popd @@ -59,8 +59,8 @@ index b460fe54..64b82daf 100755 +$CC $LDFLAGS -o src/main/resources/"${PREFIX:-}"native-cipher-arm.so shared.o NativeCipherImpl.o mbedtls/library/libmbedcrypto.a echo "Linking native-compress-arm.so" --$CC $LDFLAGS -o src/main/resources/native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz-ng.a -+$CC $LDFLAGS -o src/main/resources/"${PREFIX:-}"native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz-ng.a +-$CC $LDFLAGS -o src/main/resources/native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz.a ++$CC $LDFLAGS -o src/main/resources/"${PREFIX:-}"native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz.a echo "Cleaning up" rm shared.o NativeCipherImpl.o NativeCompressImpl.o @@ -1539,5 +1539,5 @@ literal 0 HcmV?d00001 -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch b/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch index acf2fa813..12f252305 100644 --- a/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch +++ b/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch @@ -1,4 +1,4 @@ -From e6b3e9434fbf200b9d3a4d564f01d08535c39274 Mon Sep 17 00:00:00 2001 +From 6c6b932af860869f608bda33fb5464d8beca3449 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 15 Oct 2023 00:36:38 +0100 Subject: [PATCH] Prevent proxy commands from breaking the chat chain system @@ -91,10 +91,10 @@ index 31104505..48b20a7e 100644 + } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java -index 403c4fe2..f8c64785 100644 +index 1dae5d2f..abb5a3d9 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java -@@ -164,16 +164,22 @@ public class UpstreamBridge extends PacketHandler +@@ -168,16 +168,22 @@ public class UpstreamBridge extends PacketHandler @Override public void handle(ClientCommand command) throws Exception { @@ -119,7 +119,7 @@ index 403c4fe2..f8c64785 100644 { for ( int index = 0, length = message.length(); index < length; index++ ) { -@@ -192,7 +198,13 @@ public class UpstreamBridge extends PacketHandler +@@ -196,7 +202,13 @@ public class UpstreamBridge extends PacketHandler if ( !chatEvent.isCommand() || !bungee.getPluginManager().dispatchCommand( con, message.substring( 1 ) ) ) { return message; @@ -134,5 +134,5 @@ index 403c4fe2..f8c64785 100644 throw CancelSendSignal.INSTANCE; } -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch b/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch index 1bb83089a..6052438ae 100644 --- a/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch +++ b/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch @@ -1,24 +1,24 @@ -From 7b1e26bd6ca397727d75050589b710f25fdcc929 Mon Sep 17 00:00:00 2001 +From b1479b4ee380ead3b4b027211d10a23d75cd4a83 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 15 Jun 2026 14:36:37 +0100 Subject: [PATCH] Temp backbump jline to 4.0.9 diff --git a/log/pom.xml b/log/pom.xml -index 2bd289ee..b31d7176 100644 +index 73bb2ea5..b31d7176 100644 --- a/log/pom.xml +++ b/log/pom.xml @@ -22,7 +22,7 @@ org.jline jline -- 4.1.3 +- 4.3.1 + 4.0.9 compile diff --git a/proxy/pom.xml b/proxy/pom.xml -index 70cc35b6..0b4ca23a 100644 +index 6d6dd99d..b2ff4561 100644 --- a/proxy/pom.xml +++ b/proxy/pom.xml @@ -159,13 +159,13 @@ @@ -38,5 +38,5 @@ index 70cc35b6..0b4ca23a 100644 -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0068-Use-proxy-online-mode-state.patch b/BungeeCord-Patches/0068-Use-proxy-online-mode-state.patch deleted file mode 100644 index 10212bd8c..000000000 --- a/BungeeCord-Patches/0068-Use-proxy-online-mode-state.patch +++ /dev/null @@ -1,31 +0,0 @@ -From cb32963f17d64c93de940674368d5b9f706f7567 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Mon, 15 Jun 2026 14:57:30 +0100 -Subject: [PATCH] Use proxy online mode state - - -diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -index 0b49fcb2..04cd9893 100644 ---- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -+++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -@@ -299,7 +299,7 @@ public class ServerConnector extends PacketHandler - // Set tab list size, TODO: what shall we do about packet mutability - Login modLogin = new Login( login.getEntityId(), login.isHardcore(), login.getGameMode(), login.getPreviousGameMode(), login.getWorldNames(), login.getDimensions(), login.getDimension(), login.getWorldName(), login.getSeed(), login.getDifficulty(), - (byte) user.getPendingConnection().getListener().getTabListSize(), login.getLevelType(), login.getViewDistance(), login.getSimulationDistance(), login.isReducedDebugInfo(), login.isNormalRespawn(), login.isLimitedCrafting(), login.isDebug(), login.isFlat(), login.getDeathLocation(), -- login.getPortalCooldown(), login.getSeaLevel(), login.isOnlineMode(), login.isSecureProfile() ); -+ login.getPortalCooldown(), login.getSeaLevel(), user.getPendingConnection().isOnlineMode(), login.isSecureProfile() ); // Waterfall - report this connection's online mode (authenticated by the proxy) so the client prepares chat keys correctly, rather than the backend's value - - user.unsafe().sendPacket( modLogin ); - -@@ -397,7 +397,7 @@ public class ServerConnector extends PacketHandler - } - Login modLogin = new Login( login.getEntityId(), login.isHardcore(), login.getGameMode(), login.getPreviousGameMode(), login.getWorldNames(), login.getDimensions(), login.getDimension(), login.getWorldName(), login.getSeed(), login.getDifficulty(), - (byte) user.getPendingConnection().getListener().getTabListSize(), login.getLevelType(), login.getViewDistance(), login.getSimulationDistance(), login.isReducedDebugInfo(), login.isNormalRespawn(), login.isLimitedCrafting(), login.isDebug(), login.isFlat(), login.getDeathLocation(), -- login.getPortalCooldown(), login.getSeaLevel(), login.isOnlineMode(), login.isSecureProfile() ); -+ login.getPortalCooldown(), login.getSeaLevel(), user.getPendingConnection().isOnlineMode(), login.isSecureProfile() ); // Waterfall - report this connection's online mode (authenticated by the proxy) so the client prepares chat keys correctly, rather than the backend's value - user.unsafe().sendPacket(modLogin); - // Only send if we're in the same dimension - if ( login.getDimension() == user.getDimension() ) // Waterfall - defer --- -2.54.0 - diff --git a/BungeeCord-Patches/0069-Temp-fixup-26.2-team-packet.patch b/BungeeCord-Patches/0069-Temp-fixup-26.2-team-packet.patch deleted file mode 100644 index a5652e078..000000000 --- a/BungeeCord-Patches/0069-Temp-fixup-26.2-team-packet.patch +++ /dev/null @@ -1,153 +0,0 @@ -From b846614076c953aafbc204a2816fef344065d139 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Mon, 15 Jun 2026 17:07:14 +0100 -Subject: [PATCH] Temp fixup: 26.2 team packet - - -diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Team.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Team.java -index 6dfe6bd2..5915d4de 100644 ---- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Team.java -+++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Team.java -@@ -55,39 +55,46 @@ public class Team extends DefinedPacket - mode = buf.readByte(); - if ( mode == 0 || mode == 2 ) - { -- if ( protocolVersion < ProtocolConstants.MINECRAFT_1_13 ) -- { -- displayName = readEitherBaseComponent( buf, protocolVersion, true ); -- prefix = readEitherBaseComponent( buf, protocolVersion, true ); -- suffix = readEitherBaseComponent( buf, protocolVersion, true ); -- } else -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_26_2 ) - { -+ // 26.2 reordered the parameters block: prefix/suffix follow displayName and friendlyFire moved to the end - displayName = readEitherBaseComponent( buf, protocolVersion, false ); -- } -- friendlyFire = buf.readByte(); -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) -- { -+ prefix = readEitherBaseComponent( buf, protocolVersion, false ); -+ suffix = readEitherBaseComponent( buf, protocolVersion, false ); - nameTagVisibility = Either.right( NameTagVisibility.BY_ID[readVarInt( buf )] ); - collisionRule = Either.right( CollisionRule.BY_ID[readVarInt( buf )] ); -+ color = readOptional( DefinedPacket::readVarInt, buf ); -+ friendlyFire = buf.readByte(); - } else - { -- nameTagVisibility = Either.left( readString( buf ) ); -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_9 ) -+ if ( protocolVersion < ProtocolConstants.MINECRAFT_1_13 ) -+ { -+ displayName = readEitherBaseComponent( buf, protocolVersion, true ); -+ prefix = readEitherBaseComponent( buf, protocolVersion, true ); -+ suffix = readEitherBaseComponent( buf, protocolVersion, true ); -+ } else - { -- collisionRule = Either.left( readString( buf ) ); -+ displayName = readEitherBaseComponent( buf, protocolVersion, false ); -+ } -+ friendlyFire = buf.readByte(); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) -+ { -+ nameTagVisibility = Either.right( NameTagVisibility.BY_ID[readVarInt( buf )] ); -+ collisionRule = Either.right( CollisionRule.BY_ID[readVarInt( buf )] ); -+ } else -+ { -+ nameTagVisibility = Either.left( readString( buf ) ); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_9 ) -+ { -+ collisionRule = Either.left( readString( buf ) ); -+ } - } -- } -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_26_2 ) -- { -- color = readOptional( DefinedPacket::readVarInt, buf ); -- } else -- { - color = Optional.of( ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) ? readVarInt( buf ) : buf.readByte() ); -- } -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) -- { -- prefix = readEitherBaseComponent( buf, protocolVersion, false ); -- suffix = readEitherBaseComponent( buf, protocolVersion, false ); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) -+ { -+ prefix = readEitherBaseComponent( buf, protocolVersion, false ); -+ suffix = readEitherBaseComponent( buf, protocolVersion, false ); -+ } - } - } - if ( mode == 0 || mode == 3 || mode == 4 ) -@@ -108,37 +115,47 @@ public class Team extends DefinedPacket - buf.writeByte( mode ); - if ( mode == 0 || mode == 2 ) - { -- writeEitherBaseComponent( displayName, buf, protocolVersion ); -- if ( protocolVersion < ProtocolConstants.MINECRAFT_1_13 ) -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_26_2 ) - { -+ // 26.2 reordered the parameters block: prefix/suffix follow displayName and friendlyFire moved to the end -+ writeEitherBaseComponent( displayName, buf, protocolVersion ); - writeEitherBaseComponent( prefix, buf, protocolVersion ); - writeEitherBaseComponent( suffix, buf, protocolVersion ); -- } -- buf.writeByte( friendlyFire ); -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) -- { - writeVarInt( nameTagVisibility.getRight().ordinal(), buf ); - writeVarInt( collisionRule.getRight().ordinal(), buf ); -+ writeOptional( color, DefinedPacket::writeVarInt, buf ); -+ buf.writeByte( friendlyFire ); - } else - { -- writeString( nameTagVisibility.getLeft(), buf ); -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_9 ) -+ writeEitherBaseComponent( displayName, buf, protocolVersion ); -+ if ( protocolVersion < ProtocolConstants.MINECRAFT_1_13 ) - { -- writeString( collisionRule.getLeft(), buf ); -+ writeEitherBaseComponent( prefix, buf, protocolVersion ); -+ writeEitherBaseComponent( suffix, buf, protocolVersion ); -+ } -+ buf.writeByte( friendlyFire ); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_21_5 ) -+ { -+ writeVarInt( nameTagVisibility.getRight().ordinal(), buf ); -+ writeVarInt( collisionRule.getRight().ordinal(), buf ); -+ } else -+ { -+ writeString( nameTagVisibility.getLeft(), buf ); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_9 ) -+ { -+ writeString( collisionRule.getLeft(), buf ); -+ } - } -- } - -- if ( protocolVersion >= ProtocolConstants.MINECRAFT_26_2 ) -- { -- writeOptional( color, DefinedPacket::writeVarInt, buf ); -- } else if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) -- { -- writeVarInt( color.get(), buf ); -- writeEitherBaseComponent( prefix, buf, protocolVersion ); -- writeEitherBaseComponent( suffix, buf, protocolVersion ); -- } else -- { -- buf.writeByte( color.get() ); -+ if ( protocolVersion >= ProtocolConstants.MINECRAFT_1_13 ) -+ { -+ writeVarInt( color.get(), buf ); -+ writeEitherBaseComponent( prefix, buf, protocolVersion ); -+ writeEitherBaseComponent( suffix, buf, protocolVersion ); -+ } else -+ { -+ buf.writeByte( color.get() ); -+ } - } - } - if ( mode == 0 || mode == 3 || mode == 4 ) --- -2.54.0 - From 726b22f4b57bd9e633b3a8defaa30934753733d8 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 31 Aug 2026 14:55:32 +0200 Subject: [PATCH 2/3] Bump jline to 4.4.0 The FFM terminal provider in jline 4.3.1 and earlier has a bug that causes crashes; 4.4.0 contains the fix, replacing the temporary backbump to 4.0.9. jline-terminal-ffm/jni are deps we add ourselves, so the version is set where they are introduced, in the TerminalConsoleAppender console patch. Upstream's own jline dep lives in the log module, which that same patch comments out of the reactor, so it needs no patch of its own. --- ...ogging-and-TerminalConsoleAppender-f.patch | 14 +++---- .../0067-Temp-backbump-jline-to-4.0.9.patch | 42 ------------------- 2 files changed, 7 insertions(+), 49 deletions(-) delete mode 100644 BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch diff --git a/BungeeCord-Patches/0033-Use-Log4j2-for-logging-and-TerminalConsoleAppender-f.patch b/BungeeCord-Patches/0033-Use-Log4j2-for-logging-and-TerminalConsoleAppender-f.patch index bc92e0b42..32e1b1920 100644 --- a/BungeeCord-Patches/0033-Use-Log4j2-for-logging-and-TerminalConsoleAppender-f.patch +++ b/BungeeCord-Patches/0033-Use-Log4j2-for-logging-and-TerminalConsoleAppender-f.patch @@ -1,4 +1,4 @@ -From 06d49b3b7be479a8255779c817bd79043c76b518 Mon Sep 17 00:00:00 2001 +From 29ff12beedfac72dbd5d8da7ce3c29981fefbdfe Mon Sep 17 00:00:00 2001 From: Minecrell Date: Fri, 22 Sep 2017 12:46:47 +0200 Subject: [PATCH] Use Log4j2 for logging and TerminalConsoleAppender for @@ -6,7 +6,7 @@ Subject: [PATCH] Use Log4j2 for logging and TerminalConsoleAppender for diff --git a/bootstrap/pom.xml b/bootstrap/pom.xml -index fd082dcd..d090e151 100644 +index 31077ba7..d037f343 100644 --- a/bootstrap/pom.xml +++ b/bootstrap/pom.xml @@ -49,6 +49,8 @@ @@ -231,7 +231,7 @@ index 00000000..cfd039cd + + diff --git a/pom.xml b/pom.xml -index a11d5b50..03246559 100644 +index 35c4f077..5edd72e5 100644 --- a/pom.xml +++ b/pom.xml @@ -58,14 +58,15 @@ @@ -287,7 +287,7 @@ index a11d5b50..03246559 100644 diff --git a/proxy/pom.xml b/proxy/pom.xml -index 453e269b..70cc35b6 100644 +index 9b30a1b2..81e42070 100644 --- a/proxy/pom.xml +++ b/proxy/pom.xml @@ -45,6 +45,7 @@ @@ -352,13 +352,13 @@ index 453e269b..70cc35b6 100644 + + org.jline + jline-terminal-ffm -+ 4.1.3 ++ 4.4.0 + runtime + + + org.jline + jline-terminal-jni -+ 4.1.3 ++ 4.4.0 + runtime + + @@ -682,5 +682,5 @@ index 6788fbe7..00000000 - } -} -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch b/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch deleted file mode 100644 index 6052438ae..000000000 --- a/BungeeCord-Patches/0067-Temp-backbump-jline-to-4.0.9.patch +++ /dev/null @@ -1,42 +0,0 @@ -From b1479b4ee380ead3b4b027211d10a23d75cd4a83 Mon Sep 17 00:00:00 2001 -From: Shane Freeder -Date: Mon, 15 Jun 2026 14:36:37 +0100 -Subject: [PATCH] Temp backbump jline to 4.0.9 - - -diff --git a/log/pom.xml b/log/pom.xml -index 73bb2ea5..b31d7176 100644 ---- a/log/pom.xml -+++ b/log/pom.xml -@@ -22,7 +22,7 @@ - - org.jline - jline -- 4.3.1 -+ 4.0.9 - compile - - -diff --git a/proxy/pom.xml b/proxy/pom.xml -index 6d6dd99d..b2ff4561 100644 ---- a/proxy/pom.xml -+++ b/proxy/pom.xml -@@ -159,13 +159,13 @@ - - org.jline - jline-terminal-ffm -- 4.1.3 -+ 4.0.9 - runtime - - - org.jline - jline-terminal-jni -- 4.1.3 -+ 4.0.9 - runtime - - --- -2.43.0 - From 2ee0ebae84e691c5298399724b3ff027ae8cb35f Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 31 Aug 2026 19:36:48 +0200 Subject: [PATCH 3/3] Drop macOS natives, default the native cipher to off Removes the "OSX native zlib and crypto" patch and replaces it with one that makes the native cipher opt-in. Dropping the macOS patch reverts isSupportedPlatformAndArch() to upstream's Linux-only check, so macOS uses pure Java for both cipher and compression, and removes the two vendored osx-*.so binaries (~98Ki) along with the macOS branches in compile-native-arm.sh. The native cipher is then defaulted off everywhere. The mbedtls implementation is slower than the JDK's on every platform and every supported JDK -- measured 2026-08-31, AES-128-CFB8, 16 MiB, median of 3, across JDK 17/21/25: Platform mbedtls native JDK JavaCipher native vs JDK macOS arm64 4.2 MiB/s 69.5 0.06x Linux aarch64 7.2 MiB/s ~63 0.11x Linux x86_64 29.4 MiB/s ~41 0.71x AESCE/AESNI are compiled in and dispatching; the cost is that mbedtls's CFB8 driver calls mbedtls_aes_crypt_ecb once per byte. The native cipher dates to 2013 (BungeeCord c70006a3) when it beat Java 7 -- the JDK baseline moved on and the comparison was never re-run. Native compression is untouched and still enabled: it remains genuinely ahead of java.util.zip (1.2-1.4x). The cipher default is still overridable with -Dnet.md_5.bungee.jni.native-cipher.enable=true. NativeCode's existing constructors continue to default to enabled, so only the EncryptionUtil call site opts out. --- .../0046-OSX-native-zlib-and-crypto.patch | 1543 ----------------- ...046-Speed-up-some-common-exceptions.patch} | 4 +- ...t.patch => 0047-ConnectionInitEvent.patch} | 6 +- ... 0048-Add-exception-reporting-event.patch} | 4 +- ...49-Allow-to-disable-tablist-rewrite.patch} | 6 +- ...0050-Remove-version-from-brand-info.patch} | 6 +- ...n.patch => 0051-Add-auth-url-option.patch} | 6 +- ...o-generate-decoder-traces-for-debug.patch} | 4 +- ... => 0053-Additional-DoS-mitigations.patch} | 4 +- ...port-for-hex-color-codes-in-console.patch} | 4 +- ...onfigurable-plugin-messaging-limits.patch} | 6 +- ...6-ServerConnectRequest-sendFeedback.patch} | 4 +- ...ions-to-the-client-during-kicks-etc.patch} | 4 +- ...0058-Improve-login-state-transition.patch} | 6 +- ...version-to-packet-not-found-message.patch} | 4 +- ...-Expand-packet-decode-logging-usage.patch} | 4 +- ...utdated-clients-that-don-t-support-.patch} | 6 +- ...on-inside-netty-with-ChannelFactory.patch} | 4 +- ...rom-clients-registeirng-too-many-ch.patch} | 6 +- ...mands-from-breaking-the-chat-chain-.patch} | 2 +- ...l-message.patch => 0065-eol-message.patch} | 4 +- ...066-Default-the-native-cipher-to-off.patch | 72 + 22 files changed, 119 insertions(+), 1590 deletions(-) delete mode 100644 BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch rename BungeeCord-Patches/{0047-Speed-up-some-common-exceptions.patch => 0046-Speed-up-some-common-exceptions.patch} (99%) rename BungeeCord-Patches/{0048-ConnectionInitEvent.patch => 0047-ConnectionInitEvent.patch} (97%) rename BungeeCord-Patches/{0049-Add-exception-reporting-event.patch => 0048-Add-exception-reporting-event.patch} (99%) rename BungeeCord-Patches/{0050-Allow-to-disable-tablist-rewrite.patch => 0049-Allow-to-disable-tablist-rewrite.patch} (97%) rename BungeeCord-Patches/{0051-Remove-version-from-brand-info.patch => 0050-Remove-version-from-brand-info.patch} (91%) rename BungeeCord-Patches/{0052-Add-auth-url-option.patch => 0051-Add-auth-url-option.patch} (93%) rename BungeeCord-Patches/{0053-Add-the-ability-to-generate-decoder-traces-for-debug.patch => 0052-Add-the-ability-to-generate-decoder-traces-for-debug.patch} (95%) rename BungeeCord-Patches/{0054-Additional-DoS-mitigations.patch => 0053-Additional-DoS-mitigations.patch} (99%) rename BungeeCord-Patches/{0055-Add-support-for-hex-color-codes-in-console.patch => 0054-Add-support-for-hex-color-codes-in-console.patch} (99%) rename BungeeCord-Patches/{0056-Configurable-plugin-messaging-limits.patch => 0055-Configurable-plugin-messaging-limits.patch} (97%) rename BungeeCord-Patches/{0057-ServerConnectRequest-sendFeedback.patch => 0056-ServerConnectRequest-sendFeedback.patch} (98%) rename BungeeCord-Patches/{0058-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch => 0057-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch} (94%) rename BungeeCord-Patches/{0059-Improve-login-state-transition.patch => 0058-Improve-login-state-transition.patch} (92%) rename BungeeCord-Patches/{0060-Add-protocol-version-to-packet-not-found-message.patch => 0059-Add-protocol-version-to-packet-not-found-message.patch} (94%) rename BungeeCord-Patches/{0061-Expand-packet-decode-logging-usage.patch => 0060-Expand-packet-decode-logging-usage.patch} (95%) rename BungeeCord-Patches/{0062-Add-message-for-outdated-clients-that-don-t-support-.patch => 0061-Add-message-for-outdated-clients-that-don-t-support-.patch} (95%) rename BungeeCord-Patches/{0063-Replace-reflection-inside-netty-with-ChannelFactory.patch => 0062-Replace-reflection-inside-netty-with-ChannelFactory.patch} (99%) rename BungeeCord-Patches/{0064-reduce-log-spam-from-clients-registeirng-too-many-ch.patch => 0063-reduce-log-spam-from-clients-registeirng-too-many-ch.patch} (91%) rename BungeeCord-Patches/{0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch => 0064-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch} (98%) rename BungeeCord-Patches/{0066-eol-message.patch => 0065-eol-message.patch} (93%) create mode 100644 BungeeCord-Patches/0066-Default-the-native-cipher-to-off.patch diff --git a/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch b/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch deleted file mode 100644 index 194c111fe..000000000 --- a/BungeeCord-Patches/0046-OSX-native-zlib-and-crypto.patch +++ /dev/null @@ -1,1543 +0,0 @@ -From b0dbdb7f2af5505b6ac9b30287e784f56c981d9a Mon Sep 17 00:00:00 2001 -From: Colin Godsey -Date: Tue, 16 Apr 2019 07:25:52 -0600 -Subject: [PATCH] OSX native zlib and crypto - - -diff --git a/native/compile-native-arm.sh b/native/compile-native-arm.sh -index f38a4d2d..4a2a4d41 100755 ---- a/native/compile-native-arm.sh -+++ b/native/compile-native-arm.sh -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/usr/bin/env bash - - set -eu - -@@ -14,13 +14,33 @@ if [ -n "${1:+x}" ]; then - fi - - echo "Compiling mbedtls" --(cd mbedtls && CFLAGS="-fPIC -I$CWD/src/main/c -DMBEDTLS_USER_CONFIG_FILE=''" make CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar no_test) -+#Waterfall start - rewrite to add support for macOS -+pushd mbedtls -+if [[ "$OSTYPE" == "darwin"* ]]; then -+ CFLAGS="-fPIC -I$CWD/src/main/c -DMBEDTLS_USER_CONFIG_FILE=''" make no_test -+else -+ CFLAGS="-fPIC -I$CWD/src/main/c -DMBEDTLS_USER_CONFIG_FILE=''" make CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar no_test -+fi -+popd -+#Waterfall end - - echo "Compiling zlib" --(cd zlib && CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --target="aarch64" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar) -+pushd zlib -+if [[ "$OSTYPE" == "darwin"* ]]; then -+ CFLAGS="-fPIC -DNO_GZIP" ./configure --static && make -+else -+ CFLAGS="-fPIC -DNO_GZIP" CC=aarch64-linux-gnu-gcc CHOST=arm64 ./configure --target="aarch64" --static && make CFLAGS="-fPIC -march=armv8-a+crc" CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar -+fi -+popd - - CC="aarch64-linux-gnu-gcc" --CFLAGS="-c -fPIC -O3 -Wall -Werror -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/" -+if [[ "$OSTYPE" == "darwin"* ]]; then -+ CC="aarch64-apple-darwin25-gcc-15" # Brew GCC -+ PREFIX="osx-" -+ CFLAGS="-c -fPIC -O3 -Wall -Werror -I$JAVA_HOME/include/ -I$JAVA_HOME/include/darwin/" -+else -+ CFLAGS="-c -fPIC -O3 -Wall -Werror -I$JAVA_HOME/include/ -I$JAVA_HOME/include/linux/" -+fi - LDFLAGS="-shared" - - echo "Compiling bungee" -@@ -29,10 +49,10 @@ $CC $CFLAGS -Imbedtls/include -o NativeCipherImpl.o src/main/c/NativeCipherImpl. - $CC $CFLAGS -Izlib -o NativeCompressImpl.o src/main/c/NativeCompressImpl.c - - echo "Linking native-cipher-arm.so" --$CC $LDFLAGS -o src/main/resources/native-cipher-arm.so shared.o NativeCipherImpl.o mbedtls/library/libmbedcrypto.a -+$CC $LDFLAGS -o src/main/resources/"${PREFIX:-}"native-cipher-arm.so shared.o NativeCipherImpl.o mbedtls/library/libmbedcrypto.a - - echo "Linking native-compress-arm.so" --$CC $LDFLAGS -o src/main/resources/native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz.a -+$CC $LDFLAGS -o src/main/resources/"${PREFIX:-}"native-compress-arm.so shared.o NativeCompressImpl.o zlib/libz.a - - echo "Cleaning up" - rm shared.o NativeCipherImpl.o NativeCompressImpl.o -diff --git a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java -index 3432aa2c..86802af9 100644 ---- a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java -+++ b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java -@@ -29,6 +29,7 @@ public final class NativeCode - - public NativeCode(String name, Supplier javaImpl, Supplier nativeImpl, boolean extendedSupportCheck) - { -+ if ("Mac OS X".equals( System.getProperty( "os.name" ))) name = "osx-" + name; // Waterfall - this.name = name; - this.javaImpl = javaImpl; - this.nativeImpl = nativeImpl; -@@ -121,7 +122,7 @@ public final class NativeCode - - private static boolean isSupportedPlatformAndArch() - { -- return "Linux".equals( System.getProperty( "os.name" ) ) && ( isAmd64() || isAarch64() ); -+ return ("Linux".equals( System.getProperty( "os.name" ) ) && ( isAmd64() || isAarch64() )) || ("Mac OS X".equals( System.getProperty( "os.name" ) ) && "aarch64".equals( System.getProperty( "os.arch" ) )); // Waterfall - } - - private static boolean isAmd64() -diff --git a/native/src/main/resources/osx-native-cipher-arm.so b/native/src/main/resources/osx-native-cipher-arm.so -new file mode 100755 -index 0000000000000000000000000000000000000000..f1f8f70a92308dfcec7f5a85aa119fb4d061351b -GIT binary patch -literal 54200 -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 -ztc3r2YumtMm|@xn%c`9xudQfH -zQ07U52SLYPKZ#X0z}GwhpZFyF;ZyJ%Y?F-D)6hnG!~T9Y;X@cO-*cGy67p^63p8)m -zi1xNoe~|Qxsr_ZhLH?HN8`zRqbs%7xztJb{qy^~(4jkgSAE|A+RlE7M&GqE?4xHzYl&>Fi-q1} -z;GYdcePdByyiRr-hV&TnSNgY4&njMcIBRJG+X;TbpZHjJ>=pg#Ew)V&W8oCSVT*GHD`N^D -zgEaC}nWi+%t8(|ssDZ{uuV?IswW#}Q%zs3?5p|1Np-+h($a<+b(}9x}7+}p*aZrb- -z6#-5-iNHz3JW2B?rvq7|R`g97&guA74hOGkz@a&E__7?}_$At6lsfu>|95B?lI{Bf -z)Uy+Bwu6eJc}@$9)yDow16YbZ8gbJF$z{F4)EBF4)D`F4zV6 -zHLzJHyLh!-KMuP9Keu)PK5p$Irjxc2{oRRoZ3nzLeK&T&>ASHD=+UiR4C$cWhue8O -z>;m-N+6CylwF~IWtzBSDA)DZKL1Ty*Q%?Wh7Sf@uc*c-K+yCcdh<1LWvAYp|S|j|& -zCNYjgW86{JPs|$4*EkrPV4sN?)3jp~&x=4Fx6go!^Wu?*{^n}Cyj*H`We&%9(H-+h -zlbA=EF%j;V?d(m2d$CqJs9B&?-uG&@+H5LQ)MVruy-_Bv^Qm-ZV^ -zU@fBS#Wv91-w9fOpbYt8upN}cx}|{14MMqjEx%&T;DiUiiv0SDl7TH{uM*xs;LUCM -z!4+>5@GwtTlniJoJ4bi}fOlKVH^8IyiKHt&^x3a`4>q}V`HdBAwX(AQ@c5U`J~4Fo -zpY|`av464_YjKBv2_CNgWfpLt&i7L{}T0Z%bUyP#=nFf-SY0Le+l{B+6Clt -z>tFJD#(A!C*u}r?UutZngE8bHTY+s~(pEYcLzFeD##XwzM)iy#|JoY03u8#v{YzcD -zf7zLz#r+vKz7F?;oNd?PXNmE`$A-R)iT{dU^3o}{e%RhbCZ%0zq8-_o8m_MKOWI|8)N+#u4r -zdlert7(RFs=U1EIM>eDEYqWO|iTY64F9;8N*>pZlv?KkL^KQPs0GimhJe%1=(T5HD -z*i5R4E0v#`Scm=Xdf+!8?F9C}={`lB*kjKS`~Po)b`$b&#zbe{_R5kzEsZJQlZ1Um -z$Yq<3J@F~b&UsA%FSLE*bmD1f&d>>-DJV~Q*heof>5Ki`SuI%C;*1?}c~(nflF{CT -zd^+Q(D-Wpp1^06mfhO>imxqnM3_NKig -z#;K82|d!84bJ%NID=5)bcR7~5YNtHPu#u*Wz(TkZQE4%Dth921`V4J -z^f8Iq8z-PF_OQ90M?=rptLNonL67u28lhIt6O{dXMbC~scjy^$d3H-9_QJ7GAoLsx -zJ>M$yjJQmD?9emL0$@Y@9DwT?d+B`rhdx&>4}hL;bLe>?)mg}bJ)3qtBTbdfp=VV# -z(z7au&~qdBkz8EQM33|gdR)({jruD#Ds^C^y~+NO&+WepZLm$WUp@4!w%;h!g>>5n -z`{z0iF;-LG;_)QJeHhlkIN#IsebT*p#yAY+aSmABx_k!C;!<$7<=w#@kl=&1S}$%N -zS~_$Wqz?97zY={OZGHl6eiH3{3Oe9p$V`kO&>xKhdW-`&r?3;O9TRXSVz;ey8D{{O -zi+-%9v0@#o{!N0eP?qd*n>a6v6nQ_1JVSWtA*x%2Oa5ufN57+cLk(y{+$T%kzMUQ1 -zLg#=a8~UGWrQyytS*j=f0x3VxcFm8JBs%h;zw)Z*no&!<7a?BL;g;LI}uiZ -zUYkPCSOJ{OiitKMn+>vlu8w6$Q)PAZF(Id(`WR$t0*<%?k=O{D1oJ*d^r(-49`9pl -z(|YKAJM`3mJ8zMlv}YFC0Q#uyIp`Ajw(UZvTZK+HL#G>sPB#jjZtg&*+aW*lxlSKL -z-5*2Utq83MpMVawYVubjeKpeWLwFy;hoI9ZD1;sxk#-7iBjTroPU`{JBmW+R_aIyW -zde15Jj4Omrg={v+>d-0D8ilM5oeDX*P9akha2z@XO@g^ji5}?`^hl>D-#zEaKdr;jf?%@UvR#!#ESS -zw_#r4dHpf&f*#p#gL=OX^Aw$DBaPn=qVwG*!0LT6wH%inba1C31pCGIM(q2NY|o>O -zo0BAa({u@QIQmcm+INy@-$|l<6FO+$>Ch$edHZIf9Wv1lW`t&hIcSe5n*6y)pNsTc -z5#EY0744ftA=>n3q@Bh4Gva4O`+f)bJLKPj@D_wOgI(FUm=?fvO3xqX^lcw -zNBasndHX`9Cg3>Q7c>dx?Mw8ieL;`fmvl<@?@PXj&~bN)LvNHvb0^Lj`8cDOdNenm -zXZEIZ4C4set{H9it!T4v6?TA$=6m -zha()0@G9sqos^9nuVP@zL1n+>u$bci%n -zR)-FSoLq;HsR=j^9fBsoT!%!DbO?GKjXT}xeuJBNlTDE{<#5sLA(6x;N4#gc3qS -zah%kf!kReA?;eDB{r1F3hCO^NXWoFl_r%r36yvRls~ZNLZUs;9s~d)LG?ok5FgLdA -z6lsk@R)(65)9D;zY7c#L6YkL30*aHnM}5%GhPxB`6~^_rzxe^= -zZZBhBd05{%t&+w=J}&u_Pl~gV1e{68Vem;!E$W%bZq!FT>)^N;FQXtAKNBe-{6WB< -z*YY~>T9;3SpXQ~US(MP4(i?a4#hodvDYpSvdl%^&@aO&*?%8!^or(Q-zAodsKz(g8 -z>L16>s(zJTtVdI6jK^AZpLhGZtz4ehLjF<(WWbo9_(mvSE-81&Y5mIAZO|$CVG}N( -z@6i1}UnAX-97A?66)zv(p)b&~HbSS6Wjxsg{N?IKlx+e{hh0He(ZFj$JtHOD3)SFo -zTO;|A4?B9)hWZ?Vy+sQiT6tG>L0mFYcttWdA<62Pn~c-_du)vwo -zBMEk(uALgXvkjlX7PM=p^4fu1ujRFKtH|Ce&_}g;)Q&-4pgfI1t;?t24x^j?Sb{r@ -zF8z`Ck=>zg%G%Ed_3WU34HvqmJCwXnfmWnyqbTFlr!=}=)Pb%;)OLd|d7pwVxo%Oe -z3A7x2$yKi;o7#7LnEe>^WkXs8B=sJlqbkrXv51>jwQ9CUi*4ih4MBr_SD7TPAB}F6R=&f$pNG%;uqFF_7s6`9dMT8PAPu>7)*WEMtz#rR-niE -zQJ(}qt~aTBGvzg^Hiz^^$m4`h;{wtgJ{RKL=YkwWpYKGg91>HNu-p6j- -zAtZkM9wGej3hadt-F;$>S1!-tdm-d!mC76O9>M!K-p}!Fnn-sSX|IIxX-=oPylx1> -zAqX+om&spDr1`!~rvCaA-mfQ?$ykeGeOD@P0sPO2bz#5{1AhPFIJ!qk^y>O6K7lG1 -z-F2ifRh3nhQ}qc{IcZ$1fJ~LNf8*Gzn!{ll135j|8qp)40OK7WPs!d;Z~i-$`^f%; -zeTX(+U?z&>&R7PbT1*BfeP!#1j6C)Iko+f8vzIRllWJm7V7H-dbC -z-3F|;fK#rHh2WVX;$(+H7NWnHWTW}P?QeEUdL7h`S+q}6THC8?cS)}*c9L0?wxxa4 -z?$)J0;$C=dGL6A}?q#@>$pZRXv6-=fcz5#C -zCiJRW4Vo9>j|{brQ}qrUM;X{aQ^0@B1`Y@tIM9g=9AM)@t-V!Qu(!S&d+odBJ_zw% -z!X~QEIkocv{mTQ~+5~g9i39q@10A@${w0^Ri31Ea(S$P@@{_b}nbV0)d?0=|R}Pz? -z{v9D~P8rA7V;uehFOBPm@ot)^wIA|jwkLQUdA;R|?7)udTv+pj2YBzxX0jAx46P|;+#gE;oqG5QyX64ey)^{=c@F)1lU1d=%NauC0SFwwbaKo!bn2T(X(>K&Ku)pVnqh{LrrF -zuGq|B(3t3AGk@vKW)2Q^vY8r`=k+)^^kSPiFqGTO8^Cec49aV5hUP2@ZNClnq8)eM -z>A+q_y4cIppzCTc!`#@*6Tt1rUhZ~dFAoWPS9`f#tOuO@6`K1r{)tWe2D1`<4t|N# -zoRp~XOCsTyFyu31KkH(_&!MOK%dKn~`QeYXk0oWpcpCX8OwZ<6<(a|FMJlQuaOMhIA}#g^RY?QHQC1w$mYl|i{Y|RTjF~x!CKl|H1k=8u+s@z -z+9*qNrIz+XTH4@E^;GSId|tvmf%O^jQGFIO?#j5%H4)&WwUKq8>uMt;Z%1>@gF^SN -zHd5loM(!5)BvUTgNQv-w;qRf(kKuG`U2M_T&zk2b*WG$0%26B8Ij=Zxe?;%c*NJ>D -z0R4Oh(V31i*k7n_E9qr*`du&juDWkmioLqBgs`e@ShsD*-Vy)ZF81;3{IM4IN9c>t -zSFxFL>`&1imD6t@u|_RVFp=#1Os*7bdhAnS|I5@OVcm+~Xl@{T!}x*wM9z5+;M|Y$ -zNLHRFW8IIvo;n$8emYOU8biC^b-}V5_vb?o)~$q0=dri*tyFFMHojVqZ!x5bI^)iF -zFi#uRo`!E41=p{v;b%A059*en{1Su(2n%ZB>et~sd=1`pd*bTX?1>AX6?tRb1ArgE -zIR)`T*}88LehaylBJTv^Cy<6bIuF7bqt!<8Xn9zGV*ySU!YuG80lk%YOTc5L;ISO= -zat)8;z&$Q_e1-T|DDT39bmhb+9eC-$OGB6jK1)Ee0Phm;DG+=tfGrw6M}T`o@Hve5 -zVU%~_o~hyUK5*X`d}TO4F#+_(;++5pbA|HJlC~w;llefZ$Prc!`qdcHHs@jz4gG5&DAeIfQ5Moe -z4?7N@it(Im8um=O=Q<-7bkI)+pEQJN;6wd_Y#Du{9=6Q+kX^&39emaRUL)%A0OAiQ -zd0IYB@F)P?0>Q(AxaAT&rl9;3lutmI0J_vSzQv3FQU9&raRTs(nsy#ppqnLl -zq$8ew2_BPBeiF)0KsW((k0bmF?{UPx5G9rc3Y`i}GVpel)_- -zpnDkMr+5z|{;A;cA>a>d+Ih?Y-8q8COvGnif=4XM$D(`;!WhtfA7L%t_YtoZJaz-# -zUDM7Z1$0vck0ivCF2Q3M$`3>NAqa*&Nn;UT2N!Jw|?ZDW9!T&xbjzJ6kVc$G3)X4(y9{ -znfkpSI!~u>0PS|V=h6O+zP4JDp&P!1gL^-;UX;UHXuZhq3Sh4h-x+$6?hLKMZ?Ea@ -z6P?#bh2ky^_9E$?Ulg6`V{eG=K+(F8_KW!Up0FQ8_mawF6V9OV?WUjaK1}D68@<>D -z!lUy~-hNn55=|;Y`$Kdt-5~Z-=zNscq?EQA{PlkOpHy)7KS_6?c)lo0`ch%Ybe3V? -z>rJddU!nV_&=r1rQcY*%SgY>Rr(R`M@7CZRNHxyT6LB_ck3^ilbAt6QKX=swru#Qo -z6C+*Vc#Axw@jQbj&mi)U#`F9%d45WsYh5!%`zibP^ICA`>)h@#=|nzTr?xwXb!Ty= -zG9wo4I)eHD*#dZRo`D*kfkGan@x0!eyxy!D-v{Mo8Or97o={gkm1lZIAD1Z4`GO{= -z9jc)nD)=Ie=MB{44OIFqwLR&A^F-T|J+y&iGwHWJG;Y!u*6D8} -z5_}KJ14?f^kpf;b!D~)&-0pMz#+99$J#nxxe2|2^c%78H9q1;|#6vXkP))qQCO%LT56dmXStH#MDU+YTdvs!b62?XBU6-E= -z8Mp1+%!%=+PdMt<9+x$7Z%y1s6E|q$zM8n7Cho6^2WsL$ns{$bJVX-@)x`U2;sZ7D -zFxc2*X!FnTs`q7-`!1!ju%+p+h3T*bHJk)^66`@Y)uQ^9s_&=TuETDp05=6?$0D4G -zkmjyA2x;CL3p<=r6W2`k3Hw&zQ1oNEqf-z2rFpJQ-T>L??Drqg{b6w@=TX3i9Ck`{ -zjuIW}OGzjPTj%ym^BHWt9yZU6Qm$hTgEbZc#Gs19~gILIQqIfqR4) -zPpdIz;`?m+6qag;ZvS?pGFIAfpSKQolp1kAsqr|gK5^XmmNH)Ga@*rQH1S|fd_b;b -zz#VS`-S0-|htM0LH$seGl7zNEJ=-Sf#y3p5Hcsug?QuD`J?^cE`)J|@P25)#_tV7v -zHSs`AJV+Dot%-+d;-Q*&e@%R#CLWf{dKcrqJM1bHVJO@8a?wGqByiFV?@g;U$GLsGSX`jy63zLuDP^a&!}!dmMr#@6~Q -zgz3OZ2Tqo;mDSbvq_M*`2fnTe?=bjGI2)pSaE-(8;!XnnMw9Nc)7^18AEdkMGzMI- -z+>Co}I&oJVK0WGNuhxNd1wGMtz-1hZ5aW}Bw~RQ+&-({L>f?}u#tp0uTI*&)))a(E -zkTnUirU+S~2U`NL&hW_z*9;#z -zx+pwyXhGD~;cTHfjhS=PSV2~1UY>bjca{fPC{*ziu1V11D?}2myJpmt<1S85y3UEX -zK%S929M~#HC2`h_6m8-nUNfpE)-dea_}kw(`18bBqh;&eS&hwgQ%?+fdT4szA0Lex -zwI%fIoE_e4KW%;U!*RpIEPt6b_rb)kYp?gdqUOto3MTja-6X#qwes9AMbWk+C4u99 -zi2qBsQ7;FtS@!)$>r20%+cxsGriiqh9mM0;560H*+LuyrJTJH4{Qj5jpZm+wVJ4Xz9 -zaNuW~SG~ON8~^VH{knI5jcMzaijt(#YhGOUw^`E-ZU4Oc-rZj=>ofiCkMF&I)7)|M -z$G3eKJR$PseOCrfOdEB|xcqoP&}F?(O@FlP&j-pczq7$!wEe!qe$}6}gpXPfcgxEs -z7iaBxyJ3WJ>*I}acLx@%4~c$p_=7VC$uDeq`VGqqlV5uH=8^jbT(|wUlYysx+Y{Qa -zd-9oIwq7>*c+%#OoiXvtzsVjO&=s95S$)$(eXQ%`pC=}N`R=j -z&zBFL|J_F;uQx~ja_jp`7d;bjbkFB6&U4ktg?H9GbbVUMT?Q;v_XOyqhn{@0spgkk -zEw^mRx#6W-pZPIoYq);q2ibq#@KHJ-fpKcW-HMv}RRM`GFk^Ht4^3AcVZ -z^(dD3Ok#D?@?lF>PD%{9{|AC!%t&tO6_EbX^z+Z$am$i(Pv3o6x1}M!)*VUs{FAUN -zQ>7PQTEb*VvJgI%7s-&-&I_N%?+{4YQM -zbneHqKe%KMw%+y2({E+Ga(eUD#_dhVo_+M=ghM|+w&}b3)_T2Tj@|v}h`lrV&bz(O -z`rPrOjpJT8Q?ll_zLvJa;+=aV*Z=kO=Z81^@X~#wvu?ffLcd3RN4zp<|FlDo9=~39 -zw{JvB#Qo1~>^Jz%)tw5D%xnM6C+6}>&m+Ic`*OzGQarmAO7<2s^$@cE?oEJ -z%zYQW8F}0q|8}HnxjmmwE#Dg3di2xlk{i!_m49TiaYxM8IZOZa*^{?5y?8DlW#}tD -z*s^GUQZNl=o5L4i%E}7QDZpnTF7ddGn*o8nf`WVZ3F#Z!um6C7gRq_9@>~KxJYw(= -zml96kXnHg$uCU~#(+7kbi~IjcLBf3~{>XRYPmwGgBn9+PM8da_8GhTvS~j)uXOn`) -zm=3#itfx_jOXcjTZclr2xW~YeI-;~*r@I0{_ru4&1|1zXt{C-tJns0+KpycK`Gmq} -zFCo*T@VV)!?oS(d)NdeXxn94)=do^&d+TT**r?Opi=g}0$BumV`Qd*MOOlRQlA#yk -z-6H535$BIWH~cBx(=wM2bg9gGFE07l#||qBAemmntCkN(-1B%e;L(6b10D@{G~m&I -zM*|)Wcr@VAfJXx!4R|!*(SSz-9u54bH4spYJ2!X&ioHb0_uT>0o(-kr@5J#C--+NM -z{-zoaY3qsd@tZ~-D(6lC#maV6KrwA!Q9k~TpC)9*9Q6F>(SSz-9u0Uj;L(6b10D@{ -zG~m&IM*|)Wcr@VAfJXx!4R|!*(SSz-9u0Uj;L(6b10D@{G~m&IM*|)Wcr@VAfJXx! -z4R|!*(SSz-9u0Uj;L(6b10D@{G~m&IM*|)Wcr@VAfJXx!4R|!*(SSz-9u0Uj;L(6b -z10D@{G~m&IM*|)Wcr@VAfJXxk4TK|h6W&#Ld*W5T1%L=1<@f)L;qRb2JsdXTYXHUV -z$y83l2Lz-+c=5;SrFnSo#rq`QXYt~zqS9Wx|G;|^?@xGj5|e^a(quB_m~+zdmYLEr -zvIJCME>xj{!ql`Z0!;MXXUcC+NiRyxU#KK4H0S5%F_U>|W+5{z%FEBpEnI|1zS)fb -zm*i&_B2+$vjS%c|fUK}(CKVen7^~HiOzZ{v7=p}p1mM4u{`jvHT9VT;^D@l&%)p8F -z%*+MHAeq(NM3~w5@3lO}yzmigHhLTzC$qgpD6=4qjaamR#TDkWDKa~dL}&&0@4_r- -zI*na#PFuicTYzC&T3Emq%IqiNxtIQX;V%4F9*+Nh=mo;`5$?4TeTLgAF|X`Jrb2T; -zA$ve7%rY-CvBxD8=mp#hf%vcPGAb1zO1;BNy)QADOI{^$(ch9#XI}OriFxx6gqv6< -z$5_D;{t5)PLxNl;_NAm_r#DJ4jw<}2B^|r4i~iq)zsrtV(6_}+RFREd>1jEpoTBVP -z_LNsl-4rcm|B>5 -zhdF^a-L#y%Y!mC7v%tKtFdJ0X$%PsDmL;yAQfJRm^B4P-N_!<^_{fRZkGyu3*B0O4 -zebO$e25(((U2xvt^;LmCNRQ}>vmEK-y!d# -zF2bMNL9{2JUCIYE*lGbU6(4SYLcqcF{Z%}>1Y8=Zz#j{E%vB0}O28TTV?p%L$5x5{ -z4*I|>o=^clf4;L8L&Pr#7^#@~VF^<5?45&_!;{J4OpW-0WZ7jU_N-x9DsTgm@Kz?%eoT)>ez -zO8$8P&k}G?AMnSUQLNR@cRQQ+zFI3@r147-G2Zkx|5COk7UV*O` -z@Lg9Z@XZ1)6!N7B_*wxM3HXXXEBI>#94W?+9RkiXDEWU^@dbQHz!wBPn}FwIvY|%@ -z1(Ccz2zucHK0RH@A1~ml+Z6a_0pEq0jh<`)Z@N{1?-y|1Kn30*-~jyLaC+Vma53zV -zo}+-l9{-f*TNn6e7uW~mp%%ZN3p~^Xj&Xs1U!NR>i}MFcDjwIr&XKzsCUr`t -z$zAa$(%?CDl)PvGc~~9ibes;?s{?fMS2{@MuGq!WkaOmQtyEWwcyUDv%&M2>R8+V^ -z10Hng4~xm{9R4Hw2P`dB-W -z5o0xlFpRj6p_DF>8LuV7haFSq9T%siq3Ik_rzv_$u{S9LG-IMrN~sB=}<~q;pi(}kn)_9gsPm2 -zQZ1cRNK7Y1Py#8!p>y6>QVUZ}MYJNPbkw)qkVoX>uU?@}e2s5fRK$l@EkJ~5BsDFx -zcUI~l2}FB6P3crRX~m=_i_SmGjYF<#+0(U#1?JosBZkk*A~UWSTfDOfr@moIpS -zD>M1<)cl+g1s3+~gHL4s^_wSt>OE!nfgOfJL94#l{*MoTo%_)T!>3+-;{Epr)NM-| -z_0|pV9$Oz3aKzzqg1(m=5(iPvo{p6Xsq49m<>^Dix)%%w`x#0L$!<+tQoqc-x -zO5^_wSvT-xw|7!^nL?zbput;q$6S8PRcrlX9(_15FW30qi0}LYh7L`tN{f4J%Z9b% -zVpn~*`}@+@b1!V#R`<`q(4{APJfj~RdXwMBiPsEWS^tr=e)xjKo$sxDG-jT0e#%eH -z1J2#{&DcABm=Sc_=4qSWT^44@G(3P!}(H%K>Fv}}xmUr7-uibU$eP6z{X6ouIo*Oo9;gsX&S~m2k`Sp8q -z@wfi(hQ76;_^sWK?oPTs@1fUgr(CN1znkB)-@`sN*@mNEe?L@i?R(*7?^pl2>DrTj -zd*!Vkr@egtn8NF)ePc*}?1|sAkCs^vAKbm@O8qTcBd=ZY;hp_ynK&%DXvfXZX1=KbnAfTuj1oL};?#z%O -zpw`{?_xt15yk0l=-gD2x=X}oR>3q)TocZOM;~%Fer78YKaAk5e@bFEQCP``>*RT0n -zQ&WB89o1&ih5wq(qC;u1_heGymwc?LS#fv6ilJ=7>)R!b^S3B7TA#d2`SX8Cs`>mg -z4>dK*S3J0Q`T3;b_2rF^*7IyEhrCGD^_2Z -zHJU-*V~=J+V%?HJefQtDe5k|2;cL!~^|LfupS;IV5KS2NzozDHU(H`GtG)N`=!fC; -zd1|Be#etIdMELAV`4X#?aqZ=*skx!Fy0m8At+yh9{(*QB@1F)&P0ixvL)06`TfDGR55(%r8%nyMz8Li9 -zze+#LxoT=|uDHc};|&$j(Ih2CnI0a^zvz3zmC-k;C$TOW3#lh(So-p1OQzpj>%VXM -zvb&ex|KPGEcQ2oQ|MG^Z_tmcOKXmuhCHLR^03Vi5tzCBSwB`3xwpgj=s06X7J80nQ -z*!vxtMQsK#0)@2En`}}4m;3e%i~99wrJz%F8<+ew#jaW0U*w9`$HOK5=1_j(CDO-} -zChgdQzwfza^%p{af4{!0vaI;!t4Pb^iuT>Xlf!&A$4q-I$xTXPdm<<1a7kTJ4Bm`* -z($w?^moJ;X)W2A+g^kNs+7!;Wb`-cC%t7cM$TBGgDcuM>Kqxz*1{sc}B_y18nl)HjU -z@HvoVQ75^(V(&8k@+V^_-`D3`RBw``{9%8CR&Dg@%QY8nsW_uzYP3<_hsUK6y4;`_p$RhIEZd4nkOf%{EBbr}Vho*;|s`+(E2Td7+H^@Eu -zcW%{BJI`5F=xyp+L;lrVOLol&y|+;7EIY&<7)}F!67X)hK}8;GD5c(#gLhH?@A#Hj -z?yxn}g!lU%`juA{D)SVD{-FHVk-wSz%~ypUdraUiId~X&-dkAOnKws8&aHa6W0$q& -z;NUB2e;kMJEwpr=wp!c*pWt%wvt+>st}-T)rEOCyWO -zyO_Lj91FhRTUgdf8=n%h{11lO2=3h$P0f^X -zlDcG^q};^u(QjpggT(@yjFrIT+;vrG>vR=f0^9;i9B#p -zaVgjZW@$T0A5qwI^Q^xT`a2JI6lY!Uk5`fR!I8kf1o%HnRU5&h`w-*zD73Mhe!M?E -z+7A;avA#^oAIi6aeD8fcSiJRopR&4~o~uJ;v2l3rqH)OTdhZj)LF$N(LsnOO9Hc)2 -zLt=jh=V|-3)aKVO?2qbVj9!oS$?D!(qQW--+tw0KxH(zv5c(*iKhMO*LGZeGc>m@_ -z$Lg>(%l&w4EG6F&=^ypYrM@-i`fOXlD0o-+*Y6OYi5`9(Zkro -zldu1Fa4d?C%4?ZpF2T31XbKw}i$GDxgj&Q&KRcq%5)+D!#<%g41Gw;bQQiaMMZAPQ{jIdsft^mVHxXR+11838E0#;}Mf4v$~$U)e|NyBK#!0^d@7vCdN;R;~4MThm$=K`jHVI -z*Z03Vuao|mydiZaeXo?U&xRJWy2`GL^1iey-{R>@Y@TqL#}j#MM``30i`ClVLh@f9X7ZD>8VMrSsexg>18eM@!fH;H{VT -z^kkt!OV<&RuUg5$59qtVC35Wu^ssB5+IYx178)(1p3=?_Zhys;OTCn-QPx1&j5Us? -z398<&RJ9Kr7cyPR=k8LTxxLh7WT`nd;JlXahpc+nE^E!ff+WveZ2h@4dNf_>%EV29 -zPP$HdN-RAkmYza-3h8OF^t4!d8tG}IXU5VqW9gZsXOf;1OV5d==a8PG=At;w_JqdH -z+@p04)L7`3mHs7xr)2b%783a{e55O_Kl@9qzbV%Se)K-FchHj6&p6SSF)Ko9X-D2z5%+RJG)7v3Ta1JOw^i#PUF^nS=T2)MSgQE>BVm3`1oUB&+nbjDMX) -zMV4FiV2#oPc_USIE6*;?;&t)e_D#<~-CwBzms1sO862!Gl6o@KsV%_LYVm}P7QIW? -znyb=DACU2#tU}{>FR^C#&${~QO+#Zkw#y4FFIvV1=UT`1Yt+>@(i4%gx;EB(#G2F9 -zH&R7vJgOc!Uu|p5UFZice`UeIa*HikrflAt>r}muay5C;JbhN(eUv%`{xYR|ms^Zr -z4KyKnz*Vv6ti!+)#YJXUp^1ykpuC@3bt8Dc0sPNn9LhS++=Cv8@yg&D>;AL%>!cZc -zvysP6-W0|tl`*oKdOB-@Cz7pzU-yLdxoW{#aHdi`5g)wb0+uvo^cbm03p8Z}e^BNL -zKX;2K{JpvxJ9l1jvuhkY>YBXAaoXx~cdjHq&u{ZwVo~)f?S?ap!R<@0IChQ%r$$;* -zsOu(Acr8|IiDv8X`&PT7lW)4xgB@1K!1pUX;cqpo(2vgC)Y;2e>ds$pvTKemJ=?ml -z*P{1iPgEhBed1L5u^L{pt&az1 -z>a+!4%-Lj7nXXio;pKY@-`nq1^#zReQQ)q0zPf3?X75`2h;`vni>>E&;9h4;yvhO& -zj$7?rHrn%P$!mM;dhkBl=(zl~P2bfa(vTcRn{p75m|x)nj-^e(9Rk>$d3L7RIcC^gVOQ -z4?iOTs{5{1;g8WDzsDZ^9eUvH(JJy*p^ChDr3#-y|2=R0%79-}JtdmnpI_9v$){=k -zI&z@IsZPDQka{MnQ=QyTptFu#?Fqkmr6=5r41KFmx8biM`JUhKYovm -z`!TZmYrxSrQ&m4CG!+|rk$-K;YOaiL0Q@A5eJW`yFaHHJk>b5WOZ8Tq9Gv+$a=qh~ -zuk7qLRPo8HRip!0bzsfaEd7?E)th>)<9m=H{fl}$XLMx=_S#iMQ{#IIc($Z_&bUUY -z>Q!lK$H}Wro%3QA^l%h;cgUKGOtW>t!#$QVwWG;u>Gxf|dK3KJm0PM#y#hbvCGEaW -zCAD1VDpmVSu2-j8;c+)OS;IHiW1a!yF*VRf9qx4SBxyHzb{aRRoyVbZNpEA?_%`s% -zyZ`LqjuK5fwFX((rD;7iJd0eM^7hINg;|~ro3)gnTcrf2!B^W_ROkdeuq(M~+smmh -zzpy#EWZTx%)i0c&Of4{!Xes?73-?iXztu4NB7LgJ^2{-y`9LzVl6>8K7hKe+@%@W~ -zI+bvpu -zUbE-SYT)$gYW8nS)y6MEJ0DroyWU!!+<8{?Id#2<%sy>R?vi%ivySYNcJ`B3XzusO -zS)swV;feQ<)2Fd9--I^bT7F~aDeL&ILw0QckvDa2q(1`pXVv?WHLa@%x<5(T&#WIl -zc!YXIkLG2oYT>IoXthQ&`pf9EAHH&ZsqHs4&`_T1i)W1Ks@g%_Vmk;A311E8p$_^l -zxZ2Ek7bs=&NtuWooo -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 -zt!Dd-tP@we -z=+{Nx&`Y96m?K{N4PCSg+rdRYdHPmjdtxz1vVNObkJw6!C@*X1r*DnM*GT;WkIYXBu7`$+PsmHP+)}~Z -z+^sfOIgO@mlhZxhoKqIvSH`u3>oG2;Q9}Ca7b;uSsl(W7z7eX}nBj@!rmOnZ;7;se -z@c|QKm6_Y3>KBtHvTh9TcGs#6iZr~FF^@LZ#oB0MEh>+(&NUu= -zcNb%qGV{?5?&Oppb&YZ*<4@31dYqc)9I#Gvep8(dq^lpaU{|(NPUZzNr*)H0+B8^C -z@@k&O0JdTO)j@~%a@D|`yyfdDurSk9wZOmq9)cej`1Y -zxqEKVe+97=SEx?4duGtsJuBG!eM_gYdv>t(`x^H-!8V(UeB)ZRQG8UHjD`5_&#k(F -z{>`JGW%Rccdj7vAt$uRAin{4fj`m&0L2Y36T%LQ0vyk=sa-seG$)VPK6=`=B$nk*9sQO;)-P|ixJ?l-?#2nPua_@Aj -z1tpiOA}h~EDbK_cJcqsekQ$hk%et0_XBV*m@;qB>b?AC?)mZ1R9MN@-Y+^#jb~O&d -z*GX!JepzX!3fm*bRD9XZFJGs|HD7O_6Iv&!Nap2=rkbm4MJhbb$-FH~v9|p04%=Vo -zF8oIeY!##}P~ovtv%|K$=Bi5Cu#Ka(wC1V+&xM*jX#Z<_1bZrI{Ea=bX9TelH)e-( -z=8tu;_8R%5vD3lBBKrSH5w}y1U~LY*c)-lopHpk(Z8FypHYP0 -z0(eW9JC@5_P*;)MvzE>Z`exigA110WYwZ!@I3kAA6ZV70K6t>O&xx|gCHcQ*`j7VI -z?Jhk>5dS%mPvYa>F@gAzNx(pSf=;}J@5?H@hS=T{m#VBE8S-6`;d1fpDl$U3T3UU9%&~Tl47pm?Zi?nH -zLgg*3o9dvm%1~Y?z&)_V8LH#Ef2+}1_hl7nxct;bj(*PFqw04wSkau&ep5L*?Hb|K*fGj83;fKTGlF^uN{>h%4SH_|G1;u>-p&qcsg@CmdLk4=jAP4eyjcyNdR -zDo>cT>;*Ncs%Rc^{vqN@-mnovc5blxjS;Hei99Y5xyifCiS=`XGrJil;v^#a*F0fa -zFNww-iVr|DWrnP+c#soEhyfEnr}$(=r*(WCoad{s&_S-29q2=M6GNUU^_HI*oH_K( -z67ccu1L8+~(22+&fnQ>}gl0r8T@T$v>(Am_W>?c+QTId9F_rp>hwwVF#g9-fTla)> -z@FQA?p%edw#@dv`=Hw~0(J%9S)~3W~@)gE-#b0^CGYz%CSLHGDMB~J=%-FG3OP1Y7 -zJ1e0bDNpQhw7l>RxYH?LM|tK2_Bvqk3w;TlJg%2@BiTPf7uh3`tgU`XQ4x+pQ3YW&~ft^r$y878LCYBoY`dqKfbks -z=gffUYk^JR5Z$0_nO;Bj)P4Q-u#0EbsssM5X)fPGQg^1;2kaG;5%>#cNAVzX{~-Er -zCA3yyCmzeDicKGhHa0M`=sS*stl#-*U*Hp&R+%fYHlA<|v?IJ?W9`IKL(Ct3QKzN{ -z--I57Mm#ktEc2yO((_0^Li&HsRU6A`L)Wsr<>0HFZ#)Of!5`_-XV%@MeLsERn_c`( -zK5z{k*DnDVKH$jG3~${Afg!Dawb&K(6F+0M@5`+DAa7+1rC(Bq)a6DF<^u1m^tFyJ -z6GJ;h16ihCki0&#y|G>&xRElsSxNOB^v@4oTn7B`?jYo2(sV@dkyr8H92`sO&WbwI -zm$hga@du2(?}|!%%f##em*6ZwT@Ny@xms2L8B<+A-z)OaQ$|v~_;h{LrAlYwgCL$4 -z{0J?MqMa^VQo4+P8)YP}%Ecw)Sxp(UeQ+ve>M28iz*VN*S0y&$rR@T2^r-$Y^&k2} -z?xH`qC(3)#B?f76U9yFKB1+ejGn|+<~!N?!c&X -z7Z~?|n>dWMjArboJC^_%TbzqDhHncQRgf6K7? -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 -z+W2Ma6S1 -zgVkPbLhxo}ci>dboON7HT1sFG{gQl(x!a-5rgPSMo##qJ?VnHnTgZPDUOxeC$(}bE -zf019u=$DMu_V;V%?B~k0qz4|L%_N&=Wqx}3N(*#+g7?9QwY~%1T)?yJ{T2JL7oCj# -zSl`X~wvjG$EPNp2Jr_Rsh}ag{mm&M*&sy1^L*MWN+b!U=^YEaFv+sc~8|k7mUc&b5 -zxT@75>s7tTG?8C%ouwz}EQx&OD22_eA$3)+aja=fmo|GNHcSj|OKd@_bf2maX~r=$@5Qd&vG1FTPVx;}l{CDzp^) -zRL$mo=^Sed;8=I=-K4YcU+nA}O{*7KVkEI&aRUB3zk9&o?jnZYn4nnG<}3p8rBEhF -znH2J+@;&IEI)L9I93Y>ad`GS9*Jt0pOVbt@&Dml7C-%r;4s@|SZKX%6e^YO4w -zIh}G+cgfwVo`vXYVpZyKhMH^aJ-``<$qNlh8)CEMQg1Hxi`^CfE -z{EY&G0Zv>k#FJ1)>Mw+*63R80geHAWDS1H -z_Vf5;zmH}!@d;0#$EV=O?Jv9lp8>{E`fO*95OzVA9ek#cug*VZK=5A)UTh{ljUK^g -z;rnWVJ%&%|bJG{1Hd)->{F{#kvtK37lz1?2fHCs3p3|k-?2^}%8PNHD;Qyrc^+bDg -zEVj#R;QKB*HfM5n=&!k-w^7rFWM87($r(nsjUNrkoepdSKeD@V3yW=rq>&GbK%)@g44%k9>I^S@Z&DPl!BnI#l%woR=Wa -zyV3uAYY3Fu-GLT+*9%V10O|du>@|F0OZ3?(&(2aaT{F|8&xi4`zu+u0(|61Bmgw^q -zGku01_>CtDWnSNumeltD#e3*TQFF0?C)-TUnqR(5*^e;y1H`Alf -zwPt#Gw0<)^`s_5*E28zA>CxxI=!O@ZmC^d;c}w(pi<$0?)^DaqpKHzZo1^uc>CtDW -znLa;SznLC=KFk`~3(i}j^~>{?=<^mc{nlvxW_t9wmS=BXbJb0ZpUAiep}qOgle!hY2YyjhTtl8ck&Wn;5;U>+|Us$xs(ZsxT73)Av)^X+@ -zwkE5pf6R8n%0PP)CUH~2G0?>%V8gHEo5WfnezI#T -zE?htCvtH}2BfVl+y7+5;5gB~Cofrp&-SLKHeBj_!&p4zHvL(KC*| -z(}Trr#D}@4N9+yt?qGEb<05{0Y4fYJ`6RqLi~h=7j#!Q=69({^Wi+UKIDzW -zc1d}mGaWiJW4!3Q=wnZ*i!~$S>$I#M@uyxTb&!{}8dJu|{304pXY;@oINsqlC3m$q3ZT_y8kSsV2O -zkHnc7#8$}sOkmwYAH-&Fp`AtCIm0$naPbg%_YjBiB~4;jvH}&1cYrc=v?(;mI$X6M -zKaHPuE!-EM$CE91X8I@Kh_YGq*^HT^|0b+Oz)C;k?MeS%r2m||WX1#*lokZ{5dRw= -z?-u$I=h>t&M41jnLNAe>nd!{3u#Mq)o#8=X(Oxa-+(I`TaxANwyAJ8-y|lX -z+rrvtEIxts$fd?c*5Y5X*aOdB6?9;S+UtP14t&>u?@I7p2fpjz>q_`K-~dmlYrXx* -z7||b<#I4nU>zknqKm1{b#>5U=O%~|&&}AV!8Jo?tsWYqLJ-YHnG?b%#pM!1{R3iSM3(+wbf^wHxN>)X -z$Sc0N-Nm7sNnht26`Ifcw!>3Hw{U;0C^K{`_Y=EEghU5%rq6bL|I|?5;NW`K59Wp{ -zDO0(iFw`?RcrxI;E_96ab)h*SVr))s3tbg@jr(gwMN-Gf6VA&*C-J5IfafBM3MpcB -zR9Z$T@8kCFynN33IosYny^Q_W=i0lcEmomlaG$zbg2C=Z!fE8AJU_FfNlG_P+@4D_V}i$N1|y{ELyb852l8` -zO*>|u+QQJ(e9dfkN|_c4l3uu23)OLVuhv2p++ABW*1+4lU%J-%D;al*Q3UtVGa0Sg -z{^2ol(X&4_;+t7_WL)0K{r}CltdEV$`eEa;{k^}gfIW( -zC-Bn$cVmWpm$O>Mmo70gZz2=_x8pYE&*S!|=e1FvW863o{KE5mW9QJpV;z$&kc)rj -zu|I`e%#g9lG-F?)ycIncd5~D{PnL&rcJ+|{`of>b=}*s7#035^_1FH1f99<}xy|AD -z9CGjvv^$pkdEEZ=yvE%154Jll(qB=VKEnQzgt^wAb=RLlcje1C#cjf2dg~L$<;g#f -z%b%WquJ}CTGGy;f`SaNP>Bq(`WAiEY-bH*fG(JCLFVX*0rm?n#?tfJvQfE|2gKo`(kt6eV3Z^nsZ|O -zN2cE@!GC1-A?Bxu&c`qIQDQer}49&KeZ{ -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 -zi|{BkCiL?P`~_v@Y0mrve!cOU(Ep*%xSeA1 -zCNjv!?`Ml_>c$om`$PEC2W=PJ#GXLvjenQloRRNxmpzuU|KT|=vWVEPJ^#BQ2EUA@qi4qfeu>6RQ*w_qz-kq@I)ShtrR5S>D7=c!}hu$TSu1u^*$ -z)ib)gjo-z|H8@LvF=-w4Z8hI?(tb+21u-1?;7?=!n2_9cY+nC!QJdGdihjh(i!3@! -zd->@33uMGoQ8^%Oi=3#Ve$!rnSFsnngs;~*yB+r;Yf`LJY@DTTUy8gD`|Kf&2>5HU -z1)w+IwJIFNxzY7o@L!2sWlw8QA>}#axTmR7hK?Sj?{yu&UrJcb3D|m -zLA#20#!Kp&7q2m4m;DtNjM0A#*~u2#5;+|oSCP*$wj!$&<#hAa*g(*yz}a5Ho>lCU -z_6+vUA_K;xa6WLJ3TG=7nV_q1!*msSXbI=_2>o!5hAH=nVG?~W&oZBpxr)qZWPT#^ -z5}A_-y<9N2VXTD?hU*N;_ity}f511<7e4d_K9YNK}p)XR+`3W{j*HY*x!2TrmvMzXO -zE_wqzaJI1>`I+&2Okds1e94B+s^qtSA2)2ly}-fVJo`)R>1~4tk0dVojx=b**#id`wOwBj?0rs-bJ|1tSV_^dx$ -z729(PWFNTO -z=g;F+_bx>)tpkr@PYQnJJ&xbj7=DA6C{F7pr@8!boU%t;=1;QUTjXDS{#3zl8-LpT -z$v&KC`Hix;9Lj?BFDX;kB*@e?pDt5dW8=FbjrkYlIbzoa8^qAt%ze)n -z$PRw9EDpze>`U}RFD2NW*I;*c!tbtB&h_EkULEuhXe^oD;P -z`zDe1R?=nvf_c7CA-=3qcTnmSSY%H^+@@VpRve27cXYkQ`DNnw6T3BLvj)Uwy_9|F -zq(36JWbal7ciFpzZEDJuxNa7CvWvc4&`*9hF5b^D-*N_TIB+mSEw~`hjYBr?_Tl9# -zhV(|~r+nMWHv<{yuOBSN=fZg}4$gb|B0i*>@Fm@dPw57HOY`_mhBAJC$zsN&9UL{m -zF8nF`*5tVxotzqbmcH7gucXb3rTIt`f3oD0J$h26fV4Brt3E8dE+}Uj%q6{*v{~FQ -zCC|S?9+Bz4#;+o_j_5R*XX&x|jf-+V>X$uw9n>Rx^!lj(4E&NW&*)>JS!t`4e6lxB -z-bZtnxunc%e%^p)tYxV{p;5qQL|HNb_?Z7=jK -z=jm->A95#fOB%LRHTwii8k0WRbWh|MHegVj;H}i`L7UF+pIZ&LjX5>^5VSF$u46u3 -z!L!V##a?8sqrQ**7JD3q{V4qw`{F43rCbwj_Db+(zH?7XuUx6;F^A;rGLii{=i19W -zyjlC&%FA+YSb3PU34U{IaONiHP2jBM-ADfmNUODE_sBVKqPsbV)I3`+em0umLU@@u -zy4%OxyqSF~)$}RR&rUyk;=fxizZ07H``2TXCD;`I{cG?+-q{l-N6$}`yfOzUi2eRE -z`%GSp`u64gqoMQGG9uTJ;J%}pXYa)x6+RM7PCcU9qshfhvC1=I*)mU`*ZwG -z^O*m|?=(w);=jRKhaYSmw)_^_7k~Vv&Ki@mY2)h|*^E^$`-WQ4GcTcML~r)7_c{le -znrqDpjJ^6P#~RMAlzmmJ%VzfUvR<&3HSkLI4<5n?BYSOR@1Q3(uDy)wBF0t9Zsj*6 -zUbKw$W>J2%C9CH!WmmBF&`Nn-_8(GS_UDORCp6I-D@*)9X73l+Gbj9v&CpvW^v9X) -z?6aRYLKSnyLckC1TY$%`OU}!ru6R9h7^Gk2oIUg=Ht}kU^^)z!%f#E3J;2gOsaw%E -z*)WhC7cME>4K&*~I^7U5AS>qR<*R?CQ_Q9OlTn8wZJ7cGFm$i>QtbN4K -zDXhg-0KevXrks6`57IoZCy~!Cwf-eOC|UPOIyIZA -zuZ31+4`MzzYPD6keEcq`(kwkK5bvCgZriUMEs3ez}P{5x>?8Si1nwIaqNioC%(?ojZEmw;OsT{WREFZ4di9~e8!8% -zGmh7IUKz7i;R|S){Y`G!Cqtep;Zynj207ndXjRtnM2-SGXPS)dqRmK2X+eK8?Ryw2 -zIg?DvJJpz=>>F0B`6=!NTpeRo_`mqRh(4KXN^+MqCHf|`)WKb73En!tj)sr@qIEPM -zZ5gGWxqhY3j`u^_&{&HvDUYsec?7rMSdZbjTiT+HR_=rI)PA!ap5yCv8vQq7H0y?D -zYoJ*lZKt3w*Rc*F>vXbqEj-vvKdHmCW#aA2J)TyH9u?cOR^WV!^Ge`1o1wx6b+`?F -z2W=`oLe9;wPX*rkiOUW_i_8;VchyhKkl$)Kezgj%#gF^EpL4hP&9P(H04{zPNBp^x -zPs&NWK|lG9vw#0_`hLHE=^XLRoV@zmj{V5aL3C}Ah5d<^(E-=kHU}~})UMh3Uj`=G -zn=11#v0Y`JC3P83an1>SWo;4r%M;-Y;bQ#E_2uA&wAbV99J8jlZ{_TwPiu>_bV72r -z#o~mv;`Oi7?A{a|*sXTAX*V$E7F!~2LkMh#1#jc97m`)cA)f8TXapK3W{3^wNx-wf -zYEM^TJ2uA!u@d|qP6}m~;-6ydGE(q!O(kzCu^g$ya-`1Z{^E#Ene(R3MK&hHaEKja -z$97SIm%p>PWIoS2OC&zFDn?f(JwdxdPeNDV$)sH)fu^=3&~BWjbkf||I6@!NPaT>- -zM%5p}4w7}>I6X=G@~+Wd0dy?w6~x-Rl&m;^Mk}%cKHlLoWrf!7p*?ty7=a6AK>XbI -zczcrPko>+3as~R$Fymz&iT=inoW+{2%C=038*{9P=Gr^qCp;%WBRce8$P5M$6<=Niz7G1ypFFmT9%Pm(x;r;xEa -zaRyIG8uHaV*R|oXs@?2={SkTUh!gT{7#pf!4*n+nvp@7$Rls8B3}Ab|@a)>35PM)@ -zT?GAU&styAR#!OSzed(}^d3pGjg>U_fd3ZOwMlCue;Y9I95lwSkHSQJgTSN{-|#f| -zTIBs=bgRTBv;&9E`21>;igY2*eBe%E2|V0o%ofFHq#!1HdSf)w5u*`*0*xffop_9r -z^g+g7Vw2p^eWAvFa(JZ(eP -zi9Q4$<~n^VZ5nf%!>)gM;6M+TE9(=sf-|!B;V0=5Fmo%ea)+eU$y$>Iv -zg*xO}?8?fPHplUMSbIX}bYN${L*4t5Q|-CzlP}=?1nr+nPP3QrJ8vDVnV$s45hK#= -zZxHuV!22osapi~+_Q7VpWAp!xz8**#X=i?A{)Wcy!N=*OG4^(grM?3n<$K`l!4aAE -zmn=#31-zdIuiqJwWyd#F-+}&oAKd?V#8~^Fh2IzB{R775*CVp+xz;>0*5gCQFft;? -zUNX{St|JdH&W@4e>@{|e`FlVSXyKZX4tvcQz6;$aJM2wPkGZav3(u|NJXd*_b)giC -zng#7<^y2sRL!06=a+z^IdcQVVRe$F1PhY7Tj~6QZo~ia@n%&+%T{RxNS~c1&DfTHA -z-e>cEE#Fm&{g~ptg!g%>F~IkA^8JgvdsXA}yuT{%xAMMFHTLtKV&(mI-oL6E3#}>k -z{uyIkca1X|wl)+s?Awy?ZQQVLtYe%nmo@Ag -z>l^34r4ReYy2tr%sl&eE-#q_~^ZhP>h2Nk%|1EjgH-49HMr6?JLq6~y0sd{k|1;$G -z3-sxEWY%$TAbvKnnXqL}A;+qxH7sp-oO8_oPvdcnA&@jE>L&|MN4&^3s -zJ_P4k*0`{l_-*0ByymL;(8f0BoRIL$u_n!R3-7PFW`~3q2S+N-({HYNhcl{=bET6< -zeh*;;m*ijX-0Mgop5z`SdetU#jEtG2|0w^U<3s#P_^>h}@a#X{QQxqFGcuOILr*^1 -zbl@lc<#Ybizr5iZ&QX~(`8SROm%Z#*VVPuq4_o~S%NYBK^69~|nwoniSE9;2k27`{8px|cFdv=dGz^3`Yd(7%s7lCErLI6^j8}j{?Rhp+r-(6 -zJ+%EGXKBcJi}D-rvTiN1YL?aF&B{CI*ltO)=f0j}?BM<2`cTC+!LdrswI!*!C)8-~iAO98M<=O9@oR1d#-Gb?@sLlim=Q!T -znRen@=6vT^cN0CrnD5&*?ix9(V&7}y=7xwfu0MutcZ{{p!@%FqIz`Rps=kf0OwINw -z*NYrQ=NH4165EGdR`o~mlNInRviW=Dk#gUleII*urG4~&2-y=c3a}G2)yVp3qomtN -zuaopxnw#?fPPyLlD}n}Rl#xEy!PrZF&hyAFnDsCj>s9v`o372mK@T5P1^RtkpA0vKGNPwj>OM$)SxHblN4&3 -z%)Fp9w;{KMYd2T2*5JYyCv&shURz`CNx8-}<_>VF%*I@uD~&6ME03#yYX;XGE)Q2Z -z*KJ&Pa4q8UaXrA*z}3vv%C(;ByIh;OI=HrT?d00U)y=h!>(_E+HRc}T>g77gHNd6D -z0s~hXR}NPmR{_@yt~p#Du5zy1xbEOu#N`{?D72^R^u?1M7JEzYTV17m9oOaF5k1#Z -z&e@3nW|)cBn0?lA*c^c(+LwmDTV?`3r*qG+~c;5Ad_gvmn65c2Co|f>Ao~+1B -zct>YevlYdjM$-o^ -z{Xyqe%t?4h@0N1rq@MrS>*cN6-_^BU?_!Jo(DgT-4V9{;%9gZ!*;IJo`DD+Al9cnm -z!~8mnf-gP{J&6w9_TZx%j$2cEMxlRCOje;Zbb{yy*7f&`?tMv1>GyC(*?#nEJ$!li -z&iaOY>O691QA7UO@&jcLcRf?4^tELV8_$$IyXb&(f@g!1G$(0J(wt}SAT1}ORB7&X -zOS-q{vi*+z(C&Wp?jNl__+UT!_>Wc}vTHwj`qYPmf1Lgrs__M6o!B`&%#Tv^l%U9# -z}MNM)|QS2bG5Zho9`F`unjE=_SzVHA4Jm2^6Jcl{^oL$#mZLhQT -z+VjCPX(HZVmj7NcP!c;@V=@Qry}F=&!`V5*PQ$ -zxV03Ei(=;V$BwuailcD=O8Ru4v -z_9-4Ohgj~gh2X3uMu=70A_`PX@s48J**}NRO_aSYnChmOV{|sH<=cquOi799AYdZI -z&SP;7X7|U>N|(StRE2oIw)nJ&Q~y{TTlhdCKJDQ(iHJ{2{gqsTk2~u2M;~$K -zo}U!_iEvGd7{!A818(~7V@g`7pTN<-f}`Xm#38oMd$Z%bPKl^fig>BCR`s9Hl<*io -z>~$qPa2LKvCHYv-kuLCLoz0?oot9Er_?lCHb&w+z?^%MjRT!JZ8ar9w&*&%BX}~wj -zC+c|&_bhRj(}cLoVvI)|!=#I;Ec($3UDdvjNI@F>WpFbCPkeabo>EAL~^KV4aV%fLh((%xJCHJ&k05{*M^J -zuREIM+9m?#h7RXvQgCiU3V0Lp3%DT0ugRNHkiYNF?#zxqP)?T-TW-V}UN=6r96YDL -zZdzQ{g>iwd`fRl{GUx>)Ui_2axw$C0mk^85@2 -z7wP<0MNX#6=;KAKb;wqOylrbS@8{w*Ws4xsK196s4rQQT6A?3eE%deyWssii$CZg{ -zgB<0PpdU|Qodi8IcFx?B3v@YUxhS_l7g*L4ZJmdGg4V5-sAob5cv#=+H8~t-pm%Z5 -zM{*fQ8T<*#!4LJE(+Z*Amqh+*vZv)>tr5g7@FU-Vd=tSyYS7)yEZ6?wQC@}d(|3$( -zBB`2auoYJl#!otW49*YaaK?uo<1fJY;geNebiWtYck?!~Vf<$S3mSiRqDmNlBE}!hItt?t!1!}?*=0Ci -zMvc?&S6bRE9zX-%^B(PC!%o=!{ztv!WypRx8E`RGhkt&=4kf;8FHwBeSt -z7-=s`yIImyAALjB23yjHkS2bs^|qvIk(N-pyCuB@X`)l@nNj8bz=s5+#lQ!NqgbYj -zhhOCf!r8S3-3K`HOT|>H;XAD}fp_6vg?m~T9mX8%cOt$gzI!C${JPf}W(UdPtH71f -zutj`?GeO9%eF6C_`{*p^Ls4AGJ2*4uXXK@N$Udv9#Mv#oamGB(nFxivvBiHsMEn}E -zhT^}gk>8dNaVZtOk#CbVPCVr!nS{8TCbDsoOv(kX(mCOKRd-9AcpZLKkV!hoVm-!- -zwX!82co^j?5b}kY?ei5PAK5rR9Mbu^QLv8q`yOK31WR1*oSG<*N|q|H*pj`&w_*Q;2%>s3!-!Z3bu?-*Oa5 -zj6>rl>``6Lx~k7Y)-3^SlLEe3gKtnK_<(xuA^8Vb*y^Wq1Zezv^b`9V8#ZA)$-o`r -zODQOa_}M~Vijc>k3x6zctH?DusppY3o31hG2DDkox~TU6u9awWQ{dNYUcorXm#7A9 -z8qwy{U?YaFJ;4Wd_EjIDZ8h4yhVLSsQ0^ntk&im49Kj<0Pq1)Ft_#Mw2xy<`p*r$$ -z20;od6ZA^zhZy^x#H=gC2*o?KoDGnV`e@9l*aK=0+bXnA_$fu1B$Tni=+AQ?6Xr6% -z4RZH^jV~iG99&jG-Cw;vDfD -z;6^@hBpb4q=nLOwR%hcZK8ydKmno0Zc$Z^+b`X4#-u;0y1n>bhisDN9U&5IUm^&?K -zk7$74MY_0so5V-_^OzDf={!AgmITI3x5lmwm^0-dAAaFD#Ur;+ow7NHm5LrzlDva9dp>Q?48Ptk)YY8yy1T^+OXgE -zppN8F?2Q2Lmt)O^xY(U!fQ3T4sUCL3YK1neeq?z>eTA;iz;oEwLTB^Iv5#*L>)uK> -zCB^v(Wm|Cm9%96n(|K|3+JgEH)Ojt0$-;R64cF(enZ$$XoV}5!d)AX)aSiJoIr5Dx -zFRDL?b$bmX*SkQ*v;p@yi30vYZi1{FdOE27{WAZ|3y{r19^e}N@|erTIG6k@Mzb}( -z{KNWfx96VpgiST`^!xQQ?#?~wrJGS!!+8mQ*_TDmkn7HvPU?e$=>wD-4tYDYd~*Hb -zm*%c=(oHVwV4U)I!DL;@z$u3(4Lr*@>%~Y*QSKbZS*pt$I32cIs-uSU&?iEV -zy^irx`WN9>WTJi0@{3swbr=WfRN=tm)bj9p(mQCpbPi3Sg2{5bo!o$RYr5j1XT!+T -zQ|sMt%NqQ#C!+xE^hKF|D0?1th$NhW^n-X@q&vi)?os~*;BgVU+8)3`3Y+pCpd-QK -zLyYSd;4!RxTm31(!%J6MmUVh#{p)~-w{B+H9?n~U#}&}VWn2W0%Yf@wC^sGOh%cW~ -z{~_Svtea9+!8t#K#}r-8!0Ctc26iwWkHKSxZt}oVUFkrogM9yN@Srro<1*lK9CeQ@ -z?~Cyn8syEZ8{|$*qrBO(VFaGprzy{Ij8`F%8^SqFIVW*9Sad=+nHzY{0oWU+>ZT4X -z))nLIA9uZb<*RGI0rPj9LJ5cdQN!h=}g2I+<8aS`0kixj3f -zjO`%o5b5Q)^+9vzt`g~T%W4?WL%8MY3I|R)Tr#kNad-@FlL5~>;1bnwmT`OtH%b%S -z=p4!ssCydjWxx{`zzz1&Mi;;>xjd{s6m%ShZ^J71$MqhhG4{bXXcc@hI8C2wvI8>a -z$|20{${_^br1H)6`S59<09&#G>FDd?k^<}pl>#n(v4>M3Rv02q^bx*yh(PQ9cf}<) -zu{P2`?++R_uYQt5WLO0IV4lR$uo1tc-}ZcMkzdlHD!)a5dj;d7PXSF18=F`5C3M|k -zV|$iWFz)(%;4ytCAy`d@jsDBilj|1($G(7$@BDsp`=YKJ-*$Xo)?WB~$My|qBNufa -zU_>&<+T`{Ho*Uj4)ymp`!uX}|6BA!v+!1Jkl -zx4cd17QmZ)KFNpU_Q)9cS?{lX2WLHi$7T?JB^qx7pC-OY{F3eoZ>zq;J|XadfDfwu -z+CHonaNHd{BK>rq`aZxhxvo!HAK)wTVrn1!xlw`kuK&@o{TOKG2Ku1@4Eu2IN8ABJ -zvTM=WHpHEYN+jDB&IFXciSrwAug7_RF7G6_3*ST5DJ|ba+PYHg@Z&ccyH}^-S031< -zT8utM1b(q5f^!nqMk1`m6jQ0n$y`ISDm>dy&V9f%CP5%)2gV6?H^)UYz$WMLVh0y-qw -z2Wj0v_8YQQSaiq(&>5)EX3HRgXY`t8U$$v$M{!u*rI>kl6Yf}h-qN22_m -zW;x&|4`dW_!0#sJoOFX=)C+ukIEPQp`Av}=b9j8sX3XJvGM*`&ensCxUFDd_)JL{2q_N -zgzQTHu;vTGnbCij4|W_z>leBCjEKjj|WVMZ#r80wgG*!9|PeN^=+Z8Z&Idlg$wu)=b)}Y-!wJdR;bZd*GFw>0e|9??x@SgBmb(+n`qNXfXBgy@St&} -zX&;B%O@ZefU$f#ilYSrH-20+_8~pw@|3&PdM}86HmK^encocAUGt+m7#YY%tc4?Tk -z(*zs03zMFR{-{_c8SAnLvPscCG1zHWs92|J{PZEaXXDrYdkOic -ziy2nNfS;D*Y`b}|6E%xG)DrQbHCN$lsZx1#(c%0eHOm;H1F#o6qK4Mn24=oL{3*qc -z?MImie;#Ju1amgppmzW6j3-GT_$$US6@8V%e$8;v-*qg|Gb#WyW=EXTBfD@!!Ok8;z`lAIwR4 -zzW;3FIM#=+XMJ)1qHzrC#aD5zd=|?h{gM&3G~SE#;1A)M0%iFAbBtFRDL9FXVIN+d>_U -zM`B`)*D^Kj9|>o@p&rN~J?q57*Q~v@AHD~1GQKsFY1gApJ?qZHx4iub*?r-sJ%4Pd -z`AAHhaVEypYJIkfo&jca(VhqA!6!R+i(HClp*Sy(%Dj#HWb6G~xYt|n-=ycV?vZcc -z_ap1G)%48WKk_yF-UNQ?IWb>?ekXe{kyUsGdqLy^{2p-}YRm=f=nPjK)0GcJ|DR>L -z@Dj#9a?x0o`5J8Ci6R%CbzmYFj}0*I^NKeHGoATC7|%w=7t68kk+0(UjTbcy`?7}_ -z0~jBE7iiIk@ljWf9boMmEPW?Mue?H}7Cv_y$hSH)CJvn}A6OV2^lo>h|GOCd3>C7|aK*fs;qBzB%)4*jwHEyr@yhIaD8I9je=U -zY1;R&iq;JmJF+eXfp()b#)=HI4-SE(1N7qT-A(!1cwT -z3sclkfv%c?lSEg|(M)@7RJ^g75%bNU-Pb@@wNb;22hbley$6ogX@(nfFurEcjw>tY -zKhh)^TY?gdy@2Opq?-Y&k2HzKX3z-EljWNMmuAq1@D8y5NRwnF*m+WZ;Bhm?|B)uy -z*xW_at{A5=z66@{=DbmFic#^;7-JdIK7i#%npC4g7i)YGX+O>n=@CXnd7QBX>F!*2 -zUKTUdSleTy(F65{q92EVhbFEwzgX0nZ^2n=gILCR6MO$Va}1x$F#LD;y%|kB)q%eW -zdhCi{xd`{bg&u=g<4wTYfpgEB)eT&!!2e|;R^SuE -zL9YWjmJbLJ8OH;LS6@yvrn6#xKj7DlzT9IO{sH3ve&;6eo{^ZVtDxss(U;q-3qKus -z2C)vtKFHI?`hhPn{4uoOggSZ*ax@;}MEpg}g4CfiF?KT>XXHax -zlrnz&Ho#GgaqK|ff0Jq2D@4*(T^M{6CpuTVELol*8~QSA=?>K#9@EmlNV12Hxn`H#O -zKPuCQY1i79fjkh(gyOk#ceGJv -zuUh4oP`5vxi@GBJY(aKD%nzC+UT5q7)#yZw-`XGWF5+?YPF?rniThg%zd`ZF*c(w^F+S}jYye#j0xf>WdGhfXOBU8c+r~wi^Q`ylaGxda -z9=Vx*neOVf^y}guxdp$gMSkG(Qa)DBM1C?3a*-pt2sEpgRv0h&(AXTIBY8kBSojy| -zP+8z{SHZhsC*U)|lkn}1-;X~13w(p#ujBk9H;oH0hb__=&wG&0$bnDE`SalMv5Xvb -z$-!S3ekf%9P0TyTxr2ww_y9)4i@;yYa1ULbU+2VNP6N!Li(-s7-3d-|)T7`x<1EM8 -zaed8w!H2ehMz?SZ%y)#j4fVknjPHW_K5_Do+>W_A20n8Eb9Iw(=WC@* -zGkD@V;JLMkfz*I!3FxCc@k8Vd0UgzHV!$xOyaw(4f_cCqlD`d{bzq$M<&YcY;E%1~ -z|4NYuzYBAfU@fyAWwh4&E!37%_s9?E*ZOQX-Anx=>*?2xiM+5!Y}`QiT-V4C@f!l1 -zrnW!9eS-CVJMOjC`;T$I#CqQZ8d;0SCAF+y{cdKwef$h?I;Z#Q!`Q6#`-6Un%$`(6w0b&%A!2mbImun|x` -zE!JaF_+y`QhVI=T{-NceW-;taNw9m8KLmY$M;@6N??PO$b|c$6;*&9mPj)CyDF5i4 -z?Kx!GV`Xg5w~*F{ -zv|gk&AFUB-t=NqDPr{ssYIDpfVK1(9(G{3eS^cqT2+H_O4hc;||>8gy&aDc|aDO2==+R;g*sA6X}lq$l(Go+Ekv -z=eSbcdHv5)enz~Mmt~~lc@mx{@ujI!zF)>jekpWbRnJsj^*OFoSAO(7%<)>bI`n6E -zp7!=rERC{wcb;e>&TQEqVOuj3Tx{#;yRd`hh`d{y4sg{0jJH9AbH;OUu4r?wWC3SY -zfJ1XHnX$Q73euju3Utxj%f*O2U(j`Z_+~xgCZl{d>?REO82P!-Z!_v6noGi(J1M3| -zwG6iQuVXbU!?2$i`d$*?oTTrDn4{(T`iTLWr0?(@hw7o2W3{63X4w57+y4{;{Dw`S -z8a9FIzdPIX8T9>cZ4J^D8EL5dp`9U!>vU`Ud#(gO6vvD7q?b(=v-;|i(#y~N1 -z6zjMlp}0?FgBvUHJPf}{`+7F!QeOOq2Y5Cf#C^}M%A!ef?&v|}pVT$5DEyp9;|F;D -zGOn9lgNqvR+cwncXd~W-t@CJ1M|v8r%@Q99d_ -zE=}Vs=>SXmcAAqVea=nDPvwRD0WLyXiSimMe@@n@L46Y$&XQhdNjEW0mUOlyt>F|x -zx~Jm#Ix)*u_f3ti^JhI;55Rv_JU_UR1D=rWrUN=0@gUfv>forv-Ci$k&>~bXv13J7??i{6ceY9nmhWBV72eLBmC$sb!$uZ$P`taes7+ -zi^&}^l~?2!oBQaB%?igkTj%AMm?Ly0pjq$7Xm;~sG|S+f3uqP>=(kOvRd*BfpztKK -zS#I)q@HCp0^JVdJJ~Sf*G@AyRP2*>#%6YG}k-T6_>6yYOeU2;Dh3^d6C0oZN_0y$E`kNYq#f&-9IkUK;8i`J>nzah3I -z!7ex9eaE&9h{0!r5%GJ%6SCKZ%;TzAANct8p9TAlH`dOxjm21pwgx1gZ2Kee{ -zH+H7+^)2ou$A~hcN4Ik0LGUyu#*3ebdH5Lot`2JxJ#>#M=zM9c8}Ep@kJvquzX~17 -zbJUB*)p)lHxUdLzgN=9=F~XhqWgMZydGQfvAZ*BE8MRAUN -zHR|!wy=43@IF0{qcN#xdWs0-ro4xlfMz~$$tx6-vOEOJ?gxJxxTm6+w=+U{YvH-(=yZe`&+zB?$9A`^vpte -zT&XDcGs?$%^Vo~YznM9f_Z4;FeS3}OefNy!+o2!1kEHs&cyqiL|0;C;!RWg$YyvNC -z>ulz!Dztzv=U8pfOppEY` -z#`50EMo9R9+i-?Bi=1FCqyC1X6ln)3y`#sOZqMgSJj6&GV{r-pg}_uOC;lk(337L;%7Hi>Bs+UQyy -zYkVzp6hD5Or-@+mv~e#0o=rme1sKce%yIkxkq=-Y;xAy_xu4-mk?^@cd18&_#^(<8 -zASP|=_5S(>1Vuv=Y;Dr -ze)=#kerYC+o8}kewT`(Q_^tX`gz<{_g~0n&$U6zR&;vTN3UE_x>1=Y;4K;2|%i>p~ -zy^UypV~;p~<7c>1MEu5|0H>`Erj0{8qpz;GWVodKD2#s>?1dZAuZ=y%AwRB^&dBe; -zZyf5tGw2tC_87qL4#u-%tB+|T)?jPVhOaK(D9ViEb&P};ZFV%NdJaW@aiyY9KV#nF -zefWORZ4v=D73n!W$KXA#RJ{8c=Dl|{0vu$ -zBY$cuV_FFQvG6Ak{tEhX1%0}L{w&1YdS#B`H()+;dt_ohaHV(vKF*jE*y@Hd{Fli8 -zC1CY3>cuyA{_&DgQ-A -zCgz89H3h$=$51|EH?9%Lb4CRD=)#8&6Jh-d-4?bAO7{k?)oqaovQpudV2sGn@Dagr -zC>O_*?2H&8LcQQ^pf5SvSeu6WKxYj4&h$v+8Q>NJ++u!m;ju@FR}6*C5Ou?!gI54v -z5nJV^Ch*&fXveX0qH#l79A5~yEZFRBs)IbNgFLK*Jgobf*2Yr44)XJ`Ku>NMYZ}Ii -z3o^70d`JaZsRD0CObgzG`jVl4tMNMm{Z~VWo|=}%%Y##)cjFoXeH(q&r$e9a3H<*& -zkw2B5%6p;jvNXtNtDao|IE6Bf)iW^$)n4c7Wk0)OZSPo3an#<3cjd89qV>Wz@N+!J -zHPYIHeA-BNAvr_xhGa9zAB*n7wc^`-mP*4^V{eS10N-MkfiKwfkUH?^Pte~R==W57 -zhiQa<5dr;z;8q=+0+{0(foE7NL}0BD3V7RKI1%NT%`#IN#`#Nn3cn1nSq9iF18kQ4 -zEaP8`m+@g(D=h1ojOWSx>!~t632THTtPzs1Mo5DE@&tTj&^uh9cccQ|S7CE(#yEEY -z<~0~+F7{H3Fuqpk7-slWWHPcNO>qp?1~SA9gZ~}Y2jksI*C5>jv|-aNdc|6G4NvGA -zoM7jsHE%O)XXj9!^bIOMpt0i(vIW`8cI?4!4S*i<-{KoYqunR>#59SN>Smk)BtgFr -zXK5SF)q2$BftUpS5Szqu9%9tXP9Tyo`~lg!^8JPVoDS9ZhxiV{JJmvsS)6)!O{|h>oX{2L1wap+ -zfO6+iXCNyckc0MAIOj$jbJ(v*6r!eYzbc`g!+wDs?$4-%_73}Ihv#V}jp#0LIkKIwsUniTZiO0+X`L013*4 -z3iTZEtHL-!h4zlX7YO6UK5`l_jYF)#_g~=5IrR5D`fhTwv`6tAY-9cZa-KNACH9GV -zvh~}3t~k57+K;&s`u~zVQ%?J!FjwU3L-Q=*R5IypQvihX^_tRy)M_brHRB;8q= -zu?hQo!eST&@wf!QfcA>f8b{8#2yN=E_A$y!ad$b)H*84oca*53Ij%JaF*sy+7luCl -zfU7do@rg&p*>l3U=@$Tj@B4Y8* -z5$Tnai*SXPR8B3z6<%FAr3hE}mdd;$T;Xk%lZtSKD;DGy;R=sfkW+*!JbgiS5w39N -zv$Z1vc5fNMe74R_{G5xMoC)r(n7irihzG?d`|fw`qL^d34_WWpC0*CGQv~NOqyFC@ -z|1j+L?w}Yu*k7iBf2%(u)k`;5`O%p@sjy>2FbV@p_CUJ2JB*{K@ -zI$v3|3%|4QOYqy9Ke4C@*O&6haCxW5qAT)#;Tz@siWbVF!gJ+OMX~b!;Q{jgMRF&m -z?Hv5sBRIwoF*X7Sn)E9pIaSex4LUi$R+;B`K2B6oEnqi9V8-l_qwP~eC?9!1B5wgQ(FTJXiE -z;cwa#_{+pv@K+4ll7hA>fcr71I}x-MLv(?dA&Kn&8I57?wpS31VGdcG%N7*EY)9OK -zf!MP-5I8PNfE_p&?Pa5{&*Gc|8x19bZe*Y#?DI-a6=-OgAK`u-{EvHshW4QR@gP#4BsUBk*+slI)P&(;V2$iIL_u7TFBgCBNu!@hFx_)vyBV*ea_gW3+j -zx4jkRX>ShU9PR6%{mVpyz403tXz9Cszsa8Mf_@k4X0Hr`{WBF8`BbiTtf*V>x_{F= -z$LP9B*UC*tQ9t#mf^}~t*-{~y^DEgsrp}nNGK`fc_h#gV5xCMBcY_kw4OV_cxmfc% -zvyl1yMgX&AolsWZx(@O{jJ}LOp5C~^Soh>3;2|G*39)HQC?CN|54hp{KJ0-MwZ?YF -z{&zg<4Zd*=d?Vb-H~I=T$o|#%^?VvG+VhgD@Tbh^Y2hVfdfM}nJn)jdr|^==;3bp) -z*StguUXnhiPT(bKlN)%65+!&Ejp+uyy|>}2#JM!YPxRQYTLOL(jo3S( -zTMd2{;3vJk;in2dPy(6+K5y^IFa`}S8-LM&AJU#MIW#&DVKShH-X%N51!(s1`Z4UFE%A?57UWqtR -z9*C2;O+0T%iFI667iXU&SY5)r{MGoj{uh308{1!vhsHwu7VB$)-=?=(#`82@OJiwj -zv5e(u_)X(zYPO66dlL!&5QT#pE`d7#e)0-wV0jBJ;MpiB5}si_R{EaCw+o}3IFLJu7x4D^_9bg|PZ -zTpsEaP2lz5_d>t4*so^OHL!L)5)Pm5qpTwNEbFRY0H5nRoVSwtd&iF640mJ?_{|06 -zufcB)c!n!@nH+Tf%B9&W-NB>6!8=Ccx{3WEP2g4M!K?OySM3L{l5-YbRl~ZrQe3MV -z@G1uKV0qh|m3r3Apu!cwxyj^+t347tt1m9ZFFMk+2>fa>^Lw3@U)8W~t!rUJCSQNp -z24pJM)u6}Kfb^4Vk_p)Vli7EHA7n*|3VS0e5!X$^AV&G9r9Vhm^G>qcLr2TH4cwwN -z931CX&%^pB17q@s-gFM{0wAw!?{8V(C(-*D=;G+V7JDTmI9DSCbD;zcFrWbjYpDvv -zyhglF#1a)_Y#zzj=b~U7_dUlr%zsW5!$c5I9Z2JXtF3HJL5eNL!F9*JQ(CrPfrIdmlFD`G8q=xnwo -zk!5VtIdL-OtHAkkl;;+FA+%7~<`U2Qle`@g2$& -zXUd3`*dxJ+ldCw%5s9lq`U1oxJ&2g2Umz~^my_d--v_6t;5*xCY0zQ6DR)k$M$ -z!5CB`NtGDqqDYW`P_M&l?qTkP_OSmG@x%vdy_tcS8|<;`(z<>Fe9bwLU{$RVs4*ToXE2qOnX2Z9GS!^)NIJ%|OwuiqaPS(|nNsvY%XY8&NGdiI -zq21b^N7uZ;x+NE2oSRtXfMqp(2k4RKBdN@=Ea+>T&l9G0VO^@|Owj`57h_!aI2TL) -z2fd!TbHmAKKc4>ZWzeB~75Zlg;)V0za4t;Mi>$=Z8GF?4aoDrGU>tld06WC4Yk}V7 -z&-&_XYnZI_2ON#&Os1h{Cnn0sAT~baIP6`?Rlt#bn9q+vlS{GRQ-?DNnubBogUzG@ -zHk#6iC2PcZCLXoqhYHa3hUKVp2-Bv+?{yi|06)Ek3%`ksSH5D67yDoxjBlif3(-b= -zH!1$d3VLL@}9Jx -z-X(bq>za&Mcl}p@Eu4hM>O|KInI#HbvZ)k -zE^vy>`znn2Q%`0)*26n!?$=}9XiazvJoy~#UWk2lBo=WQD@0tYwqNBMI^&3V8QC0^ -z4*Q;)=p^u`#%PQm>w+vb_|pQsBm0PMF=M8^NNVt^3-k>358W`P{u06R)l(KR&HZm3~I*35DuEEgWc{1@P033#(v0*wU8O> -zAv12E49T`=)9fG3MFPt77XbunZV)%$mK(wx^=>--IVPB{TMgBeT-exOFG?-tgj -zzrjXBxOxY;cp0`zv&h*r1noQ!4K-eYZS*pH(=K6b7yHne4qZ%CPaDb(!@A?idWfdX -z@G-rMZ;y9T-|xWfJE%|fus$#B`|4^UUV8~X8h2q!zKAx=nU=b#-Wy{y4d)NU8^J%1 -z6aOT*|A0Lp74A%13gVDdI5TY;_?cG7pjWB^8}MA_3r*@v=nv8B-X7Q|3ph^zoU`oc -zbpmjgQH{LcG6j1Y0pEvo8Dyo)pht8`u)ibfZh9bLR>OuW)Jy%KelmfN>L2wN_1ky= -z!PA}xEDfNxyjo*14+MWRbSpaN;5K0P8{l;w?a_L!!UMLz5R5U1X$wHVgfV`jNsXg- -z7$eF55XM8`Lw8V5r31608NQ0}(E{!Jg7)8hjP|z!57s@T{ZaQ@uqLDVy@k2F@>PuS -zvU?oxRMP-o!3G-Ri&%HZN{BCb{dqp%kMZZ(kqn+ex&@uFk`JC?vt5E0Wx?jSqZ#x?=do-c{sJD74<15!lE5>FPY}=0b1ZnX -zg=eIKXTTP*at7xLyM(L2Gm0yjYSJ@pJfjIb6UYKNO9NgN=#@gxqA+_260b<7FP -zdzDpgP&(fZ2aZ5)Jc$D*q3aV4^nu(s3c2xjYYiI?klY{~xCPs#4F~e=aDe0n#m&DX -zw(v*dg@2--=p@x+{0s0i(YcM_Q(>UrQvBk3hOlmkfsR4z2I2*z57_w51=R0_ytKBM -z4>@hi^CZ7GjeNAHf&At#fj3`79n(241JO3|D_h@a9?#>O6UliSUtNSgK}R>3(M}@x -zu}&nBsS;EMHP!_r|3aW!VZCr%g>^xI?y9gZSSwodoNZkYh%sd6YX{n7fH_)rOp@CZ^Nr8J_rd_5kmNnqHOd~WQ3$8jihdAe`wr-ZSi>0hSl1`7!L|o} -zr(U;!ZT$0?JcTh`fM5L`@M@YTl5I4eX-|yj!f$bc+#W9vOl!5RLbzMMvwSQ4pE$R~H#3~nTxI=tE3HeL)65c;qw+^&Hb&Fuf -zq<%`!Pup78(oZpT5%I&isjnn+1U`a3Uzceb)55j+w&yiArmEe@ppnq^bM^yr;1}gR#(h -z+P1Ey^&YLOZ8%5u*r$&oO*BODcr7&Z)HU{T`!%*bE!9}@m)6(<{wCD|ej4J#f~&ykdBDTfv4aipp-O)7MgL5ELoBHUtyPG8^%wBn -znAU`pzggs~9t=7|88y}cM_f41BQ?;|RzZ(i!by+FIB~0fl;MXO;1SJ35atE8)V3DP -z(*(r&SckS*tRLyD5VFG%pRuf=oK2)FzlJfUpe?{fz|qmTp8(t!0T1$llS#ly_<<`J -z_-_h*29MBkQoT*iF-tnK=H<5tI=+o&2IEXkd?zg-+sg#Rk|S9-0Wm-5dp+r$gd+_2 -z5si_7j%LFVH>3$C5(y`)d{qUWN^OULuZqD}Sv$T;ybSn5_7*`WB3z(8&I2w05B}2L -zLbyQr$lgNv9@<-g3%6izA%6B(@QMSx?0GTKqJ@81@dI*&@Pqgk%?IJhYS_JO@VbpN -zD*tcr-p03|#QPn2Zg{Kt4`jQydz -z+S|))b4E7G|C{kpA8oY!q%2wuS!7Sk_Oj?nI$n)$wNKKq%~k+EaY5!^1`S`rcu1Dm -z`1R9xYBSaq=OC-b0gp>%%yz5?+YVqo8%_E%ehrgnuheofg9`pFRo?J%g}&SyI@5LN -zTYvQ(31Y^TnsoD-jI(rUfB;D3TQzEz3;ln#iT?#fn+aO^nBg=SEB3C4))cuZ82!8 -zf^%sNfIPg7@kXJ&Q?RQOj5dJIwVcxt>_^9%ifvnuJT1VjX7HX{&}r#=J=qk<7np1c -zHaHVp9)K>0f71OYfD7qe9;ln1QJlA{sKXw9uyYKQ!QMxERH!aGmw?K^uLt?POj5kB -zLR*lD!h51cDnAAKLo4dKioDc+3GyvPK3hG%0Y50;4FP_vu+Bb*`bd^LqK`E9I?O%! -zHZ1|%k}yX!|75?@0A{g(**wfmrQO`n+_SK&6Ab8kcMB6TfX==>1fLu+@Ih=nA6H7_ -z#Tj4poMN@8kmoS&CCH<~nZ*)crk(t_g>lZc*hFyX77*yTuSUakT8?q(_x(>dCqqP~SM@Ql*`&DYy@Zm0V~#G^SFZ}jEd4Gs>8 -zssz}ZCAH})*egmpvrGMu?sOPev_EXI^OyJ~;v5Z`c#JAqB-6iuco!1*6RA2oq_?mV -zebD?GKSz#cXGpH)NxiUTcnno_28ngL8OArt{7cRofdPjsUd%jszM!Aj8qymKEI6mrbRzLK$`^HrKsa7 -z_LH`XeAM|dQd81=KNHpYb-vzQ1A9N!8K$Fq$5svWO{%jAdba^}8WQy0~tqk?1jBA3FmH5ztrg0gaAvw=AjNMuScv$ -z7vL+!DP60(@mzqe^*O>>H{fg$aMcYsdlbLRfrrb0tNIw&O>v#I;;f6(5^MJe@KX<* -zHMl0r3Xqrd7~8XDcs38Q+5DN#`WC<;8T}~@7@S;MMSgv(9x+L>{25M@Da_>jOs4zJPH)!+IMKQ^Z8$)j&pI -zAET7UO!Lr$eIPU!M)38HfG9oX)50eu2K{@`${6qY!#0Qg8<$^oR9%A3N4QIPdk6W% -zz!kz5!bQ^Ae-rqN)C3-_@MmTE1hkE_#bwl<1-4Q8K=9jN7%|R@m+I;4Mm5Ua$GVPa -zqYdjlACZ@V@crEW3HS{6h$haRK-x+l=gwR2t+e2ee(wi_@4Pul;mo)~LABsT+45AjCw{gGJx -z>LvoG_PM|}PJ?d^_!gV=`_PjU3LV=PfNrnus9Y)dpy8W!EM!&P=y{#410Kh)CQz~N -zGJLO;9m6*gx~H|+F?>&Xc<*X=uduuKvb*nWci-*N{m}r>5YEgzfbZNSD|<`6_A_pD -z>Eept+I22nQqjjfI>$EpMoxaB6n85Y{-J8vcIfOu>KFV?g?s9kT5NakVs|gMyZ5xa -z_qDt4`shADi8$ZzL9IoOXnPD(zAg3q9( -zf9k*VUzAFY_}Tj`DuMqrUpa_d__Vg@o6hgWpF;k!ki#70u?TY6!6<=DlWvMPrr_J0 -z>p+W4b6=9KqPTEk_Eo=;kY~qn`D5KkF+%-uK584}70wH3zX`s8{ot}VR$-`4EHU>4 -zZ9fCP-yeK`=u2Ft)6g+0fAIC#z6<>vfa42&9n!JSLVv5@LcgKll}?*A4KL$&I?Amk -zxrsRSEx;>kqZ#~QRzh}J2j{3?2YNM&SoIiP8Pan7MBp1>STYazxDG)hvd3kYMI)B# -z65#9@&>{6z2fD`DT59O#YM(eC)4fVBQ&~c`*t`xsiM=@#xDy8)iUlskK$rVMIN$m2_O;sdCvTid<~;3i7Fb7Qf?z+^dOS`ge8^{Of3)m~*(}4SH6Jc%t+2su1mVV32OxSvYRBZXHouh;P*<% -z2%$bXQ?da#rLEF5z{Zsl8UvlVTfIgaf%TeO^dV0b+2Q5j6~186*qecY-d`G3GZau#Y_W>wglKZ+d) -zy@2)`u<$R^;awmrPF5c6c%ut0t>AN^Y0%;uImvAqjRkqIzR!ToutY+!;r`{*P=j+d -zCju{Z=reTv{>0<{Zhy57eO9sN0r}{24EPzzWO^pSIBd_z_CtN*V9%lc2cgbyE_b|f -z=bK0U@(1rD-JZd@1{bYkp!_$Hr`0aslHWS|(|3uE11x-BSkMCpx)6ar9Kc&0;rrqQ -z-xpT!sS!U1eE@jYf;|!~&a8^;Wi-~k_{IE2QD4xnj626V-Y7i&s4odPLnRB(ePl`3ZmZ& -z;N6F*J+v*ZUJAKFbh5@z24ARxWc|P@nTsKj=*cyq{FM@>aZkD><}G5%->i#pudc&> -z-*AlMXh4_hV8F`&8)5-yZW(B<#>t_rAYz%{rlf*_*Q73nkI|o_h@*d)mEa5#O*#1l -z*I4}@g!)*;qxul9w-f3ss2tN!xEr*@y2y%H7vao=TJRhdd~4vZCVcbq!kpBwuybGz -z^@xE_=Rg$Vd@nb -zoxw$CC6HYwh-lIp^PkSv(qSwrjD^m}Xn{?K#_R%k+s=rfGa8;ePvR=hEf8bO6z5il -zF$*#HsZZc7#OttL=+pu~1bp*q0B%7~V;ZtRYg<4c&CcK*&%^$J{MwoL#keWXFpWJL -zVvCD~~ZmO~ms?o!WUY7w@l*H|X0z35=*a$#I3qZsYK;%{Hj=}>O}$9= -zt{4ygfOBfVC#*6U^bdFmJ`nT2vfz|W1~0(+{*c0gM{(|uO`|pKHaSn04S6m>2DG;3s5UG-NZUNSwU^_Q+8fmk!TEp!cm0Oq@-+o3;|T -z06&^nh!=wYlguJsu@`(}#&XNt+i->EpX4yfPaE88+u?r&JS03PSx0+-@Qoo|e_vDH -zDhgHO3^kb^aLKIdlcdl?#zS7Gll(pee>oX=5 -zqcBJQxYk+nKa}_3c-9%$YATQUTml(xPfzx8p7dyv^E#`X4@CWLD2s0{4YyGK|5Ubr -z2i?SMM^E;$U1B!|5!$+Lm#-PJ-NG~C!84xJdA}5NUU8V9f7PpSMr;eth!xL~z*if4 -zWw4e{zyblbY5iW{ybSAcmjs*>g0+fvTv%DmI2CLuVw14GraEE*4CL!6!MU$0ocRjA -zpCrMVum78R?oas)JdFi!$QU6BDAji -z7v}0|>pC;mbyz2wJ2+oqT}Sne)6IHpUDx!KbzKtbtH-(yW$RH^Sl3z0KDMqS|L-UJ -zLg#wD$@mz2VC$oGof3Z4EH1M3`N7sV8#X>a*!q6J@1QuW@o-^{mwqo6anlc2?9;Ty -zBm5g{UEkfq`p%3zWb3m%`+s}QcL@B1+W+&KFAjJW3;c?K%seRIeqYEIIdlMq^Z!n` -zm)hNX+ui%w-FLUU545`vw!2r`-9t}#SbwD5J#2XopFeAN|Ged%!C!v%%rzs&nTFrEGjNl -z78GYsQsx$9PoJ)&%EGC#@Fyz^uohz=YlXku;-cv@3iBpelgxPQ&17AXZo2l-^N^HB -zJ|Q^s6fz9U))nMUQkE7g -zbF&KyigT4kd9&we}4N|nF3vD-n8t3J_UJ2Q%beA`f`h>P0PzIRciCHC*@63 -z=4$g$(F|)Za*GS60uIvwD`jC`skV61!!~B=iY67$Qcl;+e$=ZR3|Ox$EuZ@6(e%>d -zX@H02jiu%340XCNyQo}g?Fx2@J{-{W^1__rg6R+2p&?lFO;=(@9=^x{_^jopww&oC+l)`c}1lFEYTE`gD02(TLuC>Fg6Eu -z&CHudGr&ZK_Y3dGXlI2N3)q`o5S~4)aOS`Xxzlp{MOx7FssCT^>pUwg+wJh1ig{Ws>eYTY{h -zOp@>F_N#JpenLsZturyZ7tT5LgJ0{#p9|A>oVxwhqLT|ozggh1w^l!Cc6-hrzZ}l1 -z8u`@!M%7Q`R?L6g@Zmltc0#i(F6WcStwh -zuieqV;LWYE-yQz+M@{=@n=TamCvwIMXXB5#e)rS3A&nnx>U%o)S>{aoy!7u6d1oKr -zv*Y&mfS`lhM!)sizmK_Z{Jj3XdM-q~#Bsvb(=K23XpwDs`K97MiWKeGkGf^=8`697 -z&J{5~&2%dHk^M}0;!U;u+Z#(4Z7K2JvD0be#XU9sPSrQBKkQr<)y}vtua&&+`=;Bu -zPhImXdJicSzfmx$ntdVn^6hlJJ}0}N>wo&@EgHe({Ce#*r-BzZvR(Gw7FUir=zizR -z)0^|sT6T51TEE-y(vpVX&vyGcC$aYrUbkL4xhyZ`)Nf<6x27IV-|=iI^Vx>;eLp=F -zv+-=w_pkkDNa4Z8_kX+n-O2nGUEJ@di=u`tnNoMWe&P?)dpiuh)J@cHLWUl$@H}P;)W+s9XD)f4zD5v?}n;I(k7SGl16+Rklz*0`MCDOz)4OX;BD-(LM>)`@q$f`4>a;QiC| -zPO{t!3kOeH{d|6*Ywh^_*|KA97vJrWtm^eKBi-_z^PHip+;5)PAbwf2QG9_J^9oaVJ)5a-dKKtNjrybGB&umTjA=LFhDP5$W+)WZaGjX;< -z%z+yd&yG4frS``1qKNX{x?#(H^FG6IWZ(TWld#FSHwiiC^_&8y{h{-$9%FwpB;a!z`N|cbnW#MuHR=Za2T -zdk@EFj{kd=)A!$~#+=F8Gv#zp`0UBs>XWh$a$U6lTpe1h9a%h4kH6XYMTI=OeAJj*L+*FXpFX?ZW5Bn4HyAo*MI1|0 -z?*G*^C2gnUjV5WI+G!)^JrG^F-B7*Z9}xlmB{R4E<4k~Na*xR;0u9%5-dkt9`GXr< -zxqA69`SF0GYYSvcBSYRlv(M{aZ)K*pDK1?5ade5X^mBGkeIvB&gvCkI9Kd*k)o -zy{3X58P^YNI-k+fI@NpFY|-4jA=S_FI|3Fr{km=c$c>tg9p_Jc>X)D6+_(45xSBZL-M*ny(XEKl``+KLAABLL&uV?ss@-AJzE^z3 -z?He<1#UisC)LCWcZ+`QGVaTH -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 -ztAlK<^OA2ERY2`QyIWZL?z`!s9_2!*;IP8p -z$p=k&=SR+(D^pTXcJNq%_C51iX^XuIzS?e^6JNf1=3Wrb32Zu+S9eK*}w4^ -zbf9~`HqP7ntK{ujM+1f2G#lE44iC8p -zj6Lncl(r})U45^8vazRW%%zG;0Y|InbkJp56^7DuOWn1LW){rcxhmap-KTON -z<k&%$z;kDFf|Lu%Ntu~t;Td-d&#$~ -z$P0hZ%J3fkuySGe=KH3*7^^lbz4eZLpXZXAmP*({~b%$49S@~QX>6ET9(W5xo20Oy?NW}&Yl{Uv84D! -zvC)zvz8zgTEV18Dh`XM*r~ISu7Q%Bh#I+S -zNo&WR2$bpS;?ih=IX>epPp>PfsG6B_xYp55#it!R9{jySL$+kkI^lZux4I&S>o+pe -zW}iGzDt$gef3J-Bu`m&bgJW^$m -zarn&eylu;py`K7?THT$jEr0X-N@lb8hZ72i6fX?%IaseJQg&VAtC`%q>#KzpPxXL+hJIDh+=+(*%P9K&qa)<`s?lj8=ub&XOUPykQ=}vnVS!Ut`aEmKeTRM%lHb -zaR0h`c(q@-n!06%>&%y=) -zf#(&HpFBM3Tz9Q0jTKk?*0n(3746=GjpH9(iz{(Cb}D6RexcnZeEjdb7qD-|xtI^% -z!ydUGaI%|B-JyD>?{o2W?~$3#x>+d!1)ShRO)+sh?>ySCi_JFo+rh} -z$HqD?Uc?(;wUL^>T~aD)*i~1RM^`qi3HIrHqda?NX7pkG(W{@|HGQIg}LR^`hrH -z)v~SI&dYxue)h$&yVDHnEw5Tl9BG$0>%x?xPp?j|*s|VU!eeMfx!kUZg#t%pH>{fU -z`pbTYaGmGZhAGs^ZFZZ$ -zlgP7p@l527=gNmgox9Un`;`L5(E=TkS871t2|Ecewy8^ -zv~3S})^H2u+Q&2c@`7INP%{Wg6hC(QO@h;X(f(VswLa;pRTIZ|7pC3W?Od^B=~#Qy -zQ|prNtrrs>Lx1a6RDJkseV5L0GmT~Xmz^&!)Qq}S=C9Q9zW4T-Q2KeBVSCuqxA)B4 -zdEa;cx0!q2s;CQ0@y(IjrMY0^5~q@NBQ73&`LR+jvOa_>LuGz>wdUpF^=IOllZ~TB -zoq64p$Wa9adE{ww8^?$l`6m@Cex-G0R3P?V23-7+xrepP|* -zY#Jlg;>N8DO^ka{%w5XK`%RB`KAh>_X1a4#Q>?(1D$(n6&3kP(I=Dw1^34;m57jDf -zmv^ZcfqiFAo}sg`Lo3I6UR%-TEuACgBv*BoENbG4zqv44Y*cDN>GWi;*&m}mZP_2y -zoxD8R$Idb}ziIac4H?5GKl#3@j)u0*kq$a-mlOADWjQXLF%JHpa-ZZjdDqtQq1r89 -ze9ucga_~5)Y2LH2rAoY7wkc+~Xq#DFd1uSg^~rHgc~Qa#&R%$+?2&3&+u%D_Ng}ka -zPRLwfd5J^(p3oUJvDsR-%TCEB*1KU;MPK>&XYfB8vkY>~Vf_jL*s_@uN4|ERRt;A9xR~5`I$K6sM!^;Ckwvd7t~|&~fjL -zeX~?IVLc(gPMW$YEpM7DZx?NPqnfPQs -z*RRRkFoUSh+%XqM7(YoZ>R4R$scTP@mr+z(L7qwH=#cL-w6Z2@<%N%vcmMbT>z(TC -zn=>UYROi!9^Y7~{99*(9oAw)qR58D@JDUPdv{@8MMTr(RCdUSrrJDALTzEL?d}!_W -zb-p&^-5ruHoi@jU<+Wz7dN|{L{xyuQFD`%RTY{#kl!NiZ7I>f1!VPk<2d9KJ9s0nv -zaC~XMzg5+ODVY>aZ&;XgNZvMOcH-8&`wm8pNp{`0u;jO0wKAih*)&yi3zjK_jgF;Q -zd{Vq_?^Vw;9#MBmvq&jTj=N_CrE_`Rt?vg^8eN>|&vI(3x^$FRC%F$VitepGmZ!DU -zFC{NdEam*pt9jZpo1=TK%OrUSoa-9L@O+kaBfQbo^un#aT}(=cWwD%J)C0}SG)d!; -zRVVFz?zmcXV_{($+jF@2=ChvJmhS4R5j${;x`ox4IQv;%-JG#0b2m>&iWmPDEl^@+ -z0XGxb$5q5~Ev=V?J=pkIE+zurpJ%IQ+*017X(sZ?_`#E3CUjYq#& -zt688~VbQ5Q#Gd<1j$7p48a5(DyX(IC(`U2Wdm9hA>ffTDiB7ROYnoTfc8bPc#Uv$- -z*0qm)^V~voWPjMhj7eNm&m9z|ySd!{Q_D0hRQDM-y~oG@#Q7UWagWevFX`Ii+h8sf -z`%ZTIh1}<2O&jud_kY;!)?d;3xaqKt=Y>;i+hVnD`uGk%^m4X^x8JD1$#1YU#S5eN -zSs7C96l8P1ywbA@TUL~3BRYMre1F0B5of0~+V8Jxbgx+SeTHGpUM9yOZ`<8wtHO=T -zxz7U{DAgmDjGkq{og3i#&VS4vFRF6!EA^z+oCg`|FTQowv17_NJZKEIf_XwyjKCy{PTSE1pAQCaRZA_zIZJ5)X=%`kWq6f~j>3+3+BF6I@=2zW^ -z0qD3#=4k#NweD%>Lj*53%v)&OSM@lP)|;uXkz$rRXTQ`$za1V8`!7velKrT>`C6A;u=!_7MWP -z^j5vLExqtgl>^R}8**+q=C<_FCw@8hIWsQin0}^|+U$m?KW!slJD!(;%!asVW~tkGu{bg85C{Wm&FwE*}6D- -zUdzcLBVT{rDHvbI7CamKbYwT1Gp|(dg^$TruYIfPUuBIQ&23f+de^h~X2~c2LuPj; -zcwa4|O}0#k++FFO*E+}KtxlCr)7p7L8RkcXl4MnN%AX%I>C7AD9)O)nm^ELkNcqUQ -zyJNa^KK0&RU0b#B=@~1sOlItK(fv%%ehJR} -zv$3YNiYiyytdb8E6)1j=ew9!=yywhitrO!81}-_#Z6TsvT~U}m?!#MkkyFD`JPzBc -z&3w1|_RI!#YmW_eH$-wbS&f@$P*IJ+0bt3VvV+`W)60dAhsJNqJXlz5HoWG!)Zvfr -zN2P@AyJK{jf^udv7RGtn_=R|e8TXovs9LKlfB3ubzA-C5riFFYe2EG!yz}65eBBvE -zm#2LR=J`WZw018~787fi=$v*jww^s#reKlM{^U_=p~+H#Jq1<~;q~D)eVu(Cfnql% -zeb9<2Uu}MD-$$2Kx#uiQ+H}}Ta;HScT54&Y?KpNnK6O-Asr`|pZkp<)t<$P5W%80XOy -zmOeoiZZFGjB(}y{UEIXJU6-wA{h@@J^5OGhwYoDW(=R4`RZmp3KH)Y_McXp?-I+0F -zMdRQ$eGKc0>74j{M4PW{mi*Exvl~suwUghDaUFNzL1#a!#g?D75T=t_hf|Wh -zeYkmuTV-os*VLDN5mfpRi4J|G)ED0E<7HWTWt9)h9HzF{Khen^&3m}%0CjAZdu;30 -zl_Re=Z^)VUYN_dSpNtwA=gTfM!Fe4Y#?RY$z2&m>wAUF&#%35xF)YYz9a)AX~V913J-BT`XsH(G&n(@>wP3vNsLDR0#5&`k(`Q4KfA3b&R50G?h -z!JfG2#z-ujHbPLWGV9|sNi)rYC$)_`KfB(lr*|4ZqDKmfewO?=^-0PTwxpiKqRP@+ -z_ovw#Kh}M!d8s9^aYr5XZHRj8@OcI!nX<(>y(1M(HPT+y)a~ncDZMS)q1Pk2ktx$J -z-K+NM$lEoF`onFDi%ahq*y(*yf2?t&Ze?AZCq+FqZqK~~k*Z}?yv*^vr)Ithb-Fvu -z+Qv;t{z})^5mzG0ZrMnT|LT;go^opZz5Tp0A-PD0uc~oR-h_GbhS_w`ge7Qud(`FB -z-mh!RR+(#LQhf7Hwf?t8_UL0;AMVF!ZFs-7QA%aboit%dBZD4|wvy4u<>uetLwi(w -zqa#4SZzfi9JuAkbKYhfg^hH_qvAfJfq}J7b8Rg~rZhb-VlpDXHA0 -zXYhSd>AUcBdu6Mvry|lb1HX(;#zvmt#?&OQ8F8(ATb5y`gIPN-rFN+Kc~{ZlvpT

L{o0RB -z)J{oNS05H+S6u72sO2hgQuLSK55HZ)}X)>(y>uil%N6BhJJ~)Fy0BEiYa*e&VNdWv^E` -zJ1CmWej+~f60c8(Ngbl_HTIkCyOFPgRdN)}%1y79O{$snQO!m5Y)!}A_?nHcg4CoH -zW==XXM6q1|+c=eC)pPIc?jHR5_-ZM0<)m&3jDL8RwqMnqg&(nKD5~Ur*mqbqkC -z!^;{Bc-{>g3>xskfO{md!C(L%44}Wcf&2&Z9msDWpMmu7Y&3=g?yu&92^I(3E6N9c -zzab8IW{MAZ)&j!;&#~}52TrCJKofW-Sjd1G1+W6%0qH>v<^q5WCd+&Z -z>9t`So<3k2LU<*lhrMLF14aSQ0E@@p1TY8w64K-OIRoG>c%gVqMi5?=z+4M30^R`o -zBM;kLz*yiH!HNQQ0IY%cKze8uraeFk%1?vxN5VGTFv^6x)P%~Rd{CX~3Qz-{4i;LI -zxdAW}_%lck0y5!_Po@&^I4Iu?wnG6^f!~AjrD59#Fa~%oSX|F-fH}asAwBd0CcGJm -zDTkTBu1E_S!1gM@L$MqR0sIxD$J>7yKn3_A)c)&$PY2$J+8=I+Wy0-6 -zLYKhe{b?t_26!)|$J-z8Gt#jCWvKlFfkQh8T|@1UYdRA6F|c_2jQ}&?&mleD{!0O% -zv(SFj{$aqU0k22xzXCY)YoQBZ@&2?OFcR^oqW1R(J`VU5uy}vk4X_3N9ku`8#(xRqkGH=I -zKo#Prg2ez402APkAslaiCx8O*J*fRdfKLWqgWBH6JYW9n*ip(+aW!kpEE!i_(9bEYk?a9e}LMb3w$i_e6XT`9RO?KUm!i+ -zo_`zvS5f=BLL4=Se-tbgumLa=cpIe0+hYkp3HUzL{-MC90PL;N#falN+yW&wW->GAeo4j2afFlzsB;4^@?p!W9zt_%D! -zSaHBEz&zmJ{$>1^LH>As*?Ds<#^dSrq!?m&dQmw>36UON|0jhXQefsI1hXJvm{p0uOiL7IUt%yL6Ng#a5KPtE -z@84#GKTZBH!l07XYgOp8(>3U4VIj+W=j_S%4ql9bgzB -z39uZ{3YY=70tg3u2T%Z!08>B-U<4o)zy>@9NCNf%<^yT~;{jQKm4FWbAppFO9-b3o -zV%Gs$fD-_3Ks!JYa1gK<@BlCckPlb`_yS-6HUlgGR{^5|M*$o_8$cGY58w!>155y% -z2LuB?0>l720XBeJ03E;?fG^-JKm~9Zunf=wm=3rMSO@q9kcK^wrU=2g0|2Z8SO>7R -zU~9n|fHeS{12zY2AlN{#U0}PwihvaXyB+Lyuyet}|G|S%0syNGRvYXou&2PT0J{S0 -zYp}1u4h1_DYy#K>uuH)%1=|F+3G6hm)4&#hEdUz^HVo`nuwTLA<4+LmR;bTgz%BxNAMAawlfX^_n+G-z>}s&9 -z!F~q&8SD_SL%{9^yBn-6SX;1nz}^8n4(vFv=fIu=>krl+?0c~9!NNO1FnInMO9q<^ -zmIamt_957ZV2!~VgDnDE1a>{x^Bmn-A1&9Gu05pI!Km;%pAPA5LU=%8i -zPG>L#zzKq5A}55L@Gnl}7bp5JPV8Tt`2XmJ{ErTP!6c=mq@`uR$%2zZP98ahU!3AE -zPU&CV(0_5t|D#j+A05B_83NGmLPEmAA|iNm;!TD(3ofk$a+1hNAt#L-uG?UTYdF{q -z=s92qbRDq2$om`pMeg6|zsRrjZ}Q_a0DK|?Qvetv#JUxX3K(Db5doiT5$j2CCIn** -zpYOl}zyLUdgK>$$@dATm0tUwk42}gDe@+2sh;R(S;JATd5r7mxG2jtk!2Mb#ULIZ+ -zUJhOcp1&#p&({Rt0*C+<1Mmt*{5KikY5#-6vm6Xulfl6C84NfZf#cK<;JOV4(BIrZ -z{sZ|Axb73FB^^! -za4I1rAj}Y)g09`pa+=P~hP+y7f<0yEMX -za28<%GxMo%HZvJ!$P?kL#1PID^x^DC4`#f&a27HaX8vO^E%=SmfOERhFuxoL=awTd -zRhaP(gPEN&%;uC}#-{+YIXRf|$-pd63TA>5FryZSBcUi99fjeDiO*m0IU^m8YSe#@ -z@)+bp!A!u{g@2@n-xY|L0x^pr?j!u@PN89{6e?yy`DO3G??3(V=N13qiys8jR+xSM -z@tX({_^Uwyu%gA!0wyp&Z~VjHpJC!@PEAMhC93drLh -zu1I+N;7WXtL3}9gF_ -z!}%Om+WGTJm!tUA-TwY~zAt>y@fni12_2v092Q7o@VTgp9v#nVFP%OXjBssBE967R -zCrbFF2;ASwffav#Iq|5R)BM=*MU8US -ziE|UYAj+VAiz}f3D7-?{=1Fap144!8IvSKQ+F^Whf1mk+nZr9p`Z;ySNH1b#0c?vLNk -zhg;&ZwL}DQflwj>zn>5H$M3zwEj*C}PBnsW;0u484!?_Kz>Sr_YorQyuF&D07doaV -zHoyhoo)`fvW;PxZ4;O`Rg?~5`LRH~25RUT*`266iz%WW8{8uMDJ82S%Rg$GqI -z34%*t)${Op5?Jmc-0H!TEEqNnK-3?@>>P-2O()!%03aMN5YG32uM~bbeuWjDcLfYw -zT5Z5HgZy72+dP!uU5I~2Rs{Z`6CO_v*)hmYLY7DeQAkHBKq^2gKq^2gKq^2gKq^2g -zKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2g -zKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq^2gKq~Nm -zqyi!EZ$$Cu%KMfR_OuIO-CYT*>`vH14q>^TgdOEg*k&KX25|{1>POhq{)DxLf2)k= -z|AvQK(vb>~3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr -z3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr -z3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3Xlqr3j9q0RS56`WB?=p_6-}=YD_-B6#74jVgFaf|j1t{A9DS)$pD}Wn-X24584}eL*C<=fvfT@rd -zi^X#DS`iqug5}QUt@ifAJ$yO7ZUJj>f1CvdvE5eSgyq5Z=Kk#C8O-Ln6JG8d9xni6 -zxrTCh{us-R&E@*LVJuFFcM!(%2;h191$n>*kHdlQ)jaPYu)Zh~Q66xPudn|qJb>dH -z$boc$YXaSZxUOsb*uMPtB!CbU7FGiCU^Fa3626M1;Omh%eC?2-%<|@N-2*Xc8n#Ie -ze4->VjN#_Raa-XK91!5o3*xwALL5JLOx)WKYNZgs^LOI}24bUm9K5tKbS!rR4bnBQ -z$LLt|MhbjaZ=irj;tJej2dG6g_jU{N_V;7+)?k5lY#!S;5DTGU9c+lTX(`k#jzYr< -zahAcR>SG7N=Lq;zuEewTgRgRUe*=w3mrH@Vc>8%``4pZv?B5lL*ucdjE~m`pa00Lv -z@Q8B-k3L_#DqEp^+Mx2^QLH#@P#x={pqlhRf=zhkqqZ_2SxT_*O#fimUsp5#fHjz> -z1#J3S!k&iD#`pg?#SSZ@*z@=O3B>{Yzf%?j`*E;jD$5NL@Vq^}g0OTd9lMxIg-rX- -zLSLi0a{?U$LC7vDWcdXGH>Kl&n~vh&)fsq{L3P|uLv>7~(XnSAa7laKQ9zYTzzg|2 -z_X7o#DyFfp8{n6ogXa^~iN}2Q8vowWj(_LA!ehOn@rCJth}FmNh&!N85O{)0vGa!> -zhV7(dR8G*K3T&mX@pHrW(&<=6HXb#T|9vQd0o%=86cICjte=Vt6GOw5IYQ%0Q%$pB -z^HyN3G&_FFJfjgReWE#FsdPs_5Z%`sgt|yy$mV*xv!O3vp%2om9E$7D!i%Va4n@a` -z;Txk`@Ob__>ZHevp+-;}XjN1h!%^L|I7T5Qo#NuP3A~;OIWl9>R0+{c -zTA^4oHHspmAX+XgVItZgyor`cy9l2YWaDY^u#JD>Y0L~tCgm9=$f%IY)Esr1qPb~I -zGqsWy0riNWx;M}RPScn{aTLuyaT#X`cdH%L27zi?6(yefOfp`yo1QKtDyqq3I!U}y -z%@E9$NT-N;U8KCB6jPc7-iThLHH>wS5K5#}(VFRfj1Fd$pt%*XzfWMthrz(K7A5#+ -z#M2QM5yUWY2={^p!krRuJU(*>!N(vzY8b&MBhE#99^%z%M7TTRg<}Z567dGaHzWQG -z@p#0Iw2An~5a%L(3GpDrD-qu`mWY2Jai#&m-y@!DLU17_v47>31RsX@J;V)wWCBX^}#Sh#80~r@vRXj-t&WDZio}_`@ygv#EJL* -zU|0m=#QT3RY!BkZdw?+PIO4?nfH3R|;>3G_Fsu%7;{8Av_7ZX8JwX`OhdA-RAPkcg -zCiZ9Gy+P`TZweynKN&c#U*#%-TOw|>n&6Iz=dK~RFG~Mt7s1ydZWKfC?I^y>A%Y)8 -zyg8NN*@$-_UV^yw5hA=6ac9I|AYP1kH*matm}x|OOoXVvOgh0u5a%8zxGLgCCkU>K -zIP)aIO%Yc;MQ}&pc>eTUg0m4cheZ61h|?bt{1DUiXu8uet=B2osgg8@(;4=}w -zCroe$#P!4o&PIH!1i=FkPn02eIO3yV&WpRfhz6J3V;KQK4 -z)rg-(+|GeWUx;`m;x`AlBN5&_z!ws{9dV;Y1n&lp>ye8%1%9`1uIWUCizA+bxH95z -z5LZWBVlfeaJmMzH2tEn%V#F;F$CeY}3vez7?SamRyb)K8B*H@wH$i+W;x33E0FM7A -zVd%W+2p$f{!~n!|5D!7T2=NHSZz3LrI2E!Q0!2sQd4e+s;M@fA#9bHw=b~_2!d(sk -z=Ps}hxcdOWIUU9|?#9A4&ZAI%9K;Pvi14+Dr%WYy4C2kk1V1srO$lCtxE7Uh*wS~;>RKGJc;1v5HCl(av*#h -z5&jr)r-=mrj=0Qtf)9t8GhV+w6mEogwHXn<81YR=kCixw{uzbF=WZ024a}gIs`|E|cCMth3;(Cau -z;vC92gpN-|i1(xMU5nydmk{MWN8AK)8q9}ry+l#}mPWi7EbhkO93S6kyiNuV(czD9 -zvwz`>e&OD~@U_42t-tVHzwrIP@WfyE(O>wfUwFr9Pc-1fb-Y@(D>~7pVuaA8+s*SP1xoAF-D6hXDTS&L8~o -zWsN_0!#c;H1(H8UKnqHL2;{Gi{Ka4YPsQO0^jUuk`D4J}OSgj#gRhDFp#sEG%^w1Y -zwVS^M@E4T+5D4pG|5+u7fY!GDocixO!Cz$iL!v<|NP|NMR)qfGXXZb!9QVgSSfTra -z|F7Kw<^T6?@gu??b{GZz)-4A4|J*GG2mIXngF^loz+aR5!w&u4@+ha@TYhlBAFIVr -z@>`!k$^PCa1|r~#jen@21NajQlz#~Pv7Y#cz<(AP{}A?<{xYy`I5kVt=znV{ZS_P;s?XhD4WO8pD+<;Tz^bQPW(2O1D|AuuS|71Tw2=x6q$!3h7~Iu-K%(Q%LmzikI^^K<&m -z1HT%BDnN80el(&3{1%z$OoaDOU6=6srN8p`>K8w}4-=6GbuGeUkRTl2fFSsNA^ICC -zh`7KvFk*i0W!@ni_aL?_mlKFa9kEw1<}g-p0DckW4}EiB2lxpG;_>@BJ}v_}JiKA} -zS4mJF#5myjb78ps6oEzfq3(w_DINhD7WGR{jvpKp;OF$8E=qKQfpC-%uJ?GtHB!Wg -zq2uZu^dlAWB09Tkus0lQh;HtNuBZ%T7>ExFB52_13Vuap;KJ!oe#B+dL0*LF{L0|{ -zbWjK$6&eL$lCVsK?r#J@slO|67&rt&L -z%eMb93gj6O42M>@^2+kyu!Dl3PeM=O`Tpidlno)PCJ$8P$6)&18~F^3LO%{%>-uL* -z{zypp|27HGrLgp|_t=iyhG2Y0do4f)yYa$VVh(2sskNz_M|3nl)CVE2DX?#@pRcOe9MyRo>$ -zh(XMqVEAancYr^DiNOi`+t}2f(FZmbZHdiyI6X;w(6bGZ4kiAH?+x=0VN<{RTV-b_9ArApYx3?3eq`6iOt5 -zJ%at*P=UVe6`X%&XS2=WSPRFmKrfCvz70hM2E$J;f1AsO3%BO@Y5hO0w^g(lRvlk} -z$H3Z(4EVun8@(2TtN0idJ{T4Va01|NBt}(>QKe$Ag8%=*QDj^OV)+M#==kxkBI^ts -z^mJh4>IV8_O^XAqN9peKTsSnVP;TO$Gfs})R;7#A>^nO(Xv3CKqV$dRnOf>2A1(M& -zyr%l2{h|p1FD`q((LZbWq2SJx*{hOuXPw^p`GemY!*lK?a_-LKN1odykfbT>Q?2%N -z_snE_WvTVMn8C@z${w$?EZV5`?zDkR#Xi<|Z2ITYjpe-^b&>njWsgk=xjxSFNc7#W -z!S`%uwsFK9%k(=d%MPEKXmQf3)r_}h>p6b|~@c?{W$;T~Li&XsEAgIBLU -z)YT4hJ^3NyvWvpWnLAsQGrm+hC(W|=9s43b>eZaw0QN-1I$z4dmy!}{x0WmGZY~xG -ziB9PWS%2@2|B}U>_A-n16y-&gELeZLsD*0y^|`Fvg5%*%5;~P-&q|jSN9G;fDjngo -z`1G49e~Zc2%6eIEK41P)Y87Dca4U7j#l|&v*DrpUeqSt)X=9oE-g9QYO2M7>=et)H -zpL=OGq?s=NDoJXqX45ij<)vH7w*{uJa?oW=l_|NCdOI{Daqm{6>tEJ`PP@l6Je*^H^xjp2iOn%Y0%J -zWnCBd-ZALS9VegiKrY(O2E&Q7`8ENdNR>R`Gj}L;~{ycMwQoDt( -H0QUa?z_fxF - -literal 0 -HcmV?d00001 - --- -2.43.0 - diff --git a/BungeeCord-Patches/0047-Speed-up-some-common-exceptions.patch b/BungeeCord-Patches/0046-Speed-up-some-common-exceptions.patch similarity index 99% rename from BungeeCord-Patches/0047-Speed-up-some-common-exceptions.patch rename to BungeeCord-Patches/0046-Speed-up-some-common-exceptions.patch index ba0d27fb5..00467ce0b 100644 --- a/BungeeCord-Patches/0047-Speed-up-some-common-exceptions.patch +++ b/BungeeCord-Patches/0046-Speed-up-some-common-exceptions.patch @@ -1,4 +1,4 @@ -From 324b36500f695bb6497c9c84a9a50f8358cd09b1 Mon Sep 17 00:00:00 2001 +From 91e4b9a2f3e4d5fd62851a09b14d08d96b0c416b Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 25 Nov 2019 19:54:06 +0000 Subject: [PATCH] Speed up some common exceptions @@ -221,5 +221,5 @@ index ac99d02c..0c1ecfb8 100644 // Waterfall start -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0048-ConnectionInitEvent.patch b/BungeeCord-Patches/0047-ConnectionInitEvent.patch similarity index 97% rename from BungeeCord-Patches/0048-ConnectionInitEvent.patch rename to BungeeCord-Patches/0047-ConnectionInitEvent.patch index 6f9de1e47..aa4245573 100644 --- a/BungeeCord-Patches/0048-ConnectionInitEvent.patch +++ b/BungeeCord-Patches/0047-ConnectionInitEvent.patch @@ -1,4 +1,4 @@ -From 57ca86d8f9e2fa2e04159224754e13e0abbae01e Mon Sep 17 00:00:00 2001 +From 80d2788f2f6809a647945f92741f5c4fbf60f8e4 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Mon, 2 Dec 2019 11:35:17 +0000 Subject: [PATCH] ConnectionInitEvent @@ -67,7 +67,7 @@ index 00000000..6e79675f + } +} diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java -index 9caf3b80..e79500f3 100644 +index 516a1350..2f27b7d7 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java @@ -75,8 +75,23 @@ public class PipelineUtils @@ -107,5 +107,5 @@ index 9caf3b80..e79500f3 100644 return true; } ) ); -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0049-Add-exception-reporting-event.patch b/BungeeCord-Patches/0048-Add-exception-reporting-event.patch similarity index 99% rename from BungeeCord-Patches/0049-Add-exception-reporting-event.patch rename to BungeeCord-Patches/0048-Add-exception-reporting-event.patch index bceb59b63..ac386bcef 100644 --- a/BungeeCord-Patches/0049-Add-exception-reporting-event.patch +++ b/BungeeCord-Patches/0048-Add-exception-reporting-event.patch @@ -1,4 +1,4 @@ -From 20777696a5cce3ffcbf4d891dbf0c27355ec03f3 Mon Sep 17 00:00:00 2001 +From afd84646489d91effdad19aa581b1f89bfe1ff32 Mon Sep 17 00:00:00 2001 From: theminecoder Date: Wed, 22 Apr 2020 14:00:44 +1000 Subject: [PATCH] Add exception reporting event @@ -695,5 +695,5 @@ index 38b75b51..02ec98fc 100644 // If we have a period of 0 or less, only run once -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0050-Allow-to-disable-tablist-rewrite.patch b/BungeeCord-Patches/0049-Allow-to-disable-tablist-rewrite.patch similarity index 97% rename from BungeeCord-Patches/0050-Allow-to-disable-tablist-rewrite.patch rename to BungeeCord-Patches/0049-Allow-to-disable-tablist-rewrite.patch index 706620f24..afb5bd699 100644 --- a/BungeeCord-Patches/0050-Allow-to-disable-tablist-rewrite.patch +++ b/BungeeCord-Patches/0049-Allow-to-disable-tablist-rewrite.patch @@ -1,4 +1,4 @@ -From c6f6d4e533804880f34ce5d3920f4d9cb006ec04 Mon Sep 17 00:00:00 2001 +From 6b5b8de7005d36c13b353f063e16f12de65494af Mon Sep 17 00:00:00 2001 From: xDark Date: Fri, 31 May 2019 08:11:31 +0300 Subject: [PATCH] Allow to disable tablist rewrite @@ -50,7 +50,7 @@ index e860214f..b88e3c8a 100644 + } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -index efa73a84..17ecf602 100644 +index 1b6e243a..b782035e 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -183,8 +183,14 @@ public class DownstreamBridge extends PacketHandler @@ -71,5 +71,5 @@ index efa73a84..17ecf602 100644 @Override -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0051-Remove-version-from-brand-info.patch b/BungeeCord-Patches/0050-Remove-version-from-brand-info.patch similarity index 91% rename from BungeeCord-Patches/0051-Remove-version-from-brand-info.patch rename to BungeeCord-Patches/0050-Remove-version-from-brand-info.patch index be5fc25cd..30eef82ff 100644 --- a/BungeeCord-Patches/0051-Remove-version-from-brand-info.patch +++ b/BungeeCord-Patches/0050-Remove-version-from-brand-info.patch @@ -1,11 +1,11 @@ -From 594a6c5fcda68f0f79b1fe31beef6b5ddd218929 Mon Sep 17 00:00:00 2001 +From c0d7c6daa127250f002e20a5db08f080370f0a50 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sat, 20 Jun 2020 18:21:17 +0100 Subject: [PATCH] Remove version from brand info diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -index c809fc1e..d993a677 100644 +index b782035e..79dd4563 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -344,7 +344,7 @@ public class DownstreamBridge extends PacketHandler @@ -18,5 +18,5 @@ index c809fc1e..d993a677 100644 brand.release(); // changes in the packet are ignored so we need to send it manually -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0052-Add-auth-url-option.patch b/BungeeCord-Patches/0051-Add-auth-url-option.patch similarity index 93% rename from BungeeCord-Patches/0052-Add-auth-url-option.patch rename to BungeeCord-Patches/0051-Add-auth-url-option.patch index 9f2cc8ed0..0547d3670 100644 --- a/BungeeCord-Patches/0052-Add-auth-url-option.patch +++ b/BungeeCord-Patches/0051-Add-auth-url-option.patch @@ -1,11 +1,11 @@ -From e4197ee581dc6ddfbfe7bbf9f38220baf8e5ea69 Mon Sep 17 00:00:00 2001 +From b6dbcbac2829cedbac80afad675aa22924ccf88f Mon Sep 17 00:00:00 2001 From: theminecoder Date: Sun, 19 Jul 2020 10:18:23 +1000 Subject: [PATCH] Add auth url option diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index b8f1010e..16cc5ff4 100644 +index 1f636aa7..f8876bab 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -89,6 +89,8 @@ import net.md_5.bungee.util.QuietException; @@ -27,5 +27,5 @@ index b8f1010e..16cc5ff4 100644 Callback handler = new Callback() { -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0053-Add-the-ability-to-generate-decoder-traces-for-debug.patch b/BungeeCord-Patches/0052-Add-the-ability-to-generate-decoder-traces-for-debug.patch similarity index 95% rename from BungeeCord-Patches/0053-Add-the-ability-to-generate-decoder-traces-for-debug.patch rename to BungeeCord-Patches/0052-Add-the-ability-to-generate-decoder-traces-for-debug.patch index 7c0f7fe32..5409e344b 100644 --- a/BungeeCord-Patches/0053-Add-the-ability-to-generate-decoder-traces-for-debug.patch +++ b/BungeeCord-Patches/0052-Add-the-ability-to-generate-decoder-traces-for-debug.patch @@ -1,4 +1,4 @@ -From eb138070bd28e41a49e7a750af37a0976d5f7e23 Mon Sep 17 00:00:00 2001 +From bc47048aecc23978a3494be003fdb4a29cc35059 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Tue, 15 Sep 2020 18:11:49 +0100 Subject: [PATCH] Add the ability to generate decoder traces for debugging @@ -40,5 +40,5 @@ index 2583aa2c..334d5054 100644 } } -- -2.44.0 +2.43.0 diff --git a/BungeeCord-Patches/0054-Additional-DoS-mitigations.patch b/BungeeCord-Patches/0053-Additional-DoS-mitigations.patch similarity index 99% rename from BungeeCord-Patches/0054-Additional-DoS-mitigations.patch rename to BungeeCord-Patches/0053-Additional-DoS-mitigations.patch index a9744bed9..eb6bf97bb 100644 --- a/BungeeCord-Patches/0054-Additional-DoS-mitigations.patch +++ b/BungeeCord-Patches/0053-Additional-DoS-mitigations.patch @@ -1,4 +1,4 @@ -From d72bb07388012384f9b922996a7585f0a0006d51 Mon Sep 17 00:00:00 2001 +From cef71e6f21dfd8c79b5d197ba308b9f45b3c2230 Mon Sep 17 00:00:00 2001 From: "Five (Xer)" Date: Sat, 30 Jan 2021 18:04:14 +0100 Subject: [PATCH] Additional DoS mitigations @@ -257,5 +257,5 @@ index 738f0c92..ec33d337 100644 + // Waterfall end } -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0055-Add-support-for-hex-color-codes-in-console.patch b/BungeeCord-Patches/0054-Add-support-for-hex-color-codes-in-console.patch similarity index 99% rename from BungeeCord-Patches/0055-Add-support-for-hex-color-codes-in-console.patch rename to BungeeCord-Patches/0054-Add-support-for-hex-color-codes-in-console.patch index 602e7529a..a00ee5dc7 100644 --- a/BungeeCord-Patches/0055-Add-support-for-hex-color-codes-in-console.patch +++ b/BungeeCord-Patches/0054-Add-support-for-hex-color-codes-in-console.patch @@ -1,4 +1,4 @@ -From d748b38a6bfbafd428342cac2a8cdff6fe1be782 Mon Sep 17 00:00:00 2001 +From c26fc1eebfc0d9154db15f200c6634e136436121 Mon Sep 17 00:00:00 2001 From: Josh Roy <10731363+JRoy@users.noreply.github.com> Date: Sun, 21 Feb 2021 23:52:11 -0500 Subject: [PATCH] Add support for hex color codes in console @@ -242,5 +242,5 @@ index 00000000..5d1a6126 +} + -- -2.44.0 +2.43.0 diff --git a/BungeeCord-Patches/0056-Configurable-plugin-messaging-limits.patch b/BungeeCord-Patches/0055-Configurable-plugin-messaging-limits.patch similarity index 97% rename from BungeeCord-Patches/0056-Configurable-plugin-messaging-limits.patch rename to BungeeCord-Patches/0055-Configurable-plugin-messaging-limits.patch index 1cbc7cc9e..020d65321 100644 --- a/BungeeCord-Patches/0056-Configurable-plugin-messaging-limits.patch +++ b/BungeeCord-Patches/0055-Configurable-plugin-messaging-limits.patch @@ -1,4 +1,4 @@ -From 7152182d1eef2750bfd233d83e252facdc82674d Mon Sep 17 00:00:00 2001 +From da47f581464e539548b1877ec23f7f8d24dcd557 Mon Sep 17 00:00:00 2001 From: FivePB Date: Tue, 16 Nov 2021 21:15:32 +0100 Subject: [PATCH] Configurable plugin messaging limits @@ -83,7 +83,7 @@ index b88e3c8a..da0efa36 100644 + } } diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index 16cc5ff4..ddcf61fb 100644 +index f8876bab..08d5d86c 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -843,9 +843,10 @@ public class InitialHandler extends PacketHandler implements PendingConnection @@ -101,5 +101,5 @@ index 16cc5ff4..ddcf61fb 100644 } } else if ( input.getTag().equals( "UNREGISTER" ) || input.getTag().equals( "minecraft:unregister" ) ) -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0057-ServerConnectRequest-sendFeedback.patch b/BungeeCord-Patches/0056-ServerConnectRequest-sendFeedback.patch similarity index 98% rename from BungeeCord-Patches/0057-ServerConnectRequest-sendFeedback.patch rename to BungeeCord-Patches/0056-ServerConnectRequest-sendFeedback.patch index 950d9e8d3..a3522a330 100644 --- a/BungeeCord-Patches/0057-ServerConnectRequest-sendFeedback.patch +++ b/BungeeCord-Patches/0056-ServerConnectRequest-sendFeedback.patch @@ -1,4 +1,4 @@ -From a44c12a5a5cd48b1bb3c0718a32faa34a7cfbf62 Mon Sep 17 00:00:00 2001 +From da21252556490ebb32f23ab611473555f45e18c3 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Fri, 16 Apr 2021 06:29:28 +0100 Subject: [PATCH] ServerConnectRequest#sendFeedback @@ -90,5 +90,5 @@ index e76e5f1c..a4c907c8 100644 } else { -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0058-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch b/BungeeCord-Patches/0057-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch similarity index 94% rename from BungeeCord-Patches/0058-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch rename to BungeeCord-Patches/0057-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch index d82822c7d..c53cccf8b 100644 --- a/BungeeCord-Patches/0058-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch +++ b/BungeeCord-Patches/0057-Don-t-send-exceptions-to-the-client-during-kicks-etc.patch @@ -1,4 +1,4 @@ -From f774e7d447eec9a60fda9a5989dc6c0c7ffbd1a6 Mon Sep 17 00:00:00 2001 +From bab441464c837aa2f966aeccec0a8c5418e7a8a7 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Tue, 22 Mar 2022 14:56:44 +0000 Subject: [PATCH] Don't send exceptions to the client during kicks, etc @@ -27,5 +27,5 @@ index a4c907c8..021988a1 100644 @Override -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0059-Improve-login-state-transition.patch b/BungeeCord-Patches/0058-Improve-login-state-transition.patch similarity index 92% rename from BungeeCord-Patches/0059-Improve-login-state-transition.patch rename to BungeeCord-Patches/0058-Improve-login-state-transition.patch index db7685a9b..672d2dcca 100644 --- a/BungeeCord-Patches/0059-Improve-login-state-transition.patch +++ b/BungeeCord-Patches/0058-Improve-login-state-transition.patch @@ -1,11 +1,11 @@ -From df1b9413b5dc7c810d15c5c0259a89a46568d76b Mon Sep 17 00:00:00 2001 +From 10a5842723bb3917a282996f495660738fc3bbbf Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 8 May 2022 12:04:30 +0100 Subject: [PATCH] Improve login state transition diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index ddcf61fb..c40cad3d 100644 +index 08d5d86c..e5d0da53 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -515,6 +515,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection @@ -26,5 +26,5 @@ index ddcf61fb..c40cad3d 100644 } -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0060-Add-protocol-version-to-packet-not-found-message.patch b/BungeeCord-Patches/0059-Add-protocol-version-to-packet-not-found-message.patch similarity index 94% rename from BungeeCord-Patches/0060-Add-protocol-version-to-packet-not-found-message.patch rename to BungeeCord-Patches/0059-Add-protocol-version-to-packet-not-found-message.patch index 83a163134..06b23ff2d 100644 --- a/BungeeCord-Patches/0060-Add-protocol-version-to-packet-not-found-message.patch +++ b/BungeeCord-Patches/0059-Add-protocol-version-to-packet-not-found-message.patch @@ -1,4 +1,4 @@ -From a3a0bb799ca91530b8e93d6ae6425c6186f95c93 Mon Sep 17 00:00:00 2001 +From 3a7fa8d1c8c75cc6b45a2b2d1d9029438e3f077d Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 12 Jun 2022 06:45:54 +0100 Subject: [PATCH] Add protocol version to packet not found message @@ -25,5 +25,5 @@ index bdefc8f1..622364ff 100644 } } -- -2.53.0 +2.43.0 diff --git a/BungeeCord-Patches/0061-Expand-packet-decode-logging-usage.patch b/BungeeCord-Patches/0060-Expand-packet-decode-logging-usage.patch similarity index 95% rename from BungeeCord-Patches/0061-Expand-packet-decode-logging-usage.patch rename to BungeeCord-Patches/0060-Expand-packet-decode-logging-usage.patch index 0386e09bb..f4a2831a3 100644 --- a/BungeeCord-Patches/0061-Expand-packet-decode-logging-usage.patch +++ b/BungeeCord-Patches/0060-Expand-packet-decode-logging-usage.patch @@ -1,4 +1,4 @@ -From 14c1e03ec539868d8ddc65ef39c577ffbb9c27fc Mon Sep 17 00:00:00 2001 +From 6bea37825c6fb6655988d52c551836259b3e9e13 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 19 Jun 2022 10:31:51 +0100 Subject: [PATCH] Expand packet-decode-logging usage @@ -24,5 +24,5 @@ index 684654d2..925cc346 100644 { ProxyServer.getInstance().getLogger().log( Level.WARNING, "{0} - corrupted frame: {1}", new Object[] -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0062-Add-message-for-outdated-clients-that-don-t-support-.patch b/BungeeCord-Patches/0061-Add-message-for-outdated-clients-that-don-t-support-.patch similarity index 95% rename from BungeeCord-Patches/0062-Add-message-for-outdated-clients-that-don-t-support-.patch rename to BungeeCord-Patches/0061-Add-message-for-outdated-clients-that-don-t-support-.patch index 14641c0ae..07573880b 100644 --- a/BungeeCord-Patches/0062-Add-message-for-outdated-clients-that-don-t-support-.patch +++ b/BungeeCord-Patches/0061-Add-message-for-outdated-clients-that-don-t-support-.patch @@ -1,4 +1,4 @@ -From 585d063490d8ec476178de503e89b6c98c593f6f Mon Sep 17 00:00:00 2001 +From d85b5bb71c21578605051474c8c85bd3a134fdd2 Mon Sep 17 00:00:00 2001 From: Aurora Date: Mon, 18 Jul 2022 15:56:05 +0200 Subject: [PATCH] Add message for outdated clients that don't support secure @@ -8,7 +8,7 @@ Clients before 1.19 don't support secure profiles, but since secure profiles is things checked those outdated clients didn't get a useful message telling them to update. diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index c40cad3d..8d7fb51d 100644 +index e5d0da53..a97a5486 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -442,6 +442,7 @@ public class InitialHandler extends PacketHandler implements PendingConnection @@ -32,5 +32,5 @@ index c0a41fb0..94254c9a 100644 error_occurred_player=\u00a7cAn error occurred while parsing your message. (Hover for details) error_occurred_console=\u00a7cAn error occurred while parsing your message: {0} -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0063-Replace-reflection-inside-netty-with-ChannelFactory.patch b/BungeeCord-Patches/0062-Replace-reflection-inside-netty-with-ChannelFactory.patch similarity index 99% rename from BungeeCord-Patches/0063-Replace-reflection-inside-netty-with-ChannelFactory.patch rename to BungeeCord-Patches/0062-Replace-reflection-inside-netty-with-ChannelFactory.patch index 9a930d1c8..55846ebb5 100644 --- a/BungeeCord-Patches/0063-Replace-reflection-inside-netty-with-ChannelFactory.patch +++ b/BungeeCord-Patches/0062-Replace-reflection-inside-netty-with-ChannelFactory.patch @@ -1,4 +1,4 @@ -From a0311cc041cc5ef627337e24febd98d94e823e22 Mon Sep 17 00:00:00 2001 +From 5b0e0dda9c0d34601b7dc96024b40305fb975215 Mon Sep 17 00:00:00 2001 From: Janmm14 Date: Mon, 21 Jun 2021 23:43:39 +0200 Subject: [PATCH] Replace reflection inside netty with ChannelFactory. @@ -143,5 +143,5 @@ index 2f27b7d7..937c0028 100644 { return io_uring ? IoUringDatagramChannel.class : epoll ? EpollDatagramChannel.class : NioDatagramChannel.class; -- -2.54.0 +2.43.0 diff --git a/BungeeCord-Patches/0064-reduce-log-spam-from-clients-registeirng-too-many-ch.patch b/BungeeCord-Patches/0063-reduce-log-spam-from-clients-registeirng-too-many-ch.patch similarity index 91% rename from BungeeCord-Patches/0064-reduce-log-spam-from-clients-registeirng-too-many-ch.patch rename to BungeeCord-Patches/0063-reduce-log-spam-from-clients-registeirng-too-many-ch.patch index 9fdd9f343..3fca1d635 100644 --- a/BungeeCord-Patches/0064-reduce-log-spam-from-clients-registeirng-too-many-ch.patch +++ b/BungeeCord-Patches/0063-reduce-log-spam-from-clients-registeirng-too-many-ch.patch @@ -1,11 +1,11 @@ -From c57ad0b307f791b508aab6c4142c77ccbe7c672e Mon Sep 17 00:00:00 2001 +From 2945e5d0be6aa07ba400deffddebde7086c1f1ea Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Fri, 21 Apr 2023 15:32:33 +0100 Subject: [PATCH] reduce log spam from clients registeirng too many channels diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java -index 8d7fb51d..294860ed 100644 +index a97a5486..9d29bf32 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -201,6 +201,22 @@ public class InitialHandler extends PacketHandler implements PendingConnection @@ -32,5 +32,5 @@ index 8d7fb51d..294860ed 100644 public void handle(LegacyHandshake legacyHandshake) throws Exception { -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch b/BungeeCord-Patches/0064-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch similarity index 98% rename from BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch rename to BungeeCord-Patches/0064-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch index 12f252305..382f457a3 100644 --- a/BungeeCord-Patches/0065-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch +++ b/BungeeCord-Patches/0064-Prevent-proxy-commands-from-breaking-the-chat-chain-.patch @@ -1,4 +1,4 @@ -From 6c6b932af860869f608bda33fb5464d8beca3449 Mon Sep 17 00:00:00 2001 +From e3724c1024e32657cc14462e7276f936208b334b Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Sun, 15 Oct 2023 00:36:38 +0100 Subject: [PATCH] Prevent proxy commands from breaking the chat chain system diff --git a/BungeeCord-Patches/0066-eol-message.patch b/BungeeCord-Patches/0065-eol-message.patch similarity index 93% rename from BungeeCord-Patches/0066-eol-message.patch rename to BungeeCord-Patches/0065-eol-message.patch index b86e615f6..2a3c1586c 100644 --- a/BungeeCord-Patches/0066-eol-message.patch +++ b/BungeeCord-Patches/0065-eol-message.patch @@ -1,4 +1,4 @@ -From a1af32d8e19e4b192359ef3ac1a06b29c43f7e38 Mon Sep 17 00:00:00 2001 +From 1d1d0afd652fe0decf5e09949682fe8b55466890 Mon Sep 17 00:00:00 2001 From: MiniDigger Date: Fri, 22 Mar 2024 09:20:53 +0100 Subject: [PATCH] eol message @@ -17,5 +17,5 @@ index 4e27f6d6..c7d13591 100644 if ( !options.has( "noconsole" ) ) -- -2.49.0 +2.43.0 diff --git a/BungeeCord-Patches/0066-Default-the-native-cipher-to-off.patch b/BungeeCord-Patches/0066-Default-the-native-cipher-to-off.patch new file mode 100644 index 000000000..3b4fe5eb2 --- /dev/null +++ b/BungeeCord-Patches/0066-Default-the-native-cipher-to-off.patch @@ -0,0 +1,72 @@ +From 51dc436d133e67cdf2860234f33d516cd7e91062 Mon Sep 17 00:00:00 2001 +From: Shane Freeder +Date: Mon, 31 Aug 2026 19:35:59 +0200 +Subject: [PATCH] Default the native cipher to off + +The mbedtls native cipher is slower than the JDK's own implementation on +every platform and every supported JDK. Benchmarked 2026-08-31, AES-128-CFB8, +16 MiB, median of 3, across JDK 17/21/25: + + Platform mbedtls native JDK JavaCipher native vs JDK + macOS arm64 4.2 MiB/s 69.5 0.06x + Linux aarch64 7.2 MiB/s ~63 0.11x + Linux x86_64 29.4 MiB/s ~41 0.71x + +AESCE/AESNI are compiled in and dispatching correctly; the cost is that +mbedtls's CFB8 driver calls mbedtls_aes_crypt_ecb once per byte. The native +cipher dates to 2013 (BungeeCord c70006a3), when it was a real win on Java 7 -- +the JDK baseline moved on and the comparison was never re-run. + +Native compression is untouched and still enabled: it remains genuinely ahead +of java.util.zip (1.2-1.4x). + +This only changes the default. The native cipher can be restored with +-Dnet.md_5.bungee.jni.native-cipher.enable=true. NativeCode's existing +constructors still default to enabled, so only the EncryptionUtil call site +opts out. + +diff --git a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java +index 3432aa2c..89b4b3be 100644 +--- a/native/src/main/java/net/md_5/bungee/jni/NativeCode.java ++++ b/native/src/main/java/net/md_5/bungee/jni/NativeCode.java +@@ -28,13 +28,20 @@ public final class NativeCode + } + + public NativeCode(String name, Supplier javaImpl, Supplier nativeImpl, boolean extendedSupportCheck) ++ { ++ this( name, javaImpl, nativeImpl, extendedSupportCheck, true ); // Waterfall - natives are enabled by default unless the call site opts out ++ } ++ ++ // Waterfall start - allow an individual native to be opt-in rather than opt-out ++ public NativeCode(String name, Supplier javaImpl, Supplier nativeImpl, boolean extendedSupportCheck, boolean defaultEnabled) + { + this.name = name; + this.javaImpl = javaImpl; + this.nativeImpl = nativeImpl; +- this.enableNativeFlag = Boolean.parseBoolean( System.getProperty( "net.md_5.bungee.jni." + name + ".enable", "true" ) ); ++ this.enableNativeFlag = Boolean.parseBoolean( System.getProperty( "net.md_5.bungee.jni." + name + ".enable", String.valueOf( defaultEnabled ) ) ); + this.extendedSupportCheck = extendedSupportCheck; + } ++ // Waterfall end + + public T newInstance() + { +diff --git a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java +index aa4e2c07..fce63064 100644 +--- a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java ++++ b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java +@@ -40,7 +40,10 @@ public class EncryptionUtil + private static final Random random = new Random(); + private static final Base64.Encoder MIME_ENCODER = Base64.getMimeEncoder( 76, "\n".getBytes( StandardCharsets.UTF_8 ) ); + public static final KeyPair keys; +- public static final NativeCode nativeFactory = new NativeCode<>( "native-cipher", JavaCipher::new, NativeCipher::new ); ++ // Waterfall start - default the native cipher off; it is slower than the JDK on every ++ // supported platform. Re-enable with -Dnet.md_5.bungee.jni.native-cipher.enable=true ++ public static final NativeCode nativeFactory = new NativeCode<>( "native-cipher", JavaCipher::new, NativeCipher::new, false, false ); ++ // Waterfall end + private static final PublicKey MOJANG_KEY; + + static +-- +2.43.0 +